From 7c0136b97b7d1d1a6f4f40e7c4343e618563cd67 Mon Sep 17 00:00:00 2001 From: Charles Bochet Date: Sun, 14 Jun 2026 15:42:22 +0200 Subject: [PATCH] feat(deps): migrate frontend to React 19 (#21531) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ## What Migrates the frontend stack from **React 18.3 → 19.2**. The website, sdk, companion and emails packages were already on React 19; this brings the remaining holdouts (`twenty-front`, `twenty-ui`, `twenty-ui-deprecated`, `twenty-front-component-renderer`) and `twenty-server`'s email rendering onto 19, and pins a single React version repo-wide. ## Why React 18.x is now the legacy line. Staying current keeps us on the patched/maintained branch and unblocks downstream library majors (react-router 7, mantine 9, etc.) that require React 19 peers. ## Dependency bumps (required by React 19 peers / removed APIs) | Package | From | To | Reason | |---|---|---|---| | react / react-dom | 18.3.1 | 19.2.3 | core | | @hello-pangea/dnd | 16 | 18 | peer `^18 \|\| ^19` | | react-datepicker | 6 | 9 | v<7 used removed `findDOMNode`; drops `@types/react-datepicker` | | react-data-grid | beta.13 | beta.59 | peer `^19.2`; new render API | | graphiql (+ @graphiql/react, plugin-explorer) | 3 / 0.23 / 1 | 5 / 0.37 / 5.1 | peer `^18 \|\| ^19` | | react-helmet-async | 1.3 | **@dr.pogodin/react-helmet** 3.2 | upstream caps peer at `^18`; drop-in React 19 fork | A `resolutions` pin enforces a single React (19.2.3) + `@types/react` (19.2.14) across the monorepo to avoid duplicate copies / type-identity splits. Versions are the aged lockfile patches (clears the `npmMinimalAgeGate`). ## Code changes - **Global `JSX` shim** (`react-jsx-global.d.ts` per package): React 19 moved the `JSX` namespace under `React.JSX`; several deps' published types (notably `@linaria/react`'s `styled.d.ts`, which types every `styled.x` via `keyof JSX.IntrinsicElements`) still reference the global namespace. Without the shim, every styled component degrades to `any` props. - **Ref nullability**: `useRef(null)` now returns `RefObject`; widened consumer prop/hook ref types accordingly (incl. the shared `useListenClickOutside`). - **react-datepicker v9**: `onChange`/`onSelect` accept `Date | null`, `calendarStartDay` typing, `ReactDatePickerProps`→`DatePickerProps`, relaxed the dynamic `selectsMultiple` discriminated union. - **react-data-grid beta.59**: `formatter`→`renderCell`, `editor`→`renderEditCell`, `headerRenderer`→`renderHeaderCell`, `components`→`renderers`, `onRowClick`→`onCellClick`, object-shaped `useRowSelection`, Set-based selection. - **dnd style cast**: `@radix-ui/react-popper` augments `CSSProperties` with a `--radix-*` index signature that dnd's closed `DraggingStyle` doesn't satisfy → cast at the spread. ## Status / testing - ✅ `typecheck` green: twenty-front, twenty-ui, twenty-ui-deprecated, twenty-front-component-renderer, twenty-server - ⏳ build / lint / unit tests / storybook+argos / runtime smoke-test in progress Draft until local + CI verification completes. Notable behavior to QA manually: spreadsheet import (data-grid), date pickers, drag-and-drop boards/lists, GraphQL playground, page titles/favicon. Review in cubic --- package.json | 7 +- packages/twenty-companion/package.json | 4 +- packages/twenty-emails/package.json | 4 +- .../src/components/BaseEmail.tsx | 1 + .../src/components/CallToAction.tsx | 1 + .../src/components/HighlightedContainer.tsx | 2 +- .../twenty-emails/src/components/Link.tsx | 1 + .../twenty-emails/src/components/MainText.tsx | 1 + .../src/components/ShadowText.tsx | 1 + .../twenty-emails/src/components/SubTitle.tsx | 1 + .../twenty-emails/src/components/Title.tsx | 1 + .../email-renderer/renderers/render-node.tsx | 2 +- .../package.json | 8 +- .../form/form/form-submit.front-component.tsx | 6 +- .../table/table-click.front-component.tsx | 2 +- .../table-focus-blur.front-component.tsx | 2 +- .../src/host/utils/createHtmlHostWrapper.ts | 25 +- packages/twenty-front/jest.config.mjs | 1 + packages/twenty-front/package.json | 19 +- .../src/modules/app/components/App.tsx | 2 +- .../components/RecordBoardDragSelect.tsx | 2 +- .../RecordBoardCardDraggableContainer.tsx | 5 +- .../RecordBoardColumnCardsContainer.tsx | 5 +- .../RecordCalendarCardDraggableContainer.tsx | 5 +- .../perf/ActorFieldDisplay.perf.stories.tsx | 2 +- .../perf/AddressFieldDisplay.perf.stories.tsx | 2 +- .../perf/BooleanFieldDisplay.perf.stories.tsx | 2 +- .../perf/ChipFieldDisplay.perf.stories.tsx | 2 +- .../CurrencyFieldDisplay.perf.stories.tsx | 2 +- .../perf/DateFieldDisplay.perf.stories.tsx | 2 +- .../DateTimeFieldDisplay.perf.stories.tsx | 2 +- .../perf/EmailsFieldDisplay.perf.stories.tsx | 2 +- .../perf/FilesFieldDisplay.perf.stories.tsx | 2 +- .../FullNameFieldDisplay.perf.stories.tsx | 2 +- .../perf/LinksFieldDisplay.perf.stories.tsx | 2 +- .../MultiSelectFieldDisplay.perf.stories.tsx | 2 +- .../perf/NumberFieldDisplay.perf.stories.tsx | 2 +- .../perf/PhonesFieldDisplay.perf.stories.tsx | 2 +- .../perf/RatingFieldDisplay.perf.stories.tsx | 2 +- ...ationFromManyFieldDisplay.perf.stories.tsx | 2 +- ...RelationToOneFieldDisplay.perf.stories.tsx | 2 +- .../perf/SelectFieldDisplay.perf.stories.tsx | 2 +- .../perf/TextFieldDisplay.perf.stories.tsx | 2 +- ...ltipleRecordPickerOnClickOutsideEffect.tsx | 2 +- .../RecordTableBodyEffectsWrapper.tsx | 2 +- .../components/RecordTableContent.tsx | 2 +- .../components/RecordTableEmpty.tsx | 2 +- .../perf/RecordTableCell.perf.stories.tsx | 2 +- ...RecordTableBodyFocusClickOutsideEffect.tsx | 2 +- .../PageLayoutGridLayoutDragSelector.tsx | 2 +- .../PageLayoutVerticalListEditor.tsx | 4 +- .../FieldsConfigurationGroupEditor.tsx | 3 +- .../components/BarChartBaseLayerEffect.tsx | 2 +- .../components/BarChartHoverLayerEffect.tsx | 2 +- .../components/BarChartTooltip.tsx | 2 +- .../components/GraphLineChartTooltip.tsx | 2 +- .../components/GraphPieChartTooltip.tsx | 2 +- .../SettingsObjectRelationItemTableRow.tsx | 15 +- .../components/GraphQLPlayground.tsx | 4 +- ...nelAddToNavigationDraggablePlaceholder.tsx | 4 +- .../SidePanelTopBarInputFocusEffect.tsx | 2 +- .../components/SpreadsheetImportTable.tsx | 15 +- .../components/SelectColumn.tsx | 9 +- .../components/SelectHeaderTable.tsx | 15 +- .../ValidationStep/ValidationStep.tsx | 5 +- .../ValidationStep/components/columns.tsx | 14 +- .../components/GlobalFilePreviewModal.tsx | 2 +- .../perf/EllipsisDisplay.perf.stories.tsx | 2 +- .../field/input/hooks/useFocusManagement.ts | 2 +- .../internal/date/components/DatePicker.tsx | 33 +- .../components/DatePickerWithoutCalendar.tsx | 21 +- .../date/components/DateTimePicker.tsx | 33 +- .../components/DraggableItem.tsx | 2 +- .../utils/getCssCompatibleDraggableProps.ts | 15 + .../components/FullScreenContainer.tsx | 1 + .../ModalHotkeysAndClickOutsideEffect.tsx | 2 +- .../components/NavigationDrawerInput.tsx | 2 +- .../components/NavigationDrawerItem.tsx | 2 +- .../ui/theme/components/BaseThemeProvider.tsx | 2 +- .../components/NodeDimensionEffect.tsx | 2 +- .../drag-select/components/DragSelect.tsx | 2 +- .../page-favicon/components/PageFavicon.tsx | 2 +- .../page-title/components/PageTitle.tsx | 2 +- .../hooks/useListenClickOutside.ts | 2 +- ...ightClickCommandMenuClickOutsideEffect.tsx | 2 +- .../twenty-front/src/pages/auth/SignInUp.tsx | 2 +- .../SettingsGraphQLPlayground.stories.tsx | 6 + .../src/testing/ComponentStorybookLayout.tsx | 1 + .../src/testing/FullHeightStorybookLayout.tsx | 1 + .../ComponentWithRouterDecorator.tsx | 1 + .../decorators/HelmetProviderDecorator.tsx | 2 +- .../src/testing/decorators/PageDecorator.tsx | 4 +- .../src/types/ComponentParameters.ts | 1 + packages/twenty-sdk/package.json | 8 +- packages/twenty-server/package.json | 6 +- .../send-email-body-rendering.spec.ts | 2 +- ...rkspace-migration.integration-spec.ts.snap | 1 + packages/twenty-ui-deprecated/package.json | 10 +- .../display/icon/providers/IconsProvider.tsx | 2 +- .../src/layout/modal/types/ModalProps.ts | 2 +- .../src/testing/ComponentStorybookLayout.tsx | 1 + .../ComponentWithRouterDecorator.tsx | 1 + .../animation/components/AnimatedRotate.tsx | 2 +- packages/twenty-ui/package.json | 8 +- .../display/icon/providers/IconsProvider.tsx | 2 +- .../src/layout/modal/types/ModalProps.ts | 2 +- .../src/testing/ComponentStorybookLayout.tsx | 1 + .../ComponentWithRouterDecorator.tsx | 1 + .../animation/components/AnimatedRotate.tsx | 2 +- packages/twenty-website/package.json | 8 +- .../components/MarkdownProse.tsx | 2 +- yarn.lock | 1812 +++++++---------- 112 files changed, 1065 insertions(+), 1217 deletions(-) create mode 100644 packages/twenty-front/src/modules/ui/layout/draggable-list/utils/getCssCompatibleDraggableProps.ts diff --git a/package.json b/package.json index 1a690279fd..c8db890bfa 100644 --- a/package.json +++ b/package.json @@ -7,8 +7,8 @@ "@nx/storybook": "22.7.5", "@nx/vite": "22.7.5", "@nx/web": "22.7.5", - "@types/react": "^18.2.39", - "@types/react-dom": "^18.2.15", + "@types/react": "^19.2.0", + "@types/react-dom": "^19.2.0", "@yarnpkg/types": "^4.0.0", "concurrently": "^8.2.2", "http-server": "^14.1.1", @@ -26,6 +26,7 @@ "name": "twenty", "packageManager": "yarn@4.13.0", "resolutions": { + "@remote-dom/react/@types/react": "^19.2.0", "graphql": "16.8.1", "graphql-redis-subscriptions/ioredis": "5.10.1", "@types/qs": "6.9.16", @@ -50,7 +51,7 @@ "@react-email/ui/esbuild": "0.28.1", "react-email/esbuild": "0.28.1" }, - "//resolutions": "Each entry is load-bearing: it forces a version OUTSIDE some parent's declared range where no fixed upstream release exists; remove each once its blocker ships. graphql 16.8.1 -> singleton pin held below msw's ^16.12.0 dep and @nestjs/graphql's ^16.11.0 peer; drop after a validated repo-wide bump to latest 16.x; graphql-redis-subscriptions/ioredis 5.10.1 -> TS type-identity dedup: twenty-server passes its ioredis client into RedisPubSub, so this must equal the exact ioredis version pinned by twenty-server and bullmq (bump in lockstep); @types/qs 6.9.16 -> holdback below the 6.9.17 ParsedQs typing break (node-saml wants ^6.9.18); @opentelemetry/api 1.9.1 -> singleton guard for the NoopMeterProvider bug (#20231): ai 6.0.x pins 1.9.0 exact vs @sentry/node ^1.9.1, drop when workspace ai >=6.0.178 AND @scalar/agent-chat moves off ai 6.0.33; chokidar ^3 -> NestJS CLI watch needs fsevents on macOS, removed in chokidar 4/5 (#20316); tmp ^0.2.7 -> CVE, zapier-platform-cli 19 (latest) pins 0.2.5 and inquirer 7/8's external-editor wants ^0.0.33; make-fetch-happen ^15 + @electron/{rebuild,node-gyp}/tar ^7.5.16 -> tar CVE eviction for the @electron/rebuild 3.x toolchain (rebuild 3.x pins tar ^6, its node-gyp fork pins tar ^6.2.1 + mfh ^10), drop when electron-forge declares @electron/rebuild >=4; @angular-devkit/core 19.2.24 -> picomatch CVE, blocked on @nestjs/cli >11.0.23 fixing the dist/src output regression (repo held at 11.0.16); yeoman-environment 6.0.1 -> CVE, zapier-platform-cli 19 (latest) pins 4.4.3; webpack-dev-server 5.2.4 -> CVE, @electron-forge/plugin-webpack (incl. 8.x alphas) still declares ^4; express/qs + @cypress/request/qs 6.15.2 -> qs CVE for old express 4.22.0/4.22.1 pinned by @mintlify/previewing and verdaccio (verdaccio also pins @cypress/request 3.0.10; all other qs parents resolve safe naturally); next/postcss 8.5.15 -> postcss CVE, every stable next pins 8.4.31 exact (fix only in 16.3.0 canaries; @react-email/ui also pins next 16.2.6); /uuid 11.1.1 -> uuid CVE for parents pinning uuid <11 with no fixed release (sockjs dormant since 2021; @cypress/request 3.0.10 via verdaccio; @ptc-org/nestjs-query-typeorm at latest; googleapis 105 -> common 8 drops uuid but needs the googleapis >=152 migration). Preserves the intentional uuid 13.x; @cyntler/react-doc-viewer/ajv 8.20.0 -> CVE, upstream (latest 1.17.1) pins ajv ^7 but never imports it, forcing v8 is safe; wrangler/esbuild + @react-email/ui/esbuild + react-email/esbuild 0.28.1 -> esbuild dev-server path-traversal GHSA-g7r4-m6w7-qqqr (Windows, vulnerable >=0.27.3 <0.28.1, fixed in 0.28.1): wrangler exact-pins esbuild 0.27.3 (still 0.27.3 in latest 4.100.0) and @react-email/ui exact-pins 0.28.0 (still 0.28.0 in latest 6.6.0) with no fixed upstream release; react-email allows ^0.28.0 but the npmMinimalAgeGate down-selects it to the still-vulnerable 0.28.0 until 0.28.1 ages past the gate (published 2026-06-11), so it is pinned forward here. Drop the exact-pin parents once they ship an esbuild >=0.28.1 pin; drop react-email once 0.28.1 clears the age gate (it then resolves to it naturally). Our own twenty-client-sdk raises its esbuild floor to ^0.28.1 directly in its package.json instead of via a resolution", + "//resolutions": "Each entry is load-bearing: it forces a version OUTSIDE some parent's declared range where no fixed upstream release exists; remove each once its blocker ships. @remote-dom/react/@types/react ^19.2.0 -> React type-identity dedup, SCOPED to @remote-dom/react only (every other package resolves @types/react 19 naturally from the workspace ^19.2.0 ranges). @remote-dom/react (transitive via twenty-front-component-renderer) lists @types/react ^18 in its own dependencies and nests its own copy; React 18 and 19 declare ReactNode differently (19 adds bigint + Promise, drops ReactFragment's {}), so the two copies are mutually non-assignable and break twenty-front's typecheck (~156 TS2322 errors). Range-aligning our own packages can't fix a third-party's transitive @types pin, hence this single scoped override (only @types/react splits; runtime react/react-dom are peer-deps that converge naturally, and @types/react-dom does not nest a copy). Drop once @remote-dom/react widens @types/react to ^19 (latest 1.2.2 still pins ^18; tracked upstream in Shopify/remote-dom#153). graphql 16.8.1 -> singleton pin held below msw's ^16.12.0 dep and @nestjs/graphql's ^16.11.0 peer; drop after a validated repo-wide bump to latest 16.x; graphql-redis-subscriptions/ioredis 5.10.1 -> TS type-identity dedup: twenty-server passes its ioredis client into RedisPubSub, so this must equal the exact ioredis version pinned by twenty-server and bullmq (bump in lockstep); @types/qs 6.9.16 -> holdback below the 6.9.17 ParsedQs typing break (node-saml wants ^6.9.18); @opentelemetry/api 1.9.1 -> singleton guard for the NoopMeterProvider bug (#20231): ai 6.0.x pins 1.9.0 exact vs @sentry/node ^1.9.1, drop when workspace ai >=6.0.178 AND @scalar/agent-chat moves off ai 6.0.33; chokidar ^3 -> NestJS CLI watch needs fsevents on macOS, removed in chokidar 4/5 (#20316); tmp ^0.2.7 -> CVE, zapier-platform-cli 19 (latest) pins 0.2.5 and inquirer 7/8's external-editor wants ^0.0.33; make-fetch-happen ^15 + @electron/{rebuild,node-gyp}/tar ^7.5.16 -> tar CVE eviction for the @electron/rebuild 3.x toolchain (rebuild 3.x pins tar ^6, its node-gyp fork pins tar ^6.2.1 + mfh ^10), drop when electron-forge declares @electron/rebuild >=4; @angular-devkit/core 19.2.24 -> picomatch CVE, blocked on @nestjs/cli >11.0.23 fixing the dist/src output regression (repo held at 11.0.16); yeoman-environment 6.0.1 -> CVE, zapier-platform-cli 19 (latest) pins 4.4.3; webpack-dev-server 5.2.4 -> CVE, @electron-forge/plugin-webpack (incl. 8.x alphas) still declares ^4; express/qs + @cypress/request/qs 6.15.2 -> qs CVE for old express 4.22.0/4.22.1 pinned by @mintlify/previewing and verdaccio (verdaccio also pins @cypress/request 3.0.10; all other qs parents resolve safe naturally); next/postcss 8.5.15 -> postcss CVE, every stable next pins 8.4.31 exact (fix only in 16.3.0 canaries; @react-email/ui also pins next 16.2.6); /uuid 11.1.1 -> uuid CVE for parents pinning uuid <11 with no fixed release (sockjs dormant since 2021; @cypress/request 3.0.10 via verdaccio; @ptc-org/nestjs-query-typeorm at latest; googleapis 105 -> common 8 drops uuid but needs the googleapis >=152 migration). Preserves the intentional uuid 13.x; @cyntler/react-doc-viewer/ajv 8.20.0 -> CVE, upstream (latest 1.17.1) pins ajv ^7 but never imports it, forcing v8 is safe; wrangler/esbuild + @react-email/ui/esbuild + react-email/esbuild 0.28.1 -> esbuild dev-server path-traversal GHSA-g7r4-m6w7-qqqr (Windows, vulnerable >=0.27.3 <0.28.1, fixed in 0.28.1): wrangler exact-pins esbuild 0.27.3 (still 0.27.3 in latest 4.100.0) and @react-email/ui exact-pins 0.28.0 (still 0.28.0 in latest 6.6.0) with no fixed upstream release; react-email allows ^0.28.0 but the npmMinimalAgeGate down-selects it to the still-vulnerable 0.28.0 until 0.28.1 ages past the gate (published 2026-06-11), so it is pinned forward here. Drop the exact-pin parents once they ship an esbuild >=0.28.1 pin; drop react-email once 0.28.1 clears the age gate (it then resolves to it naturally). Our own twenty-client-sdk raises its esbuild floor to ^0.28.1 directly in its package.json instead of via a resolution", "version": "0.2.1", "nx": {}, "scripts": { diff --git a/packages/twenty-companion/package.json b/packages/twenty-companion/package.json index 9160a866e9..50673e5368 100644 --- a/packages/twenty-companion/package.json +++ b/packages/twenty-companion/package.json @@ -53,8 +53,8 @@ "express": "^4.18.2", "marked": "^5.0.0", "openai": "^4.97.0", - "react": "^19.1.0", - "react-dom": "^19.1.0", + "react": "^19.2.0", + "react-dom": "^19.2.0", "react-markdown": "^10.1.0", "zod": "^3.25.76" } diff --git a/packages/twenty-emails/package.json b/packages/twenty-emails/package.json index d5b520340b..557ed1f7ad 100644 --- a/packages/twenty-emails/package.json +++ b/packages/twenty-emails/package.json @@ -24,8 +24,8 @@ "@lingui/vite-plugin": "^5.9.5", "@react-email/ui": "6.5.0", "@tiptap/core": "^3.4.2", - "@types/react": "^19", - "@types/react-dom": "^19", + "@types/react": "^19.2.0", + "@types/react-dom": "^19.2.0", "@typescript/native-preview": "^7.0.0-dev.20260116.1", "@vitejs/plugin-react-swc": "^4.3.1", "react-email": "6.5.0", diff --git a/packages/twenty-emails/src/components/BaseEmail.tsx b/packages/twenty-emails/src/components/BaseEmail.tsx index a45efbe063..ec8133ca89 100644 --- a/packages/twenty-emails/src/components/BaseEmail.tsx +++ b/packages/twenty-emails/src/components/BaseEmail.tsx @@ -1,3 +1,4 @@ +import { type JSX } from 'react'; import { I18nProvider } from '@lingui/react'; import { Container, Html } from '@react-email/components'; diff --git a/packages/twenty-emails/src/components/CallToAction.tsx b/packages/twenty-emails/src/components/CallToAction.tsx index 3a86dcbb0a..b284a56be2 100644 --- a/packages/twenty-emails/src/components/CallToAction.tsx +++ b/packages/twenty-emails/src/components/CallToAction.tsx @@ -1,3 +1,4 @@ +import { type JSX } from 'react'; import { Button } from '@react-email/components'; import { emailTheme } from 'src/common-style'; diff --git a/packages/twenty-emails/src/components/HighlightedContainer.tsx b/packages/twenty-emails/src/components/HighlightedContainer.tsx index 98ed627939..c4b72d6dab 100644 --- a/packages/twenty-emails/src/components/HighlightedContainer.tsx +++ b/packages/twenty-emails/src/components/HighlightedContainer.tsx @@ -1,5 +1,5 @@ import { Column, Container, Row } from '@react-email/components'; -import React from 'react'; +import React, { type JSX } from 'react'; import { emailTheme } from 'src/common-style'; diff --git a/packages/twenty-emails/src/components/Link.tsx b/packages/twenty-emails/src/components/Link.tsx index d088d4490b..1137ad3140 100644 --- a/packages/twenty-emails/src/components/Link.tsx +++ b/packages/twenty-emails/src/components/Link.tsx @@ -1,3 +1,4 @@ +import { type JSX } from 'react'; import { Link as EmailLink } from '@react-email/components'; import { emailTheme } from 'src/common-style'; diff --git a/packages/twenty-emails/src/components/MainText.tsx b/packages/twenty-emails/src/components/MainText.tsx index 1a08cee6b4..9eba9072bb 100644 --- a/packages/twenty-emails/src/components/MainText.tsx +++ b/packages/twenty-emails/src/components/MainText.tsx @@ -1,3 +1,4 @@ +import { type JSX } from 'react'; import { Text } from '@react-email/components'; import { emailTheme } from 'src/common-style'; diff --git a/packages/twenty-emails/src/components/ShadowText.tsx b/packages/twenty-emails/src/components/ShadowText.tsx index ac9fd6e0d0..80aced0a5d 100644 --- a/packages/twenty-emails/src/components/ShadowText.tsx +++ b/packages/twenty-emails/src/components/ShadowText.tsx @@ -1,3 +1,4 @@ +import { type JSX } from 'react'; import { Text } from '@react-email/components'; import { emailTheme } from 'src/common-style'; diff --git a/packages/twenty-emails/src/components/SubTitle.tsx b/packages/twenty-emails/src/components/SubTitle.tsx index 30202b492e..1c1b31932e 100644 --- a/packages/twenty-emails/src/components/SubTitle.tsx +++ b/packages/twenty-emails/src/components/SubTitle.tsx @@ -1,3 +1,4 @@ +import { type JSX } from 'react'; import { Heading } from '@react-email/components'; import { emailTheme } from 'src/common-style'; diff --git a/packages/twenty-emails/src/components/Title.tsx b/packages/twenty-emails/src/components/Title.tsx index 4fc573ff67..e2e5af01d0 100644 --- a/packages/twenty-emails/src/components/Title.tsx +++ b/packages/twenty-emails/src/components/Title.tsx @@ -1,3 +1,4 @@ +import { type JSX } from 'react'; import { Heading } from '@react-email/components'; import { emailTheme } from 'src/common-style'; diff --git a/packages/twenty-emails/src/utils/email-renderer/renderers/render-node.tsx b/packages/twenty-emails/src/utils/email-renderer/renderers/render-node.tsx index 7744ac5f73..7626067256 100644 --- a/packages/twenty-emails/src/utils/email-renderer/renderers/render-node.tsx +++ b/packages/twenty-emails/src/utils/email-renderer/renderers/render-node.tsx @@ -1,5 +1,5 @@ import { type JSONContent } from '@tiptap/core'; -import { Fragment, type ReactNode } from 'react'; +import { type JSX, Fragment, type ReactNode } from 'react'; import { TIPTAP_NODE_TYPES, type TipTapNodeType } from 'twenty-shared/utils'; import { bulletList } from '@/utils/email-renderer/nodes/bullet-list'; import { hardBreak } from '@/utils/email-renderer/nodes/hard-break'; diff --git a/packages/twenty-front-component-renderer/package.json b/packages/twenty-front-component-renderer/package.json index a89a387d00..6aa475f4a1 100644 --- a/packages/twenty-front-component-renderer/package.json +++ b/packages/twenty-front-component-renderer/package.json @@ -24,8 +24,8 @@ "@remote-dom/core": "^1.10.1", "@remote-dom/react": "^1.2.2", "@sniptt/guards": "^0.2.0", - "react": "^18.2.0", - "react-dom": "^18.2.0", + "react": "^19.2.0", + "react-dom": "^19.2.0", "zod": "^4.1.11" }, "devDependencies": { @@ -36,8 +36,8 @@ "@storybook/addon-vitest": "^10.2.13", "@storybook/react-vite": "^10.2.13", "@types/node": "^24.0.0", - "@types/react": "^18.2.39", - "@types/react-dom": "^18.2.15", + "@types/react": "^19.2.0", + "@types/react-dom": "^19.2.0", "@typescript/native-preview": "^7.0.0-dev.20260116.1", "@vitest/browser-playwright": "^4.1.0", "playwright": "^1.60.0", diff --git a/packages/twenty-front-component-renderer/src/__stories__/html-tag/form/form/form-submit.front-component.tsx b/packages/twenty-front-component-renderer/src/__stories__/html-tag/form/form/form-submit.front-component.tsx index 4a8663b1ff..7d892f419b 100644 --- a/packages/twenty-front-component-renderer/src/__stories__/html-tag/form/form/form-submit.front-component.tsx +++ b/packages/twenty-front-component-renderer/src/__stories__/html-tag/form/form/form-submit.front-component.tsx @@ -24,11 +24,7 @@ const FormSubmitFrontComponent = () => { return ( -
+ { tabIndex={0} style={FILL_RECT_STYLE} > - table + table {interactionCount} diff --git a/packages/twenty-front-component-renderer/src/__stories__/html-tag/table/table/table-focus-blur.front-component.tsx b/packages/twenty-front-component-renderer/src/__stories__/html-tag/table/table/table-focus-blur.front-component.tsx index 238efff3ba..0309e59ff9 100644 --- a/packages/twenty-front-component-renderer/src/__stories__/html-tag/table/table/table-focus-blur.front-component.tsx +++ b/packages/twenty-front-component-renderer/src/__stories__/html-tag/table/table/table-focus-blur.front-component.tsx @@ -23,7 +23,7 @@ const TableFocusBlurFrontComponent = () => { tabIndex={0} style={FILL_RECT_STYLE} > - table + table {interactionCount} diff --git a/packages/twenty-front-component-renderer/src/host/utils/createHtmlHostWrapper.ts b/packages/twenty-front-component-renderer/src/host/utils/createHtmlHostWrapper.ts index c4c698987f..f06f48a206 100644 --- a/packages/twenty-front-component-renderer/src/host/utils/createHtmlHostWrapper.ts +++ b/packages/twenty-front-component-renderer/src/host/utils/createHtmlHostWrapper.ts @@ -406,6 +406,7 @@ const createCaretPreservingElement = ( export const createHtmlHostWrapper = (htmlTag: string) => { const isVoid = VOID_ELEMENTS.has(htmlTag); const isIframe = htmlTag === 'iframe'; + const isForm = htmlTag === 'form'; return ({ children, ...props }: WrapperProps) => { const setEditableFocused = useContext(FrontComponentInputFocusContext); @@ -413,7 +414,29 @@ export const createHtmlHostWrapper = (htmlTag: string) => { const forcedProps: Record | undefined = isIframe ? { sandbox: sanitizeIframeSandbox(reactProps.sandbox) } - : undefined; + : isForm + ? { + // The remote component's onSubmit is forwarded asynchronously across + // the remote-dom boundary, so its preventDefault lands too late to + // stop a native form submission (which navigates and closes the + // page). Guard synchronously on the host while still forwarding the + // event to the remote handler. (React 19 also blocks the previous + // `action="javascript:void(0)"` guard.) + onSubmit: (event: React.FormEvent) => { + event.preventDefault(); + const remoteOnSubmit = reactProps.onSubmit; + // The remote prop is untrusted across the remote-dom boundary, so + // it may not be a function — guard before invoking. + if (typeof remoteOnSubmit === 'function') { + ( + remoteOnSubmit as ( + event: React.FormEvent, + ) => void + )(event); + } + }, + } + : undefined; if ( htmlTag === 'textarea' || diff --git a/packages/twenty-front/jest.config.mjs b/packages/twenty-front/jest.config.mjs index 1f1f67a413..9fbee936a2 100644 --- a/packages/twenty-front/jest.config.mjs +++ b/packages/twenty-front/jest.config.mjs @@ -90,6 +90,7 @@ const jestConfig = { maxWorkers: 3, workerIdleMemoryLimit: '512MB', errorOnDeprecated: true, + testTimeout: 30000, }; export default jestConfig; diff --git a/packages/twenty-front/package.json b/packages/twenty-front/package.json index e3e47b11a7..2880291e7f 100644 --- a/packages/twenty-front/package.json +++ b/packages/twenty-front/package.json @@ -38,10 +38,11 @@ "@cyntler/react-doc-viewer": "^1.17.0", "@dagrejs/dagre": "^1.1.8", "@dnd-kit/react": "^0.3.2", + "@dr.pogodin/react-helmet": "^3.2.2", "@floating-ui/react": "^0.24.3", - "@graphiql/plugin-explorer": "^1.0.2", - "@graphiql/react": "^0.23.0", - "@hello-pangea/dnd": "^16.2.0", + "@graphiql/plugin-explorer": "^5.1.2", + "@graphiql/react": "^0.37.6", + "@hello-pangea/dnd": "^18.0.1", "@hookform/resolvers": "^5.2.2", "@lingui/core": "^5.9.5", "@lingui/detect-locale": "^5.9.5", @@ -89,7 +90,7 @@ "file-saver": "^2.0.5", "framer-motion": "^11.18.0", "fuse.js": "^7.1.0", - "graphiql": "^3.1.1", + "graphiql": "^5.2.3", "graphql": "16.8.1", "graphql-sse": "^2.5.4", "graphql-tag": "^2.12.6", @@ -113,14 +114,13 @@ "papaparse": "^5.4.1", "pluralize": "^8.0.0", "qs": "^6.15.2", - "react": "^18.2.0", - "react-data-grid": "7.0.0-beta.13", - "react-datepicker": "^6.7.1", - "react-dom": "^18.2.0", + "react": "^19.2.0", + "react-data-grid": "7.0.0-beta.59", + "react-datepicker": "^9.1.0", + "react-dom": "^19.2.0", "react-dropzone": "^14.2.3", "react-error-boundary": "^4.0.11", "react-grid-layout": "^1.5.2", - "react-helmet-async": "^1.3.0", "react-hook-form": "^7.45.1", "react-hotkeys-hook": "^4.4.4", "react-imask": "^7.6.0", @@ -175,7 +175,6 @@ "@types/jest": "^30.0.0", "@types/js-cookie": "^3.0.3", "@types/json-logic-js": "^2", - "@types/react-datepicker": "^6.2.0", "@types/react-grid-layout": "^1", "@types/uuid": "^9.0.2", "@vitejs/plugin-react-swc": "^4.3.1", diff --git a/packages/twenty-front/src/modules/app/components/App.tsx b/packages/twenty-front/src/modules/app/components/App.tsx index fe31eac84f..437e87d193 100644 --- a/packages/twenty-front/src/modules/app/components/App.tsx +++ b/packages/twenty-front/src/modules/app/components/App.tsx @@ -9,7 +9,7 @@ import { i18n } from '@lingui/core'; import { I18nProvider } from '@lingui/react'; import { jotaiStore } from '@/ui/utilities/state/jotai/jotaiStore'; import { Provider as JotaiProvider } from 'jotai'; -import { HelmetProvider } from 'react-helmet-async'; +import { HelmetProvider } from '@dr.pogodin/react-helmet'; import { IconsProvider } from 'twenty-ui-deprecated/display'; import { initialI18nActivate } from '~/utils/i18n/initialI18nActivate'; diff --git a/packages/twenty-front/src/modules/object-record/record-board/components/RecordBoardDragSelect.tsx b/packages/twenty-front/src/modules/object-record/record-board/components/RecordBoardDragSelect.tsx index 0508c6dd80..14f11d74dd 100644 --- a/packages/twenty-front/src/modules/object-record/record-board/components/RecordBoardDragSelect.tsx +++ b/packages/twenty-front/src/modules/object-record/record-board/components/RecordBoardDragSelect.tsx @@ -8,7 +8,7 @@ import { useClickOutsideListener } from '@/ui/utilities/pointer-event/hooks/useC import { useContext, type RefObject } from 'react'; export type RecordBoardDragSelectProps = { - boardRef: RefObject; + boardRef: RefObject; }; export const RecordBoardDragSelect = ({ diff --git a/packages/twenty-front/src/modules/object-record/record-board/record-board-card/components/RecordBoardCardDraggableContainer.tsx b/packages/twenty-front/src/modules/object-record/record-board/record-board-card/components/RecordBoardCardDraggableContainer.tsx index 3f85099651..e6bdabde6e 100644 --- a/packages/twenty-front/src/modules/object-record/record-board/record-board-card/components/RecordBoardCardDraggableContainer.tsx +++ b/packages/twenty-front/src/modules/object-record/record-board/record-board-card/components/RecordBoardCardDraggableContainer.tsx @@ -2,6 +2,7 @@ import { Draggable } from '@hello-pangea/dnd'; import { styled } from '@linaria/react'; import { useContext } from 'react'; +import { getCssCompatibleDraggableProps } from '@/ui/layout/draggable-list/utils/getCssCompatibleDraggableProps'; import { useIsRecordReadOnly } from '@/object-record/read-only/hooks/useIsRecordReadOnly'; import { RecordBoardContext } from '@/object-record/record-board/contexts/RecordBoardContext'; import { RecordBoardCard } from '@/object-record/record-board/record-board-card/components/RecordBoardCard'; @@ -71,7 +72,9 @@ export const RecordBoardCardDraggableContainer = ({ // oxlint-disable-next-line react/jsx-props-no-spreading {...draggableProvided?.dragHandleProps} // oxlint-disable-next-line react/jsx-props-no-spreading - {...draggableProvided?.draggableProps} + {...getCssCompatibleDraggableProps( + draggableProvided.draggableProps, + )} data-selectable-id={recordId} data-select-disable > diff --git a/packages/twenty-front/src/modules/object-record/record-board/record-board-column/components/RecordBoardColumnCardsContainer.tsx b/packages/twenty-front/src/modules/object-record/record-board/record-board-column/components/RecordBoardColumnCardsContainer.tsx index fb646e860e..8b677a1daa 100644 --- a/packages/twenty-front/src/modules/object-record/record-board/record-board-column/components/RecordBoardColumnCardsContainer.tsx +++ b/packages/twenty-front/src/modules/object-record/record-board/record-board-column/components/RecordBoardColumnCardsContainer.tsx @@ -3,6 +3,7 @@ import { styled } from '@linaria/react'; import { useContext } from 'react'; import { themeCssVariables } from 'twenty-ui-deprecated/theme-constants'; +import { getCssCompatibleDraggableProps } from '@/ui/layout/draggable-list/utils/getCssCompatibleDraggableProps'; import { RecordBoardCardDraggableContainer } from '@/object-record/record-board/record-board-card/components/RecordBoardCardDraggableContainer'; import { RecordBoardColumnNewRecordButton } from '@/object-record/record-board/record-board-column/components/RecordBoardColumnNewRecordButton'; @@ -63,7 +64,9 @@ export const RecordBoardColumnCardsContainer = ({
)} diff --git a/packages/twenty-front/src/modules/object-record/record-calendar/record-calendar-card/components/RecordCalendarCardDraggableContainer.tsx b/packages/twenty-front/src/modules/object-record/record-calendar/record-calendar-card/components/RecordCalendarCardDraggableContainer.tsx index 18f8484a63..55f6ce4ed1 100644 --- a/packages/twenty-front/src/modules/object-record/record-calendar/record-calendar-card/components/RecordCalendarCardDraggableContainer.tsx +++ b/packages/twenty-front/src/modules/object-record/record-calendar/record-calendar-card/components/RecordCalendarCardDraggableContainer.tsx @@ -1,6 +1,7 @@ import { styled } from '@linaria/react'; import { Draggable } from '@hello-pangea/dnd'; +import { getCssCompatibleDraggableProps } from '@/ui/layout/draggable-list/utils/getCssCompatibleDraggableProps'; import { useObjectPermissionsForObject } from '@/object-record/hooks/useObjectPermissionsForObject'; import { useIsRecordReadOnly } from '@/object-record/read-only/hooks/useIsRecordReadOnly'; import { isFieldMetadataReadOnlyByPermissions } from '@/object-record/read-only/utils/internal/isFieldMetadataReadOnlyByPermissions'; @@ -80,7 +81,9 @@ export const RecordCalendarCardDraggableContainer = ({ // oxlint-disable-next-line react/jsx-props-no-spreading {...draggableProvided?.dragHandleProps} // oxlint-disable-next-line react/jsx-props-no-spreading - {...draggableProvided?.draggableProps} + {...getCssCompatibleDraggableProps( + draggableProvided.draggableProps, + )} data-selectable-id={recordId} > diff --git a/packages/twenty-front/src/modules/object-record/record-field/ui/meta-types/display/components/__stories__/perf/ActorFieldDisplay.perf.stories.tsx b/packages/twenty-front/src/modules/object-record/record-field/ui/meta-types/display/components/__stories__/perf/ActorFieldDisplay.perf.stories.tsx index 5de3e30906..54f44ffd60 100644 --- a/packages/twenty-front/src/modules/object-record/record-field/ui/meta-types/display/components/__stories__/perf/ActorFieldDisplay.perf.stories.tsx +++ b/packages/twenty-front/src/modules/object-record/record-field/ui/meta-types/display/components/__stories__/perf/ActorFieldDisplay.perf.stories.tsx @@ -35,7 +35,7 @@ export const Default: Story = {}; export const Performance = getProfilingStory({ componentName: 'ActorFieldDisplay', - averageThresholdInMs: 0.2, + averageThresholdInMs: 0.4, numberOfRuns: 20, numberOfTestsPerRun: 100, }); diff --git a/packages/twenty-front/src/modules/object-record/record-field/ui/meta-types/display/components/__stories__/perf/AddressFieldDisplay.perf.stories.tsx b/packages/twenty-front/src/modules/object-record/record-field/ui/meta-types/display/components/__stories__/perf/AddressFieldDisplay.perf.stories.tsx index 421dbf019e..84fb04d59e 100644 --- a/packages/twenty-front/src/modules/object-record/record-field/ui/meta-types/display/components/__stories__/perf/AddressFieldDisplay.perf.stories.tsx +++ b/packages/twenty-front/src/modules/object-record/record-field/ui/meta-types/display/components/__stories__/perf/AddressFieldDisplay.perf.stories.tsx @@ -57,7 +57,7 @@ export const Elipsis: Story = { export const Performance = getProfilingStory({ componentName: 'AddressFieldDisplay', - averageThresholdInMs: 0.15, + averageThresholdInMs: 0.3, numberOfRuns: 20, numberOfTestsPerRun: 100, }); diff --git a/packages/twenty-front/src/modules/object-record/record-field/ui/meta-types/display/components/__stories__/perf/BooleanFieldDisplay.perf.stories.tsx b/packages/twenty-front/src/modules/object-record/record-field/ui/meta-types/display/components/__stories__/perf/BooleanFieldDisplay.perf.stories.tsx index cbc195a53e..04148e042c 100644 --- a/packages/twenty-front/src/modules/object-record/record-field/ui/meta-types/display/components/__stories__/perf/BooleanFieldDisplay.perf.stories.tsx +++ b/packages/twenty-front/src/modules/object-record/record-field/ui/meta-types/display/components/__stories__/perf/BooleanFieldDisplay.perf.stories.tsx @@ -28,7 +28,7 @@ export const Default: Story = {}; export const Performance = getProfilingStory({ componentName: 'BooleanFieldDisplay', - averageThresholdInMs: 0.15, + averageThresholdInMs: 0.3, numberOfRuns: 50, numberOfTestsPerRun: 100, }); diff --git a/packages/twenty-front/src/modules/object-record/record-field/ui/meta-types/display/components/__stories__/perf/ChipFieldDisplay.perf.stories.tsx b/packages/twenty-front/src/modules/object-record/record-field/ui/meta-types/display/components/__stories__/perf/ChipFieldDisplay.perf.stories.tsx index 953b7aa347..1b5c7115a1 100644 --- a/packages/twenty-front/src/modules/object-record/record-field/ui/meta-types/display/components/__stories__/perf/ChipFieldDisplay.perf.stories.tsx +++ b/packages/twenty-front/src/modules/object-record/record-field/ui/meta-types/display/components/__stories__/perf/ChipFieldDisplay.perf.stories.tsx @@ -83,7 +83,7 @@ export const Default: Story = {}; export const Performance = getProfilingStory({ componentName: 'ChipFieldDisplay', - averageThresholdInMs: 0.3, + averageThresholdInMs: 0.6, numberOfRuns: 20, numberOfTestsPerRun: 100, }); diff --git a/packages/twenty-front/src/modules/object-record/record-field/ui/meta-types/display/components/__stories__/perf/CurrencyFieldDisplay.perf.stories.tsx b/packages/twenty-front/src/modules/object-record/record-field/ui/meta-types/display/components/__stories__/perf/CurrencyFieldDisplay.perf.stories.tsx index 246852fe11..35c536dc37 100644 --- a/packages/twenty-front/src/modules/object-record/record-field/ui/meta-types/display/components/__stories__/perf/CurrencyFieldDisplay.perf.stories.tsx +++ b/packages/twenty-front/src/modules/object-record/record-field/ui/meta-types/display/components/__stories__/perf/CurrencyFieldDisplay.perf.stories.tsx @@ -58,7 +58,7 @@ export const Bazillions: Story = { export const Performance = getProfilingStory({ componentName: 'CurrencyFieldDisplay', - averageThresholdInMs: 0.2, + averageThresholdInMs: 0.4, numberOfRuns: 50, numberOfTestsPerRun: 100, }); diff --git a/packages/twenty-front/src/modules/object-record/record-field/ui/meta-types/display/components/__stories__/perf/DateFieldDisplay.perf.stories.tsx b/packages/twenty-front/src/modules/object-record/record-field/ui/meta-types/display/components/__stories__/perf/DateFieldDisplay.perf.stories.tsx index f7c7a71bf3..8f2add76ef 100644 --- a/packages/twenty-front/src/modules/object-record/record-field/ui/meta-types/display/components/__stories__/perf/DateFieldDisplay.perf.stories.tsx +++ b/packages/twenty-front/src/modules/object-record/record-field/ui/meta-types/display/components/__stories__/perf/DateFieldDisplay.perf.stories.tsx @@ -50,7 +50,7 @@ export const Elipsis: Story = { export const Performance = getProfilingStory({ componentName: 'DateFieldDisplay', - averageThresholdInMs: 0.1, + averageThresholdInMs: 0.2, numberOfRuns: 50, numberOfTestsPerRun: 100, }); diff --git a/packages/twenty-front/src/modules/object-record/record-field/ui/meta-types/display/components/__stories__/perf/DateTimeFieldDisplay.perf.stories.tsx b/packages/twenty-front/src/modules/object-record/record-field/ui/meta-types/display/components/__stories__/perf/DateTimeFieldDisplay.perf.stories.tsx index cdb51617fb..94ede94fa8 100644 --- a/packages/twenty-front/src/modules/object-record/record-field/ui/meta-types/display/components/__stories__/perf/DateTimeFieldDisplay.perf.stories.tsx +++ b/packages/twenty-front/src/modules/object-record/record-field/ui/meta-types/display/components/__stories__/perf/DateTimeFieldDisplay.perf.stories.tsx @@ -50,7 +50,7 @@ export const Elipsis: Story = { export const Performance = getProfilingStory({ componentName: 'DateTimeFieldDisplay', - averageThresholdInMs: 0.35, + averageThresholdInMs: 0.7, numberOfRuns: 30, numberOfTestsPerRun: 30, }); diff --git a/packages/twenty-front/src/modules/object-record/record-field/ui/meta-types/display/components/__stories__/perf/EmailsFieldDisplay.perf.stories.tsx b/packages/twenty-front/src/modules/object-record/record-field/ui/meta-types/display/components/__stories__/perf/EmailsFieldDisplay.perf.stories.tsx index e0619e0082..65a09abc97 100644 --- a/packages/twenty-front/src/modules/object-record/record-field/ui/meta-types/display/components/__stories__/perf/EmailsFieldDisplay.perf.stories.tsx +++ b/packages/twenty-front/src/modules/object-record/record-field/ui/meta-types/display/components/__stories__/perf/EmailsFieldDisplay.perf.stories.tsx @@ -46,7 +46,7 @@ export const Elipsis: Story = { export const Performance = getProfilingStory({ componentName: 'EmailsFieldDisplay', - averageThresholdInMs: 0.5, + averageThresholdInMs: 1, numberOfRuns: 50, numberOfTestsPerRun: 100, }); diff --git a/packages/twenty-front/src/modules/object-record/record-field/ui/meta-types/display/components/__stories__/perf/FilesFieldDisplay.perf.stories.tsx b/packages/twenty-front/src/modules/object-record/record-field/ui/meta-types/display/components/__stories__/perf/FilesFieldDisplay.perf.stories.tsx index 1bf2a5595f..b7e7556e24 100644 --- a/packages/twenty-front/src/modules/object-record/record-field/ui/meta-types/display/components/__stories__/perf/FilesFieldDisplay.perf.stories.tsx +++ b/packages/twenty-front/src/modules/object-record/record-field/ui/meta-types/display/components/__stories__/perf/FilesFieldDisplay.perf.stories.tsx @@ -54,7 +54,7 @@ export const Elipsis: Story = { export const Performance = getProfilingStory({ componentName: 'FilesFieldDisplay', - averageThresholdInMs: 0.8, + averageThresholdInMs: 1.6, numberOfRuns: 50, numberOfTestsPerRun: 100, }); diff --git a/packages/twenty-front/src/modules/object-record/record-field/ui/meta-types/display/components/__stories__/perf/FullNameFieldDisplay.perf.stories.tsx b/packages/twenty-front/src/modules/object-record/record-field/ui/meta-types/display/components/__stories__/perf/FullNameFieldDisplay.perf.stories.tsx index b22506f777..cdf782ec68 100644 --- a/packages/twenty-front/src/modules/object-record/record-field/ui/meta-types/display/components/__stories__/perf/FullNameFieldDisplay.perf.stories.tsx +++ b/packages/twenty-front/src/modules/object-record/record-field/ui/meta-types/display/components/__stories__/perf/FullNameFieldDisplay.perf.stories.tsx @@ -34,7 +34,7 @@ export const Elipsis: Story = { export const Performance = getProfilingStory({ componentName: 'FullNameFieldDisplay', - averageThresholdInMs: 0.5, + averageThresholdInMs: 1, numberOfRuns: 50, numberOfTestsPerRun: 100, }); diff --git a/packages/twenty-front/src/modules/object-record/record-field/ui/meta-types/display/components/__stories__/perf/LinksFieldDisplay.perf.stories.tsx b/packages/twenty-front/src/modules/object-record/record-field/ui/meta-types/display/components/__stories__/perf/LinksFieldDisplay.perf.stories.tsx index 4d1ae22045..d586c59802 100644 --- a/packages/twenty-front/src/modules/object-record/record-field/ui/meta-types/display/components/__stories__/perf/LinksFieldDisplay.perf.stories.tsx +++ b/packages/twenty-front/src/modules/object-record/record-field/ui/meta-types/display/components/__stories__/perf/LinksFieldDisplay.perf.stories.tsx @@ -69,7 +69,7 @@ export const Elipsis: Story = { export const Performance = getProfilingStory({ componentName: 'LinksFieldDisplay', - averageThresholdInMs: 0.5, + averageThresholdInMs: 1, numberOfRuns: 50, numberOfTestsPerRun: 100, }); diff --git a/packages/twenty-front/src/modules/object-record/record-field/ui/meta-types/display/components/__stories__/perf/MultiSelectFieldDisplay.perf.stories.tsx b/packages/twenty-front/src/modules/object-record/record-field/ui/meta-types/display/components/__stories__/perf/MultiSelectFieldDisplay.perf.stories.tsx index 94871cc2dd..915f3ecb9c 100644 --- a/packages/twenty-front/src/modules/object-record/record-field/ui/meta-types/display/components/__stories__/perf/MultiSelectFieldDisplay.perf.stories.tsx +++ b/packages/twenty-front/src/modules/object-record/record-field/ui/meta-types/display/components/__stories__/perf/MultiSelectFieldDisplay.perf.stories.tsx @@ -67,7 +67,7 @@ export const Elipsis: Story = { export const Performance = getProfilingStory({ componentName: 'MultiSelectFieldDisplay', - averageThresholdInMs: 0.2, + averageThresholdInMs: 0.4, numberOfRuns: 50, numberOfTestsPerRun: 100, }); diff --git a/packages/twenty-front/src/modules/object-record/record-field/ui/meta-types/display/components/__stories__/perf/NumberFieldDisplay.perf.stories.tsx b/packages/twenty-front/src/modules/object-record/record-field/ui/meta-types/display/components/__stories__/perf/NumberFieldDisplay.perf.stories.tsx index e23b371956..f1e3592761 100644 --- a/packages/twenty-front/src/modules/object-record/record-field/ui/meta-types/display/components/__stories__/perf/NumberFieldDisplay.perf.stories.tsx +++ b/packages/twenty-front/src/modules/object-record/record-field/ui/meta-types/display/components/__stories__/perf/NumberFieldDisplay.perf.stories.tsx @@ -47,7 +47,7 @@ export const Float: Story = { export const Performance = getProfilingStory({ componentName: 'NumberFieldDisplay', - averageThresholdInMs: 0.5, + averageThresholdInMs: 1, numberOfRuns: 50, numberOfTestsPerRun: 100, }); diff --git a/packages/twenty-front/src/modules/object-record/record-field/ui/meta-types/display/components/__stories__/perf/PhonesFieldDisplay.perf.stories.tsx b/packages/twenty-front/src/modules/object-record/record-field/ui/meta-types/display/components/__stories__/perf/PhonesFieldDisplay.perf.stories.tsx index 9d76227994..7cf4139216 100644 --- a/packages/twenty-front/src/modules/object-record/record-field/ui/meta-types/display/components/__stories__/perf/PhonesFieldDisplay.perf.stories.tsx +++ b/packages/twenty-front/src/modules/object-record/record-field/ui/meta-types/display/components/__stories__/perf/PhonesFieldDisplay.perf.stories.tsx @@ -46,7 +46,7 @@ export const WrongNumber: Story = { export const Performance = getProfilingStory({ componentName: 'PhonesFieldDisplay', - averageThresholdInMs: 0.5, + averageThresholdInMs: 1, numberOfRuns: 20, numberOfTestsPerRun: 100, }); diff --git a/packages/twenty-front/src/modules/object-record/record-field/ui/meta-types/display/components/__stories__/perf/RatingFieldDisplay.perf.stories.tsx b/packages/twenty-front/src/modules/object-record/record-field/ui/meta-types/display/components/__stories__/perf/RatingFieldDisplay.perf.stories.tsx index 85561f57ad..2b6bfb80d0 100644 --- a/packages/twenty-front/src/modules/object-record/record-field/ui/meta-types/display/components/__stories__/perf/RatingFieldDisplay.perf.stories.tsx +++ b/packages/twenty-front/src/modules/object-record/record-field/ui/meta-types/display/components/__stories__/perf/RatingFieldDisplay.perf.stories.tsx @@ -28,7 +28,7 @@ export const Default: Story = {}; export const Performance = getProfilingStory({ componentName: 'RatingFieldDisplay', - averageThresholdInMs: 0.5, + averageThresholdInMs: 1, numberOfRuns: 30, numberOfTestsPerRun: 30, }); diff --git a/packages/twenty-front/src/modules/object-record/record-field/ui/meta-types/display/components/__stories__/perf/RelationFromManyFieldDisplay.perf.stories.tsx b/packages/twenty-front/src/modules/object-record/record-field/ui/meta-types/display/components/__stories__/perf/RelationFromManyFieldDisplay.perf.stories.tsx index ba1b837954..5f7980c71d 100644 --- a/packages/twenty-front/src/modules/object-record/record-field/ui/meta-types/display/components/__stories__/perf/RelationFromManyFieldDisplay.perf.stories.tsx +++ b/packages/twenty-front/src/modules/object-record/record-field/ui/meta-types/display/components/__stories__/perf/RelationFromManyFieldDisplay.perf.stories.tsx @@ -74,7 +74,7 @@ export const Default: Story = {}; // TODO: optimize this component once we have morph many export const Performance = getProfilingStory({ componentName: 'RelationFromManyFieldDisplay', - averageThresholdInMs: 1, + averageThresholdInMs: 2, numberOfRuns: 20, numberOfTestsPerRun: 100, }); diff --git a/packages/twenty-front/src/modules/object-record/record-field/ui/meta-types/display/components/__stories__/perf/RelationToOneFieldDisplay.perf.stories.tsx b/packages/twenty-front/src/modules/object-record/record-field/ui/meta-types/display/components/__stories__/perf/RelationToOneFieldDisplay.perf.stories.tsx index 2860e23a68..6b797631ac 100644 --- a/packages/twenty-front/src/modules/object-record/record-field/ui/meta-types/display/components/__stories__/perf/RelationToOneFieldDisplay.perf.stories.tsx +++ b/packages/twenty-front/src/modules/object-record/record-field/ui/meta-types/display/components/__stories__/perf/RelationToOneFieldDisplay.perf.stories.tsx @@ -30,7 +30,7 @@ export const Default: Story = {}; export const Performance = getProfilingStory({ componentName: 'RelationFieldDisplay', - averageThresholdInMs: 0.4, + averageThresholdInMs: 0.8, numberOfRuns: 20, numberOfTestsPerRun: 100, }); diff --git a/packages/twenty-front/src/modules/object-record/record-field/ui/meta-types/display/components/__stories__/perf/SelectFieldDisplay.perf.stories.tsx b/packages/twenty-front/src/modules/object-record/record-field/ui/meta-types/display/components/__stories__/perf/SelectFieldDisplay.perf.stories.tsx index 28a19c49cb..fb17c71b2d 100644 --- a/packages/twenty-front/src/modules/object-record/record-field/ui/meta-types/display/components/__stories__/perf/SelectFieldDisplay.perf.stories.tsx +++ b/packages/twenty-front/src/modules/object-record/record-field/ui/meta-types/display/components/__stories__/perf/SelectFieldDisplay.perf.stories.tsx @@ -34,7 +34,7 @@ export const Elipsis: Story = { export const Performance = getProfilingStory({ componentName: 'SelectFieldDisplay', - averageThresholdInMs: 0.2, + averageThresholdInMs: 0.4, numberOfRuns: 50, numberOfTestsPerRun: 100, }); diff --git a/packages/twenty-front/src/modules/object-record/record-field/ui/meta-types/display/components/__stories__/perf/TextFieldDisplay.perf.stories.tsx b/packages/twenty-front/src/modules/object-record/record-field/ui/meta-types/display/components/__stories__/perf/TextFieldDisplay.perf.stories.tsx index 0f83ae647a..ee97a1f1cd 100644 --- a/packages/twenty-front/src/modules/object-record/record-field/ui/meta-types/display/components/__stories__/perf/TextFieldDisplay.perf.stories.tsx +++ b/packages/twenty-front/src/modules/object-record/record-field/ui/meta-types/display/components/__stories__/perf/TextFieldDisplay.perf.stories.tsx @@ -41,7 +41,7 @@ export const Elipsis: Story = { export const Performance = getProfilingStory({ componentName: 'TextFieldDisplay', - averageThresholdInMs: 0.5, + averageThresholdInMs: 1, numberOfRuns: 50, numberOfTestsPerRun: 100, }); diff --git a/packages/twenty-front/src/modules/object-record/record-picker/multiple-record-picker/components/MultipleRecordPickerOnClickOutsideEffect.tsx b/packages/twenty-front/src/modules/object-record/record-picker/multiple-record-picker/components/MultipleRecordPickerOnClickOutsideEffect.tsx index 5b63481788..0eb98a45c3 100644 --- a/packages/twenty-front/src/modules/object-record/record-picker/multiple-record-picker/components/MultipleRecordPickerOnClickOutsideEffect.tsx +++ b/packages/twenty-front/src/modules/object-record/record-picker/multiple-record-picker/components/MultipleRecordPickerOnClickOutsideEffect.tsx @@ -5,7 +5,7 @@ export const MultipleRecordPickerOnClickOutsideEffect = ({ containerRef, onClickOutside, }: { - containerRef: React.RefObject; + containerRef: React.RefObject; onClickOutside: () => void; }) => { useListenClickOutside({ diff --git a/packages/twenty-front/src/modules/object-record/record-table/components/RecordTableBodyEffectsWrapper.tsx b/packages/twenty-front/src/modules/object-record/record-table/components/RecordTableBodyEffectsWrapper.tsx index bb6bb80672..60f994d39e 100644 --- a/packages/twenty-front/src/modules/object-record/record-table/components/RecordTableBodyEffectsWrapper.tsx +++ b/packages/twenty-front/src/modules/object-record/record-table/components/RecordTableBodyEffectsWrapper.tsx @@ -10,7 +10,7 @@ import { RecordTableVirtualizedInitialDataLoadEffect } from '@/object-record/rec export interface RecordTableBodyEffectsWrapperProps { hasRecordGroups: boolean; - tableBodyRef: React.RefObject; + tableBodyRef: React.RefObject; } export const RecordTableBodyEffectsWrapper = ({ diff --git a/packages/twenty-front/src/modules/object-record/record-table/components/RecordTableContent.tsx b/packages/twenty-front/src/modules/object-record/record-table/components/RecordTableContent.tsx index 7c4b091701..8d93bce8f7 100644 --- a/packages/twenty-front/src/modules/object-record/record-table/components/RecordTableContent.tsx +++ b/packages/twenty-front/src/modules/object-record/record-table/components/RecordTableContent.tsx @@ -33,7 +33,7 @@ const StyledTableContainer = styled.div` `; export interface RecordTableContentProps { - tableBodyRef: React.RefObject; + tableBodyRef: React.RefObject; handleDragSelectionStart: () => void; handleDragSelectionEnd: () => void; hasRecordGroups: boolean; diff --git a/packages/twenty-front/src/modules/object-record/record-table/components/RecordTableEmpty.tsx b/packages/twenty-front/src/modules/object-record/record-table/components/RecordTableEmpty.tsx index b2f30304ba..9799be8326 100644 --- a/packages/twenty-front/src/modules/object-record/record-table/components/RecordTableEmpty.tsx +++ b/packages/twenty-front/src/modules/object-record/record-table/components/RecordTableEmpty.tsx @@ -31,7 +31,7 @@ const StyledEmptyStateContainer = styled.div<{ width: number }>` `; export interface RecordTableEmptyProps { - tableBodyRef: React.RefObject; + tableBodyRef: React.RefObject; } export const RecordTableEmpty = ({ tableBodyRef }: RecordTableEmptyProps) => { diff --git a/packages/twenty-front/src/modules/object-record/record-table/components/__stories__/perf/RecordTableCell.perf.stories.tsx b/packages/twenty-front/src/modules/object-record/record-table/components/__stories__/perf/RecordTableCell.perf.stories.tsx index 3b9032cf87..5da9a6d2c9 100644 --- a/packages/twenty-front/src/modules/object-record/record-table/components/__stories__/perf/RecordTableCell.perf.stories.tsx +++ b/packages/twenty-front/src/modules/object-record/record-table/components/__stories__/perf/RecordTableCell.perf.stories.tsx @@ -280,7 +280,7 @@ export const Default: Story = {}; export const Performance = getProfilingStory({ componentName: 'RecordTableCell', - averageThresholdInMs: 0.3, + averageThresholdInMs: 0.6, numberOfRuns: 50, numberOfTestsPerRun: 200, warmUpRounds: 20, diff --git a/packages/twenty-front/src/modules/object-record/record-table/record-table-body/components/RecordTableBodyFocusClickOutsideEffect.tsx b/packages/twenty-front/src/modules/object-record/record-table/record-table-body/components/RecordTableBodyFocusClickOutsideEffect.tsx index f287a1c76b..178ab5ae32 100644 --- a/packages/twenty-front/src/modules/object-record/record-table/record-table-body/components/RecordTableBodyFocusClickOutsideEffect.tsx +++ b/packages/twenty-front/src/modules/object-record/record-table/record-table-body/components/RecordTableBodyFocusClickOutsideEffect.tsx @@ -11,7 +11,7 @@ import { FocusComponentType } from '@/ui/utilities/focus/types/FocusComponentTyp import { useListenClickOutside } from '@/ui/utilities/pointer-event/hooks/useListenClickOutside'; import { useAtomStateValue } from '@/ui/utilities/state/jotai/hooks/useAtomStateValue'; type RecordTableBodyFocusClickOutsideEffectProps = { - tableBodyRef: React.RefObject; + tableBodyRef: React.RefObject; }; export const RecordTableBodyFocusClickOutsideEffect = ({ diff --git a/packages/twenty-front/src/modules/page-layout/components/PageLayoutGridLayoutDragSelector.tsx b/packages/twenty-front/src/modules/page-layout/components/PageLayoutGridLayoutDragSelector.tsx index 0d1571a9b0..c7f8fd88bf 100644 --- a/packages/twenty-front/src/modules/page-layout/components/PageLayoutGridLayoutDragSelector.tsx +++ b/packages/twenty-front/src/modules/page-layout/components/PageLayoutGridLayoutDragSelector.tsx @@ -7,7 +7,7 @@ import { type RefObject } from 'react'; export const PageLayoutGridLayoutDragSelector = ({ gridContainerRef, }: { - gridContainerRef: RefObject; + gridContainerRef: RefObject; }) => { const { startPageLayoutDragSelection } = useStartPageLayoutDragSelection(); const { changePageLayoutDragSelection } = useChangePageLayoutDragSelection(); diff --git a/packages/twenty-front/src/modules/page-layout/components/PageLayoutVerticalListEditor.tsx b/packages/twenty-front/src/modules/page-layout/components/PageLayoutVerticalListEditor.tsx index 597cbcbe9f..1fc048d5e3 100644 --- a/packages/twenty-front/src/modules/page-layout/components/PageLayoutVerticalListEditor.tsx +++ b/packages/twenty-front/src/modules/page-layout/components/PageLayoutVerticalListEditor.tsx @@ -17,6 +17,8 @@ import { type ReactNode, useId } from 'react'; import { themeCssVariables } from 'twenty-ui-deprecated/theme-constants'; import { useIsMobile } from 'twenty-ui-deprecated/utilities'; +import { getCssCompatibleDraggableProps } from '@/ui/layout/draggable-list/utils/getCssCompatibleDraggableProps'; + const StyledVerticalListContainer = styled.div<{ variant: PageLayoutVerticalListViewerVariant; shouldUseWhiteBackground: boolean; @@ -102,7 +104,7 @@ export const PageLayoutVerticalListEditor = ({ {/* oxlint-disable-next-line react/jsx-props-no-spreading */} diff --git a/packages/twenty-front/src/modules/page-layout/widgets/fields/components/FieldsConfigurationGroupEditor.tsx b/packages/twenty-front/src/modules/page-layout/widgets/fields/components/FieldsConfigurationGroupEditor.tsx index baaba3eb5a..ad606bde3d 100644 --- a/packages/twenty-front/src/modules/page-layout/widgets/fields/components/FieldsConfigurationGroupEditor.tsx +++ b/packages/twenty-front/src/modules/page-layout/widgets/fields/components/FieldsConfigurationGroupEditor.tsx @@ -3,6 +3,7 @@ import { styled } from '@linaria/react'; import { useLingui } from '@lingui/react/macro'; import { DraggableItem } from '@/ui/layout/draggable-list/components/DraggableItem'; +import { getCssCompatibleDraggableProps } from '@/ui/layout/draggable-list/utils/getCssCompatibleDraggableProps'; import { type EnrichedObjectMetadataItem } from '@/object-metadata/types/EnrichedObjectMetadataItem'; import { FieldsConfigurationFieldEditor } from '@/page-layout/widgets/fields/components/FieldsConfigurationFieldEditor'; @@ -134,7 +135,7 @@ export const FieldsConfigurationGroupEditor = ({ {/* oxlint-disable-next-line react/jsx-props-no-spreading */} diff --git a/packages/twenty-front/src/modules/page-layout/widgets/graph/graph-widget-bar-chart/components/BarChartBaseLayerEffect.tsx b/packages/twenty-front/src/modules/page-layout/widgets/graph/graph-widget-bar-chart/components/BarChartBaseLayerEffect.tsx index f2bb604658..23d0b0e96f 100644 --- a/packages/twenty-front/src/modules/page-layout/widgets/graph/graph-widget-bar-chart/components/BarChartBaseLayerEffect.tsx +++ b/packages/twenty-front/src/modules/page-layout/widgets/graph/graph-widget-bar-chart/components/BarChartBaseLayerEffect.tsx @@ -28,7 +28,7 @@ type BarChartBaseLayerEffectProps = { showGrid: boolean; highlightedLegendId: string | null; allowDataTransitions: boolean; - canvasRef: RefObject; + canvasRef: RefObject; }; type AnimationState = { diff --git a/packages/twenty-front/src/modules/page-layout/widgets/graph/graph-widget-bar-chart/components/BarChartHoverLayerEffect.tsx b/packages/twenty-front/src/modules/page-layout/widgets/graph/graph-widget-bar-chart/components/BarChartHoverLayerEffect.tsx index 60302fe74f..2681e5238d 100644 --- a/packages/twenty-front/src/modules/page-layout/widgets/graph/graph-widget-bar-chart/components/BarChartHoverLayerEffect.tsx +++ b/packages/twenty-front/src/modules/page-layout/widgets/graph/graph-widget-bar-chart/components/BarChartHoverLayerEffect.tsx @@ -12,7 +12,7 @@ type BarChartHoverLayerEffectProps = { chartHeight: number; margins: ChartMargins; layout: BarChartLayout; - canvasRef: RefObject; + canvasRef: RefObject; }; export const BarChartHoverLayerEffect = ({ diff --git a/packages/twenty-front/src/modules/page-layout/widgets/graph/graph-widget-bar-chart/components/BarChartTooltip.tsx b/packages/twenty-front/src/modules/page-layout/widgets/graph/graph-widget-bar-chart/components/BarChartTooltip.tsx index 1d806f5c02..5b64396f3d 100644 --- a/packages/twenty-front/src/modules/page-layout/widgets/graph/graph-widget-bar-chart/components/BarChartTooltip.tsx +++ b/packages/twenty-front/src/modules/page-layout/widgets/graph/graph-widget-bar-chart/components/BarChartTooltip.tsx @@ -12,7 +12,7 @@ import { type RefObject } from 'react'; import { isDefined } from 'twenty-shared/utils'; type BarChartTooltipProps = { - containerRef: RefObject; + containerRef: RefObject; dataByIndexValue: Map; enrichedKeys: BarChartEnrichedKey[]; formatOptions: GraphValueFormatOptions; diff --git a/packages/twenty-front/src/modules/page-layout/widgets/graph/graph-widget-line-chart/components/GraphLineChartTooltip.tsx b/packages/twenty-front/src/modules/page-layout/widgets/graph/graph-widget-line-chart/components/GraphLineChartTooltip.tsx index 9ca36b3262..d862aa7ef8 100644 --- a/packages/twenty-front/src/modules/page-layout/widgets/graph/graph-widget-line-chart/components/GraphLineChartTooltip.tsx +++ b/packages/twenty-front/src/modules/page-layout/widgets/graph/graph-widget-line-chart/components/GraphLineChartTooltip.tsx @@ -11,7 +11,7 @@ import { type RefObject } from 'react'; import { isDefined } from 'twenty-shared/utils'; type GraphLineChartTooltipProps = { - containerRef: RefObject; + containerRef: RefObject; enrichedSeries: LineChartEnrichedSeries[]; formatOptions: GraphValueFormatOptions; isStacked?: boolean; diff --git a/packages/twenty-front/src/modules/page-layout/widgets/graph/graph-widget-pie-chart/components/GraphPieChartTooltip.tsx b/packages/twenty-front/src/modules/page-layout/widgets/graph/graph-widget-pie-chart/components/GraphPieChartTooltip.tsx index 43c8b5cb89..94ae6a8702 100644 --- a/packages/twenty-front/src/modules/page-layout/widgets/graph/graph-widget-pie-chart/components/GraphPieChartTooltip.tsx +++ b/packages/twenty-front/src/modules/page-layout/widgets/graph/graph-widget-pie-chart/components/GraphPieChartTooltip.tsx @@ -11,7 +11,7 @@ import { type RefObject } from 'react'; import { isDefined } from 'twenty-shared/utils'; type GraphPieChartTooltipProps = { - containerRef: RefObject; + containerRef: RefObject; enrichedData: PieChartEnrichedData[]; formatOptions: GraphValueFormatOptions; displayType?: string; diff --git a/packages/twenty-front/src/modules/settings/data-model/object-details/components/SettingsObjectRelationItemTableRow.tsx b/packages/twenty-front/src/modules/settings/data-model/object-details/components/SettingsObjectRelationItemTableRow.tsx index bd3cb25753..11dd25c85a 100644 --- a/packages/twenty-front/src/modules/settings/data-model/object-details/components/SettingsObjectRelationItemTableRow.tsx +++ b/packages/twenty-front/src/modules/settings/data-model/object-details/components/SettingsObjectRelationItemTableRow.tsx @@ -164,7 +164,11 @@ export const SettingsObjectRelationItemTableRow = ({ return ( inside is invalid HTML (React 19 errors on it). + // oxlint-disable-next-line twenty/no-navigate-prefer-link + onClick={navigateToFieldEdit} + cursor="pointer" > {fieldMetadataItem.isActive ? ( - + // The row navigates via onClick (it can't be a Link because it + // contains a nested link to the related object). This chevron is a + // real link to the same destination so keyboard users can still reach + // field edit; stopPropagation avoids firing the row onClick too. + event.stopPropagation()} + > {children} diff --git a/packages/twenty-front/src/modules/side-panel/components/SidePanelTopBarInputFocusEffect.tsx b/packages/twenty-front/src/modules/side-panel/components/SidePanelTopBarInputFocusEffect.tsx index eb340461d1..05b05d1472 100644 --- a/packages/twenty-front/src/modules/side-panel/components/SidePanelTopBarInputFocusEffect.tsx +++ b/packages/twenty-front/src/modules/side-panel/components/SidePanelTopBarInputFocusEffect.tsx @@ -4,7 +4,7 @@ import { useEffect } from 'react'; import { SidePanelPages } from 'twenty-shared/types'; type SidePanelTopBarInputFocusEffectProps = { - inputRef: React.RefObject; + inputRef: React.RefObject; }; export const SidePanelTopBarInputFocusEffect = ({ diff --git a/packages/twenty-front/src/modules/spreadsheet-import/components/SpreadsheetImportTable.tsx b/packages/twenty-front/src/modules/spreadsheet-import/components/SpreadsheetImportTable.tsx index a236bbc16d..3094af0eeb 100644 --- a/packages/twenty-front/src/modules/spreadsheet-import/components/SpreadsheetImportTable.tsx +++ b/packages/twenty-front/src/modules/spreadsheet-import/components/SpreadsheetImportTable.tsx @@ -1,7 +1,6 @@ import { styled } from '@linaria/react'; import { useContext } from 'react'; -// @ts-expect-error // Todo: remove usage of react-data-grid -import DataGrid, { type DataGridProps } from 'react-data-grid'; +import { DataGrid, type DataGridProps } from 'react-data-grid'; import { useSpreadsheetImportInternal } from '@/spreadsheet-import/hooks/useSpreadsheetImportInternal'; import { ThemeContext, @@ -118,7 +117,7 @@ type SpreadsheetImportTableProps = Pick< | 'rows' > & Partial< - Pick, 'onRowClick' | 'components' | 'onRowsChange'> + Pick, 'onCellClick' | 'renderers' | 'onRowsChange'> > & { className?: string; rowHeight?: number; @@ -128,12 +127,12 @@ type SpreadsheetImportTableProps = Pick< export const SpreadsheetImportTable = ({ className, columns, - components, + renderers, headerRowHeight, rowKeyGetter, rows, onRowsChange, - onRowClick, + onCellClick, onSelectedRowsChange, selectedRows, }: SpreadsheetImportTableProps) => { @@ -145,7 +144,7 @@ export const SpreadsheetImportTable = ({ if (!rows?.length || !columns?.length) return null; return ( - + ({ rowKeyGetter, onRowsChange, rows, - components, - onRowClick, + renderers, + onCellClick, onSelectedRowsChange, selectedRows, }} diff --git a/packages/twenty-front/src/modules/spreadsheet-import/steps/components/SelectHeaderStep/components/SelectColumn.tsx b/packages/twenty-front/src/modules/spreadsheet-import/steps/components/SelectHeaderStep/components/SelectColumn.tsx index 4b7b8f7443..f99f6bb749 100644 --- a/packages/twenty-front/src/modules/spreadsheet-import/steps/components/SelectHeaderStep/components/SelectColumn.tsx +++ b/packages/twenty-front/src/modules/spreadsheet-import/steps/components/SelectHeaderStep/components/SelectColumn.tsx @@ -1,6 +1,5 @@ -// @ts-expect-error // Todo: remove usage of react-data-grid // prettier-ignore -import { useRowSelection, type Column, type FormatterProps } from 'react-data-grid'; +import { useRowSelection, type Column, type RenderCellProps } from 'react-data-grid'; import { t } from '@lingui/core/macro'; import { type ImportedRow } from '@/spreadsheet-import/types'; @@ -8,10 +7,10 @@ import { Radio } from 'twenty-ui-deprecated/input'; const SELECT_COLUMN_KEY = 'select-row'; -type SelectFormatterProps = FormatterProps; +type SelectFormatterProps = RenderCellProps; const SelectFormatter = (props: SelectFormatterProps) => { - const [isRowSelected, onRowSelectionChange] = useRowSelection(); + const { isRowSelected, onRowSelectionChange } = useRowSelection(); return ( = { sortable: false, frozen: true, cellClass: 'rdg-radio', - formatter: SelectFormatter, + renderCell: SelectFormatter, }; export const generateSelectionColumns = (data: ImportedRow[]) => { diff --git a/packages/twenty-front/src/modules/spreadsheet-import/steps/components/SelectHeaderStep/components/SelectHeaderTable.tsx b/packages/twenty-front/src/modules/spreadsheet-import/steps/components/SelectHeaderStep/components/SelectHeaderTable.tsx index 08db1c7459..2aafa3773d 100644 --- a/packages/twenty-front/src/modules/spreadsheet-import/steps/components/SelectHeaderStep/components/SelectHeaderTable.tsx +++ b/packages/twenty-front/src/modules/spreadsheet-import/steps/components/SelectHeaderStep/components/SelectHeaderTable.tsx @@ -28,16 +28,17 @@ export const SelectHeaderTable = ({ rows={importedRows} columns={columns} selectedRows={selectedRowIndexes} - onSelectedRowsChange={(newRowIndexes: number[]) => { - newRowIndexes.forEach((value) => { - if (!selectedRowIndexes.has(value)) { - setSelectedRowIndexes(new Set([value])); + onSelectedRowsChange={(newSelectedRows) => { + for (const value of newSelectedRows) { + const rowIndex = Number(value); + if (!selectedRowIndexes.has(rowIndex)) { + setSelectedRowIndexes(new Set([rowIndex])); return; } - }); + } }} - onRowClick={(row: any) => { - setSelectedRowIndexes(new Set([importedRows.indexOf(row)])); + onCellClick={(args) => { + setSelectedRowIndexes(new Set([importedRows.indexOf(args.row)])); }} headerRowHeight={0} /> diff --git a/packages/twenty-front/src/modules/spreadsheet-import/steps/components/ValidationStep/ValidationStep.tsx b/packages/twenty-front/src/modules/spreadsheet-import/steps/components/ValidationStep/ValidationStep.tsx index 8bfd8cdff9..5cf35ac6d8 100644 --- a/packages/twenty-front/src/modules/spreadsheet-import/steps/components/ValidationStep/ValidationStep.tsx +++ b/packages/twenty-front/src/modules/spreadsheet-import/steps/components/ValidationStep/ValidationStep.tsx @@ -23,7 +23,6 @@ import { } from 'react'; import { ModalContent } from 'twenty-ui-deprecated/layout'; import { themeCssVariables } from 'twenty-ui-deprecated/theme-constants'; -// @ts-expect-error Todo: remove usage of react-data-grid` import { type RowsChangeData } from 'react-data-grid'; import { isDefined } from 'twenty-shared/utils'; import { IconTrash } from 'twenty-ui-deprecated/display'; @@ -200,7 +199,7 @@ export const ValidationStep = ({ if (!hasBeenImported) return null; return column; }) - .filter(Boolean), + .filter(isDefined), [fields, importedColumns], ); @@ -306,7 +305,7 @@ export const ValidationStep = ({ columns={columns} selectedRows={selectedRows} onSelectedRowsChange={setSelectedRows as any} // TODO: replace 'any' - components={{ + renderers={{ noRowsFallback: ( {filterByErrors diff --git a/packages/twenty-front/src/modules/spreadsheet-import/steps/components/ValidationStep/components/columns.tsx b/packages/twenty-front/src/modules/spreadsheet-import/steps/components/ValidationStep/components/columns.tsx index 9acc9fc63d..24d8624464 100644 --- a/packages/twenty-front/src/modules/spreadsheet-import/steps/components/ValidationStep/components/columns.tsx +++ b/packages/twenty-front/src/modules/spreadsheet-import/steps/components/ValidationStep/components/columns.tsx @@ -1,7 +1,6 @@ import { t } from '@lingui/core/macro'; import { styled } from '@linaria/react'; import { themeCssVariables } from 'twenty-ui-deprecated/theme-constants'; -// @ts-expect-error // Todo: remove usage of react-data-grid import { type Column, useRowSelection } from 'react-data-grid'; import { createPortal } from 'react-dom'; @@ -86,9 +85,9 @@ export const generateColumns = ( resizable: false, sortable: false, frozen: true, - formatter: (props: any) => { + renderCell: (props: any) => { // oxlint-disable-next-line react-hooks/rules-of-hooks - const [isRowSelected, onRowSelectionChange] = useRowSelection(); + const { isRowSelected, onRowSelectionChange } = useRowSelection(); return ( @@ -116,7 +115,7 @@ export const generateColumns = ( name: column.label, minWidth: 150, resizable: true, - headerRenderer: () => ( + renderHeaderCell: () => ( {column.label} @@ -136,7 +135,7 @@ export const generateColumns = ( ), editable: column.fieldType.type !== 'checkbox', // Todo: remove usage of react-data-grid - editor: ({ row, onRowChange, onClose }: any) => { + renderEditCell: ({ row, onRowChange, onClose }: any) => { const columnKey = column.key as keyof (ImportedStructuredRow & ImportedStructuredRowMetadata); let component; @@ -166,11 +165,8 @@ export const generateColumns = ( return {component}; }, - editorOptions: { - editOnClick: true, - }, // Todo: remove usage of react-data-grid - formatter: ({ row, onRowChange }: { row: any; onRowChange: any }) => { + renderCell: ({ row, onRowChange }: { row: any; onRowChange: any }) => { const columnKey = column.key as keyof (ImportedStructuredRow & ImportedStructuredRowMetadata); let component; diff --git a/packages/twenty-front/src/modules/ui/field/display/components/GlobalFilePreviewModal.tsx b/packages/twenty-front/src/modules/ui/field/display/components/GlobalFilePreviewModal.tsx index 583c29a380..875a73341f 100644 --- a/packages/twenty-front/src/modules/ui/field/display/components/GlobalFilePreviewModal.tsx +++ b/packages/twenty-front/src/modules/ui/field/display/components/GlobalFilePreviewModal.tsx @@ -6,7 +6,7 @@ import { useAtomState } from '@/ui/utilities/state/jotai/hooks/useAtomState'; import { ScrollWrapper } from '@/ui/utilities/scroll/components/ScrollWrapper'; import { styled } from '@linaria/react'; import { useLingui } from '@lingui/react/macro'; -import { lazy, Suspense, useEffect } from 'react'; +import { type JSX, lazy, Suspense, useEffect } from 'react'; import { createPortal } from 'react-dom'; import { isDefined } from 'twenty-shared/utils'; import { IconDownload, IconX } from 'twenty-ui-deprecated/display'; diff --git a/packages/twenty-front/src/modules/ui/field/display/components/__stories__/perf/EllipsisDisplay.perf.stories.tsx b/packages/twenty-front/src/modules/ui/field/display/components/__stories__/perf/EllipsisDisplay.perf.stories.tsx index 72133bcb4c..75d4eba3b6 100644 --- a/packages/twenty-front/src/modules/ui/field/display/components/__stories__/perf/EllipsisDisplay.perf.stories.tsx +++ b/packages/twenty-front/src/modules/ui/field/display/components/__stories__/perf/EllipsisDisplay.perf.stories.tsx @@ -25,7 +25,7 @@ export const Default: Story = {}; export const Performance = getProfilingStory({ componentName: 'EllipsisDisplay', - averageThresholdInMs: 0.1, + averageThresholdInMs: 0.2, numberOfRuns: 20, numberOfTestsPerRun: 10, }); diff --git a/packages/twenty-front/src/modules/ui/field/input/hooks/useFocusManagement.ts b/packages/twenty-front/src/modules/ui/field/input/hooks/useFocusManagement.ts index 393460a9d0..476fa16404 100644 --- a/packages/twenty-front/src/modules/ui/field/input/hooks/useFocusManagement.ts +++ b/packages/twenty-front/src/modules/ui/field/input/hooks/useFocusManagement.ts @@ -4,7 +4,7 @@ import { type FieldAddressDraftValue } from '@/object-record/record-field/ui/typ export const useFocusManagement = ( inputRefs: { - [key in keyof FieldAddressDraftValue]?: RefObject; + [key in keyof FieldAddressDraftValue]?: RefObject; }, internalValue: FieldAddressDraftValue, onTab?: (newAddress: FieldAddressDraftValue) => void, diff --git a/packages/twenty-front/src/modules/ui/input/components/internal/date/components/DatePicker.tsx b/packages/twenty-front/src/modules/ui/input/components/internal/date/components/DatePicker.tsx index db824fc644..0c18df4da6 100644 --- a/packages/twenty-front/src/modules/ui/input/components/internal/date/components/DatePicker.tsx +++ b/packages/twenty-front/src/modules/ui/input/components/internal/date/components/DatePicker.tsx @@ -1,6 +1,6 @@ import { styled } from '@linaria/react'; import { lazy, Suspense, useContext, type ComponentType } from 'react'; -import type { ReactDatePickerProps as ReactDatePickerLibProps } from 'react-datepicker'; +import type { DatePickerProps as ReactDatePickerLibProps } from 'react-datepicker'; import Skeleton, { SkeletonTheme } from 'react-loading-skeleton'; import { SKELETON_LOADER_HEIGHT_SIZES } from '@/activities/components/SkeletonLoader'; @@ -334,10 +334,19 @@ type DatePickerProps = { hideCalendar?: boolean; }; -type DatePickerPropsType = ReactDatePickerLibProps< - boolean | undefined, - boolean | undefined ->; +// react-datepicker v9 types its props as a discriminated union keyed on +// selectsRange/selectsMultiple. We drive selectsMultiple dynamically, which TS +// cannot narrow to a single union branch, so collapse the discriminants to plain +// optionals (selectedDates is accepted but ignored by the library at runtime). +type DatePickerPropsType = Omit< + ReactDatePickerLibProps, + 'selectsRange' | 'selectsMultiple' | 'onChange' | 'formatMultipleDates' +> & { + selectsRange?: boolean; + selectsMultiple?: boolean; + selectedDates?: Date[]; + onChange?: (date: Date | null) => void; +}; const ReactDatePicker = lazy>(() => import('react-datepicker').then((mod) => ({ @@ -410,13 +419,19 @@ export const DatePicker = ({ onChange?.(newDate?.toString() ?? null); }; - const handleDateChange = (datePicked: Date) => { + const handleDateChange = (datePicked: Date | null) => { + if (!isDefined(datePicked)) { + return; + } const plainDatePicked = turnJSDateToPlainDate(datePicked); onChange?.(plainDatePicked.toString()); }; - const handleDateSelect = (datePicked: Date) => { + const handleDateSelect = (datePicked: Date | null) => { + if (!isDefined(datePicked)) { + return; + } const plainDatePicked = turnJSDateToPlainDate(datePicked); handleClose?.(plainDatePicked.toString()); @@ -493,7 +508,9 @@ export const DatePicker = ({ openToDate={dateForDatePicker ?? undefined} disabledKeyboardNavigation onChange={handleDateChange} - calendarStartDay={calendarStartDay} + calendarStartDay={ + calendarStartDay as 0 | 1 | 2 | 3 | 4 | 5 | 6 | undefined + } renderCustomHeader={({ prevMonthButtonDisabled, nextMonthButtonDisabled, diff --git a/packages/twenty-front/src/modules/ui/input/components/internal/date/components/DatePickerWithoutCalendar.tsx b/packages/twenty-front/src/modules/ui/input/components/internal/date/components/DatePickerWithoutCalendar.tsx index 94122ebeba..44d5ec529a 100644 --- a/packages/twenty-front/src/modules/ui/input/components/internal/date/components/DatePickerWithoutCalendar.tsx +++ b/packages/twenty-front/src/modules/ui/input/components/internal/date/components/DatePickerWithoutCalendar.tsx @@ -1,6 +1,6 @@ import { styled } from '@linaria/react'; import { Suspense, lazy, useContext, type ComponentType } from 'react'; -import type { ReactDatePickerProps as ReactDatePickerLibProps } from 'react-datepicker'; +import type { DatePickerProps as ReactDatePickerLibProps } from 'react-datepicker'; import Skeleton, { SkeletonTheme } from 'react-loading-skeleton'; import { SKELETON_LOADER_HEIGHT_SIZES } from '@/activities/components/SkeletonLoader'; @@ -309,10 +309,7 @@ type DatePickerWithoutCalendarProps = { keyboardEventsDisabled?: boolean; }; -type DatePickerPropsType = ReactDatePickerLibProps< - boolean | undefined, - boolean | undefined ->; +type DatePickerPropsType = ReactDatePickerLibProps; const ReactDatePicker = lazy>(() => import('react-datepicker').then((mod) => ({ @@ -370,13 +367,19 @@ export const DatePickerWithoutCalendar = ({ onChange?.(newDate?.toString() ?? null); }; - const handleDateChange = (datePicked: Date) => { + const handleDateChange = (datePicked: Date | null) => { + if (!isDefined(datePicked)) { + return; + } const plainDatePicked = turnJSDateToPlainDate(datePicked); onChange?.(plainDatePicked.toString()); }; - const handleDateSelect = (datePicked: Date) => { + const handleDateSelect = (datePicked: Date | null) => { + if (!isDefined(datePicked)) { + return; + } const plainDatePicked = turnJSDateToPlainDate(datePicked); handleClose?.(plainDatePicked.toString()); @@ -443,7 +446,9 @@ export const DatePickerWithoutCalendar = ({ openToDate={dateForDatePicker ?? undefined} disabledKeyboardNavigation onChange={handleDateChange} - calendarStartDay={calendarStartDay} + calendarStartDay={ + calendarStartDay as 0 | 1 | 2 | 3 | 4 | 5 | 6 | undefined + } renderCustomHeader={({ prevMonthButtonDisabled, nextMonthButtonDisabled, diff --git a/packages/twenty-front/src/modules/ui/input/components/internal/date/components/DateTimePicker.tsx b/packages/twenty-front/src/modules/ui/input/components/internal/date/components/DateTimePicker.tsx index 805c090b64..761627eee9 100644 --- a/packages/twenty-front/src/modules/ui/input/components/internal/date/components/DateTimePicker.tsx +++ b/packages/twenty-front/src/modules/ui/input/components/internal/date/components/DateTimePicker.tsx @@ -15,7 +15,7 @@ import { useCloseDropdown } from '@/ui/layout/dropdown/hooks/useCloseDropdown'; import { styled } from '@linaria/react'; import { t } from '@lingui/core/macro'; import { lazy, Suspense, useContext, type ComponentType } from 'react'; -import type { ReactDatePickerProps as ReactDatePickerLibProps } from 'react-datepicker'; +import type { DatePickerProps as ReactDatePickerLibProps } from 'react-datepicker'; import Skeleton, { SkeletonTheme } from 'react-loading-skeleton'; import 'react-datepicker/dist/react-datepicker.css'; @@ -346,10 +346,19 @@ type DateTimePickerProps = { timeZone?: string; }; -type DatePickerPropsType = ReactDatePickerLibProps< - boolean | undefined, - boolean | undefined ->; +// react-datepicker v9 types its props as a discriminated union keyed on +// selectsRange/selectsMultiple. We drive selectsMultiple dynamically, which TS +// cannot narrow to a single union branch, so collapse the discriminants to plain +// optionals (selectedDates is accepted but ignored by the library at runtime). +type DatePickerPropsType = Omit< + ReactDatePickerLibProps, + 'selectsRange' | 'selectsMultiple' | 'onChange' | 'formatMultipleDates' +> & { + selectsRange?: boolean; + selectsMultiple?: boolean; + selectedDates?: Date[]; + onChange?: (date: Date | null) => void; +}; const ReactDatePicker = lazy>(() => import('react-datepicker').then((mod) => ({ @@ -438,13 +447,19 @@ export const DateTimePicker = ({ onChange?.(newZonedDateTime); }; - const handleDateChange = (newDate: Date) => { + const handleDateChange = (newDate: Date | null) => { + if (!isDefined(newDate)) { + return; + } const { zonedDateTime } = getZonedDateTimeFromDatePicked(newDate); onChange?.(zonedDateTime); }; - const handleDateSelect = (newDate: Date) => { + const handleDateSelect = (newDate: Date | null) => { + if (!isDefined(newDate)) { + return; + } const { zonedDateTime } = getZonedDateTimeFromDatePicked(newDate); handleClose?.(zonedDateTime); @@ -524,7 +539,9 @@ export const DateTimePicker = ({ openToDate={shiftedDateForReactDatePicker} disabledKeyboardNavigation onChange={handleDateChange} - calendarStartDay={calendarStartDayNumber} + calendarStartDay={ + calendarStartDayNumber as 0 | 1 | 2 | 3 | 4 | 5 | 6 | undefined + } renderCustomHeader={({ prevMonthButtonDisabled, nextMonthButtonDisabled, diff --git a/packages/twenty-front/src/modules/ui/layout/draggable-list/components/DraggableItem.tsx b/packages/twenty-front/src/modules/ui/layout/draggable-list/components/DraggableItem.tsx index 8374292b25..accf408320 100644 --- a/packages/twenty-front/src/modules/ui/layout/draggable-list/components/DraggableItem.tsx +++ b/packages/twenty-front/src/modules/ui/layout/draggable-list/components/DraggableItem.tsx @@ -1,6 +1,6 @@ import { Draggable } from '@hello-pangea/dnd'; import { isFunction } from '@sniptt/guards'; -import { useContext } from 'react'; +import { type JSX, useContext } from 'react'; import { isDefined } from 'twenty-shared/utils'; import { ThemeContext } from 'twenty-ui-deprecated/theme-constants'; diff --git a/packages/twenty-front/src/modules/ui/layout/draggable-list/utils/getCssCompatibleDraggableProps.ts b/packages/twenty-front/src/modules/ui/layout/draggable-list/utils/getCssCompatibleDraggableProps.ts new file mode 100644 index 0000000000..8e4220c2d4 --- /dev/null +++ b/packages/twenty-front/src/modules/ui/layout/draggable-list/utils/getCssCompatibleDraggableProps.ts @@ -0,0 +1,15 @@ +import { type DraggableProvidedDraggableProps } from '@hello-pangea/dnd'; +import { type CSSProperties } from 'react'; + +type CssCompatibleDraggableProps = Omit< + DraggableProvidedDraggableProps, + 'style' +> & { style?: CSSProperties }; + +// @hello-pangea/dnd types draggableProps.style as DraggingStyle | NotDraggingStyle — +// closed interfaces that do not satisfy the `--radix-${string}` index signature +// @radix-ui/react-popper augments onto React.CSSProperties. Widen the style so the +// props can be spread onto a styled element without a per-call-site cast. +export const getCssCompatibleDraggableProps = ( + draggableProps: DraggableProvidedDraggableProps, +): CssCompatibleDraggableProps => draggableProps as CssCompatibleDraggableProps; diff --git a/packages/twenty-front/src/modules/ui/layout/fullscreen/components/FullScreenContainer.tsx b/packages/twenty-front/src/modules/ui/layout/fullscreen/components/FullScreenContainer.tsx index 72733f8dce..68c775b03b 100644 --- a/packages/twenty-front/src/modules/ui/layout/fullscreen/components/FullScreenContainer.tsx +++ b/packages/twenty-front/src/modules/ui/layout/fullscreen/components/FullScreenContainer.tsx @@ -1,3 +1,4 @@ +import { type JSX } from 'react'; import { PageHeader } from '@/ui/layout/page/components/PageHeader'; import { PAGE_BAR_MIN_HEIGHT } from '@/ui/layout/page/constants/PageBarMinHeight'; import { diff --git a/packages/twenty-front/src/modules/ui/layout/modal/components/ModalHotkeysAndClickOutsideEffect.tsx b/packages/twenty-front/src/modules/ui/layout/modal/components/ModalHotkeysAndClickOutsideEffect.tsx index 7a4f8227fa..6c12887f9f 100644 --- a/packages/twenty-front/src/modules/ui/layout/modal/components/ModalHotkeysAndClickOutsideEffect.tsx +++ b/packages/twenty-front/src/modules/ui/layout/modal/components/ModalHotkeysAndClickOutsideEffect.tsx @@ -5,7 +5,7 @@ import { useListenClickOutside } from '@/ui/utilities/pointer-event/hooks/useLis import { Key } from 'ts-key-enum'; type ModalHotkeysAndClickOutsideEffectProps = { - modalRef: React.RefObject; + modalRef: React.RefObject; onEnter?: () => void; isClosable?: boolean; onClose?: () => void; diff --git a/packages/twenty-front/src/modules/ui/navigation/navigation-drawer/components/NavigationDrawerInput.tsx b/packages/twenty-front/src/modules/ui/navigation/navigation-drawer/components/NavigationDrawerInput.tsx index 2d8fa4dbd0..42518176f0 100644 --- a/packages/twenty-front/src/modules/ui/navigation/navigation-drawer/components/NavigationDrawerInput.tsx +++ b/packages/twenty-front/src/modules/ui/navigation/navigation-drawer/components/NavigationDrawerInput.tsx @@ -4,7 +4,7 @@ import { useRemoveFocusItemFromFocusStackById } from '@/ui/utilities/focus/hooks import { FocusComponentType } from '@/ui/utilities/focus/types/FocusComponentType'; import { useHotkeysOnFocusedElement } from '@/ui/utilities/hotkey/hooks/useHotkeysOnFocusedElement'; import { useListenClickOutside } from '@/ui/utilities/pointer-event/hooks/useListenClickOutside'; -import { type FocusEvent, useRef } from 'react'; +import { type JSX, type FocusEvent, useRef } from 'react'; import { Key } from 'ts-key-enum'; import { isDefined } from 'twenty-shared/utils'; import { diff --git a/packages/twenty-front/src/modules/ui/navigation/navigation-drawer/components/NavigationDrawerItem.tsx b/packages/twenty-front/src/modules/ui/navigation/navigation-drawer/components/NavigationDrawerItem.tsx index 9568aa5d1d..18bd81aab2 100644 --- a/packages/twenty-front/src/modules/ui/navigation/navigation-drawer/components/NavigationDrawerItem.tsx +++ b/packages/twenty-front/src/modules/ui/navigation/navigation-drawer/components/NavigationDrawerItem.tsx @@ -10,7 +10,7 @@ import { useSetAtomState } from '@/ui/utilities/state/jotai/hooks/useSetAtomStat import { styled } from '@linaria/react'; import { t } from '@lingui/core/macro'; import { isNonEmptyString } from '@sniptt/guards'; -import { type ReactNode, useContext } from 'react'; +import { type JSX, type ReactNode, useContext } from 'react'; import { Link } from 'react-router-dom'; import { isDefined } from 'twenty-shared/utils'; import { Pill } from 'twenty-ui-deprecated/components'; diff --git a/packages/twenty-front/src/modules/ui/theme/components/BaseThemeProvider.tsx b/packages/twenty-front/src/modules/ui/theme/components/BaseThemeProvider.tsx index 3a99f75ff4..77f7009336 100644 --- a/packages/twenty-front/src/modules/ui/theme/components/BaseThemeProvider.tsx +++ b/packages/twenty-front/src/modules/ui/theme/components/BaseThemeProvider.tsx @@ -1,4 +1,4 @@ -import { createContext } from 'react'; +import { type JSX, createContext } from 'react'; import { useSystemColorScheme } from '@/ui/theme/hooks/useSystemColorScheme'; import { persistedColorSchemeState } from '@/ui/theme/states/persistedColorSchemeState'; diff --git a/packages/twenty-front/src/modules/ui/utilities/dimensions/components/NodeDimensionEffect.tsx b/packages/twenty-front/src/modules/ui/utilities/dimensions/components/NodeDimensionEffect.tsx index d848e9810e..a93b88d31c 100644 --- a/packages/twenty-front/src/modules/ui/utilities/dimensions/components/NodeDimensionEffect.tsx +++ b/packages/twenty-front/src/modules/ui/utilities/dimensions/components/NodeDimensionEffect.tsx @@ -2,7 +2,7 @@ import { type RefObject, useEffect } from 'react'; import { isDefined } from 'twenty-shared/utils'; type NodeDimensionEffectProps = { - elementRef: RefObject; + elementRef: RefObject; onDimensionChange: (dimensions: { width: number; height: number }) => void; }; diff --git a/packages/twenty-front/src/modules/ui/utilities/drag-select/components/DragSelect.tsx b/packages/twenty-front/src/modules/ui/utilities/drag-select/components/DragSelect.tsx index ce2da11827..3777f5b8f4 100644 --- a/packages/twenty-front/src/modules/ui/utilities/drag-select/components/DragSelect.tsx +++ b/packages/twenty-front/src/modules/ui/utilities/drag-select/components/DragSelect.tsx @@ -10,7 +10,7 @@ import { type SelectionBox } from '@/ui/utilities/drag-select/types/SelectionBox import { isValidSelectionStart } from '@/ui/utilities/drag-select/utils/selectionBoxValidation'; type DragSelectProps = { - selectableItemsContainerRef: RefObject; + selectableItemsContainerRef: RefObject; onDragSelectionChange: (id: string, selected: boolean) => void; onDragSelectionStart?: (event: MouseEvent | TouchEvent) => void; onDragSelectionEnd?: (event: MouseEvent | TouchEvent) => void; diff --git a/packages/twenty-front/src/modules/ui/utilities/page-favicon/components/PageFavicon.tsx b/packages/twenty-front/src/modules/ui/utilities/page-favicon/components/PageFavicon.tsx index c1cda12d16..70c07dce00 100644 --- a/packages/twenty-front/src/modules/ui/utilities/page-favicon/components/PageFavicon.tsx +++ b/packages/twenty-front/src/modules/ui/utilities/page-favicon/components/PageFavicon.tsx @@ -1,6 +1,6 @@ import { workspacePublicDataState } from '@/auth/states/workspacePublicDataState'; import { DEFAULT_WORKSPACE_LOGO } from '@/ui/navigation/navigation-drawer/constants/DefaultWorkspaceLogo'; -import { Helmet } from 'react-helmet-async'; +import { Helmet } from '@dr.pogodin/react-helmet'; import { useAtomStateValue } from '@/ui/utilities/state/jotai/hooks/useAtomStateValue'; import { getImageAbsoluteURI } from 'twenty-shared/utils'; import { REACT_APP_SERVER_BASE_URL } from '~/config'; diff --git a/packages/twenty-front/src/modules/ui/utilities/page-title/components/PageTitle.tsx b/packages/twenty-front/src/modules/ui/utilities/page-title/components/PageTitle.tsx index 362002ce44..be4d8c913f 100644 --- a/packages/twenty-front/src/modules/ui/utilities/page-title/components/PageTitle.tsx +++ b/packages/twenty-front/src/modules/ui/utilities/page-title/components/PageTitle.tsx @@ -1,4 +1,4 @@ -import { Helmet } from 'react-helmet-async'; +import { Helmet } from '@dr.pogodin/react-helmet'; type PageTitleProps = { title: string; diff --git a/packages/twenty-front/src/modules/ui/utilities/pointer-event/hooks/useListenClickOutside.ts b/packages/twenty-front/src/modules/ui/utilities/pointer-event/hooks/useListenClickOutside.ts index aa5fa85069..b7dcc52563 100644 --- a/packages/twenty-front/src/modules/ui/utilities/pointer-event/hooks/useListenClickOutside.ts +++ b/packages/twenty-front/src/modules/ui/utilities/pointer-event/hooks/useListenClickOutside.ts @@ -9,7 +9,7 @@ import { isDefined } from 'twenty-shared/utils'; const CLICK_OUTSIDE_DEBUG_MODE = false; export type ClickOutsideListenerProps = { - refs: Array>; + refs: Array>; excludedClickOutsideIds?: string[]; callback: (event: MouseEvent | TouchEvent) => void; listenerId: string; diff --git a/packages/twenty-front/src/modules/workflow/workflow-diagram/components/WorkflowDiagramRightClickCommandMenuClickOutsideEffect.tsx b/packages/twenty-front/src/modules/workflow/workflow-diagram/components/WorkflowDiagramRightClickCommandMenuClickOutsideEffect.tsx index 43d438d8f5..f2dcb7f16f 100644 --- a/packages/twenty-front/src/modules/workflow/workflow-diagram/components/WorkflowDiagramRightClickCommandMenuClickOutsideEffect.tsx +++ b/packages/twenty-front/src/modules/workflow/workflow-diagram/components/WorkflowDiagramRightClickCommandMenuClickOutsideEffect.tsx @@ -7,7 +7,7 @@ import { workflowDiagramRightClickMenuPositionState } from '@/workflow/workflow- export const WorkflowDiagramRightClickCommandMenuClickOutsideEffect = ({ rightClickCommandMenuRef, }: { - rightClickCommandMenuRef: React.RefObject; + rightClickCommandMenuRef: React.RefObject; }) => { const setWorkflowDiagramRightClickMenuPosition = useSetAtomComponentState( workflowDiagramRightClickMenuPositionState, diff --git a/packages/twenty-front/src/pages/auth/SignInUp.tsx b/packages/twenty-front/src/pages/auth/SignInUp.tsx index 781e41562d..f664932a38 100644 --- a/packages/twenty-front/src/pages/auth/SignInUp.tsx +++ b/packages/twenty-front/src/pages/auth/SignInUp.tsx @@ -23,7 +23,7 @@ import { isMultiWorkspaceEnabledState } from '@/client-config/states/isMultiWork import { useGetPublicWorkspaceDataByDomain } from '@/domain-manager/hooks/useGetPublicWorkspaceDataByDomain'; import { useIsCurrentLocationOnAWorkspace } from '@/domain-manager/hooks/useIsCurrentLocationOnAWorkspace'; import { useIsCurrentLocationOnDefaultDomain } from '@/domain-manager/hooks/useIsCurrentLocationOnDefaultDomain'; -import { useMemo } from 'react'; +import { type JSX, useMemo } from 'react'; import { SignInUpGlobalScopeFormEffect } from '@/auth/sign-in-up/components/internal/SignInUpGlobalScopeFormEffect'; import { SignInUpTwoFactorAuthenticationProvision } from '@/auth/sign-in-up/components/internal/SignInUpTwoFactorAuthenticationProvision'; diff --git a/packages/twenty-front/src/pages/settings/developers/__stories__/playground/SettingsGraphQLPlayground.stories.tsx b/packages/twenty-front/src/pages/settings/developers/__stories__/playground/SettingsGraphQLPlayground.stories.tsx index aea9dedb24..35d1e28232 100644 --- a/packages/twenty-front/src/pages/settings/developers/__stories__/playground/SettingsGraphQLPlayground.stories.tsx +++ b/packages/twenty-front/src/pages/settings/developers/__stories__/playground/SettingsGraphQLPlayground.stories.tsx @@ -12,6 +12,12 @@ import { graphqlMocks } from '~/testing/graphqlMocks'; const meta: Meta = { title: 'Pages/Settings/Playground/GraphQLPlayground', component: SettingsGraphQLPlayground, + // graphiql 5 renders a Monaco editor that cannot spin up web workers in the + // headless storybook test runner and throws unhandled async errors there + // (Cannot read properties of undefined 'toUrl'). Exclude this 3rd-party-tool + // wrapper from the vitest run; it is still available in the Storybook UI. + // (!test removes the auto-applied `test` tag the vitest addon filters on.) + tags: ['!test'], decorators: [ (Story) => { jotaiStore.set(playgroundApiKeyState.atom, { diff --git a/packages/twenty-front/src/testing/ComponentStorybookLayout.tsx b/packages/twenty-front/src/testing/ComponentStorybookLayout.tsx index 0b60d5ee29..bb4f688e33 100644 --- a/packages/twenty-front/src/testing/ComponentStorybookLayout.tsx +++ b/packages/twenty-front/src/testing/ComponentStorybookLayout.tsx @@ -1,3 +1,4 @@ +import { type JSX } from 'react'; import { styled } from '@linaria/react'; const StyledLayout = styled.div<{ width?: number }>` diff --git a/packages/twenty-front/src/testing/FullHeightStorybookLayout.tsx b/packages/twenty-front/src/testing/FullHeightStorybookLayout.tsx index 5d65646d0a..2d17cf60ad 100644 --- a/packages/twenty-front/src/testing/FullHeightStorybookLayout.tsx +++ b/packages/twenty-front/src/testing/FullHeightStorybookLayout.tsx @@ -1,3 +1,4 @@ +import { type JSX } from 'react'; import { styled } from '@linaria/react'; const StyledLayout = styled.div` diff --git a/packages/twenty-front/src/testing/decorators/ComponentWithRouterDecorator.tsx b/packages/twenty-front/src/testing/decorators/ComponentWithRouterDecorator.tsx index 3fb929c51a..ec0f5ca527 100644 --- a/packages/twenty-front/src/testing/decorators/ComponentWithRouterDecorator.tsx +++ b/packages/twenty-front/src/testing/decorators/ComponentWithRouterDecorator.tsx @@ -1,3 +1,4 @@ +import { type JSX } from 'react'; import { type Decorator } from '@storybook/react-vite'; import { createMemoryRouter, diff --git a/packages/twenty-front/src/testing/decorators/HelmetProviderDecorator.tsx b/packages/twenty-front/src/testing/decorators/HelmetProviderDecorator.tsx index 1e139275d9..69937baffe 100644 --- a/packages/twenty-front/src/testing/decorators/HelmetProviderDecorator.tsx +++ b/packages/twenty-front/src/testing/decorators/HelmetProviderDecorator.tsx @@ -1,5 +1,5 @@ import { type Decorator } from '@storybook/react-vite'; -import { HelmetProvider } from 'react-helmet-async'; +import { HelmetProvider } from '@dr.pogodin/react-helmet'; export const HelmetProviderDecorator: Decorator = (Story) => { return ( diff --git a/packages/twenty-front/src/testing/decorators/PageDecorator.tsx b/packages/twenty-front/src/testing/decorators/PageDecorator.tsx index ae88aa9d3c..4b47b7e6dd 100644 --- a/packages/twenty-front/src/testing/decorators/PageDecorator.tsx +++ b/packages/twenty-front/src/testing/decorators/PageDecorator.tsx @@ -2,7 +2,7 @@ import { ApolloProvider } from '@apollo/client/react'; import { loadDevMessages } from '@apollo/client/dev'; import { type Decorator } from '@storybook/react-vite'; import { Provider as JotaiProvider } from 'jotai'; -import { HelmetProvider } from 'react-helmet-async'; +import { HelmetProvider } from '@dr.pogodin/react-helmet'; import { createMemoryRouter, createRoutesFromElements, @@ -18,7 +18,7 @@ import { MinimalMetadataGater } from '@/metadata-store/components/MinimalMetadat import { UserMetadataProviderInitialEffect } from '@/metadata-store/effect-components/UserMetadataProviderInitialEffect'; import { MockedMetadataLoadEffect } from '~/testing/decorators/MockedMetadataLoadEffect'; import { jotaiStore } from '@/ui/utilities/state/jotai/jotaiStore'; -import { useState } from 'react'; +import { type JSX, useState } from 'react'; import { ClientConfigProvider } from '~/modules/client-config/components/ClientConfigProvider'; import { mockedApolloClient } from '~/testing/mockedApolloClient'; diff --git a/packages/twenty-front/src/types/ComponentParameters.ts b/packages/twenty-front/src/types/ComponentParameters.ts index 8634828ca8..abc8ff9839 100644 --- a/packages/twenty-front/src/types/ComponentParameters.ts +++ b/packages/twenty-front/src/types/ComponentParameters.ts @@ -1,3 +1,4 @@ +import { type JSX } from 'react'; export type ComponentParameters< ComponentTypeToExtract extends (args: object) => JSX.Element, > = Parameters[0]; diff --git a/packages/twenty-sdk/package.json b/packages/twenty-sdk/package.json index acaa9c8619..dc2c22b06a 100644 --- a/packages/twenty-sdk/package.json +++ b/packages/twenty-sdk/package.json @@ -83,8 +83,8 @@ "inquirer": "^14.0.0", "jsonc-parser": "^3.2.0", "preact": "^10.28.3", - "react": "^19.0.0", - "react-dom": "^19.0.0", + "react": "^19.2.0", + "react-dom": "^19.2.0", "tinyglobby": "^0.2.15", "twenty-client-sdk": "workspace:*", "typescript": "^5.9.3", @@ -93,8 +93,8 @@ "devDependencies": { "@prettier/sync": "^0.5.2", "@types/node": "^24.0.0", - "@types/react": "^19.0.0", - "@types/react-dom": "^19.0.0", + "@types/react": "^19.2.0", + "@types/react-dom": "^19.2.0", "@typescript/native-preview": "^7.0.0-dev.20260116.1", "@vitest/coverage-v8": "^4.0.18", "prettier": "^3.1.1", diff --git a/packages/twenty-server/package.json b/packages/twenty-server/package.json index c36dc07681..f4697b0e0d 100644 --- a/packages/twenty-server/package.json +++ b/packages/twenty-server/package.json @@ -152,8 +152,8 @@ "pluralize": "8.0.0", "postal-mime": "^2.6.1", "psl": "^1.9.0", - "react": "18.3.1", - "react-dom": "18.3.1", + "react": "^19.2.0", + "react-dom": "^19.2.0", "redis": "^4.7.0", "reflect-metadata": "0.2.2", "rxjs": "7.8.1", @@ -210,7 +210,7 @@ "@types/passport-microsoft": "^2.1.0", "@types/pluralize": "^0.0.33", "@types/psl": "^1.1.3", - "@types/react": "^18.2.39", + "@types/react": "^19.2.0", "@types/supertest": "^2.0.11", "@types/unzipper": "^0", "@types/uuid": "^9.0.2", diff --git a/packages/twenty-server/src/engine/core-modules/tool/tools/send-email-tool/__tests__/send-email-body-rendering.spec.ts b/packages/twenty-server/src/engine/core-modules/tool/tools/send-email-tool/__tests__/send-email-body-rendering.spec.ts index 0906b983e2..63b18afe1d 100644 --- a/packages/twenty-server/src/engine/core-modules/tool/tools/send-email-tool/__tests__/send-email-body-rendering.spec.ts +++ b/packages/twenty-server/src/engine/core-modules/tool/tools/send-email-tool/__tests__/send-email-body-rendering.spec.ts @@ -122,7 +122,7 @@ describe('Send Email Body Rendering', () => { if (!element || typeof element !== 'object') return false; if (element.type === 'br') return true; - const children = element.props?.children; + const children = (element.props as { children?: unknown })?.children; if (!children) return false; if (Array.isArray(children)) { diff --git a/packages/twenty-server/test/integration/metadata/suites/application/__snapshots__/successful-sync-application-workspace-migration.integration-spec.ts.snap b/packages/twenty-server/test/integration/metadata/suites/application/__snapshots__/successful-sync-application-workspace-migration.integration-spec.ts.snap index 6d86f8723b..86e3939e23 100644 --- a/packages/twenty-server/test/integration/metadata/suites/application/__snapshots__/successful-sync-application-workspace-migration.integration-spec.ts.snap +++ b/packages/twenty-server/test/integration/metadata/suites/application/__snapshots__/successful-sync-application-workspace-migration.integration-spec.ts.snap @@ -389,6 +389,7 @@ exports[`syncApplication should delete old field and create equivalent one when "isNullable": true, "isSystem": false, "isUIEditable": true, + "isUIReadOnly": false, "isUnique": false, "kanbanAggregateOperationViewIds": [], "kanbanAggregateOperationViewUniversalIdentifiers": [], diff --git a/packages/twenty-ui-deprecated/package.json b/packages/twenty-ui-deprecated/package.json index b72680cace..d452027e20 100644 --- a/packages/twenty-ui-deprecated/package.json +++ b/packages/twenty-ui-deprecated/package.json @@ -26,8 +26,8 @@ "@testing-library/react": "^16.3.0", "@types/babel__preset-env": "^7", "@types/jest": "^30.0.0", - "@types/react": "^18.2.39", - "@types/react-dom": "^18.2.15", + "@types/react": "^19.2.0", + "@types/react-dom": "^19.2.0", "@vitejs/plugin-react-swc": "^4.3.1", "@wyw-in-js/babel-preset": "^1.1.0", "@wyw-in-js/vite": "^1.1.0", @@ -47,7 +47,7 @@ "vite-plugin-svgr": "^4.3.0" }, "dependencies": { - "@linaria/react": "^6.2.1", + "@linaria/react": "^7.0.1", "@monaco-editor/react": "^4.7.0", "@radix-ui/colors": "^3.0.0", "@sniptt/guards": "^0.2.0", @@ -56,8 +56,8 @@ "framer-motion": "^11.18.0", "glob": "^11.1.0", "jotai": "^2.17.1", - "react": "^18.2.0", - "react-dom": "^18.2.0", + "react": "^19.2.0", + "react-dom": "^19.2.0", "react-responsive": "^9.0.2", "react-router-dom": "^6.4.4", "react-tooltip": "^5.13.1", diff --git a/packages/twenty-ui-deprecated/src/display/icon/providers/IconsProvider.tsx b/packages/twenty-ui-deprecated/src/display/icon/providers/IconsProvider.tsx index e2e4a318a7..1e93a39f99 100644 --- a/packages/twenty-ui-deprecated/src/display/icon/providers/IconsProvider.tsx +++ b/packages/twenty-ui-deprecated/src/display/icon/providers/IconsProvider.tsx @@ -1,5 +1,5 @@ import { useSetAtom } from 'jotai'; -import { useEffect } from 'react'; +import { type JSX, useEffect } from 'react'; import { iconsState } from '@ui/display/icon/states/iconsState'; diff --git a/packages/twenty-ui-deprecated/src/layout/modal/types/ModalProps.ts b/packages/twenty-ui-deprecated/src/layout/modal/types/ModalProps.ts index e6b3d89039..9fcf246345 100644 --- a/packages/twenty-ui-deprecated/src/layout/modal/types/ModalProps.ts +++ b/packages/twenty-ui-deprecated/src/layout/modal/types/ModalProps.ts @@ -22,5 +22,5 @@ export type ModalProps = React.PropsWithChildren & { backdropClickOutsideId?: string; preventClickOutside?: boolean; onBackdropMouseDown?: (e: React.MouseEvent) => void; - modalRef?: React.RefObject; + modalRef?: React.RefObject; }; diff --git a/packages/twenty-ui-deprecated/src/testing/ComponentStorybookLayout.tsx b/packages/twenty-ui-deprecated/src/testing/ComponentStorybookLayout.tsx index 006e28c4ce..52a267d6e3 100644 --- a/packages/twenty-ui-deprecated/src/testing/ComponentStorybookLayout.tsx +++ b/packages/twenty-ui-deprecated/src/testing/ComponentStorybookLayout.tsx @@ -1,3 +1,4 @@ +import { type JSX } from 'react'; import { styled } from '@linaria/react'; import { isDefined } from 'twenty-shared/utils'; import { themeCssVariables } from '@ui/theme-constants'; diff --git a/packages/twenty-ui-deprecated/src/testing/decorators/ComponentWithRouterDecorator.tsx b/packages/twenty-ui-deprecated/src/testing/decorators/ComponentWithRouterDecorator.tsx index ed0044fc84..3fd39a34ee 100644 --- a/packages/twenty-ui-deprecated/src/testing/decorators/ComponentWithRouterDecorator.tsx +++ b/packages/twenty-ui-deprecated/src/testing/decorators/ComponentWithRouterDecorator.tsx @@ -1,3 +1,4 @@ +import { type JSX } from 'react'; import { type Decorator } from '@storybook/react-vite'; import { createMemoryRouter, diff --git a/packages/twenty-ui-deprecated/src/utilities/animation/components/AnimatedRotate.tsx b/packages/twenty-ui-deprecated/src/utilities/animation/components/AnimatedRotate.tsx index 545890f801..c21f433044 100644 --- a/packages/twenty-ui-deprecated/src/utilities/animation/components/AnimatedRotate.tsx +++ b/packages/twenty-ui-deprecated/src/utilities/animation/components/AnimatedRotate.tsx @@ -2,7 +2,7 @@ import { styled } from '@linaria/react'; import { type HTMLMotionProps, motion } from 'framer-motion'; import { type AnimationDuration } from '@ui/theme'; import { ThemeContext } from '@ui/theme-constants'; -import { useContext } from 'react'; +import { type JSX, useContext } from 'react'; type AnimatedRotateProps = Omit< HTMLMotionProps<'div'>, diff --git a/packages/twenty-ui/package.json b/packages/twenty-ui/package.json index dcc0fcb375..0ea13e6fe4 100644 --- a/packages/twenty-ui/package.json +++ b/packages/twenty-ui/package.json @@ -44,8 +44,8 @@ "@testing-library/jest-dom": "^6.6.3", "@testing-library/react": "^16.3.0", "@types/jest": "^30.0.0", - "@types/react": "^18.2.39", - "@types/react-dom": "^18.2.15", + "@types/react": "^19.2.0", + "@types/react-dom": "^19.2.0", "@vitejs/plugin-react-swc": "^4.3.1", "@vitest/browser-playwright": "^4.1.0", "esbuild": "^0.28.1", @@ -77,8 +77,8 @@ "framer-motion": "^11.18.0", "glob": "^11.1.0", "jotai": "^2.17.1", - "react": "^18.2.0", - "react-dom": "^18.2.0", + "react": "^19.2.0", + "react-dom": "^19.2.0", "react-responsive": "^9.0.2", "react-router-dom": "^6.4.4", "zod": "^4.1.11" diff --git a/packages/twenty-ui/src/display/icon/providers/IconsProvider.tsx b/packages/twenty-ui/src/display/icon/providers/IconsProvider.tsx index e2e4a318a7..1e93a39f99 100644 --- a/packages/twenty-ui/src/display/icon/providers/IconsProvider.tsx +++ b/packages/twenty-ui/src/display/icon/providers/IconsProvider.tsx @@ -1,5 +1,5 @@ import { useSetAtom } from 'jotai'; -import { useEffect } from 'react'; +import { type JSX, useEffect } from 'react'; import { iconsState } from '@ui/display/icon/states/iconsState'; diff --git a/packages/twenty-ui/src/layout/modal/types/ModalProps.ts b/packages/twenty-ui/src/layout/modal/types/ModalProps.ts index e6b3d89039..9fcf246345 100644 --- a/packages/twenty-ui/src/layout/modal/types/ModalProps.ts +++ b/packages/twenty-ui/src/layout/modal/types/ModalProps.ts @@ -22,5 +22,5 @@ export type ModalProps = React.PropsWithChildren & { backdropClickOutsideId?: string; preventClickOutside?: boolean; onBackdropMouseDown?: (e: React.MouseEvent) => void; - modalRef?: React.RefObject; + modalRef?: React.RefObject; }; diff --git a/packages/twenty-ui/src/testing/ComponentStorybookLayout.tsx b/packages/twenty-ui/src/testing/ComponentStorybookLayout.tsx index f932cf4396..c72bd1ed7f 100644 --- a/packages/twenty-ui/src/testing/ComponentStorybookLayout.tsx +++ b/packages/twenty-ui/src/testing/ComponentStorybookLayout.tsx @@ -1,3 +1,4 @@ +import { type JSX } from 'react'; import { isDefined } from '@ui/utilities/utils/isDefined'; import styles from './ComponentStorybookLayout.module.scss'; diff --git a/packages/twenty-ui/src/testing/decorators/ComponentWithRouterDecorator.tsx b/packages/twenty-ui/src/testing/decorators/ComponentWithRouterDecorator.tsx index ed0044fc84..3fd39a34ee 100644 --- a/packages/twenty-ui/src/testing/decorators/ComponentWithRouterDecorator.tsx +++ b/packages/twenty-ui/src/testing/decorators/ComponentWithRouterDecorator.tsx @@ -1,3 +1,4 @@ +import { type JSX } from 'react'; import { type Decorator } from '@storybook/react-vite'; import { createMemoryRouter, diff --git a/packages/twenty-ui/src/utilities/animation/components/AnimatedRotate.tsx b/packages/twenty-ui/src/utilities/animation/components/AnimatedRotate.tsx index ab72c43845..0b872bdd12 100644 --- a/packages/twenty-ui/src/utilities/animation/components/AnimatedRotate.tsx +++ b/packages/twenty-ui/src/utilities/animation/components/AnimatedRotate.tsx @@ -1,7 +1,7 @@ import { type HTMLMotionProps, motion } from 'framer-motion'; import { type AnimationDuration } from '@ui/theme'; import { ThemeContext } from '@ui/theme-constants'; -import { useContext } from 'react'; +import { type JSX, useContext } from 'react'; import styles from './AnimatedRotate.module.scss'; diff --git a/packages/twenty-website/package.json b/packages/twenty-website/package.json index 354ed18d14..be33114bb8 100644 --- a/packages/twenty-website/package.json +++ b/packages/twenty-website/package.json @@ -29,8 +29,8 @@ "gray-matter": "^4.0.3", "next": "^16.2.6", "next-with-linaria": "^1.3.0", - "react": "19.2.3", - "react-dom": "19.2.3", + "react": "^19.2.0", + "react-dom": "^19.2.0", "react-markdown": "^10.1.0", "remark-gfm": "^4.0.1", "serialize-javascript": "^7.0.5", @@ -50,8 +50,8 @@ "@swc/jest": "^0.2.39", "@types/jest": "^30.0.0", "@types/node": "^20", - "@types/react": "^19", - "@types/react-dom": "^19", + "@types/react": "^19.2.0", + "@types/react-dom": "^19.2.0", "@types/serialize-javascript": "^5.0.4", "@types/three": "^0.183.1", "babel-plugin-react-compiler": "1.0.0", diff --git a/packages/twenty-website/src/design-system/components/MarkdownProse.tsx b/packages/twenty-website/src/design-system/components/MarkdownProse.tsx index 4f0df17662..31c949b0a8 100644 --- a/packages/twenty-website/src/design-system/components/MarkdownProse.tsx +++ b/packages/twenty-website/src/design-system/components/MarkdownProse.tsx @@ -149,7 +149,7 @@ export function MarkdownProse({ markdown }: MarkdownProseProps) { alt={alt ?? ''} decoding="async" loading="lazy" - src={resolveAssetUrl(src)} + src={resolveAssetUrl(typeof src === 'string' ? src : undefined)} // oxlint-disable-next-line react/jsx-props-no-spreading -- ReactMarkdown component overrides {...props} /> diff --git a/yarn.lock b/yarn.lock index d6be533af5..80eb361507 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4318,13 +4318,20 @@ __metadata: languageName: node linkType: hard -"@babel/runtime@npm:^7.12.1, @babel/runtime@npm:^7.12.5, @babel/runtime@npm:^7.18.3, @babel/runtime@npm:^7.20.13, @babel/runtime@npm:^7.21.0, @babel/runtime@npm:^7.22.6, @babel/runtime@npm:^7.24.1, @babel/runtime@npm:^7.8.4, @babel/runtime@npm:^7.9.2": +"@babel/runtime@npm:^7.12.5, @babel/runtime@npm:^7.18.3, @babel/runtime@npm:^7.20.13, @babel/runtime@npm:^7.21.0, @babel/runtime@npm:^7.22.6, @babel/runtime@npm:^7.8.4": version: 7.28.4 resolution: "@babel/runtime@npm:7.28.4" checksum: 10c0/792ce7af9750fb9b93879cc9d1db175701c4689da890e6ced242ea0207c9da411ccf16dc04e689cc01158b28d7898c40d75598f4559109f761c12ce01e959bf7 languageName: node linkType: hard +"@babel/runtime@npm:^7.26.7, @babel/runtime@npm:^7.29.2": + version: 7.29.7 + resolution: "@babel/runtime@npm:7.29.7" + checksum: 10c0/ca11572f7146b21e0bde6a9ed4bb6a89eafbee5f0944c7eb54d0d8a2dac962c33638a1d611e14faa71dfbb92b4b5f9236232208568a6b7d5c6f3f39ddb91771e + languageName: node + linkType: hard + "@babel/runtime@npm:^7.28.6, @babel/runtime@npm:^7.5.5, @babel/runtime@npm:^7.8.7": version: 7.28.6 resolution: "@babel/runtime@npm:7.28.6" @@ -4332,13 +4339,6 @@ __metadata: languageName: node linkType: hard -"@babel/runtime@npm:^7.29.2": - version: 7.29.7 - resolution: "@babel/runtime@npm:7.29.7" - checksum: 10c0/ca11572f7146b21e0bde6a9ed4bb6a89eafbee5f0944c7eb54d0d8a2dac962c33638a1d611e14faa71dfbb92b4b5f9236232208568a6b7d5c6f3f39ddb91771e - languageName: node - linkType: hard - "@babel/template@npm:^7.18.10, @babel/template@npm:^7.22.15, @babel/template@npm:^7.25.9, @babel/template@npm:^7.27.2, @babel/template@npm:^7.3.3": version: 7.27.2 resolution: "@babel/template@npm:7.27.2" @@ -5291,6 +5291,18 @@ __metadata: languageName: node linkType: hard +"@dr.pogodin/react-helmet@npm:^3.2.2": + version: 3.2.2 + resolution: "@dr.pogodin/react-helmet@npm:3.2.2" + dependencies: + "@babel/runtime": "npm:^7.29.2" + react-compiler-runtime: "npm:^1.0.0" + peerDependencies: + react: 19 + checksum: 10c0/da7405774dc01259cddb2ff1c29d60b3cba008edbc07e91cd2c8a4e80b49a3711d87e2be1e2fd7e11c51d164f9bb41868573ab7fce6fb6b4ffdbd8533c75cb04 + languageName: node + linkType: hard + "@e2b/code-interpreter@npm:^1.0.4": version: 1.5.1 resolution: "@e2b/code-interpreter@npm:1.5.1" @@ -5997,22 +6009,6 @@ __metadata: languageName: node linkType: hard -"@emotion/is-prop-valid@npm:^0.8.2": - version: 0.8.8 - resolution: "@emotion/is-prop-valid@npm:0.8.8" - dependencies: - "@emotion/memoize": "npm:0.7.4" - checksum: 10c0/f6be625f067c7fa56a12a4edaf090715616dc4fc7803c87212831f38c969350107b9709b1be54100e53153b18d9fa068eb4bf4f9ac66a37a8edf1bac9b64e279 - languageName: node - linkType: hard - -"@emotion/memoize@npm:0.7.4": - version: 0.7.4 - resolution: "@emotion/memoize@npm:0.7.4" - checksum: 10c0/b2376548fc147b43afd1ff005a80a1a025bd7eb4fb759fdb23e96e5ff290ee8ba16628a332848d600fb91c3cdc319eee5395fa33d8875e5d5a8c4ce18cddc18e - languageName: node - linkType: hard - "@emotion/memoize@npm:^0.9.0": version: 0.9.0 resolution: "@emotion/memoize@npm:0.9.0" @@ -7172,7 +7168,7 @@ __metadata: languageName: node linkType: hard -"@floating-ui/react-dom@npm:^2.0.0, @floating-ui/react-dom@npm:^2.0.1, @floating-ui/react-dom@npm:^2.1.1": +"@floating-ui/react-dom@npm:^2.0.0, @floating-ui/react-dom@npm:^2.0.1": version: 2.1.1 resolution: "@floating-ui/react-dom@npm:2.1.1" dependencies: @@ -7184,6 +7180,18 @@ __metadata: languageName: node linkType: hard +"@floating-ui/react-dom@npm:^2.1.2, @floating-ui/react-dom@npm:^2.1.8": + version: 2.1.8 + resolution: "@floating-ui/react-dom@npm:2.1.8" + dependencies: + "@floating-ui/dom": "npm:^1.7.6" + peerDependencies: + react: ">=16.8.0" + react-dom: ">=16.8.0" + checksum: 10c0/26260ca4bb23b57c73b824062505abf977a008ce6e0463bdacca74f7e49853c4cd1d2bbf1a77c6caa17fa37dfffda2c6c4cd07a8737ebd7474aaff7818401d75 + languageName: node + linkType: hard + "@floating-ui/react-dom@npm:^2.1.7": version: 2.1.7 resolution: "@floating-ui/react-dom@npm:2.1.7" @@ -7196,18 +7204,6 @@ __metadata: languageName: node linkType: hard -"@floating-ui/react-dom@npm:^2.1.8": - version: 2.1.8 - resolution: "@floating-ui/react-dom@npm:2.1.8" - dependencies: - "@floating-ui/dom": "npm:^1.7.6" - peerDependencies: - react: ">=16.8.0" - react-dom: ">=16.8.0" - checksum: 10c0/26260ca4bb23b57c73b824062505abf977a008ce6e0463bdacca74f7e49853c4cd1d2bbf1a77c6caa17fa37dfffda2c6c4cd07a8737ebd7474aaff7818401d75 - languageName: node - linkType: hard - "@floating-ui/react@npm:^0.24.3": version: 0.24.8 resolution: "@floating-ui/react@npm:0.24.8" @@ -7222,17 +7218,31 @@ __metadata: languageName: node linkType: hard -"@floating-ui/react@npm:^0.26.2": - version: 0.26.22 - resolution: "@floating-ui/react@npm:0.26.22" +"@floating-ui/react@npm:^0.26.16": + version: 0.26.28 + resolution: "@floating-ui/react@npm:0.26.28" dependencies: - "@floating-ui/react-dom": "npm:^2.1.1" - "@floating-ui/utils": "npm:^0.2.7" + "@floating-ui/react-dom": "npm:^2.1.2" + "@floating-ui/utils": "npm:^0.2.8" tabbable: "npm:^6.0.0" peerDependencies: react: ">=16.8.0" react-dom: ">=16.8.0" - checksum: 10c0/7eea7bef4fb98d13873752c5cabcf61216dbf00d748027450cdd0ff5c7a51328f8800fa012ecd87bef8e1abedcc7703d5298a604843ec031dc88a18233548623 + checksum: 10c0/a42df129e1e976fe8ba3f4c8efdda265a0196c1b66b83f2b9b27423d08dcc765406f893aeff9d830e70e3f14a9d4c490867eb4c32983317cbaa33863b0fae6f6 + languageName: node + linkType: hard + +"@floating-ui/react@npm:^0.27.15, @floating-ui/react@npm:^0.27.18": + version: 0.27.19 + resolution: "@floating-ui/react@npm:0.27.19" + dependencies: + "@floating-ui/react-dom": "npm:^2.1.8" + "@floating-ui/utils": "npm:^0.2.11" + tabbable: "npm:^6.0.0" + peerDependencies: + react: ">=17.0.0" + react-dom: ">=17.0.0" + checksum: 10c0/2a2cdfd3e67e0606833b63f922ad2a9037974f22b944e1cb8c0991b4c40450f8413d69745c0bbf4646e5ba283747f60d2fdc9a8d289b68b24448e59d81a3a96d languageName: node linkType: hard @@ -7250,20 +7260,6 @@ __metadata: languageName: node linkType: hard -"@floating-ui/react@npm:^0.27.18": - version: 0.27.19 - resolution: "@floating-ui/react@npm:0.27.19" - dependencies: - "@floating-ui/react-dom": "npm:^2.1.8" - "@floating-ui/utils": "npm:^0.2.11" - tabbable: "npm:^6.0.0" - peerDependencies: - react: ">=17.0.0" - react-dom: ">=17.0.0" - checksum: 10c0/2a2cdfd3e67e0606833b63f922ad2a9037974f22b944e1cb8c0991b4c40450f8413d69745c0bbf4646e5ba283747f60d2fdc9a8d289b68b24448e59d81a3a96d - languageName: node - linkType: hard - "@floating-ui/utils@npm:0.2.10, @floating-ui/utils@npm:^0.2.10": version: 0.2.10 resolution: "@floating-ui/utils@npm:0.2.10" @@ -7271,7 +7267,7 @@ __metadata: languageName: node linkType: hard -"@floating-ui/utils@npm:^0.2.11": +"@floating-ui/utils@npm:^0.2.11, @floating-ui/utils@npm:^0.2.8": version: 0.2.11 resolution: "@floating-ui/utils@npm:0.2.11" checksum: 10c0/f4bcea1559bdbb721ecc8e8ead423ac58d6a5b6e70b602cf0810ba6ad4ed1c77211b207faa88b278a9042f0c743133de08a203ed6741c1b6443423332884d5b3 @@ -7377,60 +7373,93 @@ __metadata: languageName: node linkType: hard -"@graphiql/plugin-explorer@npm:^1.0.2": - version: 1.0.4 - resolution: "@graphiql/plugin-explorer@npm:1.0.4" +"@graphiql/plugin-doc-explorer@npm:^0.4.2": + version: 0.4.2 + resolution: "@graphiql/plugin-doc-explorer@npm:0.4.2" + dependencies: + "@headlessui/react": "npm:^2.2" + react-compiler-runtime: "npm:19.1.0-rc.1" + zustand: "npm:^5" + peerDependencies: + "@graphiql/react": ^0.37.0 + graphql: ^15.5.0 || ^16.0.0 || ^17.0.0 + react: ^18 || ^19 + react-dom: ^18 || ^19 + checksum: 10c0/eecd198b37bf575c55e7bab3cadaa488cc4abf35324a1a3ea78385a36f21e2be8e1164ef3736ee9ecf48c62004e9c573d2988b1bf6ef18b24f09f81ec36489ce + languageName: node + linkType: hard + +"@graphiql/plugin-explorer@npm:^5.1.2": + version: 5.1.2 + resolution: "@graphiql/plugin-explorer@npm:5.1.2" dependencies: graphiql-explorer: "npm:^0.9.0" peerDependencies: - "@graphiql/react": ^0.20.4 - graphql: ^15.5.0 || ^16.0.0 - react: ^16.8.0 || ^17 || ^18 - react-dom: ^16.8.0 || ^17 || ^18 - checksum: 10c0/c5bd196365e6096a77f481b431a506b8757516db20eccdb087c84a5996592826730c1acd87eb47e78b824de5150b30dc7f2976b307ad008c29c7ff7ae95177ce + "@graphiql/react": ^0.37.0 + graphql: ^15.5.0 || ^16.0.0 || ^17.0.0-alpha.2 + react: ^18 || ^19 + react-dom: ^18 || ^19 + checksum: 10c0/0d32fc5f206a8ec764f296ebf36b0118486ce797b6698fe938a3d56016b0da215b5c53b3fdbbec8c43441087e2a66e4431b14106f0a3fe57b2c7ce87a33ab8ca languageName: node linkType: hard -"@graphiql/react@npm:^0.23.0": - version: 0.23.0 - resolution: "@graphiql/react@npm:0.23.0" +"@graphiql/plugin-history@npm:^0.4.2": + version: 0.4.2 + resolution: "@graphiql/plugin-history@npm:0.4.2" dependencies: - "@graphiql/toolkit": "npm:^0.9.2" - "@headlessui/react": "npm:^1.7.15" - "@radix-ui/react-dialog": "npm:^1.0.4" - "@radix-ui/react-dropdown-menu": "npm:^2.0.5" - "@radix-ui/react-tooltip": "npm:^1.0.6" - "@radix-ui/react-visually-hidden": "npm:^1.0.3" - "@types/codemirror": "npm:^5.60.8" - clsx: "npm:^1.2.1" - codemirror: "npm:^5.65.3" - codemirror-graphql: "npm:^2.0.13" - copy-to-clipboard: "npm:^3.2.0" - framer-motion: "npm:^6.5.1" - graphql-language-service: "npm:^5.2.2" - markdown-it: "npm:^14.1.0" - set-value: "npm:^4.1.0" + "@graphiql/toolkit": "npm:^0.12.0" + react-compiler-runtime: "npm:19.1.0-rc.1" + zustand: "npm:^5" peerDependencies: - graphql: ^15.5.0 || ^16.0.0 - react: ^16.8.0 || ^17 || ^18 - react-dom: ^16.8.0 || ^17 || ^18 - checksum: 10c0/7d8f7942ae036c272324431f5f7b2aefbfbcf757a4d70f20aec1bfdc4ac5d4c2d62b6946640aa3f609ad752d25b898dbd307b5c59cb870a43817d857a2302f0c + "@graphiql/react": ^0.37.0 + react: ^18 || ^19 + react-dom: ^18 || ^19 + checksum: 10c0/9a5d915be7f6f7b790581b10ce07d6c31df1ceb8b208930b95cd8a2f514da5bc6092a37b37f7dfd2675baadc8cc64d0202c63abfd7e99b55f66bfffcb13220bf languageName: node linkType: hard -"@graphiql/toolkit@npm:^0.9.2": - version: 0.9.2 - resolution: "@graphiql/toolkit@npm:0.9.2" +"@graphiql/react@npm:^0.37.4, @graphiql/react@npm:^0.37.6": + version: 0.37.6 + resolution: "@graphiql/react@npm:0.37.6" + dependencies: + "@graphiql/toolkit": "npm:^0.12.0" + "@radix-ui/react-dialog": "npm:^1.1" + "@radix-ui/react-dropdown-menu": "npm:^2.1" + "@radix-ui/react-tooltip": "npm:^1.2" + "@radix-ui/react-visually-hidden": "npm:^1.2" + clsx: "npm:^1.2.1" + framer-motion: "npm:^12.12" + get-value: "npm:^3.0.1" + graphql-language-service: "npm:^5.5.2" + jsonc-parser: "npm:^3.3.1" + markdown-it: "npm:^14.1.0" + monaco-editor: "npm:0.52.2" + monaco-graphql: "npm:^1.8.0" + prettier: "npm:^3.5.3" + react-compiler-runtime: "npm:19.1.0-rc.1" + set-value: "npm:^4.1.0" + zustand: "npm:^5" + peerDependencies: + graphql: ^15.5.0 || ^16.0.0 || ^17.0.0 + react: ^18 || ^19 + react-dom: ^18 || ^19 + checksum: 10c0/12d9dbc6208649f52f494cc2ef660d40b9ea8edb4a80df82fd467677f964c75157b5eee02f017451e73e7d849862113cadf837a1cf59a5a15a0325fddb2c6d02 + languageName: node + linkType: hard + +"@graphiql/toolkit@npm:^0.12.0": + version: 0.12.0 + resolution: "@graphiql/toolkit@npm:0.12.0" dependencies: "@n1ru4l/push-pull-async-iterable-iterator": "npm:^3.1.0" meros: "npm:^1.1.4" peerDependencies: - graphql: ^15.5.0 || ^16.0.0 + graphql: ^15.5.0 || ^16.0.0 || ^17.0.0 graphql-ws: ">= 4.5.0" peerDependenciesMeta: graphql-ws: optional: true - checksum: 10c0/c4224b48aabe7756760d1ed06199431ee993b7d36d180cc7965147a8da218a6c71b7ee1dab24924e702e9a5417dd1539780f99d7ef489e801e3ff4806a9a92c3 + checksum: 10c0/2e4353b98b29d173c7a27b86cbccc15f26edb587bd88651423e58ee0bf9efa0b752c70cbe3985ad81864fc2bdaae02750ff7e99cfdb295d8a64822e2e0daa595 languageName: node linkType: hard @@ -8198,16 +8227,19 @@ __metadata: languageName: node linkType: hard -"@headlessui/react@npm:^1.7.15": - version: 1.7.19 - resolution: "@headlessui/react@npm:1.7.19" +"@headlessui/react@npm:^2.2": + version: 2.2.10 + resolution: "@headlessui/react@npm:2.2.10" dependencies: - "@tanstack/react-virtual": "npm:^3.0.0-beta.60" - client-only: "npm:^0.0.1" + "@floating-ui/react": "npm:^0.26.16" + "@react-aria/focus": "npm:^3.20.2" + "@react-aria/interactions": "npm:^3.25.0" + "@tanstack/react-virtual": "npm:^3.13.9" + use-sync-external-store: "npm:^1.5.0" peerDependencies: - react: ^16 || ^17 || ^18 - react-dom: ^16 || ^17 || ^18 - checksum: 10c0/c0ece0db6ca15092439177a5322de50b60fa5fd90354ae0f999b3e56abab0065ed54fa7b4b69994ec1bdc23adc6ae9919d7dd57f97922d0b9bb6515d27e3a7e5 + react: ^18 || ^19 || ^19.0.0-rc + react-dom: ^18 || ^19 || ^19.0.0-rc + checksum: 10c0/e4c61f0246549d4f9b42cb2b5e3fcb30661f2ad733753ba3d5cd25b987e5155e8b7c725048956de93cef09a7fc3b15bb5aaf23ecf96f3430ff1b143b3fae35a8 languageName: node linkType: hard @@ -8231,21 +8263,19 @@ __metadata: languageName: node linkType: hard -"@hello-pangea/dnd@npm:^16.2.0": - version: 16.6.0 - resolution: "@hello-pangea/dnd@npm:16.6.0" +"@hello-pangea/dnd@npm:^18.0.1": + version: 18.0.1 + resolution: "@hello-pangea/dnd@npm:18.0.1" dependencies: - "@babel/runtime": "npm:^7.24.1" + "@babel/runtime": "npm:^7.26.7" css-box-model: "npm:^1.2.1" - memoize-one: "npm:^6.0.0" raf-schd: "npm:^4.0.3" - react-redux: "npm:^8.1.3" - redux: "npm:^4.2.1" - use-memo-one: "npm:^1.1.3" + react-redux: "npm:^9.2.0" + redux: "npm:^5.0.1" peerDependencies: - react: ^16.8.5 || ^17.0.0 || ^18.0.0 - react-dom: ^16.8.5 || ^17.0.0 || ^18.0.0 - checksum: 10c0/ef43ba21f063f6497f399b457452d45be456b1f28405b148d9683d2ca65e5f77e2685a0b7e9998aaca4f8676b1642ba2c277fc78643ea59fd6b9f71a56ffc5e0 + react: ^18.0.0 || ^19.0.0 + react-dom: ^18.0.0 || ^19.0.0 + checksum: 10c0/30c47ac8048f85e5c6d39c0b5a492cf2cc9e5f532cee12c5ecc77688596c8846670be142bd716212db789f161cd769601a5da135fa99ac65824fbb6a07d4d137 languageName: node linkType: hard @@ -9820,6 +9850,15 @@ __metadata: languageName: node linkType: hard +"@internationalized/date@npm:^3.12.2": + version: 3.12.2 + resolution: "@internationalized/date@npm:3.12.2" + dependencies: + "@swc/helpers": "npm:^0.5.0" + checksum: 10c0/1640dbec517b07a820b754c128ecd85930cc2f50b753b406611e59bff5aae8cac3a7ede575a66e462778ff007720af601779da08f0a2e5cdcac496c8b9593172 + languageName: node + linkType: hard + "@internationalized/date@npm:^3.5.4": version: 3.7.0 resolution: "@internationalized/date@npm:3.7.0" @@ -9847,6 +9886,24 @@ __metadata: languageName: node linkType: hard +"@internationalized/number@npm:^3.6.7": + version: 3.6.7 + resolution: "@internationalized/number@npm:3.6.7" + dependencies: + "@swc/helpers": "npm:^0.5.0" + checksum: 10c0/b5d60cccc05e4549eedcaee4ef3fc7b972532321e841bce1251c4993f1f7b3416c2b92e7fddd22292ed494140fb3ca6eb6dafc6cbe37e267483e9510954a618f + languageName: node + linkType: hard + +"@internationalized/string@npm:^3.2.9": + version: 3.2.9 + resolution: "@internationalized/string@npm:3.2.9" + dependencies: + "@swc/helpers": "npm:^0.5.0" + checksum: 10c0/f4d403577cc78924378a320977aa61bbc767f38b064c2aee0d142a7bd6a8e38c002aae4a52c3694bfdad01642c37a244807deaf2e7732dea26b89092a3d72b72 + languageName: node + linkType: hard + "@ioredis/commands@npm:1.5.1": version: 1.5.1 resolution: "@ioredis/commands@npm:1.5.1" @@ -11015,15 +11072,6 @@ __metadata: languageName: node linkType: hard -"@linaria/core@npm:^6.2.0": - version: 6.3.0 - resolution: "@linaria/core@npm:6.3.0" - dependencies: - "@wyw-in-js/processor-utils": "npm:^0.6.0" - checksum: 10c0/4a3c7a1b3ae486e27540bcafe377498c22770e4e2914084b495a6aae65b77611308505d11108d3d999bfd9e40e443f6deb3120dbabbdaa8fc922de1db320b515 - languageName: node - linkType: hard - "@linaria/core@npm:^7.0.0": version: 7.0.0 resolution: "@linaria/core@npm:7.0.0" @@ -11033,24 +11081,6 @@ __metadata: languageName: node linkType: hard -"@linaria/react@npm:^6.2.1": - version: 6.2.1 - resolution: "@linaria/react@npm:6.2.1" - dependencies: - "@emotion/is-prop-valid": "npm:^1.2.0" - "@linaria/core": "npm:^6.2.0" - "@wyw-in-js/processor-utils": "npm:^0.5.3" - "@wyw-in-js/shared": "npm:^0.5.3" - minimatch: "npm:^9.0.3" - react-html-attributes: "npm:^1.4.6" - resolve: "npm:^1.22.8" - ts-invariant: "npm:^0.10.3" - peerDependencies: - react: ">=16" - checksum: 10c0/102480195bc6e5f41cf3da4c7181640cf617256fcdd48847238cdc7def30536f132f29f35530bd261cbf5580a87981f5a6f7717e791b73cc309552141a10d256 - languageName: node - linkType: hard - "@linaria/react@npm:^7.0.1": version: 7.0.1 resolution: "@linaria/react@npm:7.0.1" @@ -12054,71 +12084,6 @@ __metadata: languageName: node linkType: hard -"@motionone/animation@npm:^10.12.0": - version: 10.18.0 - resolution: "@motionone/animation@npm:10.18.0" - dependencies: - "@motionone/easing": "npm:^10.18.0" - "@motionone/types": "npm:^10.17.1" - "@motionone/utils": "npm:^10.18.0" - tslib: "npm:^2.3.1" - checksum: 10c0/83c01ab8ecf5fae221e5012116c4c49d4473ba88ba22197e1d8c1e39364c5c6b9c5271e57ae716fd21f92314d15c63788c48d0a30872ee8d72337e1d98b46834 - languageName: node - linkType: hard - -"@motionone/dom@npm:10.12.0": - version: 10.12.0 - resolution: "@motionone/dom@npm:10.12.0" - dependencies: - "@motionone/animation": "npm:^10.12.0" - "@motionone/generators": "npm:^10.12.0" - "@motionone/types": "npm:^10.12.0" - "@motionone/utils": "npm:^10.12.0" - hey-listen: "npm:^1.0.8" - tslib: "npm:^2.3.1" - checksum: 10c0/1af6cd8d8518ebbd90d74f15443ad94d7d03bf9e7e1455a5cb6768a53ba8dac6906ca121e9c1f42b8d53a8ab7c19d14e4731c10231b5dc7102628f32659faea2 - languageName: node - linkType: hard - -"@motionone/easing@npm:^10.18.0": - version: 10.18.0 - resolution: "@motionone/easing@npm:10.18.0" - dependencies: - "@motionone/utils": "npm:^10.18.0" - tslib: "npm:^2.3.1" - checksum: 10c0/0adf9b7086b0f569d28886890cc0725a489285f2debfcaf27c1c15dfef5736c9f4207cfda14c71b3275f8163777320cb7ff48ad263c7f4ccd31e12a5afc1a952 - languageName: node - linkType: hard - -"@motionone/generators@npm:^10.12.0": - version: 10.18.0 - resolution: "@motionone/generators@npm:10.18.0" - dependencies: - "@motionone/types": "npm:^10.17.1" - "@motionone/utils": "npm:^10.18.0" - tslib: "npm:^2.3.1" - checksum: 10c0/7ed7dda5ac58cd3e8dd347b5539d242d96e02ee16fef921c8d14295a806e6bc429a15291461ec078977bd5f6162677225addd707ca79f808e65bc3599c45c0e9 - languageName: node - linkType: hard - -"@motionone/types@npm:^10.12.0, @motionone/types@npm:^10.17.1": - version: 10.17.1 - resolution: "@motionone/types@npm:10.17.1" - checksum: 10c0/f7b16cd4f0feda0beac10173afa6de7384722f9f24767f78b7aa90f15b8a89d584073a64387b015a8e015a962fa4b47a8ce23621f47708a08676b12bb0d43bbb - languageName: node - linkType: hard - -"@motionone/utils@npm:^10.12.0, @motionone/utils@npm:^10.18.0": - version: 10.18.0 - resolution: "@motionone/utils@npm:10.18.0" - dependencies: - "@motionone/types": "npm:^10.17.1" - hey-listen: "npm:^1.0.8" - tslib: "npm:^2.3.1" - checksum: 10c0/db57dbb6a131fab36dc1eb4e1f3a4575ca97563221663adce54c138de1e1a9eaf4a4a51ddf99fdab0341112159e0190b35cdeddfdbd08ba3ad1e35886a5324bb - languageName: node - linkType: hard - "@msgpackr-extract/msgpackr-extract-darwin-arm64@npm:3.0.4": version: 3.0.4 resolution: "@msgpackr-extract/msgpackr-extract-darwin-arm64@npm:3.0.4" @@ -16564,13 +16529,6 @@ __metadata: languageName: node linkType: hard -"@radix-ui/primitive@npm:1.1.0": - version: 1.1.0 - resolution: "@radix-ui/primitive@npm:1.1.0" - checksum: 10c0/1dcc8b5401799416ff8bdb15c7189b4536c193220ad8fd348a48b88f804ee38cec7bd03e2b9641f7da24610e2f61f23a306911ce883af92c4e8c1abac634cb61 - languageName: node - linkType: hard - "@radix-ui/primitive@npm:1.1.3": version: 1.1.3 resolution: "@radix-ui/primitive@npm:1.1.3" @@ -16578,22 +16536,10 @@ __metadata: languageName: node linkType: hard -"@radix-ui/react-arrow@npm:1.1.0": - version: 1.1.0 - resolution: "@radix-ui/react-arrow@npm:1.1.0" - dependencies: - "@radix-ui/react-primitive": "npm:2.0.0" - peerDependencies: - "@types/react": "*" - "@types/react-dom": "*" - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - peerDependenciesMeta: - "@types/react": - optional: true - "@types/react-dom": - optional: true - checksum: 10c0/cbe059dfa5a9c1677478d363bb5fd75b0c7a08221d0ac7f8e7b9aec9dbae9754f6a3518218cf63e4ed53df6c36d193c8d2618d03433a37aa0cb7ee77a60a591f +"@radix-ui/primitive@npm:1.1.4": + version: 1.1.4 + resolution: "@radix-ui/primitive@npm:1.1.4" + checksum: 10c0/f366fa15b721a466ad78f9b5b966f7129fb6932f6f33ab117253ce8c6a13f4895dce4a1fd483d3f15859623d3bfd964a4b172fe1d6ccc3a1a3c4de4c2b861119 languageName: node linkType: hard @@ -16616,14 +16562,11 @@ __metadata: languageName: node linkType: hard -"@radix-ui/react-collection@npm:1.1.0": - version: 1.1.0 - resolution: "@radix-ui/react-collection@npm:1.1.0" +"@radix-ui/react-arrow@npm:1.1.9": + version: 1.1.9 + resolution: "@radix-ui/react-arrow@npm:1.1.9" dependencies: - "@radix-ui/react-compose-refs": "npm:1.1.0" - "@radix-ui/react-context": "npm:1.1.0" - "@radix-ui/react-primitive": "npm:2.0.0" - "@radix-ui/react-slot": "npm:1.1.0" + "@radix-ui/react-primitive": "npm:2.1.5" peerDependencies: "@types/react": "*" "@types/react-dom": "*" @@ -16634,20 +16577,29 @@ __metadata: optional: true "@types/react-dom": optional: true - checksum: 10c0/fecb9f0871c827070a8794b39c7379fdc7d0855c4b05804f0b395eef39c37b2c2b6779865d6cb35d3bc74b6b380107bd8b3754d1730a34ea88913e6cd0eb84d4 + checksum: 10c0/1d7f8fd3e44fc74ca31600368a8570e29e03f4b0c4658467699e61c17ce33ff16ac38180c640894988d930aa758c6a0cc72329dc8d1211b3e41e24605e6d06f8 languageName: node linkType: hard -"@radix-ui/react-compose-refs@npm:1.1.0": - version: 1.1.0 - resolution: "@radix-ui/react-compose-refs@npm:1.1.0" +"@radix-ui/react-collection@npm:1.1.9": + version: 1.1.9 + resolution: "@radix-ui/react-collection@npm:1.1.9" + dependencies: + "@radix-ui/react-compose-refs": "npm:1.1.3" + "@radix-ui/react-context": "npm:1.1.4" + "@radix-ui/react-primitive": "npm:2.1.5" + "@radix-ui/react-slot": "npm:1.2.5" peerDependencies: "@types/react": "*" + "@types/react-dom": "*" react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc peerDependenciesMeta: "@types/react": optional: true - checksum: 10c0/7e18706084397d9458ca3473d8565b10691da06f6499a78edbcc4bd72cde08f62e91120658d17d58c19fc39d6b1dffe0133cc4535c8f5fce470abd478f6107e5 + "@types/react-dom": + optional: true + checksum: 10c0/26e86ba9e4f196ae07df0b19cad347f7c1c3ab26eb0d833c92e18c10a6279bd4277c31ab183fd0e7ddccb48ad0b77a84452f480b1f2186bad04219316cc702e3 languageName: node linkType: hard @@ -16664,16 +16616,16 @@ __metadata: languageName: node linkType: hard -"@radix-ui/react-context@npm:1.1.0": - version: 1.1.0 - resolution: "@radix-ui/react-context@npm:1.1.0" +"@radix-ui/react-compose-refs@npm:1.1.3": + version: 1.1.3 + resolution: "@radix-ui/react-compose-refs@npm:1.1.3" peerDependencies: "@types/react": "*" react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc peerDependenciesMeta: "@types/react": optional: true - checksum: 10c0/c843980f568cc61b512708863ec84c42a02e0f88359b22ad1c0e290cea3e6d7618eccbd2cd37bd974fadaa7636cbed5bda27553722e61197eb53852eaa34f1bb + checksum: 10c0/c4853e7bc15cda6f68a1bbd7910412cc7f298419ee363fb4e40494e16a1cfadc857b2384dbe4d98b58c1312f280ca3474f67dc14da325d29ae8b7ebcfddaf743 languageName: node linkType: hard @@ -16690,24 +16642,37 @@ __metadata: languageName: node linkType: hard -"@radix-ui/react-dialog@npm:^1.0.4": - version: 1.1.1 - resolution: "@radix-ui/react-dialog@npm:1.1.1" +"@radix-ui/react-context@npm:1.1.4": + version: 1.1.4 + resolution: "@radix-ui/react-context@npm:1.1.4" + peerDependencies: + "@types/react": "*" + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + "@types/react": + optional: true + checksum: 10c0/917be4dcb9fd9f465ab18f6982879daf83a5ca298a22504fa3bc4abd8dea963a57abb9ad38c099dd756ba2cddff0edde680bf8369012f44dedede20912702c8f + languageName: node + linkType: hard + +"@radix-ui/react-dialog@npm:^1.1": + version: 1.1.16 + resolution: "@radix-ui/react-dialog@npm:1.1.16" dependencies: - "@radix-ui/primitive": "npm:1.1.0" - "@radix-ui/react-compose-refs": "npm:1.1.0" - "@radix-ui/react-context": "npm:1.1.0" - "@radix-ui/react-dismissable-layer": "npm:1.1.0" - "@radix-ui/react-focus-guards": "npm:1.1.0" - "@radix-ui/react-focus-scope": "npm:1.1.0" - "@radix-ui/react-id": "npm:1.1.0" - "@radix-ui/react-portal": "npm:1.1.1" - "@radix-ui/react-presence": "npm:1.1.0" - "@radix-ui/react-primitive": "npm:2.0.0" - "@radix-ui/react-slot": "npm:1.1.0" - "@radix-ui/react-use-controllable-state": "npm:1.1.0" - aria-hidden: "npm:^1.1.1" - react-remove-scroll: "npm:2.5.7" + "@radix-ui/primitive": "npm:1.1.4" + "@radix-ui/react-compose-refs": "npm:1.1.3" + "@radix-ui/react-context": "npm:1.1.4" + "@radix-ui/react-dismissable-layer": "npm:1.1.12" + "@radix-ui/react-focus-guards": "npm:1.1.4" + "@radix-ui/react-focus-scope": "npm:1.1.9" + "@radix-ui/react-id": "npm:1.1.2" + "@radix-ui/react-portal": "npm:1.1.11" + "@radix-ui/react-presence": "npm:1.1.6" + "@radix-ui/react-primitive": "npm:2.1.5" + "@radix-ui/react-slot": "npm:1.2.5" + "@radix-ui/react-use-controllable-state": "npm:1.2.3" + aria-hidden: "npm:^1.2.4" + react-remove-scroll: "npm:^2.7.2" peerDependencies: "@types/react": "*" "@types/react-dom": "*" @@ -16718,43 +16683,20 @@ __metadata: optional: true "@types/react-dom": optional: true - checksum: 10c0/a21e318e8d45bed22067880f66beb4ea91118a6c0d43aa20de495c0373b53c12dfe28f58196d5b33300573a5e24e064ec53648a576f02366fb5a297d887b0860 + checksum: 10c0/989e72fcac4f9caf62354fdb666c510bc828966f719231a12746e05f9c7a3d3090a797cff601919f72622f2746ead53af1e5e9b2f66ffa1c6c857d63ca66627f languageName: node linkType: hard -"@radix-ui/react-direction@npm:1.1.0": - version: 1.1.0 - resolution: "@radix-ui/react-direction@npm:1.1.0" +"@radix-ui/react-direction@npm:1.1.2": + version: 1.1.2 + resolution: "@radix-ui/react-direction@npm:1.1.2" peerDependencies: "@types/react": "*" react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc peerDependenciesMeta: "@types/react": optional: true - checksum: 10c0/eb07d8cc3ae2388b824e0a11ae0e3b71fb0c49972b506e249cec9f27a5b7ef4305ee668c98b674833c92e842163549a83beb0a197dec1ec65774bdeeb61f932c - languageName: node - linkType: hard - -"@radix-ui/react-dismissable-layer@npm:1.1.0": - version: 1.1.0 - resolution: "@radix-ui/react-dismissable-layer@npm:1.1.0" - dependencies: - "@radix-ui/primitive": "npm:1.1.0" - "@radix-ui/react-compose-refs": "npm:1.1.0" - "@radix-ui/react-primitive": "npm:2.0.0" - "@radix-ui/react-use-callback-ref": "npm:1.1.0" - "@radix-ui/react-use-escape-keydown": "npm:1.1.0" - peerDependencies: - "@types/react": "*" - "@types/react-dom": "*" - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - peerDependenciesMeta: - "@types/react": - optional: true - "@types/react-dom": - optional: true - checksum: 10c0/72967068ab02127b668ecfd0a1863149e2a42d9fd12d3247f51422a41f3d5faa82a147a5b0a8a6ec609eff8fe6baede6fb7d6111f76896656d13567e3ec29ba8 + checksum: 10c0/e8172f8598b5bddaf82bdc2e16e9561d0d89eaf85ef3cd1fe2506a1564398ee6cb07b22fd7d0ac892e733d4f6247b1e328c4b3680141d22a04e262f14ff11230 languageName: node linkType: hard @@ -16781,17 +16723,15 @@ __metadata: languageName: node linkType: hard -"@radix-ui/react-dropdown-menu@npm:^2.0.5": - version: 2.1.1 - resolution: "@radix-ui/react-dropdown-menu@npm:2.1.1" +"@radix-ui/react-dismissable-layer@npm:1.1.12": + version: 1.1.12 + resolution: "@radix-ui/react-dismissable-layer@npm:1.1.12" dependencies: - "@radix-ui/primitive": "npm:1.1.0" - "@radix-ui/react-compose-refs": "npm:1.1.0" - "@radix-ui/react-context": "npm:1.1.0" - "@radix-ui/react-id": "npm:1.1.0" - "@radix-ui/react-menu": "npm:2.1.1" - "@radix-ui/react-primitive": "npm:2.0.0" - "@radix-ui/react-use-controllable-state": "npm:1.1.0" + "@radix-ui/primitive": "npm:1.1.4" + "@radix-ui/react-compose-refs": "npm:1.1.3" + "@radix-ui/react-primitive": "npm:2.1.5" + "@radix-ui/react-use-callback-ref": "npm:1.1.2" + "@radix-ui/react-use-escape-keydown": "npm:1.1.2" peerDependencies: "@types/react": "*" "@types/react-dom": "*" @@ -16802,20 +16742,32 @@ __metadata: optional: true "@types/react-dom": optional: true - checksum: 10c0/b54f1e41ddc8c3709ba2f8a59621138268d0380aca8399450a234997cc2214e4a6acf1a64ab387558ba39c0bd5839995a668bd71781762daac7618a2d71b4082 + checksum: 10c0/d40c69569777932b37fdb33439da349dbe9f17e95c91b8140f5c957bb25d116f359d57492c48cc8f10b113ebe9b0313a93a31a57ee49ddddd07ddba617aeaa4f languageName: node linkType: hard -"@radix-ui/react-focus-guards@npm:1.1.0": - version: 1.1.0 - resolution: "@radix-ui/react-focus-guards@npm:1.1.0" +"@radix-ui/react-dropdown-menu@npm:^2.1": + version: 2.1.17 + resolution: "@radix-ui/react-dropdown-menu@npm:2.1.17" + dependencies: + "@radix-ui/primitive": "npm:1.1.4" + "@radix-ui/react-compose-refs": "npm:1.1.3" + "@radix-ui/react-context": "npm:1.1.4" + "@radix-ui/react-id": "npm:1.1.2" + "@radix-ui/react-menu": "npm:2.1.17" + "@radix-ui/react-primitive": "npm:2.1.5" + "@radix-ui/react-use-controllable-state": "npm:1.2.3" peerDependencies: "@types/react": "*" + "@types/react-dom": "*" react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc peerDependenciesMeta: "@types/react": optional: true - checksum: 10c0/23af9ff17244568db9b2e99ae6e5718747a4b656bf12b1b15b0d3adca407988641a930612eca35a61b7e15d1ce312b3db13ea95999fa31ae641aaaac1e325df8 + "@types/react-dom": + optional: true + checksum: 10c0/61df99eccd7a3075e98a246aaa2ea8c8e02a6796e34baac8d94bbb056374413f23ef4c12ff208e37477e4c613967dd6b58cfe1cb93d3d08c98c2d12f4c03c857 languageName: node linkType: hard @@ -16832,24 +16784,16 @@ __metadata: languageName: node linkType: hard -"@radix-ui/react-focus-scope@npm:1.1.0": - version: 1.1.0 - resolution: "@radix-ui/react-focus-scope@npm:1.1.0" - dependencies: - "@radix-ui/react-compose-refs": "npm:1.1.0" - "@radix-ui/react-primitive": "npm:2.0.0" - "@radix-ui/react-use-callback-ref": "npm:1.1.0" +"@radix-ui/react-focus-guards@npm:1.1.4": + version: 1.1.4 + resolution: "@radix-ui/react-focus-guards@npm:1.1.4" peerDependencies: "@types/react": "*" - "@types/react-dom": "*" react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc peerDependenciesMeta: "@types/react": optional: true - "@types/react-dom": - optional: true - checksum: 10c0/2593d4bbd4a3525624675ec1d5a591a44f015f43f449b99a5a33228159b83f445e8f1c6bc6f9f2011387abaeadd3df406623c08d4e795b7ae509795652a1d069 + checksum: 10c0/0447a97a2672ad04fa73e0af3a09adafa1e85327c43cec2ae7267daa8544c9e6ef3136fbadcbdd3e28bf1ff0864537241c159e26cf5800b7698e5e69772e7ed3 languageName: node linkType: hard @@ -16874,18 +16818,24 @@ __metadata: languageName: node linkType: hard -"@radix-ui/react-id@npm:1.1.0": - version: 1.1.0 - resolution: "@radix-ui/react-id@npm:1.1.0" +"@radix-ui/react-focus-scope@npm:1.1.9": + version: 1.1.9 + resolution: "@radix-ui/react-focus-scope@npm:1.1.9" dependencies: - "@radix-ui/react-use-layout-effect": "npm:1.1.0" + "@radix-ui/react-compose-refs": "npm:1.1.3" + "@radix-ui/react-primitive": "npm:2.1.5" + "@radix-ui/react-use-callback-ref": "npm:1.1.2" peerDependencies: "@types/react": "*" + "@types/react-dom": "*" react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc peerDependenciesMeta: "@types/react": optional: true - checksum: 10c0/acf13e29e51ee96336837fc0cfecc306328b20b0e0070f6f0f7aa7a621ded4a1ee5537cfad58456f64bae76caa7f8769231e88dc7dc106197347ee433c275a79 + "@types/react-dom": + optional: true + checksum: 10c0/efe05f7fc39449259e49a3705130a58e9ee1d92c4952f065b211a68ace1f354570cbea6ac8ece2c8b0efd119da286dbb388b4c7a5490e97718dbd2945a80b7eb languageName: node linkType: hard @@ -16904,28 +16854,43 @@ __metadata: languageName: node linkType: hard -"@radix-ui/react-menu@npm:2.1.1": - version: 2.1.1 - resolution: "@radix-ui/react-menu@npm:2.1.1" +"@radix-ui/react-id@npm:1.1.2": + version: 1.1.2 + resolution: "@radix-ui/react-id@npm:1.1.2" dependencies: - "@radix-ui/primitive": "npm:1.1.0" - "@radix-ui/react-collection": "npm:1.1.0" - "@radix-ui/react-compose-refs": "npm:1.1.0" - "@radix-ui/react-context": "npm:1.1.0" - "@radix-ui/react-direction": "npm:1.1.0" - "@radix-ui/react-dismissable-layer": "npm:1.1.0" - "@radix-ui/react-focus-guards": "npm:1.1.0" - "@radix-ui/react-focus-scope": "npm:1.1.0" - "@radix-ui/react-id": "npm:1.1.0" - "@radix-ui/react-popper": "npm:1.2.0" - "@radix-ui/react-portal": "npm:1.1.1" - "@radix-ui/react-presence": "npm:1.1.0" - "@radix-ui/react-primitive": "npm:2.0.0" - "@radix-ui/react-roving-focus": "npm:1.1.0" - "@radix-ui/react-slot": "npm:1.1.0" - "@radix-ui/react-use-callback-ref": "npm:1.1.0" - aria-hidden: "npm:^1.1.1" - react-remove-scroll: "npm:2.5.7" + "@radix-ui/react-use-layout-effect": "npm:1.1.2" + peerDependencies: + "@types/react": "*" + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + "@types/react": + optional: true + checksum: 10c0/cd8638f0e259b9cee26cc8248b96533927abf91302a9164d674a45119a15dbb6929652e450c18bc3b99adf5d02a698152bf45d3ae052e1cd63f68fe8dd1ca87d + languageName: node + linkType: hard + +"@radix-ui/react-menu@npm:2.1.17": + version: 2.1.17 + resolution: "@radix-ui/react-menu@npm:2.1.17" + dependencies: + "@radix-ui/primitive": "npm:1.1.4" + "@radix-ui/react-collection": "npm:1.1.9" + "@radix-ui/react-compose-refs": "npm:1.1.3" + "@radix-ui/react-context": "npm:1.1.4" + "@radix-ui/react-direction": "npm:1.1.2" + "@radix-ui/react-dismissable-layer": "npm:1.1.12" + "@radix-ui/react-focus-guards": "npm:1.1.4" + "@radix-ui/react-focus-scope": "npm:1.1.9" + "@radix-ui/react-id": "npm:1.1.2" + "@radix-ui/react-popper": "npm:1.3.0" + "@radix-ui/react-portal": "npm:1.1.11" + "@radix-ui/react-presence": "npm:1.1.6" + "@radix-ui/react-primitive": "npm:2.1.5" + "@radix-ui/react-roving-focus": "npm:1.1.12" + "@radix-ui/react-slot": "npm:1.2.5" + "@radix-ui/react-use-callback-ref": "npm:1.1.2" + aria-hidden: "npm:^1.2.4" + react-remove-scroll: "npm:^2.7.2" peerDependencies: "@types/react": "*" "@types/react-dom": "*" @@ -16936,7 +16901,7 @@ __metadata: optional: true "@types/react-dom": optional: true - checksum: 10c0/2cb11867430276d8db595886ae0e01e67a555676d37e108d5a6c386df23329482115a041b6a4057fad6b855aa423681805c20d1f290fd1502e521e8e55aafb54 + checksum: 10c0/e9b0538277eb3083846b6ec1d0d05db30b56761b9542cae422f839203921c75fb42fe8359605c6bd58f9e3e788bbc09569087283a6bec71c9a662bd596f5637f languageName: node linkType: hard @@ -16973,34 +16938,6 @@ __metadata: languageName: node linkType: hard -"@radix-ui/react-popper@npm:1.2.0": - version: 1.2.0 - resolution: "@radix-ui/react-popper@npm:1.2.0" - dependencies: - "@floating-ui/react-dom": "npm:^2.0.0" - "@radix-ui/react-arrow": "npm:1.1.0" - "@radix-ui/react-compose-refs": "npm:1.1.0" - "@radix-ui/react-context": "npm:1.1.0" - "@radix-ui/react-primitive": "npm:2.0.0" - "@radix-ui/react-use-callback-ref": "npm:1.1.0" - "@radix-ui/react-use-layout-effect": "npm:1.1.0" - "@radix-ui/react-use-rect": "npm:1.1.0" - "@radix-ui/react-use-size": "npm:1.1.0" - "@radix-ui/rect": "npm:1.1.0" - peerDependencies: - "@types/react": "*" - "@types/react-dom": "*" - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - peerDependenciesMeta: - "@types/react": - optional: true - "@types/react-dom": - optional: true - checksum: 10c0/a78ea534b9822d07153fff0895b6cdf742e7213782b140b3ab94a76df0ca70e6001925aea946e99ca680fc63a7fcca49c1d62e8dc5a2f651692fba3541e180c0 - languageName: node - linkType: hard - "@radix-ui/react-popper@npm:1.2.8": version: 1.2.8 resolution: "@radix-ui/react-popper@npm:1.2.8" @@ -17029,12 +16966,20 @@ __metadata: languageName: node linkType: hard -"@radix-ui/react-portal@npm:1.1.1": - version: 1.1.1 - resolution: "@radix-ui/react-portal@npm:1.1.1" +"@radix-ui/react-popper@npm:1.3.0": + version: 1.3.0 + resolution: "@radix-ui/react-popper@npm:1.3.0" dependencies: - "@radix-ui/react-primitive": "npm:2.0.0" - "@radix-ui/react-use-layout-effect": "npm:1.1.0" + "@floating-ui/react-dom": "npm:^2.0.0" + "@radix-ui/react-arrow": "npm:1.1.9" + "@radix-ui/react-compose-refs": "npm:1.1.3" + "@radix-ui/react-context": "npm:1.1.4" + "@radix-ui/react-primitive": "npm:2.1.5" + "@radix-ui/react-use-callback-ref": "npm:1.1.2" + "@radix-ui/react-use-layout-effect": "npm:1.1.2" + "@radix-ui/react-use-rect": "npm:1.1.2" + "@radix-ui/react-use-size": "npm:1.1.2" + "@radix-ui/rect": "npm:1.1.2" peerDependencies: "@types/react": "*" "@types/react-dom": "*" @@ -17045,7 +16990,27 @@ __metadata: optional: true "@types/react-dom": optional: true - checksum: 10c0/7e7130fcb0d99197322cd97987e1d7279b6c264fb6be3d883cbfcd49267740d83ca17b431e0d98848afd6067a13ee823ca396a8b63ae68f18a728cf70398c830 + checksum: 10c0/9ea9ee61210a3da8c1a206b1a4e67bdc483c9295e3a9b3d6a27e6f035d6a9f506ed12098bae79a3fdb01fc831ce6e0f0f000a9c09f5c8b33a62f003f8d7a342a + languageName: node + linkType: hard + +"@radix-ui/react-portal@npm:1.1.11": + version: 1.1.11 + resolution: "@radix-ui/react-portal@npm:1.1.11" + dependencies: + "@radix-ui/react-primitive": "npm:2.1.5" + "@radix-ui/react-use-layout-effect": "npm:1.1.2" + peerDependencies: + "@types/react": "*" + "@types/react-dom": "*" + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + "@types/react": + optional: true + "@types/react-dom": + optional: true + checksum: 10c0/fa5942bbdff1baec9df4238f77a23d36d5e3716ae6b558aa7f9e91b795d4ba4208355ea0770e2f6300678fda6aa7b26fd1e10cdf3f227a6af67e0429a271a1f2 languageName: node linkType: hard @@ -17069,26 +17034,6 @@ __metadata: languageName: node linkType: hard -"@radix-ui/react-presence@npm:1.1.0": - version: 1.1.0 - resolution: "@radix-ui/react-presence@npm:1.1.0" - dependencies: - "@radix-ui/react-compose-refs": "npm:1.1.0" - "@radix-ui/react-use-layout-effect": "npm:1.1.0" - peerDependencies: - "@types/react": "*" - "@types/react-dom": "*" - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - peerDependenciesMeta: - "@types/react": - optional: true - "@types/react-dom": - optional: true - checksum: 10c0/58acb658b15b72991ad7a234ea90995902c470b3a182aa90ad03145cbbeaa40f211700c444bfa14cf47537cbb6b732e1359bc5396182de839bd680843c11bf31 - languageName: node - linkType: hard - "@radix-ui/react-presence@npm:1.1.5": version: 1.1.5 resolution: "@radix-ui/react-presence@npm:1.1.5" @@ -17109,11 +17054,11 @@ __metadata: languageName: node linkType: hard -"@radix-ui/react-primitive@npm:2.0.0": - version: 2.0.0 - resolution: "@radix-ui/react-primitive@npm:2.0.0" +"@radix-ui/react-presence@npm:1.1.6": + version: 1.1.6 + resolution: "@radix-ui/react-presence@npm:1.1.6" dependencies: - "@radix-ui/react-slot": "npm:1.1.0" + "@radix-ui/react-use-layout-effect": "npm:1.1.2" peerDependencies: "@types/react": "*" "@types/react-dom": "*" @@ -17124,7 +17069,7 @@ __metadata: optional: true "@types/react-dom": optional: true - checksum: 10c0/00cb6ca499252ca848c299212ba6976171cea7608b10b3f9a9639d6732dea2df1197ba0d97c001a4fdb29313c3e7fc2a490f6245dd3579617a0ffd85ae964fdd + checksum: 10c0/8b96ba32eae20162005f7e818b07e1e6e351da03f4753a79403ec58d27c4965e881a506960283fd7ded5b8ecf5ccb6a58bbc1d6799f5254a6cd4e5ae8837e345 languageName: node linkType: hard @@ -17147,19 +17092,11 @@ __metadata: languageName: node linkType: hard -"@radix-ui/react-roving-focus@npm:1.1.0": - version: 1.1.0 - resolution: "@radix-ui/react-roving-focus@npm:1.1.0" +"@radix-ui/react-primitive@npm:2.1.5": + version: 2.1.5 + resolution: "@radix-ui/react-primitive@npm:2.1.5" dependencies: - "@radix-ui/primitive": "npm:1.1.0" - "@radix-ui/react-collection": "npm:1.1.0" - "@radix-ui/react-compose-refs": "npm:1.1.0" - "@radix-ui/react-context": "npm:1.1.0" - "@radix-ui/react-direction": "npm:1.1.0" - "@radix-ui/react-id": "npm:1.1.0" - "@radix-ui/react-primitive": "npm:2.0.0" - "@radix-ui/react-use-callback-ref": "npm:1.1.0" - "@radix-ui/react-use-controllable-state": "npm:1.1.0" + "@radix-ui/react-slot": "npm:1.2.5" peerDependencies: "@types/react": "*" "@types/react-dom": "*" @@ -17170,22 +17107,34 @@ __metadata: optional: true "@types/react-dom": optional: true - checksum: 10c0/ce367d3033a12d639a8d445d2efa090aa4bc5a78125be568f8c8e4e59f30afd51b585a90031ec18cdba19afbaf1974633dbc0c2c3d2a14d9eb1bfea2ddbe5369 + checksum: 10c0/585d59d03343db4894a70dde81f4038660de32235d522f29b95a2c5209be39a6ffbef2ddabad9f3fd2cc002bb927d5ded09bc5fb6a8ccacb58ff405afb4b484c languageName: node linkType: hard -"@radix-ui/react-slot@npm:1.1.0": - version: 1.1.0 - resolution: "@radix-ui/react-slot@npm:1.1.0" +"@radix-ui/react-roving-focus@npm:1.1.12": + version: 1.1.12 + resolution: "@radix-ui/react-roving-focus@npm:1.1.12" dependencies: - "@radix-ui/react-compose-refs": "npm:1.1.0" + "@radix-ui/primitive": "npm:1.1.4" + "@radix-ui/react-collection": "npm:1.1.9" + "@radix-ui/react-compose-refs": "npm:1.1.3" + "@radix-ui/react-context": "npm:1.1.4" + "@radix-ui/react-direction": "npm:1.1.2" + "@radix-ui/react-id": "npm:1.1.2" + "@radix-ui/react-primitive": "npm:2.1.5" + "@radix-ui/react-use-callback-ref": "npm:1.1.2" + "@radix-ui/react-use-controllable-state": "npm:1.2.3" peerDependencies: "@types/react": "*" + "@types/react-dom": "*" react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc peerDependenciesMeta: "@types/react": optional: true - checksum: 10c0/a2e8bfb70c440506dd84a1a274f9a8bc433cca37ceae275e53552c9122612e3837744d7fc6f113d6ef1a11491aa914f4add71d76de41cb6d4db72547a8e261ae + "@types/react-dom": + optional: true + checksum: 10c0/7a93bc145a9891a7f48921d7edcb379ab7a318366ac22a18a1d9aa34a89e0b5bd42a7401bf84ed8a1d541c933dadb6c49fb0a6c1e0eb78f8416aa169a850fcb5 languageName: node linkType: hard @@ -17204,22 +17153,37 @@ __metadata: languageName: node linkType: hard -"@radix-ui/react-tooltip@npm:^1.0.6": - version: 1.1.2 - resolution: "@radix-ui/react-tooltip@npm:1.1.2" +"@radix-ui/react-slot@npm:1.2.5": + version: 1.2.5 + resolution: "@radix-ui/react-slot@npm:1.2.5" dependencies: - "@radix-ui/primitive": "npm:1.1.0" - "@radix-ui/react-compose-refs": "npm:1.1.0" - "@radix-ui/react-context": "npm:1.1.0" - "@radix-ui/react-dismissable-layer": "npm:1.1.0" - "@radix-ui/react-id": "npm:1.1.0" - "@radix-ui/react-popper": "npm:1.2.0" - "@radix-ui/react-portal": "npm:1.1.1" - "@radix-ui/react-presence": "npm:1.1.0" - "@radix-ui/react-primitive": "npm:2.0.0" - "@radix-ui/react-slot": "npm:1.1.0" - "@radix-ui/react-use-controllable-state": "npm:1.1.0" - "@radix-ui/react-visually-hidden": "npm:1.1.0" + "@radix-ui/react-compose-refs": "npm:1.1.3" + peerDependencies: + "@types/react": "*" + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + "@types/react": + optional: true + checksum: 10c0/348e0ee3970532805dc972656efc7a7427f0f46cca951e8b78e3969d3ffcd51666f000a611fc5f2b0b9921690da77291b08342f9c0aa0261720aecbc5e275cc1 + languageName: node + linkType: hard + +"@radix-ui/react-tooltip@npm:^1.2": + version: 1.2.9 + resolution: "@radix-ui/react-tooltip@npm:1.2.9" + dependencies: + "@radix-ui/primitive": "npm:1.1.4" + "@radix-ui/react-compose-refs": "npm:1.1.3" + "@radix-ui/react-context": "npm:1.1.4" + "@radix-ui/react-dismissable-layer": "npm:1.1.12" + "@radix-ui/react-id": "npm:1.1.2" + "@radix-ui/react-popper": "npm:1.3.0" + "@radix-ui/react-portal": "npm:1.1.11" + "@radix-ui/react-presence": "npm:1.1.6" + "@radix-ui/react-primitive": "npm:2.1.5" + "@radix-ui/react-slot": "npm:1.2.5" + "@radix-ui/react-use-controllable-state": "npm:1.2.3" + "@radix-ui/react-visually-hidden": "npm:1.2.5" peerDependencies: "@types/react": "*" "@types/react-dom": "*" @@ -17230,20 +17194,7 @@ __metadata: optional: true "@types/react-dom": optional: true - checksum: 10c0/76f3abcd27f7f673612631abc340a17e6ab0e5d20b901fe4828400de05d4d8a8711392417b028be86a3053a0881b80d0ed41c4e027eb64c1af9fe74db70d3786 - languageName: node - linkType: hard - -"@radix-ui/react-use-callback-ref@npm:1.1.0": - version: 1.1.0 - resolution: "@radix-ui/react-use-callback-ref@npm:1.1.0" - peerDependencies: - "@types/react": "*" - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - peerDependenciesMeta: - "@types/react": - optional: true - checksum: 10c0/e954863f3baa151faf89ac052a5468b42650efca924417470efd1bd254b411a94c69c30de2fdbb90187b38cb984795978e12e30423dc41e4309d93d53b66d819 + checksum: 10c0/fc109d0967485b21d8360a3d5a193102bd8281e45eda3dd4db7735ac3d4ad18269cac5c320641950be413575f6d466c02e8f10e3fd8a9bfca33dd4816bb260fd languageName: node linkType: hard @@ -17260,18 +17211,16 @@ __metadata: languageName: node linkType: hard -"@radix-ui/react-use-controllable-state@npm:1.1.0": - version: 1.1.0 - resolution: "@radix-ui/react-use-controllable-state@npm:1.1.0" - dependencies: - "@radix-ui/react-use-callback-ref": "npm:1.1.0" +"@radix-ui/react-use-callback-ref@npm:1.1.2": + version: 1.1.2 + resolution: "@radix-ui/react-use-callback-ref@npm:1.1.2" peerDependencies: "@types/react": "*" react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc peerDependenciesMeta: "@types/react": optional: true - checksum: 10c0/2af883b5b25822ac226e60a6bfde647c0123a76345052a90219026059b3f7225844b2c13a9a16fba859c1cda5fb3d057f2a04503f71780e607516492db4eb3a1 + checksum: 10c0/aa43df8cf54b410f2b0fff817247cee5e4d4560b86d9bff7c17c19441726163c28f09f908e154607e5e6d0a055538c768381b723c9f5d1019807546f352b4cc1 languageName: node linkType: hard @@ -17291,6 +17240,22 @@ __metadata: languageName: node linkType: hard +"@radix-ui/react-use-controllable-state@npm:1.2.3": + version: 1.2.3 + resolution: "@radix-ui/react-use-controllable-state@npm:1.2.3" + dependencies: + "@radix-ui/react-use-effect-event": "npm:0.0.3" + "@radix-ui/react-use-layout-effect": "npm:1.1.2" + peerDependencies: + "@types/react": "*" + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + "@types/react": + optional: true + checksum: 10c0/8c551263a2753cebc1d60019d8beb307d20cbb1b9847887a9eed13db5392672c6d5179b7f46a2cbd34a64bda702617670012ebcd32cffeb22f6645fcf5345ee8 + languageName: node + linkType: hard + "@radix-ui/react-use-effect-event@npm:0.0.2": version: 0.0.2 resolution: "@radix-ui/react-use-effect-event@npm:0.0.2" @@ -17306,18 +17271,18 @@ __metadata: languageName: node linkType: hard -"@radix-ui/react-use-escape-keydown@npm:1.1.0": - version: 1.1.0 - resolution: "@radix-ui/react-use-escape-keydown@npm:1.1.0" +"@radix-ui/react-use-effect-event@npm:0.0.3": + version: 0.0.3 + resolution: "@radix-ui/react-use-effect-event@npm:0.0.3" dependencies: - "@radix-ui/react-use-callback-ref": "npm:1.1.0" + "@radix-ui/react-use-layout-effect": "npm:1.1.2" peerDependencies: "@types/react": "*" react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc peerDependenciesMeta: "@types/react": optional: true - checksum: 10c0/910fd696e5a0994b0e06b9cb68def8a865f47951a013ec240c77db2a9e1e726105602700ef5e5f01af49f2f18fe0e73164f9a9651021f28538ef8a30d91f3fbb + checksum: 10c0/8808fab0b26e30da9b50070a426b3ac135132c360b23a2a5de331bd06d8b164b10cd5561573dd17530172ba67dde428057fbf9a1f5fae2cba3cc66f118e72406 languageName: node linkType: hard @@ -17336,16 +17301,18 @@ __metadata: languageName: node linkType: hard -"@radix-ui/react-use-layout-effect@npm:1.1.0": - version: 1.1.0 - resolution: "@radix-ui/react-use-layout-effect@npm:1.1.0" +"@radix-ui/react-use-escape-keydown@npm:1.1.2": + version: 1.1.2 + resolution: "@radix-ui/react-use-escape-keydown@npm:1.1.2" + dependencies: + "@radix-ui/react-use-callback-ref": "npm:1.1.2" peerDependencies: "@types/react": "*" react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc peerDependenciesMeta: "@types/react": optional: true - checksum: 10c0/9bf87ece1845c038ed95863cfccf9d75f557c2400d606343bab0ab3192b9806b9840e6aa0a0333fdf3e83cf9982632852192f3e68d7d8367bc8c788dfdf8e62b + checksum: 10c0/3fce06fbb986b21712db2ba3ec52b79c0928c7341983b3f08b878258d6b6f35247882c87a990bc1cd30ca44662cfe86733263d3b00cbdf34252311b8c7195138 languageName: node linkType: hard @@ -17362,18 +17329,16 @@ __metadata: languageName: node linkType: hard -"@radix-ui/react-use-rect@npm:1.1.0": - version: 1.1.0 - resolution: "@radix-ui/react-use-rect@npm:1.1.0" - dependencies: - "@radix-ui/rect": "npm:1.1.0" +"@radix-ui/react-use-layout-effect@npm:1.1.2": + version: 1.1.2 + resolution: "@radix-ui/react-use-layout-effect@npm:1.1.2" peerDependencies: "@types/react": "*" react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc peerDependenciesMeta: "@types/react": optional: true - checksum: 10c0/c2e30150ab49e2cec238cda306fd748c3d47fb96dcff69a3b08e1d19108d80bac239d48f1747a25dadca614e3e967267d43b91e60ea59db2befbc7bea913ff84 + checksum: 10c0/c7fc76744a4d37b5010eac33eda6439db2ac4d657e2bb5f596236e60aa4384ac88a7b2e3ebc1c88312c5c536a40081cc85ae6d70c0bba4bb8702d302b8ff07f7 languageName: node linkType: hard @@ -17392,18 +17357,18 @@ __metadata: languageName: node linkType: hard -"@radix-ui/react-use-size@npm:1.1.0": - version: 1.1.0 - resolution: "@radix-ui/react-use-size@npm:1.1.0" +"@radix-ui/react-use-rect@npm:1.1.2": + version: 1.1.2 + resolution: "@radix-ui/react-use-rect@npm:1.1.2" dependencies: - "@radix-ui/react-use-layout-effect": "npm:1.1.0" + "@radix-ui/rect": "npm:1.1.2" peerDependencies: "@types/react": "*" react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc peerDependenciesMeta: "@types/react": optional: true - checksum: 10c0/4c8b89037597fdc1824d009e0c941b510c7c6c30f83024cc02c934edd748886786e7d9f36f57323b02ad29833e7fa7e8974d81969b4ab33d8f41661afa4f30a6 + checksum: 10c0/eafaa88ea33bfb3761a81a3badb73ecf99c613aa7c10e53dac08fee3457d21f4dfd1e65b5a47e7925e4aa1da60f2793404183353d4d21e85aae4009c76de64d4 languageName: node linkType: hard @@ -17422,11 +17387,26 @@ __metadata: languageName: node linkType: hard -"@radix-ui/react-visually-hidden@npm:1.1.0, @radix-ui/react-visually-hidden@npm:^1.0.3": - version: 1.1.0 - resolution: "@radix-ui/react-visually-hidden@npm:1.1.0" +"@radix-ui/react-use-size@npm:1.1.2": + version: 1.1.2 + resolution: "@radix-ui/react-use-size@npm:1.1.2" dependencies: - "@radix-ui/react-primitive": "npm:2.0.0" + "@radix-ui/react-use-layout-effect": "npm:1.1.2" + peerDependencies: + "@types/react": "*" + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + "@types/react": + optional: true + checksum: 10c0/0a088412bb831fd1d59f9058352aca384c2d0a07b894b35707b3486eea4a1d8a37a04fb117379f9a8a46a921b0092f97b29b517689c8f97029ec73eb68973521 + languageName: node + linkType: hard + +"@radix-ui/react-visually-hidden@npm:1.2.5, @radix-ui/react-visually-hidden@npm:^1.2": + version: 1.2.5 + resolution: "@radix-ui/react-visually-hidden@npm:1.2.5" + dependencies: + "@radix-ui/react-primitive": "npm:2.1.5" peerDependencies: "@types/react": "*" "@types/react-dom": "*" @@ -17437,14 +17417,7 @@ __metadata: optional: true "@types/react-dom": optional: true - checksum: 10c0/db138dd5f3c94958a9f836740d4408c89c4a73e770eaba5ead921e69b3c0d196c5cd58323d82829a9bc05a74873c299195dfd8366b9808e53a9a3dbca5a1e5fe - languageName: node - linkType: hard - -"@radix-ui/rect@npm:1.1.0": - version: 1.1.0 - resolution: "@radix-ui/rect@npm:1.1.0" - checksum: 10c0/a26ff7f8708fb5f2f7949baad70a6b2a597d761ee4dd4aadaf1c1a33ea82ea23dfef6ce6366a08310c5d008cdd60b2e626e4ee03fa342bd5f246ddd9d427f6be + checksum: 10c0/9d0169a1950cbc4a9c47893e7101fc1286bfec85489665692f818c4322a8614dcccab873ce06099220c20dc454d978153e29fc6fb23d37bc89c10b8ed4f037db languageName: node linkType: hard @@ -17455,6 +17428,40 @@ __metadata: languageName: node linkType: hard +"@radix-ui/rect@npm:1.1.2": + version: 1.1.2 + resolution: "@radix-ui/rect@npm:1.1.2" + checksum: 10c0/304d648c4b6786755a10eabf2327f40b7c6303bb588174ab6194a5bb032c195c51f3e43395dee1dd37239fa68b63558092f2bc8ce5a14962d5e4303afb0a17ca + languageName: node + linkType: hard + +"@react-aria/focus@npm:^3.20.2": + version: 3.22.1 + resolution: "@react-aria/focus@npm:3.22.1" + dependencies: + "@swc/helpers": "npm:^0.5.0" + react-aria: "npm:^3.48.0" + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + checksum: 10c0/09cfe01fafcdb938acccbdaa300186d400250208caaeaebebce06a041c117a372289dac261f824076073469f631420a5fc31b4fafd4166aad3065bcfe9d68570 + languageName: node + linkType: hard + +"@react-aria/interactions@npm:^3.25.0": + version: 3.28.1 + resolution: "@react-aria/interactions@npm:3.28.1" + dependencies: + "@react-types/shared": "npm:^3.34.0" + "@swc/helpers": "npm:^0.5.0" + react-aria: "npm:^3.48.0" + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + checksum: 10c0/55325471f4ac0829e77d344c3549b8806cda2d461ebf1a1fa6bdf469091cc50d3702e44896591adb7988d2909781962ce9bbbf510a1c66c948b901573311c2a6 + languageName: node + linkType: hard + "@react-email/body@npm:0.1.0": version: 0.1.0 resolution: "@react-email/body@npm:0.1.0" @@ -17931,6 +17938,15 @@ __metadata: languageName: node linkType: hard +"@react-types/shared@npm:^3.34.0, @react-types/shared@npm:^3.35.0": + version: 3.35.0 + resolution: "@react-types/shared@npm:3.35.0" + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + checksum: 10c0/80fb6ea682240b0e9a919df1d7e8a7a7d2cef8fc767599d587570f95db5eb4ccb971d0e36c89cc239471954a053dd7042bef3e3d7a681ff13b1d8d4e207c4eb4 + languageName: node + linkType: hard + "@recallai/desktop-sdk@npm:^2.0.0": version: 2.0.15 resolution: "@recallai/desktop-sdk@npm:2.0.15" @@ -21618,15 +21634,15 @@ __metadata: languageName: node linkType: hard -"@tanstack/react-virtual@npm:^3.0.0-beta.60": - version: 3.8.4 - resolution: "@tanstack/react-virtual@npm:3.8.4" +"@tanstack/react-virtual@npm:^3.13.9": + version: 3.14.2 + resolution: "@tanstack/react-virtual@npm:3.14.2" dependencies: - "@tanstack/virtual-core": "npm:3.8.4" + "@tanstack/virtual-core": "npm:3.17.0" peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 - react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 - checksum: 10c0/2c803a0fd9101c75666b894d455c0c793bc50df4b5039e2bc748c4c50b64ec4ebaf3de990ab711d396ad8cd0582ca1858c7d0132d7f72acb57dfd9721464186e + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 + react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 + checksum: 10c0/6d42161f17fc037663270d68d14340e8d2561bd1b8ea17c295477adf99fa6d5ba4e4cde2ee050047c673217f7f71db92749159d25885530de1c78ca18ef6536d languageName: node linkType: hard @@ -21644,10 +21660,10 @@ __metadata: languageName: node linkType: hard -"@tanstack/virtual-core@npm:3.8.4": - version: 3.8.4 - resolution: "@tanstack/virtual-core@npm:3.8.4" - checksum: 10c0/32b3d7c7d7c380992730f38efe171eddb4841a3f9bdac198ff6f6e7c00da0e22d2984d57dcb27895f234768accb5625fc04946aa8745c22a136b3f31941d42ac +"@tanstack/virtual-core@npm:3.17.0": + version: 3.17.0 + resolution: "@tanstack/virtual-core@npm:3.17.0" + checksum: 10c0/313c5762343ad93ec0569b528c111a43f9615acc572293a71efc6dcf94ff9d791c97f1ada32b7dfbda79ed7d472834b14315ebe54d74b0221224732e501def6f languageName: node linkType: hard @@ -22417,15 +22433,6 @@ __metadata: languageName: node linkType: hard -"@types/codemirror@npm:^0.0.90": - version: 0.0.90 - resolution: "@types/codemirror@npm:0.0.90" - dependencies: - "@types/tern": "npm:*" - checksum: 10c0/fb3c00c11fe7d4102c138d1827dc75e680f1363af2006bfe219795b87758923f472fc62fb148189dc2d16826d5794ec9f3c7f935e0b688d9003a7a4de2f4d0fc - languageName: node - linkType: hard - "@types/codemirror@npm:^5.60.10": version: 5.60.17 resolution: "@types/codemirror@npm:5.60.17" @@ -22435,15 +22442,6 @@ __metadata: languageName: node linkType: hard -"@types/codemirror@npm:^5.60.8": - version: 5.60.15 - resolution: "@types/codemirror@npm:5.60.15" - dependencies: - "@types/tern": "npm:*" - checksum: 10c0/4d32ee8d335650956fc59b26f29909de0656ce9c68f7527caf2aa68e6a6a2e8be6ec7a6b80c02bfab7ac6b17040d6c2d83d394b9d00fdbf4b5588691f2efbba6 - languageName: node - linkType: hard - "@types/connect-history-api-fallback@npm:^1.5.4": version: 1.5.4 resolution: "@types/connect-history-api-fallback@npm:1.5.4" @@ -22884,16 +22882,6 @@ __metadata: languageName: node linkType: hard -"@types/hoist-non-react-statics@npm:^3.3.1": - version: 3.3.5 - resolution: "@types/hoist-non-react-statics@npm:3.3.5" - dependencies: - "@types/react": "npm:*" - hoist-non-react-statics: "npm:^3.3.0" - checksum: 10c0/2a3b64bf3d9817d7830afa60ee314493c475fb09570a64e7737084cd482d2177ebdddf888ce837350bac51741278b077683facc9541f052d4bbe8487b4e3e618 - languageName: node - linkType: hard - "@types/html-minifier-terser@npm:^6.0.0": version: 6.1.0 resolution: "@types/html-minifier-terser@npm:6.1.0" @@ -23671,13 +23659,6 @@ __metadata: languageName: node linkType: hard -"@types/prop-types@npm:*": - version: 15.7.12 - resolution: "@types/prop-types@npm:15.7.12" - checksum: 10c0/1babcc7db6a1177779f8fde0ccc78d64d459906e6ef69a4ed4dd6339c920c2e05b074ee5a92120fe4e9d9f1a01c952f843ebd550bee2332fc2ef81d1706878f8 - languageName: node - linkType: hard - "@types/prop-types@npm:^15.7.15": version: 15.7.15 resolution: "@types/prop-types@npm:15.7.15" @@ -23706,36 +23687,7 @@ __metadata: languageName: node linkType: hard -"@types/react-datepicker@npm:^6.2.0": - version: 6.2.0 - resolution: "@types/react-datepicker@npm:6.2.0" - dependencies: - "@floating-ui/react": "npm:^0.26.2" - "@types/react": "npm:*" - date-fns: "npm:^3.3.1" - checksum: 10c0/40342f0a5e15bac6f2b35072a2f7041db20b924692123aface78f2cbf0e896c0c02c299a9173583e01e5b6dad38e3da86ad0e56e943e74e0c0dc7d5c60129bdf - languageName: node - linkType: hard - -"@types/react-dom@npm:^18.2.15": - version: 18.3.0 - resolution: "@types/react-dom@npm:18.3.0" - dependencies: - "@types/react": "npm:*" - checksum: 10c0/6c90d2ed72c5a0e440d2c75d99287e4b5df3e7b011838cdc03ae5cd518ab52164d86990e73246b9d812eaf02ec351d74e3b4f5bd325bf341e13bf980392fd53b - languageName: node - linkType: hard - -"@types/react-dom@npm:^19": - version: 19.1.1 - resolution: "@types/react-dom@npm:19.1.1" - peerDependencies: - "@types/react": ^19.0.0 - checksum: 10c0/83833af502f501a372b370fdeb7cf933dfc8780903fe0e0d6e6a76b4ea3adbe5316159a62a0388d8afdd409afd76a40959e2ce82fbb788f57d32c786a63601ee - languageName: node - linkType: hard - -"@types/react-dom@npm:^19.0.0": +"@types/react-dom@npm:^19.2.0": version: 19.2.3 resolution: "@types/react-dom@npm:19.2.3" peerDependencies: @@ -23762,41 +23714,12 @@ __metadata: languageName: node linkType: hard -"@types/react@npm:*, @types/react@npm:^19": - version: 19.1.0 - resolution: "@types/react@npm:19.1.0" - dependencies: - csstype: "npm:^3.0.2" - checksum: 10c0/632fd20ee176e55801a61c5f854141b043571a3e363ef106b047b766a813a12735cbb37abb3d61d126346979f530f2ed269a60c8ef3cdee54e5e9fe4174e5dad - languageName: node - linkType: hard - -"@types/react@npm:^18.0.0": - version: 18.3.27 - resolution: "@types/react@npm:18.3.27" - dependencies: - "@types/prop-types": "npm:*" - csstype: "npm:^3.2.2" - checksum: 10c0/a761d2f58de03d0714806cc65d32bb3d73fb33a08dd030d255b47a295e5fff2a775cf1c20b786824d8deb6454eaccce9bc6998d9899c14fc04bbd1b0b0b72897 - languageName: node - linkType: hard - -"@types/react@npm:^18.2.39": - version: 18.3.3 - resolution: "@types/react@npm:18.3.3" - dependencies: - "@types/prop-types": "npm:*" - csstype: "npm:^3.0.2" - checksum: 10c0/fe455f805c5da13b89964c3d68060cebd43e73ec15001a68b34634604a78140e6fc202f3f61679b9d809dde6d7a7c2cb3ed51e0fd1462557911db09879b55114 - languageName: node - linkType: hard - -"@types/react@npm:^19.0.0": - version: 19.2.14 - resolution: "@types/react@npm:19.2.14" +"@types/react@npm:*, @types/react@npm:^19.2.0": + version: 19.2.17 + resolution: "@types/react@npm:19.2.17" dependencies: csstype: "npm:^3.2.2" - checksum: 10c0/7d25bf41b57719452d86d2ac0570b659210402707313a36ee612666bf11275a1c69824f8c3ee1fdca077ccfe15452f6da8f1224529b917050eb2d861e52b59b7 + checksum: 10c0/bc2c4af96b3e480604424de70d5ebda90c5f4b485df471858c0bc2d7d70364b606ec3c4d8579f94f01aa0c6c0591f56bcf14cba5689f5eea4b74250ccdc3a232 languageName: node linkType: hard @@ -24048,13 +23971,6 @@ __metadata: languageName: node linkType: hard -"@types/use-sync-external-store@npm:^0.0.3": - version: 0.0.3 - resolution: "@types/use-sync-external-store@npm:0.0.3" - checksum: 10c0/82824c1051ba40a00e3d47964cdf4546a224e95f172e15a9c62aa3f118acee1c7518b627a34f3aa87298a2039f982e8509f92bfcc18bea7c255c189c293ba547 - languageName: node - linkType: hard - "@types/use-sync-external-store@npm:^0.0.6": version: 0.0.6 resolution: "@types/use-sync-external-store@npm:0.0.6" @@ -25569,26 +25485,6 @@ __metadata: languageName: node linkType: hard -"@wyw-in-js/processor-utils@npm:^0.5.3": - version: 0.5.4 - resolution: "@wyw-in-js/processor-utils@npm:0.5.4" - dependencies: - "@babel/generator": "npm:^7.23.5" - "@wyw-in-js/shared": "npm:0.5.4" - checksum: 10c0/f6f34f780d116bc5fc976f7fa550d297795cef9447d8c531323886fa33e4bac6e1a80db1115e63f928b9fb0e677fdb28e00228c1a13631572341dbffbf9aecd0 - languageName: node - linkType: hard - -"@wyw-in-js/processor-utils@npm:^0.6.0": - version: 0.6.0 - resolution: "@wyw-in-js/processor-utils@npm:0.6.0" - dependencies: - "@babel/generator": "npm:^7.23.5" - "@wyw-in-js/shared": "npm:0.6.0" - checksum: 10c0/e7338afb71aa1eccf7646447df9d20c2ac895dc1d5a5ad8c26931997fa31595ece5890e8ada39b3c1fda28439c7598de950980dded714dbe003b232f95d22d9e - languageName: node - linkType: hard - "@wyw-in-js/processor-utils@npm:^1.0.4": version: 1.0.4 resolution: "@wyw-in-js/processor-utils@npm:1.0.4" @@ -25599,28 +25495,6 @@ __metadata: languageName: node linkType: hard -"@wyw-in-js/shared@npm:0.5.4, @wyw-in-js/shared@npm:^0.5.3": - version: 0.5.4 - resolution: "@wyw-in-js/shared@npm:0.5.4" - dependencies: - debug: "npm:^4.3.4" - find-up: "npm:^5.0.0" - minimatch: "npm:^9.0.3" - checksum: 10c0/47ec8bf5196679c42bdd1fa0f9831171fd8d8727031bbf7dcafbdbe19ee658660343405249d77ab2b9e7c1004ff30e4e6eaa4790784f223118089812020d0d4b - languageName: node - linkType: hard - -"@wyw-in-js/shared@npm:0.6.0": - version: 0.6.0 - resolution: "@wyw-in-js/shared@npm:0.6.0" - dependencies: - debug: "npm:^4.3.4" - find-up: "npm:^5.0.0" - minimatch: "npm:^9.0.3" - checksum: 10c0/a7bab831ebdf9172c8b7a117525550b57c6b338bb6579f186b0f54a3cae5cde75dd245e375b93766fe1f1fc1d42f804353622594115727a2a8c4eb4de84aaaab - languageName: node - linkType: hard - "@wyw-in-js/shared@npm:0.8.1": version: 0.8.1 resolution: "@wyw-in-js/shared@npm:0.8.1" @@ -27583,7 +27457,7 @@ __metadata: languageName: node linkType: hard -"aria-hidden@npm:^1.1.1, aria-hidden@npm:^1.2.3, aria-hidden@npm:^1.2.4": +"aria-hidden@npm:^1.2.3, aria-hidden@npm:^1.2.4": version: 1.2.4 resolution: "aria-hidden@npm:1.2.4" dependencies: @@ -29882,7 +29756,7 @@ __metadata: languageName: node linkType: hard -"client-only@npm:0.0.1, client-only@npm:^0.0.1": +"client-only@npm:0.0.1": version: 0.0.1 resolution: "client-only@npm:0.0.1" checksum: 10c0/9d6cfd0c19e1c96a434605added99dff48482152af791ec4172fb912a71cff9027ff174efd8cdb2160cc7f377543e0537ffc462d4f279bc4701de3f2a3c4b358 @@ -29982,14 +29856,14 @@ __metadata: languageName: node linkType: hard -"clsx@npm:^1.1.1, clsx@npm:^1.2.1": +"clsx@npm:^1.2.1": version: 1.2.1 resolution: "clsx@npm:1.2.1" checksum: 10c0/34dead8bee24f5e96f6e7937d711978380647e936a22e76380290e35486afd8634966ce300fc4b74a32f3762c7d4c0303f442c3e259f4ce02374eb0c82834f27 languageName: node linkType: hard -"clsx@npm:^2.0.0, clsx@npm:^2.1.0, clsx@npm:^2.1.1": +"clsx@npm:^2.0.0, clsx@npm:^2.1.1": version: 2.1.1 resolution: "clsx@npm:2.1.1" checksum: 10c0/c4c8eb865f8c82baab07e71bfa8897c73454881c4f99d6bc81585aecd7c441746c1399d08363dc096c550cceaf97bd4ce1e8854e1771e9998d9f94c4fe075839 @@ -30033,20 +29907,6 @@ __metadata: languageName: node linkType: hard -"codemirror-graphql@npm:^2.0.13": - version: 2.0.13 - resolution: "codemirror-graphql@npm:2.0.13" - dependencies: - "@types/codemirror": "npm:^0.0.90" - graphql-language-service: "npm:5.2.2" - peerDependencies: - "@codemirror/language": 6.0.0 - codemirror: ^5.65.3 - graphql: ^15.5.0 || ^16.0.0 - checksum: 10c0/e6f1e08355765526ee71982b108b797949b43409f95835f1e4a7f8edb3de575cccea86d94d9a4c437e2a5106e9c233c7575127131250902bd057a825a6b96592 - languageName: node - linkType: hard - "codemirror-spell-checker@npm:1.1.2": version: 1.1.2 resolution: "codemirror-spell-checker@npm:1.1.2" @@ -30063,13 +29923,6 @@ __metadata: languageName: node linkType: hard -"codemirror@npm:^5.65.3": - version: 5.65.17 - resolution: "codemirror@npm:5.65.17" - checksum: 10c0/c2fa8eda0f7c4e9e829aaec2a0c17646019740479e5327834c93cd48e4a7005bfc686114a28510e0eace6149d481a1ffc464ac75b169190fd2d38fa331615132 - languageName: node - linkType: hard - "codemirror@npm:^6.0.1": version: 6.0.2 resolution: "codemirror@npm:6.0.2" @@ -30660,15 +30513,6 @@ __metadata: languageName: node linkType: hard -"copy-to-clipboard@npm:^3.2.0": - version: 3.3.3 - resolution: "copy-to-clipboard@npm:3.3.3" - dependencies: - toggle-selection: "npm:^1.0.6" - checksum: 10c0/3ebf5e8ee00601f8c440b83ec08d838e8eabb068c1fae94a9cda6b42f288f7e1b552f3463635f419af44bf7675afc8d0390d30876cf5c2d5d35f86d9c56a3e5f - languageName: node - linkType: hard - "core-js-compat@npm:^3.38.0, core-js-compat@npm:^3.40.0": version: 3.45.0 resolution: "core-js-compat@npm:3.45.0" @@ -31557,13 +31401,20 @@ __metadata: languageName: node linkType: hard -"date-fns@npm:^3.3.1, date-fns@npm:^3.6.0": +"date-fns@npm:^3.6.0": version: 3.6.0 resolution: "date-fns@npm:3.6.0" checksum: 10c0/0b5fb981590ef2f8e5a3ba6cd6d77faece0ea7f7158948f2eaae7bbb7c80a8f63ae30b01236c2923cf89bb3719c33aeb150c715ea4fe4e86e37dcf06bed42fb6 languageName: node linkType: hard +"date-fns@npm:^4.1.0": + version: 4.4.0 + resolution: "date-fns@npm:4.4.0" + checksum: 10c0/988f0a13db183f5dfc85c36bbb6847a9c135a9225888bbea4005876ec15539a8613c21a07370a4e7ea543918d5a1cafb423c528b42cdbbde5fdfddb178126b21 + languageName: node + linkType: hard + "dateformat@npm:^5.0.3": version: 5.0.3 resolution: "dateformat@npm:5.0.3" @@ -35254,33 +35105,25 @@ __metadata: languageName: node linkType: hard -"framer-motion@npm:^6.5.1": - version: 6.5.1 - resolution: "framer-motion@npm:6.5.1" +"framer-motion@npm:^12.12": + version: 12.40.0 + resolution: "framer-motion@npm:12.40.0" dependencies: - "@emotion/is-prop-valid": "npm:^0.8.2" - "@motionone/dom": "npm:10.12.0" - framesync: "npm:6.0.1" - hey-listen: "npm:^1.0.8" - popmotion: "npm:11.0.3" - style-value-types: "npm:5.0.0" - tslib: "npm:^2.1.0" + motion-dom: "npm:^12.40.0" + motion-utils: "npm:^12.39.0" + tslib: "npm:^2.4.0" peerDependencies: - react: ">=16.8 || ^17.0.0 || ^18.0.0" - react-dom: ">=16.8 || ^17.0.0 || ^18.0.0" - dependenciesMeta: + "@emotion/is-prop-valid": "*" + react: ^18.0.0 || ^19.0.0 + react-dom: ^18.0.0 || ^19.0.0 + peerDependenciesMeta: "@emotion/is-prop-valid": optional: true - checksum: 10c0/69d64f7ac878eb5a0d90f1ccbaaee76f7731b276c4369fdce7d283fa92cca35ea05c42ad2da0c6c0ab4bb180b7fa4f511b6928bdb43818f6feaf245531d3df5a - languageName: node - linkType: hard - -"framesync@npm:6.0.1": - version: 6.0.1 - resolution: "framesync@npm:6.0.1" - dependencies: - tslib: "npm:^2.1.0" - checksum: 10c0/ce84ce548a8612be070204b9cf3ce7258acead2d51df05586995340e501d1439dfc1f9402ede921a9c0dde854d80fd46e97c699a3657f8d7abd5bc705553bf2b + react: + optional: true + react-dom: + optional: true + checksum: 10c0/a1d26908d6661028fcdba0cf200fca18927a4d4eae0b1e64c37dfb7fdea9da66a8991abd0007079e98687060ba9c83db55620c238bc363106a24ff411d22f533 languageName: node linkType: hard @@ -35830,6 +35673,15 @@ __metadata: languageName: node linkType: hard +"get-value@npm:^3.0.1": + version: 3.0.1 + resolution: "get-value@npm:3.0.1" + dependencies: + isobject: "npm:^3.0.1" + checksum: 10c0/38cca1618ffe9a07a8b105a352c4de27bea36032d4916d21a0636ab5ff3bf1aa3bf200c6875f59f55cd4fb3f5156244dec838fbaf2ba580332d13ac51a25fabd + languageName: node + linkType: hard + "getpass@npm:^0.1.1": version: 0.1.7 resolution: "getpass@npm:0.1.7" @@ -36315,19 +36167,19 @@ __metadata: languageName: node linkType: hard -"graphiql@npm:^3.1.1": - version: 3.4.0 - resolution: "graphiql@npm:3.4.0" +"graphiql@npm:^5.2.3": + version: 5.2.3 + resolution: "graphiql@npm:5.2.3" dependencies: - "@graphiql/react": "npm:^0.23.0" - "@graphiql/toolkit": "npm:^0.9.2" - graphql-language-service: "npm:^5.2.2" - markdown-it: "npm:^14.1.0" + "@graphiql/plugin-doc-explorer": "npm:^0.4.2" + "@graphiql/plugin-history": "npm:^0.4.2" + "@graphiql/react": "npm:^0.37.4" + react-compiler-runtime: "npm:19.1.0-rc.1" peerDependencies: - graphql: ^15.5.0 || ^16.0.0 - react: ^16.8.0 || ^17 || ^18 - react-dom: ^16.8.0 || ^17 || ^18 - checksum: 10c0/82fe9f1082149612edeb3bfa39a263fe33e6e8d331853731aa092cb18c403d9be8bea92966fb742d9307fd7a2c75d2db1aa75d94d9f7570220c6a6d7014b622f + graphql: ^15.5.0 || ^16.0.0 || ^17.0.0 + react: ^18 || ^19 + react-dom: ^18 || ^19 + checksum: 10c0/a47c4c5f7247c7ea2134441144069df045465b775d684d6128716ec92bdb455637c3634ac0d215b64ca6e1bd6c66f48381c1bdd0e7f15afcfa2bee1aa0e0f70e languageName: node linkType: hard @@ -36363,18 +36215,18 @@ __metadata: languageName: node linkType: hard -"graphql-language-service@npm:5.2.2, graphql-language-service@npm:^5.2.2": - version: 5.2.2 - resolution: "graphql-language-service@npm:5.2.2" +"graphql-language-service@npm:^5.5.1, graphql-language-service@npm:^5.5.2": + version: 5.5.2 + resolution: "graphql-language-service@npm:5.5.2" dependencies: debounce-promise: "npm:^3.1.2" nullthrows: "npm:^1.0.0" vscode-languageserver-types: "npm:^3.17.1" peerDependencies: - graphql: ^15.5.0 || ^16.0.0 + graphql: ^15.5.0 || ^16.0.0 || ^17.0.0 bin: graphql: dist/temp-bin.js - checksum: 10c0/da8767aa8b701d1c4bc73014d48384a169af5158e9398c8c2d67afde2f56486e6966dd8d13d8daf0f05aeeec97810f4a10e6a36144b41ad0d7a9cc26a601eee3 + checksum: 10c0/fe340823b90f418fa466c0dedfdf0070ab658530bfbad3386aefa58998d272c6971d93e95ecd0ea44a36df2edc3471273b2b467a1526c8f62da1df400cc172e1 languageName: node linkType: hard @@ -37134,13 +36986,6 @@ __metadata: languageName: node linkType: hard -"hey-listen@npm:^1.0.8": - version: 1.0.8 - resolution: "hey-listen@npm:1.0.8" - checksum: 10c0/38db3028b4756f3d536c0f6a92da53bad577ab649b06dddfd0a4d953f9a46bbc6a7f693c8c5b466a538d6d23dbc469260c848427f0de14198a2bbecbac37b39e - languageName: node - linkType: hard - "highlight.js@npm:^10.7.1": version: 10.7.3 resolution: "highlight.js@npm:10.7.3" @@ -37155,7 +37000,7 @@ __metadata: languageName: node linkType: hard -"hoist-non-react-statics@npm:^3.3.0, hoist-non-react-statics@npm:^3.3.1, hoist-non-react-statics@npm:^3.3.2": +"hoist-non-react-statics@npm:^3.3.1": version: 3.3.2 resolution: "hoist-non-react-statics@npm:3.3.2" dependencies: @@ -40651,7 +40496,7 @@ __metadata: languageName: node linkType: hard -"jsonc-parser@npm:3.3.1, jsonc-parser@npm:^3.2.0": +"jsonc-parser@npm:3.3.1, jsonc-parser@npm:^3.2.0, jsonc-parser@npm:^3.3.1": version: 3.3.1 resolution: "jsonc-parser@npm:3.3.1" checksum: 10c0/269c3ae0a0e4f907a914bf334306c384aabb9929bd8c99f909275ebd5c2d3bc70b9bcd119ad794f339dec9f24b6a4ee9cd5a8ab2e6435e730ad4075388fc2ab6 @@ -41735,7 +41580,7 @@ __metadata: languageName: node linkType: hard -"loose-envify@npm:^1.0.0, loose-envify@npm:^1.1.0, loose-envify@npm:^1.4.0": +"loose-envify@npm:^1.0.0, loose-envify@npm:^1.4.0": version: 1.4.0 resolution: "loose-envify@npm:1.4.0" dependencies: @@ -42672,13 +42517,6 @@ __metadata: languageName: node linkType: hard -"memoize-one@npm:^6.0.0": - version: 6.0.0 - resolution: "memoize-one@npm:6.0.0" - checksum: 10c0/45c88e064fd715166619af72e8cf8a7a17224d6edf61f7a8633d740ed8c8c0558a4373876c9b8ffc5518c2b65a960266adf403cc215cb1e90f7e262b58991f54 - languageName: node - linkType: hard - "merge-descriptors@npm:1.0.3": version: 1.0.3 resolution: "merge-descriptors@npm:1.0.3" @@ -43670,6 +43508,13 @@ __metadata: languageName: node linkType: hard +"monaco-editor@npm:0.52.2": + version: 0.52.2 + resolution: "monaco-editor@npm:0.52.2" + checksum: 10c0/5a92da64f1e2ab375c0ce99364137f794d057c97bed10ecc65a08d6e6846804b8ecbd377eacf01e498f7dfbe1b21e8be64f728256681448f0484df90e767b435 + languageName: node + linkType: hard + "monaco-editor@npm:^0.51.0": version: 0.51.0 resolution: "monaco-editor@npm:0.51.0" @@ -43677,6 +43522,20 @@ __metadata: languageName: node linkType: hard +"monaco-graphql@npm:^1.8.0": + version: 1.8.0 + resolution: "monaco-graphql@npm:1.8.0" + dependencies: + graphql-language-service: "npm:^5.5.1" + picomatch-browser: "npm:^2.2.6" + peerDependencies: + graphql: ^15.5.0 || ^16.0.0 || ^17.0.0 + monaco-editor: ">= 0.20.0 < 0.53" + prettier: ^2.8.0 || ^3.0.0 + checksum: 10c0/a2bbeb48b7e9819a78c8546817d1f676690cacfa267646ff1fbfde7786c60148f4e3a7b7b6bc71a4ce6e3d9541dac5948dda76fa664aa60c49982fa1994a2ad0 + languageName: node + linkType: hard + "moo@npm:^0.5.1": version: 0.5.2 resolution: "moo@npm:0.5.2" @@ -43693,6 +43552,15 @@ __metadata: languageName: node linkType: hard +"motion-dom@npm:^12.40.0": + version: 12.40.0 + resolution: "motion-dom@npm:12.40.0" + dependencies: + motion-utils: "npm:^12.39.0" + checksum: 10c0/79da846a36fd5f6762a0fcfa6e0b7128e4d58f7c07d1467a9f789a9cd0b5adbef9bfbde75760901a13cf2bddd9b31e93e4348a714f570c45ca1e2bfabd22859e + languageName: node + linkType: hard + "motion-utils@npm:^11.16.0": version: 11.16.0 resolution: "motion-utils@npm:11.16.0" @@ -43700,6 +43568,13 @@ __metadata: languageName: node linkType: hard +"motion-utils@npm:^12.39.0": + version: 12.39.0 + resolution: "motion-utils@npm:12.39.0" + checksum: 10c0/6d7a2a2cc0797b72410a666a9cc1c201c8e39bf9669670464e433fe1e72af5f0217154c869867b34fbadf3664cf222c0d022bbc4eed7927f201ae971918e7440 + languageName: node + linkType: hard + "mrmime@npm:^2.0.0, mrmime@npm:^2.0.1": version: 2.0.1 resolution: "mrmime@npm:2.0.1" @@ -46751,6 +46626,13 @@ __metadata: languageName: node linkType: hard +"picomatch-browser@npm:^2.2.6": + version: 2.2.6 + resolution: "picomatch-browser@npm:2.2.6" + checksum: 10c0/bf97d3e6f77dee776fe4cc7728037931b681c56e1fd964023ed797de341a0e32dcc1e90a5552cc74923cb97566464870a37be188b09e3db7279f9e9a9b12d977 + languageName: node + linkType: hard + "picomatch@npm:4.0.4, picomatch@npm:^4.0.0, picomatch@npm:^4.0.2, picomatch@npm:^4.0.3, picomatch@npm:^4.0.4": version: 4.0.4 resolution: "picomatch@npm:4.0.4" @@ -47082,18 +46964,6 @@ __metadata: languageName: node linkType: hard -"popmotion@npm:11.0.3": - version: 11.0.3 - resolution: "popmotion@npm:11.0.3" - dependencies: - framesync: "npm:6.0.1" - hey-listen: "npm:^1.0.8" - style-value-types: "npm:5.0.0" - tslib: "npm:^2.1.0" - checksum: 10c0/ed196cf034c199a2ab6095f047924b38e24f386c33a182970ad6e1769002b72adff34a72ba7ab2cf34ff5bbfd711ef4caf2e9843ebb7a5c9cafa27c50e525f70 - languageName: node - linkType: hard - "portfinder@npm:^1.0.28": version: 1.0.32 resolution: "portfinder@npm:1.0.32" @@ -47639,7 +47509,7 @@ __metadata: languageName: node linkType: hard -"prop-types@npm:15.x, prop-types@npm:^15.6.1, prop-types@npm:^15.6.2, prop-types@npm:^15.7.2, prop-types@npm:^15.8.1": +"prop-types@npm:15.x, prop-types@npm:^15.6.1, prop-types@npm:^15.6.2, prop-types@npm:^15.8.1": version: 15.8.1 resolution: "prop-types@npm:15.8.1" dependencies: @@ -48294,31 +48164,69 @@ __metadata: languageName: node linkType: hard -"react-data-grid@npm:7.0.0-beta.13": - version: 7.0.0-beta.13 - resolution: "react-data-grid@npm:7.0.0-beta.13" +"react-aria@npm:^3.48.0": + version: 3.49.0 + resolution: "react-aria@npm:3.49.0" dependencies: - clsx: "npm:^1.1.1" + "@internationalized/date": "npm:^3.12.2" + "@internationalized/number": "npm:^3.6.7" + "@internationalized/string": "npm:^3.2.9" + "@react-types/shared": "npm:^3.35.0" + "@swc/helpers": "npm:^0.5.0" + aria-hidden: "npm:^1.2.3" + clsx: "npm:^2.0.0" + react-stately: "npm:3.47.0" + use-sync-external-store: "npm:^1.6.0" peerDependencies: - react: ^16.14 || ^17.0 || ^18.0 - react-dom: ^16.14 || ^17.0 || ^18.0 - checksum: 10c0/f7f9b099bbd3422e8fef3ff2025ac7b596460f54bfa873c7a4f1f9d1c0bc330b5133deb8ac79dbce12ad3168184938871f198ea973a6a4265f8b7a07e5810ee6 + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + checksum: 10c0/22c4e468f2a4ecf62910ac7910a3c08dbcdbea3febc3f3b412e02373f6bdab7bcc1c12c912bbf28b00d1d58338b59c08f6a288a9c3777832d446ddf968356b88 languageName: node linkType: hard -"react-datepicker@npm:^6.7.1": - version: 6.9.0 - resolution: "react-datepicker@npm:6.9.0" - dependencies: - "@floating-ui/react": "npm:^0.26.2" - clsx: "npm:^2.1.0" - date-fns: "npm:^3.3.1" - prop-types: "npm:^15.7.2" - react-onclickoutside: "npm:^6.13.0" +"react-compiler-runtime@npm:19.1.0-rc.1": + version: 19.1.0-rc.1 + resolution: "react-compiler-runtime@npm:19.1.0-rc.1" peerDependencies: - react: ^16.9.0 || ^17 || ^18 - react-dom: ^16.9.0 || ^17 || ^18 - checksum: 10c0/aed97871a60071bf00dd1447a7c4a3841a05db6f57bd24b3e499c9ef8c20bc5c46a826b6b0667ae804c4ddd2bb88319bd8115a08bb670c2a57505b0a7a18bec6 + react: ^17.0.0 || ^18.0.0 || ^19.0.0 || ^0.0.0-experimental + checksum: 10c0/7bb644339464e0193dba15ac4f5324d10f31dcd1e1807d7fd156355154f5fa360b59b4ffd07dc1138c493c1eebf9ef27d695d833ebe1b1030b3a9201a99e0698 + languageName: node + linkType: hard + +"react-compiler-runtime@npm:^1.0.0": + version: 1.0.0 + resolution: "react-compiler-runtime@npm:1.0.0" + peerDependencies: + react: ^17.0.0 || ^18.0.0 || ^19.0.0 || ^0.0.0-experimental + checksum: 10c0/e081192380ae32d18bebaf341071ae8aecf80f4401b188f80e4b77e8d8995bb4c7175b8c3f75e8307019eac2015edf45c7999f788dcfcd99fdbe2ba9a2d465a4 + languageName: node + linkType: hard + +"react-data-grid@npm:7.0.0-beta.59": + version: 7.0.0-beta.59 + resolution: "react-data-grid@npm:7.0.0-beta.59" + peerDependencies: + react: ^19.2 + react-dom: ^19.2 + checksum: 10c0/b48da72e4e2d7562727354301fffd8433a06659e536effecae8a410a8e44e84e3368cde1970f98945ecd221e45ecbf4e4baa562e42fe32e5a9ff74a36a910633 + languageName: node + linkType: hard + +"react-datepicker@npm:^9.1.0": + version: 9.1.0 + resolution: "react-datepicker@npm:9.1.0" + dependencies: + "@floating-ui/react": "npm:^0.27.15" + clsx: "npm:^2.1.1" + date-fns: "npm:^4.1.0" + peerDependencies: + date-fns-tz: ^3.0.0 + react: ^16.9.0 || ^17 || ^18 || ^19 || ^19.0.0-rc + react-dom: ^16.9.0 || ^17 || ^18 || ^19 || ^19.0.0-rc + peerDependenciesMeta: + date-fns-tz: + optional: true + checksum: 10c0/43b58b08f9e4f289a31f2a2dbd0e246e396ad44ebfea4ed8d1393de2a6bded2dad9c2002cfcf70dfbe51aabf5f886b12b1aae8463c5bc35d67b1b22733a8a0f9 languageName: node linkType: hard @@ -48349,37 +48257,14 @@ __metadata: languageName: node linkType: hard -"react-dom@npm:18.3.1, react-dom@npm:^18.2.0": - version: 18.3.1 - resolution: "react-dom@npm:18.3.1" - dependencies: - loose-envify: "npm:^1.1.0" - scheduler: "npm:^0.23.2" - peerDependencies: - react: ^18.3.1 - checksum: 10c0/a752496c1941f958f2e8ac56239172296fcddce1365ce45222d04a1947e0cc5547df3e8447f855a81d6d39f008d7c32eab43db3712077f09e3f67c4874973e85 - languageName: node - linkType: hard - -"react-dom@npm:19.2.3, react-dom@npm:^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0": - version: 19.2.3 - resolution: "react-dom@npm:19.2.3" +"react-dom@npm:^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0, react-dom@npm:^19.2.0": + version: 19.2.7 + resolution: "react-dom@npm:19.2.7" dependencies: scheduler: "npm:^0.27.0" peerDependencies: - react: ^19.2.3 - checksum: 10c0/dc43f7ede06f46f3acc16ee83107c925530de9b91d1d0b3824583814746ff4c498ea64fd65cd83aba363205268adff52e2827c582634ae7b15069deaeabc4892 - languageName: node - linkType: hard - -"react-dom@npm:^19.0.0, react-dom@npm:^19.1.0": - version: 19.2.4 - resolution: "react-dom@npm:19.2.4" - dependencies: - scheduler: "npm:^0.27.0" - peerDependencies: - react: ^19.2.4 - checksum: 10c0/f0c63f1794dedb154136d4d0f59af00b41907f4859571c155940296808f4b94bf9c0c20633db75b5b2112ec13d8d7dd4f9bf57362ed48782f317b11d05a44f35 + react: ^19.2.7 + checksum: 10c0/970ff600f6e80d47d39e2f226f12f226173b3cba3382efc97c5f0cd663de9af38c7a4c11c213fb936094faeac83060d660247accaa96b752180d5b951b9cfecb languageName: node linkType: hard @@ -48455,13 +48340,6 @@ __metadata: languageName: node linkType: hard -"react-fast-compare@npm:^3.2.0": - version: 3.2.2 - resolution: "react-fast-compare@npm:3.2.2" - checksum: 10c0/0bbd2f3eb41ab2ff7380daaa55105db698d965c396df73e6874831dbafec8c4b5b08ba36ff09df01526caa3c61595247e3269558c284e37646241cba2b90a367 - languageName: node - linkType: hard - "react-grid-layout@npm:^1.5.2": version: 1.5.2 resolution: "react-grid-layout@npm:1.5.2" @@ -48479,22 +48357,6 @@ __metadata: languageName: node linkType: hard -"react-helmet-async@npm:^1.3.0": - version: 1.3.0 - resolution: "react-helmet-async@npm:1.3.0" - dependencies: - "@babel/runtime": "npm:^7.12.5" - invariant: "npm:^2.2.4" - prop-types: "npm:^15.7.2" - react-fast-compare: "npm:^3.2.0" - shallowequal: "npm:^1.1.0" - peerDependencies: - react: ^16.6.0 || ^17.0.0 || ^18.0.0 - react-dom: ^16.6.0 || ^17.0.0 || ^18.0.0 - checksum: 10c0/8f3e6d26beff61d2ed18f7b41561df3e4d83a7582914c7196aa65158c7f3cce939276547d7a0b8987952d9d44131406df74efba02d1f8fa8a3940b49e6ced70b - languageName: node - linkType: hard - "react-hook-form@npm:^7.45.1": version: 7.52.2 resolution: "react-hook-form@npm:7.52.2" @@ -48626,16 +48488,6 @@ __metadata: languageName: node linkType: hard -"react-onclickoutside@npm:^6.13.0": - version: 6.13.1 - resolution: "react-onclickoutside@npm:6.13.1" - peerDependencies: - react: ^15.5.x || ^16.x || ^17.x || ^18.x - react-dom: ^15.5.x || ^16.x || ^17.x || ^18.x - checksum: 10c0/93b02c493332ca7f8b480a1e185386c4af55d1daf33af2f68ddf440e4fc9b22ad13f59d7e204694aa31c1c2e332f0766c7ee302fe3b0cecbd0e0b45d55905c96 - languageName: node - linkType: hard - "react-pdf@npm:^9.0.0": version: 9.2.1 resolution: "react-pdf@npm:9.2.1" @@ -48734,51 +48586,22 @@ __metadata: languageName: node linkType: hard -"react-redux@npm:^8.1.3": - version: 8.1.3 - resolution: "react-redux@npm:8.1.3" +"react-redux@npm:^9.2.0": + version: 9.3.0 + resolution: "react-redux@npm:9.3.0" dependencies: - "@babel/runtime": "npm:^7.12.1" - "@types/hoist-non-react-statics": "npm:^3.3.1" - "@types/use-sync-external-store": "npm:^0.0.3" - hoist-non-react-statics: "npm:^3.3.2" - react-is: "npm:^18.0.0" - use-sync-external-store: "npm:^1.0.0" + "@types/use-sync-external-store": "npm:^0.0.6" + use-sync-external-store: "npm:^1.4.0" peerDependencies: - "@types/react": ^16.8 || ^17.0 || ^18.0 - "@types/react-dom": ^16.8 || ^17.0 || ^18.0 - react: ^16.8 || ^17.0 || ^18.0 - react-dom: ^16.8 || ^17.0 || ^18.0 - react-native: ">=0.59" - redux: ^4 || ^5.0.0-beta.0 + "@types/react": ^18.2.25 || ^19 + react: ^18.0 || ^19 + redux: ^5.0.0 peerDependenciesMeta: "@types/react": optional: true - "@types/react-dom": - optional: true - react-dom: - optional: true - react-native: - optional: true redux: optional: true - checksum: 10c0/64c8be2765568dc66a3c442a41dd0ed74fe048d5ceb7a4fe72e5bac3d3687996a7115f57b5156af7406521087065a0e60f9194318c8ca99c55e9ce48558980ce - languageName: node - linkType: hard - -"react-remove-scroll-bar@npm:^2.3.4": - version: 2.3.6 - resolution: "react-remove-scroll-bar@npm:2.3.6" - dependencies: - react-style-singleton: "npm:^2.2.1" - tslib: "npm:^2.0.0" - peerDependencies: - "@types/react": ^16.8.0 || ^17.0.0 || ^18.0.0 - react: ^16.8.0 || ^17.0.0 || ^18.0.0 - peerDependenciesMeta: - "@types/react": - optional: true - checksum: 10c0/4e32ee04bf655a8bd3b4aacf6ffc596ae9eb1b9ba27eef83f7002632ee75371f61516ae62250634a9eae4b2c8fc6f6982d9b182de260f6c11841841e6e2e7515 + checksum: 10c0/b9f4efcfbfbc90cac9d1709ab3affb1e18a9dc9bd3cceda43bd2e1d9d2394ee0c29df36ec2202d52b566db774888b594c8c5aa86b64f27ef34fca607c687c9e3 languageName: node linkType: hard @@ -48798,26 +48621,7 @@ __metadata: languageName: node linkType: hard -"react-remove-scroll@npm:2.5.7": - version: 2.5.7 - resolution: "react-remove-scroll@npm:2.5.7" - dependencies: - react-remove-scroll-bar: "npm:^2.3.4" - react-style-singleton: "npm:^2.2.1" - tslib: "npm:^2.1.0" - use-callback-ref: "npm:^1.3.0" - use-sidecar: "npm:^1.1.2" - peerDependencies: - "@types/react": ^16.8.0 || ^17.0.0 || ^18.0.0 - react: ^16.8.0 || ^17.0.0 || ^18.0.0 - peerDependenciesMeta: - "@types/react": - optional: true - checksum: 10c0/dcd523ada602bd0a839c2032cadf0b3e4af55ee85acefee3760976a9cceaa4606927801b093bbb8bf3c2989c71e048f5428c2c6eb9e6681762e86356833d039b - languageName: node - linkType: hard - -"react-remove-scroll@npm:^2.6.3, react-remove-scroll@npm:^2.7.1": +"react-remove-scroll@npm:^2.6.3, react-remove-scroll@npm:^2.7.1, react-remove-scroll@npm:^2.7.2": version: 2.7.2 resolution: "react-remove-scroll@npm:2.7.2" dependencies: @@ -48886,20 +48690,19 @@ __metadata: languageName: node linkType: hard -"react-style-singleton@npm:^2.2.1": - version: 2.2.1 - resolution: "react-style-singleton@npm:2.2.1" +"react-stately@npm:3.47.0": + version: 3.47.0 + resolution: "react-stately@npm:3.47.0" dependencies: - get-nonce: "npm:^1.0.0" - invariant: "npm:^2.2.4" - tslib: "npm:^2.0.0" + "@internationalized/date": "npm:^3.12.2" + "@internationalized/number": "npm:^3.6.7" + "@internationalized/string": "npm:^3.2.9" + "@react-types/shared": "npm:^3.35.0" + "@swc/helpers": "npm:^0.5.0" + use-sync-external-store: "npm:^1.6.0" peerDependencies: - "@types/react": ^16.8.0 || ^17.0.0 || ^18.0.0 - react: ^16.8.0 || ^17.0.0 || ^18.0.0 - peerDependenciesMeta: - "@types/react": - optional: true - checksum: 10c0/6d66f3bdb65e1ec79089f80314da97c9a005087a04ee034255a5de129a4c0d9fd0bf99fa7bf642781ac2dc745ca687aae3de082bd8afdd0d117bc953241e15ad + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + checksum: 10c0/5b6ebe09d23b8c3a83c9619002b9931c4a04a122acf0d69f3d0b7ab956810138720f866afacfa75635e634a924cf8beb419d06106a05030f953e11f147261926 languageName: node linkType: hard @@ -48983,33 +48786,17 @@ __metadata: languageName: node linkType: hard -"react@npm:18.3.1, react@npm:^18.2.0": - version: 18.3.1 - resolution: "react@npm:18.3.1" - dependencies: - loose-envify: "npm:^1.1.0" - checksum: 10c0/283e8c5efcf37802c9d1ce767f302dd569dd97a70d9bb8c7be79a789b9902451e0d16334b05d73299b20f048cbc3c7d288bbbde10b701fa194e2089c237dbea3 - languageName: node - linkType: hard - -"react@npm:19.2.3, react@npm:^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0": +"react@npm:19.2.3": version: 19.2.3 resolution: "react@npm:19.2.3" checksum: 10c0/094220b3ba3a76c1b668f972ace1dd15509b157aead1b40391d1c8e657e720c201d9719537375eff08f5e0514748c0319063392a6f000e31303aafc4471f1436 languageName: node linkType: hard -"react@npm:^19.0.0": - version: 19.2.4 - resolution: "react@npm:19.2.4" - checksum: 10c0/cd2c9ff67a720799cc3b38a516009986f7fc4cb8d3e15716c6211cf098d1357ee3e348ab05ad0600042bbb0fd888530ba92e329198c92eafa0994f5213396596 - languageName: node - linkType: hard - -"react@npm:^19.1.0": - version: 19.2.0 - resolution: "react@npm:19.2.0" - checksum: 10c0/1b6d64eacb9324725bfe1e7860cb7a6b8a34bc89a482920765ebff5c10578eb487e6b46b2f0df263bd27a25edbdae2c45e5ea5d81ae61404301c1a7192c38330 +"react@npm:^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0, react@npm:^19.2.0": + version: 19.2.7 + resolution: "react@npm:19.2.7" + checksum: 10c0/0bd0e2f1bbd4ba97561c6597bf8a5fec05e6476fe61e165c1065598d16668efc6715205599c94d3ddd49d36cb0f21cbf1b9bcc18ee840b805ce222c3e8d558ac languageName: node linkType: hard @@ -49291,12 +49078,10 @@ __metadata: languageName: node linkType: hard -"redux@npm:^4.2.1": - version: 4.2.1 - resolution: "redux@npm:4.2.1" - dependencies: - "@babel/runtime": "npm:^7.9.2" - checksum: 10c0/136d98b3d5dbed1cd6279c8c18a6a74c416db98b8a432a46836bdd668475de6279a2d4fd9d1363f63904e00f0678a8a3e7fa532c897163340baf1e71bb42c742 +"redux@npm:^5.0.1": + version: 5.0.1 + resolution: "redux@npm:5.0.1" + checksum: 10c0/b10c28357194f38e7d53b760ed5e64faa317cc63de1fb95bc5d9e127fab956392344368c357b8e7a9bedb0c35b111e7efa522210cfdc3b3c75e5074718e9069c languageName: node linkType: hard @@ -50899,15 +50684,6 @@ __metadata: languageName: node linkType: hard -"scheduler@npm:^0.23.2": - version: 0.23.2 - resolution: "scheduler@npm:0.23.2" - dependencies: - loose-envify: "npm:^1.1.0" - checksum: 10c0/26383305e249651d4c58e6705d5f8425f153211aef95f15161c151f7b8de885f24751b377e4a0b3dd42cce09aad3f87a61dab7636859c0d89b7daf1a1e2a5c78 - languageName: node - linkType: hard - "scheduler@npm:^0.26.0": version: 0.26.0 resolution: "scheduler@npm:0.26.0" @@ -51342,13 +51118,6 @@ __metadata: languageName: node linkType: hard -"shallowequal@npm:^1.1.0": - version: 1.1.0 - resolution: "shallowequal@npm:1.1.0" - checksum: 10c0/b926efb51cd0f47aa9bc061add788a4a650550bbe50647962113a4579b60af2abe7b62f9b02314acc6f97151d4cf87033a2b15fc20852fae306d1a095215396c - languageName: node - linkType: hard - "sharp-ico@npm:0.1.5": version: 0.1.5 resolution: "sharp-ico@npm:0.1.5" @@ -52889,16 +52658,6 @@ __metadata: languageName: node linkType: hard -"style-value-types@npm:5.0.0": - version: 5.0.0 - resolution: "style-value-types@npm:5.0.0" - dependencies: - hey-listen: "npm:^1.0.8" - tslib: "npm:^2.1.0" - checksum: 10c0/a7b693269d48c0cab73da6c88eade845e71b5f330541a9ccb6a065468739d9bafdeb34f94fb89581931371275846da53e35989218cbc0c2d1a38f127e4d765fd - languageName: node - linkType: hard - "styled-components@npm:^6.1.0, styled-components@npm:^6.1.11": version: 6.4.2 resolution: "styled-components@npm:6.4.2" @@ -53949,13 +53708,6 @@ __metadata: languageName: node linkType: hard -"toggle-selection@npm:^1.0.6": - version: 1.0.6 - resolution: "toggle-selection@npm:1.0.6" - checksum: 10c0/f2cf1f2c70f374fd87b0cdc8007453ba9e981c4305a8bf4eac10a30e62ecdfd28bca7d18f8f15b15a506bf8a7bfb20dbe3539f0fcf2a2c8396c1a78d53e1f179 - languageName: node - linkType: hard - "toidentifier@npm:1.0.1, toidentifier@npm:~1.0.1": version: 1.0.1 resolution: "toidentifier@npm:1.0.1" @@ -54314,7 +54066,7 @@ __metadata: languageName: node linkType: hard -"tslib@npm:2.8.1, tslib@npm:^2.0.0, tslib@npm:^2.0.1, tslib@npm:^2.0.3, tslib@npm:^2.1.0, tslib@npm:^2.2.0, tslib@npm:^2.3.0, tslib@npm:^2.3.1, tslib@npm:^2.4.0, tslib@npm:^2.5.0, tslib@npm:^2.5.2, tslib@npm:^2.6.0, tslib@npm:^2.6.2, tslib@npm:^2.6.3, tslib@npm:^2.7.0, tslib@npm:^2.8.0, tslib@npm:^2.8.1": +"tslib@npm:2.8.1, tslib@npm:^2.0.0, tslib@npm:^2.0.1, tslib@npm:^2.0.3, tslib@npm:^2.1.0, tslib@npm:^2.2.0, tslib@npm:^2.3.0, tslib@npm:^2.4.0, tslib@npm:^2.5.0, tslib@npm:^2.5.2, tslib@npm:^2.6.0, tslib@npm:^2.6.2, tslib@npm:^2.6.3, tslib@npm:^2.7.0, tslib@npm:^2.8.0, tslib@npm:^2.8.1": version: 2.8.1 resolution: "tslib@npm:2.8.1" checksum: 10c0/9c4759110a19c53f992d9aae23aac5ced636e99887b51b9e61def52611732872ff7668757d4e4c61f19691e36f4da981cd9485e869b4a7408d689f6bf1f14e62 @@ -54450,8 +54202,8 @@ __metadata: marked: "npm:^5.0.0" node-loader: "npm:^2.1.0" openai: "npm:^4.97.0" - react: "npm:^19.1.0" - react-dom: "npm:^19.1.0" + react: "npm:^19.2.0" + react-dom: "npm:^19.2.0" react-markdown: "npm:^10.1.0" style-loader: "npm:^3.3.4" zod: "npm:^3.25.76" @@ -54488,8 +54240,8 @@ __metadata: "@react-email/components": "npm:^0.5.3" "@react-email/ui": "npm:6.5.0" "@tiptap/core": "npm:^3.4.2" - "@types/react": "npm:^19" - "@types/react-dom": "npm:^19" + "@types/react": "npm:^19.2.0" + "@types/react-dom": "npm:^19.2.0" "@typescript/native-preview": "npm:^7.0.0-dev.20260116.1" "@vitejs/plugin-react-swc": "npm:^4.3.1" react-email: "npm:6.5.0" @@ -54517,14 +54269,14 @@ __metadata: "@storybook/addon-vitest": "npm:^10.2.13" "@storybook/react-vite": "npm:^10.2.13" "@types/node": "npm:^24.0.0" - "@types/react": "npm:^18.2.39" - "@types/react-dom": "npm:^18.2.15" + "@types/react": "npm:^19.2.0" + "@types/react-dom": "npm:^19.2.0" "@typescript/native-preview": "npm:^7.0.0-dev.20260116.1" "@vitest/browser-playwright": "npm:^4.1.0" playwright: "npm:^1.60.0" prettier: "npm:^3.1.1" - react: "npm:^18.2.0" - react-dom: "npm:^18.2.0" + react: "npm:^19.2.0" + react-dom: "npm:^19.2.0" storybook: "npm:^10.2.13" styled-components: "npm:^6.1.0" ts-morph: "npm:^25.0.0" @@ -54555,14 +54307,15 @@ __metadata: "@cyntler/react-doc-viewer": "npm:^1.17.0" "@dagrejs/dagre": "npm:^1.1.8" "@dnd-kit/react": "npm:^0.3.2" + "@dr.pogodin/react-helmet": "npm:^3.2.2" "@floating-ui/react": "npm:^0.24.3" - "@graphiql/plugin-explorer": "npm:^1.0.2" - "@graphiql/react": "npm:^0.23.0" + "@graphiql/plugin-explorer": "npm:^5.1.2" + "@graphiql/react": "npm:^0.37.6" "@graphql-codegen/cli": "npm:^6.3.1" "@graphql-codegen/typed-document-node": "npm:^6.1.8" "@graphql-codegen/typescript": "npm:^5.0.10" "@graphql-codegen/typescript-operations": "npm:^5.1.0" - "@hello-pangea/dnd": "npm:^16.2.0" + "@hello-pangea/dnd": "npm:^18.0.1" "@hookform/resolvers": "npm:^5.2.2" "@lingui/cli": "npm:^5.9.5" "@lingui/core": "npm:^5.9.5" @@ -54616,7 +54369,6 @@ __metadata: "@types/js-cookie": "npm:^3.0.3" "@types/json-logic-js": "npm:^2" "@types/marked": "npm:^6.0.0" - "@types/react-datepicker": "npm:^6.2.0" "@types/react-grid-layout": "npm:^1" "@types/uuid": "npm:^9.0.2" "@vitejs/plugin-react-swc": "npm:^4.3.1" @@ -54638,7 +54390,7 @@ __metadata: file-saver: "npm:^2.0.5" framer-motion: "npm:^11.18.0" fuse.js: "npm:^7.1.0" - graphiql: "npm:^3.1.1" + graphiql: "npm:^5.2.3" graphql: "npm:16.8.1" graphql-sse: "npm:^2.5.4" graphql-tag: "npm:^2.12.6" @@ -54674,14 +54426,13 @@ __metadata: pluralize: "npm:^8.0.0" prettier: "npm:^3.1.1" qs: "npm:^6.15.2" - react: "npm:^18.2.0" - react-data-grid: "npm:7.0.0-beta.13" - react-datepicker: "npm:^6.7.1" - react-dom: "npm:^18.2.0" + react: "npm:^19.2.0" + react-data-grid: "npm:7.0.0-beta.59" + react-datepicker: "npm:^9.1.0" + react-dom: "npm:^19.2.0" react-dropzone: "npm:^14.2.3" react-error-boundary: "npm:^4.0.11" react-grid-layout: "npm:^1.5.2" - react-helmet-async: "npm:^1.3.0" react-hook-form: "npm:^7.45.1" react-hotkeys-hook: "npm:^4.4.4" react-imask: "npm:^7.6.0" @@ -54732,8 +54483,8 @@ __metadata: "@prettier/sync": "npm:^0.5.2" "@sniptt/guards": "npm:^0.2.0" "@types/node": "npm:^24.0.0" - "@types/react": "npm:^19.0.0" - "@types/react-dom": "npm:^19.0.0" + "@types/react": "npm:^19.2.0" + "@types/react-dom": "npm:^19.2.0" "@typescript/native-preview": "npm:^7.0.0-dev.20260116.1" "@vitest/coverage-v8": "npm:^4.0.18" axios: "npm:^1.16.0" @@ -54748,8 +54499,8 @@ __metadata: jsonc-parser: "npm:^3.2.0" preact: "npm:^10.28.3" prettier: "npm:^3.1.1" - react: "npm:^19.0.0" - react-dom: "npm:^19.0.0" + react: "npm:^19.2.0" + react-dom: "npm:^19.2.0" rollup-plugin-dts: "npm:^6.4.1" tinyglobby: "npm:^0.2.15" ts-morph: "npm:^25.0.0" @@ -54871,7 +54622,7 @@ __metadata: "@types/passport-microsoft": "npm:^2.1.0" "@types/pluralize": "npm:^0.0.33" "@types/psl": "npm:^1.1.3" - "@types/react": "npm:^18.2.39" + "@types/react": "npm:^19.2.0" "@types/supertest": "npm:^2.0.11" "@types/unzipper": "npm:^0" "@types/uuid": "npm:^9.0.2" @@ -54955,8 +54706,8 @@ __metadata: postal-mime: "npm:^2.6.1" prettier: "npm:^3.1.1" psl: "npm:^1.9.0" - react: "npm:18.3.1" - react-dom: "npm:18.3.1" + react: "npm:^19.2.0" + react-dom: "npm:^19.2.0" redis: "npm:^4.7.0" reflect-metadata: "npm:0.2.2" rimraf: "npm:^5.0.5" @@ -55040,7 +54791,7 @@ __metadata: "@babel/preset-env": "npm:^7.26.9" "@babel/preset-react": "npm:^7.26.3" "@babel/preset-typescript": "npm:^7.24.6" - "@linaria/react": "npm:^6.2.1" + "@linaria/react": "npm:^7.0.1" "@monaco-editor/react": "npm:^4.7.0" "@prettier/sync": "npm:^0.5.2" "@radix-ui/colors": "npm:^3.0.0" @@ -55057,8 +54808,8 @@ __metadata: "@testing-library/react": "npm:^16.3.0" "@types/babel__preset-env": "npm:^7" "@types/jest": "npm:^30.0.0" - "@types/react": "npm:^18.2.39" - "@types/react-dom": "npm:^18.2.15" + "@types/react": "npm:^19.2.0" + "@types/react-dom": "npm:^19.2.0" "@vitejs/plugin-react-swc": "npm:^4.3.1" "@wyw-in-js/babel-preset": "npm:^1.1.0" "@wyw-in-js/vite": "npm:^1.1.0" @@ -55073,8 +54824,8 @@ __metadata: jest-environment-jsdom: "npm:30.0.0-beta.3" jotai: "npm:^2.17.1" prettier: "npm:^3.1.1" - react: "npm:^18.2.0" - react-dom: "npm:^18.2.0" + react: "npm:^19.2.0" + react-dom: "npm:^19.2.0" react-responsive: "npm:^9.0.2" react-router-dom: "npm:^6.4.4" react-tooltip: "npm:^5.13.1" @@ -55116,8 +54867,8 @@ __metadata: "@testing-library/jest-dom": "npm:^6.6.3" "@testing-library/react": "npm:^16.3.0" "@types/jest": "npm:^30.0.0" - "@types/react": "npm:^18.2.39" - "@types/react-dom": "npm:^18.2.15" + "@types/react": "npm:^19.2.0" + "@types/react-dom": "npm:^19.2.0" "@vitejs/plugin-react-swc": "npm:^4.3.1" "@vitest/browser-playwright": "npm:^4.1.0" clsx: "npm:^2.1.1" @@ -55129,8 +54880,8 @@ __metadata: jest-environment-jsdom: "npm:30.0.0-beta.3" jotai: "npm:^2.17.1" prettier: "npm:^3.1.1" - react: "npm:^18.2.0" - react-dom: "npm:^18.2.0" + react: "npm:^19.2.0" + react-dom: "npm:^19.2.0" react-responsive: "npm:^9.0.2" react-router-dom: "npm:^6.4.4" sass: "npm:^1.83.0" @@ -55184,8 +54935,8 @@ __metadata: "@tabler/icons-react": "npm:^3.41.1" "@types/jest": "npm:^30.0.0" "@types/node": "npm:^20" - "@types/react": "npm:^19" - "@types/react-dom": "npm:^19" + "@types/react": "npm:^19.2.0" + "@types/react-dom": "npm:^19.2.0" "@types/serialize-javascript": "npm:^5.0.4" "@types/three": "npm:^0.183.1" "@wyw-in-js/babel-preset": "npm:^0.8.1" @@ -55196,8 +54947,8 @@ __metadata: jest-environment-node: "npm:^29.4.1" next: "npm:^16.2.6" next-with-linaria: "npm:^1.3.0" - react: "npm:19.2.3" - react-dom: "npm:19.2.3" + react: "npm:^19.2.0" + react-dom: "npm:^19.2.0" react-markdown: "npm:^10.1.0" remark-gfm: "npm:^4.0.1" serialize-javascript: "npm:^7.0.5" @@ -55243,8 +54994,8 @@ __metadata: "@nx/storybook": "npm:22.7.5" "@nx/vite": "npm:22.7.5" "@nx/web": "npm:22.7.5" - "@types/react": "npm:^18.2.39" - "@types/react-dom": "npm:^18.2.15" + "@types/react": "npm:^19.2.0" + "@types/react-dom": "npm:^19.2.0" "@yarnpkg/types": "npm:^4.0.0" concurrently: "npm:^8.2.2" http-server: "npm:^14.1.1" @@ -56387,21 +56138,6 @@ __metadata: languageName: node linkType: hard -"use-callback-ref@npm:^1.3.0": - version: 1.3.2 - resolution: "use-callback-ref@npm:1.3.2" - dependencies: - tslib: "npm:^2.0.0" - peerDependencies: - "@types/react": ^16.8.0 || ^17.0.0 || ^18.0.0 - react: ^16.8.0 || ^17.0.0 || ^18.0.0 - peerDependenciesMeta: - "@types/react": - optional: true - checksum: 10c0/d232c37160fe3970c99255da19b5fb5299fb5926a5d6141d928a87feb47732c323d29be2f8137d3b1e5499c70d284cd1d9cfad703cc58179db8be24d7dd8f1f2 - languageName: node - linkType: hard - "use-callback-ref@npm:^1.3.3": version: 1.3.3 resolution: "use-callback-ref@npm:1.3.3" @@ -56461,31 +56197,6 @@ __metadata: languageName: node linkType: hard -"use-memo-one@npm:^1.1.3": - version: 1.1.3 - resolution: "use-memo-one@npm:1.1.3" - peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 - checksum: 10c0/3d596e65a6b47b2f1818061599738e00daad1f9a9bb4e5ce1f014b20a35b297e50fe4bf1d8c1699ab43ea97f01f84649a736c15ceff96de83bfa696925f6cc6b - languageName: node - linkType: hard - -"use-sidecar@npm:^1.1.2": - version: 1.1.2 - resolution: "use-sidecar@npm:1.1.2" - dependencies: - detect-node-es: "npm:^1.1.0" - tslib: "npm:^2.0.0" - peerDependencies: - "@types/react": ^16.9.0 || ^17.0.0 || ^18.0.0 - react: ^16.8.0 || ^17.0.0 || ^18.0.0 - peerDependenciesMeta: - "@types/react": - optional: true - checksum: 10c0/89f0018fd9aee1fc17c85ac18c4bf8944d460d453d0d0e04ddbc8eaddf3fa591e9c74a1f8a438a1bff368a7a2417fab380bdb3df899d2194c4375b0982736de0 - languageName: node - linkType: hard - "use-sidecar@npm:^1.1.3": version: 1.1.3 resolution: "use-sidecar@npm:1.1.3" @@ -56520,7 +56231,7 @@ __metadata: languageName: node linkType: hard -"use-sync-external-store@npm:^1.0.0, use-sync-external-store@npm:^1.4.0": +"use-sync-external-store@npm:^1.4.0": version: 1.5.0 resolution: "use-sync-external-store@npm:1.5.0" peerDependencies: @@ -58635,6 +58346,27 @@ __metadata: languageName: node linkType: hard +"zustand@npm:^5": + version: 5.0.14 + resolution: "zustand@npm:5.0.14" + peerDependencies: + "@types/react": ">=18.0.0" + immer: ">=9.0.6" + react: ">=18.0.0" + use-sync-external-store: ">=1.2.0" + peerDependenciesMeta: + "@types/react": + optional: true + immer: + optional: true + react: + optional: true + use-sync-external-store: + optional: true + checksum: 10c0/89de0c8119f1e0861b2f896a0b4df0d67994a373ecee02628d4e7b97cee1885207f646917d3ede395c3a5083316d48846855cfbc84aced7cd23a6db3238930a8 + languageName: node + linkType: hard + "zwitch@npm:^2.0.0, zwitch@npm:^2.0.4": version: 2.0.4 resolution: "zwitch@npm:2.0.4"