diff --git a/.gitignore b/.gitignore
index 1bf2706e43..114a949446 100644
--- a/.gitignore
+++ b/.gitignore
@@ -76,3 +76,6 @@ build/
# Lage cache
.lage/
+
+*storybook.log
+storybook-static
diff --git a/package.json b/package.json
index fca806d3e8..25166755f9 100644
--- a/package.json
+++ b/package.json
@@ -33,6 +33,7 @@
"start:service-plugins": "yarn workspace plugins-service watch",
"start:browser-backend": "yarn workspace loot-core watch:browser",
"start:browser-frontend": "yarn workspace @actual-app/web start:browser",
+ "start:storybook": "yarn workspace @actual-app/components start:storybook",
"build:browser-backend": "yarn workspace loot-core build:browser",
"build:server": "yarn build:browser && yarn workspace @actual-app/sync-server build",
"build:browser": "./bin/package-browser",
@@ -40,6 +41,7 @@
"build:plugins-service": "yarn workspace plugins-service build",
"build:api": "yarn workspace @actual-app/api build",
"build:docs": "yarn workspace docs build",
+ "build:storybook": "yarn workspace @actual-app/components build:storybook",
"deploy:docs": "yarn workspace docs deploy",
"generate:i18n": "yarn workspace @actual-app/web generate:i18n",
"generate:release-notes": "ts-node ./bin/release-note-generator.ts",
diff --git a/packages/component-library/.oxlintrc.json b/packages/component-library/.oxlintrc.json
new file mode 100644
index 0000000000..e37c8b7edb
--- /dev/null
+++ b/packages/component-library/.oxlintrc.json
@@ -0,0 +1,3 @@
+{
+ "jsPlugins": ["eslint-plugin-storybook"]
+}
diff --git a/packages/component-library/.storybook/main.ts b/packages/component-library/.storybook/main.ts
new file mode 100644
index 0000000000..3d17cfcd81
--- /dev/null
+++ b/packages/component-library/.storybook/main.ts
@@ -0,0 +1,43 @@
+import { dirname } from 'path';
+import { fileURLToPath } from 'url';
+
+import type { StorybookConfig } from '@storybook/react-vite';
+import viteTsconfigPaths from 'vite-tsconfig-paths';
+
+/**
+ * This function is used to resolve the absolute path of a package.
+ * It is needed in projects that use Yarn PnP or are set up within a monorepo.
+ */
+function getAbsolutePath(value: string) {
+ return dirname(fileURLToPath(import.meta.resolve(`${value}/package.json`)));
+}
+const config: StorybookConfig = {
+ stories: [
+ '../src/Introduction.mdx',
+ '../src/**/*.mdx',
+ '../src/**/*.stories.@(js|jsx|mjs|ts|tsx)',
+ ],
+ addons: [
+ getAbsolutePath('@chromatic-com/storybook'),
+ getAbsolutePath('@storybook/addon-a11y'),
+ getAbsolutePath('@storybook/addon-docs'),
+ ],
+ framework: getAbsolutePath('@storybook/react-vite'),
+ core: {
+ disableTelemetry: true,
+ },
+ async viteFinal(config) {
+ const { mergeConfig } = await import('vite');
+
+ return mergeConfig(config, {
+ // Telling Vite how to resolve path aliases
+ plugins: [viteTsconfigPaths({ root: '../..' })],
+ esbuild: {
+ // Needed to handle JSX in .ts/.tsx files
+ jsx: 'automatic',
+ },
+ });
+ },
+};
+
+export default config;
diff --git a/packages/component-library/.storybook/manager.ts b/packages/component-library/.storybook/manager.ts
new file mode 100644
index 0000000000..a42b3d195c
--- /dev/null
+++ b/packages/component-library/.storybook/manager.ts
@@ -0,0 +1,74 @@
+import { addons } from 'storybook/manager-api';
+import { create } from 'storybook/theming/create';
+
+// Colors from the Actual Budget light theme palette
+const purple500 = '#8719e0';
+const purple400 = '#9a3de8';
+const navy900 = '#102a43';
+const navy700 = '#334e68';
+const navy600 = '#486581';
+const navy150 = '#d9e2ec';
+const navy100 = '#e8ecf0';
+const white = '#ffffff';
+
+// Create a custom Storybook theme matching Actual Budget's light theme
+const theme = create({
+ base: 'light',
+ brandTitle: 'Actual Budget',
+ brandUrl: 'https://actualbudget.org',
+ brandImage: 'https://actualbudget.org/img/actual.webp',
+ brandTarget: '_blank',
+
+ // UI colors
+ colorPrimary: purple500,
+ colorSecondary: purple400,
+
+ // App chrome
+ appBg: navy100,
+ appContentBg: white,
+ appPreviewBg: white,
+ appBorderColor: navy150,
+ appBorderRadius: 4,
+
+ // Fonts
+ fontBase:
+ '-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif',
+ fontCode: 'ui-monospace, SFMono-Regular, "SF Mono", Menlo, monospace',
+
+ // Text colors
+ textColor: navy900,
+ textInverseColor: white,
+ textMutedColor: navy600,
+
+ // Toolbar
+ barTextColor: navy700,
+ barHoverColor: purple500,
+ barSelectedColor: purple500,
+ barBg: white,
+
+ // Form colors
+ buttonBg: white,
+ buttonBorder: navy900,
+ booleanBg: navy150,
+ booleanSelectedBg: purple500,
+ inputBg: white,
+ inputBorder: navy900,
+ inputTextColor: navy900,
+ inputBorderRadius: 4,
+});
+
+addons.setConfig({
+ theme,
+ enableShortcuts: true,
+ isFullscreen: false,
+ isToolshown: true,
+ sidebar: {
+ collapsedRoots: [],
+ filters: {
+ patterns: item => {
+ // Hide stories that are marked as internal
+ return !item.tags?.includes('internal');
+ },
+ },
+ },
+});
diff --git a/packages/component-library/.storybook/preview.tsx b/packages/component-library/.storybook/preview.tsx
new file mode 100644
index 0000000000..b6679dce98
--- /dev/null
+++ b/packages/component-library/.storybook/preview.tsx
@@ -0,0 +1,88 @@
+import { type ReactNode } from 'react';
+
+import type { Preview } from '@storybook/react-vite';
+
+// Not ideal to import from desktop-client, but we need a source of truth for theme variables
+import * as darkTheme from '../../desktop-client/src/style/themes/dark';
+import * as developmentTheme from '../../desktop-client/src/style/themes/development';
+import * as lightTheme from '../../desktop-client/src/style/themes/light';
+import * as midnightTheme from '../../desktop-client/src/style/themes/midnight';
+
+const THEMES = {
+ light: lightTheme,
+ dark: darkTheme,
+ midnight: midnightTheme,
+ development: developmentTheme,
+} as const;
+
+type ThemeName = keyof typeof THEMES;
+
+const ThemedStory = ({
+ themeName,
+ children,
+}: {
+ themeName?: ThemeName;
+ children?: ReactNode;
+}) => {
+ if (!themeName || !THEMES[themeName]) {
+ throw new Error(`No theme specified`);
+ }
+
+ const css = Object.entries(THEMES[themeName])
+ .map(([key, value]) => `--color-${key}: ${value};`)
+ .join('\n');
+
+ return (
+
+
+ {children}
+
+ );
+};
+
+const preview: Preview = {
+ decorators: [
+ (Story, { globals }) => {
+ const themeName = globals.theme;
+
+ return (
+
+
+
+ );
+ },
+ ],
+ globalTypes: {
+ theme: {
+ name: 'Theme',
+ description: 'Global theme for components',
+ defaultValue: 'light',
+ toolbar: {
+ icon: 'circlehollow',
+ items: [
+ { value: 'light', title: 'Light' },
+ { value: 'dark', title: 'Dark' },
+ { value: 'midnight', title: 'Midnight' },
+ { value: 'development', title: 'Development' },
+ ],
+ },
+ },
+ },
+ parameters: {
+ controls: {
+ matchers: {
+ color: /(background|color)$/i,
+ date: /Date$/i,
+ },
+ },
+
+ a11y: {
+ // 'todo' - show a11y violations in the test UI only
+ // 'error' - fail CI on a11y violations
+ // 'off' - skip a11y checks entirely
+ test: 'todo',
+ },
+ },
+};
+
+export default preview;
diff --git a/packages/component-library/package.json b/packages/component-library/package.json
index 07f4ce5847..16df918f01 100644
--- a/packages/component-library/package.json
+++ b/packages/component-library/package.json
@@ -37,7 +37,9 @@
"scripts": {
"generate:icons": "rm src/icons/*/*.tsx; cd src/icons && svgr --template template.ts --index-template index-template.ts --typescript --expand-props start -d . .",
"test": "npm-run-all -cp 'test:*'",
- "test:web": "ENV=web vitest --run -c vitest.web.config.ts"
+ "test:web": "ENV=web vitest --run -c vitest.web.config.ts",
+ "start:storybook": "storybook dev -p 6006",
+ "build:storybook": "storybook build"
},
"dependencies": {
"@emotion/css": "^11.13.5",
@@ -45,10 +47,16 @@
"usehooks-ts": "^3.1.1"
},
"devDependencies": {
+ "@chromatic-com/storybook": "^5.0.0",
+ "@storybook/addon-a11y": "^10.2.0",
+ "@storybook/addon-docs": "^10.2.0",
+ "@storybook/react-vite": "^10.2.0",
"@svgr/cli": "^8.1.0",
"@types/react": "^19.2.5",
+ "eslint-plugin-storybook": "^10.2.0",
"react": "19.2.3",
"react-dom": "19.2.3",
+ "storybook": "^10.2.0",
"vitest": "^4.0.16"
},
"peerDependencies": {
diff --git a/packages/component-library/src/Button.stories.ts b/packages/component-library/src/Button.stories.ts
new file mode 100644
index 0000000000..ff1e63dd14
--- /dev/null
+++ b/packages/component-library/src/Button.stories.ts
@@ -0,0 +1,100 @@
+import type { Meta, StoryObj } from '@storybook/react-vite';
+import { fn } from 'storybook/test';
+
+import { Button } from './Button';
+
+const meta = {
+ title: 'Button',
+ component: Button,
+ parameters: {
+ layout: 'centered',
+ },
+ tags: ['autodocs'],
+ argTypes: {
+ onClick: { action: 'clicked' },
+ },
+ args: { onClick: fn() },
+} satisfies Meta;
+
+export default meta;
+
+type Story = StoryObj;
+
+// More on writing stories with args: https://storybook.js.org/docs/writing-stories/args
+export const Primary: Story = {
+ args: {
+ variant: 'primary',
+ bounce: false,
+ children: 'Button Text',
+ },
+ parameters: {
+ docs: {
+ description: {
+ story: `
+Primary button variant uses the following theme CSS variables:
+ - \`--color-buttonPrimaryText\`
+ - \`--color-buttonPrimaryTextHover\`
+ - \`--color-buttonPrimaryBackground\`
+ - \`--color-buttonPrimaryBackgroundHover\`
+ - \`--color-buttonPrimaryBorder\`
+ - \`--color-buttonPrimaryShadow\`
+ - \`--color-buttonPrimaryDisabledText\`
+ - \`--color-buttonPrimaryDisabledBackground\`
+ - \`--color-buttonPrimaryDisabledBorder\`
+`,
+ },
+ },
+ },
+};
+
+export const Normal: Story = {
+ args: {
+ variant: 'normal',
+ bounce: false,
+ children: 'Button Text',
+ },
+ parameters: {
+ docs: {
+ description: {
+ story: `
+Normal button variant uses the following theme CSS variables:
+ - \`--color-buttonNormalText\`
+ - \`--color-buttonNormalTextHover\`
+ - \`--color-buttonNormalBackground\`
+ - \`--color-buttonNormalBackgroundHover\`
+ - \`--color-buttonNormalBorder\`
+ - \`--color-buttonNormalShadow\`
+ - \`--color-buttonNormalSelectedText\`
+ - \`--color-buttonNormalSelectedBackground\`
+ - \`--color-buttonNormalDisabledText\`
+ - \`--color-buttonNormalDisabledBackground\`
+ - \`--color-buttonNormalDisabledBorder\`
+`,
+ },
+ },
+ },
+};
+
+export const Bare: Story = {
+ args: {
+ variant: 'bare',
+ bounce: false,
+ children: 'Button Text',
+ },
+ parameters: {
+ docs: {
+ description: {
+ story: `
+Bare button variant uses the following theme CSS variables:
+ - \`--color-buttonBareText\`
+ - \`--color-buttonBareTextHover\`
+ - \`--color-buttonBareBackground\`
+ - \`--color-buttonBareBackgroundHover\`
+ - \`--color-buttonBareBackgroundActive\`
+ - \`--color-buttonBareDisabledText\`
+ - \`--color-buttonBareDisabledBackground\`
+`,
+ },
+ },
+ },
+};
diff --git a/packages/component-library/src/Introduction.mdx b/packages/component-library/src/Introduction.mdx
new file mode 100644
index 0000000000..8954862d7f
--- /dev/null
+++ b/packages/component-library/src/Introduction.mdx
@@ -0,0 +1,27 @@
+import { Meta } from '@storybook/addon-docs/blocks';
+
+
+
+# Actual Budget Component Library
+
+Welcome to the **Actual Budget Component Library**. Explore our UI components, see how they look across different themes, and learn how to use them in your code.
+
+### What you can do here
+
+- ✨ **Browse components** in the sidebar
+- 🎨 **Switch themes** using the toolbar above
+- 📚 **Read documentation** and see code examples
+- 🔍 **Test variations** and component states
+- ♿ **Check accessibility** compliance
+
+### Getting Started
+
+Select a component from the sidebar to explore its documentation, variants, and interactive controls.
+
+---
+
+### Useful Links
+
+- [Actual Budget Website](https://actualbudget.org)
+- [Documentation](https://actualbudget.org/docs)
+- [GitHub Repository](https://github.com/actualbudget/actual)
diff --git a/upcoming-release-notes/6770.md b/upcoming-release-notes/6770.md
new file mode 100644
index 0000000000..b9da847d58
--- /dev/null
+++ b/upcoming-release-notes/6770.md
@@ -0,0 +1,6 @@
+---
+category: Maintenance
+authors: [MikesGlitch]
+---
+
+Add Storybook Documentation into the component library
diff --git a/yarn.lock b/yarn.lock
index 7e343b6de9..b9ca7c49c0 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -46,12 +46,18 @@ __metadata:
version: 0.0.0-use.local
resolution: "@actual-app/components@workspace:packages/component-library"
dependencies:
+ "@chromatic-com/storybook": "npm:^5.0.0"
"@emotion/css": "npm:^11.13.5"
+ "@storybook/addon-a11y": "npm:^10.2.0"
+ "@storybook/addon-docs": "npm:^10.2.0"
+ "@storybook/react-vite": "npm:^10.2.0"
"@svgr/cli": "npm:^8.1.0"
"@types/react": "npm:^19.2.5"
+ eslint-plugin-storybook: "npm:^10.2.0"
react: "npm:19.2.3"
react-aria-components: "npm:^1.14.0"
react-dom: "npm:19.2.3"
+ storybook: "npm:^10.2.0"
usehooks-ts: "npm:^3.1.1"
vitest: "npm:^4.0.16"
peerDependencies:
@@ -540,6 +546,17 @@ __metadata:
languageName: node
linkType: hard
+"@babel/code-frame@npm:^7.28.6":
+ version: 7.28.6
+ resolution: "@babel/code-frame@npm:7.28.6"
+ dependencies:
+ "@babel/helper-validator-identifier": "npm:^7.28.5"
+ js-tokens: "npm:^4.0.0"
+ picocolors: "npm:^1.1.1"
+ checksum: 10/93e7ed9e039e3cb661bdb97c26feebafacc6ec13d745881dae5c7e2708f579475daebe7a3b5d23b183bb940b30744f52f4a5bcb65b4df03b79d82fcb38495784
+ languageName: node
+ linkType: hard
+
"@babel/compat-data@npm:^7.27.2, @babel/compat-data@npm:^7.27.7, @babel/compat-data@npm:^7.28.5":
version: 7.28.5
resolution: "@babel/compat-data@npm:7.28.5"
@@ -547,6 +564,13 @@ __metadata:
languageName: node
linkType: hard
+"@babel/compat-data@npm:^7.28.6":
+ version: 7.28.6
+ resolution: "@babel/compat-data@npm:7.28.6"
+ checksum: 10/dc17dfb55711a15f006e34c4610c49b7335fc11b23e192f9e5f625e8ea0f48805e61a57b6b4f5550879332782c93af0b5d6952825fffbb8d4e604b14d698249f
+ languageName: node
+ linkType: hard
+
"@babel/core@npm:^7.21.3, @babel/core@npm:^7.24.4, @babel/core@npm:^7.25.9, @babel/core@npm:^7.28.5":
version: 7.28.5
resolution: "@babel/core@npm:7.28.5"
@@ -570,6 +594,29 @@ __metadata:
languageName: node
linkType: hard
+"@babel/core@npm:^7.28.0":
+ version: 7.28.6
+ resolution: "@babel/core@npm:7.28.6"
+ dependencies:
+ "@babel/code-frame": "npm:^7.28.6"
+ "@babel/generator": "npm:^7.28.6"
+ "@babel/helper-compilation-targets": "npm:^7.28.6"
+ "@babel/helper-module-transforms": "npm:^7.28.6"
+ "@babel/helpers": "npm:^7.28.6"
+ "@babel/parser": "npm:^7.28.6"
+ "@babel/template": "npm:^7.28.6"
+ "@babel/traverse": "npm:^7.28.6"
+ "@babel/types": "npm:^7.28.6"
+ "@jridgewell/remapping": "npm:^2.3.5"
+ convert-source-map: "npm:^2.0.0"
+ debug: "npm:^4.1.0"
+ gensync: "npm:^1.0.0-beta.2"
+ json5: "npm:^2.2.3"
+ semver: "npm:^6.3.1"
+ checksum: 10/1a150a69c547daf13c457be1fdaf1a0935d02b94605e777e049537ec2f279b4bb442ffbe1c2d8ff62c688878b1d5530a5784daf72ece950d1917fb78717f51d2
+ languageName: node
+ linkType: hard
+
"@babel/generator@npm:^7.25.9, @babel/generator@npm:^7.28.5":
version: 7.28.5
resolution: "@babel/generator@npm:7.28.5"
@@ -583,6 +630,19 @@ __metadata:
languageName: node
linkType: hard
+"@babel/generator@npm:^7.28.6":
+ version: 7.28.6
+ resolution: "@babel/generator@npm:7.28.6"
+ dependencies:
+ "@babel/parser": "npm:^7.28.6"
+ "@babel/types": "npm:^7.28.6"
+ "@jridgewell/gen-mapping": "npm:^0.3.12"
+ "@jridgewell/trace-mapping": "npm:^0.3.28"
+ jsesc: "npm:^3.0.2"
+ checksum: 10/ef2af927e8e0985d02ec4321a242da761a934e927539147c59fdd544034dc7f0e9846f6bf86209aca7a28aee2243ed0fad668adccd48f96d7d6866215173f9af
+ languageName: node
+ linkType: hard
+
"@babel/helper-annotate-as-pure@npm:^7.27.1, @babel/helper-annotate-as-pure@npm:^7.27.3":
version: 7.27.3
resolution: "@babel/helper-annotate-as-pure@npm:7.27.3"
@@ -605,6 +665,19 @@ __metadata:
languageName: node
linkType: hard
+"@babel/helper-compilation-targets@npm:^7.28.6":
+ version: 7.28.6
+ resolution: "@babel/helper-compilation-targets@npm:7.28.6"
+ dependencies:
+ "@babel/compat-data": "npm:^7.28.6"
+ "@babel/helper-validator-option": "npm:^7.27.1"
+ browserslist: "npm:^4.24.0"
+ lru-cache: "npm:^5.1.1"
+ semver: "npm:^6.3.1"
+ checksum: 10/f512a5aeee4dfc6ea8807f521d085fdca8d66a7d068a6dd5e5b37da10a6081d648c0bbf66791a081e4e8e6556758da44831b331540965dfbf4f5275f3d0a8788
+ languageName: node
+ linkType: hard
+
"@babel/helper-create-class-features-plugin@npm:^7.27.1, @babel/helper-create-class-features-plugin@npm:^7.28.3, @babel/helper-create-class-features-plugin@npm:^7.28.5":
version: 7.28.5
resolution: "@babel/helper-create-class-features-plugin@npm:7.28.5"
@@ -677,6 +750,16 @@ __metadata:
languageName: node
linkType: hard
+"@babel/helper-module-imports@npm:^7.28.6":
+ version: 7.28.6
+ resolution: "@babel/helper-module-imports@npm:7.28.6"
+ dependencies:
+ "@babel/traverse": "npm:^7.28.6"
+ "@babel/types": "npm:^7.28.6"
+ checksum: 10/64b1380d74425566a3c288074d7ce4dea56d775d2d3325a3d4a6df1dca702916c1d268133b6f385de9ba5b822b3c6e2af5d3b11ac88e5453d5698d77264f0ec0
+ languageName: node
+ linkType: hard
+
"@babel/helper-module-transforms@npm:^7.27.1, @babel/helper-module-transforms@npm:^7.28.3":
version: 7.28.3
resolution: "@babel/helper-module-transforms@npm:7.28.3"
@@ -690,6 +773,19 @@ __metadata:
languageName: node
linkType: hard
+"@babel/helper-module-transforms@npm:^7.28.6":
+ version: 7.28.6
+ resolution: "@babel/helper-module-transforms@npm:7.28.6"
+ dependencies:
+ "@babel/helper-module-imports": "npm:^7.28.6"
+ "@babel/helper-validator-identifier": "npm:^7.28.5"
+ "@babel/traverse": "npm:^7.28.6"
+ peerDependencies:
+ "@babel/core": ^7.0.0
+ checksum: 10/2e421c7db743249819ee51e83054952709dc2e197c7d5d415b4bdddc718580195704bfcdf38544b3f674efc2eccd4d29a65d38678fc827ed3934a7690984cd8b
+ languageName: node
+ linkType: hard
+
"@babel/helper-optimise-call-expression@npm:^7.27.1":
version: 7.27.1
resolution: "@babel/helper-optimise-call-expression@npm:7.27.1"
@@ -784,6 +880,16 @@ __metadata:
languageName: node
linkType: hard
+"@babel/helpers@npm:^7.28.6":
+ version: 7.28.6
+ resolution: "@babel/helpers@npm:7.28.6"
+ dependencies:
+ "@babel/template": "npm:^7.28.6"
+ "@babel/types": "npm:^7.28.6"
+ checksum: 10/213485cdfffc4deb81fc1bf2cefed61bc825049322590ef69690e223faa300a2a4d1e7d806c723bb1f1f538226b9b1b6c356ca94eb47fa7c6d9e9f251ee425e6
+ languageName: node
+ linkType: hard
+
"@babel/parser@npm:^7.1.0, @babel/parser@npm:^7.20.7, @babel/parser@npm:^7.27.2, @babel/parser@npm:^7.28.5":
version: 7.28.5
resolution: "@babel/parser@npm:7.28.5"
@@ -795,6 +901,17 @@ __metadata:
languageName: node
linkType: hard
+"@babel/parser@npm:^7.28.6":
+ version: 7.28.6
+ resolution: "@babel/parser@npm:7.28.6"
+ dependencies:
+ "@babel/types": "npm:^7.28.6"
+ bin:
+ parser: ./bin/babel-parser.js
+ checksum: 10/483a6fb5f9876ec9cbbb98816f2c94f39ae4d1158d35f87e1c4bf19a1f56027c96a1a3962ff0c8c46e8322a6d9e1c80d26b7f9668410df13d5b5769d9447b010
+ languageName: node
+ linkType: hard
+
"@babel/plugin-bugfix-firefox-class-in-computed-class-key@npm:^7.28.5":
version: 7.28.5
resolution: "@babel/plugin-bugfix-firefox-class-in-computed-class-key@npm:7.28.5"
@@ -1795,6 +1912,17 @@ __metadata:
languageName: node
linkType: hard
+"@babel/template@npm:^7.28.6":
+ version: 7.28.6
+ resolution: "@babel/template@npm:7.28.6"
+ dependencies:
+ "@babel/code-frame": "npm:^7.28.6"
+ "@babel/parser": "npm:^7.28.6"
+ "@babel/types": "npm:^7.28.6"
+ checksum: 10/0ad6e32bf1e7e31bf6b52c20d15391f541ddd645cbd488a77fe537a15b280ee91acd3a777062c52e03eedbc2e1f41548791f6a3697c02476ec5daf49faa38533
+ languageName: node
+ linkType: hard
+
"@babel/traverse@npm:^7.25.9, @babel/traverse@npm:^7.27.1, @babel/traverse@npm:^7.28.0, @babel/traverse@npm:^7.28.3, @babel/traverse@npm:^7.28.4, @babel/traverse@npm:^7.28.5":
version: 7.28.5
resolution: "@babel/traverse@npm:7.28.5"
@@ -1810,6 +1938,21 @@ __metadata:
languageName: node
linkType: hard
+"@babel/traverse@npm:^7.28.6":
+ version: 7.28.6
+ resolution: "@babel/traverse@npm:7.28.6"
+ dependencies:
+ "@babel/code-frame": "npm:^7.28.6"
+ "@babel/generator": "npm:^7.28.6"
+ "@babel/helper-globals": "npm:^7.28.0"
+ "@babel/parser": "npm:^7.28.6"
+ "@babel/template": "npm:^7.28.6"
+ "@babel/types": "npm:^7.28.6"
+ debug: "npm:^4.3.1"
+ checksum: 10/dd71efe9412433169b805d5c346a6473e539ce30f605752a0d40a0733feba37259bd72bb4ad2ab591e2eaff1ee56633de160c1e98efdc8f373cf33a4a8660275
+ languageName: node
+ linkType: hard
+
"@babel/types@npm:^7.0.0, @babel/types@npm:^7.20.7, @babel/types@npm:^7.21.3, @babel/types@npm:^7.26.0, @babel/types@npm:^7.27.1, @babel/types@npm:^7.27.3, @babel/types@npm:^7.28.2, @babel/types@npm:^7.28.4, @babel/types@npm:^7.28.5, @babel/types@npm:^7.4.4":
version: 7.28.5
resolution: "@babel/types@npm:7.28.5"
@@ -1820,6 +1963,16 @@ __metadata:
languageName: node
linkType: hard
+"@babel/types@npm:^7.28.6":
+ version: 7.28.6
+ resolution: "@babel/types@npm:7.28.6"
+ dependencies:
+ "@babel/helper-string-parser": "npm:^7.27.1"
+ "@babel/helper-validator-identifier": "npm:^7.28.5"
+ checksum: 10/f9c6e52b451065aae5654686ecfc7de2d27dd0fbbc204ee2bd912a71daa359521a32f378981b1cf333ace6c8f86928814452cb9f388a7da59ad468038deb6b5f
+ languageName: node
+ linkType: hard
+
"@braintree/sanitize-url@npm:^7.1.1":
version: 7.1.1
resolution: "@braintree/sanitize-url@npm:7.1.1"
@@ -1869,6 +2022,21 @@ __metadata:
languageName: node
linkType: hard
+"@chromatic-com/storybook@npm:^5.0.0":
+ version: 5.0.0
+ resolution: "@chromatic-com/storybook@npm:5.0.0"
+ dependencies:
+ "@neoconfetti/react": "npm:^1.0.0"
+ chromatic: "npm:^13.3.4"
+ filesize: "npm:^10.0.12"
+ jsonfile: "npm:^6.1.0"
+ strip-ansi: "npm:^7.1.0"
+ peerDependencies:
+ storybook: ^0.0.0-0 || ^10.1.0 || ^10.1.0-0 || ^10.2.0-0 || ^10.3.0-0
+ checksum: 10/4964c1086f4aaaf5a0db80063801fafd0595546e22914dff1e6e0869dad9cf9f9cae66bd41133f1bbd0d59696923ca65e9734b76ca4a6ca13f1f97e9d4286e64
+ languageName: node
+ linkType: hard
+
"@codemirror/autocomplete@npm:^6.0.0, @codemirror/autocomplete@npm:^6.20.0":
version: 6.20.0
resolution: "@codemirror/autocomplete@npm:6.20.0"
@@ -3966,7 +4134,7 @@ __metadata:
languageName: node
linkType: hard
-"@eslint-community/eslint-utils@npm:^4.7.0, @eslint-community/eslint-utils@npm:^4.8.0":
+"@eslint-community/eslint-utils@npm:^4.7.0, @eslint-community/eslint-utils@npm:^4.8.0, @eslint-community/eslint-utils@npm:^4.9.1":
version: 4.9.1
resolution: "@eslint-community/eslint-utils@npm:4.9.1"
dependencies:
@@ -4339,6 +4507,22 @@ __metadata:
languageName: node
linkType: hard
+"@joshwooding/vite-plugin-react-docgen-typescript@npm:^0.6.3":
+ version: 0.6.3
+ resolution: "@joshwooding/vite-plugin-react-docgen-typescript@npm:0.6.3"
+ dependencies:
+ glob: "npm:^11.1.0"
+ react-docgen-typescript: "npm:^2.2.2"
+ peerDependencies:
+ typescript: ">= 4.3.x"
+ vite: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0
+ peerDependenciesMeta:
+ typescript:
+ optional: true
+ checksum: 10/8a0f2c52b99e0dff4eeee574cf373b794e5398ee3c6b4d272378ccfe3b7dc2f3dc647d446716998ee2d88ee26df617e7b10da949702edcb625ee49e93b7daa95
+ languageName: node
+ linkType: hard
+
"@jridgewell/gen-mapping@npm:^0.3.12, @jridgewell/gen-mapping@npm:^0.3.5":
version: 0.3.13
resolution: "@jridgewell/gen-mapping@npm:0.3.13"
@@ -4615,6 +4799,13 @@ __metadata:
languageName: node
linkType: hard
+"@neoconfetti/react@npm:^1.0.0":
+ version: 1.0.0
+ resolution: "@neoconfetti/react@npm:1.0.0"
+ checksum: 10/71a623f2df79c773b6693fab3a252ee2d7bb1da4a8986c2d15b5ef25493835c1de64f2e44637faf823970d43d63f32227b09a6605ad23f39bc82c14d810e45cd
+ languageName: node
+ linkType: hard
+
"@noble/hashes@npm:^1.1.5":
version: 1.8.0
resolution: "@noble/hashes@npm:1.8.0"
@@ -7537,7 +7728,7 @@ __metadata:
languageName: node
linkType: hard
-"@rollup/pluginutils@npm:^5.0.1":
+"@rollup/pluginutils@npm:^5.0.1, @rollup/pluginutils@npm:^5.0.2":
version: 5.3.0
resolution: "@rollup/pluginutils@npm:5.3.0"
dependencies:
@@ -7804,6 +7995,142 @@ __metadata:
languageName: node
linkType: hard
+"@storybook/addon-a11y@npm:^10.2.0":
+ version: 10.2.0
+ resolution: "@storybook/addon-a11y@npm:10.2.0"
+ dependencies:
+ "@storybook/global": "npm:^5.0.0"
+ axe-core: "npm:^4.2.0"
+ peerDependencies:
+ storybook: ^10.2.0
+ checksum: 10/6637be09d7685bbac5e097839b404d28b0780892522d5ecf9e034ebb241a10c820335c48f579c494615089ff1993952b946e0794e1b0711927e890eda5dd01f7
+ languageName: node
+ linkType: hard
+
+"@storybook/addon-docs@npm:^10.2.0":
+ version: 10.2.0
+ resolution: "@storybook/addon-docs@npm:10.2.0"
+ dependencies:
+ "@mdx-js/react": "npm:^3.0.0"
+ "@storybook/csf-plugin": "npm:10.2.0"
+ "@storybook/icons": "npm:^2.0.1"
+ "@storybook/react-dom-shim": "npm:10.2.0"
+ react: "npm:^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0"
+ react-dom: "npm:^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0"
+ ts-dedent: "npm:^2.0.0"
+ peerDependencies:
+ storybook: ^10.2.0
+ checksum: 10/1dfb8083548c8eed3d9a9226c2d97d69653773edb5390e72e8e789e5147f8ba833e5e8c40a4f217f7e78fb956a0e7b64ff7abd1f68c95d88f0772d2eb5017369
+ languageName: node
+ linkType: hard
+
+"@storybook/builder-vite@npm:10.2.0":
+ version: 10.2.0
+ resolution: "@storybook/builder-vite@npm:10.2.0"
+ dependencies:
+ "@storybook/csf-plugin": "npm:10.2.0"
+ "@vitest/mocker": "npm:3.2.4"
+ ts-dedent: "npm:^2.0.0"
+ peerDependencies:
+ storybook: ^10.2.0
+ vite: ^5.0.0 || ^6.0.0 || ^7.0.0
+ checksum: 10/31ed71e59719c8203f3abc323bd1f546a8ea3c4a66fdf05deeebdba8e74ec552149cca4d91acd21da390456bc3683bb53230175a3fecf0770e7f8b74aaa9e777
+ languageName: node
+ linkType: hard
+
+"@storybook/csf-plugin@npm:10.2.0":
+ version: 10.2.0
+ resolution: "@storybook/csf-plugin@npm:10.2.0"
+ dependencies:
+ unplugin: "npm:^2.3.5"
+ peerDependencies:
+ esbuild: "*"
+ rollup: "*"
+ storybook: ^10.2.0
+ vite: "*"
+ webpack: "*"
+ peerDependenciesMeta:
+ esbuild:
+ optional: true
+ rollup:
+ optional: true
+ vite:
+ optional: true
+ webpack:
+ optional: true
+ checksum: 10/839197aae336455d34992e7e8454fe91cd556ac27353f4d52b0419bf31418e69ace991b0520f2badf5747378e258ad2b714396548bd069376957d9bc46864efe
+ languageName: node
+ linkType: hard
+
+"@storybook/global@npm:^5.0.0":
+ version: 5.0.0
+ resolution: "@storybook/global@npm:5.0.0"
+ checksum: 10/0e7b495f4fe7f36447e793926f1c0460ec07fd66f0da68e3150da5878f6043c9eeb9b41614a45c5ec0d48d5d383c59ca8f88b6dc7882a2a784ac9b20375d8edb
+ languageName: node
+ linkType: hard
+
+"@storybook/icons@npm:^2.0.1":
+ version: 2.0.1
+ resolution: "@storybook/icons@npm:2.0.1"
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0
+ react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0
+ checksum: 10/04ffa285f4defc611def51f82492688bc49f6f4e8ce4e7ba5c99a1c1410b7e8820b5da65c33610a497df2409de7b48fae399052c5cacab6a4a4a9b48a36ebfd5
+ languageName: node
+ linkType: hard
+
+"@storybook/react-dom-shim@npm:10.2.0":
+ version: 10.2.0
+ resolution: "@storybook/react-dom-shim@npm:10.2.0"
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0
+ react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0
+ storybook: ^10.2.0
+ checksum: 10/02603400f28153176275a3be6c2ca4d6e20e744e683376778d5aa09e4d2ed0a9c090ba02962cde3a7c0a91e775a2c419b296ba3f5cbd180e71d9588dfa8bd788
+ languageName: node
+ linkType: hard
+
+"@storybook/react-vite@npm:^10.2.0":
+ version: 10.2.0
+ resolution: "@storybook/react-vite@npm:10.2.0"
+ dependencies:
+ "@joshwooding/vite-plugin-react-docgen-typescript": "npm:^0.6.3"
+ "@rollup/pluginutils": "npm:^5.0.2"
+ "@storybook/builder-vite": "npm:10.2.0"
+ "@storybook/react": "npm:10.2.0"
+ empathic: "npm:^2.0.0"
+ magic-string: "npm:^0.30.0"
+ react-docgen: "npm:^8.0.0"
+ resolve: "npm:^1.22.8"
+ tsconfig-paths: "npm:^4.2.0"
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0
+ react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0
+ storybook: ^10.2.0
+ vite: ^5.0.0 || ^6.0.0 || ^7.0.0
+ checksum: 10/b68233a4a8382c50084bf7893d777d5a73195d8edde7e365b7898ddbc63009089c1250c5ce945acdd5a265de512c46a5017eb37ffa4ae206fd79053ebeed7346
+ languageName: node
+ linkType: hard
+
+"@storybook/react@npm:10.2.0":
+ version: 10.2.0
+ resolution: "@storybook/react@npm:10.2.0"
+ dependencies:
+ "@storybook/global": "npm:^5.0.0"
+ "@storybook/react-dom-shim": "npm:10.2.0"
+ react-docgen: "npm:^8.0.2"
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0
+ react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0
+ storybook: ^10.2.0
+ typescript: ">= 4.9.x"
+ peerDependenciesMeta:
+ typescript:
+ optional: true
+ checksum: 10/330a8d731ac3a2ad64d51ea5e0b4446cee6206ead1516299e4aa488e2f26faa0719675af6d11a61c6e42cc45c8df1ec7531e4eb0c285e3a779cab4abba4bec97
+ languageName: node
+ linkType: hard
+
"@surma/rollup-plugin-off-main-thread@npm:^2.2.3":
version: 2.2.3
resolution: "@surma/rollup-plugin-off-main-thread@npm:2.2.3"
@@ -8179,7 +8506,7 @@ __metadata:
languageName: node
linkType: hard
-"@testing-library/jest-dom@npm:^6.9.1":
+"@testing-library/jest-dom@npm:^6.6.3, @testing-library/jest-dom@npm:^6.9.1":
version: 6.9.1
resolution: "@testing-library/jest-dom@npm:6.9.1"
dependencies:
@@ -8213,7 +8540,7 @@ __metadata:
languageName: node
linkType: hard
-"@testing-library/user-event@npm:14.6.1":
+"@testing-library/user-event@npm:14.6.1, @testing-library/user-event@npm:^14.6.1":
version: 14.6.1
resolution: "@testing-library/user-event@npm:14.6.1"
peerDependencies:
@@ -8314,7 +8641,7 @@ __metadata:
languageName: node
linkType: hard
-"@types/babel__traverse@npm:*":
+"@types/babel__traverse@npm:*, @types/babel__traverse@npm:^7.20.7":
version: 7.28.0
resolution: "@types/babel__traverse@npm:7.28.0"
dependencies:
@@ -8720,6 +9047,13 @@ __metadata:
languageName: node
linkType: hard
+"@types/doctrine@npm:^0.0.9":
+ version: 0.0.9
+ resolution: "@types/doctrine@npm:0.0.9"
+ checksum: 10/64ef06e6eea2f4f9684d259fedbcb8bf21c954630b96ea2e04875ca42763552b0ba3b01b3dd27ec0f9ea6f8b3b0dba4965d31d5a925cd4c6225fd13a93ae9354
+ languageName: node
+ linkType: hard
+
"@types/emscripten@npm:*, @types/emscripten@npm:^1.41.5":
version: 1.41.5
resolution: "@types/emscripten@npm:1.41.5"
@@ -9194,6 +9528,13 @@ __metadata:
languageName: node
linkType: hard
+"@types/resolve@npm:^1.20.2":
+ version: 1.20.6
+ resolution: "@types/resolve@npm:1.20.6"
+ checksum: 10/dc35f5517606b6687cd971c0281ac58bdee2c50c051b030f04647d3991688be2259c304ee97e5b5d4b9936072c36767eb5933b54611a407d6557972bb6fea4f6
+ languageName: node
+ linkType: hard
+
"@types/responselike@npm:^1.0.0":
version: 1.0.3
resolution: "@types/responselike@npm:1.0.3"
@@ -9402,6 +9743,19 @@ __metadata:
languageName: node
linkType: hard
+"@typescript-eslint/project-service@npm:8.53.1":
+ version: 8.53.1
+ resolution: "@typescript-eslint/project-service@npm:8.53.1"
+ dependencies:
+ "@typescript-eslint/tsconfig-utils": "npm:^8.53.1"
+ "@typescript-eslint/types": "npm:^8.53.1"
+ debug: "npm:^4.4.3"
+ peerDependencies:
+ typescript: ">=4.8.4 <6.0.0"
+ checksum: 10/e450cda2cb30426d55ebbbb5ecad40ba91e68f913ec7df3008ce4c1be524f7cde8411f4ea3c0a3e12fb43655def0e2473315897e410520e496f3fbb3c450ea08
+ languageName: node
+ linkType: hard
+
"@typescript-eslint/scope-manager@npm:8.50.0":
version: 8.50.0
resolution: "@typescript-eslint/scope-manager@npm:8.50.0"
@@ -9412,6 +9766,16 @@ __metadata:
languageName: node
linkType: hard
+"@typescript-eslint/scope-manager@npm:8.53.1":
+ version: 8.53.1
+ resolution: "@typescript-eslint/scope-manager@npm:8.53.1"
+ dependencies:
+ "@typescript-eslint/types": "npm:8.53.1"
+ "@typescript-eslint/visitor-keys": "npm:8.53.1"
+ checksum: 10/eaf320706143cab1cd1ac27a766be36f038f748be9e891dbedeeb29a39d3e3e7af0789f6f0a94f5c77842533253e10bd63af22c1b974ffc8a25c0ab3a120ba9e
+ languageName: node
+ linkType: hard
+
"@typescript-eslint/tsconfig-utils@npm:8.50.0, @typescript-eslint/tsconfig-utils@npm:^8.50.0":
version: 8.50.0
resolution: "@typescript-eslint/tsconfig-utils@npm:8.50.0"
@@ -9421,6 +9785,15 @@ __metadata:
languageName: node
linkType: hard
+"@typescript-eslint/tsconfig-utils@npm:8.53.1, @typescript-eslint/tsconfig-utils@npm:^8.53.1":
+ version: 8.53.1
+ resolution: "@typescript-eslint/tsconfig-utils@npm:8.53.1"
+ peerDependencies:
+ typescript: ">=4.8.4 <6.0.0"
+ checksum: 10/0e2743e3f16d60d6784edab67964725686c3efb9fddf9f90e88a9f8b3e5cf40af23be80d55142397704d765a02771626b23b43151c4e3089a394a7c487d035f9
+ languageName: node
+ linkType: hard
+
"@typescript-eslint/types@npm:8.50.0, @typescript-eslint/types@npm:^8.38.0, @typescript-eslint/types@npm:^8.50.0":
version: 8.50.0
resolution: "@typescript-eslint/types@npm:8.50.0"
@@ -9428,6 +9801,13 @@ __metadata:
languageName: node
linkType: hard
+"@typescript-eslint/types@npm:8.53.1, @typescript-eslint/types@npm:^8.53.1":
+ version: 8.53.1
+ resolution: "@typescript-eslint/types@npm:8.53.1"
+ checksum: 10/9a01aa343329af529c645204070dd20be54556c6fd92bfda3a42b6213c0408f5f2f57084064d88d5de1337a7731e57290f0ec11a0fb181bbb3c3b293ef0dcf4a
+ languageName: node
+ linkType: hard
+
"@typescript-eslint/typescript-estree@npm:8.50.0":
version: 8.50.0
resolution: "@typescript-eslint/typescript-estree@npm:8.50.0"
@@ -9447,6 +9827,25 @@ __metadata:
languageName: node
linkType: hard
+"@typescript-eslint/typescript-estree@npm:8.53.1":
+ version: 8.53.1
+ resolution: "@typescript-eslint/typescript-estree@npm:8.53.1"
+ dependencies:
+ "@typescript-eslint/project-service": "npm:8.53.1"
+ "@typescript-eslint/tsconfig-utils": "npm:8.53.1"
+ "@typescript-eslint/types": "npm:8.53.1"
+ "@typescript-eslint/visitor-keys": "npm:8.53.1"
+ debug: "npm:^4.4.3"
+ minimatch: "npm:^9.0.5"
+ semver: "npm:^7.7.3"
+ tinyglobby: "npm:^0.2.15"
+ ts-api-utils: "npm:^2.4.0"
+ peerDependencies:
+ typescript: ">=4.8.4 <6.0.0"
+ checksum: 10/fb1e0016292b82a873df1d4d95f9ecc441b443bdd83236eb7c118a88e500b9466e29bba4a6a5c3526d37c3cb189b427ea9f45d49f988fbc6dc4f238d58cfadb9
+ languageName: node
+ linkType: hard
+
"@typescript-eslint/utils@npm:^8.38.0, @typescript-eslint/utils@npm:^8.46.2":
version: 8.50.0
resolution: "@typescript-eslint/utils@npm:8.50.0"
@@ -9462,6 +9861,21 @@ __metadata:
languageName: node
linkType: hard
+"@typescript-eslint/utils@npm:^8.48.0":
+ version: 8.53.1
+ resolution: "@typescript-eslint/utils@npm:8.53.1"
+ dependencies:
+ "@eslint-community/eslint-utils": "npm:^4.9.1"
+ "@typescript-eslint/scope-manager": "npm:8.53.1"
+ "@typescript-eslint/types": "npm:8.53.1"
+ "@typescript-eslint/typescript-estree": "npm:8.53.1"
+ peerDependencies:
+ eslint: ^8.57.0 || ^9.0.0
+ typescript: ">=4.8.4 <6.0.0"
+ checksum: 10/ff874fc9938b3b9493e0e543d400cd51ed34391a6bf9838a688bb124d1999639207efb9b626908fc927ae6f149ef4aa62e02df794e5b5b0b34e6ac5de48cdaa6
+ languageName: node
+ linkType: hard
+
"@typescript-eslint/visitor-keys@npm:8.50.0":
version: 8.50.0
resolution: "@typescript-eslint/visitor-keys@npm:8.50.0"
@@ -9472,6 +9886,16 @@ __metadata:
languageName: node
linkType: hard
+"@typescript-eslint/visitor-keys@npm:8.53.1":
+ version: 8.53.1
+ resolution: "@typescript-eslint/visitor-keys@npm:8.53.1"
+ dependencies:
+ "@typescript-eslint/types": "npm:8.53.1"
+ eslint-visitor-keys: "npm:^4.2.1"
+ checksum: 10/9498ecd42de7ce5746faee88f67edebd92781d35b31c1da355207b42b564a5974c1a5314d01cd7aea865c5e948b15b3aa043d724b2e51b4f8bc26e0b3711a8b2
+ languageName: node
+ linkType: hard
+
"@uiw/codemirror-extensions-basic-setup@npm:4.25.4":
version: 4.25.4
resolution: "@uiw/codemirror-extensions-basic-setup@npm:4.25.4"
@@ -9574,6 +9998,19 @@ __metadata:
languageName: node
linkType: hard
+"@vitest/expect@npm:3.2.4":
+ version: 3.2.4
+ resolution: "@vitest/expect@npm:3.2.4"
+ dependencies:
+ "@types/chai": "npm:^5.2.2"
+ "@vitest/spy": "npm:3.2.4"
+ "@vitest/utils": "npm:3.2.4"
+ chai: "npm:^5.2.0"
+ tinyrainbow: "npm:^2.0.0"
+ checksum: 10/dc69ce886c13714dfbbff78f2d2cb7eb536017e82301a73c42d573a9e9d2bf91005ac7abd9b977adf0a3bd431209f45a8ac2418029b68b0a377e092607c843ce
+ languageName: node
+ linkType: hard
+
"@vitest/expect@npm:4.0.17":
version: 4.0.17
resolution: "@vitest/expect@npm:4.0.17"
@@ -9588,6 +10025,25 @@ __metadata:
languageName: node
linkType: hard
+"@vitest/mocker@npm:3.2.4":
+ version: 3.2.4
+ resolution: "@vitest/mocker@npm:3.2.4"
+ dependencies:
+ "@vitest/spy": "npm:3.2.4"
+ estree-walker: "npm:^3.0.3"
+ magic-string: "npm:^0.30.17"
+ peerDependencies:
+ msw: ^2.4.9
+ vite: ^5.0.0 || ^6.0.0 || ^7.0.0-0
+ peerDependenciesMeta:
+ msw:
+ optional: true
+ vite:
+ optional: true
+ checksum: 10/5e92431b6ed9fc1679060e4caef3e4623f4750542a5d7cd944774f8217c4d231e273202e8aea00bab33260a5a9222ecb7005d80da0348c3c829bd37d123071a8
+ languageName: node
+ linkType: hard
+
"@vitest/mocker@npm:4.0.17":
version: 4.0.17
resolution: "@vitest/mocker@npm:4.0.17"
@@ -9607,6 +10063,15 @@ __metadata:
languageName: node
linkType: hard
+"@vitest/pretty-format@npm:3.2.4":
+ version: 3.2.4
+ resolution: "@vitest/pretty-format@npm:3.2.4"
+ dependencies:
+ tinyrainbow: "npm:^2.0.0"
+ checksum: 10/8dd30cbf956e01fbab042fe651fb5175d9f0cd00b7b569a46cd98df89c4fec47dab12916201ad6e09a4f25f2a2ec8927a4bfdc61118593097f759c90b18a51d4
+ languageName: node
+ linkType: hard
+
"@vitest/pretty-format@npm:4.0.17":
version: 4.0.17
resolution: "@vitest/pretty-format@npm:4.0.17"
@@ -9637,6 +10102,15 @@ __metadata:
languageName: node
linkType: hard
+"@vitest/spy@npm:3.2.4":
+ version: 3.2.4
+ resolution: "@vitest/spy@npm:3.2.4"
+ dependencies:
+ tinyspy: "npm:^4.0.3"
+ checksum: 10/7d38c299f42a8c7e5e41652b203af98ca54e63df69c3b072d0e401d5a57fbbba3e39d8538ac1b3022c26718a6388d0bcc222bc2f07faab75942543b9247c007d
+ languageName: node
+ linkType: hard
+
"@vitest/spy@npm:4.0.17":
version: 4.0.17
resolution: "@vitest/spy@npm:4.0.17"
@@ -9644,6 +10118,17 @@ __metadata:
languageName: node
linkType: hard
+"@vitest/utils@npm:3.2.4":
+ version: 3.2.4
+ resolution: "@vitest/utils@npm:3.2.4"
+ dependencies:
+ "@vitest/pretty-format": "npm:3.2.4"
+ loupe: "npm:^3.1.4"
+ tinyrainbow: "npm:^2.0.0"
+ checksum: 10/7f12ef63bd8ee13957744d1f336b0405f164ade4358bf9dfa531f75bbb58ffac02bf61aba65724311ddbc50b12ba54853a169e59c6b837c16086173b9a480710
+ languageName: node
+ linkType: hard
+
"@vitest/utils@npm:4.0.17":
version: 4.0.17
resolution: "@vitest/utils@npm:4.0.17"
@@ -10354,6 +10839,22 @@ __metadata:
languageName: node
linkType: hard
+"assertion-error@npm:^2.0.1":
+ version: 2.0.1
+ resolution: "assertion-error@npm:2.0.1"
+ checksum: 10/a0789dd882211b87116e81e2648ccb7f60340b34f19877dd020b39ebb4714e475eb943e14ba3e22201c221ef6645b7bfe10297e76b6ac95b48a9898c1211ce66
+ languageName: node
+ linkType: hard
+
+"ast-types@npm:^0.16.1":
+ version: 0.16.1
+ resolution: "ast-types@npm:0.16.1"
+ dependencies:
+ tslib: "npm:^2.0.1"
+ checksum: 10/f569b475eb1c8cb93888cb6e7b7e36dc43fa19a77e4eb132cbff6e3eb1598ca60f850db6e60b070e5a0ee8c1559fca921dac0916e576f2f104e198793b0bdd8d
+ languageName: node
+ linkType: hard
+
"astral-regex@npm:^2.0.0":
version: 2.0.0
resolution: "astral-regex@npm:2.0.0"
@@ -10448,6 +10949,13 @@ __metadata:
languageName: node
linkType: hard
+"axe-core@npm:^4.2.0":
+ version: 4.11.1
+ resolution: "axe-core@npm:4.11.1"
+ checksum: 10/bbc8e8959258a229b92fbaa73437050825579815051cac7b0fdbb6752946fea226e403bfeeef3d60d712477bdd4c01afdc8455f27c3d85e4251df88b032b6250
+ languageName: node
+ linkType: hard
+
"axios@npm:^1.2.1":
version: 1.12.2
resolution: "axios@npm:1.12.2"
@@ -11286,6 +11794,19 @@ __metadata:
languageName: node
linkType: hard
+"chai@npm:^5.2.0":
+ version: 5.3.3
+ resolution: "chai@npm:5.3.3"
+ dependencies:
+ assertion-error: "npm:^2.0.1"
+ check-error: "npm:^2.1.1"
+ deep-eql: "npm:^5.0.1"
+ loupe: "npm:^3.1.0"
+ pathval: "npm:^2.0.0"
+ checksum: 10/0d0ef63106083b05c7ba510697cd9991a02b8df5984a7d010ab4af10205c7a1f27d1c06bfa4679540894295ac4dcc22aa2a281e2e4cfe5133c1db379626689a2
+ languageName: node
+ linkType: hard
+
"chai@npm:^6.2.1":
version: 6.2.2
resolution: "chai@npm:6.2.2"
@@ -11373,6 +11894,13 @@ __metadata:
languageName: node
linkType: hard
+"check-error@npm:^2.1.1":
+ version: 2.1.3
+ resolution: "check-error@npm:2.1.3"
+ checksum: 10/f1868d3db60f5a7da92e140ccf33e9152bf6124161fa9b7a4ae8eafdb05e66e1f13570401e56f314f037b0f1b71eaf38ad0c7256310d82c6105e9d85ded0f202
+ languageName: node
+ linkType: hard
+
"cheerio-select@npm:^2.1.0":
version: 2.1.0
resolution: "cheerio-select@npm:2.1.0"
@@ -11504,6 +12032,25 @@ __metadata:
languageName: node
linkType: hard
+"chromatic@npm:^13.3.4":
+ version: 13.3.5
+ resolution: "chromatic@npm:13.3.5"
+ peerDependencies:
+ "@chromatic-com/cypress": ^0.*.* || ^1.0.0
+ "@chromatic-com/playwright": ^0.*.* || ^1.0.0
+ peerDependenciesMeta:
+ "@chromatic-com/cypress":
+ optional: true
+ "@chromatic-com/playwright":
+ optional: true
+ bin:
+ chroma: dist/bin.js
+ chromatic: dist/bin.js
+ chromatic-cli: dist/bin.js
+ checksum: 10/d660e926e2763158eb216c12fd443ac909235b62e0855d6485c5ec270cbde8ce6d5467fc9792a988f2cd4c32722efb9899982b26d4bd8265381846c7d7006c21
+ languageName: node
+ linkType: hard
+
"chrome-trace-event@npm:^1.0.2":
version: 1.0.4
resolution: "chrome-trace-event@npm:1.0.4"
@@ -13272,6 +13819,13 @@ __metadata:
languageName: node
linkType: hard
+"deep-eql@npm:^5.0.1":
+ version: 5.0.2
+ resolution: "deep-eql@npm:5.0.2"
+ checksum: 10/a529b81e2ef8821621d20a36959a0328873a3e49d393ad11f8efe8559f31239494c2eb889b80342808674c475802ba95b9d6c4c27641b9a029405104c1b59fcf
+ languageName: node
+ linkType: hard
+
"deep-equal@npm:^2.2.3":
version: 2.2.3
resolution: "deep-equal@npm:2.2.3"
@@ -13646,6 +14200,15 @@ __metadata:
languageName: unknown
linkType: soft
+"doctrine@npm:^3.0.0":
+ version: 3.0.0
+ resolution: "doctrine@npm:3.0.0"
+ dependencies:
+ esutils: "npm:^2.0.2"
+ checksum: 10/b4b28f1df5c563f7d876e7461254a4597b8cabe915abe94d7c5d1633fed263fcf9a85e8d3836591fc2d040108e822b0d32758e5ec1fe31c590dc7e08086e3e48
+ languageName: node
+ linkType: hard
+
"dom-accessibility-api@npm:^0.5.9":
version: 0.5.16
resolution: "dom-accessibility-api@npm:0.5.16"
@@ -13980,6 +14543,13 @@ __metadata:
languageName: node
linkType: hard
+"empathic@npm:^2.0.0":
+ version: 2.0.0
+ resolution: "empathic@npm:2.0.0"
+ checksum: 10/90f47d93f8d1db3aa00ce1bfae2940bf76379dbb34bd562edbd92c3564a173cb1d6bd3cadb645fad0224839c25886abde801155d9b972dda6add7a5cc8b35d48
+ languageName: node
+ linkType: hard
+
"enabled@npm:2.0.x":
version: 2.0.0
resolution: "enabled@npm:2.0.0"
@@ -14279,6 +14849,95 @@ __metadata:
languageName: node
linkType: hard
+"esbuild@npm:^0.18.0 || ^0.19.0 || ^0.20.0 || ^0.21.0 || ^0.22.0 || ^0.23.0 || ^0.24.0 || ^0.25.0 || ^0.26.0 || ^0.27.0, esbuild@npm:^0.27.0":
+ version: 0.27.2
+ resolution: "esbuild@npm:0.27.2"
+ dependencies:
+ "@esbuild/aix-ppc64": "npm:0.27.2"
+ "@esbuild/android-arm": "npm:0.27.2"
+ "@esbuild/android-arm64": "npm:0.27.2"
+ "@esbuild/android-x64": "npm:0.27.2"
+ "@esbuild/darwin-arm64": "npm:0.27.2"
+ "@esbuild/darwin-x64": "npm:0.27.2"
+ "@esbuild/freebsd-arm64": "npm:0.27.2"
+ "@esbuild/freebsd-x64": "npm:0.27.2"
+ "@esbuild/linux-arm": "npm:0.27.2"
+ "@esbuild/linux-arm64": "npm:0.27.2"
+ "@esbuild/linux-ia32": "npm:0.27.2"
+ "@esbuild/linux-loong64": "npm:0.27.2"
+ "@esbuild/linux-mips64el": "npm:0.27.2"
+ "@esbuild/linux-ppc64": "npm:0.27.2"
+ "@esbuild/linux-riscv64": "npm:0.27.2"
+ "@esbuild/linux-s390x": "npm:0.27.2"
+ "@esbuild/linux-x64": "npm:0.27.2"
+ "@esbuild/netbsd-arm64": "npm:0.27.2"
+ "@esbuild/netbsd-x64": "npm:0.27.2"
+ "@esbuild/openbsd-arm64": "npm:0.27.2"
+ "@esbuild/openbsd-x64": "npm:0.27.2"
+ "@esbuild/openharmony-arm64": "npm:0.27.2"
+ "@esbuild/sunos-x64": "npm:0.27.2"
+ "@esbuild/win32-arm64": "npm:0.27.2"
+ "@esbuild/win32-ia32": "npm:0.27.2"
+ "@esbuild/win32-x64": "npm:0.27.2"
+ dependenciesMeta:
+ "@esbuild/aix-ppc64":
+ optional: true
+ "@esbuild/android-arm":
+ optional: true
+ "@esbuild/android-arm64":
+ optional: true
+ "@esbuild/android-x64":
+ optional: true
+ "@esbuild/darwin-arm64":
+ optional: true
+ "@esbuild/darwin-x64":
+ optional: true
+ "@esbuild/freebsd-arm64":
+ optional: true
+ "@esbuild/freebsd-x64":
+ optional: true
+ "@esbuild/linux-arm":
+ optional: true
+ "@esbuild/linux-arm64":
+ optional: true
+ "@esbuild/linux-ia32":
+ optional: true
+ "@esbuild/linux-loong64":
+ optional: true
+ "@esbuild/linux-mips64el":
+ optional: true
+ "@esbuild/linux-ppc64":
+ optional: true
+ "@esbuild/linux-riscv64":
+ optional: true
+ "@esbuild/linux-s390x":
+ optional: true
+ "@esbuild/linux-x64":
+ optional: true
+ "@esbuild/netbsd-arm64":
+ optional: true
+ "@esbuild/netbsd-x64":
+ optional: true
+ "@esbuild/openbsd-arm64":
+ optional: true
+ "@esbuild/openbsd-x64":
+ optional: true
+ "@esbuild/openharmony-arm64":
+ optional: true
+ "@esbuild/sunos-x64":
+ optional: true
+ "@esbuild/win32-arm64":
+ optional: true
+ "@esbuild/win32-ia32":
+ optional: true
+ "@esbuild/win32-x64":
+ optional: true
+ bin:
+ esbuild: bin/esbuild
+ checksum: 10/7f1229328b0efc63c4184a61a7eb303df1e99818cc1d9e309fb92600703008e69821e8e984e9e9f54a627da14e0960d561db3a93029482ef96dc82dd267a60c2
+ languageName: node
+ linkType: hard
+
"esbuild@npm:^0.25.0":
version: 0.25.10
resolution: "esbuild@npm:0.25.10"
@@ -14368,95 +15027,6 @@ __metadata:
languageName: node
linkType: hard
-"esbuild@npm:^0.27.0":
- version: 0.27.2
- resolution: "esbuild@npm:0.27.2"
- dependencies:
- "@esbuild/aix-ppc64": "npm:0.27.2"
- "@esbuild/android-arm": "npm:0.27.2"
- "@esbuild/android-arm64": "npm:0.27.2"
- "@esbuild/android-x64": "npm:0.27.2"
- "@esbuild/darwin-arm64": "npm:0.27.2"
- "@esbuild/darwin-x64": "npm:0.27.2"
- "@esbuild/freebsd-arm64": "npm:0.27.2"
- "@esbuild/freebsd-x64": "npm:0.27.2"
- "@esbuild/linux-arm": "npm:0.27.2"
- "@esbuild/linux-arm64": "npm:0.27.2"
- "@esbuild/linux-ia32": "npm:0.27.2"
- "@esbuild/linux-loong64": "npm:0.27.2"
- "@esbuild/linux-mips64el": "npm:0.27.2"
- "@esbuild/linux-ppc64": "npm:0.27.2"
- "@esbuild/linux-riscv64": "npm:0.27.2"
- "@esbuild/linux-s390x": "npm:0.27.2"
- "@esbuild/linux-x64": "npm:0.27.2"
- "@esbuild/netbsd-arm64": "npm:0.27.2"
- "@esbuild/netbsd-x64": "npm:0.27.2"
- "@esbuild/openbsd-arm64": "npm:0.27.2"
- "@esbuild/openbsd-x64": "npm:0.27.2"
- "@esbuild/openharmony-arm64": "npm:0.27.2"
- "@esbuild/sunos-x64": "npm:0.27.2"
- "@esbuild/win32-arm64": "npm:0.27.2"
- "@esbuild/win32-ia32": "npm:0.27.2"
- "@esbuild/win32-x64": "npm:0.27.2"
- dependenciesMeta:
- "@esbuild/aix-ppc64":
- optional: true
- "@esbuild/android-arm":
- optional: true
- "@esbuild/android-arm64":
- optional: true
- "@esbuild/android-x64":
- optional: true
- "@esbuild/darwin-arm64":
- optional: true
- "@esbuild/darwin-x64":
- optional: true
- "@esbuild/freebsd-arm64":
- optional: true
- "@esbuild/freebsd-x64":
- optional: true
- "@esbuild/linux-arm":
- optional: true
- "@esbuild/linux-arm64":
- optional: true
- "@esbuild/linux-ia32":
- optional: true
- "@esbuild/linux-loong64":
- optional: true
- "@esbuild/linux-mips64el":
- optional: true
- "@esbuild/linux-ppc64":
- optional: true
- "@esbuild/linux-riscv64":
- optional: true
- "@esbuild/linux-s390x":
- optional: true
- "@esbuild/linux-x64":
- optional: true
- "@esbuild/netbsd-arm64":
- optional: true
- "@esbuild/netbsd-x64":
- optional: true
- "@esbuild/openbsd-arm64":
- optional: true
- "@esbuild/openbsd-x64":
- optional: true
- "@esbuild/openharmony-arm64":
- optional: true
- "@esbuild/sunos-x64":
- optional: true
- "@esbuild/win32-arm64":
- optional: true
- "@esbuild/win32-ia32":
- optional: true
- "@esbuild/win32-x64":
- optional: true
- bin:
- esbuild: bin/esbuild
- checksum: 10/7f1229328b0efc63c4184a61a7eb303df1e99818cc1d9e309fb92600703008e69821e8e984e9e9f54a627da14e0960d561db3a93029482ef96dc82dd267a60c2
- languageName: node
- linkType: hard
-
"escalade@npm:^3.1.1, escalade@npm:^3.2.0":
version: 3.2.0
resolution: "escalade@npm:3.2.0"
@@ -14525,6 +15095,18 @@ __metadata:
languageName: node
linkType: hard
+"eslint-plugin-storybook@npm:^10.2.0":
+ version: 10.2.0
+ resolution: "eslint-plugin-storybook@npm:10.2.0"
+ dependencies:
+ "@typescript-eslint/utils": "npm:^8.48.0"
+ peerDependencies:
+ eslint: ">=8"
+ storybook: ^10.2.0
+ checksum: 10/55c52b4da9f51f8def6c4c6931fe5ff24aaccf4d42a672f863f591cbeb907d33afa04f0cf2ccc3a4d5c530098bc7858a455c899ee493ca6caf6bd887ba201297
+ languageName: node
+ linkType: hard
+
"eslint-plugin-typescript-paths@npm:^0.0.33":
version: 0.0.33
resolution: "eslint-plugin-typescript-paths@npm:0.0.33"
@@ -14642,7 +15224,7 @@ __metadata:
languageName: node
linkType: hard
-"esprima@npm:^4.0.0":
+"esprima@npm:^4.0.0, esprima@npm:~4.0.0":
version: 4.0.1
resolution: "esprima@npm:4.0.1"
bin:
@@ -15266,6 +15848,13 @@ __metadata:
languageName: node
linkType: hard
+"filesize@npm:^10.0.12":
+ version: 10.1.6
+ resolution: "filesize@npm:10.1.6"
+ checksum: 10/e800837c4fc02303f1944d5a4c7b706df1c5cd95d745181852604fb00a1c2d55d2d3921252722bd2f0c86b59c94edaba23fa224776bbf977455d4034e7be1f45
+ languageName: node
+ linkType: hard
+
"fill-range@npm:^7.1.1":
version: 7.1.1
resolution: "fill-range@npm:7.1.1"
@@ -15905,7 +16494,7 @@ __metadata:
languageName: node
linkType: hard
-"glob@npm:^11.0.1":
+"glob@npm:^11.0.1, glob@npm:^11.1.0":
version: 11.1.0
resolution: "glob@npm:11.1.0"
dependencies:
@@ -17272,7 +17861,7 @@ __metadata:
languageName: node
linkType: hard
-"is-core-module@npm:^2.16.0":
+"is-core-module@npm:^2.16.0, is-core-module@npm:^2.16.1":
version: 2.16.1
resolution: "is-core-module@npm:2.16.1"
dependencies:
@@ -18069,7 +18658,7 @@ __metadata:
languageName: node
linkType: hard
-"json5@npm:^2.1.2, json5@npm:^2.2.0, json5@npm:^2.2.3":
+"json5@npm:^2.1.2, json5@npm:^2.2.0, json5@npm:^2.2.2, json5@npm:^2.2.3":
version: 2.2.3
resolution: "json5@npm:2.2.3"
bin:
@@ -18097,7 +18686,7 @@ __metadata:
languageName: node
linkType: hard
-"jsonfile@npm:^6.0.1":
+"jsonfile@npm:^6.0.1, jsonfile@npm:^6.1.0":
version: 6.2.0
resolution: "jsonfile@npm:6.2.0"
dependencies:
@@ -18683,7 +19272,7 @@ __metadata:
languageName: unknown
linkType: soft
-"loupe@npm:^3.2.1":
+"loupe@npm:^3.1.0, loupe@npm:^3.1.4, loupe@npm:^3.2.1":
version: 3.2.1
resolution: "loupe@npm:3.2.1"
checksum: 10/a4d78ec758aaa04e0e35d5cd1c15e970beb9cdbfd3d0f34f98b9bcda489f896a7190b3b6cc40b7a6dcb8e97e82e96eafaae10096aaa469804acdba6f7c2bde5f
@@ -18777,7 +19366,7 @@ __metadata:
languageName: node
linkType: hard
-"magic-string@npm:^0.30.21, magic-string@npm:^0.30.3":
+"magic-string@npm:^0.30.0, magic-string@npm:^0.30.17, magic-string@npm:^0.30.21, magic-string@npm:^0.30.3":
version: 0.30.21
resolution: "magic-string@npm:0.30.21"
dependencies:
@@ -19993,7 +20582,7 @@ __metadata:
languageName: node
linkType: hard
-"minimatch@npm:^9.0.1, minimatch@npm:^9.0.3, minimatch@npm:^9.0.4":
+"minimatch@npm:^9.0.1, minimatch@npm:^9.0.3, minimatch@npm:^9.0.4, minimatch@npm:^9.0.5":
version: 9.0.5
resolution: "minimatch@npm:9.0.5"
dependencies:
@@ -20760,7 +21349,7 @@ __metadata:
languageName: node
linkType: hard
-"open@npm:^10.0.3":
+"open@npm:^10.0.3, open@npm:^10.2.0":
version: 10.2.0
resolution: "open@npm:10.2.0"
dependencies:
@@ -21347,6 +21936,13 @@ __metadata:
languageName: node
linkType: hard
+"pathval@npm:^2.0.0":
+ version: 2.0.1
+ resolution: "pathval@npm:2.0.1"
+ checksum: 10/f5e8b82f6b988a5bba197970af050268fd800780d0f9ee026e6f0b544ac4b17ab52bebeabccb790d63a794530a1641ae399ad07ecfc67ad337504c85dc9e5693
+ languageName: node
+ linkType: hard
+
"pbkdf2@npm:^3.1.2, pbkdf2@npm:^3.1.5":
version: 3.1.5
resolution: "pbkdf2@npm:3.1.5"
@@ -22957,7 +23553,34 @@ __metadata:
languageName: node
linkType: hard
-"react-dom@npm:19.2.3, react-dom@npm:^19.2.3":
+"react-docgen-typescript@npm:^2.2.2":
+ version: 2.4.0
+ resolution: "react-docgen-typescript@npm:2.4.0"
+ peerDependencies:
+ typescript: ">= 4.3.x"
+ checksum: 10/81e45bc012150dee50a9919a44597a436d45168f7a83febbbfef134c07e71c1a2f09fb6e1fc040f18bd6747f37b46d463a2b4a30177f6137e4ff49570bcaf253
+ languageName: node
+ linkType: hard
+
+"react-docgen@npm:^8.0.0, react-docgen@npm:^8.0.2":
+ version: 8.0.2
+ resolution: "react-docgen@npm:8.0.2"
+ dependencies:
+ "@babel/core": "npm:^7.28.0"
+ "@babel/traverse": "npm:^7.28.0"
+ "@babel/types": "npm:^7.28.2"
+ "@types/babel__core": "npm:^7.20.5"
+ "@types/babel__traverse": "npm:^7.20.7"
+ "@types/doctrine": "npm:^0.0.9"
+ "@types/resolve": "npm:^1.20.2"
+ doctrine: "npm:^3.0.0"
+ resolve: "npm:^1.22.1"
+ strip-indent: "npm:^4.0.0"
+ checksum: 10/b56f594237a0bdf1356dee6a416ab6f2f38f60a7330cbdaf1da93d366f29f6bfbbfedecd51d47f6ba2a898985c3205c369e7f6cad528478560d9363717243ff8
+ languageName: node
+ linkType: hard
+
+"react-dom@npm:19.2.3, react-dom@npm:^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0, react-dom@npm:^19.2.3":
version: 19.2.3
resolution: "react-dom@npm:19.2.3"
dependencies:
@@ -23401,7 +24024,7 @@ __metadata:
languageName: node
linkType: hard
-"react@npm:19.2.3, react@npm:^19.2.3":
+"react@npm:19.2.3, react@npm:^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0, react@npm:^19.2.3":
version: 19.2.3
resolution: "react@npm:19.2.3"
checksum: 10/d16b7f35c0d35a56f63d9d1693819762e4abc479c57dd6310298920bed3820fcec7e17a99d44983416d8f5049143ea45b8005d3ab8324bae8973224400502b08
@@ -23484,6 +24107,19 @@ __metadata:
languageName: node
linkType: hard
+"recast@npm:^0.23.5":
+ version: 0.23.11
+ resolution: "recast@npm:0.23.11"
+ dependencies:
+ ast-types: "npm:^0.16.1"
+ esprima: "npm:~4.0.0"
+ source-map: "npm:~0.6.1"
+ tiny-invariant: "npm:^1.3.3"
+ tslib: "npm:^2.0.1"
+ checksum: 10/a622b7848efe13a59a40c9a1a3a8178433eae1048780e04d7392406e2d67fc29e3efa84b3aa8cfda28fd58989f4b59fa968bed295b739987a666bd11cc57a5b2
+ languageName: node
+ linkType: hard
+
"recharts@npm:^3.4.1":
version: 3.4.1
resolution: "recharts@npm:3.4.1"
@@ -23977,6 +24613,19 @@ __metadata:
languageName: node
linkType: hard
+"resolve@npm:^1.22.8":
+ version: 1.22.11
+ resolution: "resolve@npm:1.22.11"
+ dependencies:
+ is-core-module: "npm:^2.16.1"
+ path-parse: "npm:^1.0.7"
+ supports-preserve-symlinks-flag: "npm:^1.0.0"
+ bin:
+ resolve: bin/resolve
+ checksum: 10/e1b2e738884a08de03f97ee71494335eba8c2b0feb1de9ae065e82c48997f349f77a2b10e8817e147cf610bfabc4b1cb7891ee8eaf5bf80d4ad514a34c4fab0a
+ languageName: node
+ linkType: hard
+
"resolve@patch:resolve@npm%3A^1.10.0#optional!builtin, resolve@patch:resolve@npm%3A^1.17.0#optional!builtin, resolve@patch:resolve@npm%3A^1.19.0#optional!builtin, resolve@patch:resolve@npm%3A^1.22.1#optional!builtin, resolve@patch:resolve@npm%3A^1.22.10#optional!builtin":
version: 1.22.10
resolution: "resolve@patch:resolve@npm%3A1.22.10#optional!builtin::version=1.22.10&hash=c3c19d"
@@ -23990,6 +24639,19 @@ __metadata:
languageName: node
linkType: hard
+"resolve@patch:resolve@npm%3A^1.22.8#optional!builtin":
+ version: 1.22.11
+ resolution: "resolve@patch:resolve@npm%3A1.22.11#optional!builtin::version=1.22.11&hash=c3c19d"
+ dependencies:
+ is-core-module: "npm:^2.16.1"
+ path-parse: "npm:^1.0.7"
+ supports-preserve-symlinks-flag: "npm:^1.0.0"
+ bin:
+ resolve: bin/resolve
+ checksum: 10/fd342cad25e52cd6f4f3d1716e189717f2522bfd6641109fe7aa372f32b5714a296ed7c238ddbe7ebb0c1ddfe0b7f71c9984171024c97cf1b2073e3e40ff71a8
+ languageName: node
+ linkType: hard
+
"responselike@npm:^2.0.0":
version: 2.0.1
resolution: "responselike@npm:2.0.1"
@@ -24500,7 +25162,7 @@ __metadata:
languageName: node
linkType: hard
-"semver@npm:^7.3.2, semver@npm:^7.3.5, semver@npm:^7.3.7, semver@npm:^7.5.3, semver@npm:^7.5.4, semver@npm:^7.6.0, semver@npm:^7.6.3, semver@npm:~7.7.3":
+"semver@npm:^7.3.2, semver@npm:^7.3.5, semver@npm:^7.3.7, semver@npm:^7.5.3, semver@npm:^7.5.4, semver@npm:^7.6.0, semver@npm:^7.6.3, semver@npm:^7.7.3, semver@npm:~7.7.3":
version: 7.7.3
resolution: "semver@npm:7.7.3"
bin:
@@ -25071,7 +25733,7 @@ __metadata:
languageName: node
linkType: hard
-"source-map@npm:^0.6.0, source-map@npm:^0.6.1, source-map@npm:~0.6.0":
+"source-map@npm:^0.6.0, source-map@npm:^0.6.1, source-map@npm:~0.6.0, source-map@npm:~0.6.1":
version: 0.6.1
resolution: "source-map@npm:0.6.1"
checksum: 10/59ef7462f1c29d502b3057e822cdbdae0b0e565302c4dd1a95e11e793d8d9d62006cdc10e0fd99163ca33ff2071360cf50ee13f90440806e7ed57d81cba2f7ff
@@ -25258,6 +25920,33 @@ __metadata:
languageName: node
linkType: hard
+"storybook@npm:^10.2.0":
+ version: 10.2.0
+ resolution: "storybook@npm:10.2.0"
+ dependencies:
+ "@storybook/global": "npm:^5.0.0"
+ "@storybook/icons": "npm:^2.0.1"
+ "@testing-library/jest-dom": "npm:^6.6.3"
+ "@testing-library/user-event": "npm:^14.6.1"
+ "@vitest/expect": "npm:3.2.4"
+ "@vitest/spy": "npm:3.2.4"
+ esbuild: "npm:^0.18.0 || ^0.19.0 || ^0.20.0 || ^0.21.0 || ^0.22.0 || ^0.23.0 || ^0.24.0 || ^0.25.0 || ^0.26.0 || ^0.27.0"
+ open: "npm:^10.2.0"
+ recast: "npm:^0.23.5"
+ semver: "npm:^7.7.3"
+ use-sync-external-store: "npm:^1.5.0"
+ ws: "npm:^8.18.0"
+ peerDependencies:
+ prettier: ^2 || ^3
+ peerDependenciesMeta:
+ prettier:
+ optional: true
+ bin:
+ storybook: ./dist/bin/dispatcher.js
+ checksum: 10/cac19b62c3dfd7a0a2e5d642472b2b1fee183bb5f992a6b070d0ff091aae62b79df2db24bedc57458bcf225f7cabc03e7a013b87aa065fe29b2ace76473dfa46
+ languageName: node
+ linkType: hard
+
"stream-browserify@npm:^3.0.0":
version: 3.0.0
resolution: "stream-browserify@npm:3.0.0"
@@ -25522,6 +26211,13 @@ __metadata:
languageName: node
linkType: hard
+"strip-indent@npm:^4.0.0":
+ version: 4.1.1
+ resolution: "strip-indent@npm:4.1.1"
+ checksum: 10/d322bfdc59855006791a4aebe2a66e0892eab7004a5c064d74b86a0c6ecff2818974c9a5eda54b16d8af6aadbc90a6c02635ffcbec11ab33dd8979b1a6346fc0
+ languageName: node
+ linkType: hard
+
"strip-json-comments@npm:^3.1.1":
version: 3.1.1
resolution: "strip-json-comments@npm:3.1.1"
@@ -26023,6 +26719,13 @@ __metadata:
languageName: node
linkType: hard
+"tinyrainbow@npm:^2.0.0":
+ version: 2.0.0
+ resolution: "tinyrainbow@npm:2.0.0"
+ checksum: 10/94d4e16246972614a5601eeb169ba94f1d49752426312d3cf8cc4f2cc663a2e354ffc653aa4de4eebccbf9eeebdd0caef52d1150271fdfde65d7ae7f3dcb9eb5
+ languageName: node
+ linkType: hard
+
"tinyrainbow@npm:^3.0.3":
version: 3.0.3
resolution: "tinyrainbow@npm:3.0.3"
@@ -26030,7 +26733,7 @@ __metadata:
languageName: node
linkType: hard
-"tinyspy@npm:^4.0.4":
+"tinyspy@npm:^4.0.3, tinyspy@npm:^4.0.4":
version: 4.0.4
resolution: "tinyspy@npm:4.0.4"
checksum: 10/858a99e3ded2fba8fe7c243099d9e58e926d6525af03d19cdf86c1a9a30398161fb830b4f77890d266bcc1c69df08fa6f4baf29d089385e4cdaa98d7b6296e7c
@@ -26205,7 +26908,16 @@ __metadata:
languageName: node
linkType: hard
-"ts-dedent@npm:^2.2.0":
+"ts-api-utils@npm:^2.4.0":
+ version: 2.4.0
+ resolution: "ts-api-utils@npm:2.4.0"
+ peerDependencies:
+ typescript: ">=4.8.4"
+ checksum: 10/d6b2b3b6caad8d2f4ddc0c3785d22bb1a6041773335a1c71d73a5d67d11d993763fe8e4faefc4a4d03bb42b26c6126bbcf2e34826baed1def5369d0ebad358fa
+ languageName: node
+ linkType: hard
+
+"ts-dedent@npm:^2.0.0, ts-dedent@npm:^2.2.0":
version: 2.2.0
resolution: "ts-dedent@npm:2.2.0"
checksum: 10/93ed8f7878b6d5ed3c08d99b740010eede6bccfe64bce61c5a4da06a2c17d6ddbb80a8c49c2d15251de7594a4f93ffa21dd10e7be75ef66a4dc9951b4a94e2af
@@ -26292,7 +27004,18 @@ __metadata:
languageName: node
linkType: hard
-"tslib@npm:^2.0.0, tslib@npm:^2.0.3, tslib@npm:^2.1.0, tslib@npm:^2.4.0, tslib@npm:^2.6.0, tslib@npm:^2.6.2, tslib@npm:^2.8.0":
+"tsconfig-paths@npm:^4.2.0":
+ version: 4.2.0
+ resolution: "tsconfig-paths@npm:4.2.0"
+ dependencies:
+ json5: "npm:^2.2.2"
+ minimist: "npm:^1.2.6"
+ strip-bom: "npm:^3.0.0"
+ checksum: 10/5e55cc2fb6b800eb72011522e10edefccb45b1f9af055681a51354c9b597d1390c6fa9cc356b8c7529f195ac8a90a78190d563159f3a1eed10e01bbd4d01a8ab
+ languageName: node
+ linkType: hard
+
+"tslib@npm:^2.0.0, tslib@npm:^2.0.1, tslib@npm:^2.0.3, tslib@npm:^2.1.0, tslib@npm:^2.4.0, tslib@npm:^2.6.0, tslib@npm:^2.6.2, tslib@npm:^2.8.0":
version: 2.8.1
resolution: "tslib@npm:2.8.1"
checksum: 10/3e2e043d5c2316461cb54e5c7fe02c30ef6dccb3384717ca22ae5c6b5bc95232a6241df19c622d9c73b809bea33b187f6dbc73030963e29950c2141bc32a79f7
@@ -26745,6 +27468,18 @@ __metadata:
languageName: node
linkType: hard
+"unplugin@npm:^2.3.5":
+ version: 2.3.11
+ resolution: "unplugin@npm:2.3.11"
+ dependencies:
+ "@jridgewell/remapping": "npm:^2.3.5"
+ acorn: "npm:^8.15.0"
+ picomatch: "npm:^4.0.3"
+ webpack-virtual-modules: "npm:^0.6.2"
+ checksum: 10/7b4adbfaac8894e8491c452c0b67c612b57e103761e842d9013ebea89a4ae92a78df4ec0aa30e5e3eaaefd47dd287973d5a662271624b7346a15d9236d257f9d
+ languageName: node
+ linkType: hard
+
"untildify@npm:^4.0.0":
version: 4.0.0
resolution: "untildify@npm:4.0.0"
@@ -26862,7 +27597,7 @@ __metadata:
languageName: node
linkType: hard
-"use-sync-external-store@npm:^1.2.2, use-sync-external-store@npm:^1.4.0, use-sync-external-store@npm:^1.6.0":
+"use-sync-external-store@npm:^1.2.2, use-sync-external-store@npm:^1.4.0, use-sync-external-store@npm:^1.5.0, use-sync-external-store@npm:^1.6.0":
version: 1.6.0
resolution: "use-sync-external-store@npm:1.6.0"
peerDependencies:
@@ -27568,6 +28303,13 @@ __metadata:
languageName: node
linkType: hard
+"webpack-virtual-modules@npm:^0.6.2":
+ version: 0.6.2
+ resolution: "webpack-virtual-modules@npm:0.6.2"
+ checksum: 10/d9a0d035f7ec0c7f1055aaf88bfe48b7f96458043916a1b2926d9012fd61de3810a6b768e31a8cd4b3c84a9b6d55824361a9dd20aaf9f5ccfb6f017af216a178
+ languageName: node
+ linkType: hard
+
"webpack@npm:^5.88.1, webpack@npm:^5.95.0":
version: 5.102.1
resolution: "webpack@npm:5.102.1"