Commit Graph
8521 Commits
Author SHA1 Message Date
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
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
Abdul Rahman e208bf7c7a feat: integrate isNavigationMenuInEditMode state into action registration logic
Updated the shouldBeRegistered functions across various record actions to incorporate the isNavigationMenuInEditMode state. This enhancement ensures that actions are correctly registered or disabled based on the navigation menu's edit mode, improving user experience and interaction clarity. Additionally, modified related hooks and components to utilize this new state for better control over action availability.
2026-03-05 17:12:04 +05:30
Abdul Rahman 993abf9c8f feat: filter available object metadata items by visibility in command menu
Updated the CommandMenuNewSidebarItemViewPickerSubView component to filter views based on their visibility, ensuring only workspace-visible views are included. Additionally, modified the getAvailableObjectMetadataForNewSidebarItem utility to filter active non-system object metadata items by index view availability, enhancing the accuracy of available items in the command menu.
2026-03-05 16:59:14 +05:30
Abdul Rahman c781b481d6 feat: add iconColor and color properties to command menu item components
Enhanced the CommandMenuObjectMenuItem component by adding an iconColor prop for improved customization. Additionally, updated the buildCreateNavigationMenuItemInput utility to include a color property if defined in the draft item, allowing for better visual representation in navigation menus.
2026-03-05 16:48:51 +05:30
Abdul Rahman f10bfd4499 fix: update ObjectIconWithViewOverlay icon size and stroke for improved visual consistency
Adjusted the size of the ViewIcon from 10px to 12px and changed the stroke from large to medium in the ObjectIconWithViewOverlay component. This update enhances the visual consistency and alignment with the overall design system.
2026-03-05 03:36:57 +05:30
Abdul Rahman b968366d51 feat: introduce disableDrag prop to command menu items for enhanced interaction control
Added a disableDrag prop to various command menu components, including CommandMenuItemWithAddToNavigationDrag and CommandMenuNewSidebarItemMainMenu. This enhancement allows for better control over drag interactions, preventing dragging when certain conditions are met. Updated related components to utilize this new prop, improving user experience and interaction clarity across the command menu.
2026-03-05 03:26:42 +05:30
Abdul Rahman 3dd2a973e6 feat: add disabled state to command menu items for improved user interaction
Enhanced the CommandMenuItemWithAddToNavigationDrag and CommandMenuNewSidebarItemMainMenu components by introducing a disabled state. This allows for better control over user interactions, preventing actions when items are not selectable. Updated styles and logic to reflect the disabled state, improving overall usability and clarity in the command menu.
2026-03-05 03:18:02 +05:30
Abdul Rahman 9e26c7e2b5 refactor: streamline folder content length calculation in WorkspaceNavigationMenuItemsFolder
Refactored the calculation of folder content length in the WorkspaceNavigationMenuItemsFolder component to improve code clarity. The logic for determining the length in edit mode has been simplified, enhancing readability while maintaining functionality.
2026-03-05 02:30:37 +05:30
Abdul Rahman 25b1a5d7a2 refactor: simplify edit mode checks in WorkspaceNavigationMenuItemsFolder
Removed redundant condition for checking edit mode in the WorkspaceNavigationMenuItemsFolder component. This change streamlines the logic for rendering folder content and improves code clarity while maintaining intended functionality.
2026-03-05 02:30:12 +05:30
Abdul Rahman ac442724f1 refactor: improve navigation menu item position handling
Refactored the position handling logic in the useNavigationMenuItemMoveRemove hook to utilize a new getPositionBetween utility for calculating item positions. This change enhances the accuracy of position updates when moving items within the navigation menu. Additionally, updated related functions to directly use draft item positions, improving overall code clarity and functionality.
2026-03-05 01:47:52 +05:30
Abdul Rahman b4836d519e refactor: update click handlers to prevent event propagation in favorites and navigation components
Modified click handlers in various components, including CurrentWorkspaceMemberFavorites, CurrentWorkspaceMemberOrphanFavorites, FavoritesFolderContent, and navigation menu items, to stop event propagation when deleting favorites or navigation items. This change enhances user experience by preventing unintended interactions while maintaining functionality.
2026-03-04 22:32:54 +05:30
Abdul Rahman dcee661a79 refactor: simplify click handler logic in NavigationDrawerItemForObjectMetadataItem
Refactored the click handling logic in the NavigationDrawerItemForObjectMetadataItem component to streamline the conditions for handling clicks based on the edit mode state. This change improves code readability and maintains the intended functionality for navigation interactions.
2026-03-04 22:24:15 +05:30
Abdul Rahman 29e68663e2 feat: add variant prop to navigation components for styling
Enhanced multiple navigation components, including WorkspaceNavigationMenuItemsFolder, WorkspaceSectionAddMenuItemButton, NavigationDrawerItem, and NavigationDrawerSubItem, by introducing a variant prop. This addition allows for improved styling options, specifically supporting a 'tertiary' variant, which enhances visual differentiation and user experience across the navigation interface.
2026-03-04 22:15:57 +05:30
Abdul Rahman eef7175e1e feat: add alwaysShowRightOptions prop to navigation components
Enhanced the WorkspaceNavigationMenuItemsFolder and WorkspaceFolderReadOnly components by adding the alwaysShowRightOptions prop. This improvement ensures that right options are consistently displayed, enhancing user interaction within the navigation menus.
2026-03-04 17:38:16 +05:30
Abdul Rahman 7d0b91c033 feat: add isOpen prop to navigation drawer section titles
Enhanced multiple navigation drawer components by adding the isOpen prop to the NavigationDrawerSectionTitle, allowing for better control of the open/close state. This improves the user experience by providing visual feedback on the navigation sections' status.
2026-03-04 17:32:27 +05:30
Abdul Rahman a3854f6e11 feat: add navigation command for new sidebar item in edit mode
Enhanced the WorkspaceNavigationMenuItems component by integrating a navigation command that triggers when entering edit mode. This allows users to seamlessly navigate to the command menu for adding a new sidebar item, improving the editing experience.
2026-03-04 17:21:55 +05:30
Abdul Rahman 63d452d05f feat: add edit mode check to CurrentWorkspaceMemberNavigationMenuItemFoldersDispatcher
Implemented a check for edit mode in the CurrentWorkspaceMemberNavigationMenuItemFoldersDispatcher component. If the navigation menu is in edit mode, the component will return null, preventing rendering of the folder items during editing. This enhances user experience by avoiding unnecessary UI elements during editing sessions.
2026-03-04 17:20:11 +05:30
Abdul Rahman bd3343e963 refactor: replace theme access with themeCssVariables in styled components
Updated multiple components to utilize themeCssVariables for styling instead of runtime theme access. This change enhances performance and consistency across the application by leveraging CSS custom properties for spacing, borders, and colors.
2026-03-04 17:18:15 +05:30
Abdul Rahman 02b5b79da1 Merge branch 'main' into dnd-kit-navbar-drag-drop 2026-03-04 17:07:52 +05:30
Abdullah.andGitHub 225f185278 fix: fast-xml-parser has stack overflow in XMLBuilder with preserve order (#18375)
Resolves [Dependabot Alert
551](https://github.com/twentyhq/twenty/security/dependabot/551).
2026-03-04 10:36:58 +01:00
Abdullah.andGitHub 2f9c94d9a0 fix: upgrade nestjs dependencies to upgrade multer transitive import (#18374)
Resolves [Dependabot Alert
549](https://github.com/twentyhq/twenty/security/dependabot/549) and
[Dependabot Alert
550](https://github.com/twentyhq/twenty/security/dependabot/550).
2026-03-04 10:34:44 +01:00
a9c4920fcc i18n - docs translations (#18370)
Created by Github action

---------

Co-authored-by: github-actions <github-actions@twenty.com>
2026-03-04 09:16:33 +01:00
07dd27f6c4 i18n - translations (#18368)
Created by Github action

---------

Co-authored-by: github-actions <github-actions@twenty.com>
2026-03-04 01:29:35 +01:00
Charles BochetandGitHub 7a2e397ad1 Complete linaria migration (#18361)
## Summary

Completes the migration of the frontend styling system from **Emotion**
(`@emotion/styled`, `@emotion/react`) to **Linaria** (`@linaria/react`,
`@linaria/core`), a zero-runtime CSS-in-JS library where styles are
extracted at build time.

This is the final step of the migration — all ~494 files across
`twenty-front`, `twenty-ui`, `twenty-website`, and `twenty-sdk` are now
fully converted.

## Changes

### Styling Migration (across ~480 component files)
- Replaced all `@emotion/styled` imports with `@linaria/react`
- Converted runtime theme access patterns (`({ theme }) => theme.x.y`)
to build-time `themeCssVariables` CSS custom properties
- Replaced `useTheme()` hook (from Emotion) with
`useContext(ThemeContext)` where runtime theme values are still needed
(e.g., passing colors to non-CSS props like icon components)
- Removed `@emotion/react` `css` helper usages in favor of Linaria
template literals

### Dependency & Configuration Changes
- **Removed**: `@emotion/react`, `@emotion/styled` from root
`package.json`
- **Added**: `@wyw-in-js/babel-preset`, `next-with-linaria` (for
twenty-website SSR support)
- Updated Nx generator defaults from `@emotion/styled` to
`@linaria/react` in `nx.json`
- Simplified `vite.config.ts` (removed Emotion-specific configuration)
- Updated `twenty-website/next.config.js` to use `next-with-linaria` for
SSR Linaria support

### Storybook & Testing
- Removed `ThemeProvider` from Emotion in Storybook previews
(`twenty-front`, `twenty-sdk`)
- Now relies solely on `ThemeContextProvider` for theme injection

### Documentation
- Removed the temporary `docs/emotion-to-linaria-migration-plan.md`
(migration complete)
- Updated `CLAUDE.md` and `README.md` to reflect Linaria as the styling
stack
- Updated frontend style guide docs across all locales

## How it works

Linaria extracts styles at build time via the `@wyw-in-js/vite` plugin.
All expressions in `styled` template literals must be **statically
evaluable** — no runtime theme objects or closures over component state.

- **Static styles** use `themeCssVariables` which map to CSS custom
properties (`var(--theme-color-x)`)
- **Runtime theme access** (for non-CSS use cases like icon `color`
props) uses `useContext(ThemeContext)` instead of Emotion's `useTheme()`
2026-03-04 00:50:06 +01:00
Abdul Rahman 6f806a5659 Merge branch 'main' into dnd-kit-navbar-drag-drop 2026-03-04 02:17:52 +05:30
Abdul Rahman 3723000af0 refactor: simplify styled components in WorkspaceNavigationMenuItemsFolder and WorkspaceFolderReadOnly
Removed unnecessary props from styled components in WorkspaceNavigationMenuItemsFolder and WorkspaceFolderReadOnly, enhancing code clarity and maintainability. This update streamlines the component structure while preserving existing functionality.
2026-03-04 02:14:08 +05:30
Abdul Rahman 5b1149c33a fix: improve destination assignment logic in WorkspaceDndKitProvider for folder drops
Updated the destination assignment logic in the WorkspaceDndKitProvider to handle dropping items into folders more accurately. The logic now checks if the target is a folder and adjusts the droppable ID accordingly, enhancing the drag-and-drop functionality and user experience within the navigation menu.
2026-03-04 02:02:40 +05:30
Abdul Rahman 8719b0ad27 fix: resolve folder ID assignment in useSaveNavigationMenuItemsDraft hook
Updated the folder ID assignment logic in the useSaveNavigationMenuItemsDraft hook to ensure that the folder ID is resolved correctly when it is not null. This change improves the accuracy of the draft item updates while maintaining existing functionality.
2026-03-04 01:54:32 +05:30
Abdul Rahman 86a40c4034 refactor: reorganize imports and enhance component structure in NavigationDrawerSectionForWorkspaceItemsListDndKit
Updated the NavigationDrawerSectionForWorkspaceItemsListDndKit component by reorganizing imports and introducing a new styled component for list item rows. This refactor improves code clarity and maintainability while preserving existing functionality.
2026-03-04 01:51:59 +05:30
Abdul Rahman 6ef92eb86f refactor: streamline WorkspaceNavigationMenuItemsFolder component
Updated the WorkspaceNavigationMenuItemsFolder component by reorganizing imports and removing an unused variable. Enhanced the rendering logic for adding menu items in edit mode, improving code clarity and maintainability. This refactor aims to optimize the component's structure while maintaining existing functionality.
2026-03-04 01:44:40 +05:30
Abdul Rahman ca2986894a feat: enhance drag-and-drop logic in WorkspaceDndKitProvider and related components
Added new functions to improve drag-and-drop interactions, including validation for dropping items into folders and handling effective drop target IDs. Updated WorkspaceDndKitDroppableSlot to support customizable collision priorities, enhancing the drag-and-drop experience. This update aims to streamline user interactions and prevent invalid drop actions within the navigation menu.
2026-03-04 01:38:33 +05:30
Abdul Rahman e09cc62a6b feat: improve drag-and-drop validation in WorkspaceDndKitProvider and related components
Enhanced the drag-and-drop functionality by adding checks to prevent dropping items into folders when the source item is also a folder. Updated the WorkspaceDndKitProvider to utilize the new validation logic and refined the NavigationItemDropTarget and WorkspaceNavigationMenuItemsFolder components to reflect forbidden drop states. This update aims to improve user experience and prevent invalid drop actions within the navigation menu.
2026-03-04 01:18:11 +05:30
Abdul Rahman f6ae0fbfbc feat: enhance drag-and-drop functionality in WorkspaceNavigationMenuItemsFolder
Refactored the WorkspaceNavigationMenuItemsFolder component to improve the rendering of sortable items and integrate NavigationItemDropTarget for better drag-and-drop interactions. This update includes the addition of drop target IDs and enhances user feedback during item manipulation within the workspace navigation menu.
2026-03-04 01:05:32 +05:30
Abdul Rahman b092d118e5 feat: add feedback for drag-and-drop interactions in CommandMenuItem and WorkspaceDndKitSortableItem
Enhanced the drag-and-drop functionality by introducing a 'clone' feedback message in both CommandMenuItemWithAddToNavigationDragDndKit and WorkspaceDndKitSortableItem components. This improvement aims to provide clearer user feedback during drag-and-drop operations.
2026-03-04 01:02:42 +05:30
Abdul Rahman 4bc85e1423 feat: enhance drag-and-drop behavior in WorkspaceDndKitProvider
Introduced a new state for tracking the last drop index and improved the handleDragOver function to calculate drop positions more accurately. Updated the WorkspaceDndKitSortableItem to utilize the SortableKeyboardPlugin, enhancing keyboard accessibility during drag-and-drop operations. Additionally, refactored the WorkspaceNavigationMenuItemsFolder to streamline the rendering of sortable items.
2026-03-04 00:56:11 +05:30
Paul RastoinandGitHub 132a19f688 [SDK] Execute logic function e2e test (#18351)
# Introduction
Creating an e2e test covering the execute logic function public
operation
2026-03-03 17:44:19 +01:00
Charles BochetandGitHub 3bfdc2c83f chore(twenty-front): migrate command-menu, workflow, page-layout and UI modules from Emotion to Linaria (PR 4-6/10) (#18342)
## Summary

Continues the Emotion → Linaria migration (PR 4-6 from the [migration
plan](docs/emotion-to-linaria-migration-plan.md)). Migrates **311
files** across four module groups:

| Module | Files |
|---|---|
| command-menu | 53 |
| workflow | 84 |
| page-layout | 84 |
| UI (partial - first ~80 files) | ~80 |
| twenty-ui (TEXT_INPUT_STYLE) | 1 |
| misc (hooks, keyboard-shortcut-menu, file-upload) | ~9 |

### Migration patterns applied

- `import styled from '@emotion/styled'` → `import { styled } from
'@linaria/react'`
- `import { useTheme } from '@emotion/react'` → `import { useContext }
from 'react'` + `import { ThemeContext } from 'twenty-ui/theme'`
- `${({ theme }) => theme.X.Y.Z}` → `${themeCssVariables.X.Y.Z}` (static
CSS variables)
- `theme.spacing(N)` → `themeCssVariables.spacing[N]`
- `styled(motion.div)` → `motion.create(StyledBase)` (11 components)
- `styled(Component)<TypeParams>` → wrapper div approach for non-HTML
elements
- Multi-declaration interpolations split into one CSS property per
interpolation
- Interpolation return types fixed (`&&` → ternary `? : ''`)
- `TEXT_INPUT_STYLE` converted from function to static string constant
(backward compatible)
- Emotion `<Global>` replaced with `useEffect` style injection
- Complex runtime-dependent styles use CSS custom properties via
`style={}` prop

### After this PR

- **Remaining files**: ~400 (object-record: ~160, settings: ~200, UI:
~44)
- **No breaking changes**: CSS variables resolve identically to the
previous Emotion theme values
2026-03-03 16:42:03 +01:00
martmullandGitHub 8b26020a0b Fix missing omit in application config (#18354)
as title
2026-03-03 16:33:49 +01:00
b1107c823a Apollo enrich (#18277)
- apollo enrich application (via OAuth 2)
- add applicationId to var env in logic function executor
- update `getDefaultUrl` logic

---------

Co-authored-by: Charles Bochet <charles@twenty.com>
2026-03-03 14:43:10 +01:00
martmullandGitHub 5c4a1f931a Fix trigger missing (#18348)
## After

<img width="1170" height="448" alt="image"
src="https://github.com/user-attachments/assets/3a8dd77c-06d2-438e-b2d3-07d272c08588"
/>

<img width="977" height="441" alt="image"
src="https://github.com/user-attachments/assets/3e16ec94-63ce-4d09-af54-38f330bfa0c9"
/>

<img width="802" height="333" alt="image"
src="https://github.com/user-attachments/assets/0975f199-b89a-4a05-a8e4-2101f5556445"
/>
2026-03-03 14:37:17 +01:00
4266f4022a i18n - translations (#18349)
Created by Github action

---------

Co-authored-by: github-actions <github-actions@twenty.com>
2026-03-03 14:24:43 +01:00
Thomas TrompetteandGitHub b2b3a3f860 Workflow iterator continues on faillure (#18325)
<img width="450" height="212" alt="Capture d’écran 2026-03-03 à 11 41
54"
src="https://github.com/user-attachments/assets/b2c29a48-7dc0-4b16-a085-8f305d21f7ca"
/>

New status `FAIL_SAFE` added. This status propagates to the following
nodes until reaching the iterator, that will start the new iteration.

The difference with `SKIP` is that, when the parent nodes have at least
one `FAIL_SAFE`, it becomes `FAIL_SAFE` too. While a parent 1 `SKIP` +
parent 2 `SUCCESS` => to be executed.

I also thought about just going back to the iterator as a break would,
but since we have branches, it may lead to inconsistent statuses with
parallel updates.
2026-03-03 14:18:57 +01:00
Paul RastoinandGitHub 005223de8c [SDK] Make public-operations non throw (#18343)
Followup https://github.com/twentyhq/twenty/pull/18320
2026-03-03 14:04:13 +01:00
Abdul Rahman 785c987e19 feat: enhance drag-and-drop functionality in FavoritesDragDropProviderContent
Added support for favorites drag-and-drop interactions by introducing the `getFavoritesDropTargetIdFromDestination` utility and integrating it into the `handleDragUpdate` and `handleDragEnd` methods. This enhancement improves user experience when managing favorite items within the navigation menu.
2026-03-03 17:40:31 +05:30
Abdul Rahman 379cbaaef8 refactor: update styled component for NavigationMenuItemDroppable
Refactored the `StyledDroppableWrapper` component to utilize data attributes for drag-and-drop states instead of props. This change enhances code clarity and maintainability while ensuring consistent styling behavior during drag-and-drop interactions.
2026-03-03 17:39:39 +05:30
Abdul Rahman 9726a4415c refactor: remove unused styled component in NavigationDrawerSectionForWorkspaceItems
Eliminated the `StyledWorkspaceDroppableList` styled component and its associated imports to streamline the code and improve maintainability. This change contributes to a cleaner component structure in the NavigationDrawerSectionForWorkspaceItems.
2026-03-03 17:28:11 +05:30
Abdul Rahman 852585709a Merge branch 'main' into dnd-kit-navbar-drag-drop 2026-03-03 17:27:54 +05:30
Abdul Rahman a4779365a8 feat: wrap CurrentWorkspaceMemberNavigationMenuItemFolders in FavoritesDragDropProviderContent
Enhanced the CurrentWorkspaceMemberNavigationMenuItemFoldersDispatcher component by wrapping the CurrentWorkspaceMemberNavigationMenuItemFolders with FavoritesDragDropProviderContent. This change supports drag-and-drop functionality within the navigation menu item editing context, improving user experience during folder management.
2026-03-03 17:26:42 +05:30
Abdul Rahman c800f4158e refactor: simplify styled component for navigation drop target
Refactored the `StyledDropTarget` component by removing unnecessary props and utilizing data attributes for drag-and-drop states. This change enhances code clarity and maintainability while ensuring consistent styling behavior during drag-and-drop interactions.
2026-03-03 17:17:51 +05:30