From 99541b55e122a970183f344b281eac676d7c0091 Mon Sep 17 00:00:00 2001 From: Alessandro Casazza Date: Tue, 7 Apr 2026 10:05:08 +0200 Subject: [PATCH] =?UTF-8?q?=F0=9F=93=9A=20docs(document):=20add=20SKUs=20s?= =?UTF-8?q?tory,=20upgrade=20Storybook=20to=20v10,=20add=20MCP=20server?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Upgrade all @storybook/* packages to ^10.3.4 - Add @storybook/addon-mcp with .mcp.json MCP server config - Add stories/skus/001.skus.mdx with docs for all 5 SKU components - Add stories/skus/skus.stories.tsx with 3 visual-test stories - Add MSW mocks for /api/skus and /api/sku_lists/:id Closes #733 --- .mcp.json | 8 + .../.storybook/addon-gh-repository/Tool.tsx | 6 +- .../addon-gh-repository/manager.tsx | 2 +- .../.storybook/commercelayer.theme.ts | 2 +- packages/document/.storybook/main.ts | 25 +- packages/document/.storybook/preview.tsx | 16 +- packages/document/mocks/data/sku_lists.js | 70 +++ packages/document/mocks/data/skus.js | 73 +++ packages/document/mocks/handlers.js | 4 + packages/document/package.json | 27 +- .../document/src/stories/skus/001.skus.mdx | 196 +++++++ .../src/stories/skus/skus.stories.tsx | 72 +++ pnpm-lock.yaml | 536 ++++++++++++------ 13 files changed, 824 insertions(+), 213 deletions(-) create mode 100644 .mcp.json create mode 100644 packages/document/mocks/data/sku_lists.js create mode 100644 packages/document/mocks/data/skus.js create mode 100644 packages/document/src/stories/skus/001.skus.mdx create mode 100644 packages/document/src/stories/skus/skus.stories.tsx diff --git a/.mcp.json b/.mcp.json new file mode 100644 index 000000000..d974312fa --- /dev/null +++ b/.mcp.json @@ -0,0 +1,8 @@ +{ + "mcpServers": { + "storybook": { + "command": "pnpm", + "args": ["--filter", "document", "run", "mcp"] + } + } +} diff --git a/packages/document/.storybook/addon-gh-repository/Tool.tsx b/packages/document/.storybook/addon-gh-repository/Tool.tsx index 25f4aa108..d9ae52f0b 100644 --- a/packages/document/.storybook/addon-gh-repository/Tool.tsx +++ b/packages/document/.storybook/addon-gh-repository/Tool.tsx @@ -1,5 +1,5 @@ -import { A, IconButton, Icons, Separator } from '@storybook/components' -import React from 'react' +import { GithubIcon } from '@storybook/icons' +import { A, IconButton, Separator } from 'storybook/internal/components' import { ADDON_NAME, REPOSITORY_URL, TOOL_ID } from './constants' export const Tool = () => { @@ -8,7 +8,7 @@ export const Tool = () => { - +   repository diff --git a/packages/document/.storybook/addon-gh-repository/manager.tsx b/packages/document/.storybook/addon-gh-repository/manager.tsx index 0963c4035..f46adde9b 100644 --- a/packages/document/.storybook/addon-gh-repository/manager.tsx +++ b/packages/document/.storybook/addon-gh-repository/manager.tsx @@ -1,4 +1,4 @@ -import { addons, types } from "@storybook/manager-api" +import { addons, types } from "storybook/manager-api" import React from "react" import { Tool } from "./Tool" import { ADDON_ID, ADDON_NAME } from "./constants" diff --git a/packages/document/.storybook/commercelayer.theme.ts b/packages/document/.storybook/commercelayer.theme.ts index 1b06740a6..f7ceed75f 100644 --- a/packages/document/.storybook/commercelayer.theme.ts +++ b/packages/document/.storybook/commercelayer.theme.ts @@ -1,4 +1,4 @@ -import { create } from '@storybook/theming' +import { create } from 'storybook/theming' export default create({ base: 'light', diff --git a/packages/document/.storybook/main.ts b/packages/document/.storybook/main.ts index 451b989b4..cb68bdf18 100644 --- a/packages/document/.storybook/main.ts +++ b/packages/document/.storybook/main.ts @@ -21,21 +21,16 @@ const storybookConfig: StorybookConfig = { return mergeConfig(config, viteOverrides) }, stories: ["../stories/**/*.mdx", "../stories/**/*.stories.@(js|jsx|ts|tsx)"], - addons: [ - "@storybook/addon-links", - "@storybook/addon-essentials", - "@storybook/addon-interactions", - { - name: "@storybook/addon-docs", - options: { - mdxPluginOptions: { - mdxCompileOptions: { - remarkPlugins: [remarkGfm], - }, + addons: ["@storybook/addon-links", { + name: "@storybook/addon-docs", + options: { + mdxPluginOptions: { + mdxCompileOptions: { + remarkPlugins: [remarkGfm], }, }, }, - ], + }], // @ts-expect-error This 'managerEntries' exists. managerEntries: [ resolve(import.meta.dirname, "./addon-gh-repository/manager.tsx"), @@ -47,12 +42,8 @@ const storybookConfig: StorybookConfig = { core: { disableTelemetry: true, }, - features: { - storyStoreV7: true, - }, docs: { - autodocs: true, - docsMode: true, + docsMode: true }, typescript: { check: false, diff --git a/packages/document/.storybook/preview.tsx b/packages/document/.storybook/preview.tsx index 9632a948a..10352769e 100644 --- a/packages/document/.storybook/preview.tsx +++ b/packages/document/.storybook/preview.tsx @@ -5,8 +5,8 @@ import { Stories, Subtitle, Title, -} from "@storybook/blocks" -import type { Decorator, Parameters } from "@storybook/react" +} from "@storybook/addon-docs/blocks" +import type { Decorator, Parameters, Preview } from "@storybook/react-vite" import React from "react" import { worker } from "../mocks/browser" @@ -19,18 +19,19 @@ export const parameters: Parameters = { }, }, backgrounds: { - values: [ - { + options: { + overlay: { name: "overlay", value: "#F8F8F8", - }, - ], + } + }, }, options: { storySort: { method: "alphabetical", order: [ "Getting Started", + "Skus", // [ // "Welcome", // "Applications", @@ -140,4 +141,5 @@ const argTypesEnhancers: Preview["argTypesEnhancers"] = [ export default { parameters, argTypesEnhancers, -} + tags: ["autodocs"] +}; diff --git a/packages/document/mocks/data/sku_lists.js b/packages/document/mocks/data/sku_lists.js new file mode 100644 index 000000000..fd6b6265f --- /dev/null +++ b/packages/document/mocks/data/sku_lists.js @@ -0,0 +1,70 @@ +import { http, HttpResponse } from 'msw' + +const skuListData = { + id: 'SkuListAbc01', + type: 'sku_lists', + links: { + self: 'https://react-components-store.commercelayer.io/api/sku_lists/SkuListAbc01' + }, + attributes: { + name: 'Summer Collection', + slug: 'summer-collection', + description: 'Our summer collection SKU list.', + image_url: null, + manual: true, + sku_count: 2, + created_at: '2023-01-01T00:00:00.000Z', + updated_at: '2023-01-01T00:00:00.000Z', + reference: null, + reference_origin: null, + metadata: {} + }, + relationships: { + skus: { + data: [ + { type: 'skus', id: 'SkuAbc001' }, + { type: 'skus', id: 'SkuAbc002' } + ] + } + }, + meta: { mode: 'test' } +} + +const included = [ + { + id: 'SkuAbc001', + type: 'skus', + links: { self: 'https://react-components-store.commercelayer.io/api/skus/SkuAbc001' }, + attributes: { + code: 'TSHIRTMM000000FFFFFFXLXX', + name: 'Black T-Shirt XL', + image_url: 'https://img.commercelayer.io/skus/TSHIRTMM000000FFFFFFXLXX.png' + }, + relationships: {}, + meta: { mode: 'test' } + }, + { + id: 'SkuAbc002', + type: 'skus', + links: { self: 'https://react-components-store.commercelayer.io/api/skus/SkuAbc002' }, + attributes: { + code: 'PANTSMM000000FFFFFFXXXX', + name: 'Black Pants', + image_url: 'https://img.commercelayer.io/skus/PANTSMM000000FFFFFFXXXX.png' + }, + relationships: {}, + meta: { mode: 'test' } + } +] + +export default [ + http.get( + 'https://react-components-store.commercelayer.io/api/sku_lists/:id', + () => { + return HttpResponse.json({ + data: skuListData, + included + }) + } + ) +] diff --git a/packages/document/mocks/data/skus.js b/packages/document/mocks/data/skus.js new file mode 100644 index 000000000..18b1ab665 --- /dev/null +++ b/packages/document/mocks/data/skus.js @@ -0,0 +1,73 @@ +import { http, HttpResponse } from 'msw' + +const skuList = [ + { + id: 'SkuAbc001', + type: 'skus', + links: { self: 'https://react-components-store.commercelayer.io/api/skus/SkuAbc001' }, + attributes: { + code: 'TSHIRTMM000000FFFFFFXLXX', + name: 'Black T-Shirt XL', + description: 'A comfortable black t-shirt in XL size.', + image_url: 'https://img.commercelayer.io/skus/TSHIRTMM000000FFFFFFXLXX.png', + do_not_ship: false, + do_not_track: false, + pieces_per_pack: null, + weight: null, + unit_of_weight: null, + hs_tariff_number: null, + inbound_tracking: null, + created_at: '2023-01-01T00:00:00.000Z', + updated_at: '2023-01-01T00:00:00.000Z', + reference: null, + reference_origin: null, + metadata: {} + }, + relationships: {}, + meta: { mode: 'test' } + }, + { + id: 'SkuAbc002', + type: 'skus', + links: { self: 'https://react-components-store.commercelayer.io/api/skus/SkuAbc002' }, + attributes: { + code: 'PANTSMM000000FFFFFFXXXX', + name: 'Black Pants', + description: 'Classic black pants.', + image_url: 'https://img.commercelayer.io/skus/PANTSMM000000FFFFFFXXXX.png', + do_not_ship: false, + do_not_track: false, + pieces_per_pack: null, + weight: null, + unit_of_weight: null, + hs_tariff_number: null, + inbound_tracking: null, + created_at: '2023-01-01T00:00:00.000Z', + updated_at: '2023-01-01T00:00:00.000Z', + reference: null, + reference_origin: null, + metadata: {} + }, + relationships: {}, + meta: { mode: 'test' } + } +] + +// MSW v2 handler (canonical pattern for this project — existing handlers use the v1 compat shim). +// This broad match intercepts all GET /api/skus requests regardless of query params. +// Add more specific handlers above this one if you need different responses per query. +export default [ + http.get( + 'https://react-components-store.commercelayer.io/api/skus', + () => { + return HttpResponse.json({ + data: skuList, + meta: { record_count: 2, page_count: 1 }, + links: { + first: 'https://react-components-store.commercelayer.io/api/skus?page[number]=1', + last: 'https://react-components-store.commercelayer.io/api/skus?page[number]=1' + } + }) + } + ) +] diff --git a/packages/document/mocks/handlers.js b/packages/document/mocks/handlers.js index df071002d..e529f35d6 100644 --- a/packages/document/mocks/handlers.js +++ b/packages/document/mocks/handlers.js @@ -3,6 +3,8 @@ import bundles from './data/bundles' import lineItems from './data/line_items' import markets from './data/markets' import orders from './data/orders' +import skus from './data/skus' +import skuLists from './data/sku_lists' import tags from './data/tags' export const handlers = [ @@ -11,5 +13,7 @@ export const handlers = [ ...lineItems, ...markets, ...orders, + ...skus, + ...skuLists, ...tags ] diff --git a/packages/document/package.json b/packages/document/package.json index 660310c31..250542d4d 100644 --- a/packages/document/package.json +++ b/packages/document/package.json @@ -8,37 +8,34 @@ "lint": "eslint .", "preview": "vite preview", "storybook": "storybook dev -p 6006", - "build-storybook": "storybook build" + "build-storybook": "storybook build", + "mcp": "storybook mcp" }, "dependencies": { "react": "^19.2.3", "react-dom": "^19.2.3" }, "devDependencies": { - "@chromatic-com/storybook": "^5.0.0", + "@chromatic-com/storybook": "^5.1.1", "@eslint/js": "^9.39.2", - "@storybook/addon-docs": "^10.1.11", - "@storybook/addon-essentials": "^8.6.14", - "@storybook/addon-interactions": "^8.6.14", - "@storybook/addon-links": "^10.1.11", - "@storybook/addon-mdx-gfm": "^8.6.14", - "@storybook/addon-onboarding": "^10.1.11", - "@storybook/blocks": "^8.6.14", - "@storybook/react": "^10.1.11", - "@storybook/react-vite": "^10.1.11", - "@storybook/test": "^8.6.15", - "@storybook/theming": "^8.6.14", + "@storybook/addon-docs": "^10.3.3", + "@storybook/addon-links": "^10.3.3", + "@storybook/addon-mcp": "^0.4.2", + "@storybook/addon-onboarding": "^10.3.3", + "@storybook/icons": "^2.0.1", + "@storybook/react": "^10.3.3", + "@storybook/react-vite": "^10.3.3", "@types/react": "^19.2.8", "@types/react-dom": "^19.2.3", "@vitejs/plugin-react": "^5.1.2", "eslint": "^9.39.2", "eslint-plugin-react-hooks": "^7.0.1", "eslint-plugin-react-refresh": "^0.4.26", - "eslint-plugin-storybook": "^10.1.11", + "eslint-plugin-storybook": "^10.3.3", "globals": "^17.0.0", "msw": "^2.12.7", "remark-gfm": "^4.0.1", - "storybook": "^10.1.11", + "storybook": "^10.3.3", "typescript": "~5.9.3", "typescript-eslint": "^8.53.0", "vite": "^7.3.1", diff --git a/packages/document/src/stories/skus/001.skus.mdx b/packages/document/src/stories/skus/001.skus.mdx new file mode 100644 index 000000000..4fab0c2a0 --- /dev/null +++ b/packages/document/src/stories/skus/001.skus.mdx @@ -0,0 +1,196 @@ +import { Meta, Source } from '@storybook/addon-docs'; + + + +# SKUs + +The SKU components let you fetch and display product data from the Commerce Layer API. +All SKU components must be nested inside the `` context that handles API authentication. + +Refer to the [SKUs API reference](https://docs.commercelayer.io/core/v/api-reference/skus/object) +for the full list of available attributes. + +--- + +## SkusContainer + +`SkusContainer` is the main container for SKU data. It accepts an array of SKU codes, fetches the +corresponding resources from the API, and stores them in a React context for its children. + + +Must be a child of the `` component. + + + +`` + + +**Props** + +| Prop | Type | Required | Description | +|------|------|----------|-------------| +| `skus` | `string[]` | ✓ | Array of SKU codes to fetch | +| `queryParams` | `QueryParamsList` | — | Optional SDK query params (pagination, sorting, fields) | + + + + {/* goes here */} + + +`} +/> + +--- + +## Skus + +`Skus` loops through all SKU records stored in the parent `SkusContainer` context and renders +its children once for each SKU. You do not need to loop manually — the component handles iteration. + + +Must be a child of the `` component. + + + +``, `` + + + + + {/* rendered once per SKU */} + + +`} +/> + +--- + +## SkuField + +`SkuField` renders any attribute of the current SKU from the parent `SkusContainer` context. +Use the `attribute` prop to select which field to display and `tagElement` to control the HTML tag +(defaults to `span`). When `tagElement="img"`, additional `` props such as `width` and `height` are accepted. + + +Must be a descendant of the `` component. + + + +See the [SKUs API object](https://docs.commercelayer.io/core/v/api-reference/skus/object) for all +available attributes (e.g. `name`, `description`, `image_url`, `code`). + + +**Props** + +| Prop | Type | Default | Description | +|------|------|---------|-------------| +| `attribute` | `keyof Sku` | — | The SKU attribute to display | +| `tagElement` | `string` | `"span"` | HTML tag used to render the value | + + + + + + + + + + +`} +/> + +--- + +## SkuListsContainer + +`SkuListsContainer` fetches one or more SKU lists by ID and makes their SKU data available to +child `` components. Each `` registers its own ID with this container on mount. + + +Must be a child of the `` component. + + + +`` + + + + + {/* components go here */} + + +`} +/> + +--- + +## SkuList + +`SkuList` registers its `id` with the parent `SkuListsContainer` and renders its children using +the SKUs that belong to that list. Nest `` and `` inside to display list items. + + +Must be a child of the `` component. + + + +``, `` + + +**Props** + +| Prop | Type | Required | Description | +|------|------|----------|-------------| +| `id` | `string` | ✓ | The Commerce Layer ID of the SKU list to fetch | + + + + + + + + + + + +`} +/> diff --git a/packages/document/src/stories/skus/skus.stories.tsx b/packages/document/src/stories/skus/skus.stories.tsx new file mode 100644 index 000000000..c202dc903 --- /dev/null +++ b/packages/document/src/stories/skus/skus.stories.tsx @@ -0,0 +1,72 @@ +import type { Meta, StoryObj } from '@storybook/react' +import CommerceLayer from '../_internals/CommerceLayer' +import { + SkuField, + SkuList, + SkuListsContainer, + Skus, + SkusContainer, +} from '@commercelayer/react-components' + +const meta = { + title: 'Skus/Stories', + parameters: { + layout: 'centered', + }, +} satisfies Meta + +export default meta +type Story = StoryObj + +export const SkusContainerStory: Story = { + name: 'SkusContainer — name and code', + render: () => ( + + + +
+ + +
+
+
+
+ ), +} + +export const SkuListsContainerStory: Story = { + name: 'SkuListsContainer — list items', + render: () => ( + + + + +
+ + +
+
+
+
+
+ ), +} + +export const SkuFieldImageStory: Story = { + name: 'SkuField — image', + render: () => ( + + + + + + + + ), +} diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 21ce6a379..228e1f603 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -197,44 +197,32 @@ importers: version: 19.2.3(react@19.2.3) devDependencies: '@chromatic-com/storybook': - specifier: ^5.0.0 - version: 5.0.0(storybook@10.3.3(@testing-library/dom@10.4.1)(prettier@2.8.8)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)) + specifier: ^5.1.1 + version: 5.1.1(storybook@10.3.3(@testing-library/dom@10.4.1)(prettier@2.8.8)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)) '@eslint/js': specifier: ^9.39.2 version: 9.39.2 '@storybook/addon-docs': - specifier: ^10.1.11 - version: 10.1.11(@types/react@19.2.8)(esbuild@0.25.12)(rollup@4.60.0)(storybook@10.3.3(@testing-library/dom@10.4.1)(prettier@2.8.8)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(vite@7.3.1(@types/node@25.0.8)(terser@5.44.0)(yaml@2.7.0))(webpack@5.98.0(esbuild@0.25.12)) - '@storybook/addon-essentials': - specifier: ^8.6.14 - version: 8.6.14(@types/react@19.2.8)(storybook@10.3.3(@testing-library/dom@10.4.1)(prettier@2.8.8)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)) - '@storybook/addon-interactions': - specifier: ^8.6.14 - version: 8.6.14(storybook@10.3.3(@testing-library/dom@10.4.1)(prettier@2.8.8)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)) + specifier: ^10.3.3 + version: 10.3.3(@types/react@19.2.8)(esbuild@0.25.12)(rollup@4.60.0)(storybook@10.3.3(@testing-library/dom@10.4.1)(prettier@2.8.8)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(vite@7.3.1(@types/node@25.0.8)(terser@5.44.0)(yaml@2.7.0))(webpack@5.98.0(esbuild@0.25.12)) '@storybook/addon-links': - specifier: ^10.1.11 - version: 10.1.11(react@19.2.3)(storybook@10.3.3(@testing-library/dom@10.4.1)(prettier@2.8.8)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)) - '@storybook/addon-mdx-gfm': - specifier: ^8.6.14 - version: 8.6.14(storybook@10.3.3(@testing-library/dom@10.4.1)(prettier@2.8.8)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)) + specifier: ^10.3.3 + version: 10.3.3(react@19.2.3)(storybook@10.3.3(@testing-library/dom@10.4.1)(prettier@2.8.8)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)) + '@storybook/addon-mcp': + specifier: ^0.4.2 + version: 0.4.2(storybook@10.3.3(@testing-library/dom@10.4.1)(prettier@2.8.8)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(typescript@5.9.3) '@storybook/addon-onboarding': - specifier: ^10.1.11 - version: 10.1.11(storybook@10.3.3(@testing-library/dom@10.4.1)(prettier@2.8.8)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)) - '@storybook/blocks': - specifier: ^8.6.14 - version: 8.6.14(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(storybook@10.3.3(@testing-library/dom@10.4.1)(prettier@2.8.8)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)) + specifier: ^10.3.3 + version: 10.3.3(storybook@10.3.3(@testing-library/dom@10.4.1)(prettier@2.8.8)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)) + '@storybook/icons': + specifier: ^2.0.1 + version: 2.0.1(react-dom@19.2.3(react@19.2.3))(react@19.2.3) '@storybook/react': - specifier: ^10.1.11 - version: 10.1.11(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(storybook@10.3.3(@testing-library/dom@10.4.1)(prettier@2.8.8)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(typescript@5.9.3) + specifier: ^10.3.3 + version: 10.3.3(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(storybook@10.3.3(@testing-library/dom@10.4.1)(prettier@2.8.8)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(typescript@5.9.3) '@storybook/react-vite': - specifier: ^10.1.11 - version: 10.1.11(esbuild@0.25.12)(msw@2.12.7(@types/node@25.0.8)(typescript@5.9.3))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(rollup@4.60.0)(storybook@10.3.3(@testing-library/dom@10.4.1)(prettier@2.8.8)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(typescript@5.9.3)(vite@7.3.1(@types/node@25.0.8)(terser@5.44.0)(yaml@2.7.0))(webpack@5.98.0(esbuild@0.25.12)) - '@storybook/test': - specifier: ^8.6.15 - version: 8.6.15(storybook@10.3.3(@testing-library/dom@10.4.1)(prettier@2.8.8)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)) - '@storybook/theming': - specifier: ^8.6.14 - version: 8.6.14(storybook@10.3.3(@testing-library/dom@10.4.1)(prettier@2.8.8)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)) + specifier: ^10.3.3 + version: 10.3.3(esbuild@0.25.12)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(rollup@4.60.0)(storybook@10.3.3(@testing-library/dom@10.4.1)(prettier@2.8.8)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(typescript@5.9.3)(vite@7.3.1(@types/node@25.0.8)(terser@5.44.0)(yaml@2.7.0))(webpack@5.98.0(esbuild@0.25.12)) '@types/react': specifier: ^19.2.8 version: 19.2.8 @@ -254,8 +242,8 @@ importers: specifier: ^0.4.26 version: 0.4.26(eslint@9.39.2) eslint-plugin-storybook: - specifier: ^10.1.11 - version: 10.1.11(eslint@9.39.2)(storybook@10.3.3(@testing-library/dom@10.4.1)(prettier@2.8.8)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(typescript@5.9.3) + specifier: ^10.3.3 + version: 10.3.3(eslint@9.39.2)(storybook@10.3.3(@testing-library/dom@10.4.1)(prettier@2.8.8)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(typescript@5.9.3) globals: specifier: ^17.0.0 version: 17.0.0 @@ -266,7 +254,7 @@ importers: specifier: ^4.0.1 version: 4.0.1 storybook: - specifier: '>=10.2.10' + specifier: ^10.3.3 version: 10.3.3(@testing-library/dom@10.4.1)(prettier@2.8.8)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) typescript: specifier: ~5.9.3 @@ -1173,8 +1161,8 @@ packages: '@braintree/wrap-promise@2.1.0': resolution: {integrity: sha512-UIrJB+AfKU0CCfbMoWrsGpd2D/hBpY/SGgFI6WRHPOwhaZ3g9rz1weiJ6eb6L9KgVyunT7s2tckcPkbHw+NzeA==} - '@chromatic-com/storybook@5.0.0': - resolution: {integrity: sha512-8wUsqL8kg6R5ue8XNE7Jv/iD1SuE4+6EXMIGIuE+T2loBITEACLfC3V8W44NJviCLusZRMWbzICddz0nU0bFaw==} + '@chromatic-com/storybook@5.1.1': + resolution: {integrity: sha512-BPoAXHM71XgeCK2u0jKr9i8apeQMm/Z9IWGyndA2FMijfQG9m8ox45DdWh/pxFkK5ClhGgirv5QwMhFIeHmThg==} engines: {node: '>=20.0.0', yarn: '>=1.22.18'} peerDependencies: storybook: '>=10.2.10' @@ -1808,6 +1796,15 @@ packages: typescript: optional: true + '@joshwooding/vite-plugin-react-docgen-typescript@0.6.4': + resolution: {integrity: sha512-6PyZBYKnnVNqOSB0YFly+62R7dmov8segT27A+RVTBVd4iAE6kbW9QBJGlyR2yG4D4ohzhZSTIu7BK1UTtmFFA==} + 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 + '@jridgewell/gen-mapping@0.3.13': resolution: {integrity: sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==} @@ -2274,6 +2271,11 @@ packages: peerDependencies: storybook: '>=10.2.10' + '@storybook/addon-docs@10.3.3': + resolution: {integrity: sha512-trJQTpOtuOEuNv1Rn8X2Sopp5hSPpb0u0soEJ71BZAbxe4d2Y1d/1MYcxBdRKwncum6sCTsnxTpqQ/qvSJKlTQ==} + peerDependencies: + storybook: ^10.3.3 + '@storybook/addon-docs@8.6.14': resolution: {integrity: sha512-Obpd0OhAF99JyU5pp5ci17YmpcQtMNgqW2pTXV8jAiiipWpwO++hNDeQmLmlSXB399XjtRDOcDVkoc7rc6JzdQ==} peerDependencies: @@ -2303,6 +2305,24 @@ packages: react: optional: true + '@storybook/addon-links@10.3.3': + resolution: {integrity: sha512-tazBHlB+YbU62bde5DWsq0lnxZjcAsPB3YRUpN2hSMfAySsudRingyWrgu5KeOxXhJvKJj0ohjQvGcMx/wgQUA==} + peerDependencies: + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 + storybook: ^10.3.3 + peerDependenciesMeta: + react: + optional: true + + '@storybook/addon-mcp@0.4.2': + resolution: {integrity: sha512-vFIhpOrk9mzBivnuDBdw+2V45LCWpAXnJtZzWtELA+Vd5mU5U7CikKgFZuSarISX4nMJ+gETfjZijWC0qPzH6A==} + peerDependencies: + '@storybook/addon-vitest': ^9.1.16 || ^10.0.0 || ^10.1.0-0 || ^10.2.0-0 || ^10.3.0-0 || ^10.4.0-0 + storybook: '>=10.2.10' + peerDependenciesMeta: + '@storybook/addon-vitest': + optional: true + '@storybook/addon-mdx-gfm@8.6.14': resolution: {integrity: sha512-ClfngOSwFrhc3x2dXSzfBSSbzz4VHzUs0XOg9V8fj1bgQhmPoMz9OD3vIjbnJOC33wORbC0ZpfcQPt3RGILYrA==} peerDependencies: @@ -2316,10 +2336,10 @@ packages: '@storybook/addon-measure@9.0.8': resolution: {integrity: sha512-+DAsl7o8Hh4cw+U29c1+IqeLJWVu3swy/wgGhZBpIyhfz22b55cTlquEjwXRV26KBkuQBZih8XhZPU689rc7Rg==} - '@storybook/addon-onboarding@10.1.11': - resolution: {integrity: sha512-DNJv0IDl5XBrY+PPgwnMXLyp3omPkMOS6xe8ejG3csT71B6+3VueL6m7Qivh6739SnAV0QBU5SQlpMA0gQUcSA==} + '@storybook/addon-onboarding@10.3.3': + resolution: {integrity: sha512-HZiHfXdcLc29WkYFW+1VAMtJCeAZOOLRYPvs97woJUcZqW8yfWEJ9MWH+j++736SFAv2aqZWNmP47OdBJ/kMkw==} peerDependencies: - storybook: '>=10.2.10' + storybook: ^10.3.3 '@storybook/addon-outline@8.6.14': resolution: {integrity: sha512-CW857JvN6OxGWElqjlzJO2S69DHf+xO3WsEfT5mT3ZtIjmsvRDukdWfDU9bIYUFyA2lFvYjncBGjbK+I91XR7w==} @@ -2363,6 +2383,12 @@ packages: storybook: '>=10.2.10' vite: ^5.0.0 || ^6.0.0 || ^7.0.0 + '@storybook/builder-vite@10.3.3': + resolution: {integrity: sha512-awspKCTZvXyeV3KabL0id62mFbxR5u/5yyGQultwCiSb2/yVgBfip2MAqLyS850pvTiB6QFVM9deOyd2/G/bEA==} + peerDependencies: + storybook: ^10.3.3 + vite: ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0 + '@storybook/channels@7.6.17': resolution: {integrity: sha512-GFG40pzaSxk1hUr/J/TMqW5AFDDPUSu+HkeE/oqSWJbOodBOLJzHN6CReJS6y1DjYSZLNFt1jftPWZZInG/XUA==} @@ -2398,6 +2424,24 @@ packages: webpack: optional: true + '@storybook/csf-plugin@10.3.3': + resolution: {integrity: sha512-Utlh7zubm+4iOzBBfzLW4F4vD99UBtl2Do4edlzK2F7krQIcFvR2ontjAE8S1FQVLZAC3WHalCOS+Ch8zf3knA==} + peerDependencies: + esbuild: ^0.25.0 + rollup: '>=4.59.0' + storybook: ^10.3.3 + vite: '*' + webpack: '*' + peerDependenciesMeta: + esbuild: + optional: true + rollup: + optional: true + vite: + optional: true + webpack: + optional: true + '@storybook/csf-plugin@8.6.14': resolution: {integrity: sha512-dErtc9teAuN+eelN8FojzFE635xlq9cNGGGEu0WEmMUQ4iJ8pingvBO1N8X3scz4Ry7KnxX++NNf3J3gpxS8qQ==} peerDependencies: @@ -2427,11 +2471,6 @@ packages: peerDependencies: storybook: ^8.6.14 - '@storybook/instrumenter@8.6.15': - resolution: {integrity: sha512-TvHR/+yyIAOp/1bLulFai2kkhIBtAlBw7J6Jd9DKyInoGhTWNE1G1Y61jD5GWXX29AlwaHfzGUaX5NL1K+FJpg==} - peerDependencies: - storybook: ^8.6.15 - '@storybook/manager-api@7.6.17': resolution: {integrity: sha512-IJIV1Yc6yw1dhCY4tReHCfBnUKDqEBnMyHp3mbXpsaHxnxJZrXO45WjRAZIKlQKhl/Ge1CrnznmHRCmYgqmrWg==} @@ -2440,6 +2479,9 @@ packages: peerDependencies: storybook: ^8.2.0 || ^8.3.0-0 || ^8.4.0-0 || ^8.5.0-0 || ^8.6.0-0 + '@storybook/mcp@0.6.1': + resolution: {integrity: sha512-fdVJ3Br9/7Taj/sMCeM0jXM5rwdBbsRoh+nz8krMJj+Cj1vzfXRewkeadjt1Bg0q5UcV/0CSOHwj0QI8S5TIgA==} + '@storybook/node-logger@8.6.14': resolution: {integrity: sha512-/H67NMvc9hDOaNgVragsHaeXQ5JzwAQfyx1QeL4vlx2SPGoWXmxpoRXZTpOJRaNOhKlYh6sDj/3Lx2xOH5IxnQ==} peerDependencies: @@ -2455,6 +2497,13 @@ packages: react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 storybook: '>=10.2.10' + '@storybook/react-dom-shim@10.3.3': + resolution: {integrity: sha512-lkhuh4G3UTreU9M3Iz5Dt32c6U+l/4XuvqLtbe1sDHENZH6aPj7y0b5FwnfHyvuTvYRhtbo29xZrF5Bp9kCC0w==} + peerDependencies: + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 + react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 + storybook: ^10.3.3 + '@storybook/react-dom-shim@8.6.14': resolution: {integrity: sha512-0hixr3dOy3f3M+HBofp3jtMQMS+sqzjKNgl7Arfuj3fvjmyXOks/yGjDImySR4imPtEllvPZfhiQNlejheaInw==} peerDependencies: @@ -2470,6 +2519,14 @@ packages: storybook: '>=10.2.10' vite: ^5.0.0 || ^6.0.0 || ^7.0.0 + '@storybook/react-vite@10.3.3': + resolution: {integrity: sha512-qHdlBe1hjqFAGXa8JL7bWTLbP/gDqXbWDm+SYCB646NHh5yvVDkZLwigP5Y+UL7M2ASfqFtosnroUK9tcCM2dw==} + peerDependencies: + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 + react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 + storybook: ^10.3.3 + vite: ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0 + '@storybook/react@10.1.11': resolution: {integrity: sha512-rmMGmEwBaM2YpB8oDk2moM0MNjNMqtwyoPPZxjyruY9WVhYca8EDPGKEdRzUlb4qZJsTgLi7VU4eqg6LD/mL3Q==} peerDependencies: @@ -2481,6 +2538,17 @@ packages: typescript: optional: true + '@storybook/react@10.3.3': + resolution: {integrity: sha512-cGG5TbR8Tdx9zwlpsWyBEfWrejm5iWdYF26EwIhwuKq9GFUTAVrQzo0Rs7Tqc3ZyVhRS/YfsRiWSEH+zmq2JiQ==} + peerDependencies: + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 + react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 + storybook: ^10.3.3 + typescript: '>= 4.9.x' + peerDependenciesMeta: + typescript: + optional: true + '@storybook/router@7.6.17': resolution: {integrity: sha512-GnyC0j6Wi5hT4qRhSyT8NPtJfGmf82uZw97LQRWeyYu5gWEshUdM7aj40XlNiScd5cZDp0owO1idduVF2k2l2A==} @@ -2489,11 +2557,6 @@ packages: peerDependencies: storybook: ^8.6.14 - '@storybook/test@8.6.15': - resolution: {integrity: sha512-EwquDRUDVvWcZds3T2abmB5wSN/Vattal4YtZ6fpBlIUqONV4o/cOBX39cFfQSUCBrIXIjQ6RmapQCHK/PvBYw==} - peerDependencies: - storybook: ^8.6.15 - '@storybook/testing-library@0.2.2': resolution: {integrity: sha512-L8sXFJUHmrlyU2BsWWZGuAjv39Jl1uAqUHdxmN42JY15M4+XCMjGlArdCCjDe1wpTSW6USYISA9axjZojgtvnw==} deprecated: In Storybook 8, this package functionality has been integrated to a new package called @storybook/test, which uses Vitest APIs for an improved experience. When upgrading to Storybook 8 with 'npx storybook@latest upgrade', you will get prompted and will get an automigration for the new package. Please migrate when you can. @@ -2596,6 +2659,26 @@ packages: peerDependencies: '@testing-library/dom': '>=7.21.4' + '@tmcp/adapter-valibot@0.1.5': + resolution: {integrity: sha512-9P2wrVYPngemNK0UvPb/opC722/jfd09QxXmme1TRp/wPsl98vpSk/MXt24BCMqBRv4Dvs0xxJH4KHDcjXW52Q==} + peerDependencies: + tmcp: ^1.17.0 + valibot: ^1.1.0 + + '@tmcp/session-manager@0.2.1': + resolution: {integrity: sha512-DOGy9LfufXCy1wfpGHZ6qPSDQtRnTVwOb71+41ffovTqzLMZlK3iLK/LIsekHxIiku+iIAUiqEKN+DHbqEm8IA==} + peerDependencies: + tmcp: ^1.16.3 + + '@tmcp/transport-http@0.8.5': + resolution: {integrity: sha512-qQLqiCTtbxtTSswqOn/782df7O57RxI/yLUtCDQ++kHEhbmDUc8glmmtGJ3mrb7yPSPoM5VF2Pc2Q5cA6quzLA==} + peerDependencies: + '@tmcp/auth': ^0.3.3 || ^0.4.0 + tmcp: ^1.18.0 + peerDependenciesMeta: + '@tmcp/auth': + optional: true + '@tufjs/canonical-json@2.0.0': resolution: {integrity: sha512-yVtV8zsdo8qFHe+/3kw81dSLyF7D576A5cCFCi4X7B39tWT7SekaEFUnvnWJHz+9qO7qJTah1JbrDjWKqFtdWA==} engines: {node: ^16.14.0 || >=18.0.0} @@ -2769,32 +2852,16 @@ packages: eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <6.0.0' - '@typescript-eslint/project-service@8.50.1': - resolution: {integrity: sha512-E1ur1MCVf+YiP89+o4Les/oBAVzmSbeRB0MQLfSlYtbWU17HPxZ6Bhs5iYmKZRALvEuBoXIZMOIRRc/P++Ortg==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - typescript: '>=4.8.4 <6.0.0' - '@typescript-eslint/project-service@8.53.0': resolution: {integrity: sha512-Bl6Gdr7NqkqIP5yP9z1JU///Nmes4Eose6L1HwpuVHwScgDPPuEWbUVhvlZmb8hy0vX9syLk5EGNL700WcBlbg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '>=4.8.4 <6.0.0' - '@typescript-eslint/scope-manager@8.50.1': - resolution: {integrity: sha512-mfRx06Myt3T4vuoHaKi8ZWNTPdzKPNBhiblze5N50//TSHOAQQevl/aolqA/BcqqbJ88GUnLqjjcBc8EWdBcVw==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/scope-manager@8.53.0': resolution: {integrity: sha512-kWNj3l01eOGSdVBnfAF2K1BTh06WS0Yet6JUgb9Cmkqaz3Jlu0fdVUjj9UI8gPidBWSMqDIglmEXifSgDT/D0g==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/tsconfig-utils@8.50.1': - resolution: {integrity: sha512-ooHmotT/lCWLXi55G4mvaUF60aJa012QzvLK0Y+Mp4WdSt17QhMhWOaBWeGTFVkb2gDgBe19Cxy1elPXylslDw==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - typescript: '>=4.8.4 <6.0.0' - '@typescript-eslint/tsconfig-utils@8.53.0': resolution: {integrity: sha512-K6Sc0R5GIG6dNoPdOooQ+KtvT5KCKAvTcY8h2rIuul19vxH5OTQk7ArKkd4yTzkw66WnNY0kPPzzcmWA+XRmiA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -2808,33 +2875,16 @@ packages: eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <6.0.0' - '@typescript-eslint/types@8.50.1': - resolution: {integrity: sha512-v5lFIS2feTkNyMhd7AucE/9j/4V9v5iIbpVRncjk/K0sQ6Sb+Np9fgYS/63n6nwqahHQvbmujeBL7mp07Q9mlA==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/types@8.53.0': resolution: {integrity: sha512-Bmh9KX31Vlxa13+PqPvt4RzKRN1XORYSLlAE+sO1i28NkisGbTtSLFVB3l7PWdHtR3E0mVMuC7JilWJ99m2HxQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/typescript-estree@8.50.1': - resolution: {integrity: sha512-woHPdW+0gj53aM+cxchymJCrh0cyS7BTIdcDxWUNsclr9VDkOSbqC13juHzxOmQ22dDkMZEpZB+3X1WpUvzgVQ==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - typescript: '>=4.8.4 <6.0.0' - '@typescript-eslint/typescript-estree@8.53.0': resolution: {integrity: sha512-pw0c0Gdo7Z4xOG987u3nJ8akL9093yEEKv8QTJ+Bhkghj1xyj8cgPaavlr9rq8h7+s6plUJ4QJYw2gCZodqmGw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '>=4.8.4 <6.0.0' - '@typescript-eslint/utils@8.50.1': - resolution: {integrity: sha512-lCLp8H1T9T7gPbEuJSnHwnSuO9mDf8mfK/Nion5mZmiEaQD9sWf9W4dfeFqRyqRjF06/kBuTmAqcs9sewM2NbQ==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - eslint: ^8.57.0 || ^9.0.0 - typescript: '>=4.8.4 <6.0.0' - '@typescript-eslint/utils@8.53.0': resolution: {integrity: sha512-XDY4mXTez3Z1iRDI5mbRhH4DFSt46oaIFsLg+Zn97+sYrXACziXSQcSelMybnVZ5pa1P6xYkPr5cMJyunM1ZDA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -2842,14 +2892,15 @@ packages: eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <6.0.0' - '@typescript-eslint/visitor-keys@8.50.1': - resolution: {integrity: sha512-IrDKrw7pCRUR94zeuCSUWQ+w8JEf5ZX5jl/e6AHGSLi1/zIr0lgutfn/7JpfCey+urpgQEdrZVYzCaVVKiTwhQ==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/visitor-keys@8.53.0': resolution: {integrity: sha512-LZ2NqIHFhvFwxG0qZeLL9DvdNAHPGCY5dIRwBhyYeU+LfLhcStE1ImjsuTG/WaVh3XysGaeLW8Rqq7cGkPCFvw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@valibot/to-json-schema@1.6.0': + resolution: {integrity: sha512-d6rYyK5KVa2XdqamWgZ4/Nr+cXhxjy7lmpe6Iajw15J/jmU+gyxl2IEd1Otg1d7Rl3gOQL5reulnSypzBtYy1A==} + peerDependencies: + valibot: ^1.3.0 + '@vitejs/plugin-react@5.1.2': resolution: {integrity: sha512-EcA07pHJouywpzsoTUqNh5NwGayl2PPVEJKUSinGGSxFGYn+shYbqMGBg6FXDqgXum9Ou/ecb+411ssw8HImJQ==} engines: {node: ^20.19.0 || >=22.12.0} @@ -3779,11 +3830,11 @@ packages: peerDependencies: eslint: '>=8.40' - eslint-plugin-storybook@10.1.11: - resolution: {integrity: sha512-mbq2r2kK5+AcLl0XDJ3to91JOgzCbHOqj+J3n+FRw6drk+M1boRqMShSoMMm0HdzXPLmlr7iur+qJ5ZuhH6ayQ==} + eslint-plugin-storybook@10.3.3: + resolution: {integrity: sha512-jo8wZvKaJlxxrNvf4hCsROJP3CdlpaLiYewAs5Ww+PJxCrLelIi5XVHWOAgBvvr3H9WDKvUw8xuvqPYqAlpkFg==} peerDependencies: eslint: '>=8' - storybook: '>=10.2.10' + storybook: ^10.3.3 eslint-scope@5.1.1: resolution: {integrity: sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==} @@ -3811,6 +3862,9 @@ packages: jiti: optional: true + esm-env@1.2.2: + resolution: {integrity: sha512-Epxrv+Nr/CaL4ZcFGPJIYLWFom+YeV1DqMLHJoEd9SYRxNbaFruBwfEX/kkHUJf55j2+TUbmDcmuilbP1TmXHA==} + espree@10.4.0: resolution: {integrity: sha512-j6PAQ2uUr79PZhBjP5C5fhl8e39FmRnOjsD5lGnWrFU8i2G776tBK7+nP8KuQUTTyAZUwfQqXAgrVH5MbH9CYQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -4077,6 +4131,10 @@ packages: resolution: {integrity: sha512-tvZgpqk6fz4BaNZ66ZsRaZnbHvP/jG3uKJvAZOwEVUL4RTA5nJeeLYfyN9/VA8NX/V3IBG+hkeuGpKjvELkVhA==} engines: {node: 20 || >=22} + glob@13.0.6: + resolution: {integrity: sha512-Wjlyrolmm8uDpm/ogGyXZXb1Z+Ca2B8NbJwqBVg0axK9GbBeoS7yGV6vjXnYdGm6X53iehEuxxbyiKp8QmN4Vw==} + engines: {node: 18 || 20 || >=22} + globals@14.0.0: resolution: {integrity: sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==} engines: {node: '>=18'} @@ -4515,6 +4573,9 @@ packages: resolution: {integrity: sha512-ZF1nxZ28VhQouRWhUcVlUIN3qwSgPuswK05s/HIaoetAoE/9tngVmCHjSxmSQPav1nd+lPtTL0YZ/2AFdR/iYQ==} engines: {node: ^20.17.0 || >=22.9.0} + json-rpc-2.0@1.7.1: + resolution: {integrity: sha512-JqZjhjAanbpkXIzFE7u8mE/iFblawwlXtONaCvRqI+pyABVz7B4M1EUNpyVW+dZjqgQ2L5HFmZCmOCgUKm00hg==} + json-schema-traverse@0.4.1: resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} @@ -4901,6 +4962,10 @@ packages: resolution: {integrity: sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==} engines: {node: '>=16 || 14 >=14.17'} + minipass@7.1.3: + resolution: {integrity: sha512-tEBHqDnIoM/1rXME1zgka9g6Q2lcoCkxHLuc7ODJ5BxbP5d4c2Z5cGgtXAku59200Cx7diuHTOYfSBD8n6mm8A==} + engines: {node: '>=16 || 14 >=14.17'} + minizlib@3.1.0: resolution: {integrity: sha512-KZxYo1BUkWD2TVFLr0MQoM8vUUigWD3LlD83a/75BqC+4qE0Hb1Vo5v1FgcfaNXvfXzr+5EhQ6ing/CaBijTlw==} engines: {node: '>= 18'} @@ -5226,6 +5291,10 @@ packages: resolution: {integrity: sha512-oWyT4gICAu+kaA7QWk/jvCHWarMKNs6pXOGWKDTr7cw4IGcUbW+PeTfbaQiLGheFRpjo6O9J0PmyMfQPjH71oA==} engines: {node: 20 || >=22} + path-scurry@2.0.2: + resolution: {integrity: sha512-3O/iVVsJAPsOnpwWIeD+d6z/7PmqApyQePUtCndjatj/9I5LylHvt5qluFaBT3I5h3r1ejfR056c+FCv+NnNXg==} + engines: {node: 18 || 20 || >=22} + path-to-regexp@6.3.0: resolution: {integrity: sha512-Yhpw4T9C6hPpgPeA28us07OJeqZ5EzQTkbfwuhsUg0c237RomFoETJgmp2sa3F/41gfLE6G5cqcYwznmeEeOlQ==} @@ -5247,6 +5316,9 @@ packages: resolution: {integrity: sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A==} engines: {node: '>=12'} + picoquery@2.5.0: + resolution: {integrity: sha512-j1kgOFxtaCyoFCkpoYG2Oj3OdGakadO7HZ7o5CqyRazlmBekKhbDoUnNnXASE07xSY4nDImWZkrZv7toSxMi/g==} + pify@2.3.0: resolution: {integrity: sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==} engines: {node: '>=0.10.0'} @@ -5750,6 +5822,9 @@ packages: sprintf-js@1.1.3: resolution: {integrity: sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==} + sqids@0.3.0: + resolution: {integrity: sha512-lOQK1ucVg+W6n3FhRwwSeUijxe93b51Bfz5PMRMihVf1iVkl82ePQG7V5vwrhzB11v0NtsR25PSZRGiSomJaJw==} + ssri@12.0.0: resolution: {integrity: sha512-S7iGNosepx9RadX82oimUkvr0Ct7IjJbEbs4mJcTxst8um95J3sDYU1RBEOvdu6oL1Wek2ODI5i4MAw+dZ6cAQ==} engines: {node: ^18.17.0 || >=20.5.0} @@ -5970,6 +6045,9 @@ packages: resolution: {integrity: sha512-z/SgnxiICGb7Gli0z7ci9BZdjy1tQORUbdmzEUA7NbIJKWhdONn78Ji8gV0PAGfHPyEd+I+W2rMzhLjWkv2Olg==} hasBin: true + tmcp@1.19.3: + resolution: {integrity: sha512-plz/TLKNFrdfQN32LjCTN6ULy6pynfGPgHcU7KGCI5dBrxQ9Mub99SmcYuzxEkLjJooQuOD3gosSwZEl1htOtw==} + tmp@0.2.5: resolution: {integrity: sha512-voyz6MApa1rQGUxT3E+BK7/ROe8itEx7vD8/HEvt4xwXucvQ5G5oeEiHkmHZJuBO21RpOf+YYm9MOivj709jow==} engines: {node: '>=14.14'} @@ -5997,12 +6075,6 @@ packages: trough@2.2.0: resolution: {integrity: sha512-tmMpK00BjZiUyVyvrBK7knerNgmgvcV/KLVyuma/SC+TQN167GrMRciANTz09+k3zW8L8t60jWO1GpfkZdjTaw==} - ts-api-utils@2.1.0: - resolution: {integrity: sha512-CUgTZL1irw8u29bzrOD/nH85jqyc74D6SshFgujOIA7osm2Rz7dYH77agkx7H4FBNxDq7Cjf+IjaX/8zwFW+ZQ==} - engines: {node: '>=18.12'} - peerDependencies: - typescript: '>=4.8.4' - ts-api-utils@2.4.0: resolution: {integrity: sha512-3TaVTaAv2gTiMB35i3FiGJaRfwb3Pyn/j3m/bfAvGe8FB7CF6u+LMYqYlDh7reQf7UNvoTvdfAqHGmPGOSsPmA==} engines: {node: '>=18.12'} @@ -6190,6 +6262,9 @@ packages: uri-js@4.4.1: resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} + uri-template-matcher@1.1.2: + resolution: {integrity: sha512-uZc1h12jdO3m/R77SfTEOuo6VbMhgWznaawKpBjRGSJb7i91x5PgI37NQJtG+Cerxkk0yr1pylBY2qG1kQ+aEQ==} + use-sync-external-store@1.6.0: resolution: {integrity: sha512-Pp6GSwGP/NrPIrxVFAIkOQeyw8lFenOHijQWkUTrDvrF4ALqylP2C/KCkeS9dpUM3KvYRQhna5vt7IL95+ZQ9w==} peerDependencies: @@ -6202,6 +6277,14 @@ packages: resolution: {integrity: sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==} hasBin: true + valibot@1.2.0: + resolution: {integrity: sha512-mm1rxUsmOxzrwnX5arGS+U4T25RdvpPjPN4yR0u9pUBov9+zGVtO84tif1eY4r6zWxVxu3KzIyknJy3rxfRZZg==} + peerDependencies: + typescript: '>=5' + peerDependenciesMeta: + typescript: + optional: true + validate-npm-package-license@3.0.4: resolution: {integrity: sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==} @@ -7407,7 +7490,7 @@ snapshots: '@braintree/wrap-promise@2.1.0': {} - '@chromatic-com/storybook@5.0.0(storybook@10.3.3(@testing-library/dom@10.4.1)(prettier@2.8.8)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))': + '@chromatic-com/storybook@5.1.1(storybook@10.3.3(@testing-library/dom@10.4.1)(prettier@2.8.8)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))': dependencies: '@neoconfetti/react': 1.0.0 chromatic: 13.3.4 @@ -7855,6 +7938,14 @@ snapshots: optionalDependencies: typescript: 5.9.3 + '@joshwooding/vite-plugin-react-docgen-typescript@0.6.4(typescript@5.9.3)(vite@7.3.1(@types/node@25.0.8)(terser@5.44.0)(yaml@2.7.0))': + dependencies: + glob: 13.0.6 + react-docgen-typescript: 2.2.2(typescript@5.9.3) + vite: 7.3.1(@types/node@25.0.8)(terser@5.44.0)(yaml@2.7.0) + optionalDependencies: + typescript: 5.9.3 + '@jridgewell/gen-mapping@0.3.13': dependencies: '@jridgewell/sourcemap-codec': 1.5.5 @@ -8357,6 +8448,23 @@ snapshots: - vite - webpack + '@storybook/addon-docs@10.3.3(@types/react@19.2.8)(esbuild@0.25.12)(rollup@4.60.0)(storybook@10.3.3(@testing-library/dom@10.4.1)(prettier@2.8.8)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(vite@7.3.1(@types/node@25.0.8)(terser@5.44.0)(yaml@2.7.0))(webpack@5.98.0(esbuild@0.25.12))': + dependencies: + '@mdx-js/react': 3.1.1(@types/react@19.2.8)(react@19.2.4) + '@storybook/csf-plugin': 10.3.3(esbuild@0.25.12)(rollup@4.60.0)(storybook@10.3.3(@testing-library/dom@10.4.1)(prettier@2.8.8)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(vite@7.3.1(@types/node@25.0.8)(terser@5.44.0)(yaml@2.7.0))(webpack@5.98.0(esbuild@0.25.12)) + '@storybook/icons': 2.0.1(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@storybook/react-dom-shim': 10.3.3(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(storybook@10.3.3(@testing-library/dom@10.4.1)(prettier@2.8.8)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)) + react: 19.2.4 + react-dom: 19.2.4(react@19.2.4) + storybook: 10.3.3(@testing-library/dom@10.4.1)(prettier@2.8.8)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + ts-dedent: 2.2.0 + transitivePeerDependencies: + - '@types/react' + - esbuild + - rollup + - vite + - webpack + '@storybook/addon-docs@8.6.14(@types/react@19.2.8)(storybook@10.3.3(@testing-library/dom@10.4.1)(prettier@2.8.8)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))': dependencies: '@mdx-js/react': 3.1.1(@types/react@19.2.8)(react@19.2.4) @@ -8407,6 +8515,26 @@ snapshots: optionalDependencies: react: 19.2.3 + '@storybook/addon-links@10.3.3(react@19.2.3)(storybook@10.3.3(@testing-library/dom@10.4.1)(prettier@2.8.8)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))': + dependencies: + '@storybook/global': 5.0.0 + storybook: 10.3.3(@testing-library/dom@10.4.1)(prettier@2.8.8)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + optionalDependencies: + react: 19.2.3 + + '@storybook/addon-mcp@0.4.2(storybook@10.3.3(@testing-library/dom@10.4.1)(prettier@2.8.8)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(typescript@5.9.3)': + dependencies: + '@storybook/mcp': 0.6.1(typescript@5.9.3) + '@tmcp/adapter-valibot': 0.1.5(tmcp@1.19.3(typescript@5.9.3))(valibot@1.2.0(typescript@5.9.3)) + '@tmcp/transport-http': 0.8.5(tmcp@1.19.3(typescript@5.9.3)) + picoquery: 2.5.0 + storybook: 10.3.3(@testing-library/dom@10.4.1)(prettier@2.8.8)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + tmcp: 1.19.3(typescript@5.9.3) + valibot: 1.2.0(typescript@5.9.3) + transitivePeerDependencies: + - '@tmcp/auth' + - typescript + '@storybook/addon-mdx-gfm@8.6.14(storybook@10.3.3(@testing-library/dom@10.4.1)(prettier@2.8.8)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))': dependencies: remark-gfm: 4.0.1 @@ -8423,7 +8551,7 @@ snapshots: '@storybook/addon-measure@9.0.8': {} - '@storybook/addon-onboarding@10.1.11(storybook@10.3.3(@testing-library/dom@10.4.1)(prettier@2.8.8)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))': + '@storybook/addon-onboarding@10.3.3(storybook@10.3.3(@testing-library/dom@10.4.1)(prettier@2.8.8)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))': dependencies: storybook: 10.3.3(@testing-library/dom@10.4.1)(prettier@2.8.8)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) @@ -8492,6 +8620,17 @@ snapshots: - rollup - webpack + '@storybook/builder-vite@10.3.3(esbuild@0.25.12)(rollup@4.60.0)(storybook@10.3.3(@testing-library/dom@10.4.1)(prettier@2.8.8)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(vite@7.3.1(@types/node@25.0.8)(terser@5.44.0)(yaml@2.7.0))(webpack@5.98.0(esbuild@0.25.12))': + dependencies: + '@storybook/csf-plugin': 10.3.3(esbuild@0.25.12)(rollup@4.60.0)(storybook@10.3.3(@testing-library/dom@10.4.1)(prettier@2.8.8)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(vite@7.3.1(@types/node@25.0.8)(terser@5.44.0)(yaml@2.7.0))(webpack@5.98.0(esbuild@0.25.12)) + storybook: 10.3.3(@testing-library/dom@10.4.1)(prettier@2.8.8)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + ts-dedent: 2.2.0 + vite: 7.3.1(@types/node@25.0.8)(terser@5.44.0)(yaml@2.7.0) + transitivePeerDependencies: + - esbuild + - rollup + - webpack + '@storybook/channels@7.6.17': dependencies: '@storybook/client-logger': 7.6.17 @@ -8528,6 +8667,16 @@ snapshots: vite: 7.3.1(@types/node@25.0.8)(terser@5.44.0)(yaml@2.7.0) webpack: 5.98.0(esbuild@0.25.12) + '@storybook/csf-plugin@10.3.3(esbuild@0.25.12)(rollup@4.60.0)(storybook@10.3.3(@testing-library/dom@10.4.1)(prettier@2.8.8)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(vite@7.3.1(@types/node@25.0.8)(terser@5.44.0)(yaml@2.7.0))(webpack@5.98.0(esbuild@0.25.12))': + dependencies: + storybook: 10.3.3(@testing-library/dom@10.4.1)(prettier@2.8.8)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + unplugin: 2.3.11 + optionalDependencies: + esbuild: 0.25.12 + rollup: 4.60.0 + vite: 7.3.1(@types/node@25.0.8)(terser@5.44.0)(yaml@2.7.0) + webpack: 5.98.0(esbuild@0.25.12) + '@storybook/csf-plugin@8.6.14(storybook@10.3.3(@testing-library/dom@10.4.1)(prettier@2.8.8)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))': dependencies: storybook: 10.3.3(@testing-library/dom@10.4.1)(prettier@2.8.8)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) @@ -8554,13 +8703,12 @@ snapshots: react: 19.2.3 react-dom: 19.2.3(react@19.2.3) - '@storybook/instrumenter@8.6.14(storybook@10.3.3(@testing-library/dom@10.4.1)(prettier@2.8.8)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))': + '@storybook/icons@2.0.1(react-dom@19.2.4(react@19.2.4))(react@19.2.4)': dependencies: - '@storybook/global': 5.0.0 - '@vitest/utils': 2.1.9 - storybook: 10.3.3(@testing-library/dom@10.4.1)(prettier@2.8.8)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + react: 19.2.4 + react-dom: 19.2.4(react@19.2.4) - '@storybook/instrumenter@8.6.15(storybook@10.3.3(@testing-library/dom@10.4.1)(prettier@2.8.8)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))': + '@storybook/instrumenter@8.6.14(storybook@10.3.3(@testing-library/dom@10.4.1)(prettier@2.8.8)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))': dependencies: '@storybook/global': 5.0.0 '@vitest/utils': 2.1.9 @@ -8590,6 +8738,16 @@ snapshots: dependencies: storybook: 10.3.3(@testing-library/dom@10.4.1)(prettier@2.8.8)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@storybook/mcp@0.6.1(typescript@5.9.3)': + dependencies: + '@tmcp/adapter-valibot': 0.1.5(tmcp@1.19.3(typescript@5.9.3))(valibot@1.2.0(typescript@5.9.3)) + '@tmcp/transport-http': 0.8.5(tmcp@1.19.3(typescript@5.9.3)) + tmcp: 1.19.3(typescript@5.9.3) + valibot: 1.2.0(typescript@5.9.3) + transitivePeerDependencies: + - '@tmcp/auth' + - typescript + '@storybook/node-logger@8.6.14(storybook@10.3.3(@testing-library/dom@10.4.1)(prettier@2.8.8)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))': dependencies: storybook: 10.3.3(@testing-library/dom@10.4.1)(prettier@2.8.8)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) @@ -8617,6 +8775,18 @@ snapshots: react-dom: 19.2.3(react@19.2.3) storybook: 10.3.3(@testing-library/dom@10.4.1)(prettier@2.8.8)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@storybook/react-dom-shim@10.3.3(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(storybook@10.3.3(@testing-library/dom@10.4.1)(prettier@2.8.8)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))': + dependencies: + react: 19.2.3 + react-dom: 19.2.3(react@19.2.3) + storybook: 10.3.3(@testing-library/dom@10.4.1)(prettier@2.8.8)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + + '@storybook/react-dom-shim@10.3.3(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(storybook@10.3.3(@testing-library/dom@10.4.1)(prettier@2.8.8)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))': + dependencies: + react: 19.2.4 + react-dom: 19.2.4(react@19.2.4) + storybook: 10.3.3(@testing-library/dom@10.4.1)(prettier@2.8.8)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@storybook/react-dom-shim@8.6.14(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(storybook@10.3.3(@testing-library/dom@10.4.1)(prettier@2.8.8)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))': dependencies: react: 19.2.4 @@ -8646,6 +8816,28 @@ snapshots: - typescript - webpack + '@storybook/react-vite@10.3.3(esbuild@0.25.12)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(rollup@4.60.0)(storybook@10.3.3(@testing-library/dom@10.4.1)(prettier@2.8.8)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(typescript@5.9.3)(vite@7.3.1(@types/node@25.0.8)(terser@5.44.0)(yaml@2.7.0))(webpack@5.98.0(esbuild@0.25.12))': + dependencies: + '@joshwooding/vite-plugin-react-docgen-typescript': 0.6.4(typescript@5.9.3)(vite@7.3.1(@types/node@25.0.8)(terser@5.44.0)(yaml@2.7.0)) + '@rollup/pluginutils': 5.1.4(rollup@4.60.0) + '@storybook/builder-vite': 10.3.3(esbuild@0.25.12)(rollup@4.60.0)(storybook@10.3.3(@testing-library/dom@10.4.1)(prettier@2.8.8)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(vite@7.3.1(@types/node@25.0.8)(terser@5.44.0)(yaml@2.7.0))(webpack@5.98.0(esbuild@0.25.12)) + '@storybook/react': 10.3.3(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(storybook@10.3.3(@testing-library/dom@10.4.1)(prettier@2.8.8)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(typescript@5.9.3) + empathic: 2.0.0 + magic-string: 0.30.21 + react: 19.2.3 + react-docgen: 8.0.2 + react-dom: 19.2.3(react@19.2.3) + resolve: 1.22.10 + storybook: 10.3.3(@testing-library/dom@10.4.1)(prettier@2.8.8)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + tsconfig-paths: 4.2.0 + vite: 7.3.1(@types/node@25.0.8)(terser@5.44.0)(yaml@2.7.0) + transitivePeerDependencies: + - esbuild + - rollup + - supports-color + - typescript + - webpack + '@storybook/react@10.1.11(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(storybook@10.3.3(@testing-library/dom@10.4.1)(prettier@2.8.8)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(typescript@5.9.3)': dependencies: '@storybook/global': 5.0.0 @@ -8659,6 +8851,20 @@ snapshots: transitivePeerDependencies: - supports-color + '@storybook/react@10.3.3(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(storybook@10.3.3(@testing-library/dom@10.4.1)(prettier@2.8.8)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(typescript@5.9.3)': + dependencies: + '@storybook/global': 5.0.0 + '@storybook/react-dom-shim': 10.3.3(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(storybook@10.3.3(@testing-library/dom@10.4.1)(prettier@2.8.8)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)) + react: 19.2.3 + react-docgen: 8.0.2 + react-docgen-typescript: 2.2.2(typescript@5.9.3) + react-dom: 19.2.3(react@19.2.3) + storybook: 10.3.3(@testing-library/dom@10.4.1)(prettier@2.8.8)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + optionalDependencies: + typescript: 5.9.3 + transitivePeerDependencies: + - supports-color + '@storybook/router@7.6.17': dependencies: '@storybook/client-logger': 7.6.17 @@ -8676,17 +8882,6 @@ snapshots: '@vitest/spy': 2.0.5 storybook: 10.3.3(@testing-library/dom@10.4.1)(prettier@2.8.8)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) - '@storybook/test@8.6.15(storybook@10.3.3(@testing-library/dom@10.4.1)(prettier@2.8.8)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))': - dependencies: - '@storybook/global': 5.0.0 - '@storybook/instrumenter': 8.6.15(storybook@10.3.3(@testing-library/dom@10.4.1)(prettier@2.8.8)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)) - '@testing-library/dom': 10.4.0 - '@testing-library/jest-dom': 6.5.0 - '@testing-library/user-event': 14.5.2(@testing-library/dom@10.4.0) - '@vitest/expect': 2.0.5 - '@vitest/spy': 2.0.5 - storybook: 10.3.3(@testing-library/dom@10.4.1)(prettier@2.8.8)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) - '@storybook/testing-library@0.2.2': dependencies: '@testing-library/dom': 9.3.4 @@ -8814,6 +9009,23 @@ snapshots: dependencies: '@testing-library/dom': 9.3.4 + '@tmcp/adapter-valibot@0.1.5(tmcp@1.19.3(typescript@5.9.3))(valibot@1.2.0(typescript@5.9.3))': + dependencies: + '@standard-schema/spec': 1.1.0 + '@valibot/to-json-schema': 1.6.0(valibot@1.2.0(typescript@5.9.3)) + tmcp: 1.19.3(typescript@5.9.3) + valibot: 1.2.0(typescript@5.9.3) + + '@tmcp/session-manager@0.2.1(tmcp@1.19.3(typescript@5.9.3))': + dependencies: + tmcp: 1.19.3(typescript@5.9.3) + + '@tmcp/transport-http@0.8.5(tmcp@1.19.3(typescript@5.9.3))': + dependencies: + '@tmcp/session-manager': 0.2.1(tmcp@1.19.3(typescript@5.9.3)) + esm-env: 1.2.2 + tmcp: 1.19.3(typescript@5.9.3) + '@tufjs/canonical-json@2.0.0': {} '@tufjs/models@4.0.0': @@ -9020,15 +9232,6 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/project-service@8.50.1(typescript@5.9.3)': - dependencies: - '@typescript-eslint/tsconfig-utils': 8.50.1(typescript@5.9.3) - '@typescript-eslint/types': 8.50.1 - debug: 4.4.3 - typescript: 5.9.3 - transitivePeerDependencies: - - supports-color - '@typescript-eslint/project-service@8.53.0(typescript@5.9.3)': dependencies: '@typescript-eslint/tsconfig-utils': 8.53.0(typescript@5.9.3) @@ -9038,20 +9241,11 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/scope-manager@8.50.1': - dependencies: - '@typescript-eslint/types': 8.50.1 - '@typescript-eslint/visitor-keys': 8.50.1 - '@typescript-eslint/scope-manager@8.53.0': dependencies: '@typescript-eslint/types': 8.53.0 '@typescript-eslint/visitor-keys': 8.53.0 - '@typescript-eslint/tsconfig-utils@8.50.1(typescript@5.9.3)': - dependencies: - typescript: 5.9.3 - '@typescript-eslint/tsconfig-utils@8.53.0(typescript@5.9.3)': dependencies: typescript: 5.9.3 @@ -9068,25 +9262,8 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/types@8.50.1': {} - '@typescript-eslint/types@8.53.0': {} - '@typescript-eslint/typescript-estree@8.50.1(typescript@5.9.3)': - dependencies: - '@typescript-eslint/project-service': 8.50.1(typescript@5.9.3) - '@typescript-eslint/tsconfig-utils': 8.50.1(typescript@5.9.3) - '@typescript-eslint/types': 8.50.1 - '@typescript-eslint/visitor-keys': 8.50.1 - debug: 4.4.3 - minimatch: 10.2.4 - semver: 7.7.3 - tinyglobby: 0.2.15 - ts-api-utils: 2.1.0(typescript@5.9.3) - typescript: 5.9.3 - transitivePeerDependencies: - - supports-color - '@typescript-eslint/typescript-estree@8.53.0(typescript@5.9.3)': dependencies: '@typescript-eslint/project-service': 8.53.0(typescript@5.9.3) @@ -9102,17 +9279,6 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/utils@8.50.1(eslint@9.39.2)(typescript@5.9.3)': - dependencies: - '@eslint-community/eslint-utils': 4.9.0(eslint@9.39.2) - '@typescript-eslint/scope-manager': 8.50.1 - '@typescript-eslint/types': 8.50.1 - '@typescript-eslint/typescript-estree': 8.50.1(typescript@5.9.3) - eslint: 9.39.2 - typescript: 5.9.3 - transitivePeerDependencies: - - supports-color - '@typescript-eslint/utils@8.53.0(eslint@9.39.2)(typescript@5.9.3)': dependencies: '@eslint-community/eslint-utils': 4.9.1(eslint@9.39.2) @@ -9124,16 +9290,15 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/visitor-keys@8.50.1': - dependencies: - '@typescript-eslint/types': 8.50.1 - eslint-visitor-keys: 4.2.1 - '@typescript-eslint/visitor-keys@8.53.0': dependencies: '@typescript-eslint/types': 8.53.0 eslint-visitor-keys: 4.2.1 + '@valibot/to-json-schema@1.6.0(valibot@1.2.0(typescript@5.9.3))': + dependencies: + valibot: 1.2.0(typescript@5.9.3) + '@vitejs/plugin-react@5.1.2(vite@7.3.1(@types/node@25.0.8)(terser@5.44.0)(yaml@2.7.0))': dependencies: '@babel/core': 7.28.6 @@ -10170,9 +10335,9 @@ snapshots: dependencies: eslint: 9.39.2 - eslint-plugin-storybook@10.1.11(eslint@9.39.2)(storybook@10.3.3(@testing-library/dom@10.4.1)(prettier@2.8.8)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(typescript@5.9.3): + eslint-plugin-storybook@10.3.3(eslint@9.39.2)(storybook@10.3.3(@testing-library/dom@10.4.1)(prettier@2.8.8)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(typescript@5.9.3): dependencies: - '@typescript-eslint/utils': 8.50.1(eslint@9.39.2)(typescript@5.9.3) + '@typescript-eslint/utils': 8.53.0(eslint@9.39.2)(typescript@5.9.3) eslint: 9.39.2 storybook: 10.3.3(@testing-library/dom@10.4.1)(prettier@2.8.8)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) transitivePeerDependencies: @@ -10232,6 +10397,8 @@ snapshots: transitivePeerDependencies: - supports-color + esm-env@1.2.2: {} + espree@10.4.0: dependencies: acorn: 8.15.0 @@ -10505,6 +10672,12 @@ snapshots: minipass: 7.1.2 path-scurry: 2.0.1 + glob@13.0.6: + dependencies: + minimatch: 10.2.4 + minipass: 7.1.3 + path-scurry: 2.0.2 + globals@14.0.0: {} globals@17.0.0: {} @@ -10907,6 +11080,8 @@ snapshots: json-parse-even-better-errors@5.0.0: {} + json-rpc-2.0@1.7.1: {} + json-schema-traverse@0.4.1: {} json-schema-traverse@1.0.0: {} @@ -11546,6 +11721,8 @@ snapshots: minipass@7.1.2: {} + minipass@7.1.3: {} + minizlib@3.1.0: dependencies: minipass: 7.1.2 @@ -11992,6 +12169,11 @@ snapshots: lru-cache: 11.2.4 minipass: 7.1.2 + path-scurry@2.0.2: + dependencies: + lru-cache: 11.2.4 + minipass: 7.1.3 + path-to-regexp@6.3.0: {} path-type@3.0.0: @@ -12006,6 +12188,8 @@ snapshots: picomatch@4.0.4: {} + picoquery@2.5.0: {} + pify@2.3.0: {} pify@3.0.0: {} @@ -12547,6 +12731,8 @@ snapshots: sprintf-js@1.1.3: {} + sqids@0.3.0: {} + ssri@12.0.0: dependencies: minipass: 7.1.2 @@ -12765,6 +12951,16 @@ snapshots: dependencies: tldts-core: 7.0.13 + tmcp@1.19.3(typescript@5.9.3): + dependencies: + '@standard-schema/spec': 1.1.0 + json-rpc-2.0: 1.7.1 + sqids: 0.3.0 + uri-template-matcher: 1.1.2 + valibot: 1.2.0(typescript@5.9.3) + transitivePeerDependencies: + - typescript + tmp@0.2.5: {} tough-cookie@6.0.0: @@ -12783,10 +12979,6 @@ snapshots: trough@2.2.0: {} - ts-api-utils@2.1.0(typescript@5.9.3): - dependencies: - typescript: 5.9.3 - ts-api-utils@2.4.0(typescript@5.9.3): dependencies: typescript: 5.9.3 @@ -12965,6 +13157,8 @@ snapshots: dependencies: punycode: 2.3.1 + uri-template-matcher@1.1.2: {} + use-sync-external-store@1.6.0(react@19.2.3): dependencies: react: 19.2.3 @@ -12977,6 +13171,10 @@ snapshots: uuid@9.0.1: {} + valibot@1.2.0(typescript@5.9.3): + optionalDependencies: + typescript: 5.9.3 + validate-npm-package-license@3.0.4: dependencies: spdx-correct: 3.2.0