Commit Graph
10743 Commits
Author SHA1 Message Date
Abdul Rahman 54e9cc60db Refactor navigation components to utilize AnimatedExpandableContainer for smoother transitions
Updated multiple navigation components, including CurrentWorkspaceMemberFavoritesFolders, NavigationDrawerOtherSection, CurrentWorkspaceMemberNavigationMenuItemFolders, and NavigationDrawerSectionForWorkspaceItems, to replace conditional rendering with AnimatedExpandableContainer. This change enhances the user experience by providing animated transitions for expanded sections, improving visual feedback and interaction consistency across the navigation UI.
2026-03-06 09:31:23 +05:30
Abdul Rahman 36b2c31cab Add rightOptions to NavigationDrawerSectionForWorkspaceItemLinkContent for enhanced UI
Introduced a new rightOptions prop in the NavigationDrawerSectionForWorkspaceItemLinkContent component, which conditionally renders an IconArrowUpRight when not in edit mode. This enhancement improves the visual feedback and interactivity of the navigation drawer, aligning with the overall user experience improvements in the application.
2026-03-06 09:22:57 +05:30
Abdul Rahman 1c6525e8ee Enhance WorkspaceNavigationMenuItemsFolder and WorkspaceFolderReadOnly components with active state management
Added active state handling to the WorkspaceNavigationMenuItemsFolder and WorkspaceFolderReadOnly components, ensuring proper visual feedback based on the selected navigation menu item index. Refactored the click handling for the folder toggle to improve user interaction and maintain consistent behavior across components.
2026-03-06 09:21:30 +05:30
Abdul Rahman db9c0b85e4 Implement animated transitions for NavigationMenuEditModeBar visibility
Refactored the NavigationMenuEditModeBar component to utilize framer-motion for smooth animations when toggling the visibility of the edit mode bar. This enhancement improves user experience by providing a visually appealing transition effect, ensuring that the layout customization options are presented more dynamically.
2026-03-06 09:13:42 +05:30
Abdul Rahman 39ad4d3d2f Remove navigation side panel invocation from handleEditClick in WorkspaceNavigationMenuItems component 2026-03-06 09:10:51 +05:30
Abdul Rahman 03a044de27 Add extractDomainFromUrl utility and enhance SidePanelEditLinkItemView for domain extraction
Introduced a new utility function, extractDomainFromUrl, to extract the domain from a given URL. Updated the SidePanelEditLinkItemView component to utilize this function for automatically setting the link name based on the URL input. Refactored the onUpdateLink method to accept an object for updates, improving flexibility in link management.
2026-03-06 09:09:47 +05:30
Abdul Rahman 94310cfbbd Adjust positioning of StyledViewOverlay in ObjectIconWithViewOverlay component for improved layout consistency. Updated bottom, right, and width properties to enhance visual alignment. 2026-03-06 09:00:42 +05:30
Abdul Rahman 54b01c4526 Enhance AddMenuItemInsertionContext and update drag handling logic
Added an optional disableDrag property to the AddMenuItemInsertionContext type to control drag behavior. Updated various components to utilize this new property, ensuring that drag functionality is correctly managed based on the insertion context. This change improves the user experience by providing more granular control over item interactions in the navigation menu.
2026-03-06 08:58:55 +05:30
Abdul Rahman 9c9cf04b5c Enhance WorkspaceNavigationMenuItemsFolder and related hooks for improved state management
Updated the WorkspaceNavigationMenuItemsFolder component to integrate side panel state management, allowing for better handling of menu item insertion context and selected navigation items in edit mode. Refactored the useOpenAddItemToFolderPage hook to reset the selected item in edit mode when opening the add item page. Additionally, modified the WorkspaceSectionAddMenuItemButton to ensure proper state handling when navigating to the add item side panel, improving overall user experience and code clarity.
2026-03-06 08:50:46 +05:30
Abdul Rahman 4fe3642dae Refactor navigation menu item hooks to streamline state management
Removed the selectedNavigationMenuItemInEditModeState from useHandleAddToNavigationDrop and updated related logic to directly handle itemId in openNavigationMenuItemInSidePanel. Enhanced the useOpenNavigationMenuItemInSidePanel hook to set the selected item in edit mode when opening the side panel. This refactor improves code clarity and reduces unnecessary state management, contributing to a more efficient navigation experience.
2026-03-06 08:42:13 +05:30
Abdul Rahman 4ed20b18d1 Refactor NavigationDrawerItem color logic for improved clarity
Updated the color logic in the NavigationDrawerItem component to simplify the conditional rendering. The changes enhance code readability and maintainability by removing unnecessary conditions, ensuring a more straightforward approach to determining the icon color based on the component's state.
2026-03-06 08:32:32 +05:30
Abdul Rahman f061abfb48 Refactor SidePanelRouter to improve component rendering logic
Updated the SidePanelRouter component to enhance the rendering logic by introducing a check for valid React elements before cloning the page component. This change ensures that the component handles rendering more robustly, improving maintainability and user experience.
2026-03-06 08:30:44 +05:30
Abdul Rahman 2ba06f1392 Enhance NavigationDrawerSectionTitle styling for improved hover effect
Updated the NavigationDrawerSectionTitle component to apply a new hover style that changes the color of the section title label. This enhancement improves the visual feedback for users interacting with the navigation drawer, contributing to a more engaging user experience.
2026-03-06 08:26:28 +05:30
Abdul Rahman e9880d7593 Refactor CurrentWorkspaceMemberNavigationMenuItemFoldersDispatcher for improved rendering logic
Updated the CurrentWorkspaceMemberNavigationMenuItemFoldersDispatcher component to enhance the rendering logic by incorporating the AnimatedEaseInOut component. This change allows for smoother transitions between the editing and viewing states of the navigation menu items, improving the overall user experience. The conditional rendering now effectively toggles between CurrentWorkspaceMemberNavigationMenuItemFolders and CurrentWorkspaceMemberFavoritesFolders based on the editing state.
2026-03-06 08:23:59 +05:30
Abdul Rahman 9c492bdf28 Update LinkIconWithLinkOverlay styles for improved layout consistency
Modified the StyledLinkOverlay component to use theme variables for border radius and adjusted positioning properties for better alignment. Increased the size of the LinkIcon for enhanced visibility, contributing to a more cohesive design within the navigation menu.
2026-03-06 08:20:10 +05:30
Abdul Rahman 9fc38ef10c Refactor SidePanelEditLinkItemView to remove unused color option component
Removed the SidePanelEditColorOption component from the SidePanelEditLinkItemView, streamlining the code and enhancing maintainability. Updated imports accordingly to reflect this change.
2026-03-06 08:01:07 +05:30
Abdul Rahman c63703ae36 Add DroppableData type and refactor resolveDropTarget for improved data handling
Introduced a new DroppableData type to encapsulate droppableId and index properties. Updated the resolveDropTarget function to utilize this type for better data validation and handling. Additionally, removed the parseDropTargetIdToDestination utility as its functionality is now integrated into the resolveDropTarget logic, streamlining the code and enhancing maintainability.
2026-03-06 03:52:36 +05:30
Abdul Rahman 0b9d8d9469 Refactor resolveDropTarget function for improved readability
Updated the resolveDropTarget function to enhance code clarity by adding braces around the null check condition. This change improves the readability of the function and maintains consistency with coding standards.
2026-03-06 03:36:59 +05:30
Abdul Rahman 62527d77f2 Refactor workspaceDndKitResolveDropTarget to improve import organization
Updated the workspaceDndKitResolveDropTarget file to reorganize imports for better clarity and maintainability. The NavigationMenuItem type import was moved to the top, and unnecessary comments were removed, streamlining the code structure.
2026-03-06 03:36:48 +05:30
Abdul Rahman 09d2325ebf Refactor getDestinationFromSortableTarget to improve index handling
Updated the getDestinationFromSortableTarget function to enhance the handling of the index parameter. The raw index is now validated to ensure it is an integer and non-negative before being used. This change improves the robustness of the drag-and-drop functionality within the navigation system.
2026-03-06 03:31:47 +05:30
Abdul Rahman 7694969b11 Refactor CommandMenuNewSidebarItemPage to utilize side panel components
Updated the CommandMenuNewSidebarItemPage component to replace command menu imports and usage with corresponding side panel components. This change enhances consistency in navigation and aligns with recent refactoring efforts to streamline the user experience across the application.
2026-03-06 03:25:59 +05:30
Abdul Rahman f162a76f16 Refactor navigation and object metadata components to use side panel navigation
Updated various components to replace command menu navigation with side panel navigation. This includes changes in `WorkspaceNavigationMenuItems`, `WorkspaceSectionAddMenuItemButton`, and related components. Additionally, imports have been adjusted to utilize `themeCssVariables` for consistent theming across the application. These changes enhance the user experience by streamlining navigation and improving code maintainability.
2026-03-06 01:24:06 +05:30
Abdul Rahman b54bcd6799 Update package.json to add @dnd-kit/react dependency 2026-03-06 01:19:15 +05:30
Abdul Rahman 07ccee62bd Refactor WorkspaceDndKitProvider and related files for improved drag-and-drop functionality
Updated the WorkspaceDndKitProvider component to streamline drag-and-drop logic by removing unused imports and state management. Introduced new utility files for handling draggable data, drop destinations, and resolving drop targets. This refactor enhances code organization and maintainability, while also improving the overall drag-and-drop experience within the workspace navigation.
2026-03-06 01:19:06 +05:30
Abdul Rahman 8e31c0da3c Refactor usePersistField to remove navigation menu edit mode check
Updated the usePersistField hook to eliminate the check for isNavigationMenuInEditModeState. This change simplifies the logic within the hook, enhancing readability and maintainability by focusing solely on the field persistence functionality.
2026-03-06 00:35:15 +05:30
Abdul Rahman 3b38681f03 Refactor NavigationDrawerSectionForWorkspaceItemContent to use specific components for folders, links, and objects
Updated the NavigationDrawerSectionForWorkspaceItemContent component to delegate rendering to specialized components: NavigationDrawerSectionForWorkspaceItemFolderContent, NavigationDrawerSectionForWorkspaceItemLinkContent, and NavigationDrawerSectionForWorkspaceItemObjectContent. This change improves code organization and readability by separating concerns for different item types. Additionally, updated imports in related components to reflect the new structure.
2026-03-06 00:31:04 +05:30
Abdul Rahman 9b83cbdfc0 Refactor SidePanelNewSidebarItemMainMenu to use NavigationMenuItemType constants
Updated the SidePanelNewSidebarItemMainMenu component to replace string literals with constants from NavigationMenuItemType for improved type safety and maintainability. This change enhances code readability and consistency across the component.
2026-03-06 00:23:03 +05:30
Abdul Rahman 2bad7198e9 Refactor SidePanelItemWithAddToNavigationDrag to simplify contextual description logic
Updated the logic for determining the contextual description in SidePanelItemWithAddToNavigationDrag. The new implementation improves readability by consolidating the conditions for displaying the drag affordance message.
2026-03-06 00:18:56 +05:30
Abdul Rahman 811a5ffbd1 Refactor DefaultRecordActionsConfig to simplify soft delete condition
Updated the logic in DEFAULT_RECORD_ACTIONS_CONFIG to streamline the condition for soft delete availability. The check for `isNavigationMenuInEditMode` has been moved to the end of the condition, improving readability and maintaining functionality.
2026-03-06 00:14:13 +05:30
Abdul Rahman 785c96ac53 Merge branch 'main' into dnd-kit-navbar-drag-drop 2026-03-06 00:11:03 +05:30
Charles BochetandGitHub 1affa1e004 chore(front): remove vite-plugin-checker background TS/ESLint checks (#18437)
## Summary

Removes `vite-plugin-checker` and all references to
`VITE_DISABLE_TYPESCRIPT_CHECKER` / `VITE_DISABLE_ESLINT_CHECKER`.

These background checks are no longer needed because our dev experience
now relies on **independent** linters and type-checkers:
- `npx nx lint:diff-with-main twenty-front` for ESLint
- `npx nx typecheck twenty-front` for TypeScript

Running these as separate processes (rather than inside Vite) is faster,
gives cleaner output, and avoids the significant memory overhead that
`vite-plugin-checker` introduces during `vite dev` and `vite build`. The
old env vars to disable them are removed from `vite.config.ts`,
`package.json` scripts, `nx.json`, `.env.example`, and all translated
docs.
2026-03-05 18:55:04 +01:00
Charles BochetandGitHub c53a13417e Remove all styled(Component) patterns in favor of parent wrappers and props (#18430)
## Summary

Eliminates all ~350 `styled(Component)` usages across `twenty-front` and
`twenty-ui` (212 files changed). Each was replaced following these
rules:

- **Margin/layout CSS** (margin, padding, flex, align-self, width) →
wrapped in a `styled.div`/`styled.span` parent container
- **Third-party components** (Link, TextareaAutosize,
ReactPhoneNumberInput, Handle, etc.) → parent container with child CSS
selectors (`> a`, `> textarea`, `> input`, etc.)
- **Intrinsic behavior via existing props** (TableRow
`gridTemplateColumns`, TableCell `color`/`align`) → replaced
`styled(TableRow)` / `styled(TableCell)` with direct prop usage
- **Other visual overrides on twenty-ui components** (Card, Section,
TabList, Button, MenuItem, ScrollWrapper, etc.) → parent wrappers with
`> div` / `> *` child selectors
- **Extending styled.div/span** → merged all CSS into a single
`styled.div`/`styled.span`

Also adds `overflow: hidden` to parent containers wrapping
`ScrollWrapper` so scroll activates correctly with the new wrapper
structure.

### Migration patterns

| Before | After |
|--------|-------|
| `styled(Avatar)` with `margin-right` | `<StyledAvatarContainer><Avatar
/></StyledAvatarContainer>` |
| `styled(Link)` with `text-decoration: none` |
`<StyledLinkContainer><Link /></StyledLinkContainer>` with `> a { ... }`
|
| `styled(TableRow)` with `grid-template-columns` | `<TableRow
gridTemplateColumns="..." />` |
| `styled(TableCell)` with `color` / `align` | `<TableCell color={...}
align="right" />` |
| `styled(Card)` with `margin-top` | `<StyledCardContainer><Card
/></StyledCardContainer>` |
| `styled(TabList)` with `background` |
`<StyledTabListContainer><TabList /></StyledTabListContainer>` with `>
div { ... }` |
| `styled(StyledBase)` extending a `styled.div` | Single merged
`styled.div` with all styles inlined |
2026-03-05 18:16:25 +01:00
Lucas BordeauandGitHub e5e3132ddd Add ESLint rules to disallow jotaiStore and direct atomFamily usage in selectors (#18422)
Introduce two new ESLint rules that prevent the use of `jotaiStore` and
direct calls to `.atomFamily()` or `.selectorFamily()` within component
selector `get` callbacks.

These rules promote cleaner and more reactive code practices.

Fixed file touched by those new rules :
`calendarDayRecordIdsComponentFamilySelector`
2026-03-05 17:58:52 +01:00
Baptiste DevessierandGitHub 4965790ecc Backfill record page layouts for custom objects (#18428) 2026-03-05 17:52:21 +01:00
fc2b1de860 fix: composite field sub-menu not showing in advanced filter (#18395)
## Problem
While working on the IS/IS_NOT filter feature (#15317 ), I found this
problem. So I want to submit a separate pr to fix it at first.
In the advanced filter, clicking on a composite field (Emails, Phones,
Links) was not showing the sub-field selection menu.

  ## Root cause
Related to #18178 (Recoil → Jotai migration).
`AdvancedFilterFieldSelectMenu` was writing composite field states using
`advancedFilterFieldSelectDropdownId` as the instance ID. But the reader
components (`AdvancedFilterFieldSelectDropdownContent`,
`AdvancedFilterSubFieldSelectMenu`) resolve the instance ID from React
context, which has a different value — so they were reading from a
different Jotai atom instance and `isSelectingCompositeField` was always
`false`.

  ## Fix
Remove the 3 explicit instance IDs so the writer uses context, matching
the readers.

 ## Before


https://github.com/user-attachments/assets/dde54077-0eaf-453c-a638-bec6d6fe4d55

## After


https://github.com/user-attachments/assets/01916bcf-0ee8-49ad-bb54-9d8f10571069


Hope I understood it correctly.

---------

Co-authored-by: Etienne <45695613+etiennejouan@users.noreply.github.com>
2026-03-05 17:51:59 +01:00
12257f4cc7 i18n - translations (#18429)
Created by Github action

---------

Co-authored-by: github-actions <github-actions@twenty.com>
2026-03-05 17:51:21 +01:00
Paul RastoinandGitHub 57d8954973 [SDK] Pure ESM (#18427)
# Introduction
While testing the sdk and overall apps in
https://github.com/prastoin/twenty-app-hello-world
Faced a lot of pure `CJS` external dependencies import issue

Replaced all the cjs deps to either esm equivalent or node native
replacement
2026-03-05 17:19:01 +01:00
WeikoandGitHub cfeea43eaf Improve workspace auth context surface (#18164) 2026-03-05 15:13:59 +00:00
nitinandGitHub 5853891b02 refactor!: rename Command Menu page/navigation layer to Side Panel (#18393) 2026-03-05 15:46:31 +01:00
Abdul Rahman c260c9e5e7 refactor: migrate styled components from Emotion to Linaria
Updated multiple components to replace the Emotion styled import with Linaria's styled import. This change enhances performance and aligns with the project's styling strategy, ensuring consistency across the codebase.
2026-03-05 19:45:29 +05:30
Abdul Rahman 4558513c6b feat: add Edit Navigation Sidebar action to record actions configuration
Introduced a new action for editing the navigation sidebar in the record actions configuration. This includes the addition of the EditNavigationSidebarNoSelectionRecordAction component and the corresponding action key in NoSelectionRecordActionKeys. The new action enhances user interaction by allowing sidebar modifications when in edit mode.
2026-03-05 19:32:17 +05:30
Abdul Rahman 1926a07c74 refactor: simplify target ID validation logic in WorkspaceDndKitProvider
Updated the target ID validation logic in the WorkspaceDndKitProvider component to streamline the conditions for determining if the target ID is a string. This change enhances code readability and maintains the existing functionality.
2026-03-05 19:14:42 +05:30
Paul RastoinandGitHub 38ad0820c0 Fix server logs leak (#18423)
# Introduction

Previously the auth jwt stragegy would lod the whole user entity in the
auth user context
On an exception it would completely get logged on the pods


## Security layer
- 0/ Updating the type system ( devxp only though )
- 1/ The jwt auth stragegy only load a specific sub set of the user
entity
- 2/ Sanitizing at the exception log level directly in case of a user
context
- 3/ Sanitizing at the console driver

The last two sanitization could sound a bit redundant though they're
still good fallback to keep in case new path occurs in the cb
2026-03-05 14:40:23 +01:00
Abdul Rahman 6bc1cf7616 feat: add disableDrag prop to AddToNavigationDragHandle and CommandMenuItemWithAddToNavigationDrag components
Introduced a disableDrag prop to both the AddToNavigationDragHandle and CommandMenuItemWithAddToNavigationDrag components. This enhancement allows for improved control over drag interactions, enabling the disabling of drag functionality based on specific conditions. Updated styles to reflect the new prop, enhancing user experience and interaction clarity in the command menu.
2026-03-05 19:09:49 +05:30
Charles BochetandGitHub 647c32ff3e Deprecate runtime theme objects in favor of CSS variables (#18402)
## Summary

- **Eliminate `ICON_SIZES` / `ICON_STROKES` constants**: all icon
dimensions are now resolved at runtime via
`resolveThemeVariableAsNumber(themeCssVariables.icon.size.X)`, ensuring
values always come from computed CSS variables
- **No more consumer imports from `twenty-ui/theme`**: moved
`ColorSchemeContext`, `ColorSchemeProvider`, `ThemeColor`,
`MAIN_COLOR_NAMES`, `getNextThemeColor`, `AnimationDuration` to
`twenty-ui/theme-constants`
- **Remove `ThemeContext` / `ThemeContextProvider` / `ThemeProvider` /
`ThemeType`**: replaced across ~300 files with `themeCssVariables` (for
CSS contexts) or `resolveThemeVariable` / `resolveThemeVariableAsNumber`
(for JS runtime values)
- **Simplify provider chain**: only `ColorSchemeProvider` remains — it
toggles `light`/`dark` class on `document.documentElement` and provides
`colorScheme` via React context
- **Fix pre-existing test failures**: `useIcons.test.ts`
(non-configurable ES module spy) and
`turnRecordFilterGroupIntoGqlOperationFilter.test.ts`
(`Omit<RecordFilter, 'id'>` type mismatch)

### Theme access pattern (before → after)

| Context | Before | After |
|---------|--------|-------|
| CSS (Linaria) | `${({ theme }) => theme.font.color.primary}` |
`${themeCssVariables.font.color.primary}` |
| JS runtime (icon size, animation) | `theme.icon.size.md` /
`ICON_SIZES.md` |
`resolveThemeVariableAsNumber(themeCssVariables.icon.size.md)` |
| Color scheme check | `theme.name === 'dark'` |
`useContext(ColorSchemeContext).colorScheme === 'dark'` |
2026-03-05 14:39:01 +01:00
martmullandGitHub 7293d4c1f8 Fix missing test input values (#18424)
- refactor
- fix issue
2026-03-05 14:36:36 +01:00
Abdul Rahman 22ac9aeb92 feat: update CommandMenuLinkInfo to use LinkIconWithLinkOverlay for improved link representation
Refactored the CommandMenuLinkInfo component to utilize the new LinkIconWithLinkOverlay component, enhancing the visual representation of links with an optional favicon. Additionally, modified the LinkIconWithLinkOverlay to improve favicon handling by tracking failed favicon links, ensuring better user experience and consistency in the navigation menu.
2026-03-05 19:05:30 +05:30
martmullandGitHub 1acbf28316 Only update value at creation (#18350)
as title
2026-03-05 13:08:17 +00:00
Charles BochetandGitHub 1decd40eea Remove unecessary queries for aggregate (#18421)
As per title.
2026-03-05 13:24:56 +01:00
Abdul Rahman ea9acdaa2e feat: add LinkIconWithLinkOverlay component for enhanced link representation in navigation menu
Introduced the LinkIconWithLinkOverlay component to display a link icon with an optional favicon overlay in the navigation menu. This component utilizes the getLinkFaviconUrl utility to fetch favicons based on provided links and integrates with the NavigationMenuItemIcon to enhance link item rendering. Additionally, updated NavigationMenuItemIcon to utilize the new component for link items, improving visual consistency and user experience.
2026-03-05 17:34:34 +05:30