From 6d95985eece1988d5793eff24604b6267ce1fe9a Mon Sep 17 00:00:00 2001 From: Scott Wilson Date: Thu, 23 Oct 2025 09:30:30 -0700 Subject: [PATCH] feat: add storybook and new badge component with stories --- frontend/.gitignore | 3 + .../.storybook/decorators/RouterDecorator.tsx | 17 + frontend/.storybook/decorators/index.ts | 1 + frontend/.storybook/main.ts | 14 + frontend/.storybook/preview.tsx | 45 + frontend/eslint.config.js | 6 +- frontend/package-lock.json | 2089 +++++++++++++++-- frontend/package.json | 12 +- frontend/public/fonts/AllianceNo2-Regular.otf | Bin 0 -> 134048 bytes .../public/images/logotransparent_trimmed.png | Bin 0 -> 35972 bytes .../lotties/infisical_loading_white.json | 1 + .../v3/generic/Badge/Badge.stories.tsx | 307 +++ .../src/components/v3/generic/Badge/Badge.tsx | 82 + .../src/components/v3/generic/Badge/index.ts | 1 + frontend/src/components/v3/generic/index.ts | 1 + frontend/src/components/v3/index.ts | 0 frontend/src/components/v3/utils/index.ts | 6 + frontend/src/index.css | 18 +- frontend/tsconfig.app.json | 2 + 19 files changed, 2437 insertions(+), 168 deletions(-) create mode 100644 frontend/.storybook/decorators/RouterDecorator.tsx create mode 100644 frontend/.storybook/decorators/index.ts create mode 100644 frontend/.storybook/main.ts create mode 100644 frontend/.storybook/preview.tsx create mode 100644 frontend/public/fonts/AllianceNo2-Regular.otf create mode 100644 frontend/public/images/logotransparent_trimmed.png create mode 100644 frontend/public/lotties/infisical_loading_white.json create mode 100644 frontend/src/components/v3/generic/Badge/Badge.stories.tsx create mode 100644 frontend/src/components/v3/generic/Badge/Badge.tsx create mode 100644 frontend/src/components/v3/generic/Badge/index.ts create mode 100644 frontend/src/components/v3/generic/index.ts create mode 100644 frontend/src/components/v3/index.ts create mode 100644 frontend/src/components/v3/utils/index.ts diff --git a/frontend/.gitignore b/frontend/.gitignore index a547bf36d..f52343a92 100644 --- a/frontend/.gitignore +++ b/frontend/.gitignore @@ -22,3 +22,6 @@ dist-ssr *.njsproj *.sln *.sw? + +*storybook.log +storybook-static diff --git a/frontend/.storybook/decorators/RouterDecorator.tsx b/frontend/.storybook/decorators/RouterDecorator.tsx new file mode 100644 index 000000000..06f8d7575 --- /dev/null +++ b/frontend/.storybook/decorators/RouterDecorator.tsx @@ -0,0 +1,17 @@ +import type { Decorator } from "@storybook/react-vite"; +import { createRootRoute, createRouter, RouterProvider } from "@tanstack/react-router"; + +export const RouterDecorator: Decorator = (Story) => { + const rootRoute = createRootRoute({ + component: Story + }); + + const routeTree = rootRoute; + + const router = createRouter({ + routeTree + }); + + // @ts-expect-error just to make Links happy :) + return ; +}; diff --git a/frontend/.storybook/decorators/index.ts b/frontend/.storybook/decorators/index.ts new file mode 100644 index 000000000..b613f5c6a --- /dev/null +++ b/frontend/.storybook/decorators/index.ts @@ -0,0 +1 @@ +export * from "./RouterDecorator"; diff --git a/frontend/.storybook/main.ts b/frontend/.storybook/main.ts new file mode 100644 index 000000000..0a7b7adb5 --- /dev/null +++ b/frontend/.storybook/main.ts @@ -0,0 +1,14 @@ +import type { StorybookConfig } from "@storybook/react-vite"; + +const config: StorybookConfig = { + stories: [ + "../src/components/v3/**/*.mdx", + "../src/components/v3/**/*.stories.@(js|jsx|mjs|ts|tsx)" + ], + addons: ["@storybook/addon-docs", "@storybook/addon-a11y"], + framework: { + name: "@storybook/react-vite", + options: {} + } +}; +export default config; diff --git a/frontend/.storybook/preview.tsx b/frontend/.storybook/preview.tsx new file mode 100644 index 000000000..67157339d --- /dev/null +++ b/frontend/.storybook/preview.tsx @@ -0,0 +1,45 @@ +import type { Preview } from "@storybook/react-vite"; + +import { RouterDecorator } from "./decorators"; + +import "../src/index.css"; + +const preview: Preview = { + decorators: [ + (Story) => { + const root = document.getElementsByTagName("html")[0]; + + root.setAttribute("class", "overflow-visible"); + + return ; + }, + RouterDecorator + ], + parameters: { + controls: { + matchers: { + color: /(background|color)$/i, + date: /Date$/i + } + }, + docs: { + backgroundColor: "var(--background)" + }, + a11y: { + test: "todo" + }, + backgrounds: { + default: "dark", + options: { + dark: { name: "Dark", value: "var(--background)" } + } + } + }, + initialGlobals: { + backgrounds: { + value: "dark" + } + } +}; + +export default preview; diff --git a/frontend/eslint.config.js b/frontend/eslint.config.js index 00c024056..843a9602e 100644 --- a/frontend/eslint.config.js +++ b/frontend/eslint.config.js @@ -1,3 +1,6 @@ +// For more info, see https://github.com/storybookjs/eslint-plugin-storybook#configuration-flat-config-format +import storybook from "eslint-plugin-storybook"; + import js from "@eslint/js"; import globals from "globals"; import reactHooks from "eslint-plugin-react-hooks"; @@ -133,5 +136,6 @@ export default tseslint.config( rules: Object.fromEntries( Object.keys(stylisticPlugin.configs["all-flat"].rules ?? {}).map((key) => [key, "off"]) ) - } + }, + storybook.configs["flat/recommended"] ); diff --git a/frontend/package-lock.json b/frontend/package-lock.json index a9f4b070c..6e20b6d35 100644 --- a/frontend/package-lock.json +++ b/frontend/package-lock.json @@ -40,7 +40,9 @@ "@radix-ui/react-popper": "^1.2.1", "@radix-ui/react-progress": "^1.1.1", "@radix-ui/react-radio-group": "^1.2.2", + "@radix-ui/react-scroll-area": "^1.2.10", "@radix-ui/react-select": "^2.1.3", + "@radix-ui/react-slot": "^1.2.3", "@radix-ui/react-switch": "^1.1.2", "@radix-ui/react-tabs": "^1.1.2", "@radix-ui/react-toast": "^1.2.3", @@ -57,6 +59,7 @@ "argon2-browser": "^1.18.0", "axios": "^1.12.0", "classnames": "^2.5.1", + "clsx": "^2.1.1", "cva": "npm:class-variance-authority@^0.7.1", "date-fns": "^4.1.0", "dompurify": "^3.2.4", @@ -69,6 +72,7 @@ "jsrp": "^0.2.4", "jwt-decode": "^4.0.0", "lexical": "^0.29.0", + "lucide-react": "^0.544.0", "ms": "^2.1.3", "nprogress": "^0.2.0", "picomatch": "^4.0.2", @@ -98,6 +102,9 @@ "@eslint/eslintrc": "^3.2.0", "@eslint/js": "^9.15.0", "@kesills/eslint-config-airbnb-typescript": "^20.0.0", + "@storybook/addon-a11y": "^9.1.9", + "@storybook/addon-docs": "^9.1.9", + "@storybook/react-vite": "^9.1.9", "@stylistic/eslint-plugin": "^2.12.1", "@tailwindcss/postcss": "^4.1.14", "@tailwindcss/typography": "^0.5.15", @@ -123,6 +130,7 @@ "eslint-plugin-react-hooks": "^4.6.2", "eslint-plugin-react-refresh": "^0.4.14", "eslint-plugin-simple-import-sort": "^12.1.1", + "eslint-plugin-storybook": "^9.1.9", "globals": "^15.12.0", "postcss": "^8.4.49", "prettier": "3.4.2", @@ -137,6 +145,14 @@ "vite-tsconfig-paths": "^5.1.4" } }, + "node_modules/@adobe/css-tools": { + "version": "4.4.4", + "resolved": "https://registry.npmjs.org/@adobe/css-tools/-/css-tools-4.4.4.tgz", + "integrity": "sha512-Elp+iwUx5rN5+Y8xLt5/GRoG20WGoDCQ/1Fb+1LiGtvwbDavuSk0jhD/eZdckHAuzcDzccnkv+rEjyWfRx18gg==", + "dev": true, + "license": "MIT", + "peer": true + }, "node_modules/@alloc/quick-lru": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/@alloc/quick-lru/-/quick-lru-5.2.0.tgz", @@ -150,38 +166,24 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@ampproject/remapping": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz", - "integrity": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@jridgewell/gen-mapping": "^0.3.5", - "@jridgewell/trace-mapping": "^0.3.24" - }, - "engines": { - "node": ">=6.0.0" - } - }, "node_modules/@babel/code-frame": { - "version": "7.26.2", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.26.2.tgz", - "integrity": "sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.27.1.tgz", + "integrity": "sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg==", "license": "MIT", "dependencies": { - "@babel/helper-validator-identifier": "^7.25.9", + "@babel/helper-validator-identifier": "^7.27.1", "js-tokens": "^4.0.0", - "picocolors": "^1.0.0" + "picocolors": "^1.1.1" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/compat-data": { - "version": "7.26.3", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.26.3.tgz", - "integrity": "sha512-nHIxvKPniQXpmQLb0vhY3VaFb3S0YrTAwpOWJZh1wn3oJPjJk9Asva204PsBdmAE8vpzfHudT8DB0scYvy9q0g==", + "version": "7.28.4", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.28.4.tgz", + "integrity": "sha512-YsmSKC29MJwf0gF8Rjjrg5LQCmyh+j/nD8/eP7f+BeoQTKYqs9RoWbjGOdy0+1Ekr68RJZMUOPVQaQisnIo4Rw==", "dev": true, "license": "MIT", "engines": { @@ -189,22 +191,22 @@ } }, "node_modules/@babel/core": { - "version": "7.26.0", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.26.0.tgz", - "integrity": "sha512-i1SLeK+DzNnQ3LL/CswPCa/E5u4lh1k6IAEphON8F+cXt0t9euTshDru0q7/IqMa1PMPz5RnHuHscF8/ZJsStg==", + "version": "7.28.4", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.28.4.tgz", + "integrity": "sha512-2BCOP7TN8M+gVDj7/ht3hsaO/B/n5oDbiAyyvnRlNOs+u1o+JWNYTQrmpuNp1/Wq2gcFrI01JAW+paEKDMx/CA==", "dev": true, "license": "MIT", "dependencies": { - "@ampproject/remapping": "^2.2.0", - "@babel/code-frame": "^7.26.0", - "@babel/generator": "^7.26.0", - "@babel/helper-compilation-targets": "^7.25.9", - "@babel/helper-module-transforms": "^7.26.0", - "@babel/helpers": "^7.26.0", - "@babel/parser": "^7.26.0", - "@babel/template": "^7.25.9", - "@babel/traverse": "^7.25.9", - "@babel/types": "^7.26.0", + "@babel/code-frame": "^7.27.1", + "@babel/generator": "^7.28.3", + "@babel/helper-compilation-targets": "^7.27.2", + "@babel/helper-module-transforms": "^7.28.3", + "@babel/helpers": "^7.28.4", + "@babel/parser": "^7.28.4", + "@babel/template": "^7.27.2", + "@babel/traverse": "^7.28.4", + "@babel/types": "^7.28.4", + "@jridgewell/remapping": "^2.3.5", "convert-source-map": "^2.0.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", @@ -243,15 +245,15 @@ } }, "node_modules/@babel/generator": { - "version": "7.26.3", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.26.3.tgz", - "integrity": "sha512-6FF/urZvD0sTeO7k6/B15pMLC4CHUv1426lzr3N01aHJTl046uCAh9LXW/fzeXXjPNCJ6iABW5XaWOsIZB93aQ==", + "version": "7.28.3", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.28.3.tgz", + "integrity": "sha512-3lSpxGgvnmZznmBkCRnVREPUFJv2wrv9iAoFDvADJc0ypmdOxdUtcLeBgBJ6zE0PMeTKnxeQzyk0xTBq4Ep7zw==", "license": "MIT", "dependencies": { - "@babel/parser": "^7.26.3", - "@babel/types": "^7.26.3", - "@jridgewell/gen-mapping": "^0.3.5", - "@jridgewell/trace-mapping": "^0.3.25", + "@babel/parser": "^7.28.3", + "@babel/types": "^7.28.2", + "@jridgewell/gen-mapping": "^0.3.12", + "@jridgewell/trace-mapping": "^0.3.28", "jsesc": "^3.0.2" }, "engines": { @@ -259,14 +261,14 @@ } }, "node_modules/@babel/helper-compilation-targets": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.25.9.tgz", - "integrity": "sha512-j9Db8Suy6yV/VHa4qzrj9yZfZxhLWQdVnRlXxmKLYlhWUVB1sB2G5sxuWYXk/whHD9iW76PmNzxZ4UCnTQTVEQ==", + "version": "7.27.2", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.27.2.tgz", + "integrity": "sha512-2+1thGUUWWjLTYTHZWK1n8Yga0ijBz1XAhUXcKy81rd5g6yh7hGqMp45v7cadSbEHc9G3OTv45SyneRN3ps4DQ==", "dev": true, "license": "MIT", "dependencies": { - "@babel/compat-data": "^7.25.9", - "@babel/helper-validator-option": "^7.25.9", + "@babel/compat-data": "^7.27.2", + "@babel/helper-validator-option": "^7.27.1", "browserslist": "^4.24.0", "lru-cache": "^5.1.1", "semver": "^6.3.1" @@ -275,16 +277,6 @@ "node": ">=6.9.0" } }, - "node_modules/@babel/helper-compilation-targets/node_modules/lru-cache": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", - "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", - "dev": true, - "license": "ISC", - "dependencies": { - "yallist": "^3.0.2" - } - }, "node_modules/@babel/helper-compilation-targets/node_modules/semver": { "version": "6.3.1", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", @@ -295,29 +287,38 @@ "semver": "bin/semver.js" } }, + "node_modules/@babel/helper-globals": { + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@babel/helper-globals/-/helper-globals-7.28.0.tgz", + "integrity": "sha512-+W6cISkXFa1jXsDEdYA8HeevQT/FULhxzR99pxphltZcVaugps53THCeiWA8SguxxpSp3gKPiuYfSWopkLQ4hw==", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, "node_modules/@babel/helper-module-imports": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.25.9.tgz", - "integrity": "sha512-tnUA4RsrmflIM6W6RFTLFSXITtl0wKjgpnLgXyowocVPrbYrLUXSBXDgTs8BlbmIzIdlBySRQjINYs2BAkiLtw==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.27.1.tgz", + "integrity": "sha512-0gSFWUPNXNopqtIPQvlD5WgXYI5GY2kP2cCvoT8kczjbfcfuIljTbcWrulD1CIPIX2gt1wghbDy08yE1p+/r3w==", "license": "MIT", "dependencies": { - "@babel/traverse": "^7.25.9", - "@babel/types": "^7.25.9" + "@babel/traverse": "^7.27.1", + "@babel/types": "^7.27.1" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-module-transforms": { - "version": "7.26.0", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.26.0.tgz", - "integrity": "sha512-xO+xu6B5K2czEnQye6BHA7DolFFmS3LB7stHZFaOLb1pAwO1HWLS8fXA+eh0A2yIvltPVmx3eNNDBJA2SLHXFw==", + "version": "7.28.3", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.28.3.tgz", + "integrity": "sha512-gytXUbs8k2sXS9PnQptz5o0QnpLL51SwASIORY6XaBKF88nsOT0Zw9szLqlSGQDP/4TljBAD5y98p2U1fqkdsw==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-module-imports": "^7.25.9", - "@babel/helper-validator-identifier": "^7.25.9", - "@babel/traverse": "^7.25.9" + "@babel/helper-module-imports": "^7.27.1", + "@babel/helper-validator-identifier": "^7.27.1", + "@babel/traverse": "^7.28.3" }, "engines": { "node": ">=6.9.0" @@ -337,27 +338,27 @@ } }, "node_modules/@babel/helper-string-parser": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.25.9.tgz", - "integrity": "sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.27.1.tgz", + "integrity": "sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==", "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-validator-identifier": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.25.9.tgz", - "integrity": "sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.27.1.tgz", + "integrity": "sha512-D2hP9eA+Sqx1kBZgzxZh0y1trbuU+JoDkiEwqhQ36nodYqJwyEIhPSdMNd7lOm/4io72luTPWH20Yda0xOuUow==", "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-validator-option": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.25.9.tgz", - "integrity": "sha512-e/zv1co8pp55dNdEcCynfj9X7nyUKUXoUEwfXqaZt0omVOmDe9oOTdKStH4GmAw6zxMFs50ZayuMfHDKlO7Tfw==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.27.1.tgz", + "integrity": "sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg==", "dev": true, "license": "MIT", "engines": { @@ -365,26 +366,26 @@ } }, "node_modules/@babel/helpers": { - "version": "7.26.10", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.26.10.tgz", - "integrity": "sha512-UPYc3SauzZ3JGgj87GgZ89JVdC5dj0AoetR5Bw6wj4niittNyFh6+eOGonYvJ1ao6B8lEa3Q3klS7ADZ53bc5g==", + "version": "7.28.4", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.28.4.tgz", + "integrity": "sha512-HFN59MmQXGHVyYadKLVumYsA9dBFun/ldYxipEjzA4196jpLZd8UjEEBLkbEkvfYreDqJhZxYAWFPtrfhNpj4w==", "dev": true, "license": "MIT", "dependencies": { - "@babel/template": "^7.26.9", - "@babel/types": "^7.26.10" + "@babel/template": "^7.27.2", + "@babel/types": "^7.28.4" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/parser": { - "version": "7.26.10", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.26.10.tgz", - "integrity": "sha512-6aQR2zGE/QFi8JpDLjUZEPYOs7+mhKXm86VaKFiLP35JQwQb6bwUE+XbvkH0EptsYhbNBSUGaUBLKqxH1xSgsA==", + "version": "7.28.4", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.28.4.tgz", + "integrity": "sha512-yZbBqeM6TkpP9du/I2pUZnJsRMGGvOuIrhjzC1AwHwW+6he4mni6Bp/m8ijn0iOuZuPI2BfkCoSRunpyjnrQKg==", "license": "MIT", "dependencies": { - "@babel/types": "^7.26.10" + "@babel/types": "^7.28.4" }, "bin": { "parser": "bin/babel-parser.js" @@ -438,54 +439,45 @@ } }, "node_modules/@babel/template": { - "version": "7.26.9", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.26.9.tgz", - "integrity": "sha512-qyRplbeIpNZhmzOysF/wFMuP9sctmh2cFzRAZOn1YapxBsE1i9bJIY586R/WBLfLcmcBlM8ROBiQURnnNy+zfA==", + "version": "7.27.2", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.27.2.tgz", + "integrity": "sha512-LPDZ85aEJyYSd18/DkjNh4/y1ntkE5KwUHWTiqgRxruuZL2F1yuHligVHLvcHY2vMHXttKFpJn6LwfI7cw7ODw==", "license": "MIT", "dependencies": { - "@babel/code-frame": "^7.26.2", - "@babel/parser": "^7.26.9", - "@babel/types": "^7.26.9" + "@babel/code-frame": "^7.27.1", + "@babel/parser": "^7.27.2", + "@babel/types": "^7.27.1" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/traverse": { - "version": "7.26.4", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.26.4.tgz", - "integrity": "sha512-fH+b7Y4p3yqvApJALCPJcwb0/XaOSgtK4pzV6WVjPR5GLFQBRI7pfoX2V2iM48NXvX07NUxxm1Vw98YjqTcU5w==", + "version": "7.28.4", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.28.4.tgz", + "integrity": "sha512-YEzuboP2qvQavAcjgQNVgsvHIDv6ZpwXvcvjmyySP2DIMuByS/6ioU5G9pYrWHM6T2YDfc7xga9iNzYOs12CFQ==", "license": "MIT", "dependencies": { - "@babel/code-frame": "^7.26.2", - "@babel/generator": "^7.26.3", - "@babel/parser": "^7.26.3", - "@babel/template": "^7.25.9", - "@babel/types": "^7.26.3", - "debug": "^4.3.1", - "globals": "^11.1.0" + "@babel/code-frame": "^7.27.1", + "@babel/generator": "^7.28.3", + "@babel/helper-globals": "^7.28.0", + "@babel/parser": "^7.28.4", + "@babel/template": "^7.27.2", + "@babel/types": "^7.28.4", + "debug": "^4.3.1" }, "engines": { "node": ">=6.9.0" } }, - "node_modules/@babel/traverse/node_modules/globals": { - "version": "11.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", - "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", - "license": "MIT", - "engines": { - "node": ">=4" - } - }, "node_modules/@babel/types": { - "version": "7.26.10", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.26.10.tgz", - "integrity": "sha512-emqcG3vHrpxUKTrxcblR36dcrcoRDvKmnL/dCL6ZsHaShW80qxCAcNhzQZrpeM765VzEos+xOi4s+r4IXzTwdQ==", + "version": "7.28.4", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.28.4.tgz", + "integrity": "sha512-bkFqkLhh3pMBUQQkpVgWDWq/lqzc2678eUyDlTBhRqhCHFguYYGM0Efga7tYk4TogG/3x0EEl66/OQ+WGbWB/Q==", "license": "MIT", "dependencies": { - "@babel/helper-string-parser": "^7.25.9", - "@babel/helper-validator-identifier": "^7.25.9" + "@babel/helper-string-parser": "^7.27.1", + "@babel/helper-validator-identifier": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1454,6 +1446,53 @@ "dev": true, "license": "BSD-3-Clause" }, + "node_modules/@isaacs/cliui": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", + "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", + "dev": true, + "license": "ISC", + "dependencies": { + "string-width": "^5.1.2", + "string-width-cjs": "npm:string-width@^4.2.0", + "strip-ansi": "^7.0.1", + "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", + "wrap-ansi": "^8.1.0", + "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@isaacs/cliui/node_modules/ansi-regex": { + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.2.2.tgz", + "integrity": "sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/@isaacs/cliui/node_modules/strip-ansi": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.2.tgz", + "integrity": "sha512-gmBGslpoQJtgnMAvOVqGZpEz9dyoKTCzy2nfz/n8aIFhN/jCE/rCmcxabB6jOOHV+0WNnylOxaxBQPSvcWklhA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, "node_modules/@isaacs/fs-minipass": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/@isaacs/fs-minipass/-/fs-minipass-4.0.1.tgz", @@ -1467,18 +1506,82 @@ "node": ">=18.0.0" } }, - "node_modules/@jridgewell/gen-mapping": { - "version": "0.3.8", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.8.tgz", - "integrity": "sha512-imAbBGkb+ebQyxKgzv5Hu2nmROxoDOXHh80evxdoXNOrvAnVx7zimzc1Oo5h9RlfV4vPXaE2iM5pOFbvOCClWA==", + "node_modules/@joshwooding/vite-plugin-react-docgen-typescript": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/@joshwooding/vite-plugin-react-docgen-typescript/-/vite-plugin-react-docgen-typescript-0.6.1.tgz", + "integrity": "sha512-J4BaTocTOYFkMHIra1JDWrMWpNmBl4EkplIwHEsV8aeUOtdWjwSnln9U7twjMFTAEB7mptNtSKyVi1Y2W9sDJw==", + "dev": true, "license": "MIT", "dependencies": { - "@jridgewell/set-array": "^1.2.1", - "@jridgewell/sourcemap-codec": "^1.4.10", - "@jridgewell/trace-mapping": "^0.3.24" + "glob": "^10.0.0", + "magic-string": "^0.30.0", + "react-docgen-typescript": "^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 + } + } + }, + "node_modules/@joshwooding/vite-plugin-react-docgen-typescript/node_modules/brace-expansion": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz", + "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/@joshwooding/vite-plugin-react-docgen-typescript/node_modules/glob": { + "version": "10.4.5", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz", + "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==", + "dev": true, + "license": "ISC", + "dependencies": { + "foreground-child": "^3.1.0", + "jackspeak": "^3.1.2", + "minimatch": "^9.0.4", + "minipass": "^7.1.2", + "package-json-from-dist": "^1.0.0", + "path-scurry": "^1.11.1" + }, + "bin": { + "glob": "dist/esm/bin.mjs" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@joshwooding/vite-plugin-react-docgen-typescript/node_modules/minimatch": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" }, "engines": { - "node": ">=6.0.0" + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.13", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz", + "integrity": "sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==", + "license": "MIT", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.5.0", + "@jridgewell/trace-mapping": "^0.3.24" } }, "node_modules/@jridgewell/remapping": { @@ -1501,15 +1604,6 @@ "node": ">=6.0.0" } }, - "node_modules/@jridgewell/set-array": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", - "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", - "license": "MIT", - "engines": { - "node": ">=6.0.0" - } - }, "node_modules/@jridgewell/sourcemap-codec": { "version": "1.5.5", "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz", @@ -1517,9 +1611,9 @@ "license": "MIT" }, "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.25", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", - "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", + "version": "0.3.31", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.31.tgz", + "integrity": "sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==", "license": "MIT", "dependencies": { "@jridgewell/resolve-uri": "^3.1.0", @@ -1822,6 +1916,24 @@ "integrity": "sha512-01d+UjJ8NG7ZStYQxtb8FPzknzGmauG7gEkcH+wHfSdiSQJY9PoBNVSTB9V6F5hAnmFqOxaocTtd7TIEEnzMnA==", "license": "MIT" }, + "node_modules/@mdx-js/react": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@mdx-js/react/-/react-3.1.1.tgz", + "integrity": "sha512-f++rKLQgUVYDAtECQ6fn/is15GkEH9+nZPM3MS0RcxVqoTfawHvDlSCH7JbMhAM6uJ32v3eXLvLmLvjGu7PTQw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/mdx": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + }, + "peerDependencies": { + "@types/react": ">=16", + "react": ">=16" + } + }, "node_modules/@nodelib/fs.scandir": { "version": "2.1.5", "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", @@ -2170,6 +2282,17 @@ "tsyringe": "^4.8.0" } }, + "node_modules/@pkgjs/parseargs": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", + "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">=14" + } + }, "node_modules/@pkgr/core": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/@pkgr/core/-/core-0.1.1.tgz", @@ -2254,6 +2377,24 @@ } } }, + "node_modules/@radix-ui/react-alert-dialog/node_modules/@radix-ui/react-slot": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-slot/-/react-slot-1.1.1.tgz", + "integrity": "sha512-RApLLOcINYJA+dMVbOju7MYv1Mb2EBp2nH4HdDzXTSyaR5optlm6Otrz1euW3HbdOR8UmmFK06TD+A9frYWv+g==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-compose-refs": "1.1.1" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, "node_modules/@radix-ui/react-arrow": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/@radix-ui/react-arrow/-/react-arrow-1.1.1.tgz", @@ -2363,6 +2504,24 @@ } } }, + "node_modules/@radix-ui/react-collection/node_modules/@radix-ui/react-slot": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-slot/-/react-slot-1.1.1.tgz", + "integrity": "sha512-RApLLOcINYJA+dMVbOju7MYv1Mb2EBp2nH4HdDzXTSyaR5optlm6Otrz1euW3HbdOR8UmmFK06TD+A9frYWv+g==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-compose-refs": "1.1.1" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, "node_modules/@radix-ui/react-compose-refs": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/@radix-ui/react-compose-refs/-/react-compose-refs-1.1.1.tgz", @@ -2429,6 +2588,24 @@ } } }, + "node_modules/@radix-ui/react-dialog/node_modules/@radix-ui/react-slot": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-slot/-/react-slot-1.1.1.tgz", + "integrity": "sha512-RApLLOcINYJA+dMVbOju7MYv1Mb2EBp2nH4HdDzXTSyaR5optlm6Otrz1euW3HbdOR8UmmFK06TD+A9frYWv+g==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-compose-refs": "1.1.1" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, "node_modules/@radix-ui/react-direction": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/@radix-ui/react-direction/-/react-direction-1.1.0.tgz", @@ -2652,6 +2829,24 @@ } } }, + "node_modules/@radix-ui/react-menu/node_modules/@radix-ui/react-slot": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-slot/-/react-slot-1.1.1.tgz", + "integrity": "sha512-RApLLOcINYJA+dMVbOju7MYv1Mb2EBp2nH4HdDzXTSyaR5optlm6Otrz1euW3HbdOR8UmmFK06TD+A9frYWv+g==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-compose-refs": "1.1.1" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, "node_modules/@radix-ui/react-popover": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/@radix-ui/react-popover/-/react-popover-1.1.3.tgz", @@ -2689,6 +2884,24 @@ } } }, + "node_modules/@radix-ui/react-popover/node_modules/@radix-ui/react-slot": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-slot/-/react-slot-1.1.1.tgz", + "integrity": "sha512-RApLLOcINYJA+dMVbOju7MYv1Mb2EBp2nH4HdDzXTSyaR5optlm6Otrz1euW3HbdOR8UmmFK06TD+A9frYWv+g==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-compose-refs": "1.1.1" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, "node_modules/@radix-ui/react-popper": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/@radix-ui/react-popper/-/react-popper-1.2.1.tgz", @@ -2792,6 +3005,24 @@ } } }, + "node_modules/@radix-ui/react-primitive/node_modules/@radix-ui/react-slot": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-slot/-/react-slot-1.1.1.tgz", + "integrity": "sha512-RApLLOcINYJA+dMVbOju7MYv1Mb2EBp2nH4HdDzXTSyaR5optlm6Otrz1euW3HbdOR8UmmFK06TD+A9frYWv+g==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-compose-refs": "1.1.1" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, "node_modules/@radix-ui/react-progress": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/@radix-ui/react-progress/-/react-progress-1.1.1.tgz", @@ -2879,6 +3110,171 @@ } } }, + "node_modules/@radix-ui/react-scroll-area": { + "version": "1.2.10", + "resolved": "https://registry.npmjs.org/@radix-ui/react-scroll-area/-/react-scroll-area-1.2.10.tgz", + "integrity": "sha512-tAXIa1g3sM5CGpVT0uIbUx/U3Gs5N8T52IICuCtObaos1S8fzsrPXG5WObkQN3S6NVl6wKgPhAIiBGbWnvc97A==", + "license": "MIT", + "dependencies": { + "@radix-ui/number": "1.1.1", + "@radix-ui/primitive": "1.1.3", + "@radix-ui/react-compose-refs": "1.1.2", + "@radix-ui/react-context": "1.1.2", + "@radix-ui/react-direction": "1.1.1", + "@radix-ui/react-presence": "1.1.5", + "@radix-ui/react-primitive": "2.1.3", + "@radix-ui/react-use-callback-ref": "1.1.1", + "@radix-ui/react-use-layout-effect": "1.1.1" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-scroll-area/node_modules/@radix-ui/number": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@radix-ui/number/-/number-1.1.1.tgz", + "integrity": "sha512-MkKCwxlXTgz6CFoJx3pCwn07GKp36+aZyu/u2Ln2VrA5DcdyCZkASEDBTd8x5whTQQL5CiYf4prXKLcgQdv29g==", + "license": "MIT" + }, + "node_modules/@radix-ui/react-scroll-area/node_modules/@radix-ui/primitive": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/@radix-ui/primitive/-/primitive-1.1.3.tgz", + "integrity": "sha512-JTF99U/6XIjCBo0wqkU5sK10glYe27MRRsfwoiq5zzOEZLHU3A3KCMa5X/azekYRCJ0HlwI0crAXS/5dEHTzDg==", + "license": "MIT" + }, + "node_modules/@radix-ui/react-scroll-area/node_modules/@radix-ui/react-compose-refs": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@radix-ui/react-compose-refs/-/react-compose-refs-1.1.2.tgz", + "integrity": "sha512-z4eqJvfiNnFMHIIvXP3CY57y2WJs5g2v3X0zm9mEJkrkNv4rDxu+sg9Jh8EkXyeqBkB7SOcboo9dMVqhyrACIg==", + "license": "MIT", + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-scroll-area/node_modules/@radix-ui/react-context": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@radix-ui/react-context/-/react-context-1.1.2.tgz", + "integrity": "sha512-jCi/QKUM2r1Ju5a3J64TH2A5SpKAgh0LpknyqdQ4m6DCV0xJ2HG1xARRwNGPQfi1SLdLWZ1OJz6F4OMBBNiGJA==", + "license": "MIT", + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-scroll-area/node_modules/@radix-ui/react-direction": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-direction/-/react-direction-1.1.1.tgz", + "integrity": "sha512-1UEWRX6jnOA2y4H5WczZ44gOOjTEmlqv1uNW4GAJEO5+bauCBhv8snY65Iw5/VOS/ghKN9gr2KjnLKxrsvoMVw==", + "license": "MIT", + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-scroll-area/node_modules/@radix-ui/react-presence": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/@radix-ui/react-presence/-/react-presence-1.1.5.tgz", + "integrity": "sha512-/jfEwNDdQVBCNvjkGit4h6pMOzq8bHkopq458dPt2lMjx+eBQUohZNG9A7DtO/O5ukSbxuaNGXMjHicgwy6rQQ==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-compose-refs": "1.1.2", + "@radix-ui/react-use-layout-effect": "1.1.1" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-scroll-area/node_modules/@radix-ui/react-primitive": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/@radix-ui/react-primitive/-/react-primitive-2.1.3.tgz", + "integrity": "sha512-m9gTwRkhy2lvCPe6QJp4d3G1TYEUHn/FzJUtq9MjH46an1wJU+GdoGC5VLof8RX8Ft/DlpshApkhswDLZzHIcQ==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-slot": "1.2.3" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-scroll-area/node_modules/@radix-ui/react-use-callback-ref": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-callback-ref/-/react-use-callback-ref-1.1.1.tgz", + "integrity": "sha512-FkBMwD+qbGQeMu1cOHnuGB6x4yzPjho8ap5WtbEJ26umhgqVXbhekKUQO+hZEL1vU92a3wHwdp0HAcqAUF5iDg==", + "license": "MIT", + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-scroll-area/node_modules/@radix-ui/react-use-layout-effect": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-layout-effect/-/react-use-layout-effect-1.1.1.tgz", + "integrity": "sha512-RbJRS4UWQFkzHTTwVymMTUv8EqYhOp8dOOviLj2ugtTiXRaRQS7GLGxZTLL1jWhMeoSCf5zmcZkqTl9IiYfXcQ==", + "license": "MIT", + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, "node_modules/@radix-ui/react-select": { "version": "2.1.3", "resolved": "https://registry.npmjs.org/@radix-ui/react-select/-/react-select-2.1.3.tgz", @@ -2922,7 +3318,7 @@ } } }, - "node_modules/@radix-ui/react-slot": { + "node_modules/@radix-ui/react-select/node_modules/@radix-ui/react-slot": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/@radix-ui/react-slot/-/react-slot-1.1.1.tgz", "integrity": "sha512-RApLLOcINYJA+dMVbOju7MYv1Mb2EBp2nH4HdDzXTSyaR5optlm6Otrz1euW3HbdOR8UmmFK06TD+A9frYWv+g==", @@ -2940,6 +3336,39 @@ } } }, + "node_modules/@radix-ui/react-slot": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/@radix-ui/react-slot/-/react-slot-1.2.3.tgz", + "integrity": "sha512-aeNmHnBxbi2St0au6VBVC7JXFlhLlOnvIIlePNniyUNAClzmtAUEY8/pBiK3iHjufOlwA+c20/8jngo7xcrg8A==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-compose-refs": "1.1.2" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-slot/node_modules/@radix-ui/react-compose-refs": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@radix-ui/react-compose-refs/-/react-compose-refs-1.1.2.tgz", + "integrity": "sha512-z4eqJvfiNnFMHIIvXP3CY57y2WJs5g2v3X0zm9mEJkrkNv4rDxu+sg9Jh8EkXyeqBkB7SOcboo9dMVqhyrACIg==", + "license": "MIT", + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, "node_modules/@radix-ui/react-switch": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/@radix-ui/react-switch/-/react-switch-1.1.2.tgz", @@ -3067,6 +3496,24 @@ } } }, + "node_modules/@radix-ui/react-tooltip/node_modules/@radix-ui/react-slot": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-slot/-/react-slot-1.1.1.tgz", + "integrity": "sha512-RApLLOcINYJA+dMVbOju7MYv1Mb2EBp2nH4HdDzXTSyaR5optlm6Otrz1euW3HbdOR8UmmFK06TD+A9frYWv+g==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-compose-refs": "1.1.1" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, "node_modules/@radix-ui/react-use-callback-ref": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/@radix-ui/react-use-callback-ref/-/react-use-callback-ref-1.1.0.tgz", @@ -3605,6 +4052,297 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/@storybook/addon-a11y": { + "version": "9.1.13", + "resolved": "https://registry.npmjs.org/@storybook/addon-a11y/-/addon-a11y-9.1.13.tgz", + "integrity": "sha512-4enIl1h2XSZnFKUQJJoZbp1X40lzdj7f5JE15ZhU1al4z6hHWp7i2zD7ySyDpEbMypBCz1xnLvyiyw79m1fp7w==", + "dev": true, + "license": "MIT", + "dependencies": { + "@storybook/global": "^5.0.0", + "axe-core": "^4.2.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + }, + "peerDependencies": { + "storybook": "^9.1.13" + } + }, + "node_modules/@storybook/addon-docs": { + "version": "9.1.13", + "resolved": "https://registry.npmjs.org/@storybook/addon-docs/-/addon-docs-9.1.13.tgz", + "integrity": "sha512-V1nCo7bfC3kQ5VNVq0VDcHsIhQf507m+BxMA5SIYiwdJHljH2BXpW2fL3FFn9gv9Wp57AEEzhm+wh4zANaJgkg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@mdx-js/react": "^3.0.0", + "@storybook/csf-plugin": "9.1.13", + "@storybook/icons": "^1.4.0", + "@storybook/react-dom-shim": "9.1.13", + "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", + "ts-dedent": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + }, + "peerDependencies": { + "storybook": "^9.1.13" + } + }, + "node_modules/@storybook/builder-vite": { + "version": "9.1.13", + "resolved": "https://registry.npmjs.org/@storybook/builder-vite/-/builder-vite-9.1.13.tgz", + "integrity": "sha512-pmtIjU02ASJOZKdL8DoxWXJgZnpTDgD5WmMnjKJh9FaWmc2YiCW2Y6VRxPox96OM655jYHQe5+UIbk3Cwtwb4A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@storybook/csf-plugin": "9.1.13", + "ts-dedent": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + }, + "peerDependencies": { + "storybook": "^9.1.13", + "vite": "^5.0.0 || ^6.0.0 || ^7.0.0" + } + }, + "node_modules/@storybook/csf-plugin": { + "version": "9.1.13", + "resolved": "https://registry.npmjs.org/@storybook/csf-plugin/-/csf-plugin-9.1.13.tgz", + "integrity": "sha512-EMpzYuyt9FDcxxfBChWzfId50y8QMpdenviEQ8m+pa6c+ANx3pC5J6t7y0khD8TQu815sTy+nc6cc8PC45dPUA==", + "dev": true, + "license": "MIT", + "dependencies": { + "unplugin": "^1.3.1" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + }, + "peerDependencies": { + "storybook": "^9.1.13" + } + }, + "node_modules/@storybook/global": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/@storybook/global/-/global-5.0.0.tgz", + "integrity": "sha512-FcOqPAXACP0I3oJ/ws6/rrPT9WGhu915Cg8D02a9YxLo0DE9zI+a9A5gRGvmQ09fiWPukqI8ZAEoQEdWUKMQdQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/@storybook/icons": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/@storybook/icons/-/icons-1.6.0.tgz", + "integrity": "sha512-hcFZIjW8yQz8O8//2WTIXylm5Xsgc+lW9ISLgUk1xGmptIJQRdlhVIXCpSyLrQaaRiyhQRaVg7l3BD9S216BHw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta", + "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta" + } + }, + "node_modules/@storybook/react": { + "version": "9.1.13", + "resolved": "https://registry.npmjs.org/@storybook/react/-/react-9.1.13.tgz", + "integrity": "sha512-B0UpYikKf29t8QGcdmumWojSQQ0phSDy/Ne2HYdrpNIxnUvHHUVOlGpq4lFcIDt52Ip5YG5GuAwJg3+eR4LCRg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@storybook/global": "^5.0.0", + "@storybook/react-dom-shim": "9.1.13" + }, + "engines": { + "node": ">=20.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta", + "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta", + "storybook": "^9.1.13", + "typescript": ">= 4.9.x" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@storybook/react-dom-shim": { + "version": "9.1.13", + "resolved": "https://registry.npmjs.org/@storybook/react-dom-shim/-/react-dom-shim-9.1.13.tgz", + "integrity": "sha512-/tMr9TmV3+98GEQO0S03k4gtKHGCpv9+k9Dmnv+TJK3TBz7QsaFEzMwe3gCgoTaebLACyVveDiZkWnCYAWB6NA==", + "dev": true, + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta", + "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta", + "storybook": "^9.1.13" + } + }, + "node_modules/@storybook/react-vite": { + "version": "9.1.13", + "resolved": "https://registry.npmjs.org/@storybook/react-vite/-/react-vite-9.1.13.tgz", + "integrity": "sha512-mV1bZ1bpkNQygnuDo1xMGAS5ZXuoXFF0WGmr/BzNDGmRhZ1K1HQh42kC0w3PklckFBUwCFxmP58ZwTFzf+/dJA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@joshwooding/vite-plugin-react-docgen-typescript": "0.6.1", + "@rollup/pluginutils": "^5.0.2", + "@storybook/builder-vite": "9.1.13", + "@storybook/react": "9.1.13", + "find-up": "^7.0.0", + "magic-string": "^0.30.0", + "react-docgen": "^8.0.0", + "resolve": "^1.22.8", + "tsconfig-paths": "^4.2.0" + }, + "engines": { + "node": ">=20.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta", + "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta", + "storybook": "^9.1.13", + "vite": "^5.0.0 || ^6.0.0 || ^7.0.0" + } + }, + "node_modules/@storybook/react-vite/node_modules/find-up": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-7.0.0.tgz", + "integrity": "sha512-YyZM99iHrqLKjmt4LJDj58KI+fYyufRLBSYcqycxf//KpBk9FoewoGX0450m9nB44qrZnovzC2oeP5hUibxc/g==", + "dev": true, + "license": "MIT", + "dependencies": { + "locate-path": "^7.2.0", + "path-exists": "^5.0.0", + "unicorn-magic": "^0.1.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@storybook/react-vite/node_modules/json5": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "dev": true, + "license": "MIT", + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/@storybook/react-vite/node_modules/locate-path": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-7.2.0.tgz", + "integrity": "sha512-gvVijfZvn7R+2qyPX8mAuKcFGDf6Nc61GdvGafQsHL0sBIxfKzA+usWn4GFC/bk+QdwPUD4kWFJLhElipq+0VA==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-locate": "^6.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@storybook/react-vite/node_modules/p-limit": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-4.0.0.tgz", + "integrity": "sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "yocto-queue": "^1.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@storybook/react-vite/node_modules/p-locate": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-6.0.0.tgz", + "integrity": "sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-limit": "^4.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@storybook/react-vite/node_modules/path-exists": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-5.0.0.tgz", + "integrity": "sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + } + }, + "node_modules/@storybook/react-vite/node_modules/tsconfig-paths": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-4.2.0.tgz", + "integrity": "sha512-NoZ4roiN7LnbKn9QqE1amc9DJfzvZXxF4xDavcOWt1BPkdx+m+0gJuPM+S0vCe7zTJMYUP0R8pO2XMr+Y8oLIg==", + "dev": true, + "license": "MIT", + "dependencies": { + "json5": "^2.2.2", + "minimist": "^1.2.6", + "strip-bom": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/@storybook/react-vite/node_modules/yocto-queue": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-1.2.1.tgz", + "integrity": "sha512-AyeEbWOu/TAXdxlV9wmGcR0+yh2j3vYPGOECcIj2S7MkrLyC7ne+oye2BKTItt0ii2PHk4cDy+95+LshzbXnGg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12.20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/@stylistic/eslint-plugin": { "version": "2.13.0", "resolved": "https://registry.npmjs.org/@stylistic/eslint-plugin/-/eslint-plugin-2.13.0.tgz", @@ -4441,6 +5179,82 @@ "zod": "^3.23.8" } }, + "node_modules/@testing-library/dom": { + "version": "10.4.1", + "resolved": "https://registry.npmjs.org/@testing-library/dom/-/dom-10.4.1.tgz", + "integrity": "sha512-o4PXJQidqJl82ckFaXUeoAW+XysPLauYI43Abki5hABd853iMhitooc6znOnczgbTYmEP6U6/y1ZyKAIsvMKGg==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@babel/code-frame": "^7.10.4", + "@babel/runtime": "^7.12.5", + "@types/aria-query": "^5.0.1", + "aria-query": "5.3.0", + "dom-accessibility-api": "^0.5.9", + "lz-string": "^1.5.0", + "picocolors": "1.1.1", + "pretty-format": "^27.0.2" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@testing-library/dom/node_modules/aria-query": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.3.0.tgz", + "integrity": "sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==", + "dev": true, + "license": "Apache-2.0", + "peer": true, + "dependencies": { + "dequal": "^2.0.3" + } + }, + "node_modules/@testing-library/jest-dom": { + "version": "6.9.1", + "resolved": "https://registry.npmjs.org/@testing-library/jest-dom/-/jest-dom-6.9.1.tgz", + "integrity": "sha512-zIcONa+hVtVSSep9UT3jZ5rizo2BsxgyDYU7WFD5eICBE7no3881HGeb/QkGfsJs6JTkY1aQhT7rIPC7e+0nnA==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@adobe/css-tools": "^4.4.0", + "aria-query": "^5.0.0", + "css.escape": "^1.5.1", + "dom-accessibility-api": "^0.6.3", + "picocolors": "^1.1.1", + "redent": "^3.0.0" + }, + "engines": { + "node": ">=14", + "npm": ">=6", + "yarn": ">=1" + } + }, + "node_modules/@testing-library/jest-dom/node_modules/dom-accessibility-api": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/dom-accessibility-api/-/dom-accessibility-api-0.6.3.tgz", + "integrity": "sha512-7ZgogeTnjuHbo+ct10G9Ffp0mif17idi0IyWNVA/wcwcm7NPOD/WEHVP3n7n3MhXqxoIYm8d6MuZohYWIZ4T3w==", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/@testing-library/user-event": { + "version": "14.6.1", + "resolved": "https://registry.npmjs.org/@testing-library/user-event/-/user-event-14.6.1.tgz", + "integrity": "sha512-vq7fv0rnt+QTXgPxr5Hjc210p6YKq2kmdziLgnsZGgLJ9e6VAShx1pACLuRjd/AS/sr7phAR58OIIpf0LlmQNw==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">=12", + "npm": ">=6" + }, + "peerDependencies": { + "@testing-library/dom": ">=7.21.4" + } + }, "node_modules/@types/argon2-browser": { "version": "1.18.4", "resolved": "https://registry.npmjs.org/@types/argon2-browser/-/argon2-browser-1.18.4.tgz", @@ -4448,6 +5262,14 @@ "dev": true, "license": "MIT" }, + "node_modules/@types/aria-query": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/@types/aria-query/-/aria-query-5.0.4.tgz", + "integrity": "sha512-rfT93uj5s0PRL7EzccGMs3brplhcrghnDoV26NqKhCAS1hVo+WdNsPvE/yb6ilfr5hi2MEk6d5EWJTKdxg8jVw==", + "dev": true, + "license": "MIT", + "peer": true + }, "node_modules/@types/babel__core": { "version": "7.20.5", "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.5.tgz", @@ -4484,13 +5306,25 @@ } }, "node_modules/@types/babel__traverse": { - "version": "7.20.6", - "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.20.6.tgz", - "integrity": "sha512-r1bzfrm0tomOI8g1SzvCaQHo6Lcv6zu0EA+W2kHrt8dyrHQxGzBBL4kdkzIS+jBMV+EYcMAEAqXqYaLJq5rOZg==", + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.28.0.tgz", + "integrity": "sha512-8PvcXf70gTDZBgt9ptxJ8elBeBjcLOAcOtoO/mPJjtji1+CdGbHgm77om1GrsPxsiE+uXIpNSK64UYaIwQXd4Q==", "dev": true, "license": "MIT", "dependencies": { - "@babel/types": "^7.20.7" + "@babel/types": "^7.28.2" + } + }, + "node_modules/@types/chai": { + "version": "5.2.3", + "resolved": "https://registry.npmjs.org/@types/chai/-/chai-5.2.3.tgz", + "integrity": "sha512-Mw558oeA9fFbv65/y4mHtXDs9bPnFMZAL/jxdPFUpOHHIXX91mcgEHbS5Lahr+pwZFR8A7GQleRWeI6cGFC2UA==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@types/deep-eql": "*", + "assertion-error": "^2.0.1" } }, "node_modules/@types/d3-color": { @@ -4556,6 +5390,21 @@ "@types/ms": "*" } }, + "node_modules/@types/deep-eql": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@types/deep-eql/-/deep-eql-4.0.2.tgz", + "integrity": "sha512-c9h9dVVMigMPc4bwTvC5dxqtqJZwQPePsWjPlpSOnojbor6pGqdk541lfA7AqFQr5pB1BRdq0juY9db81BwyFw==", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/@types/doctrine": { + "version": "0.0.9", + "resolved": "https://registry.npmjs.org/@types/doctrine/-/doctrine-0.0.9.tgz", + "integrity": "sha512-eOIHzCUSH7SMfonMG1LsC2f8vxBFtho6NGBznK41R84YzPuvSBzrhEps33IsQiOW9+VL6NQ9DbjQJznk/S4uRA==", + "dev": true, + "license": "MIT" + }, "node_modules/@types/estree": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.6.tgz", @@ -4607,6 +5456,13 @@ "@types/unist": "*" } }, + "node_modules/@types/mdx": { + "version": "2.0.13", + "resolved": "https://registry.npmjs.org/@types/mdx/-/mdx-2.0.13.tgz", + "integrity": "sha512-+OWZQfAYyio6YkJb3HLxDrvnx6SWWDbC0zVPfBRzUk0/nqoDyf6dNxQi3eArPe8rJ473nobTMQ/8Zk+LxJ+Yuw==", + "dev": true, + "license": "MIT" + }, "node_modules/@types/ms": { "version": "0.7.34", "resolved": "https://registry.npmjs.org/@types/ms/-/ms-0.7.34.tgz", @@ -4710,6 +5566,13 @@ "@types/react": "*" } }, + "node_modules/@types/resolve": { + "version": "1.20.6", + "resolved": "https://registry.npmjs.org/@types/resolve/-/resolve-1.20.6.tgz", + "integrity": "sha512-A4STmOXPhMUtHH+S6ymgE2GiBSMqf4oTvcQZMcHzokuTLVYzXTB8ttjcgxOVaAp2lGwEdzZ0J+cRbbeevQj1UQ==", + "dev": true, + "license": "MIT" + }, "node_modules/@types/trusted-types": { "version": "2.0.7", "resolved": "https://registry.npmjs.org/@types/trusted-types/-/trusted-types-2.0.7.tgz", @@ -5032,6 +5895,107 @@ "vite": "^4 || ^5 || ^6" } }, + "node_modules/@vitest/expect": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/@vitest/expect/-/expect-3.2.4.tgz", + "integrity": "sha512-Io0yyORnB6sikFlt8QW5K7slY4OjqNX9jmJQ02QDda8lyM6B5oNgVWoSoKPac8/kgnCUzuHQKrSLtu/uOqqrig==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@types/chai": "^5.2.2", + "@vitest/spy": "3.2.4", + "@vitest/utils": "3.2.4", + "chai": "^5.2.0", + "tinyrainbow": "^2.0.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@vitest/mocker": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/@vitest/mocker/-/mocker-3.2.4.tgz", + "integrity": "sha512-46ryTE9RZO/rfDd7pEqFl7etuyzekzEhUbTW3BvmeO/BcCMEgq59BKhek3dXDWgAj4oMK6OZi+vRr1wPW6qjEQ==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@vitest/spy": "3.2.4", + "estree-walker": "^3.0.3", + "magic-string": "^0.30.17" + }, + "funding": { + "url": "https://opencollective.com/vitest" + }, + "peerDependencies": { + "msw": "^2.4.9", + "vite": "^5.0.0 || ^6.0.0 || ^7.0.0-0" + }, + "peerDependenciesMeta": { + "msw": { + "optional": true + }, + "vite": { + "optional": true + } + } + }, + "node_modules/@vitest/mocker/node_modules/estree-walker": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-3.0.3.tgz", + "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@types/estree": "^1.0.0" + } + }, + "node_modules/@vitest/pretty-format": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/@vitest/pretty-format/-/pretty-format-3.2.4.tgz", + "integrity": "sha512-IVNZik8IVRJRTr9fxlitMKeJeXFFFN0JaB9PHPGQ8NKQbGpfjlTx9zO4RefN8gp7eqjNy8nyK3NZmBzOPeIxtA==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "tinyrainbow": "^2.0.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@vitest/spy": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/@vitest/spy/-/spy-3.2.4.tgz", + "integrity": "sha512-vAfasCOe6AIK70iP5UD11Ac4siNUNJ9i/9PZ3NKx07sG6sUxeag1LWdNrMWeKKYBLlzuK+Gn65Yd5nyL6ds+nw==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "tinyspy": "^4.0.3" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@vitest/utils": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/@vitest/utils/-/utils-3.2.4.tgz", + "integrity": "sha512-fB2V0JFrQSMsCo9HiSq3Ezpdv4iYaXRG1Sx8edX3MwxfyNn83mKiGzOcH+Fkxt4MHxr3y42fQi1oeAInqgX2QA==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@vitest/pretty-format": "3.2.4", + "loupe": "^3.1.4", + "tinyrainbow": "^2.0.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, "node_modules/@xyflow/react": { "version": "12.4.4", "resolved": "https://registry.npmjs.org/@xyflow/react/-/react-12.4.4.tgz", @@ -5424,6 +6388,31 @@ "util": "^0.12.5" } }, + "node_modules/assertion-error": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-2.0.1.tgz", + "integrity": "sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/ast-types": { + "version": "0.16.1", + "resolved": "https://registry.npmjs.org/ast-types/-/ast-types-0.16.1.tgz", + "integrity": "sha512-6t10qk83GOG8p0vKmaCr8eiilZwO171AvbROMtvvNiwrTly62t+7XkA8RdIIVbpMhCASAsxgAzdRSwh6nw/5Dg==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "tslib": "^2.0.1" + }, + "engines": { + "node": ">=4" + } + }, "node_modules/ast-types-flow": { "version": "0.0.8", "resolved": "https://registry.npmjs.org/ast-types-flow/-/ast-types-flow-0.0.8.tgz", @@ -5459,7 +6448,6 @@ "integrity": "sha512-RE3mdQ7P3FRSe7eqCWoeQ/Z9QXrtniSjp1wUjt5nRC3WIpz5rSCve6o3fsZ2aCpJtrZjSZgjwXAoTO5k4tEI0w==", "dev": true, "license": "MPL-2.0", - "peer": true, "engines": { "node": ">=4" } @@ -5561,12 +6549,36 @@ ], "license": "MIT" }, + "node_modules/baseline-browser-mapping": { + "version": "2.8.19", + "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.8.19.tgz", + "integrity": "sha512-zoKGUdu6vb2jd3YOq0nnhEDQVbPcHhco3UImJrv5dSkvxTc2pl2WjOPsjZXDwPDSl5eghIMuY3R6J9NDKF3KcQ==", + "dev": true, + "license": "Apache-2.0", + "bin": { + "baseline-browser-mapping": "dist/cli.js" + } + }, "node_modules/before-after-hook": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/before-after-hook/-/before-after-hook-3.0.2.tgz", "integrity": "sha512-Nik3Sc0ncrMK4UUdXQmAnRtzmNQTAAXmXIopizwZ1W1t8QmfJj+zL4OA2I7XPTPW5z5TDqv4hRo/JzouDJnX3A==", "license": "Apache-2.0" }, + "node_modules/better-opn": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/better-opn/-/better-opn-3.0.2.tgz", + "integrity": "sha512-aVNobHnJqLiUelTaHat9DZ1qM2w0C0Eym4LPI/3JxOnSokGVdsl1T1kN7TFvsEAD8G47A6VKQ0TVHqbBnYMJlQ==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "open": "^8.0.4" + }, + "engines": { + "node": ">=12.0.0" + } + }, "node_modules/binary-extensions": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz", @@ -5777,9 +6789,9 @@ } }, "node_modules/browserslist": { - "version": "4.24.2", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.24.2.tgz", - "integrity": "sha512-ZIc+Q62revdMcqC6aChtW4jz3My3klmCO1fEmINZY/8J3EpBg5/A/D0AKmBveUh6pgoeycoMkVMko84tuYS+Gg==", + "version": "4.26.3", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.26.3.tgz", + "integrity": "sha512-lAUU+02RFBuCKQPj/P6NgjlbCnLBMp4UtgTx7vNHd3XSIJF87s9a5rA3aH2yw3GS9DqZAUbOtZdCCiZeVRqt0w==", "dev": true, "funding": [ { @@ -5797,10 +6809,11 @@ ], "license": "MIT", "dependencies": { - "caniuse-lite": "^1.0.30001669", - "electron-to-chromium": "^1.5.41", - "node-releases": "^2.0.18", - "update-browserslist-db": "^1.1.1" + "baseline-browser-mapping": "^2.8.9", + "caniuse-lite": "^1.0.30001746", + "electron-to-chromium": "^1.5.227", + "node-releases": "^2.0.21", + "update-browserslist-db": "^1.1.3" }, "bin": { "browserslist": "cli.js" @@ -5914,9 +6927,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001688", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001688.tgz", - "integrity": "sha512-Nmqpru91cuABu/DTCXbM2NSRHzM2uVHfPnhJ/1zEAJx/ILBRVmz3pzH4N7DZqbdG0gWClsCC05Oj0mJ/1AWMbA==", + "version": "1.0.30001751", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001751.tgz", + "integrity": "sha512-A0QJhug0Ly64Ii3eIqHu5X51ebln3k4yTUkY1j8drqpWHVreg/VLijN48cZ1bYPiqOQuqpkIKnzr/Ul8V+p6Cw==", "dev": true, "funding": [ { @@ -5970,6 +6983,24 @@ "url": "https://github.com/sponsors/wooorm" } }, + "node_modules/chai": { + "version": "5.3.3", + "resolved": "https://registry.npmjs.org/chai/-/chai-5.3.3.tgz", + "integrity": "sha512-4zNhdJD/iOjSH0A05ea+Ke6MU5mmpQcbQsSOkgdaUMJ9zTlDTD/GYlwohmIE2u0gaxHYiVHEn1Fw9mZ/ktJWgw==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "assertion-error": "^2.0.1", + "check-error": "^2.1.1", + "deep-eql": "^5.0.1", + "loupe": "^3.1.0", + "pathval": "^2.0.0" + }, + "engines": { + "node": ">=18" + } + }, "node_modules/chalk": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", @@ -6023,6 +7054,17 @@ "url": "https://github.com/sponsors/wooorm" } }, + "node_modules/check-error": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/check-error/-/check-error-2.1.1.tgz", + "integrity": "sha512-OAlb+T7V4Op9OwdkjmguYRqncdlx5JiofwOAUkmTF+jNdHwzTaTs4sRAGpzLF3oOz5xAyDGrPgeIDFQmDOTiJw==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">= 16" + } + }, "node_modules/chokidar": { "version": "3.6.0", "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", @@ -6399,6 +7441,14 @@ "utrie": "^1.0.2" } }, + "node_modules/css.escape": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/css.escape/-/css.escape-1.5.1.tgz", + "integrity": "sha512-YUifsXXuknHlUsmlgyY0PKzgPOr7/FjCePfHNt0jxm83wHZi44VDMQ7/fGNkjY3/jV1MC+1CmZbaHzugyeRtpg==", + "dev": true, + "license": "MIT", + "peer": true + }, "node_modules/cssesc": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", @@ -6646,6 +7696,17 @@ "url": "https://github.com/sponsors/wooorm" } }, + "node_modules/deep-eql": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-5.0.2.tgz", + "integrity": "sha512-h5k/5U50IJJFpzfL6nO9jaaumfjO/f2NjK/oYB2Djzm4p9L+3T9qWpZqZ2hAbLPuuYq9wrU08WQyBTL5GbPk5Q==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">=6" + } + }, "node_modules/deep-is": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", @@ -6670,6 +7731,17 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/define-lazy-prop": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz", + "integrity": "sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">=8" + } + }, "node_modules/define-properties": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz", @@ -6782,6 +7854,14 @@ "node": ">=6.0.0" } }, + "node_modules/dom-accessibility-api": { + "version": "0.5.16", + "resolved": "https://registry.npmjs.org/dom-accessibility-api/-/dom-accessibility-api-0.5.16.tgz", + "integrity": "sha512-X7BJ2yElsnOJ30pZF4uIIDfBEVgF4XEBxL9Bxhy6dnrm5hkzqmsWHGTiHqRiITNhMyFLyAiWndIJP7Z1NTteDg==", + "dev": true, + "license": "MIT", + "peer": true + }, "node_modules/dom-helpers": { "version": "5.2.1", "resolved": "https://registry.npmjs.org/dom-helpers/-/dom-helpers-5.2.1.tgz", @@ -6827,10 +7907,17 @@ "node": ">= 0.4" } }, + "node_modules/eastasianwidth": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", + "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", + "dev": true, + "license": "MIT" + }, "node_modules/electron-to-chromium": { - "version": "1.5.73", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.73.tgz", - "integrity": "sha512-8wGNxG9tAG5KhGd3eeA0o6ixhiNdgr0DcHWm85XPCphwZgD1lIEoi6t3VERayWao7SF7AAZTw6oARGJeVjH8Kg==", + "version": "1.5.237", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.237.tgz", + "integrity": "sha512-icUt1NvfhGLar5lSWH3tHNzablaA5js3HVHacQimfP8ViEBOQv+L7DKEuHdbTZ0SKCO1ogTJTIL1Gwk9S6Qvcg==", "dev": true, "license": "ISC" }, @@ -6862,8 +7949,7 @@ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", "dev": true, - "license": "MIT", - "peer": true + "license": "MIT" }, "node_modules/enhanced-resolve": { "version": "5.18.3", @@ -7100,6 +8186,20 @@ "@esbuild/win32-x64": "0.21.5" } }, + "node_modules/esbuild-register": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/esbuild-register/-/esbuild-register-3.6.0.tgz", + "integrity": "sha512-H2/S7Pm8a9CL1uhp9OvjwrBh5Pvx0H8qVOxNu8Wed9Y7qv56MPtq+GGM8RJpq6glYJn9Wspr8uw7l55uyinNeg==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "debug": "^4.3.4" + }, + "peerDependencies": { + "esbuild": ">=0.12 <1" + } + }, "node_modules/escalade": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", @@ -7570,6 +8670,23 @@ "eslint": ">=5.0.0" } }, + "node_modules/eslint-plugin-storybook": { + "version": "9.1.13", + "resolved": "https://registry.npmjs.org/eslint-plugin-storybook/-/eslint-plugin-storybook-9.1.13.tgz", + "integrity": "sha512-kPuhbtGDiJLB5OLZuwFZAxgzWakNDw64sJtXUPN8g0+VAeXfHyZEmsE28qIIETHxtal71lPKVm8QNnERaJHPJQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/utils": "^8.8.1" + }, + "engines": { + "node": ">=20.0.0" + }, + "peerDependencies": { + "eslint": ">=8", + "storybook": "^9.1.13" + } + }, "node_modules/eslint-scope": { "version": "7.2.2", "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz", @@ -7694,6 +8811,21 @@ "url": "https://opencollective.com/eslint" } }, + "node_modules/esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "dev": true, + "license": "BSD-2-Clause", + "peer": true, + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=4" + } + }, "node_modules/esquery": { "version": "1.6.0", "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.6.0.tgz", @@ -7995,6 +9127,23 @@ "is-callable": "^1.1.3" } }, + "node_modules/foreground-child": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.3.1.tgz", + "integrity": "sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw==", + "dev": true, + "license": "ISC", + "dependencies": { + "cross-spawn": "^7.0.6", + "signal-exit": "^4.0.1" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "node_modules/form-data": { "version": "4.0.4", "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.4.tgz", @@ -8768,6 +9917,17 @@ "node": ">=0.8.19" } }, + "node_modules/indent-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", + "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">=8" + } + }, "node_modules/inflight": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", @@ -9034,6 +10194,23 @@ "url": "https://github.com/sponsors/wooorm" } }, + "node_modules/is-docker": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", + "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", + "dev": true, + "license": "MIT", + "peer": true, + "bin": { + "is-docker": "cli.js" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/is-extglob": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", @@ -9339,6 +10516,20 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/is-wsl": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", + "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "is-docker": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/isarray": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", @@ -9392,6 +10583,22 @@ "node": ">= 0.4" } }, + "node_modules/jackspeak": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.3.tgz", + "integrity": "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==", + "dev": true, + "license": "BlueOak-1.0.0", + "dependencies": { + "@isaacs/cliui": "^8.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + }, + "optionalDependencies": { + "@pkgjs/parseargs": "^0.11.0" + } + }, "node_modules/jiti": { "version": "2.6.1", "resolved": "https://registry.npmjs.org/jiti/-/jiti-2.6.1.tgz", @@ -9910,6 +11117,44 @@ "loose-envify": "cli.js" } }, + "node_modules/loupe": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/loupe/-/loupe-3.2.1.tgz", + "integrity": "sha512-CdzqowRJCeLU72bHvWqwRBBlLcMEtIvGrlvef74kMnV2AolS9Y8xUv1I0U/MNAWMhBlKIoyuEgoJ0t/bbwHbLQ==", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "dev": true, + "license": "ISC", + "dependencies": { + "yallist": "^3.0.2" + } + }, + "node_modules/lucide-react": { + "version": "0.544.0", + "resolved": "https://registry.npmjs.org/lucide-react/-/lucide-react-0.544.0.tgz", + "integrity": "sha512-t5tS44bqd825zAW45UQxpG2CvcC4urOwn2TrwSH8u+MjeE+1NnWl6QqeQ/6NdjMqdOygyiT9p3Ev0p1NJykxjw==", + "license": "ISC", + "peerDependencies": { + "react": "^16.5.1 || ^17.0.0 || ^18.0.0 || ^19.0.0" + } + }, + "node_modules/lz-string": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/lz-string/-/lz-string-1.5.0.tgz", + "integrity": "sha512-h5bgJWpxJNswbU7qCrV0tIKQCaS3blPDrqKWx+QxzuzL1zGUzij9XCWLrSLsJPu5t+eWA/ycetzYAO5IOMcWAQ==", + "dev": true, + "license": "MIT", + "peer": true, + "bin": { + "lz-string": "bin/bin.js" + } + }, "node_modules/magic-string": { "version": "0.30.19", "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.19.tgz", @@ -10591,6 +11836,17 @@ "node": ">= 0.6" } }, + "node_modules/min-indent": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz", + "integrity": "sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">=4" + } + }, "node_modules/minimalistic-assert": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", @@ -10716,9 +11972,9 @@ } }, "node_modules/node-releases": { - "version": "2.0.19", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.19.tgz", - "integrity": "sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==", + "version": "2.0.26", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.26.tgz", + "integrity": "sha512-S2M9YimhSjBSvYnlr5/+umAnPHE++ODwt5e2Ij6FoX45HA/s4vHdkDx1eax2pAPeAOqu4s9b7ppahsyEFdVqQA==", "dev": true, "license": "MIT" }, @@ -10929,6 +12185,25 @@ "wrappy": "1" } }, + "node_modules/open": { + "version": "8.4.2", + "resolved": "https://registry.npmjs.org/open/-/open-8.4.2.tgz", + "integrity": "sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "define-lazy-prop": "^2.0.0", + "is-docker": "^2.1.1", + "is-wsl": "^2.2.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/optionator": { "version": "0.9.4", "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz", @@ -10995,6 +12270,13 @@ "node": ">=6" } }, + "node_modules/package-json-from-dist": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz", + "integrity": "sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==", + "dev": true, + "license": "BlueOak-1.0.0" + }, "node_modules/pako": { "version": "1.0.11", "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", @@ -11140,6 +12422,30 @@ "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", "license": "MIT" }, + "node_modules/path-scurry": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz", + "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==", + "dev": true, + "license": "BlueOak-1.0.0", + "dependencies": { + "lru-cache": "^10.2.0", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" + }, + "engines": { + "node": ">=16 || 14 >=14.18" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/path-scurry/node_modules/lru-cache": { + "version": "10.4.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", + "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", + "dev": true, + "license": "ISC" + }, "node_modules/path-type": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", @@ -11149,6 +12455,17 @@ "node": ">=8" } }, + "node_modules/pathval": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pathval/-/pathval-2.0.1.tgz", + "integrity": "sha512-//nshmD55c46FuFw26xV/xFAaB5HF9Xdap7HJBBnrKdAd6/GxDBaNA1870O79+9ueg61cZLSVc+OaFlfmObYVQ==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">= 14.16" + } + }, "node_modules/pbkdf2": { "version": "3.1.5", "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.5.tgz", @@ -11406,6 +12723,44 @@ } } }, + "node_modules/pretty-format": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.5.1.tgz", + "integrity": "sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "ansi-regex": "^5.0.1", + "ansi-styles": "^5.0.0", + "react-is": "^17.0.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/pretty-format/node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/pretty-format/node_modules/react-is": { + "version": "17.0.2", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", + "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==", + "dev": true, + "license": "MIT", + "peer": true + }, "node_modules/prismjs": { "version": "1.30.0", "resolved": "https://registry.npmjs.org/prismjs/-/prismjs-1.30.0.tgz", @@ -11686,6 +13041,38 @@ "react": ">=16.8.0" } }, + "node_modules/react-docgen": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/react-docgen/-/react-docgen-8.0.2.tgz", + "integrity": "sha512-+NRMYs2DyTP4/tqWz371Oo50JqmWltR1h2gcdgUMAWZJIAvrd0/SqlCfx7tpzpl/s36rzw6qH2MjoNrxtRNYhA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/core": "^7.28.0", + "@babel/traverse": "^7.28.0", + "@babel/types": "^7.28.2", + "@types/babel__core": "^7.20.5", + "@types/babel__traverse": "^7.20.7", + "@types/doctrine": "^0.0.9", + "@types/resolve": "^1.20.2", + "doctrine": "^3.0.0", + "resolve": "^1.22.1", + "strip-indent": "^4.0.0" + }, + "engines": { + "node": "^20.9.0 || >=22" + } + }, + "node_modules/react-docgen-typescript": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/react-docgen-typescript/-/react-docgen-typescript-2.4.0.tgz", + "integrity": "sha512-ZtAp5XTO5HRzQctjPU0ybY0RRCQO19X/8fxn3w7y2VVTUbGHDKULPTL4ky3vB05euSgG5NpALhEhDPvQ56wvXg==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "typescript": ">= 4.3.x" + } + }, "node_modules/react-dom": { "version": "18.3.1", "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.3.1.tgz", @@ -11985,12 +13372,70 @@ "url": "https://github.com/sponsors/jonschlinkert" } }, + "node_modules/recast": { + "version": "0.23.11", + "resolved": "https://registry.npmjs.org/recast/-/recast-0.23.11.tgz", + "integrity": "sha512-YTUo+Flmw4ZXiWfQKGcwwc11KnoRAYgzAE2E7mXKCjSviTKShtxBsN6YUUBB2gtaBzKzeKunxhUwNHQuRryhWA==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "ast-types": "^0.16.1", + "esprima": "~4.0.0", + "source-map": "~0.6.1", + "tiny-invariant": "^1.3.3", + "tslib": "^2.0.1" + }, + "engines": { + "node": ">= 4" + } + }, + "node_modules/recast/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "license": "BSD-3-Clause", + "peer": true, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/redaxios": { "version": "0.5.1", "resolved": "https://registry.npmjs.org/redaxios/-/redaxios-0.5.1.tgz", "integrity": "sha512-FSD2AmfdbkYwl7KDExYQlVvIrFz6Yd83pGfaGjBzM9F6rpq8g652Q4Yq5QD4c+nf4g2AgeElv1y+8ajUPiOYMg==", "license": "Apache-2.0" }, + "node_modules/redent": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/redent/-/redent-3.0.0.tgz", + "integrity": "sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "indent-string": "^4.0.0", + "strip-indent": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/redent/node_modules/strip-indent": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz", + "integrity": "sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "min-indent": "^1.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/reflect-metadata": { "version": "0.2.2", "resolved": "https://registry.npmjs.org/reflect-metadata/-/reflect-metadata-0.2.2.tgz", @@ -12500,6 +13945,19 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/signal-exit": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "node_modules/source-map": { "version": "0.5.7", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", @@ -12545,6 +14003,43 @@ "node": ">=0.1.14" } }, + "node_modules/storybook": { + "version": "9.1.13", + "resolved": "https://registry.npmjs.org/storybook/-/storybook-9.1.13.tgz", + "integrity": "sha512-G3KZ36EVzXyHds72B/qtWiJnhUpM0xOUeYlDcO9DSHL1bDTv15cW4+upBl+mcBZrDvU838cn7Bv4GpF+O5MCfw==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@storybook/global": "^5.0.0", + "@testing-library/jest-dom": "^6.6.3", + "@testing-library/user-event": "^14.6.1", + "@vitest/expect": "3.2.4", + "@vitest/mocker": "3.2.4", + "@vitest/spy": "3.2.4", + "better-opn": "^3.0.2", + "esbuild": "^0.18.0 || ^0.19.0 || ^0.20.0 || ^0.21.0 || ^0.22.0 || ^0.23.0 || ^0.24.0 || ^0.25.0", + "esbuild-register": "^3.5.0", + "recast": "^0.23.5", + "semver": "^7.6.2", + "ws": "^8.18.0" + }, + "bin": { + "storybook": "bin/index.cjs" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + }, + "peerDependencies": { + "prettier": "^2 || ^3" + }, + "peerDependenciesMeta": { + "prettier": { + "optional": true + } + } + }, "node_modules/stream-browserify": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-3.0.0.tgz", @@ -12579,6 +14074,76 @@ "safe-buffer": "~5.2.0" } }, + "node_modules/string-width": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", + "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", + "dev": true, + "license": "MIT", + "dependencies": { + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/string-width-cjs": { + "name": "string-width", + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/string-width-cjs/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true, + "license": "MIT" + }, + "node_modules/string-width/node_modules/ansi-regex": { + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.2.2.tgz", + "integrity": "sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/string-width/node_modules/strip-ansi": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.2.tgz", + "integrity": "sha512-gmBGslpoQJtgnMAvOVqGZpEz9dyoKTCzy2nfz/n8aIFhN/jCE/rCmcxabB6jOOHV+0WNnylOxaxBQPSvcWklhA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, "node_modules/string.prototype.includes": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/string.prototype.includes/-/string.prototype.includes-2.0.1.tgz", @@ -12719,6 +14284,20 @@ "node": ">=8" } }, + "node_modules/strip-ansi-cjs": { + "name": "strip-ansi", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/strip-bom": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", @@ -12729,6 +14308,19 @@ "node": ">=4" } }, + "node_modules/strip-indent": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-4.1.1.tgz", + "integrity": "sha512-SlyRoSkdh1dYP0PzclLE7r0M9sgbFKKMFXpFRUMNuKhQSbC6VQIGzq3E0qsfvGJaUFJPGv6Ws1NZ/haTAjfbMA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/strip-json-comments": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", @@ -12904,6 +14496,28 @@ "integrity": "sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA==", "license": "MIT" }, + "node_modules/tinyrainbow": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/tinyrainbow/-/tinyrainbow-2.0.0.tgz", + "integrity": "sha512-op4nsTR47R6p0vMUUoYl/a+ljLFVtlfaXkLQmqfLR1qHma1h/ysYk4hEXZ880bf2CYgTskvTa/e196Vd5dDQXw==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/tinyspy": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/tinyspy/-/tinyspy-4.0.4.tgz", + "integrity": "sha512-azl+t0z7pw/z958Gy9svOTuzqIk6xq+NSheJzn5MMWtWTFywIacg2wUlzKFGtt3cthx0r2SxMK0yzJOR0IES7Q==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">=14.0.0" + } + }, "node_modules/to-buffer": { "version": "1.2.2", "resolved": "https://registry.npmjs.org/to-buffer/-/to-buffer-1.2.2.tgz", @@ -12968,6 +14582,16 @@ "typescript": ">=4.8.4" } }, + "node_modules/ts-dedent": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/ts-dedent/-/ts-dedent-2.2.0.tgz", + "integrity": "sha512-q5W7tVM71e2xjHZTlgfTDoPF/SmqKG5hddq9SzR49CH2hayqRKJtQ4mtRlSxKaJlR/+9rEM+mnBHf7I2/BQcpQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.10" + } + }, "node_modules/tsconfck": { "version": "3.1.4", "resolved": "https://registry.npmjs.org/tsconfck/-/tsconfck-3.1.4.tgz", @@ -13660,6 +15284,19 @@ "dev": true, "license": "MIT" }, + "node_modules/unicorn-magic": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/unicorn-magic/-/unicorn-magic-0.1.0.tgz", + "integrity": "sha512-lRfVq8fE8gz6QMBuDM6a+LO3IAzTi05H6gCVaUpir2E1Rwpo4ZUog45KpNXKC/Mn3Yb9UDuHumeFTo9iV/D9FQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/unified": { "version": "11.0.5", "resolved": "https://registry.npmjs.org/unified/-/unified-11.0.5.tgz", @@ -13762,9 +15399,9 @@ } }, "node_modules/update-browserslist-db": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.1.tgz", - "integrity": "sha512-R8UzCaa9Az+38REPiJ1tXlImTJXlVfgHZsglwBD/k6nj76ctsH1E3q4doGrukiLQd3sGQYu56r5+lo5r94l29A==", + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.3.tgz", + "integrity": "sha512-UxhIZQ+QInVdunkDAaiazvvT/+fXL5Osr0JZlJulepYu6Jd7qJtDZjlur0emRlT71EN3ScPoE7gvsuIKKNavKw==", "dev": true, "funding": [ { @@ -13783,7 +15420,7 @@ "license": "MIT", "dependencies": { "escalade": "^3.2.0", - "picocolors": "^1.1.0" + "picocolors": "^1.1.1" }, "bin": { "update-browserslist-db": "cli.js" @@ -14266,6 +15903,107 @@ "node": ">=0.10.0" } }, + "node_modules/wrap-ansi": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", + "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^6.1.0", + "string-width": "^5.0.1", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrap-ansi-cjs": { + "name": "wrap-ansi", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true, + "license": "MIT" + }, + "node_modules/wrap-ansi-cjs/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/wrap-ansi/node_modules/ansi-regex": { + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.2.2.tgz", + "integrity": "sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/wrap-ansi/node_modules/ansi-styles": { + "version": "6.2.3", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.3.tgz", + "integrity": "sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/wrap-ansi/node_modules/strip-ansi": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.2.tgz", + "integrity": "sha512-gmBGslpoQJtgnMAvOVqGZpEz9dyoKTCzy2nfz/n8aIFhN/jCE/rCmcxabB6jOOHV+0WNnylOxaxBQPSvcWklhA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, "node_modules/wrappy": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", @@ -14273,6 +16011,29 @@ "dev": true, "license": "ISC" }, + "node_modules/ws": { + "version": "8.18.3", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.3.tgz", + "integrity": "sha512-PEIGCY5tSlUt50cqyMXfCzX+oOPqN0vuGqWzbcJ2xvnkzkq46oOpz7dQaTDBdfICb4N14+GARUDw2XV2N4tvzg==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": ">=5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, "node_modules/xtend": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", diff --git a/frontend/package.json b/frontend/package.json index d89025650..9c375190e 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -9,7 +9,9 @@ "preview": "vite preview", "lint": "eslint ./src", "lint:fix": "eslint --fix ./src", - "type:check": "tsc --noEmit --project ./tsconfig.app.json" + "type:check": "tsc --noEmit --project ./tsconfig.app.json", + "storybook": "storybook dev -p 6006", + "build-storybook": "storybook build" }, "overrides": { "sha.js": "2.4.12" @@ -47,7 +49,9 @@ "@radix-ui/react-popper": "^1.2.1", "@radix-ui/react-progress": "^1.1.1", "@radix-ui/react-radio-group": "^1.2.2", + "@radix-ui/react-scroll-area": "^1.2.10", "@radix-ui/react-select": "^2.1.3", + "@radix-ui/react-slot": "^1.2.3", "@radix-ui/react-switch": "^1.1.2", "@radix-ui/react-tabs": "^1.1.2", "@radix-ui/react-toast": "^1.2.3", @@ -64,6 +68,7 @@ "argon2-browser": "^1.18.0", "axios": "^1.12.0", "classnames": "^2.5.1", + "clsx": "^2.1.1", "cva": "npm:class-variance-authority@^0.7.1", "date-fns": "^4.1.0", "dompurify": "^3.2.4", @@ -76,6 +81,7 @@ "jsrp": "^0.2.4", "jwt-decode": "^4.0.0", "lexical": "^0.29.0", + "lucide-react": "^0.544.0", "ms": "^2.1.3", "nprogress": "^0.2.0", "picomatch": "^4.0.2", @@ -105,6 +111,9 @@ "@eslint/eslintrc": "^3.2.0", "@eslint/js": "^9.15.0", "@kesills/eslint-config-airbnb-typescript": "^20.0.0", + "@storybook/addon-a11y": "^9.1.9", + "@storybook/addon-docs": "^9.1.9", + "@storybook/react-vite": "^9.1.9", "@stylistic/eslint-plugin": "^2.12.1", "@tailwindcss/postcss": "^4.1.14", "@tailwindcss/typography": "^0.5.15", @@ -130,6 +139,7 @@ "eslint-plugin-react-hooks": "^4.6.2", "eslint-plugin-react-refresh": "^0.4.14", "eslint-plugin-simple-import-sort": "^12.1.1", + "eslint-plugin-storybook": "^9.1.9", "globals": "^15.12.0", "postcss": "^8.4.49", "prettier": "3.4.2", diff --git a/frontend/public/fonts/AllianceNo2-Regular.otf b/frontend/public/fonts/AllianceNo2-Regular.otf new file mode 100644 index 0000000000000000000000000000000000000000..a51796093db2371d306f801f12bd95b89ffd83ab GIT binary patch literal 134048 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 &5g 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 z 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 X43hUiE@lt(f~2qEz8c^7Li+yzg5r~7 literal 0 HcmV?d00001 diff --git a/frontend/public/images/logotransparent_trimmed.png b/frontend/public/images/logotransparent_trimmed.png new file mode 100644 index 0000000000000000000000000000000000000000..32911fb83fe16ab9de659322d4ca9a40224dbb32 GIT binary patch literal 35972 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 + +export default meta; +type Story = StoryObj; + +export const Neutral: Story = { + name: "Variant: Neutral", + args: { + variant: "neutral", + children: ( + <> + + Disabled + + ) + }, + parameters: { + docs: { + description: { + story: "Use this variant when indicating neutral or disabled states." + } + } + } +}; + +export const Success: Story = { + name: "Variant: Success", + args: { + variant: "success", + children: ( + <> + + Success + + ) + }, + parameters: { + docs: { + description: { + story: "Use this variant when indicating successful or healthy states." + } + } + } +}; + +export const Info: Story = { + name: "Variant: Info", + args: { + variant: "info", + children: ( + <> + + Info + + ) + }, + parameters: { + docs: { + description: { + story: + "Use this variant when indicating informational states or linking to external references." + } + } + } +}; + +export const Warning: Story = { + name: "Variant: Warning", + args: { + variant: "warning", + children: ( + <> + + Warning + + ) + }, + parameters: { + docs: { + description: { + story: "Use this variant when indicating activity or attention warranting states." + } + } + } +}; + +export const Danger: Story = { + name: "Variant: Danger", + args: { + variant: "danger", + children: ( + <> + + Danger + + ) + }, + parameters: { + docs: { + description: { + story: "Use this variant when indicating destructive or error states." + } + } + } +}; + +export const Organization: Story = { + name: "Variant: Organization", + args: { + variant: "org", + children: ( + <> + + Organization + + ) + }, + parameters: { + docs: { + description: { + story: "Use this variant when indicating organization scope or links." + } + } + } +}; + +export const SubOrganization: Story = { + name: "Variant: Sub-Organization", + args: { + variant: "sub-org", + children: ( + <> + + Sub-Organization + + ) + }, + parameters: { + docs: { + description: { + story: "Use this variant when indicating sub-organization scope or links." + } + } + } +}; + +export const Project: Story = { + name: "Variant: Project", + args: { + variant: "project", + children: ( + <> + + Project + + ) + }, + parameters: { + docs: { + description: { + story: "Use this variant when indicating project scope or links." + } + } + } +}; + +export const AsExternalLink: Story = { + name: "Example: As External Link", + args: { + variant: "info", + asChild: true, + children: ( + + Link + + ) + }, + parameters: { + docs: { + description: { + story: "Use the `asChild` prop with an `a` tag to use a badge as an external link." + } + } + } +}; + +export const AsRouterLink: Story = { + name: "Example: As Router Link", + args: { + variant: "project", + asChild: true, + children: ( + + + Secret Scanning + + ) + }, + parameters: { + docs: { + description: { + story: "Use the `asChild` prop with a `Link` component to use a badge as an internal link." + } + } + } +}; + +export const AsButton: Story = { + name: "Example: As Button", + args: { + variant: "org", + asChild: true, + children: ( + + ) + }, + parameters: { + docs: { + description: { + story: + "Use the `asChild` prop with a `button` tag to use a badge as a button. Do not use a styled `Button` component." + } + } + } +}; + +export const IsTruncatable: Story = { + name: "Example: isTruncatable", + args: { + isTruncatable: true, + children: ( + <> + + Infisical Infrastructure + + ) + }, + parameters: { + docs: { + description: { + story: + "Use the `isTruncatable` prop with a `span` tag wrapping the text content to support truncation." + } + } + }, + decorators: (Story) => ( +

+ +
+ ) +}; diff --git a/frontend/src/components/v3/generic/Badge/Badge.tsx b/frontend/src/components/v3/generic/Badge/Badge.tsx new file mode 100644 index 000000000..ada354e7d --- /dev/null +++ b/frontend/src/components/v3/generic/Badge/Badge.tsx @@ -0,0 +1,82 @@ +import { forwardRef } from "react"; +import { Slot } from "@radix-ui/react-slot"; +import { cva, type VariantProps } from "cva"; + +import { cn } from "@app/components/v3/utils"; + +const badgeVariants = cva( + [ + "select-none items-center rounded-sm px-1.5 py-0.5 text-xs", + "gap-x-1 [a&,button&]:cursor-pointer inline-flex", + "[&>svg]:pointer-events-none [&>svg]:shrink-0 [&>svg]:stroke-[2.25] [&>svg]:size-3", + "transition duration-200 ease-in-out" + ], + { + variants: { + isTruncatable: { + true: "[&>span,&>p]:truncate min-w-0", + false: "w-fit shrink-0 whitespace-nowrap overflow-hidden" + }, + variant: { + neutral: [ + "border-neutral/75 bg-neutral/30 text-neutral", + "[a&,button&]:hover:bg-neutral/40 [a&,button&]:hover:border-neutral" + ], + success: [ + "border-success/75 bg-success/30 text-success", + "[a&,button&]:hover:bg-success/40 [a&,button&]:hover:border-success" + ], + info: [ + "border-info/75 bg-info/30 text-info", + "[a&,button&]:hover:bg-info/40 [a&,button&]:hover:border-info" + ], + warning: [ + "border-warning/75 bg-warning/30 text-warning", + "[a&,button&]:hover:bg-warning/40 [a&,button&]:hover:border-warning" + ], + danger: [ + "border-danger/75 bg-danger/30 text-danger", + "[a&,button&]:hover:bg-danger/40 [a&,button&]:hover:border-danger" + ], + project: [ + "border-project/75 bg-project/30 text-project", + "[a&,button&]:hover:bg-project/40 [a&,button&]:hover:border-project" + ], + org: [ + "border-org/75 bg-org/30 text-org", + "[a&,button&]:hover:bg-org/40 [a&,button&]:hover:border-org" + ], + "sub-org": [ + "border-sub-org/75 bg-sub-org/30 text-sub-org", + "[a&,button&]:hover:bg-sub-org/40 [a&,button&]:hover:border-sub-org" + ] + } + }, + defaultVariants: { + variant: "success" + } + } +); + +type TBadgeProps = VariantProps & + React.ComponentProps<"span"> & { + asChild?: boolean; + }; + +const Badge = forwardRef( + ({ className, variant, asChild = false, isTruncatable = false, ...props }, ref): JSX.Element => { + const Comp = asChild ? Slot : "span"; + return ( + + ); + } +); + +Badge.displayName = "Badge"; + +export { Badge, badgeVariants, type TBadgeProps }; diff --git a/frontend/src/components/v3/generic/Badge/index.ts b/frontend/src/components/v3/generic/Badge/index.ts new file mode 100644 index 000000000..ae21190ba --- /dev/null +++ b/frontend/src/components/v3/generic/Badge/index.ts @@ -0,0 +1 @@ +export * from "./Badge"; diff --git a/frontend/src/components/v3/generic/index.ts b/frontend/src/components/v3/generic/index.ts new file mode 100644 index 000000000..ae21190ba --- /dev/null +++ b/frontend/src/components/v3/generic/index.ts @@ -0,0 +1 @@ +export * from "./Badge"; diff --git a/frontend/src/components/v3/index.ts b/frontend/src/components/v3/index.ts new file mode 100644 index 000000000..e69de29bb diff --git a/frontend/src/components/v3/utils/index.ts b/frontend/src/components/v3/utils/index.ts new file mode 100644 index 000000000..365058ceb --- /dev/null +++ b/frontend/src/components/v3/utils/index.ts @@ -0,0 +1,6 @@ +import { type ClassValue, clsx } from "clsx"; +import { twMerge } from "tailwind-merge"; + +export function cn(...inputs: ClassValue[]) { + return twMerge(clsx(inputs)); +} diff --git a/frontend/src/index.css b/frontend/src/index.css index 7c9b7db9b..2a1da3fa2 100644 --- a/frontend/src/index.css +++ b/frontend/src/index.css @@ -37,12 +37,26 @@ } @theme { - /*legacy color schema */ /* Fonts */ --font-inter: "Inter", sans-serif; + --max-width-8xl: 88rem; /* 1408px */ + + /* Colors v2 */ + --color-background: #19191c; + --color-foreground: white; + --color-success: #2ecc71; + --color-info: #34c2db; + --color-warning: #f1c40f; + --color-danger: #e74c3c; + --color-org: #30B3FF; + --color-sub-org: #96ff59; + --color-project: #e0ed34; + --color-neutral: #adaeb0; + + /*legacy color schema */ --color-org-v1: #30B3FF; --color-namespace-v1: #96ff59; - --max-width-8xl: 88rem; /* 1408px */ + /* Primary */ --color-primary-50: #fffff5; --color-primary-100: #fcfce8; diff --git a/frontend/tsconfig.app.json b/frontend/tsconfig.app.json index 49ac1742b..690a1155d 100644 --- a/frontend/tsconfig.app.json +++ b/frontend/tsconfig.app.json @@ -31,5 +31,7 @@ "include": [ "./src/**/*.ts", "./src/**/*.tsx", + "./.storybook/**/*.ts", + "./.storybook/**/*.tsx", ], }