From 8c0680b918354121b5376cf0226e7f0a892cfc88 Mon Sep 17 00:00:00 2001 From: Abdullah <125115953+mabdullahabaid@users.noreply.github.com> Date: Wed, 13 Mar 2024 18:21:18 +0500 Subject: [PATCH] Setup the foundation for Twenty UI library. (#4423) * feat: create a separate package for twenty-ui, extract the pill component with hard-coded theme values into it, and use the component inside twenty-front to complete the setup * feat: extract the light and the dark theme into twenty-ui and update the AppThemeProvider component inside twenty-front to consume themes from twenty-ui * fix: create a decorator inside preview.tsx to provide a default theme to storybook development server * fix: remove redundant type declarations and revert back the naming convention for theme declarations * fix: introduce a default value for pill label within the story for development server * fix: introduce the nx script into package.json for twenty-ui and resolve imports for theme type within the package * fix: remove the pill component from the twenty-front package along with the story for it * fix: revert the package versions to those before running the nx cli command for storybook init * feat: update readme to include details for building the ui library and starting the storybook development server * fix: include details about twenty-ui inside jest.config for twenty-front to complete front-jest job * - Added preview head for font - Added theme addon for light/dark switch - Added ComponentDecorator --------- Co-authored-by: Lucas Bordeau --- .gitignore | 4 +- nx.json | 47 +- package.json | 15 +- packages/twenty-front/jest.config.ts | 1 + .../components/SettingsNavigationCard.tsx | 2 +- .../ui/input/button/components/Button.tsx | 2 +- .../modules/ui/layout/tab/components/Tab.tsx | 2 +- .../ui/theme/components/AppThemeProvider.tsx | 4 +- .../SettingsIntegrationComponent.tsx | 2 +- packages/twenty-front/tsconfig.json | 5 +- packages/twenty-front/tsup.ui.index.tsx | 1 - packages/twenty-ui/.eslintrc.json | 25 + packages/twenty-ui/.gitignore | 1 + packages/twenty-ui/.storybook/main.tsx | 24 + .../twenty-ui/.storybook/preview-head.html | 34 + packages/twenty-ui/.storybook/preview.tsx | 21 + packages/twenty-ui/README.md | 15 + packages/twenty-ui/jest.config.ts | 11 + packages/twenty-ui/package.json | 12 + packages/twenty-ui/project.json | 27 + .../src/components/Pill/Pill.stories.ts} | 12 +- .../src/components/Pill}/Pill.tsx | 7 +- packages/twenty-ui/src/components/index.ts | 1 + packages/twenty-ui/src/emotion.d.ts | 5 + packages/twenty-ui/src/index.ts | 2 + .../src/testing/ComponentStorybookLayout.tsx | 28 + .../testing/decorators/ComponentDecorator.tsx | 13 + .../twenty-ui/src/theme/assets/dark-noise.jpg | Bin 0 -> 26053 bytes .../src/theme/assets/light-noise.png | Bin 0 -> 9657 bytes .../src/theme/constants/AccentDark.ts | 10 + .../src/theme/constants/AccentLight.ts | 10 + .../src/theme/constants/Animation.ts | 9 + .../src/theme/constants/BackgroundDark.ts | 27 + .../src/theme/constants/BackgroundLight.ts | 27 + .../twenty-ui/src/theme/constants/Blur.ts | 4 + .../src/theme/constants/BorderCommon.ts | 10 + .../src/theme/constants/BorderDark.ts | 15 + .../src/theme/constants/BorderLight.ts | 15 + .../src/theme/constants/BoxShadowDark.ts | 18 + .../src/theme/constants/BoxShadowLight.ts | 21 + .../twenty-ui/src/theme/constants/Colors.ts | 7 + .../src/theme/constants/FontCommon.ts | 17 + .../twenty-ui/src/theme/constants/FontDark.ts | 16 + .../src/theme/constants/FontLight.ts | 16 + .../src/theme/constants/GrayScale.ts | 22 + .../src/theme/constants/HoverBackground.ts | 8 + .../twenty-ui/src/theme/constants/Icon.ts | 13 + .../src/theme/constants/MainColorNames.ts | 5 + .../src/theme/constants/MainColors.ts | 15 + .../src/theme/constants/MobileViewport.ts | 1 + .../twenty-ui/src/theme/constants/Modal.ts | 7 + .../src/theme/constants/OverlayBackground.ts | 9 + .../twenty-ui/src/theme/constants/Rgba.ts | 8 + .../src/theme/constants/SecondaryColors.ts | 106 ++ .../twenty-ui/src/theme/constants/TagDark.ts | 28 + .../twenty-ui/src/theme/constants/TagLight.ts | 28 + .../twenty-ui/src/theme/constants/Text.ts | 13 + .../src/theme/constants/TextInputStyle.ts | 21 + .../src/theme/constants/ThemeCommon.ts | 44 + .../src/theme/constants/ThemeDark.ts | 22 + .../src/theme/constants/ThemeLight.ts | 20 + packages/twenty-ui/src/theme/index.ts | 5 + .../src/theme/provider/ThemeProvider.tsx | 16 + packages/twenty-ui/tsconfig.json | 26 + packages/twenty-ui/tsconfig.lib.json | 18 + packages/twenty-ui/tsconfig.spec.json | 14 + packages/twenty-ui/tsconfig.storybook.json | 32 + packages/twenty-ui/vite.config.ts | 47 + tsconfig.base.json | 3 +- yarn.lock | 1671 ++++++++++++++++- 70 files changed, 2601 insertions(+), 146 deletions(-) create mode 100644 packages/twenty-ui/.eslintrc.json create mode 100644 packages/twenty-ui/.gitignore create mode 100644 packages/twenty-ui/.storybook/main.tsx create mode 100644 packages/twenty-ui/.storybook/preview-head.html create mode 100644 packages/twenty-ui/.storybook/preview.tsx create mode 100644 packages/twenty-ui/README.md create mode 100644 packages/twenty-ui/jest.config.ts create mode 100644 packages/twenty-ui/package.json create mode 100644 packages/twenty-ui/project.json rename packages/{twenty-front/src/modules/ui/display/pill/components/__stories__/Pill.stories.tsx => twenty-ui/src/components/Pill/Pill.stories.ts} (56%) rename packages/{twenty-front/src/modules/ui/display/pill/components => twenty-ui/src/components/Pill}/Pill.tsx (82%) create mode 100644 packages/twenty-ui/src/components/index.ts create mode 100644 packages/twenty-ui/src/emotion.d.ts create mode 100644 packages/twenty-ui/src/index.ts create mode 100644 packages/twenty-ui/src/testing/ComponentStorybookLayout.tsx create mode 100644 packages/twenty-ui/src/testing/decorators/ComponentDecorator.tsx create mode 100644 packages/twenty-ui/src/theme/assets/dark-noise.jpg create mode 100644 packages/twenty-ui/src/theme/assets/light-noise.png create mode 100644 packages/twenty-ui/src/theme/constants/AccentDark.ts create mode 100644 packages/twenty-ui/src/theme/constants/AccentLight.ts create mode 100644 packages/twenty-ui/src/theme/constants/Animation.ts create mode 100644 packages/twenty-ui/src/theme/constants/BackgroundDark.ts create mode 100644 packages/twenty-ui/src/theme/constants/BackgroundLight.ts create mode 100644 packages/twenty-ui/src/theme/constants/Blur.ts create mode 100644 packages/twenty-ui/src/theme/constants/BorderCommon.ts create mode 100644 packages/twenty-ui/src/theme/constants/BorderDark.ts create mode 100644 packages/twenty-ui/src/theme/constants/BorderLight.ts create mode 100644 packages/twenty-ui/src/theme/constants/BoxShadowDark.ts create mode 100644 packages/twenty-ui/src/theme/constants/BoxShadowLight.ts create mode 100644 packages/twenty-ui/src/theme/constants/Colors.ts create mode 100644 packages/twenty-ui/src/theme/constants/FontCommon.ts create mode 100644 packages/twenty-ui/src/theme/constants/FontDark.ts create mode 100644 packages/twenty-ui/src/theme/constants/FontLight.ts create mode 100644 packages/twenty-ui/src/theme/constants/GrayScale.ts create mode 100644 packages/twenty-ui/src/theme/constants/HoverBackground.ts create mode 100644 packages/twenty-ui/src/theme/constants/Icon.ts create mode 100644 packages/twenty-ui/src/theme/constants/MainColorNames.ts create mode 100644 packages/twenty-ui/src/theme/constants/MainColors.ts create mode 100644 packages/twenty-ui/src/theme/constants/MobileViewport.ts create mode 100644 packages/twenty-ui/src/theme/constants/Modal.ts create mode 100644 packages/twenty-ui/src/theme/constants/OverlayBackground.ts create mode 100644 packages/twenty-ui/src/theme/constants/Rgba.ts create mode 100644 packages/twenty-ui/src/theme/constants/SecondaryColors.ts create mode 100644 packages/twenty-ui/src/theme/constants/TagDark.ts create mode 100644 packages/twenty-ui/src/theme/constants/TagLight.ts create mode 100644 packages/twenty-ui/src/theme/constants/Text.ts create mode 100644 packages/twenty-ui/src/theme/constants/TextInputStyle.ts create mode 100644 packages/twenty-ui/src/theme/constants/ThemeCommon.ts create mode 100644 packages/twenty-ui/src/theme/constants/ThemeDark.ts create mode 100644 packages/twenty-ui/src/theme/constants/ThemeLight.ts create mode 100644 packages/twenty-ui/src/theme/index.ts create mode 100644 packages/twenty-ui/src/theme/provider/ThemeProvider.tsx create mode 100644 packages/twenty-ui/tsconfig.json create mode 100644 packages/twenty-ui/tsconfig.lib.json create mode 100644 packages/twenty-ui/tsconfig.spec.json create mode 100644 packages/twenty-ui/tsconfig.storybook.json create mode 100644 packages/twenty-ui/vite.config.ts diff --git a/.gitignore b/.gitignore index 945b498ddc..59a948c8ee 100644 --- a/.gitignore +++ b/.gitignore @@ -19,4 +19,6 @@ coverage .vercel -**/**/logs/** \ No newline at end of file +**/**/logs/** + +storybook-static \ No newline at end of file diff --git a/nx.json b/nx.json index f2e89e086f..c628defb8e 100644 --- a/nx.json +++ b/nx.json @@ -2,38 +2,26 @@ "targetDefaults": { "build": { "cache": true, - "dependsOn": [ - "^build" - ] + "dependsOn": ["^build"] }, "start": { "cache": true, - "dependsOn": [ - "^build" - ] + "dependsOn": ["^build"] }, "lint": { "cache": true }, "test": { "cache": true, - "dependsOn": [ - "^build" - ] + "dependsOn": ["^build"] }, "test:e2e": { "cache": true, - "dependsOn": [ - "^build" - ] + "dependsOn": ["^build"] }, "@nx/jest:jest": { "cache": true, - "inputs": [ - "default", - "^default", - "{workspaceRoot}/jest.preset.js" - ], + "inputs": ["default", "^default", "{workspaceRoot}/jest.preset.js"], "options": { "passWithNoTests": true }, @@ -46,10 +34,7 @@ }, "@nx/vite:test": { "cache": true, - "inputs": [ - "default", - "^default" - ] + "inputs": ["default", "^default"] } }, "installation": { @@ -67,5 +52,23 @@ "unitTestRunner": "none" } } + }, + "plugins": [ + { + "plugin": "@nx/storybook/plugin", + "options": { + "buildStorybookTargetName": "build-storybook", + "serveStorybookTargetName": "storybook", + "testStorybookTargetName": "test-storybook", + "staticStorybookTargetName": "static-storybook" + } + } + ], + "tasksRunnerOptions": { + "default": { + "options": { + "cacheableOperations": ["build-storybook"] + } + } } -} \ No newline at end of file +} diff --git a/package.json b/package.json index 9fa6972b7b..da236e15ec 100644 --- a/package.json +++ b/package.json @@ -51,6 +51,7 @@ "@sentry/tracing": "^7.99.0", "@sniptt/guards": "^0.2.0", "@stoplight/elements": "^8.0.5", + "@storybook/icons": "^1.2.9", "@swc/jest": "^0.2.29", "@tabler/icons-react": "^2.44.0", "@types/facepaint": "^1.2.5", @@ -192,22 +193,28 @@ "@nx/jest": "17.2.8", "@nx/js": "17.2.8", "@nx/react": "17.2.8", + "@nx/storybook": "^17.2.8", "@nx/vite": "17.2.8", + "@nx/web": "17.2.8", "@storybook/addon-actions": "^7.6.3", "@storybook/addon-coverage": "^1.0.0", "@storybook/addon-essentials": "^7.6.7", "@storybook/addon-interactions": "^7.6.7", "@storybook/addon-links": "^7.6.7", "@storybook/addon-onboarding": "^1.0.10", - "@storybook/addon-themes": "^7.6.7", + "@storybook/addon-themes": "^8.0.0", "@storybook/blocks": "^7.6.3", + "@storybook/core-server": "7.6.3", + "@storybook/jest": "^0.2.3", "@storybook/react": "^7.6.3", "@storybook/react-vite": "^7.6.3", "@storybook/test": "^7.6.3", "@storybook/test-runner": "^0.16.0", + "@storybook/testing-library": "^0.2.2", "@stylistic/eslint-plugin": "^1.5.0", "@swc-node/register": "~1.6.7", "@swc/core": "~1.3.100", + "@swc/helpers": "~0.5.2", "@testing-library/jest-dom": "^6.1.5", "@testing-library/react": "14.0.0", "@types/apollo-upload-client": "^17.0.2", @@ -245,6 +252,7 @@ "@typescript-eslint/parser": "^6.10.0", "@typescript-eslint/utils": "^6.9.1", "@vitejs/plugin-react-swc": "^3.5.0", + "@vitest/ui": "~0.34.6", "chromatic": "^6.18.0", "concurrently": "^8.2.2", "cross-var": "^1.1.0", @@ -268,6 +276,7 @@ "http-server": "^14.1.1", "jest": "29.7.0", "jest-environment-jsdom": "29.7.0", + "jest-environment-node": "^29.4.1", "jest-fetch-mock": "^3.0.3", "jsdom": "~22.1.0", "msw": "^2.0.11", @@ -290,7 +299,8 @@ "vite": "^5.0.0", "vite-plugin-checker": "^0.6.2", "vite-plugin-dts": "~2.3.0", - "vite-plugin-svgr": "^4.2.0" + "vite-plugin-svgr": "^4.2.0", + "vitest": "~0.34.6" }, "engines": { "node": "^18.17.1", @@ -315,6 +325,7 @@ "packages/twenty-docs", "packages/twenty-server", "packages/twenty-emails", + "packages/twenty-ui", "packages/twenty-utils", "packages/twenty-zapier", "packages/twenty-website", diff --git a/packages/twenty-front/jest.config.ts b/packages/twenty-front/jest.config.ts index 77e9ca3575..efcfabc111 100644 --- a/packages/twenty-front/jest.config.ts +++ b/packages/twenty-front/jest.config.ts @@ -9,6 +9,7 @@ export default { moduleNameMapper: { '~/(.+)': '/src/$1', '@/(.+)': '/src/modules/$1', + 'twenty-ui': '/../twenty-ui/src/index.ts', '@testing/(.+)': '/src/testing/$1', '\\.(jpg|jpeg|png|gif|webp|svg|svg\\?react)$': '/__mocks__/imageMock.js', diff --git a/packages/twenty-front/src/modules/settings/components/SettingsNavigationCard.tsx b/packages/twenty-front/src/modules/settings/components/SettingsNavigationCard.tsx index f5ada9b657..8fac346398 100644 --- a/packages/twenty-front/src/modules/settings/components/SettingsNavigationCard.tsx +++ b/packages/twenty-front/src/modules/settings/components/SettingsNavigationCard.tsx @@ -1,10 +1,10 @@ import { ReactNode } from 'react'; import { useTheme } from '@emotion/react'; import styled from '@emotion/styled'; +import { Pill } from 'twenty-ui'; import { IconChevronRight } from '@/ui/display/icon'; import { IconComponent } from '@/ui/display/icon/types/IconComponent'; -import { Pill } from '@/ui/display/pill/components/Pill'; import { Card } from '@/ui/layout/card/components/Card'; import { CardContent } from '@/ui/layout/card/components/CardContent'; diff --git a/packages/twenty-front/src/modules/ui/input/button/components/Button.tsx b/packages/twenty-front/src/modules/ui/input/button/components/Button.tsx index 4c3a3fc476..13bc034414 100644 --- a/packages/twenty-front/src/modules/ui/input/button/components/Button.tsx +++ b/packages/twenty-front/src/modules/ui/input/button/components/Button.tsx @@ -1,9 +1,9 @@ import React from 'react'; import { css, useTheme } from '@emotion/react'; import styled from '@emotion/styled'; +import { Pill } from 'twenty-ui'; import { IconComponent } from '@/ui/display/icon/types/IconComponent'; -import { Pill } from '@/ui/display/pill/components/Pill'; export type ButtonSize = 'medium' | 'small'; export type ButtonPosition = 'standalone' | 'left' | 'middle' | 'right'; diff --git a/packages/twenty-front/src/modules/ui/layout/tab/components/Tab.tsx b/packages/twenty-front/src/modules/ui/layout/tab/components/Tab.tsx index e83aa260a0..240cc1666a 100644 --- a/packages/twenty-front/src/modules/ui/layout/tab/components/Tab.tsx +++ b/packages/twenty-front/src/modules/ui/layout/tab/components/Tab.tsx @@ -1,9 +1,9 @@ import * as React from 'react'; import { useTheme } from '@emotion/react'; import styled from '@emotion/styled'; +import { Pill } from 'twenty-ui'; import { IconComponent } from '@/ui/display/icon/types/IconComponent'; -import { Pill } from '@/ui/display/pill/components/Pill'; type TabProps = { id: string; diff --git a/packages/twenty-front/src/modules/ui/theme/components/AppThemeProvider.tsx b/packages/twenty-front/src/modules/ui/theme/components/AppThemeProvider.tsx index d1f14d2623..e4d03580a4 100644 --- a/packages/twenty-front/src/modules/ui/theme/components/AppThemeProvider.tsx +++ b/packages/twenty-front/src/modules/ui/theme/components/AppThemeProvider.tsx @@ -1,7 +1,5 @@ import { ThemeProvider } from '@emotion/react'; - -import { THEME_DARK } from '@/ui/theme/constants/ThemeDark'; -import { THEME_LIGHT } from '@/ui/theme/constants/ThemeLight'; +import { THEME_DARK, THEME_LIGHT } from 'twenty-ui'; import { useColorScheme } from '../hooks/useColorScheme'; import { useSystemColorScheme } from '../hooks/useSystemColorScheme'; diff --git a/packages/twenty-front/src/pages/settings/integrations/SettingsIntegrationComponent.tsx b/packages/twenty-front/src/pages/settings/integrations/SettingsIntegrationComponent.tsx index af01e5b65d..be6596f6d1 100644 --- a/packages/twenty-front/src/pages/settings/integrations/SettingsIntegrationComponent.tsx +++ b/packages/twenty-front/src/pages/settings/integrations/SettingsIntegrationComponent.tsx @@ -1,7 +1,7 @@ import styled from '@emotion/styled'; +import { Pill } from 'twenty-ui'; import { IconArrowUpRight, IconBolt } from '@/ui/display/icon'; -import { Pill } from '@/ui/display/pill/components/Pill'; import { Button } from '@/ui/input/button/components/Button'; import { SettingsIntegration } from '~/pages/settings/integrations/types/SettingsIntegration'; diff --git a/packages/twenty-front/tsconfig.json b/packages/twenty-front/tsconfig.json index 1b23f7601d..d456546924 100644 --- a/packages/twenty-front/tsconfig.json +++ b/packages/twenty-front/tsconfig.json @@ -10,7 +10,8 @@ "baseUrl": ".", "paths": { "@/*": ["src/modules/*"], - "~/*": ["src/*"] + "~/*": ["src/*"], + "twenty-ui": ["../twenty-ui/src/index.ts"] }, /* Bundler mode */ @@ -27,7 +28,7 @@ "noUnusedLocals": false, "noUnusedParameters": false, "noFallthroughCasesInSwitch": true, - "forceConsistentCasingInFileNames": true + "forceConsistentCasingInFileNames": true, }, "files": [], "include": [], diff --git a/packages/twenty-front/tsup.ui.index.tsx b/packages/twenty-front/tsup.ui.index.tsx index a2943a2d0d..e0e520ce6c 100644 --- a/packages/twenty-front/tsup.ui.index.tsx +++ b/packages/twenty-front/tsup.ui.index.tsx @@ -15,7 +15,6 @@ export * from './src/modules/ui/display/checkmark/components/AnimatedCheckmark' export * from './src/modules/ui/display/chip/components/Chip' export * from './src/modules/ui/display/chip/components/EntityChip' export * from './src/modules/ui/display/icon/components/IconAddressBook' -export * from './src/modules/ui/display/pill/components/Pill' export * from './src/modules/ui/display/tag/components/Tag' export * from './src/modules/ui/display/tooltip/AppTooltip' export * from './src/modules/ui/display/tooltip/OverflowingTextWithTooltip' diff --git a/packages/twenty-ui/.eslintrc.json b/packages/twenty-ui/.eslintrc.json new file mode 100644 index 0000000000..4ea0d7f3b9 --- /dev/null +++ b/packages/twenty-ui/.eslintrc.json @@ -0,0 +1,25 @@ +{ + "extends": ["../../.eslintrc.js"], + "ignorePatterns": ["!**/*", "storybook-static"], + "overrides": [ + { + "files": ["*.ts", "*.tsx", "*.js", "*.jsx"], + "rules": {} + }, + { + "files": ["*.ts", "*.tsx"], + "rules": {} + }, + { + "files": ["*.js", "*.jsx"], + "rules": {} + }, + { + "files": ["*.json"], + "parser": "jsonc-eslint-parser", + "rules": { + "@nx/dependency-checks": "error" + } + } + ] +} diff --git a/packages/twenty-ui/.gitignore b/packages/twenty-ui/.gitignore new file mode 100644 index 0000000000..53c37a1660 --- /dev/null +++ b/packages/twenty-ui/.gitignore @@ -0,0 +1 @@ +dist \ No newline at end of file diff --git a/packages/twenty-ui/.storybook/main.tsx b/packages/twenty-ui/.storybook/main.tsx new file mode 100644 index 0000000000..793a8ab757 --- /dev/null +++ b/packages/twenty-ui/.storybook/main.tsx @@ -0,0 +1,24 @@ +import { StorybookConfig } from '@storybook/react-vite'; + +const config: StorybookConfig = { + stories: ['../src/**/*.stories.@(js|jsx|ts|tsx|mdx)'], + addons: [ + '@storybook/addon-essentials', + '@storybook/addon-interactions', + '@storybook/addon-themes', + ], + framework: { + name: '@storybook/react-vite', + options: { + builder: { + viteConfigPath: 'vite.config.ts', + }, + }, + }, +}; + +export default config; + +// To customize your Vite configuration you can use the viteFinal field. +// Check https://storybook.js.org/docs/react/builders/vite#configuration +// and https://nx.dev/recipes/storybook/custom-builder-configs diff --git a/packages/twenty-ui/.storybook/preview-head.html b/packages/twenty-ui/.storybook/preview-head.html new file mode 100644 index 0000000000..732858d597 --- /dev/null +++ b/packages/twenty-ui/.storybook/preview-head.html @@ -0,0 +1,34 @@ + + + + + \ No newline at end of file diff --git a/packages/twenty-ui/.storybook/preview.tsx b/packages/twenty-ui/.storybook/preview.tsx new file mode 100644 index 0000000000..f83a29739a --- /dev/null +++ b/packages/twenty-ui/.storybook/preview.tsx @@ -0,0 +1,21 @@ +import { ThemeProvider } from '@emotion/react'; +import { withThemeFromJSXProvider } from '@storybook/addon-themes'; +import { Preview, ReactRenderer } from '@storybook/react'; + +import { THEME_DARK, THEME_LIGHT } from '../src/theme/index'; + +const preview: Preview = { + // TODO: Add toggle for darkTheme. + decorators: [ + withThemeFromJSXProvider({ + themes: { + light: THEME_LIGHT, + dark: THEME_DARK, + }, + defaultTheme: 'light', + Provider: ThemeProvider, + }), + ], +}; + +export default preview; diff --git a/packages/twenty-ui/README.md b/packages/twenty-ui/README.md new file mode 100644 index 0000000000..dfab0516c5 --- /dev/null +++ b/packages/twenty-ui/README.md @@ -0,0 +1,15 @@ +# Twenty UI + +This library was generated with [Nx](https://nx.dev). + +## Building + +Run `yarn nx build twenty-ui` to build the library. + +## Storybook Server + +Run `yarn nx start twenty-ui` to start the storybook development server on `localhost:6006`. + +## Running unit tests + +Run `yarn nx test twenty-ui` to execute the unit tests via [Jest](https://jestjs.io). diff --git a/packages/twenty-ui/jest.config.ts b/packages/twenty-ui/jest.config.ts new file mode 100644 index 0000000000..36a625c5b3 --- /dev/null +++ b/packages/twenty-ui/jest.config.ts @@ -0,0 +1,11 @@ +/* eslint-disable */ +export default { + displayName: 'twenty-ui', + preset: '../../jest.preset.js', + testEnvironment: 'node', + transform: { + '^.+\\.[tj]s$': ['ts-jest', { tsconfig: '/tsconfig.spec.json' }], + }, + moduleFileExtensions: ['ts', 'js', 'html'], + coverageDirectory: '../../coverage/packages/twenty-ui', +}; diff --git a/packages/twenty-ui/package.json b/packages/twenty-ui/package.json new file mode 100644 index 0000000000..4b514808ac --- /dev/null +++ b/packages/twenty-ui/package.json @@ -0,0 +1,12 @@ +{ + "name": "twenty-ui", + "version": "0.0.1", + "main": "./index.js", + "module": "./index.mjs", + "typings": "./index.d.ts", + "scripts": { + "nx": "NX_DEFAULT_PROJECT=twenty-ui node ../../node_modules/nx/bin/nx.js", + "start": "storybook dev -p 6006", + "build": "storybook build" + } +} diff --git a/packages/twenty-ui/project.json b/packages/twenty-ui/project.json new file mode 100644 index 0000000000..5bfb8cafef --- /dev/null +++ b/packages/twenty-ui/project.json @@ -0,0 +1,27 @@ +{ + "name": "twenty-ui", + "$schema": "../../node_modules/nx/schemas/project-schema.json", + "sourceRoot": "packages/twenty-ui/src", + "projectType": "library", + "targets": { + "build": { + "executor": "@nx/vite:build", + "outputs": ["{options.outputPath}"], + "options": { + "outputPath": "packages/twenty-ui/dist" + } + }, + "lint": { + "executor": "@nx/eslint:lint", + "outputs": ["{options.outputFile}"] + }, + "test": { + "executor": "@nx/jest:jest", + "outputs": ["{workspaceRoot}/coverage/{projectRoot}"], + "options": { + "jestConfig": "packages/twenty-ui/jest.config.ts" + } + } + }, + "tags": [] +} diff --git a/packages/twenty-front/src/modules/ui/display/pill/components/__stories__/Pill.stories.tsx b/packages/twenty-ui/src/components/Pill/Pill.stories.ts similarity index 56% rename from packages/twenty-front/src/modules/ui/display/pill/components/__stories__/Pill.stories.tsx rename to packages/twenty-ui/src/components/Pill/Pill.stories.ts index 5ac65f7a09..d657334cf3 100644 --- a/packages/twenty-front/src/modules/ui/display/pill/components/__stories__/Pill.stories.tsx +++ b/packages/twenty-ui/src/components/Pill/Pill.stories.ts @@ -1,16 +1,20 @@ import { Meta, StoryObj } from '@storybook/react'; -import { ComponentDecorator } from '~/testing/decorators/ComponentDecorator'; +import { ComponentDecorator } from '../../testing/decorators/ComponentDecorator'; -import { Pill } from '../Pill'; +import { Pill } from './Pill'; const meta: Meta = { title: 'UI/Display/Pill/Pill', component: Pill, - decorators: [ComponentDecorator], }; export default meta; type Story = StoryObj; -export const Default: Story = {}; +export const Default: Story = { + args: { + label: 'Soon', + }, + decorators: [ComponentDecorator], +}; diff --git a/packages/twenty-front/src/modules/ui/display/pill/components/Pill.tsx b/packages/twenty-ui/src/components/Pill/Pill.tsx similarity index 82% rename from packages/twenty-front/src/modules/ui/display/pill/components/Pill.tsx rename to packages/twenty-ui/src/components/Pill/Pill.tsx index 414b11db78..80ea62daaa 100644 --- a/packages/twenty-front/src/modules/ui/display/pill/components/Pill.tsx +++ b/packages/twenty-ui/src/components/Pill/Pill.tsx @@ -1,3 +1,4 @@ +import * as React from 'react'; import styled from '@emotion/styled'; type PillProps = { @@ -21,6 +22,6 @@ const StyledPill = styled.span` padding: ${({ theme }) => `0 ${theme.spacing(2)}`}; `; -export const Pill = ({ className, label }: PillProps) => ( - {label} -); +export const Pill = ({ className, label }: PillProps) => { + return {label}; +}; diff --git a/packages/twenty-ui/src/components/index.ts b/packages/twenty-ui/src/components/index.ts new file mode 100644 index 0000000000..9ba7d39e75 --- /dev/null +++ b/packages/twenty-ui/src/components/index.ts @@ -0,0 +1 @@ +export { Pill } from './Pill/Pill'; diff --git a/packages/twenty-ui/src/emotion.d.ts b/packages/twenty-ui/src/emotion.d.ts new file mode 100644 index 0000000000..2a890909fe --- /dev/null +++ b/packages/twenty-ui/src/emotion.d.ts @@ -0,0 +1,5 @@ +import { ThemeType } from './theme'; + +declare module '@emotion/react' { + export interface Theme extends ThemeType {} +} diff --git a/packages/twenty-ui/src/index.ts b/packages/twenty-ui/src/index.ts new file mode 100644 index 0000000000..7f6410404d --- /dev/null +++ b/packages/twenty-ui/src/index.ts @@ -0,0 +1,2 @@ +export * from './components'; +export * from './theme'; diff --git a/packages/twenty-ui/src/testing/ComponentStorybookLayout.tsx b/packages/twenty-ui/src/testing/ComponentStorybookLayout.tsx new file mode 100644 index 0000000000..57fbe65540 --- /dev/null +++ b/packages/twenty-ui/src/testing/ComponentStorybookLayout.tsx @@ -0,0 +1,28 @@ +import styled from '@emotion/styled'; + +const StyledLayout = styled.div<{ width?: number }>` + background: ${({ theme }) => theme.background.primary}; + border: 1px solid ${({ theme }) => theme.border.color.light}; + border-radius: 5px; + + display: flex; + flex-direction: row; + + height: fit-content; + max-width: calc(100% - 40px); + min-width: ${({ width }) => (width ? 'unset' : '300px')}; + padding: 20px; + width: ${({ width }) => (width ? width + 'px' : 'fit-content')}; +`; + +type ComponentStorybookLayoutProps = { + width?: number; + children: JSX.Element; +}; + +export const ComponentStorybookLayout = ({ + width, + children, +}: ComponentStorybookLayoutProps) => ( + {children} +); diff --git a/packages/twenty-ui/src/testing/decorators/ComponentDecorator.tsx b/packages/twenty-ui/src/testing/decorators/ComponentDecorator.tsx new file mode 100644 index 0000000000..70fa9051a8 --- /dev/null +++ b/packages/twenty-ui/src/testing/decorators/ComponentDecorator.tsx @@ -0,0 +1,13 @@ +import { Decorator } from '@storybook/react'; + +import { ComponentStorybookLayout } from '../ComponentStorybookLayout'; + +export const ComponentDecorator: Decorator = (Story, context) => { + const { container } = context.parameters; + + return ( + + + + ); +}; diff --git a/packages/twenty-ui/src/theme/assets/dark-noise.jpg b/packages/twenty-ui/src/theme/assets/dark-noise.jpg new file mode 100644 index 0000000000000000000000000000000000000000..6fc95715e9d469efc3d977509c986163270c8ab9 GIT binary patch literal 26053 zcmbrlX;f2L+bz0wIzk8t7$7mAfdmL4ViK$XLSYCR16mlG(3GH|6_w7YAoWrhLXQDM z4+WGUs0b8AqX=RH(ilQxQ(8qY2!Uz~#TKOivZ>+p!ksFTsBPMxLU3kmgL3p_{i>=-KTStTZ%^TUgiL zuT8f1d1n+RevUDw>|L~c|KHI5A7uY~z@-02$o?0w{}0zRz`~)ej|VpZ`@v_2cLXC2 z_Bw7EvI#mtEMJ{7R?FCpaqM*sUM8_s{{t>sJ>$J)bYzNqG4&_0-TB=dWj6F@D+li7 zL=~oeY@t}X1(bPjN4VpOxdFQ+kNrf0&)`*B;wu$pVZvi)8pD2F3(k$yR@?97Teu3a zI{>~pe{y7|Qu|;+W=@IC&d?Ys(b;=svaSS+0mmKvslG8Xk3zoVlehXkb`eC0^AZsv z*@lxKw_SECe@{8P%?lGkzj}W!gQO*wt%vp1U%h`Dys`uI!}{6hW6U@a2QBe7lM)5W zEbCpTOzZ{VJzVxLvrW|{-;S6b@p>6aT6@Yn>C=z4wOZm}$VYqHQ5TWNz^9)YVxH4u zDHYH+i+8Qw^@*OrGUv7CfBiU0*k%YDN@W+VXA;p+po34P__d^?3$Zzz7@K6AyupwI&sk2XT_1jC zIzm0t%v*1FDB^vR;13l@7M{UNx`$t_Qi-G1NlF~m!W?eV`a!ROIenB+i&pa~@t4WO z=LvXPHvC-d$N8jrCA~sCSj^GG&uS)72`E)Rb6@}FwZ&?Cdb~1SioR650yyxD;ol&- z1JY+U)J!<%hZ?P^>b(8_fu~GDdpOHB)m3VjRzitHoQ+T%6x69|HcdWRsHlYw?N(Q6 zBTnwRpln^+*H*F;IQ8NF>24t;eg8iKkHZr(5 zOk#B9bn1VcLN@#nO)LW3Ljm4FP%_*vDfaK_F?a&}MQXh@W3!K(>oy zX*1k3B^yBEBL4l!Y2D{-EG?z9Z(n{dhwjpO&#E-&NOs*a)KIpIi4C~%a}56Ffw3o} z%H%5UBcn{HeNL*qsr-yx!lDEu|$O-d(IQyw>~kJzOi7x$LO5fnN3 z3o-E}9oZHpn~cEB;h$$gEn;??SYkeV%$%>j8z=8B+<8P1F+;`y{!phJ=y$Q!CjEvF zi`w!tu5oryzLJd*D%}?V#u-FI++v9^7_vLp9r~DMvd2OyXku8FN-NZL1ID#*x;tFb z+kil7xNU`j@5yl_L(Q3liShnmEO2c74XD$sLy=Vp!tl-Nw>%GnS1+?d9*T~OsZdL5 z*jVbfO1$Ra;jX~uwxHvCDYwEaMyQVlTR0#%UhC{x=^%SNFZgZXpBtj*ZoZ771^dH~Cm=_z_%mRAuI(an1?oW%@CfUcAhNx+993D$gwo|k$ zic#8OAN~2uukXOi5fZI1KDeLq7wzyZ_iAl?$E~k^+ddlEX)Sb*-ht@DvWX{@l%~JCs8AO23+pa2Qv#9BX>!Vp24vV zvz8a^$DXz%M@-Nt_3?pfC%p;NW;<1_mSMWfk7dL¬?5MdcHkL@;)EY!!ECpJ!V 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 css` + transition: background 0.1s ease; + &:hover { + background: ${props.theme.background.transparent.light}; + } +`; diff --git a/packages/twenty-ui/src/theme/constants/Icon.ts b/packages/twenty-ui/src/theme/constants/Icon.ts new file mode 100644 index 0000000000..e103c0b8ec --- /dev/null +++ b/packages/twenty-ui/src/theme/constants/Icon.ts @@ -0,0 +1,13 @@ +export const ICON = { + size: { + sm: 14, + md: 16, + lg: 20, + xl: 40, + }, + stroke: { + sm: 1.6, + md: 2, + lg: 2.5, + }, +}; diff --git a/packages/twenty-ui/src/theme/constants/MainColorNames.ts b/packages/twenty-ui/src/theme/constants/MainColorNames.ts new file mode 100644 index 0000000000..7abcdc90cc --- /dev/null +++ b/packages/twenty-ui/src/theme/constants/MainColorNames.ts @@ -0,0 +1,5 @@ +import { MAIN_COLORS } from './MainColors'; + +export const MAIN_COLOR_NAMES = Object.keys(MAIN_COLORS) as ThemeColor[]; + +export type ThemeColor = keyof typeof MAIN_COLORS; diff --git a/packages/twenty-ui/src/theme/constants/MainColors.ts b/packages/twenty-ui/src/theme/constants/MainColors.ts new file mode 100644 index 0000000000..0fdab5f512 --- /dev/null +++ b/packages/twenty-ui/src/theme/constants/MainColors.ts @@ -0,0 +1,15 @@ +/* eslint-disable @nx/workspace-no-hardcoded-colors */ +import { GRAY_SCALE } from './GrayScale'; + +export const MAIN_COLORS = { + green: '#55ef3c', + turquoise: '#15de8f', + sky: '#00e0ff', + blue: '#1961ed', + purple: '#915ffd', + pink: '#f54bd0', + red: '#f83e3e', + orange: '#ff7222', + yellow: '#ffd338', + gray: GRAY_SCALE.gray30, +}; diff --git a/packages/twenty-ui/src/theme/constants/MobileViewport.ts b/packages/twenty-ui/src/theme/constants/MobileViewport.ts new file mode 100644 index 0000000000..485d2dacd0 --- /dev/null +++ b/packages/twenty-ui/src/theme/constants/MobileViewport.ts @@ -0,0 +1 @@ +export const MOBILE_VIEWPORT = 768; diff --git a/packages/twenty-ui/src/theme/constants/Modal.ts b/packages/twenty-ui/src/theme/constants/Modal.ts new file mode 100644 index 0000000000..2a53265cc0 --- /dev/null +++ b/packages/twenty-ui/src/theme/constants/Modal.ts @@ -0,0 +1,7 @@ +export const MODAL = { + size: { + sm: '300px', + md: '400px', + lg: '53%', + }, +}; diff --git a/packages/twenty-ui/src/theme/constants/OverlayBackground.ts b/packages/twenty-ui/src/theme/constants/OverlayBackground.ts new file mode 100644 index 0000000000..379d66ae76 --- /dev/null +++ b/packages/twenty-ui/src/theme/constants/OverlayBackground.ts @@ -0,0 +1,9 @@ +import { css } from '@emotion/react'; + +import { ThemeType } from '..'; + +export const OVERLAY_BACKGROUND = (props: { theme: ThemeType }) => css` + backdrop-filter: blur(8px); + background: ${props.theme.background.transparent.secondary}; + box-shadow: ${props.theme.boxShadow.strong}; +`; diff --git a/packages/twenty-ui/src/theme/constants/Rgba.ts b/packages/twenty-ui/src/theme/constants/Rgba.ts new file mode 100644 index 0000000000..6b06f2a64e --- /dev/null +++ b/packages/twenty-ui/src/theme/constants/Rgba.ts @@ -0,0 +1,8 @@ +/* eslint-disable @nx/workspace-no-hardcoded-colors */ +import hexRgb from 'hex-rgb'; + +export const RGBA = (hex: string, alpha: number) => { + return `rgba(${hexRgb(hex, { format: 'array' }) + .slice(0, -1) + .join(',')},${alpha})`; +}; diff --git a/packages/twenty-ui/src/theme/constants/SecondaryColors.ts b/packages/twenty-ui/src/theme/constants/SecondaryColors.ts new file mode 100644 index 0000000000..f023f8e749 --- /dev/null +++ b/packages/twenty-ui/src/theme/constants/SecondaryColors.ts @@ -0,0 +1,106 @@ +/* eslint-disable @nx/workspace-no-hardcoded-colors */ +import { GRAY_SCALE } from './GrayScale'; + +export const SECONDARY_COLORS = { + yellow80: '#2e2a1a', + yellow70: '#453d1e', + yellow60: '#746224', + yellow50: '#b99b2e', + yellow40: '#ffe074', + yellow30: '#ffedaf', + yellow20: '#fff6d7', + yellow10: '#fffbeb', + + green80: '#1d2d1b', + green70: '#23421e', + green60: '#2a5822', + green50: '#42ae31', + green40: '#88f477', + green30: '#ccfac5', + green20: '#ddfcd8', + green10: '#eefdec', + + turquoise80: '#172b23', + turquoise70: '#173f2f', + turquoise60: '#166747', + turquoise50: '#16a26b', + turquoise40: '#5be8b1', + turquoise30: '#a1f2d2', + turquoise20: '#d0f8e9', + turquoise10: '#e8fcf4', + + sky80: '#152b2e', + sky70: '#123f45', + sky60: '#0e6874', + sky50: '#07a4b9', + sky40: '#4de9ff', + sky30: '#99f3ff', + sky20: '#ccf9ff', + sky10: '#e5fcff', + + blue80: '#171e2c', + blue70: '#172642', + blue60: '#18356d', + blue50: '#184bad', + blue40: '#5e90f2', + blue30: '#a3c0f8', + blue20: '#d1dffb', + blue10: '#e8effd', + + purple80: '#231e2e', + purple70: '#2f2545', + purple60: '#483473', + purple50: '#6c49b8', + purple40: '#b28ffe', + purple30: '#d3bffe', + purple20: '#e9dfff', + purple10: '#f4efff', + + pink80: '#2d1c29', + pink70: '#43213c', + pink60: '#702c61', + pink50: '#b23b98', + pink40: '#f881de', + pink30: '#fbb7ec', + pink20: '#fddbf6', + pink10: '#feedfa', + + red80: '#2d1b1b', + red70: '#441f1f', + red60: '#712727', + red50: '#b43232', + red40: '#fa7878', + red30: '#fcb2b2', + red20: '#fed8d8', + red10: '#feecec', + + orange80: '#2e2018', + orange70: '#452919', + orange60: '#743b1b', + orange50: '#b9571f', + orange40: '#ff9c64', + orange30: '#ffc7a7', + orange20: '#ffe3d3', + orange10: '#fff1e9', + + gray80: GRAY_SCALE.gray70, + gray70: GRAY_SCALE.gray65, + gray60: GRAY_SCALE.gray55, + gray50: GRAY_SCALE.gray40, + gray40: GRAY_SCALE.gray25, + gray30: GRAY_SCALE.gray20, + gray20: GRAY_SCALE.gray15, + gray10: GRAY_SCALE.gray10, + blueAccent90: '#141a25', + blueAccent85: '#151d2e', + blueAccent80: '#152037', + blueAccent75: '#16233f', + blueAccent70: '#17294a', + blueAccent60: '#18356d', + blueAccent40: '#a3c0f8', + blueAccent35: '#c8d9fb', + blueAccent25: '#dae6fc', + blueAccent20: '#e2ecfd', + blueAccent15: '#edf2fe', + blueAccent10: '#f5f9fd', +}; diff --git a/packages/twenty-ui/src/theme/constants/TagDark.ts b/packages/twenty-ui/src/theme/constants/TagDark.ts new file mode 100644 index 0000000000..5728ca8e2f --- /dev/null +++ b/packages/twenty-ui/src/theme/constants/TagDark.ts @@ -0,0 +1,28 @@ +import { COLOR } from './Colors'; + +export const TAG_DARK = { + text: { + green: COLOR.green10, + turquoise: COLOR.turquoise10, + sky: COLOR.sky10, + blue: COLOR.blue10, + purple: COLOR.purple10, + pink: COLOR.pink10, + red: COLOR.red10, + orange: COLOR.orange10, + yellow: COLOR.yellow10, + gray: COLOR.gray10, + }, + background: { + green: COLOR.green60, + turquoise: COLOR.turquoise60, + sky: COLOR.sky60, + blue: COLOR.blue60, + purple: COLOR.purple60, + pink: COLOR.pink60, + red: COLOR.red60, + orange: COLOR.orange60, + yellow: COLOR.yellow60, + gray: COLOR.gray60, + }, +}; diff --git a/packages/twenty-ui/src/theme/constants/TagLight.ts b/packages/twenty-ui/src/theme/constants/TagLight.ts new file mode 100644 index 0000000000..29bdee8be6 --- /dev/null +++ b/packages/twenty-ui/src/theme/constants/TagLight.ts @@ -0,0 +1,28 @@ +import { COLOR } from './Colors'; + +export const TAG_LIGHT = { + text: { + green: COLOR.green60, + turquoise: COLOR.turquoise60, + sky: COLOR.sky60, + blue: COLOR.blue60, + purple: COLOR.purple60, + pink: COLOR.pink60, + red: COLOR.red60, + orange: COLOR.orange60, + yellow: COLOR.yellow60, + gray: COLOR.gray60, + }, + background: { + green: COLOR.green20, + turquoise: COLOR.turquoise20, + sky: COLOR.sky20, + blue: COLOR.blue20, + purple: COLOR.purple20, + pink: COLOR.pink20, + red: COLOR.red20, + orange: COLOR.orange20, + yellow: COLOR.yellow20, + gray: COLOR.gray20, + }, +}; diff --git a/packages/twenty-ui/src/theme/constants/Text.ts b/packages/twenty-ui/src/theme/constants/Text.ts new file mode 100644 index 0000000000..db9a0786b7 --- /dev/null +++ b/packages/twenty-ui/src/theme/constants/Text.ts @@ -0,0 +1,13 @@ +export const TEXT = { + lineHeight: { + lg: 1.5, + md: 1.2, + }, + + iconSizeMedium: 16, + iconSizeSmall: 14, + + iconStrikeLight: 1.6, + iconStrikeMedium: 2, + iconStrikeBold: 2.5, +}; diff --git a/packages/twenty-ui/src/theme/constants/TextInputStyle.ts b/packages/twenty-ui/src/theme/constants/TextInputStyle.ts new file mode 100644 index 0000000000..9b7bad41a7 --- /dev/null +++ b/packages/twenty-ui/src/theme/constants/TextInputStyle.ts @@ -0,0 +1,21 @@ +import { css } from '@emotion/react'; + +import { ThemeType } from '..'; + +export const TEXT_INPUT_STYLE = (props: { theme: ThemeType }) => css` + background-color: transparent; + border: none; + color: ${props.theme.font.color.primary}; + font-family: ${props.theme.font.family}; + font-size: inherit; + font-weight: inherit; + outline: none; + padding: ${props.theme.spacing(0)} ${props.theme.spacing(2)}; + + &::placeholder, + &::-webkit-input-placeholder { + color: ${props.theme.font.color.light}; + font-family: ${props.theme.font.family}; + font-weight: ${props.theme.font.weight.medium}; + } +`; diff --git a/packages/twenty-ui/src/theme/constants/ThemeCommon.ts b/packages/twenty-ui/src/theme/constants/ThemeCommon.ts new file mode 100644 index 0000000000..8c450fb874 --- /dev/null +++ b/packages/twenty-ui/src/theme/constants/ThemeCommon.ts @@ -0,0 +1,44 @@ +/* eslint-disable @nx/workspace-no-hardcoded-colors */ +import { ANIMATION } from './Animation'; +import { BLUR } from './Blur'; +import { COLOR } from './Colors'; +import { GRAY_SCALE } from './GrayScale'; +import { ICON } from './Icon'; +import { MODAL } from './Modal'; +import { TEXT } from './Text'; + +export const THEME_COMMON = { + color: COLOR, + grayScale: GRAY_SCALE, + icon: ICON, + modal: MODAL, + text: TEXT, + blur: BLUR, + animation: ANIMATION, + snackBar: { + success: { + background: '#16A26B', + color: '#D0F8E9', + }, + error: { + background: '#B43232', + color: '#FED8D8', + }, + info: { + background: COLOR.gray80, + color: GRAY_SCALE.gray0, + }, + }, + spacingMultiplicator: 4, + spacing: (...args: number[]) => + args.map((multiplicator) => `${multiplicator * 4}px`).join(' '), + betweenSiblingsGap: `2px`, + table: { + horizontalCellMargin: '8px', + checkboxColumnWidth: '32px', + horizontalCellPadding: '8px', + }, + rightDrawerWidth: '500px', + clickableElementBackgroundTransition: 'background 0.1s ease', + lastLayerZIndex: 2147483647, +}; diff --git a/packages/twenty-ui/src/theme/constants/ThemeDark.ts b/packages/twenty-ui/src/theme/constants/ThemeDark.ts new file mode 100644 index 0000000000..6f3284f037 --- /dev/null +++ b/packages/twenty-ui/src/theme/constants/ThemeDark.ts @@ -0,0 +1,22 @@ +import { ThemeType } from '..'; + +import { ACCENT_DARK } from './AccentDark'; +import { BACKGROUND_DARK } from './BackgroundDark'; +import { BORDER_DARK } from './BorderDark'; +import { BOX_SHADOW_DARK } from './BoxShadowDark'; +import { FONT_DARK } from './FontDark'; +import { TAG_DARK } from './TagDark'; +import { THEME_COMMON } from './ThemeCommon'; + +export const THEME_DARK: ThemeType = { + ...THEME_COMMON, + ...{ + accent: ACCENT_DARK, + background: BACKGROUND_DARK, + border: BORDER_DARK, + tag: TAG_DARK, + boxShadow: BOX_SHADOW_DARK, + font: FONT_DARK, + name: 'dark', + }, +}; diff --git a/packages/twenty-ui/src/theme/constants/ThemeLight.ts b/packages/twenty-ui/src/theme/constants/ThemeLight.ts new file mode 100644 index 0000000000..9331102fc5 --- /dev/null +++ b/packages/twenty-ui/src/theme/constants/ThemeLight.ts @@ -0,0 +1,20 @@ +import { ACCENT_LIGHT } from './AccentLight'; +import { BACKGROUND_LIGHT } from './BackgroundLight'; +import { BORDER_LIGHT } from './BorderLight'; +import { BOX_SHADOW_LIGHT } from './BoxShadowLight'; +import { FONT_LIGHT } from './FontLight'; +import { TAG_LIGHT } from './TagLight'; +import { THEME_COMMON } from './ThemeCommon'; + +export const THEME_LIGHT = { + ...THEME_COMMON, + ...{ + accent: ACCENT_LIGHT, + background: BACKGROUND_LIGHT, + border: BORDER_LIGHT, + tag: TAG_LIGHT, + boxShadow: BOX_SHADOW_LIGHT, + font: FONT_LIGHT, + name: 'light', + }, +}; diff --git a/packages/twenty-ui/src/theme/index.ts b/packages/twenty-ui/src/theme/index.ts new file mode 100644 index 0000000000..22973cd7cc --- /dev/null +++ b/packages/twenty-ui/src/theme/index.ts @@ -0,0 +1,5 @@ +import { THEME_DARK } from './constants/ThemeDark'; +import { THEME_LIGHT } from './constants/ThemeLight'; + +export type ThemeType = typeof THEME_LIGHT; +export { THEME_DARK, THEME_LIGHT }; diff --git a/packages/twenty-ui/src/theme/provider/ThemeProvider.tsx b/packages/twenty-ui/src/theme/provider/ThemeProvider.tsx new file mode 100644 index 0000000000..364afe5d4e --- /dev/null +++ b/packages/twenty-ui/src/theme/provider/ThemeProvider.tsx @@ -0,0 +1,16 @@ +// ThemeProvider.tsx +import * as React from 'react'; +import { ThemeProvider as EmotionThemeProvider } from '@emotion/react'; + +import { ThemeType } from '..'; + +type ThemeProviderProps = { + theme: ThemeType; + children: React.ReactNode; +}; + +const ThemeProvider: React.FC = ({ theme, children }) => { + return {children}; +}; + +export default ThemeProvider; diff --git a/packages/twenty-ui/tsconfig.json b/packages/twenty-ui/tsconfig.json new file mode 100644 index 0000000000..ac9d79e8b2 --- /dev/null +++ b/packages/twenty-ui/tsconfig.json @@ -0,0 +1,26 @@ +{ + "extends": "../../tsconfig.base.json", + "compilerOptions": { + "module": "commonjs", + "forceConsistentCasingInFileNames": true, + "strict": true, + "noImplicitOverride": true, + "noPropertyAccessFromIndexSignature": true, + "noImplicitReturns": true, + "noFallthroughCasesInSwitch": true, + "jsx": "react" + }, + "files": [], + "include": [], + "references": [ + { + "path": "./tsconfig.lib.json" + }, + { + "path": "./tsconfig.spec.json" + }, + { + "path": "./tsconfig.storybook.json" + } + ] +} diff --git a/packages/twenty-ui/tsconfig.lib.json b/packages/twenty-ui/tsconfig.lib.json new file mode 100644 index 0000000000..d30d8333f0 --- /dev/null +++ b/packages/twenty-ui/tsconfig.lib.json @@ -0,0 +1,18 @@ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "outDir": "../../dist/out-tsc", + "declaration": true, + "types": ["node", "vite/client"] + }, + "include": ["src/**/*.ts"], + "exclude": [ + "jest.config.ts", + "src/**/*.spec.ts", + "src/**/*.test.ts", + "**/*.stories.ts", + "**/*.stories.js", + "**/*.stories.jsx", + "**/*.stories.tsx" + ] +} diff --git a/packages/twenty-ui/tsconfig.spec.json b/packages/twenty-ui/tsconfig.spec.json new file mode 100644 index 0000000000..9b2a121d11 --- /dev/null +++ b/packages/twenty-ui/tsconfig.spec.json @@ -0,0 +1,14 @@ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "outDir": "../../dist/out-tsc", + "module": "commonjs", + "types": ["jest", "node"] + }, + "include": [ + "jest.config.ts", + "src/**/*.test.ts", + "src/**/*.spec.ts", + "src/**/*.d.ts" + ] +} diff --git a/packages/twenty-ui/tsconfig.storybook.json b/packages/twenty-ui/tsconfig.storybook.json new file mode 100644 index 0000000000..f565786702 --- /dev/null +++ b/packages/twenty-ui/tsconfig.storybook.json @@ -0,0 +1,32 @@ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "emitDecoratorMetadata": true, + "outDir": "" + }, + "files": [ + "../../node_modules/@nx/react/typings/styled-jsx.d.ts", + "../../node_modules/@nx/react/typings/cssmodule.d.ts", + "../../node_modules/@nx/react/typings/image.d.ts" + ], + "exclude": [ + "src/**/*.spec.ts", + "src/**/*.test.ts", + "src/**/*.spec.js", + "src/**/*.test.js", + "src/**/*.spec.tsx", + "src/**/*.test.tsx", + "src/**/*.spec.jsx", + "src/**/*.test.js" + ], + "include": [ + "src/**/*.stories.ts", + "src/**/*.stories.js", + "src/**/*.stories.jsx", + "src/**/*.stories.tsx", + "src/**/*.stories.mdx", + ".storybook/*.js", + ".storybook/*.ts", + ".storybook/main.tsx" + ] +} diff --git a/packages/twenty-ui/vite.config.ts b/packages/twenty-ui/vite.config.ts new file mode 100644 index 0000000000..f07e416bda --- /dev/null +++ b/packages/twenty-ui/vite.config.ts @@ -0,0 +1,47 @@ +/// +import { nxViteTsPaths } from '@nx/vite/plugins/nx-tsconfig-paths.plugin'; +import * as path from 'path'; +import { defineConfig } from 'vite'; +import dts from 'vite-plugin-dts'; + +export default defineConfig({ + root: __dirname, + cacheDir: '../../node_modules/.vite/packages/twenty-ui', + + plugins: [ + nxViteTsPaths(), + dts({ + entryRoot: 'src', + tsConfigFilePath: path.join(__dirname, 'tsconfig.lib.json'), + skipDiagnostics: true, + }), + ], + + // Uncomment this if you are using workers. + // worker: { + // plugins: [ nxViteTsPaths() ], + // }, + + // Configuration for building your library. + // See: https://vitejs.dev/guide/build.html#library-mode + build: { + outDir: './dist', + reportCompressedSize: true, + commonjsOptions: { + transformMixedEsModules: true, + }, + lib: { + // Could also be a dictionary or array of multiple entry points. + entry: 'src/index.ts', + name: 'twenty-ui', + fileName: 'index', + // Change this to the formats you want to support. + // Don't forget to update your package.json as well. + formats: ['es', 'cjs'], + }, + rollupOptions: { + // External packages that should not be bundled into your library. + external: [], + }, + }, +}); diff --git a/tsconfig.base.json b/tsconfig.base.json index d001922d05..7acdc5e09c 100644 --- a/tsconfig.base.json +++ b/tsconfig.base.json @@ -15,7 +15,8 @@ "skipDefaultLibCheck": true, "baseUrl": ".", "paths": { - "twenty-emails": ["packages/twenty-emails/src/index.ts"] + "twenty-emails": ["packages/twenty-emails/src/index.ts"], + "twenty-ui": ["packages/twenty-ui/src/index.ts"] } }, "exclude": ["node_modules", "tmp"] diff --git a/yarn.lock b/yarn.lock index e58db98969..51f20c3a6b 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1736,6 +1736,36 @@ __metadata: languageName: node linkType: hard +"@babel/helper-define-polyfill-provider@npm:^0.5.0": + version: 0.5.0 + resolution: "@babel/helper-define-polyfill-provider@npm:0.5.0" + dependencies: + "@babel/helper-compilation-targets": "npm:^7.22.6" + "@babel/helper-plugin-utils": "npm:^7.22.5" + debug: "npm:^4.1.1" + lodash.debounce: "npm:^4.0.8" + resolve: "npm:^1.14.2" + peerDependencies: + "@babel/core": ^7.4.0 || ^8.0.0-0 <8.0.0 + checksum: 2b053b96a0c604a7e0f5c7d13a8a55f4451d938f7af42bd40f62a87df15e6c87a0b1dbd893a0f0bb51077b54dc3ba00a58b166531a5940ad286ab685dd8979ec + languageName: node + linkType: hard + +"@babel/helper-define-polyfill-provider@npm:^0.6.0": + version: 0.6.0 + resolution: "@babel/helper-define-polyfill-provider@npm:0.6.0" + dependencies: + "@babel/helper-compilation-targets": "npm:^7.22.6" + "@babel/helper-plugin-utils": "npm:^7.22.5" + debug: "npm:^4.1.1" + lodash.debounce: "npm:^4.0.8" + resolve: "npm:^1.14.2" + peerDependencies: + "@babel/core": ^7.4.0 || ^8.0.0-0 <8.0.0 + checksum: bf6af52fadbbebc5bf71166b91eac4fc21431ec9b0d2a94063f3a3d900ed44aa1384ad23e920a85e7a657fcf3e80edb2eaaac9d902bd1e632f3b50c836b45c53 + languageName: node + linkType: hard + "@babel/helper-environment-visitor@npm:^7.22.20": version: 7.22.20 resolution: "@babel/helper-environment-visitor@npm:7.22.20" @@ -1811,6 +1841,13 @@ __metadata: languageName: node linkType: hard +"@babel/helper-plugin-utils@npm:^7.24.0": + version: 7.24.0 + resolution: "@babel/helper-plugin-utils@npm:7.24.0" + checksum: 90f41bd1b4dfe7226b1d33a4bb745844c5c63e400f9e4e8bf9103a7ceddd7d425d65333b564d9daba3cebd105985764d51b4bd4c95822b97c2e3ac1201a8a5da + languageName: node + linkType: hard + "@babel/helper-remap-async-to-generator@npm:^7.22.20": version: 7.22.20 resolution: "@babel/helper-remap-async-to-generator@npm:7.22.20" @@ -2948,6 +2985,22 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-transform-runtime@npm:^7.23.2": + version: 7.24.0 + resolution: "@babel/plugin-transform-runtime@npm:7.24.0" + dependencies: + "@babel/helper-module-imports": "npm:^7.22.15" + "@babel/helper-plugin-utils": "npm:^7.24.0" + babel-plugin-polyfill-corejs2: "npm:^0.4.8" + babel-plugin-polyfill-corejs3: "npm:^0.9.0" + babel-plugin-polyfill-regenerator: "npm:^0.5.5" + semver: "npm:^6.3.1" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: a632e0c6f4b1be21955646ba4f6e4af323daaa6ab68ce39f92f5186d444402e920b33cabd40759c36f72d8c36f256a35ea03060e407ca69bcf373fdcb450aa42 + languageName: node + linkType: hard + "@babel/plugin-transform-shorthand-properties@npm:^7.0.0, @babel/plugin-transform-shorthand-properties@npm:^7.23.3": version: 7.23.3 resolution: "@babel/plugin-transform-shorthand-properties@npm:7.23.3" @@ -5364,6 +5417,13 @@ __metadata: languageName: node linkType: hard +"@eslint/js@npm:8.57.0": + version: 8.57.0 + resolution: "@eslint/js@npm:8.57.0" + checksum: 9a518bb8625ba3350613903a6d8c622352ab0c6557a59fe6ff6178bf882bf57123f9d92aa826ee8ac3ee74b9c6203fe630e9ee00efb03d753962dcf65ee4bd94 + languageName: node + linkType: hard + "@faker-js/faker@npm:5.5.3": version: 5.5.3 resolution: "@faker-js/faker@npm:5.5.3" @@ -6710,6 +6770,17 @@ __metadata: languageName: node linkType: hard +"@humanwhocodes/config-array@npm:^0.11.14": + version: 0.11.14 + resolution: "@humanwhocodes/config-array@npm:0.11.14" + dependencies: + "@humanwhocodes/object-schema": "npm:^2.0.2" + debug: "npm:^4.3.1" + minimatch: "npm:^3.0.5" + checksum: 66f725b4ee5fdd8322c737cb5013e19fac72d4d69c8bf4b7feb192fcb83442b035b92186f8e9497c220e58b2d51a080f28a73f7899bc1ab288c3be172c467541 + languageName: node + linkType: hard + "@humanwhocodes/module-importer@npm:^1.0.1": version: 1.0.1 resolution: "@humanwhocodes/module-importer@npm:1.0.1" @@ -6724,6 +6795,13 @@ __metadata: languageName: node linkType: hard +"@humanwhocodes/object-schema@npm:^2.0.2": + version: 2.0.2 + resolution: "@humanwhocodes/object-schema@npm:2.0.2" + checksum: 6fd83dc320231d71c4541d0244051df61f301817e9f9da9fd4cb7e44ec8aacbde5958c1665b0c419401ab935114fdf532a6ad5d4e7294b1af2f347dd91a6983f + languageName: node + linkType: hard + "@ioredis/commands@npm:^1.1.1": version: 1.2.0 resolution: "@ioredis/commands@npm:1.2.0" @@ -6930,6 +7008,15 @@ __metadata: languageName: node linkType: hard +"@jest/schemas@npm:^28.1.3": + version: 28.1.3 + resolution: "@jest/schemas@npm:28.1.3" + dependencies: + "@sinclair/typebox": "npm:^0.24.1" + checksum: 8c325918f3e1b83e687987b05c2e5143d171f372b091f891fe17835f06fadd864ddae3c7e221a704bdd7e2ea28c4b337124c02023d8affcbdd51eca2879162ac + languageName: node + linkType: hard + "@jest/schemas@npm:^29.6.3": version: 29.6.3 resolution: "@jest/schemas@npm:29.6.3" @@ -8620,6 +8707,15 @@ __metadata: languageName: node linkType: hard +"@nrwl/cypress@npm:17.3.2": + version: 17.3.2 + resolution: "@nrwl/cypress@npm:17.3.2" + dependencies: + "@nx/cypress": "npm:17.3.2" + checksum: e5dda99c605414be7b6789834c3ead7e691b2c440802c10f10286b91fd0b2e6eee343b30971c422baee907e8c933f8734b38e137d1792df4e51e240b286a0367 + languageName: node + linkType: hard + "@nrwl/devkit@npm:17.2.8": version: 17.2.8 resolution: "@nrwl/devkit@npm:17.2.8" @@ -8629,6 +8725,15 @@ __metadata: languageName: node linkType: hard +"@nrwl/devkit@npm:17.3.2": + version: 17.3.2 + resolution: "@nrwl/devkit@npm:17.3.2" + dependencies: + "@nx/devkit": "npm:17.3.2" + checksum: 2e6e3490b32ae5a96bdeebaca10ecc0d6ef65511a7b8ca317ce48180510641e3b74b32caee99779972e182d989baa0f36d57474c3dbcb3a857e0815ac44e1805 + languageName: node + linkType: hard + "@nrwl/eslint-plugin-nx@npm:17.2.8": version: 17.2.8 resolution: "@nrwl/eslint-plugin-nx@npm:17.2.8" @@ -8656,6 +8761,15 @@ __metadata: languageName: node linkType: hard +"@nrwl/js@npm:17.3.2": + version: 17.3.2 + resolution: "@nrwl/js@npm:17.3.2" + dependencies: + "@nx/js": "npm:17.3.2" + checksum: 309e509b24575b21d278926f82dd8b8458268cf2d01187190424aa2981ad5cfa0ca00bd372992a77abe9415747eae780570b3eb3758903e75d0942d409b07056 + languageName: node + linkType: hard + "@nrwl/react@npm:17.2.8": version: 17.2.8 resolution: "@nrwl/react@npm:17.2.8" @@ -8665,6 +8779,15 @@ __metadata: languageName: node linkType: hard +"@nrwl/storybook@npm:17.3.2": + version: 17.3.2 + resolution: "@nrwl/storybook@npm:17.3.2" + dependencies: + "@nx/storybook": "npm:17.3.2" + checksum: 9102ea804c11d85c9f2e56c5d1657d633b4c725a7ba1faf980aff082b7ee2b43071dce1cbd4e2bf3ad5826b1fdedb7a67ec5a5273bc2fecb42cf74916627f33b + languageName: node + linkType: hard + "@nrwl/tao@npm:17.2.8": version: 17.2.8 resolution: "@nrwl/tao@npm:17.2.8" @@ -8677,6 +8800,18 @@ __metadata: languageName: node linkType: hard +"@nrwl/tao@npm:17.3.2": + version: 17.3.2 + resolution: "@nrwl/tao@npm:17.3.2" + dependencies: + nx: "npm:17.3.2" + tslib: "npm:^2.3.0" + bin: + tao: index.js + checksum: 14340a61ac012bd4b23d5a13c04cb2741be8d9770e26cedfcc354d7b6acce8109eae60b659335a90083641a8521808fdac8d096ceb776b1a233369f0ce5f039a + languageName: node + linkType: hard + "@nrwl/vite@npm:17.2.8": version: 17.2.8 resolution: "@nrwl/vite@npm:17.2.8" @@ -8704,6 +8839,15 @@ __metadata: languageName: node linkType: hard +"@nrwl/workspace@npm:17.3.2": + version: 17.3.2 + resolution: "@nrwl/workspace@npm:17.3.2" + dependencies: + "@nx/workspace": "npm:17.3.2" + checksum: 2ae9e0551cfe1d55cd20b3c1d5bd9e528d8504edba37745269a1ef92b72ffb0056d0eb2f15e9d0ddb246a514f245cb315ccaafc65fbc3c85194134da96127c07 + languageName: node + linkType: hard + "@nuxtjs/opencollective@npm:0.3.2": version: 0.3.2 resolution: "@nuxtjs/opencollective@npm:0.3.2" @@ -8717,6 +8861,27 @@ __metadata: languageName: node linkType: hard +"@nx/cypress@npm:17.3.2": + version: 17.3.2 + resolution: "@nx/cypress@npm:17.3.2" + dependencies: + "@nrwl/cypress": "npm:17.3.2" + "@nx/devkit": "npm:17.3.2" + "@nx/eslint": "npm:17.3.2" + "@nx/js": "npm:17.3.2" + "@phenomnomnominal/tsquery": "npm:~5.0.1" + detect-port: "npm:^1.5.1" + semver: "npm:^7.5.3" + tslib: "npm:^2.3.0" + peerDependencies: + cypress: ">= 3 < 14" + peerDependenciesMeta: + cypress: + optional: true + checksum: 39da24ecdd72d96c2f04e16f0241182e4d0f5209cd9786bc851e5f0b3050b1ff52cdfbc7b0e0393c9a7023679dd8280d579fe0553ea152cbdfadb217a8f748d6 + languageName: node + linkType: hard + "@nx/devkit@npm:17.2.8": version: 17.2.8 resolution: "@nx/devkit@npm:17.2.8" @@ -8734,6 +8899,24 @@ __metadata: languageName: node linkType: hard +"@nx/devkit@npm:17.3.2": + version: 17.3.2 + resolution: "@nx/devkit@npm:17.3.2" + dependencies: + "@nrwl/devkit": "npm:17.3.2" + ejs: "npm:^3.1.7" + enquirer: "npm:~2.3.6" + ignore: "npm:^5.0.4" + semver: "npm:^7.5.3" + tmp: "npm:~0.2.1" + tslib: "npm:^2.3.0" + yargs-parser: "npm:21.1.1" + peerDependencies: + nx: ">= 16 <= 18" + checksum: 3b0f2208f944d0ba95c9ac10488d3eb374b60ae358babe723c3784e75a649c362f87688f915d6d242ea4f3facaf70889a7e29a721cfe6c37f328208efb0573a7 + languageName: node + linkType: hard + "@nx/eslint-plugin@npm:17.2.8": version: 17.2.8 resolution: "@nx/eslint-plugin@npm:17.2.8" @@ -8779,6 +8962,25 @@ __metadata: languageName: node linkType: hard +"@nx/eslint@npm:17.3.2": + version: 17.3.2 + resolution: "@nx/eslint@npm:17.3.2" + dependencies: + "@nx/devkit": "npm:17.3.2" + "@nx/js": "npm:17.3.2" + "@nx/linter": "npm:17.3.2" + eslint: "npm:^8.0.0" + tslib: "npm:^2.3.0" + typescript: "npm:~5.3.2" + peerDependencies: + js-yaml: 4.1.0 + peerDependenciesMeta: + js-yaml: + optional: true + checksum: 9df2268b17cdfca84c78a27d3980f03e0a4f339ab841b9452dc6dfa9d34b7cec959e69766dee968de5b56401fd0a450f1d56fb28e89ca9d850b23f358e6fe656 + languageName: node + linkType: hard + "@nx/jest@npm:17.2.8": version: 17.2.8 resolution: "@nx/jest@npm:17.2.8" @@ -8843,6 +9045,49 @@ __metadata: languageName: node linkType: hard +"@nx/js@npm:17.3.2": + version: 17.3.2 + resolution: "@nx/js@npm:17.3.2" + dependencies: + "@babel/core": "npm:^7.23.2" + "@babel/plugin-proposal-decorators": "npm:^7.22.7" + "@babel/plugin-transform-class-properties": "npm:^7.22.5" + "@babel/plugin-transform-runtime": "npm:^7.23.2" + "@babel/preset-env": "npm:^7.23.2" + "@babel/preset-typescript": "npm:^7.22.5" + "@babel/runtime": "npm:^7.22.6" + "@nrwl/js": "npm:17.3.2" + "@nx/devkit": "npm:17.3.2" + "@nx/workspace": "npm:17.3.2" + "@phenomnomnominal/tsquery": "npm:~5.0.1" + babel-plugin-const-enum: "npm:^1.0.1" + babel-plugin-macros: "npm:^2.8.0" + babel-plugin-transform-typescript-metadata: "npm:^0.3.1" + chalk: "npm:^4.1.0" + columnify: "npm:^1.6.0" + detect-port: "npm:^1.5.1" + fast-glob: "npm:3.2.7" + fs-extra: "npm:^11.1.0" + ignore: "npm:^5.0.4" + js-tokens: "npm:^4.0.0" + minimatch: "npm:9.0.3" + npm-package-arg: "npm:11.0.1" + npm-run-path: "npm:^4.0.1" + ora: "npm:5.3.0" + semver: "npm:^7.5.3" + source-map-support: "npm:0.5.19" + ts-node: "npm:10.9.1" + tsconfig-paths: "npm:^4.1.2" + tslib: "npm:^2.3.0" + peerDependencies: + verdaccio: ^5.0.4 + peerDependenciesMeta: + verdaccio: + optional: true + checksum: 3c08a4e24a195eed66c00bb6fe428b99295303b637a23fca3821659984e43b7239063f8ad437fbba8bc9cbeecdf8fa7537aac5275fb82ef404698a547e03ec74 + languageName: node + linkType: hard + "@nx/linter@npm:17.2.8": version: 17.2.8 resolution: "@nx/linter@npm:17.2.8" @@ -8852,6 +9097,15 @@ __metadata: languageName: node linkType: hard +"@nx/linter@npm:17.3.2": + version: 17.3.2 + resolution: "@nx/linter@npm:17.3.2" + dependencies: + "@nx/eslint": "npm:17.3.2" + checksum: 52bc2f93879498e7e118c8bd27f33cc0b5679f70837619544285483333804a9402e47475da4abd394cd9c60c5146d673d72eec1362a1698b7cbe293b11829b94 + languageName: node + linkType: hard + "@nx/nx-darwin-arm64@npm:17.2.8": version: 17.2.8 resolution: "@nx/nx-darwin-arm64@npm:17.2.8" @@ -8859,6 +9113,13 @@ __metadata: languageName: node linkType: hard +"@nx/nx-darwin-arm64@npm:17.3.2": + version: 17.3.2 + resolution: "@nx/nx-darwin-arm64@npm:17.3.2" + conditions: os=darwin & cpu=arm64 + languageName: node + linkType: hard + "@nx/nx-darwin-x64@npm:17.2.8": version: 17.2.8 resolution: "@nx/nx-darwin-x64@npm:17.2.8" @@ -8866,6 +9127,13 @@ __metadata: languageName: node linkType: hard +"@nx/nx-darwin-x64@npm:17.3.2": + version: 17.3.2 + resolution: "@nx/nx-darwin-x64@npm:17.3.2" + conditions: os=darwin & cpu=x64 + languageName: node + linkType: hard + "@nx/nx-freebsd-x64@npm:17.2.8": version: 17.2.8 resolution: "@nx/nx-freebsd-x64@npm:17.2.8" @@ -8873,6 +9141,13 @@ __metadata: languageName: node linkType: hard +"@nx/nx-freebsd-x64@npm:17.3.2": + version: 17.3.2 + resolution: "@nx/nx-freebsd-x64@npm:17.3.2" + conditions: os=freebsd & cpu=x64 + languageName: node + linkType: hard + "@nx/nx-linux-arm-gnueabihf@npm:17.2.8": version: 17.2.8 resolution: "@nx/nx-linux-arm-gnueabihf@npm:17.2.8" @@ -8880,6 +9155,13 @@ __metadata: languageName: node linkType: hard +"@nx/nx-linux-arm-gnueabihf@npm:17.3.2": + version: 17.3.2 + resolution: "@nx/nx-linux-arm-gnueabihf@npm:17.3.2" + conditions: os=linux & cpu=arm + languageName: node + linkType: hard + "@nx/nx-linux-arm64-gnu@npm:17.2.8": version: 17.2.8 resolution: "@nx/nx-linux-arm64-gnu@npm:17.2.8" @@ -8887,6 +9169,13 @@ __metadata: languageName: node linkType: hard +"@nx/nx-linux-arm64-gnu@npm:17.3.2": + version: 17.3.2 + resolution: "@nx/nx-linux-arm64-gnu@npm:17.3.2" + conditions: os=linux & cpu=arm64 & libc=glibc + languageName: node + linkType: hard + "@nx/nx-linux-arm64-musl@npm:17.2.8": version: 17.2.8 resolution: "@nx/nx-linux-arm64-musl@npm:17.2.8" @@ -8894,6 +9183,13 @@ __metadata: languageName: node linkType: hard +"@nx/nx-linux-arm64-musl@npm:17.3.2": + version: 17.3.2 + resolution: "@nx/nx-linux-arm64-musl@npm:17.3.2" + conditions: os=linux & cpu=arm64 & libc=musl + languageName: node + linkType: hard + "@nx/nx-linux-x64-gnu@npm:17.2.8": version: 17.2.8 resolution: "@nx/nx-linux-x64-gnu@npm:17.2.8" @@ -8901,6 +9197,13 @@ __metadata: languageName: node linkType: hard +"@nx/nx-linux-x64-gnu@npm:17.3.2": + version: 17.3.2 + resolution: "@nx/nx-linux-x64-gnu@npm:17.3.2" + conditions: os=linux & cpu=x64 & libc=glibc + languageName: node + linkType: hard + "@nx/nx-linux-x64-musl@npm:17.2.8": version: 17.2.8 resolution: "@nx/nx-linux-x64-musl@npm:17.2.8" @@ -8908,6 +9211,13 @@ __metadata: languageName: node linkType: hard +"@nx/nx-linux-x64-musl@npm:17.3.2": + version: 17.3.2 + resolution: "@nx/nx-linux-x64-musl@npm:17.3.2" + conditions: os=linux & cpu=x64 & libc=musl + languageName: node + linkType: hard + "@nx/nx-win32-arm64-msvc@npm:17.2.8": version: 17.2.8 resolution: "@nx/nx-win32-arm64-msvc@npm:17.2.8" @@ -8915,6 +9225,13 @@ __metadata: languageName: node linkType: hard +"@nx/nx-win32-arm64-msvc@npm:17.3.2": + version: 17.3.2 + resolution: "@nx/nx-win32-arm64-msvc@npm:17.3.2" + conditions: os=win32 & cpu=arm64 + languageName: node + linkType: hard + "@nx/nx-win32-x64-msvc@npm:17.2.8": version: 17.2.8 resolution: "@nx/nx-win32-x64-msvc@npm:17.2.8" @@ -8922,6 +9239,13 @@ __metadata: languageName: node linkType: hard +"@nx/nx-win32-x64-msvc@npm:17.3.2": + version: 17.3.2 + resolution: "@nx/nx-win32-x64-msvc@npm:17.3.2" + conditions: os=win32 & cpu=x64 + languageName: node + linkType: hard + "@nx/react@npm:17.2.8": version: 17.2.8 resolution: "@nx/react@npm:17.2.8" @@ -8941,6 +9265,22 @@ __metadata: languageName: node linkType: hard +"@nx/storybook@npm:17.3.2, @nx/storybook@npm:^17.2.8": + version: 17.3.2 + resolution: "@nx/storybook@npm:17.3.2" + dependencies: + "@nrwl/storybook": "npm:17.3.2" + "@nx/cypress": "npm:17.3.2" + "@nx/devkit": "npm:17.3.2" + "@nx/eslint": "npm:17.3.2" + "@nx/js": "npm:17.3.2" + "@phenomnomnominal/tsquery": "npm:~5.0.1" + semver: "npm:^7.5.3" + tslib: "npm:^2.3.0" + checksum: 2547c9b67c3786b319754e79e6eff715737efe22d6b23ffdc717a87cd1777eece065b8a73019d5270d6517d9dbc27f9bc7f75c0f3d438a628dc63d5c43f5cd37 + languageName: node + linkType: hard + "@nx/vite@npm:17.2.8": version: 17.2.8 resolution: "@nx/vite@npm:17.2.8" @@ -8989,6 +9329,21 @@ __metadata: languageName: node linkType: hard +"@nx/workspace@npm:17.3.2": + version: 17.3.2 + resolution: "@nx/workspace@npm:17.3.2" + dependencies: + "@nrwl/workspace": "npm:17.3.2" + "@nx/devkit": "npm:17.3.2" + chalk: "npm:^4.1.0" + enquirer: "npm:~2.3.6" + nx: "npm:17.3.2" + tslib: "npm:^2.3.0" + yargs-parser: "npm:21.1.1" + checksum: 7186c200559d34dee1d7f3f2d2d7f80fca020dfd59e6473aef8fe99c326e6e607dfafdc46c07acdf7dfcb76c0cba8ab11116f02f2a6869688e3c29f50dfd6d0b + languageName: node + linkType: hard + "@oclif/color@npm:^0.x": version: 0.1.2 resolution: "@oclif/color@npm:0.1.2" @@ -11743,6 +12098,13 @@ __metadata: languageName: node linkType: hard +"@sinclair/typebox@npm:^0.24.1": + version: 0.24.51 + resolution: "@sinclair/typebox@npm:0.24.51" + checksum: 458131e83ca59ad3721f0abeef2aa5220aff2083767e1143d75c67c85d55ef7a212f48f394471ee6bdd2e860ba30f09a489cdd2a28a2824d5b0d1014bdfb2552 + languageName: node + linkType: hard + "@sinclair/typebox@npm:^0.27.8": version: 0.27.8 resolution: "@sinclair/typebox@npm:0.27.8" @@ -12952,21 +13314,21 @@ __metadata: linkType: hard "@storybook/addon-interactions@npm:^7.6.7": - version: 7.6.7 - resolution: "@storybook/addon-interactions@npm:7.6.7" + version: 7.6.17 + resolution: "@storybook/addon-interactions@npm:7.6.17" dependencies: "@storybook/global": "npm:^5.0.0" - "@storybook/types": "npm:7.6.7" + "@storybook/types": "npm:7.6.17" jest-mock: "npm:^27.0.6" polished: "npm:^4.2.2" ts-dedent: "npm:^2.2.0" - checksum: 037714fd46df09a22111ceeff8062aa4f1fc6af358f6f7e0c9dc7dc04595bdbb2c238b3b2b1b651e157408fc024e7237c2580f6ce4fd13dda8e6caa7e117c23f + checksum: f0910e8db378f502270747508c42174bdb75671620d24868264638a2693c60b35f088e4c06cb2239a69f4aa176f8dc8cf9e215f872d5aeefec933643225b66b8 languageName: node linkType: hard "@storybook/addon-links@npm:^7.6.7": - version: 7.6.7 - resolution: "@storybook/addon-links@npm:7.6.7" + version: 7.6.17 + resolution: "@storybook/addon-links@npm:7.6.17" dependencies: "@storybook/csf": "npm:^0.1.2" "@storybook/global": "npm:^5.0.0" @@ -12976,7 +13338,7 @@ __metadata: peerDependenciesMeta: react: optional: true - checksum: 8c61d0dd7dd7072074f59c57a478f328bc0039bf0102134efea261bd1158ab19465605fac4eae42a9360b3c1f93143e2ee0f68e8001ad7de27f56e066d1cb17a + checksum: c95aa5629a948f07a260430fecb8bed283a1bcfa97d8925b5edf3d4eab46155c85dec1814a00db4206a6de8323803b3d8bf74665c97caf34bb229a403f5b03d7 languageName: node linkType: hard @@ -13013,12 +13375,12 @@ __metadata: languageName: node linkType: hard -"@storybook/addon-themes@npm:^7.6.7": - version: 7.6.7 - resolution: "@storybook/addon-themes@npm:7.6.7" +"@storybook/addon-themes@npm:^8.0.0": + version: 8.0.0 + resolution: "@storybook/addon-themes@npm:8.0.0" dependencies: ts-dedent: "npm:^2.0.0" - checksum: c024fb80b609be220bba50695798356dfa364d6acb4b150f069a3e5f5fc9fcd46a5fd81c2a28e058c1b2b4368d2c03e81d40bd842a1d591366a3ad7ca050299b + checksum: 4a095d69c67a84c9f496573cb91c230b8ac82a5a94b79bed95b3c0986585e6d65ea6f1b85bc8c4e2bbac1a4270775e193708665ba1de656b4a3cd02a029ee6fb languageName: node linkType: hard @@ -13072,14 +13434,14 @@ __metadata: languageName: node linkType: hard -"@storybook/builder-manager@npm:7.6.7": - version: 7.6.7 - resolution: "@storybook/builder-manager@npm:7.6.7" +"@storybook/builder-manager@npm:7.6.17": + version: 7.6.17 + resolution: "@storybook/builder-manager@npm:7.6.17" dependencies: "@fal-works/esbuild-plugin-global-externals": "npm:^2.1.2" - "@storybook/core-common": "npm:7.6.7" - "@storybook/manager": "npm:7.6.7" - "@storybook/node-logger": "npm:7.6.7" + "@storybook/core-common": "npm:7.6.17" + "@storybook/manager": "npm:7.6.17" + "@storybook/node-logger": "npm:7.6.17" "@types/ejs": "npm:^3.1.1" "@types/find-cache-dir": "npm:^3.2.1" "@yarnpkg/esbuild-plugin-pnp": "npm:^3.0.0-rc.10" @@ -13092,22 +13454,46 @@ __metadata: fs-extra: "npm:^11.1.0" process: "npm:^0.11.10" util: "npm:^0.12.4" - checksum: 07df0b1a9f8665afab0919110e8895ba9dec3fbc4ed1071d51bfacc0bac57f7b07864205fc031beb1a6c3f716c35810170d4b35ee7ce300f8b3c54478c20fe96 + checksum: 1b2ca77f7f3bf3c72890e949cfadc45d633fee7315ebcabfc1d6e23cd259db93114cbd9b9197597057f90c5fd60b3e72b0782a284a4f80c6efdd15f118b2c594 languageName: node linkType: hard -"@storybook/builder-vite@npm:7.6.7": - version: 7.6.7 - resolution: "@storybook/builder-vite@npm:7.6.7" +"@storybook/builder-manager@npm:7.6.3": + version: 7.6.3 + resolution: "@storybook/builder-manager@npm:7.6.3" dependencies: - "@storybook/channels": "npm:7.6.7" - "@storybook/client-logger": "npm:7.6.7" - "@storybook/core-common": "npm:7.6.7" - "@storybook/csf-plugin": "npm:7.6.7" - "@storybook/node-logger": "npm:7.6.7" - "@storybook/preview": "npm:7.6.7" - "@storybook/preview-api": "npm:7.6.7" - "@storybook/types": "npm:7.6.7" + "@fal-works/esbuild-plugin-global-externals": "npm:^2.1.2" + "@storybook/core-common": "npm:7.6.3" + "@storybook/manager": "npm:7.6.3" + "@storybook/node-logger": "npm:7.6.3" + "@types/ejs": "npm:^3.1.1" + "@types/find-cache-dir": "npm:^3.2.1" + "@yarnpkg/esbuild-plugin-pnp": "npm:^3.0.0-rc.10" + browser-assert: "npm:^1.2.1" + ejs: "npm:^3.1.8" + esbuild: "npm:^0.18.0" + esbuild-plugin-alias: "npm:^0.2.1" + express: "npm:^4.17.3" + find-cache-dir: "npm:^3.0.0" + fs-extra: "npm:^11.1.0" + process: "npm:^0.11.10" + util: "npm:^0.12.4" + checksum: 5d8654c0a15bf7112d994ce0331c4ece163179547fb36e1107beeb7c0cd63f754c072d1d72b02dcb439d4f6df37b69ed0c525ea2fa2d3dde2e16c7256ef01803 + languageName: node + linkType: hard + +"@storybook/builder-vite@npm:7.6.17": + version: 7.6.17 + resolution: "@storybook/builder-vite@npm:7.6.17" + dependencies: + "@storybook/channels": "npm:7.6.17" + "@storybook/client-logger": "npm:7.6.17" + "@storybook/core-common": "npm:7.6.17" + "@storybook/csf-plugin": "npm:7.6.17" + "@storybook/node-logger": "npm:7.6.17" + "@storybook/preview": "npm:7.6.17" + "@storybook/preview-api": "npm:7.6.17" + "@storybook/types": "npm:7.6.17" "@types/find-cache-dir": "npm:^3.2.1" browser-assert: "npm:^1.2.1" es-module-lexer: "npm:^0.9.3" @@ -13128,7 +13514,35 @@ __metadata: optional: true vite-plugin-glimmerx: optional: true - checksum: 0150bc6fbd3ab65425b582ba7ce5701e92bc825a0507c82fc5cd26e62d1c43f9ac156335ca6564c0b1ce7a3789677b34757564476531fbaa92f0914c1a8aa79c + checksum: eaa70e474240efd44adfdc8e7f6f57c3c1daddc966c221da981a0191fad322d78b279e954e03f20369eaa8223d11267f0a101ed3e9c16a3f7096f76fafc7388e + languageName: node + linkType: hard + +"@storybook/channels@npm:7.6.17": + version: 7.6.17 + resolution: "@storybook/channels@npm:7.6.17" + dependencies: + "@storybook/client-logger": "npm:7.6.17" + "@storybook/core-events": "npm:7.6.17" + "@storybook/global": "npm:^5.0.0" + qs: "npm:^6.10.0" + telejson: "npm:^7.2.0" + tiny-invariant: "npm:^1.3.1" + checksum: 7109b67a60c656d22deb1b9b44bf0e26b565044de6ccf63589b0e52188931e2eaa11b78f7a0e1b59396f654537f79ac4264c715417d467aca602a6e80495f49e + languageName: node + linkType: hard + +"@storybook/channels@npm:7.6.3": + version: 7.6.3 + resolution: "@storybook/channels@npm:7.6.3" + dependencies: + "@storybook/client-logger": "npm:7.6.3" + "@storybook/core-events": "npm:7.6.3" + "@storybook/global": "npm:^5.0.0" + qs: "npm:^6.10.0" + telejson: "npm:^7.2.0" + tiny-invariant: "npm:^1.3.1" + checksum: 2111b31ab2e4fe32d523e63e42708944013c152e3b1ca234ff453e25de0a8cf0fe84577bfedd20b16d9ea2b50c50daa089036b16e0373247bc23825fe46f6fc2 languageName: node linkType: hard @@ -13146,22 +13560,22 @@ __metadata: languageName: node linkType: hard -"@storybook/cli@npm:7.6.7": - version: 7.6.7 - resolution: "@storybook/cli@npm:7.6.7" +"@storybook/cli@npm:7.6.17": + version: 7.6.17 + resolution: "@storybook/cli@npm:7.6.17" dependencies: "@babel/core": "npm:^7.23.2" "@babel/preset-env": "npm:^7.23.2" "@babel/types": "npm:^7.23.0" "@ndelangen/get-tarball": "npm:^3.0.7" - "@storybook/codemod": "npm:7.6.7" - "@storybook/core-common": "npm:7.6.7" - "@storybook/core-events": "npm:7.6.7" - "@storybook/core-server": "npm:7.6.7" - "@storybook/csf-tools": "npm:7.6.7" - "@storybook/node-logger": "npm:7.6.7" - "@storybook/telemetry": "npm:7.6.7" - "@storybook/types": "npm:7.6.7" + "@storybook/codemod": "npm:7.6.17" + "@storybook/core-common": "npm:7.6.17" + "@storybook/core-events": "npm:7.6.17" + "@storybook/core-server": "npm:7.6.17" + "@storybook/csf-tools": "npm:7.6.17" + "@storybook/node-logger": "npm:7.6.17" + "@storybook/telemetry": "npm:7.6.17" + "@storybook/types": "npm:7.6.17" "@types/semver": "npm:^7.3.4" "@yarnpkg/fslib": "npm:2.10.3" "@yarnpkg/libzip": "npm:2.3.0" @@ -13186,7 +13600,6 @@ __metadata: puppeteer-core: "npm:^2.1.1" read-pkg-up: "npm:^7.0.1" semver: "npm:^7.3.7" - simple-update-notifier: "npm:^2.0.0" strip-json-comments: "npm:^3.0.1" tempy: "npm:^1.0.1" ts-dedent: "npm:^2.0.0" @@ -13194,7 +13607,25 @@ __metadata: bin: getstorybook: ./bin/index.js sb: ./bin/index.js - checksum: 1f070c5f4d2d154e6d46473e429d4c03a20fd89e0c50f49c599a1889d25231e2e013c3bea7c9799e7240c29b43cc1bb452b2d2a5f98263295788ecd5db0069fa + checksum: 8d8d426a1eca5d58a4cafa8418a1c8a41736e21a89c66307d18cea98c583976d672ae0773ab53e4e38f110dad2db788bd5d8daef3970ae14834db205818713ef + languageName: node + linkType: hard + +"@storybook/client-logger@npm:7.6.17": + version: 7.6.17 + resolution: "@storybook/client-logger@npm:7.6.17" + dependencies: + "@storybook/global": "npm:^5.0.0" + checksum: 77ebd176e65171b10b94f65ce7f10ed8c78e162b54462f5b87604f568e747f1604b4eb62ff7a601bf02d7e72b32e373fb980dd9c688a655706e74c025ebb82f3 + languageName: node + linkType: hard + +"@storybook/client-logger@npm:7.6.3": + version: 7.6.3 + resolution: "@storybook/client-logger@npm:7.6.3" + dependencies: + "@storybook/global": "npm:^5.0.0" + checksum: e32a9932aa7ddc05a17540c2bea7faf613cfc927ef855db2e15dad1fbfb35173c3669f1aeab2a589f16f9dda6a761ee055b98b40700b522a984ec81675817cd1 languageName: node linkType: hard @@ -13207,17 +13638,17 @@ __metadata: languageName: node linkType: hard -"@storybook/codemod@npm:7.6.7": - version: 7.6.7 - resolution: "@storybook/codemod@npm:7.6.7" +"@storybook/codemod@npm:7.6.17": + version: 7.6.17 + resolution: "@storybook/codemod@npm:7.6.17" dependencies: "@babel/core": "npm:^7.23.2" "@babel/preset-env": "npm:^7.23.2" "@babel/types": "npm:^7.23.0" "@storybook/csf": "npm:^0.1.2" - "@storybook/csf-tools": "npm:7.6.7" - "@storybook/node-logger": "npm:7.6.7" - "@storybook/types": "npm:7.6.7" + "@storybook/csf-tools": "npm:7.6.17" + "@storybook/node-logger": "npm:7.6.17" + "@storybook/types": "npm:7.6.17" "@types/cross-spawn": "npm:^6.0.2" cross-spawn: "npm:^7.0.3" globby: "npm:^11.0.2" @@ -13225,7 +13656,7 @@ __metadata: lodash: "npm:^4.17.21" prettier: "npm:^2.8.0" recast: "npm:^0.23.1" - checksum: 4f37240c133bc2dc110ba67b5ca0a3081ec8fcdd8cbf23bd0b0f76193adf6119fae640c354c13ba6827026ac1293913fa7ae8823f17eaecbf17f41d2267decf0 + checksum: b8428203dfa551ea34b34659e5231cdc03eeb0fba2c53f801794b732515b173131bbe3df14dff9a540c18d3dfdafa7f94d11dbf34bf4dbaf03a47dd7c80d09ae languageName: node linkType: hard @@ -13250,6 +13681,16 @@ __metadata: languageName: node linkType: hard +"@storybook/core-client@npm:7.6.17": + version: 7.6.17 + resolution: "@storybook/core-client@npm:7.6.17" + dependencies: + "@storybook/client-logger": "npm:7.6.17" + "@storybook/preview-api": "npm:7.6.17" + checksum: 3342367bce219d46ac0c5b494688ae86aeb5c4006d98749dec2e30518850bc76a8b255611e9151f043d5141d11deb781b972c8610e98565cab4112dc86b7c1d5 + languageName: node + linkType: hard + "@storybook/core-client@npm:7.6.7": version: 7.6.7 resolution: "@storybook/core-client@npm:7.6.7" @@ -13260,6 +13701,68 @@ __metadata: languageName: node linkType: hard +"@storybook/core-common@npm:7.6.17": + version: 7.6.17 + resolution: "@storybook/core-common@npm:7.6.17" + dependencies: + "@storybook/core-events": "npm:7.6.17" + "@storybook/node-logger": "npm:7.6.17" + "@storybook/types": "npm:7.6.17" + "@types/find-cache-dir": "npm:^3.2.1" + "@types/node": "npm:^18.0.0" + "@types/node-fetch": "npm:^2.6.4" + "@types/pretty-hrtime": "npm:^1.0.0" + chalk: "npm:^4.1.0" + esbuild: "npm:^0.18.0" + esbuild-register: "npm:^3.5.0" + file-system-cache: "npm:2.3.0" + find-cache-dir: "npm:^3.0.0" + find-up: "npm:^5.0.0" + fs-extra: "npm:^11.1.0" + glob: "npm:^10.0.0" + handlebars: "npm:^4.7.7" + lazy-universal-dotenv: "npm:^4.0.0" + node-fetch: "npm:^2.0.0" + picomatch: "npm:^2.3.0" + pkg-dir: "npm:^5.0.0" + pretty-hrtime: "npm:^1.0.3" + resolve-from: "npm:^5.0.0" + ts-dedent: "npm:^2.0.0" + checksum: 5be46d8f2d97dcde4a45de688278baed78185b44895825fe2f9423b70410fa88214a9709f40e7656cebe218a2c57cfa9979228e9f2b522eb47cf5af825d1133d + languageName: node + linkType: hard + +"@storybook/core-common@npm:7.6.3": + version: 7.6.3 + resolution: "@storybook/core-common@npm:7.6.3" + dependencies: + "@storybook/core-events": "npm:7.6.3" + "@storybook/node-logger": "npm:7.6.3" + "@storybook/types": "npm:7.6.3" + "@types/find-cache-dir": "npm:^3.2.1" + "@types/node": "npm:^18.0.0" + "@types/node-fetch": "npm:^2.6.4" + "@types/pretty-hrtime": "npm:^1.0.0" + chalk: "npm:^4.1.0" + esbuild: "npm:^0.18.0" + esbuild-register: "npm:^3.5.0" + file-system-cache: "npm:2.3.0" + find-cache-dir: "npm:^3.0.0" + find-up: "npm:^5.0.0" + fs-extra: "npm:^11.1.0" + glob: "npm:^10.0.0" + handlebars: "npm:^4.7.7" + lazy-universal-dotenv: "npm:^4.0.0" + node-fetch: "npm:^2.0.0" + picomatch: "npm:^2.3.0" + pkg-dir: "npm:^5.0.0" + pretty-hrtime: "npm:^1.0.3" + resolve-from: "npm:^5.0.0" + ts-dedent: "npm:^2.0.0" + checksum: 4f623ae79209df583d5abf3a50d5087170537bfeafefb716583315030dc3c2696a17062e4e2b859f23a10a4d995a9431d6d764c363c0105110d4858c61f6891b + languageName: node + linkType: hard + "@storybook/core-common@npm:7.6.7, @storybook/core-common@npm:^7.0.0-beta.0 || ^7.0.0-rc.0 || ^7.0.0": version: 7.6.7 resolution: "@storybook/core-common@npm:7.6.7" @@ -13291,6 +13794,24 @@ __metadata: languageName: node linkType: hard +"@storybook/core-events@npm:7.6.17": + version: 7.6.17 + resolution: "@storybook/core-events@npm:7.6.17" + dependencies: + ts-dedent: "npm:^2.0.0" + checksum: ab6410da3a456a61138b4a760a28b74bb9dc6f4c81de0d5ff7760b1853c6a437f8a0d05301c291f45503575d60c3be4805db4178f649eccd32c5ffd98a790250 + languageName: node + linkType: hard + +"@storybook/core-events@npm:7.6.3": + version: 7.6.3 + resolution: "@storybook/core-events@npm:7.6.3" + dependencies: + ts-dedent: "npm:^2.0.0" + checksum: 56304674342ad7a932e4735fd3ad347a277bb7e6407602f848e968cc7dd8e8eaa92c93dbfe2f42a4efb0853ae67491d76feefcab1fc0212b2596e33f5422888c + languageName: node + linkType: hard + "@storybook/core-events@npm:7.6.7": version: 7.6.7 resolution: "@storybook/core-events@npm:7.6.7" @@ -13300,25 +13821,74 @@ __metadata: languageName: node linkType: hard -"@storybook/core-server@npm:7.6.7": - version: 7.6.7 - resolution: "@storybook/core-server@npm:7.6.7" +"@storybook/core-server@npm:7.6.17": + version: 7.6.17 + resolution: "@storybook/core-server@npm:7.6.17" dependencies: "@aw-web-design/x-default-browser": "npm:1.4.126" "@discoveryjs/json-ext": "npm:^0.5.3" - "@storybook/builder-manager": "npm:7.6.7" - "@storybook/channels": "npm:7.6.7" - "@storybook/core-common": "npm:7.6.7" - "@storybook/core-events": "npm:7.6.7" + "@storybook/builder-manager": "npm:7.6.17" + "@storybook/channels": "npm:7.6.17" + "@storybook/core-common": "npm:7.6.17" + "@storybook/core-events": "npm:7.6.17" "@storybook/csf": "npm:^0.1.2" - "@storybook/csf-tools": "npm:7.6.7" + "@storybook/csf-tools": "npm:7.6.17" "@storybook/docs-mdx": "npm:^0.1.0" "@storybook/global": "npm:^5.0.0" - "@storybook/manager": "npm:7.6.7" - "@storybook/node-logger": "npm:7.6.7" - "@storybook/preview-api": "npm:7.6.7" - "@storybook/telemetry": "npm:7.6.7" - "@storybook/types": "npm:7.6.7" + "@storybook/manager": "npm:7.6.17" + "@storybook/node-logger": "npm:7.6.17" + "@storybook/preview-api": "npm:7.6.17" + "@storybook/telemetry": "npm:7.6.17" + "@storybook/types": "npm:7.6.17" + "@types/detect-port": "npm:^1.3.0" + "@types/node": "npm:^18.0.0" + "@types/pretty-hrtime": "npm:^1.0.0" + "@types/semver": "npm:^7.3.4" + better-opn: "npm:^3.0.2" + chalk: "npm:^4.1.0" + cli-table3: "npm:^0.6.1" + compression: "npm:^1.7.4" + detect-port: "npm:^1.3.0" + express: "npm:^4.17.3" + fs-extra: "npm:^11.1.0" + globby: "npm:^11.0.2" + ip: "npm:^2.0.1" + lodash: "npm:^4.17.21" + open: "npm:^8.4.0" + pretty-hrtime: "npm:^1.0.3" + prompts: "npm:^2.4.0" + read-pkg-up: "npm:^7.0.1" + semver: "npm:^7.3.7" + telejson: "npm:^7.2.0" + tiny-invariant: "npm:^1.3.1" + ts-dedent: "npm:^2.0.0" + util: "npm:^0.12.4" + util-deprecate: "npm:^1.0.2" + watchpack: "npm:^2.2.0" + ws: "npm:^8.2.3" + checksum: b56077bea18c22151adb72c96efb1717034314b08bba5cae12b1f8a0e4135773f5c1e334ad3523dfeb578078b2d41a6091e2b0a992a110ca1859fdd89b1a4702 + languageName: node + linkType: hard + +"@storybook/core-server@npm:7.6.3": + version: 7.6.3 + resolution: "@storybook/core-server@npm:7.6.3" + dependencies: + "@aw-web-design/x-default-browser": "npm:1.4.126" + "@discoveryjs/json-ext": "npm:^0.5.3" + "@storybook/builder-manager": "npm:7.6.3" + "@storybook/channels": "npm:7.6.3" + "@storybook/core-common": "npm:7.6.3" + "@storybook/core-events": "npm:7.6.3" + "@storybook/csf": "npm:^0.1.2" + "@storybook/csf-tools": "npm:7.6.3" + "@storybook/docs-mdx": "npm:^0.1.0" + "@storybook/global": "npm:^5.0.0" + "@storybook/manager": "npm:7.6.3" + "@storybook/node-logger": "npm:7.6.3" + "@storybook/preview-api": "npm:7.6.3" + "@storybook/telemetry": "npm:7.6.3" + "@storybook/types": "npm:7.6.3" "@types/detect-port": "npm:^1.3.0" "@types/node": "npm:^18.0.0" "@types/pretty-hrtime": "npm:^1.0.0" @@ -13345,7 +13915,17 @@ __metadata: util-deprecate: "npm:^1.0.2" watchpack: "npm:^2.2.0" ws: "npm:^8.2.3" - checksum: 45fbac92bbc00fddc7e5052f8ca534ecf55f2972509809761509c88e1ded9e1cc5cd415c2f5bce2171d4effbfc21162ce60cc5c7d18a0a53be2a5891c122d84a + checksum: f02489b1848f6f445a7723b90d79749e5fee0d7f34a3f9e39e11fc094ff7805e6ebfdc74e8a66dd1a3abbe4998c8de1d2952ccfc19e4bc91ab6391f65ffbebe2 + languageName: node + linkType: hard + +"@storybook/csf-plugin@npm:7.6.17": + version: 7.6.17 + resolution: "@storybook/csf-plugin@npm:7.6.17" + dependencies: + "@storybook/csf-tools": "npm:7.6.17" + unplugin: "npm:^1.3.1" + checksum: 720ecbd2e845f6d6d575b8fb5b05a085ddba1eb486318a9b7d6f2ea6646fe3e62d7c9589e18aab15ce0a715c653c9d24b2e0f38117e92845e636f0410a85f76d languageName: node linkType: hard @@ -13359,6 +13939,40 @@ __metadata: languageName: node linkType: hard +"@storybook/csf-tools@npm:7.6.17": + version: 7.6.17 + resolution: "@storybook/csf-tools@npm:7.6.17" + dependencies: + "@babel/generator": "npm:^7.23.0" + "@babel/parser": "npm:^7.23.0" + "@babel/traverse": "npm:^7.23.2" + "@babel/types": "npm:^7.23.0" + "@storybook/csf": "npm:^0.1.2" + "@storybook/types": "npm:7.6.17" + fs-extra: "npm:^11.1.0" + recast: "npm:^0.23.1" + ts-dedent: "npm:^2.0.0" + checksum: 827458c97de27127a026d6f4592ad8760f27b69dc1082251710b8067b0616bf2c6b9c13b12cbf12a8162a6528d92ca81839cf78d0d10d09978d3ccdedaca7bce + languageName: node + linkType: hard + +"@storybook/csf-tools@npm:7.6.3": + version: 7.6.3 + resolution: "@storybook/csf-tools@npm:7.6.3" + dependencies: + "@babel/generator": "npm:^7.23.0" + "@babel/parser": "npm:^7.23.0" + "@babel/traverse": "npm:^7.23.2" + "@babel/types": "npm:^7.23.0" + "@storybook/csf": "npm:^0.1.2" + "@storybook/types": "npm:7.6.3" + fs-extra: "npm:^11.1.0" + recast: "npm:^0.23.1" + ts-dedent: "npm:^2.0.0" + checksum: 31a4c2ea5abfd7c2d29bee8b642f4079e6ac21bb379f21b94494f3b79ea139d9c3cb0fb33bda6b1f50ab467b4984e683490d35b73a7965fb0e9978cb5b7ceed5 + languageName: node + linkType: hard + "@storybook/csf-tools@npm:7.6.7, @storybook/csf-tools@npm:^7.0.0-beta.0 || ^7.0.0-rc.0 || ^7.0.0": version: 7.6.7 resolution: "@storybook/csf-tools@npm:7.6.7" @@ -13401,6 +14015,21 @@ __metadata: languageName: node linkType: hard +"@storybook/docs-tools@npm:7.6.17": + version: 7.6.17 + resolution: "@storybook/docs-tools@npm:7.6.17" + dependencies: + "@storybook/core-common": "npm:7.6.17" + "@storybook/preview-api": "npm:7.6.17" + "@storybook/types": "npm:7.6.17" + "@types/doctrine": "npm:^0.0.3" + assert: "npm:^2.1.0" + doctrine: "npm:^3.0.0" + lodash: "npm:^4.17.21" + checksum: 38473d0ce609cee38df5a8f3ad34a23ce6050e06b492cab51052ba67a2c6ecece532e0dee9f5e3cc5dee3d7105233289d05465a7ae0f5cb94fd2bbda1c267d38 + languageName: node + linkType: hard + "@storybook/docs-tools@npm:7.6.7": version: 7.6.7 resolution: "@storybook/docs-tools@npm:7.6.7" @@ -13416,6 +14045,15 @@ __metadata: languageName: node linkType: hard +"@storybook/expect@npm:storybook-jest": + version: 28.1.3-5 + resolution: "@storybook/expect@npm:28.1.3-5" + dependencies: + "@types/jest": "npm:28.1.3" + checksum: ea912b18e1353cdd3bbdf93667ffebca7f843fa28a01e647429bffa6cb074afd4401d13eb2ecbfc9714e100e128ec1fe2686bded52e9e378ce44774889563558 + languageName: node + linkType: hard + "@storybook/global@npm:^5.0.0": version: 5.0.0 resolution: "@storybook/global@npm:5.0.0" @@ -13423,6 +14061,16 @@ __metadata: languageName: node linkType: hard +"@storybook/icons@npm:^1.2.9": + version: 1.2.9 + resolution: "@storybook/icons@npm:1.2.9" + peerDependencies: + react: ^16.8.0 || ^17.0.0 || ^18.0.0 + react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 + checksum: 37513dbf526bf827941ee274e0f8358c6db41c963ffd0c408a674d794fa9af8d835e0dc4e58fd589106c4f33da5552aa8315ae45745f0c107ade0f6299cbf710 + languageName: node + linkType: hard + "@storybook/instrumenter@npm:7.6.7": version: 7.6.7 resolution: "@storybook/instrumenter@npm:7.6.7" @@ -13438,6 +14086,18 @@ __metadata: languageName: node linkType: hard +"@storybook/jest@npm:^0.2.3": + version: 0.2.3 + resolution: "@storybook/jest@npm:0.2.3" + dependencies: + "@storybook/expect": "npm:storybook-jest" + "@testing-library/jest-dom": "npm:^6.1.2" + "@types/jest": "npm:28.1.3" + jest-mock: "npm:^27.3.0" + checksum: a2c367649ae53d9385b16f49bd73d5a928a2c3b9e64c2efcc1bbfc081b3b75972293bbe0e1828b67c94f0c2ed96341e0fae0ad5e30484a0ed4715724bbbf2c76 + languageName: node + linkType: hard + "@storybook/manager-api@npm:7.6.7": version: 7.6.7 resolution: "@storybook/manager-api@npm:7.6.7" @@ -13460,10 +14120,17 @@ __metadata: languageName: node linkType: hard -"@storybook/manager@npm:7.6.7": - version: 7.6.7 - resolution: "@storybook/manager@npm:7.6.7" - checksum: 5b50ea2faeafaaa4448aea6456ee5800a6d625814063ca4d301fe43e3b9a7bf5e45427663e66bb798bef91f1615bdb4d2b12328c27dfc4dc783c086928cea395 +"@storybook/manager@npm:7.6.17": + version: 7.6.17 + resolution: "@storybook/manager@npm:7.6.17" + checksum: e703466e95b0fca58963ac0abec188164e6bce904471171dd360c0d63ead0183a5b242db034af63157acd42d38348984e5fe4e6414af6190234c4d5d41608cee + languageName: node + linkType: hard + +"@storybook/manager@npm:7.6.3": + version: 7.6.3 + resolution: "@storybook/manager@npm:7.6.3" + checksum: df7753e6dded87a058b489ad1caba819bb983c343b5af0c18b6bdf597cb4082783d90f58a82ea5e7ba1ffced93b1b66b8effd11560712ebd598824633f6647dd languageName: node linkType: hard @@ -13474,6 +14141,20 @@ __metadata: languageName: node linkType: hard +"@storybook/node-logger@npm:7.6.17": + version: 7.6.17 + resolution: "@storybook/node-logger@npm:7.6.17" + checksum: 7b91f10812b8ea4e8716c3b133c5a78ac419e6bcd6a6ab80117cee25287aa973c1710a74a882238697499a1eca6521c4171f4f2d2e8651fb8ef6e28b7ee167fe + languageName: node + linkType: hard + +"@storybook/node-logger@npm:7.6.3": + version: 7.6.3 + resolution: "@storybook/node-logger@npm:7.6.3" + checksum: adb880f276bc75a24cf7051d189fa888151a6d8f6ecb674229f4c4d2c178c5e3873d3ec26f9d99f850ed045268d207dc7718a63f3cdc9043302264134fe8fdbd + languageName: node + linkType: hard + "@storybook/node-logger@npm:7.6.7": version: 7.6.7 resolution: "@storybook/node-logger@npm:7.6.7" @@ -13488,6 +14169,50 @@ __metadata: languageName: node linkType: hard +"@storybook/preview-api@npm:7.6.17": + version: 7.6.17 + resolution: "@storybook/preview-api@npm:7.6.17" + dependencies: + "@storybook/channels": "npm:7.6.17" + "@storybook/client-logger": "npm:7.6.17" + "@storybook/core-events": "npm:7.6.17" + "@storybook/csf": "npm:^0.1.2" + "@storybook/global": "npm:^5.0.0" + "@storybook/types": "npm:7.6.17" + "@types/qs": "npm:^6.9.5" + dequal: "npm:^2.0.2" + lodash: "npm:^4.17.21" + memoizerific: "npm:^1.11.3" + qs: "npm:^6.10.0" + synchronous-promise: "npm:^2.0.15" + ts-dedent: "npm:^2.0.0" + util-deprecate: "npm:^1.0.2" + checksum: b4357ee0c1f9b05feee051d0c0ed3343972277f12d9d033fcc59acfb18d336cecc4a5f0b23998011af4a92c8126e785b2931dbdbdf79787aac5756a01c32aee0 + languageName: node + linkType: hard + +"@storybook/preview-api@npm:7.6.3": + version: 7.6.3 + resolution: "@storybook/preview-api@npm:7.6.3" + dependencies: + "@storybook/channels": "npm:7.6.3" + "@storybook/client-logger": "npm:7.6.3" + "@storybook/core-events": "npm:7.6.3" + "@storybook/csf": "npm:^0.1.2" + "@storybook/global": "npm:^5.0.0" + "@storybook/types": "npm:7.6.3" + "@types/qs": "npm:^6.9.5" + dequal: "npm:^2.0.2" + lodash: "npm:^4.17.21" + memoizerific: "npm:^1.11.3" + qs: "npm:^6.10.0" + synchronous-promise: "npm:^2.0.15" + ts-dedent: "npm:^2.0.0" + util-deprecate: "npm:^1.0.2" + checksum: eb103973b0722096d5a44aa5d2e64bd8c8fb1a012c49231df97e3013b6dce181833fb4afb791f199d6e2c05ffc7b85a2988b3b16d701b4a6d41e968c72798acf + languageName: node + linkType: hard + "@storybook/preview-api@npm:7.6.7, @storybook/preview-api@npm:^7.0.0-beta.0 || ^7.0.0-rc.0 || ^7.0.0": version: 7.6.7 resolution: "@storybook/preview-api@npm:7.6.7" @@ -13510,10 +14235,20 @@ __metadata: languageName: node linkType: hard -"@storybook/preview@npm:7.6.7": - version: 7.6.7 - resolution: "@storybook/preview@npm:7.6.7" - checksum: 04bad205c4bade10111085443f49faf2f11a130d9046f08b63f5ab0ebc06848b34c0d4091f951ce5d6b725672974f7af1d9589842130996a266853a2f5d24d29 +"@storybook/preview@npm:7.6.17": + version: 7.6.17 + resolution: "@storybook/preview@npm:7.6.17" + checksum: b4a2394c4622ff7291ba1b161d537902c53ed52ae3511c65e10c934b04463f6e7e55487b88889800acab55ea1c0aa33ea2a207786f3e06eda4617787f859da6b + languageName: node + linkType: hard + +"@storybook/react-dom-shim@npm:7.6.17": + version: 7.6.17 + resolution: "@storybook/react-dom-shim@npm:7.6.17" + peerDependencies: + react: ^16.8.0 || ^17.0.0 || ^18.0.0 + react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 + checksum: 20558c58f9f0a3a00c5a1bbf2aa3517e3d318e6528f503129c99fb9ee4b604a225e79725f67e01e6e99d5d8c7db0614575dcc89af7768381afe59c976cb7cfc0 languageName: node linkType: hard @@ -13528,13 +14263,13 @@ __metadata: linkType: hard "@storybook/react-vite@npm:^7.6.3": - version: 7.6.7 - resolution: "@storybook/react-vite@npm:7.6.7" + version: 7.6.17 + resolution: "@storybook/react-vite@npm:7.6.17" dependencies: "@joshwooding/vite-plugin-react-docgen-typescript": "npm:0.3.0" "@rollup/pluginutils": "npm:^5.0.2" - "@storybook/builder-vite": "npm:7.6.7" - "@storybook/react": "npm:7.6.7" + "@storybook/builder-vite": "npm:7.6.17" + "@storybook/react": "npm:7.6.17" "@vitejs/plugin-react": "npm:^3.0.1" magic-string: "npm:^0.30.0" react-docgen: "npm:^7.0.0" @@ -13542,11 +14277,47 @@ __metadata: react: ^16.8.0 || ^17.0.0 || ^18.0.0 react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 vite: ^3.0.0 || ^4.0.0 || ^5.0.0 - checksum: 7c5b681be888e2277af0be1e4c59927838bdfc54bc4ee919aa6bec4f08a491210bba82f8a0cd94181136e1d082cbc81982c1fb8d55a0dbddf1003526d1e405fc + checksum: 2b45d09f17421d102b7599c55495b9c1688012f9761492493abf55dcfe8c23d65a4465ed6d5f96bb8e41475bbca103f4e0a285f65df85e17f8e82dce673b77dc languageName: node linkType: hard -"@storybook/react@npm:7.6.7, @storybook/react@npm:^7.6.3": +"@storybook/react@npm:7.6.17": + version: 7.6.17 + resolution: "@storybook/react@npm:7.6.17" + dependencies: + "@storybook/client-logger": "npm:7.6.17" + "@storybook/core-client": "npm:7.6.17" + "@storybook/docs-tools": "npm:7.6.17" + "@storybook/global": "npm:^5.0.0" + "@storybook/preview-api": "npm:7.6.17" + "@storybook/react-dom-shim": "npm:7.6.17" + "@storybook/types": "npm:7.6.17" + "@types/escodegen": "npm:^0.0.6" + "@types/estree": "npm:^0.0.51" + "@types/node": "npm:^18.0.0" + acorn: "npm:^7.4.1" + acorn-jsx: "npm:^5.3.1" + acorn-walk: "npm:^7.2.0" + escodegen: "npm:^2.1.0" + html-tags: "npm:^3.1.0" + lodash: "npm:^4.17.21" + prop-types: "npm:^15.7.2" + react-element-to-jsx-string: "npm:^15.0.0" + ts-dedent: "npm:^2.0.0" + type-fest: "npm:~2.19" + util-deprecate: "npm:^1.0.2" + peerDependencies: + react: ^16.8.0 || ^17.0.0 || ^18.0.0 + react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 + typescript: "*" + peerDependenciesMeta: + typescript: + optional: true + checksum: 747bb48413865701716652b9587c8c5b07cc51cb1d54125a69a4ec355f24fdcfc3a9d925a0b6268786875e97addf435e10efe737450e50eea1d19408049674e6 + languageName: node + linkType: hard + +"@storybook/react@npm:^7.6.3": version: 7.6.7 resolution: "@storybook/react@npm:7.6.7" dependencies: @@ -13593,7 +14364,39 @@ __metadata: languageName: node linkType: hard -"@storybook/telemetry@npm:7.6.7, @storybook/telemetry@npm:^7.1.0": +"@storybook/telemetry@npm:7.6.17": + version: 7.6.17 + resolution: "@storybook/telemetry@npm:7.6.17" + dependencies: + "@storybook/client-logger": "npm:7.6.17" + "@storybook/core-common": "npm:7.6.17" + "@storybook/csf-tools": "npm:7.6.17" + chalk: "npm:^4.1.0" + detect-package-manager: "npm:^2.0.1" + fetch-retry: "npm:^5.0.2" + fs-extra: "npm:^11.1.0" + read-pkg-up: "npm:^7.0.1" + checksum: 2d13afef0fd73982c1efec1598583ed592bd608bbc61f9c4d96c47be9202d80043041764e00ea3b10b0636417cfbfe7b3d13c6898187a09554c8a696f89ac226 + languageName: node + linkType: hard + +"@storybook/telemetry@npm:7.6.3": + version: 7.6.3 + resolution: "@storybook/telemetry@npm:7.6.3" + dependencies: + "@storybook/client-logger": "npm:7.6.3" + "@storybook/core-common": "npm:7.6.3" + "@storybook/csf-tools": "npm:7.6.3" + chalk: "npm:^4.1.0" + detect-package-manager: "npm:^2.0.1" + fetch-retry: "npm:^5.0.2" + fs-extra: "npm:^11.1.0" + read-pkg-up: "npm:^7.0.1" + checksum: 197ec4a77d8f119ac03c986653b2d9a00adc22b3ee8d70753c5fd4365cfc82dca3d097048d3b3b917414389d41fe161d6b383f6c2edad457301856644160ed3a + languageName: node + linkType: hard + +"@storybook/telemetry@npm:^7.1.0": version: 7.6.7 resolution: "@storybook/telemetry@npm:7.6.7" dependencies: @@ -13667,6 +14470,17 @@ __metadata: languageName: node linkType: hard +"@storybook/testing-library@npm:^0.2.2": + version: 0.2.2 + resolution: "@storybook/testing-library@npm:0.2.2" + dependencies: + "@testing-library/dom": "npm:^9.0.0" + "@testing-library/user-event": "npm:^14.4.0" + ts-dedent: "npm:^2.2.0" + checksum: 3179c74148c92267ea449068ce9fb00bf960dbf06654354de7869428415d16dc730a0d58b5adca7619d21e5a058ae0bf713e34c09be8bca574388ec0106c5068 + languageName: node + linkType: hard + "@storybook/theming@npm:7.6.7": version: 7.6.7 resolution: "@storybook/theming@npm:7.6.7" @@ -13682,6 +14496,30 @@ __metadata: languageName: node linkType: hard +"@storybook/types@npm:7.6.17": + version: 7.6.17 + resolution: "@storybook/types@npm:7.6.17" + dependencies: + "@storybook/channels": "npm:7.6.17" + "@types/babel__core": "npm:^7.0.0" + "@types/express": "npm:^4.7.0" + file-system-cache: "npm:2.3.0" + checksum: 7de04987b44b2d78d9e6ff39b54ece657b1d5266cc180a6b1a192ab394f893f8352578d9c8d0d2327e21689843a1c314f08e05eec18992d78a8d9347b0bcc72a + languageName: node + linkType: hard + +"@storybook/types@npm:7.6.3": + version: 7.6.3 + resolution: "@storybook/types@npm:7.6.3" + dependencies: + "@storybook/channels": "npm:7.6.3" + "@types/babel__core": "npm:^7.0.0" + "@types/express": "npm:^4.7.0" + file-system-cache: "npm:2.3.0" + checksum: 301ed3cb058cb0c49bc5b20fa8d18bfa6714ea6a000ba532dd5800fc63c9318779e5ccb1ba9cc356316ff7eeb6ccb732c97a5a4fdb637ccb7768c5fb533d8367 + languageName: node + linkType: hard + "@storybook/types@npm:7.6.7": version: 7.6.7 resolution: "@storybook/types@npm:7.6.7" @@ -14052,11 +14890,12 @@ __metadata: linkType: hard "@swc-node/core@npm:^1.10.6": - version: 1.10.6 - resolution: "@swc-node/core@npm:1.10.6" + version: 1.13.0 + resolution: "@swc-node/core@npm:1.13.0" peerDependencies: "@swc/core": ">= 1.3" - checksum: cadcd927b3ab02a2888b7da43d80d5a6e19b4100e5b757ef7a4148123ce2940202053a0c412f20664e1eb18185fca26371f3cac3f866c4d2b1df5e8d2e63b99f + "@swc/types": ">= 0.1" + checksum: c41c6fcd155bb6904590d6c8dbd012a5a18dbfac55ab469220a35db47b252c0b5f3baeef9d5438249c3f2823eb9ec5e33566eb2e9b310e07c7f6ab3d207def69 languageName: node linkType: hard @@ -14344,6 +15183,15 @@ __metadata: languageName: node linkType: hard +"@swc/helpers@npm:~0.5.2": + version: 0.5.6 + resolution: "@swc/helpers@npm:0.5.6" + dependencies: + tslib: "npm:^2.4.0" + checksum: ae43e2130b0c47a8c5dc51148925604707ee7801fef90674f71d2266a98b272c8f16145931fc7d51daf6795c4f3a86ccecd472e94a7ea562e0db7c333447d9e6 + languageName: node + linkType: hard + "@swc/jest@npm:^0.2.23, @swc/jest@npm:^0.2.29": version: 0.2.29 resolution: "@swc/jest@npm:0.2.29" @@ -14441,6 +15289,39 @@ __metadata: languageName: node linkType: hard +"@testing-library/jest-dom@npm:^6.1.2": + version: 6.4.2 + resolution: "@testing-library/jest-dom@npm:6.4.2" + dependencies: + "@adobe/css-tools": "npm:^4.3.2" + "@babel/runtime": "npm:^7.9.2" + aria-query: "npm:^5.0.0" + chalk: "npm:^3.0.0" + css.escape: "npm:^1.5.1" + dom-accessibility-api: "npm:^0.6.3" + lodash: "npm:^4.17.15" + redent: "npm:^3.0.0" + peerDependencies: + "@jest/globals": ">= 28" + "@types/bun": "*" + "@types/jest": ">= 28" + jest: ">= 28" + vitest: ">= 0.32" + peerDependenciesMeta: + "@jest/globals": + optional: true + "@types/bun": + optional: true + "@types/jest": + optional: true + jest: + optional: true + vitest: + optional: true + checksum: e7eba527b34ce30cde94424d2ec685bdfed51daaafb7df9b68b51aec6052e99a50c8bfe654612dacdf857a1eb81d68cf294fc89de558ee3a992bf7a6019fffcc + languageName: node + linkType: hard + "@testing-library/jest-dom@npm:^6.1.3, @testing-library/jest-dom@npm:^6.1.5": version: 6.2.0 resolution: "@testing-library/jest-dom@npm:6.2.0" @@ -14494,6 +15375,15 @@ __metadata: languageName: node linkType: hard +"@testing-library/user-event@npm:^14.4.0": + version: 14.5.2 + resolution: "@testing-library/user-event@npm:14.5.2" + peerDependencies: + "@testing-library/dom": ">=7.21.4" + checksum: 68a0c2aa28a3c8e6eb05cafee29705438d7d8a9427423ce5064d44f19c29e89b5636de46dd2f28620fb10abba75c67130185bbc3aa23ac1163a227a5f36641e1 + languageName: node + linkType: hard + "@tiptap/core@npm:^2.0.3": version: 2.1.13 resolution: "@tiptap/core@npm:2.1.13" @@ -14975,6 +15865,22 @@ __metadata: languageName: node linkType: hard +"@types/chai-subset@npm:^1.3.3": + version: 1.3.5 + resolution: "@types/chai-subset@npm:1.3.5" + dependencies: + "@types/chai": "npm:*" + checksum: d5cfb483917b0fdf245c8c51d1fa35a2c302295dfc5383ee4faa545db49a28ea169650bb1b75de2cd31f6f8e486a856d241acf9e0456fc93cb74ac18dfdfd19d + languageName: node + linkType: hard + +"@types/chai@npm:*, @types/chai@npm:^4.3.5": + version: 4.3.12 + resolution: "@types/chai@npm:4.3.12" + checksum: e5d952726d7f053812579962b07d0e4965c160c6a90bf466580e639cd3a1f1d30da1abbfe782383538a043a07908f9dfb823fa9065b37752a5f27d62234f44d5 + languageName: node + linkType: hard + "@types/chai@npm:^4": version: 4.3.11 resolution: "@types/chai@npm:4.3.11" @@ -15488,6 +16394,16 @@ __metadata: languageName: node linkType: hard +"@types/jest@npm:28.1.3": + version: 28.1.3 + resolution: "@types/jest@npm:28.1.3" + dependencies: + jest-matcher-utils: "npm:^28.0.0" + pretty-format: "npm:^28.0.0" + checksum: d295db8680b5c230698345d6caae621ea9fa8720309027e2306fabfd8769679b4bd7474b4f6e03788905c934eff62105bc0a3e3f1e174feee51b4551d49ac42a + languageName: node + linkType: hard + "@types/jest@npm:^29.5.11": version: 29.5.11 resolution: "@types/jest@npm:29.5.11" @@ -16810,6 +17726,17 @@ __metadata: languageName: node linkType: hard +"@vitest/expect@npm:0.34.6": + version: 0.34.6 + resolution: "@vitest/expect@npm:0.34.6" + dependencies: + "@vitest/spy": "npm:0.34.6" + "@vitest/utils": "npm:0.34.6" + chai: "npm:^4.3.10" + checksum: d68abc53d673c2c98cad84da4fa73bd407d59a1098ca528c6925c202321d4eeecde5eaf512980614a755200ae1aa6b648d44da09b78ce4cc95aa78eff8ee558a + languageName: node + linkType: hard + "@vitest/expect@npm:^0.34.2": version: 0.34.7 resolution: "@vitest/expect@npm:0.34.7" @@ -16821,6 +17748,37 @@ __metadata: languageName: node linkType: hard +"@vitest/runner@npm:0.34.6": + version: 0.34.6 + resolution: "@vitest/runner@npm:0.34.6" + dependencies: + "@vitest/utils": "npm:0.34.6" + p-limit: "npm:^4.0.0" + pathe: "npm:^1.1.1" + checksum: d00d8c399513693eb6c82fd08b0e32fcf486bede5b88805e8dea90e156d502418477788b501b1c078abd38f0147e99a187061b2da81819e8d5c162a63edf5b40 + languageName: node + linkType: hard + +"@vitest/snapshot@npm:0.34.6": + version: 0.34.6 + resolution: "@vitest/snapshot@npm:0.34.6" + dependencies: + magic-string: "npm:^0.30.1" + pathe: "npm:^1.1.1" + pretty-format: "npm:^29.5.0" + checksum: 08dbfb3cb6d202116e981abf421096eae920d65bca867c38651b02d2623e25a18e2ead6e5de13a49ebe9f2f9d007b2f692714aa6a5c9f18c3ff17b9f8726dbab + languageName: node + linkType: hard + +"@vitest/spy@npm:0.34.6": + version: 0.34.6 + resolution: "@vitest/spy@npm:0.34.6" + dependencies: + tinyspy: "npm:^2.1.1" + checksum: ea36d31c521f4c458f7e439ceeb0d1e5c2e9298aaafad7c9bc5ebe75f36c9b871c1f3a6dcb5bfd6c4e83b34979d511f9a7830fa8720b7e1faa18ef121845e9d5 + languageName: node + linkType: hard + "@vitest/spy@npm:0.34.7, @vitest/spy@npm:^0.34.1": version: 0.34.7 resolution: "@vitest/spy@npm:0.34.7" @@ -16830,6 +17788,34 @@ __metadata: languageName: node linkType: hard +"@vitest/ui@npm:~0.34.6": + version: 0.34.7 + resolution: "@vitest/ui@npm:0.34.7" + dependencies: + "@vitest/utils": "npm:0.34.7" + fast-glob: "npm:^3.3.0" + fflate: "npm:^0.8.0" + flatted: "npm:^3.2.7" + pathe: "npm:^1.1.1" + picocolors: "npm:^1.0.0" + sirv: "npm:^2.0.3" + peerDependencies: + vitest: ">=0.30.1 <1" + checksum: d0430602d37d177392bd640dc61ba7ee7e1cf228e12e966404be0287d0b6d454a5350f34bd6b0d6571727ae5b09125ac90654ed4a7a1f3d38fe98d08f29a08f3 + languageName: node + linkType: hard + +"@vitest/utils@npm:0.34.6": + version: 0.34.6 + resolution: "@vitest/utils@npm:0.34.6" + dependencies: + diff-sequences: "npm:^29.4.3" + loupe: "npm:^2.3.6" + pretty-format: "npm:^29.5.0" + checksum: 6f32f086b8bf0e8125a11b26cad4ce77ad90943590b55cd1ebb1424412d1feb6d404ee4ded523c346a8f222c265251652b4888f2ede769e3d7fce6fb1ee0a620 + languageName: node + linkType: hard + "@vitest/utils@npm:0.34.7, @vitest/utils@npm:^0.34.6": version: 0.34.7 resolution: "@vitest/utils@npm:0.34.7" @@ -17320,7 +18306,7 @@ __metadata: languageName: node linkType: hard -"acorn@npm:^8.11.3": +"acorn@npm:^8.10.0, acorn@npm:^8.11.3": version: 8.11.3 resolution: "acorn@npm:8.11.3" bin: @@ -18375,6 +19361,17 @@ __metadata: languageName: node linkType: hard +"axios@npm:^1.6.0": + version: 1.6.7 + resolution: "axios@npm:1.6.7" + dependencies: + follow-redirects: "npm:^1.15.4" + form-data: "npm:^4.0.0" + proxy-from-env: "npm:^1.1.0" + checksum: 131bf8e62eee48ca4bd84e6101f211961bf6a21a33b95e5dfb3983d5a2fe50d9fffde0b57668d7ce6f65063d3dc10f2212cbcb554f75cfca99da1c73b210358d + languageName: node + linkType: hard + "axobject-query@npm:^3.2.1": version: 3.2.1 resolution: "axobject-query@npm:3.2.1" @@ -18744,6 +19741,19 @@ __metadata: languageName: node linkType: hard +"babel-plugin-polyfill-corejs2@npm:^0.4.8": + version: 0.4.9 + resolution: "babel-plugin-polyfill-corejs2@npm:0.4.9" + dependencies: + "@babel/compat-data": "npm:^7.22.6" + "@babel/helper-define-polyfill-provider": "npm:^0.6.0" + semver: "npm:^6.3.1" + peerDependencies: + "@babel/core": ^7.4.0 || ^8.0.0-0 <8.0.0 + checksum: 2cd47af763eb40aa41f1d6d9cbf1bdd217ff6c28f614b057c0328ee42a4d82cbcdcbc7d081d93e2a2d80446c899f25c3ebec048a63d260ef65a0a364134f71cd + languageName: node + linkType: hard + "babel-plugin-polyfill-corejs3@npm:^0.8.7": version: 0.8.7 resolution: "babel-plugin-polyfill-corejs3@npm:0.8.7" @@ -18756,6 +19766,18 @@ __metadata: languageName: node linkType: hard +"babel-plugin-polyfill-corejs3@npm:^0.9.0": + version: 0.9.0 + resolution: "babel-plugin-polyfill-corejs3@npm:0.9.0" + dependencies: + "@babel/helper-define-polyfill-provider": "npm:^0.5.0" + core-js-compat: "npm:^3.34.0" + peerDependencies: + "@babel/core": ^7.4.0 || ^8.0.0-0 <8.0.0 + checksum: b857010736c5e42e20b683973dae862448a42082fcc95b3ef188305a6864a4f94b5cbd568e49e4cd7172c6b2eace7bc403c3ba0984fbe5479474ade01126d559 + languageName: node + linkType: hard + "babel-plugin-polyfill-regenerator@npm:^0.5.4": version: 0.5.4 resolution: "babel-plugin-polyfill-regenerator@npm:0.5.4" @@ -18767,6 +19789,17 @@ __metadata: languageName: node linkType: hard +"babel-plugin-polyfill-regenerator@npm:^0.5.5": + version: 0.5.5 + resolution: "babel-plugin-polyfill-regenerator@npm:0.5.5" + dependencies: + "@babel/helper-define-polyfill-provider": "npm:^0.5.0" + peerDependencies: + "@babel/core": ^7.4.0 || ^8.0.0-0 <8.0.0 + checksum: 2aab692582082d54e0df9f9373dca1b223e65b4e7e96440160f27ed8803d417a1fa08da550f08aa3820d2010329ca91b68e2b6e9bd7aed51c93d46dfe79629bb + languageName: node + linkType: hard + "babel-plugin-syntax-async-functions@npm:^6.8.0": version: 6.13.0 resolution: "babel-plugin-syntax-async-functions@npm:6.13.0" @@ -20194,7 +21227,7 @@ __metadata: languageName: node linkType: hard -"cac@npm:^6.7.12": +"cac@npm:^6.7.12, cac@npm:^6.7.14": version: 6.7.14 resolution: "cac@npm:6.7.14" checksum: 4ee06aaa7bab8981f0d54e5f5f9d4adcd64058e9697563ce336d8a3878ed018ee18ebe5359b2430eceae87e0758e62ea2019c3f52ae6e211b1bd2e133856cd10 @@ -23410,6 +24443,13 @@ __metadata: languageName: node linkType: hard +"diff-sequences@npm:^28.1.1": + version: 28.1.1 + resolution: "diff-sequences@npm:28.1.1" + checksum: 26f29fa3f6b8c9040c3c6f6dab85413d90a09c8e6cb17b318bbcf64f225d7dcb1fb64392f3a9919a90888b434c4f6c8a4cc4f807aad02bbabae912c5d13c31f7 + languageName: node + linkType: hard + "diff-sequences@npm:^29.4.3, diff-sequences@npm:^29.6.3": version: 29.6.3 resolution: "diff-sequences@npm:29.6.3" @@ -25004,6 +26044,54 @@ __metadata: languageName: node linkType: hard +"eslint@npm:^8.0.0": + version: 8.57.0 + resolution: "eslint@npm:8.57.0" + dependencies: + "@eslint-community/eslint-utils": "npm:^4.2.0" + "@eslint-community/regexpp": "npm:^4.6.1" + "@eslint/eslintrc": "npm:^2.1.4" + "@eslint/js": "npm:8.57.0" + "@humanwhocodes/config-array": "npm:^0.11.14" + "@humanwhocodes/module-importer": "npm:^1.0.1" + "@nodelib/fs.walk": "npm:^1.2.8" + "@ungap/structured-clone": "npm:^1.2.0" + ajv: "npm:^6.12.4" + chalk: "npm:^4.0.0" + cross-spawn: "npm:^7.0.2" + debug: "npm:^4.3.2" + doctrine: "npm:^3.0.0" + escape-string-regexp: "npm:^4.0.0" + eslint-scope: "npm:^7.2.2" + eslint-visitor-keys: "npm:^3.4.3" + espree: "npm:^9.6.1" + esquery: "npm:^1.4.2" + esutils: "npm:^2.0.2" + fast-deep-equal: "npm:^3.1.3" + file-entry-cache: "npm:^6.0.1" + find-up: "npm:^5.0.0" + glob-parent: "npm:^6.0.2" + globals: "npm:^13.19.0" + graphemer: "npm:^1.4.0" + ignore: "npm:^5.2.0" + imurmurhash: "npm:^0.1.4" + is-glob: "npm:^4.0.0" + is-path-inside: "npm:^3.0.3" + js-yaml: "npm:^4.1.0" + json-stable-stringify-without-jsonify: "npm:^1.0.1" + levn: "npm:^0.4.1" + lodash.merge: "npm:^4.6.2" + minimatch: "npm:^3.1.2" + natural-compare: "npm:^1.4.0" + optionator: "npm:^0.9.3" + strip-ansi: "npm:^6.0.1" + text-table: "npm:^0.2.0" + bin: + eslint: bin/eslint.js + checksum: 00bb96fd2471039a312435a6776fe1fd557c056755eaa2b96093ef3a8508c92c8775d5f754768be6b1dddd09fdd3379ddb231eeb9b6c579ee17ea7d68000a529 + languageName: node + linkType: hard + "eslint@npm:^8.53.0": version: 8.56.0 resolution: "eslint@npm:8.56.0" @@ -25820,6 +26908,13 @@ __metadata: languageName: node linkType: hard +"fflate@npm:^0.8.0": + version: 0.8.2 + resolution: "fflate@npm:0.8.2" + checksum: 03448d630c0a583abea594835a9fdb2aaf7d67787055a761515bf4ed862913cfd693b4c4ffd5c3f3b355a70cf1e19033e9ae5aedcca103188aaff91b8bd6e293 + languageName: node + linkType: hard + "figures@npm:3.2.0, figures@npm:^3.0.0": version: 3.2.0 resolution: "figures@npm:3.2.0" @@ -26123,6 +27218,13 @@ __metadata: languageName: node linkType: hard +"flatted@npm:^3.2.7": + version: 3.3.1 + resolution: "flatted@npm:3.3.1" + checksum: 324166b125ee07d4ca9bcf3a5f98d915d5db4f39d711fba640a3178b959919aae1f7cfd8aabcfef5826ed8aa8a2aa14cc85b2d7d18ff638ddf4ae3df39573eaf + languageName: node + linkType: hard + "flatted@npm:^3.2.9": version: 3.2.9 resolution: "flatted@npm:3.2.9" @@ -29341,6 +30443,13 @@ __metadata: languageName: node linkType: hard +"ip@npm:^2.0.1": + version: 2.0.1 + resolution: "ip@npm:2.0.1" + checksum: cab8eb3e88d0abe23e4724829621ec4c4c5cb41a7f936a2e626c947128c1be16ed543448d42af7cca95379f9892bfcacc1ccd8d09bc7e8bea0e86d492ce33616 + languageName: node + linkType: hard + "ipaddr.js@npm:1.9.1": version: 1.9.1 resolution: "ipaddr.js@npm:1.9.1" @@ -30459,6 +31568,18 @@ __metadata: languageName: node linkType: hard +"jest-diff@npm:^28.1.3": + version: 28.1.3 + resolution: "jest-diff@npm:28.1.3" + dependencies: + chalk: "npm:^4.0.0" + diff-sequences: "npm:^28.1.1" + jest-get-type: "npm:^28.0.2" + pretty-format: "npm:^28.1.3" + checksum: 17a101ceb7e8f25c3ef64edda15cb1a259c2835395637099f3cc44f578fbd94ced7a13d11c0cbe8c5c1c3959a08544f0a913bec25a305b6dfc9847ce488e7198 + languageName: node + linkType: hard + "jest-diff@npm:^29.4.1, jest-diff@npm:^29.7.0": version: 29.7.0 resolution: "jest-diff@npm:29.7.0" @@ -30514,7 +31635,7 @@ __metadata: languageName: node linkType: hard -"jest-environment-node@npm:^29.6.4, jest-environment-node@npm:^29.7.0": +"jest-environment-node@npm:^29.4.1, jest-environment-node@npm:^29.6.4, jest-environment-node@npm:^29.7.0": version: 29.7.0 resolution: "jest-environment-node@npm:29.7.0" dependencies: @@ -30538,6 +31659,13 @@ __metadata: languageName: node linkType: hard +"jest-get-type@npm:^28.0.2": + version: 28.0.2 + resolution: "jest-get-type@npm:28.0.2" + checksum: f64a40cfa10d79a56b383919033d35c8c4daee6145a1df31ec5ef2283fa7e8adbd443c6fcb4cfd0f60bbbd89f046c2323952f086b06e875cbbbc1a7d543a6e5e + languageName: node + linkType: hard + "jest-get-type@npm:^29.6.3": version: 29.6.3 resolution: "jest-get-type@npm:29.6.3" @@ -30590,6 +31718,18 @@ __metadata: languageName: node linkType: hard +"jest-matcher-utils@npm:^28.0.0": + version: 28.1.3 + resolution: "jest-matcher-utils@npm:28.1.3" + dependencies: + chalk: "npm:^4.0.0" + jest-diff: "npm:^28.1.3" + jest-get-type: "npm:^28.0.2" + pretty-format: "npm:^28.1.3" + checksum: 026fbe664cfdaed5a5c9facfc86ccc9bed3718a7d1fe061e355eb6158019a77f74e9b843bc99f9a467966cbebe60bde8b43439174cbf64997d4ad404f8f809d0 + languageName: node + linkType: hard + "jest-matcher-utils@npm:^29.7.0": version: 29.7.0 resolution: "jest-matcher-utils@npm:29.7.0" @@ -30631,7 +31771,7 @@ __metadata: languageName: node linkType: hard -"jest-mock@npm:^27.0.6": +"jest-mock@npm:^27.0.6, jest-mock@npm:^27.3.0": version: 27.5.1 resolution: "jest-mock@npm:27.5.1" dependencies: @@ -32088,6 +33228,13 @@ __metadata: languageName: node linkType: hard +"local-pkg@npm:^0.4.3": + version: 0.4.3 + resolution: "local-pkg@npm:0.4.3" + checksum: 361c77d7873a629f09c9e86128926227171ee0fe3435d282fb80303ff255bb4d3c053b555d47e953b4f41d2561f2a7bc0e53e9ca5c9bc9607226a77c91ea4994 + languageName: node + linkType: hard + "locate-path@npm:^3.0.0": version: 3.0.0 resolution: "locate-path@npm:3.0.0" @@ -32687,6 +33834,15 @@ __metadata: languageName: node linkType: hard +"magic-string@npm:^0.30.1": + version: 0.30.8 + resolution: "magic-string@npm:0.30.8" + dependencies: + "@jridgewell/sourcemap-codec": "npm:^1.4.15" + checksum: 51a1f06f678c082aceddfb5943de9b6bdb88f2ea1385a1c2adf116deb73dfcfa50df6c222901d691b529455222d4d68d0b28be5689ac6f69b3baa3462861f922 + languageName: node + linkType: hard + "mailparser@npm:^3.6.5": version: 3.6.6 resolution: "mailparser@npm:3.6.6" @@ -35199,6 +36355,18 @@ __metadata: languageName: node linkType: hard +"mlly@npm:^1.2.0, mlly@npm:^1.4.0": + version: 1.6.1 + resolution: "mlly@npm:1.6.1" + dependencies: + acorn: "npm:^8.11.3" + pathe: "npm:^1.1.2" + pkg-types: "npm:^1.0.3" + ufo: "npm:^1.3.2" + checksum: a7bf26b3d4f83b0f5a5232caa3af44be08b464f562f31c11d885d1bc2d43b7d717137d47b0c06fdc69e1b33ffc09f902b6d2b18de02c577849d40914e8785092 + languageName: node + linkType: hard + "module-deps@npm:^6.2.3": version: 6.2.3 resolution: "module-deps@npm:6.2.3" @@ -36332,6 +37500,90 @@ __metadata: languageName: node linkType: hard +"nx@npm:17.3.2": + version: 17.3.2 + resolution: "nx@npm:17.3.2" + dependencies: + "@nrwl/tao": "npm:17.3.2" + "@nx/nx-darwin-arm64": "npm:17.3.2" + "@nx/nx-darwin-x64": "npm:17.3.2" + "@nx/nx-freebsd-x64": "npm:17.3.2" + "@nx/nx-linux-arm-gnueabihf": "npm:17.3.2" + "@nx/nx-linux-arm64-gnu": "npm:17.3.2" + "@nx/nx-linux-arm64-musl": "npm:17.3.2" + "@nx/nx-linux-x64-gnu": "npm:17.3.2" + "@nx/nx-linux-x64-musl": "npm:17.3.2" + "@nx/nx-win32-arm64-msvc": "npm:17.3.2" + "@nx/nx-win32-x64-msvc": "npm:17.3.2" + "@yarnpkg/lockfile": "npm:^1.1.0" + "@yarnpkg/parsers": "npm:3.0.0-rc.46" + "@zkochan/js-yaml": "npm:0.0.6" + axios: "npm:^1.6.0" + chalk: "npm:^4.1.0" + cli-cursor: "npm:3.1.0" + cli-spinners: "npm:2.6.1" + cliui: "npm:^8.0.1" + dotenv: "npm:~16.3.1" + dotenv-expand: "npm:~10.0.0" + enquirer: "npm:~2.3.6" + figures: "npm:3.2.0" + flat: "npm:^5.0.2" + fs-extra: "npm:^11.1.0" + ignore: "npm:^5.0.4" + jest-diff: "npm:^29.4.1" + js-yaml: "npm:4.1.0" + jsonc-parser: "npm:3.2.0" + lines-and-columns: "npm:~2.0.3" + minimatch: "npm:9.0.3" + node-machine-id: "npm:1.1.12" + npm-run-path: "npm:^4.0.1" + open: "npm:^8.4.0" + ora: "npm:5.3.0" + semver: "npm:^7.5.3" + string-width: "npm:^4.2.3" + strong-log-transformer: "npm:^2.1.0" + tar-stream: "npm:~2.2.0" + tmp: "npm:~0.2.1" + tsconfig-paths: "npm:^4.1.2" + tslib: "npm:^2.3.0" + yargs: "npm:^17.6.2" + yargs-parser: "npm:21.1.1" + peerDependencies: + "@swc-node/register": ^1.6.7 + "@swc/core": ^1.3.85 + dependenciesMeta: + "@nx/nx-darwin-arm64": + optional: true + "@nx/nx-darwin-x64": + optional: true + "@nx/nx-freebsd-x64": + optional: true + "@nx/nx-linux-arm-gnueabihf": + optional: true + "@nx/nx-linux-arm64-gnu": + optional: true + "@nx/nx-linux-arm64-musl": + optional: true + "@nx/nx-linux-x64-gnu": + optional: true + "@nx/nx-linux-x64-musl": + optional: true + "@nx/nx-win32-arm64-msvc": + optional: true + "@nx/nx-win32-x64-msvc": + optional: true + peerDependenciesMeta: + "@swc-node/register": + optional: true + "@swc/core": + optional: true + bin: + nx: bin/nx.js + nx-cloud: bin/nx-cloud.js + checksum: f068080cd95bfb1347dc311919963be590bd14395c2edbc102de96b5225fae6105f96817cde08378eaa8e3deef694bd6fafe528c49478da1320cf825e9a33285 + languageName: node + linkType: hard + "nyc@npm:^15.1.0": version: 15.1.0 resolution: "nyc@npm:15.1.0" @@ -37523,6 +38775,13 @@ __metadata: languageName: node linkType: hard +"pathe@npm:^1.1.0, pathe@npm:^1.1.2": + version: 1.1.2 + resolution: "pathe@npm:1.1.2" + checksum: 64ee0a4e587fb0f208d9777a6c56e4f9050039268faaaaecd50e959ef01bf847b7872785c36483fa5cdcdbdfdb31fef2ff222684d4fc21c330ab60395c681897 + languageName: node + linkType: hard + "pathe@npm:^1.1.1": version: 1.1.1 resolution: "pathe@npm:1.1.1" @@ -37790,6 +39049,17 @@ __metadata: languageName: node linkType: hard +"pkg-types@npm:^1.0.3": + version: 1.0.3 + resolution: "pkg-types@npm:1.0.3" + dependencies: + jsonc-parser: "npm:^3.2.0" + mlly: "npm:^1.2.0" + pathe: "npm:^1.1.0" + checksum: 7f692ff2005f51b8721381caf9bdbc7f5461506ba19c34f8631660a215c8de5e6dca268f23a319dd180b8f7c47a0dc6efea14b376c485ff99e98d810b8f786c4 + languageName: node + linkType: hard + "pkg-up@npm:^3.1.0": version: 3.1.0 resolution: "pkg-up@npm:3.1.0" @@ -38355,6 +39625,17 @@ __metadata: languageName: node linkType: hard +"postcss@npm:^8.4.35": + version: 8.4.35 + resolution: "postcss@npm:8.4.35" + dependencies: + nanoid: "npm:^3.3.7" + picocolors: "npm:^1.0.0" + source-map-js: "npm:^1.0.2" + checksum: e8dd04e48001eb5857abc9475365bf08f4e508ddf9bc0b8525449a95d190f10d025acebc5b56ac2e94b3c7146790e4ae78989bb9633cb7ee20d1cc9b7dc909b2 + languageName: node + linkType: hard + "postgres-array@npm:~2.0.0": version: 2.0.0 resolution: "postgres-array@npm:2.0.0" @@ -38530,6 +39811,18 @@ __metadata: languageName: node linkType: hard +"pretty-format@npm:^28.0.0, pretty-format@npm:^28.1.3": + version: 28.1.3 + resolution: "pretty-format@npm:28.1.3" + dependencies: + "@jest/schemas": "npm:^28.1.3" + ansi-regex: "npm:^5.0.1" + ansi-styles: "npm:^5.0.0" + react-is: "npm:^18.0.0" + checksum: 596d8b459b6fdac7dcbd70d40169191e889939c17ffbcc73eebe2a9a6f82cdbb57faffe190274e0a507d9ecdf3affadf8a9b43442a625eecfbd2813b9319660f + languageName: node + linkType: hard + "pretty-format@npm:^29.0.0, pretty-format@npm:^29.5.0, pretty-format@npm:^29.7.0": version: 29.7.0 resolution: "pretty-format@npm:29.7.0" @@ -41992,6 +43285,13 @@ __metadata: languageName: node linkType: hard +"siginfo@npm:^2.0.0": + version: 2.0.0 + resolution: "siginfo@npm:2.0.0" + checksum: 3def8f8e516fbb34cb6ae415b07ccc5d9c018d85b4b8611e3dc6f8be6d1899f693a4382913c9ed51a06babb5201639d76453ab297d1c54a456544acf5c892e34 + languageName: node + linkType: hard + "signal-exit@npm:^3.0.0, signal-exit@npm:^3.0.2, signal-exit@npm:^3.0.3, signal-exit@npm:^3.0.7": version: 3.0.7 resolution: "signal-exit@npm:3.0.7" @@ -42055,15 +43355,6 @@ __metadata: languageName: node linkType: hard -"simple-update-notifier@npm:^2.0.0": - version: 2.0.0 - resolution: "simple-update-notifier@npm:2.0.0" - dependencies: - semver: "npm:^7.5.3" - checksum: 2a00bd03bfbcbf8a737c47ab230d7920f8bfb92d1159d421bdd194479f6d01ebc995d13fbe13d45dace23066a78a3dc6642999b4e3b38b847e6664191575b20c - languageName: node - linkType: hard - "sirv@npm:^2.0.3": version: 2.0.4 resolution: "sirv@npm:2.0.4" @@ -42557,6 +43848,13 @@ __metadata: languageName: node linkType: hard +"stackback@npm:0.0.2": + version: 0.0.2 + resolution: "stackback@npm:0.0.2" + checksum: 89a1416668f950236dd5ac9f9a6b2588e1b9b62b1b6ad8dff1bfc5d1a15dbf0aafc9b52d2226d00c28dffff212da464eaeebfc6b7578b9d180cef3e3782c5983 + languageName: node + linkType: hard + "stackframe@npm:^1.3.4": version: 1.3.4 resolution: "stackframe@npm:1.3.4" @@ -42618,7 +43916,7 @@ __metadata: languageName: node linkType: hard -"std-env@npm:^3.0.1": +"std-env@npm:^3.0.1, std-env@npm:^3.3.3": version: 3.7.0 resolution: "std-env@npm:3.7.0" checksum: 60edf2d130a4feb7002974af3d5a5f3343558d1ccf8d9b9934d225c638606884db4a20d2fe6440a09605bca282af6b042ae8070a10490c0800d69e82e478f41e @@ -42682,14 +43980,14 @@ __metadata: linkType: hard "storybook@npm:^7.6.3": - version: 7.6.7 - resolution: "storybook@npm:7.6.7" + version: 7.6.17 + resolution: "storybook@npm:7.6.17" dependencies: - "@storybook/cli": "npm:7.6.7" + "@storybook/cli": "npm:7.6.17" bin: sb: ./index.js storybook: ./index.js - checksum: 0f27d7fe47da8d9a87caef62e490cdad173d5d8405d0d096d62f9abc6265d8bf53a45d92b1d9a824e9708c21430bdf3a841107de7b64dc36d5eb40d8d8d7bb9b + checksum: 256b8ff26b69f622889488605e786c0742350a901037139dd469ec20f2e7031c326d65f2a202a5ee7baa407ff407a6746af2f01d91c0c617eda2013679a65271 languageName: node linkType: hard @@ -43109,6 +44407,15 @@ __metadata: languageName: node linkType: hard +"strip-literal@npm:^1.0.1": + version: 1.3.0 + resolution: "strip-literal@npm:1.3.0" + dependencies: + acorn: "npm:^8.10.0" + checksum: 3c0c9ee41eb346e827eede61ef288457f53df30e3e6ff8b94fa81b636933b0c13ca4ea5c97d00a10d72d04be326da99ac819f8769f0c6407ba8177c98344a916 + languageName: node + linkType: hard + "stripe@npm:^14.17.0": version: 14.17.0 resolution: "stripe@npm:14.17.0" @@ -43744,6 +45051,20 @@ __metadata: languageName: node linkType: hard +"tinybench@npm:^2.5.0": + version: 2.6.0 + resolution: "tinybench@npm:2.6.0" + checksum: 60ea35699bf8bac9bc8cf279fa5877ab5b335b4673dcd07bf0fbbab9d7953a02c0ccded374677213eaa13aa147f54eb75d3230139ddbeec3875829ebe73db310 + languageName: node + linkType: hard + +"tinypool@npm:^0.7.0": + version: 0.7.0 + resolution: "tinypool@npm:0.7.0" + checksum: ecb35d9f74e72722c059acb1947ffc3c2caccb45266b89b72f74be2d28f0784d948b50bd9c6c68fa4159afd423ac5f5a07271a5f516d18a565dd06af0a37bc44 + languageName: node + linkType: hard + "tinyspy@npm:^2.1.1": version: 2.2.0 resolution: "tinyspy@npm:2.2.0" @@ -44449,6 +45770,12 @@ __metadata: languageName: unknown linkType: soft +"twenty-ui@workspace:packages/twenty-ui": + version: 0.0.0-use.local + resolution: "twenty-ui@workspace:packages/twenty-ui" + languageName: unknown + linkType: soft + "twenty-utils@workspace:packages/twenty-utils": version: 0.0.0-use.local resolution: "twenty-utils@workspace:packages/twenty-utils" @@ -44533,7 +45860,9 @@ __metadata: "@nx/jest": "npm:17.2.8" "@nx/js": "npm:17.2.8" "@nx/react": "npm:17.2.8" + "@nx/storybook": "npm:^17.2.8" "@nx/vite": "npm:17.2.8" + "@nx/web": "npm:17.2.8" "@octokit/graphql": "npm:^7.0.2" "@ptc-org/nestjs-query-core": "npm:^4.2.0" "@ptc-org/nestjs-query-typeorm": "npm:4.2.1-alpha.2" @@ -44551,15 +45880,20 @@ __metadata: "@storybook/addon-interactions": "npm:^7.6.7" "@storybook/addon-links": "npm:^7.6.7" "@storybook/addon-onboarding": "npm:^1.0.10" - "@storybook/addon-themes": "npm:^7.6.7" + "@storybook/addon-themes": "npm:^8.0.0" "@storybook/blocks": "npm:^7.6.3" + "@storybook/core-server": "npm:7.6.3" + "@storybook/icons": "npm:^1.2.9" + "@storybook/jest": "npm:^0.2.3" "@storybook/react": "npm:^7.6.3" "@storybook/react-vite": "npm:^7.6.3" "@storybook/test": "npm:^7.6.3" "@storybook/test-runner": "npm:^0.16.0" + "@storybook/testing-library": "npm:^0.2.2" "@stylistic/eslint-plugin": "npm:^1.5.0" "@swc-node/register": "npm:~1.6.7" "@swc/core": "npm:~1.3.100" + "@swc/helpers": "npm:~0.5.2" "@swc/jest": "npm:^0.2.29" "@tabler/icons-react": "npm:^2.44.0" "@testing-library/jest-dom": "npm:^6.1.5" @@ -44604,6 +45938,7 @@ __metadata: "@typescript-eslint/parser": "npm:^6.10.0" "@typescript-eslint/utils": "npm:^6.9.1" "@vitejs/plugin-react-swc": "npm:^3.5.0" + "@vitest/ui": "npm:~0.34.6" add: "npm:^2.0.6" afterframe: "npm:^1.0.2" apollo-server-express: "npm:^3.12.0" @@ -44666,6 +46001,7 @@ __metadata: immer: "npm:^10.0.2" jest: "npm:29.7.0" jest-environment-jsdom: "npm:29.7.0" + jest-environment-node: "npm:^29.4.1" jest-fetch-mock: "npm:^3.0.3" jest-mock-extended: "npm:^3.0.4" js-cookie: "npm:^3.0.5" @@ -44759,6 +46095,7 @@ __metadata: vite-plugin-dts: "npm:~2.3.0" vite-plugin-svgr: "npm:^4.2.0" vite-tsconfig-paths: "npm:^4.2.1" + vitest: "npm:~0.34.6" xlsx-ugnis: "npm:^0.19.3" zod: "npm:^3.22.2" languageName: unknown @@ -44964,7 +46301,7 @@ __metadata: languageName: node linkType: hard -"typescript@npm:5.3.3, typescript@npm:^5.3.3": +"typescript@npm:5.3.3, typescript@npm:^5.3.3, typescript@npm:~5.3.2": version: 5.3.3 resolution: "typescript@npm:5.3.3" bin: @@ -44994,7 +46331,7 @@ __metadata: languageName: node linkType: hard -"typescript@patch:typescript@npm%3A5.3.3#optional!builtin, typescript@patch:typescript@npm%3A^5.3.3#optional!builtin": +"typescript@patch:typescript@npm%3A5.3.3#optional!builtin, typescript@patch:typescript@npm%3A^5.3.3#optional!builtin, typescript@patch:typescript@npm%3A~5.3.2#optional!builtin": version: 5.3.3 resolution: "typescript@patch:typescript@npm%3A5.3.3#optional!builtin::version=5.3.3&hash=e012d7" bin: @@ -46265,6 +47602,22 @@ __metadata: languageName: node linkType: hard +"vite-node@npm:0.34.6": + version: 0.34.6 + resolution: "vite-node@npm:0.34.6" + dependencies: + cac: "npm:^6.7.14" + debug: "npm:^4.3.4" + mlly: "npm:^1.4.0" + pathe: "npm:^1.1.1" + picocolors: "npm:^1.0.0" + vite: "npm:^3.0.0 || ^4.0.0 || ^5.0.0-0" + bin: + vite-node: vite-node.mjs + checksum: 0e804eab1ae5f0d98014f0a933ec08bfc287228283c3c4792f5f8b8fec6657896e513498e8436449e3116839a5592f9b497cf0b982b8da1152d7d419ccc306f1 + languageName: node + linkType: hard + "vite-plugin-checker@npm:^0.6.2": version: 0.6.2 resolution: "vite-plugin-checker@npm:0.6.2" @@ -46378,6 +47731,46 @@ __metadata: languageName: node linkType: hard +"vite@npm:^3.0.0 || ^4.0.0 || ^5.0.0-0, vite@npm:^3.1.0 || ^4.0.0 || ^5.0.0-0": + version: 5.1.5 + resolution: "vite@npm:5.1.5" + dependencies: + esbuild: "npm:^0.19.3" + fsevents: "npm:~2.3.3" + postcss: "npm:^8.4.35" + rollup: "npm:^4.2.0" + peerDependencies: + "@types/node": ^18.0.0 || >=20.0.0 + less: "*" + lightningcss: ^1.21.0 + sass: "*" + stylus: "*" + sugarss: "*" + terser: ^5.4.0 + dependenciesMeta: + fsevents: + optional: true + peerDependenciesMeta: + "@types/node": + optional: true + less: + optional: true + lightningcss: + optional: true + sass: + optional: true + stylus: + optional: true + sugarss: + optional: true + terser: + optional: true + bin: + vite: bin/vite.js + checksum: 29be99ba0bec5e3ad50290510ba764b6c1016979a1ba70cf2071be9f1338f27e582a120836222e1fad6efb01c886a8fb57cb33471fadd0fceaa922bfc92bbbf7 + languageName: node + linkType: hard + "vite@npm:^5.0.0": version: 5.0.10 resolution: "vite@npm:5.0.10" @@ -46418,6 +47811,66 @@ __metadata: languageName: node linkType: hard +"vitest@npm:~0.34.6": + version: 0.34.6 + resolution: "vitest@npm:0.34.6" + dependencies: + "@types/chai": "npm:^4.3.5" + "@types/chai-subset": "npm:^1.3.3" + "@types/node": "npm:*" + "@vitest/expect": "npm:0.34.6" + "@vitest/runner": "npm:0.34.6" + "@vitest/snapshot": "npm:0.34.6" + "@vitest/spy": "npm:0.34.6" + "@vitest/utils": "npm:0.34.6" + acorn: "npm:^8.9.0" + acorn-walk: "npm:^8.2.0" + cac: "npm:^6.7.14" + chai: "npm:^4.3.10" + debug: "npm:^4.3.4" + local-pkg: "npm:^0.4.3" + magic-string: "npm:^0.30.1" + pathe: "npm:^1.1.1" + picocolors: "npm:^1.0.0" + std-env: "npm:^3.3.3" + strip-literal: "npm:^1.0.1" + tinybench: "npm:^2.5.0" + tinypool: "npm:^0.7.0" + vite: "npm:^3.1.0 || ^4.0.0 || ^5.0.0-0" + vite-node: "npm:0.34.6" + why-is-node-running: "npm:^2.2.2" + peerDependencies: + "@edge-runtime/vm": "*" + "@vitest/browser": "*" + "@vitest/ui": "*" + happy-dom: "*" + jsdom: "*" + playwright: "*" + safaridriver: "*" + webdriverio: "*" + peerDependenciesMeta: + "@edge-runtime/vm": + optional: true + "@vitest/browser": + optional: true + "@vitest/ui": + optional: true + happy-dom: + optional: true + jsdom: + optional: true + playwright: + optional: true + safaridriver: + optional: true + webdriverio: + optional: true + bin: + vitest: vitest.mjs + checksum: 7b5e87875991a66fe5cca62477f21447d7cdf4d101ac381ca02a16f4223b1ae5d0bc17ce42616d6dc74742757730ed511ada05aaa7090b6075e304c883cf0bc3 + languageName: node + linkType: hard + "vm-browserify@npm:^1.0.0, vm-browserify@npm:^1.1.2": version: 1.1.2 resolution: "vm-browserify@npm:1.1.2" @@ -47057,6 +48510,18 @@ __metadata: languageName: node linkType: hard +"why-is-node-running@npm:^2.2.2": + version: 2.2.2 + resolution: "why-is-node-running@npm:2.2.2" + dependencies: + siginfo: "npm:^2.0.0" + stackback: "npm:0.0.2" + bin: + why-is-node-running: cli.js + checksum: 805d57eb5d33f0fb4e36bae5dceda7fd8c6932c2aeb705e30003970488f1a2bc70029ee64be1a0e1531e2268b11e65606e88e5b71d667ea745e6dc48fc9014bd + languageName: node + linkType: hard + "wide-align@npm:^1.1.0, wide-align@npm:^1.1.2, wide-align@npm:^1.1.5": version: 1.1.5 resolution: "wide-align@npm:1.1.5"