diff --git a/.changeset/ype-5197-bible-card-max-width.md b/.changeset/ype-5197-bible-card-max-width.md new file mode 100644 index 00000000..00c3e3ab --- /dev/null +++ b/.changeset/ype-5197-bible-card-max-width.md @@ -0,0 +1,5 @@ +--- +'@youversion/platform-react-ui': minor +--- + +`BibleCard` now caps its painted shell at 700px by default, or at a pixel `maxWidth`. Scripture fills that shell. Pass `maxWidth="100%"` for a full-bleed shell; that path keeps the 600px inner column, and scripture fills the column. Full-bleed hosts must pass `"100%"`. `VerseOfTheDay` and `BibleReader` are unchanged. diff --git a/.lintstagedrc.json b/.lintstagedrc.json deleted file mode 100644 index 720dfe52..00000000 --- a/.lintstagedrc.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "*.{js,jsx,ts,tsx}": ["oxlint --fix", "prettier --write"], - "*.{json,md}": ["prettier --write"] -} diff --git a/.lintstagedrc.mjs b/.lintstagedrc.mjs new file mode 100644 index 00000000..f295fc9f --- /dev/null +++ b/.lintstagedrc.mjs @@ -0,0 +1,22 @@ +const oxlintSkipped = (file) => { + const rel = file.replaceAll('\\', '/') + return ( + rel.includes('/.storybook/') || + rel.includes('/scripts/') || + rel.includes('/tools/oxlint/anti-slop/') || + /\.config\.(js|cjs|mjs|ts)$/.test(rel) + ) +} + +const quoted = (files) => files.map((file) => JSON.stringify(file)).join(' ') + +export default { + '*.{js,jsx,ts,tsx}': (files) => { + const lintable = files.filter((file) => !oxlintSkipped(file)) + return [ + ...(lintable.length > 0 ? [`oxlint --fix ${quoted(lintable)}`] : []), + `prettier --write ${quoted(files)}`, + ] + }, + '*.{json,md}': 'prettier --write', +} diff --git a/package.json b/package.json index 7c08e274..599dcf40 100644 --- a/package.json +++ b/package.json @@ -35,7 +35,8 @@ "analyze:select": "node scripts/analyze-select.mjs", "generate:i18n": "pnpm --filter @youversion/platform-react-ui generate:i18n", "check:i18n": "node scripts/check-i18n-parity.mjs", - "test:ci-scripts": "bash .github/scripts/check-locale-ownership.test.sh" + "test:ci-scripts": "bash .github/scripts/check-locale-ownership.test.sh", + "storybook": "pnpm --filter @youversion/platform-react-ui storybook" }, "devDependencies": { "@changesets/cli": "2.29.7", diff --git a/packages/ui/.storybook/main.ts b/packages/ui/.storybook/main.ts index 7127b676..ac93bb0f 100644 --- a/packages/ui/.storybook/main.ts +++ b/packages/ui/.storybook/main.ts @@ -20,6 +20,12 @@ const config: StorybookConfig = { { name: '@storybook/addon-coverage', options: { istanbul: { include: ['**/stories/**'] } } }, ], framework: '@storybook/react-vite', + // Official Storybook default. Storybook 10.4+ lazy-loads + // react-docgen-typescript, so this option is enough to keep the + // TypeScript 7 compiler-API crash off the React preset. + typescript: { + reactDocgen: 'react-docgen', + }, staticDirs: ['../public'], // This is for Storybook mock service worker viteFinal: (config) => { config.define = { ...config.define, __YV_STYLES__: yvStyles }; diff --git a/packages/ui/package.json b/packages/ui/package.json index 651ed675..3c3476d4 100644 --- a/packages/ui/package.json +++ b/packages/ui/package.json @@ -75,10 +75,10 @@ "@internal/tsconfig": "workspace:*", "@mdx-js/react": "^3.1.1", "@storybook/addon-coverage": "^3.0.0", - "@storybook/addon-docs": "10.3.5", - "@storybook/addon-onboarding": "10.3.5", - "@storybook/addon-vitest": "10.3.5", - "@storybook/react-vite": "10.3.5", + "@storybook/addon-docs": "10.5.10", + "@storybook/addon-onboarding": "10.5.10", + "@storybook/addon-vitest": "10.5.10", + "@storybook/react-vite": "10.5.10", "@tailwindcss/cli": "4.1.15", "@testing-library/jest-dom": "6.9.1", "@testing-library/react": "16.3.0", @@ -95,7 +95,7 @@ "msw": "2.13.4", "msw-storybook-addon": "2.0.7", "playwright": "1.56.1", - "storybook": "10.3.5", + "storybook": "10.5.10", "tailwindcss": "4.1.15", "tsup": "8.5.0", "typescript": "7.0.2", diff --git a/packages/ui/src/components/bible-card.stories.tsx b/packages/ui/src/components/bible-card.stories.tsx index 61de60d9..dec2b4e0 100644 --- a/packages/ui/src/components/bible-card.stories.tsx +++ b/packages/ui/src/components/bible-card.stories.tsx @@ -32,6 +32,10 @@ const meta = { control: 'boolean', description: 'toggle version picker', }, + maxWidth: { + description: + 'Painted section max-width. A number is CSS px (default 700). Pass "100%" for full-bleed; that path keeps the 600px inner column. Scripture fills the inner column (the card lifts the 65ch renderer measure).', + }, }, } satisfies Meta; @@ -61,6 +65,7 @@ export const WideContainer: Story = { args: { reference: 'LUK.1.39-45', versionId: 111, + maxWidth: '100%', }, tags: ['integration'], parameters: { diff --git a/packages/ui/src/components/bible-card.test.tsx b/packages/ui/src/components/bible-card.test.tsx index c34fcd14..164f0e33 100644 --- a/packages/ui/src/components/bible-card.test.tsx +++ b/packages/ui/src/components/bible-card.test.tsx @@ -4,7 +4,7 @@ import { describe, it, expect, vi, beforeEach, afterEach } from 'vitest'; import { render, act, within, waitFor } from '@testing-library/react'; import userEvent from '@testing-library/user-event'; -import { requireHtmlButton } from '@/test/dom-stubs'; +import { requireHtmlButton, requireHtmlElement } from '@/test/dom-stubs'; import { HookOverrideProvider } from '@/test/hook-overrides'; import { BibleCard } from './bible-card'; import type { FootnoteData } from './verse'; @@ -64,6 +64,8 @@ function renderCard( versionId?: number; highlights?: Highlight[]; onVersionChange?: (id: number) => void; + maxWidth?: number | '100%'; + hostWidth?: number; } = {}, ) { const { @@ -72,8 +74,10 @@ function renderCard( versionId = 3034, highlights, onVersionChange, + maxWidth, + hostWidth, } = extra; - return render( + const card = ( idleVersion(), @@ -86,9 +90,18 @@ function renderCard( onFootnotePress={onFootnotePress} highlights={highlights} onVersionChange={onVersionChange} + maxWidth={maxWidth} /> - , + ); + return render(hostWidth === undefined ? card :
{card}
); +} + +function cardShell(container: HTMLElement) { + return { + section: requireHtmlElement(container.querySelector('section')), + inner: requireHtmlElement(container.querySelector('section > div')), + }; } const YELLOW = 'fffe00'; @@ -161,24 +174,69 @@ describe('BibleCard - Delayed spinner', () => { ); }); - it('should let the card fill its container while centering the content group', () => { + it('should hide inline verse numbers in the bible renderer', () => { const { container } = renderCard(passageResult({ passage: mockPassage, loading: false })); - const card = container.querySelector('section'); - const contentGroup = container.querySelector('section > div'); + const bibleRenderer = container.querySelector('[data-slot="yv-bible-renderer"]'); + + expect(bibleRenderer).toHaveAttribute('data-show-verse-numbers', 'false'); + }); +}); + +describe('BibleCard - maxWidth', () => { + const loaded = passageResult({ passage: mockPassage, loading: false }); + + it('omitting maxWidth caps the painted section at 700px and lets the inner column fill', () => { + const { container } = renderCard(loaded); + const { section, inner } = cardShell(container); const bibleTextView = container.querySelector('[data-slot="yv-bible-renderer"]')?.parentElement; - expect(card).toHaveClass('yv:w-full'); - expect(card).not.toHaveClass('yv:max-w-md'); - expect(card).toHaveClass('yv:box-border'); - expect(contentGroup).toHaveClass('yv:card-content'); + expect(section).toHaveClass('yv:w-full'); + expect(section).toHaveClass('yv:p-6'); + expect(section).toHaveClass('yv:box-border'); + expect(section).not.toHaveClass('yv:max-w-md'); + expect(section).toHaveStyle({ maxWidth: '700px' }); + expect(inner).toHaveClass('yv:w-full'); + expect(inner).not.toHaveClass('yv:card-content'); + expect(inner).not.toHaveStyle({ maxWidth: '600px' }); expect(bibleTextView).not.toHaveClass('yv:max-w-[600px]'); + expect(section.style.getPropertyValue('--yv-reader-max-width')).toBe('none'); }); - it('should hide inline verse numbers in the bible renderer', () => { - const { container } = renderCard(passageResult({ passage: mockPassage, loading: false })); - const bibleRenderer = container.querySelector('[data-slot="yv-bible-renderer"]'); + it('uses a number maxWidth as the section cap and lets the inner column fill', () => { + const { container } = renderCard(loaded, { maxWidth: 480 }); + const { section, inner } = cardShell(container); - expect(bibleRenderer).toHaveAttribute('data-show-verse-numbers', 'false'); + expect(section).toHaveClass('yv:w-full'); + expect(section).toHaveStyle({ maxWidth: '480px' }); + expect(inner).toHaveClass('yv:w-full'); + expect(inner).not.toHaveClass('yv:card-content'); + expect(inner).not.toHaveStyle({ maxWidth: '600px' }); + expect(section.style.getPropertyValue('--yv-reader-max-width')).toBe('none'); + }); + + it('keeps the 600px inner column when maxWidth is 100%', () => { + const { container } = renderCard(loaded, { maxWidth: '100%' }); + const { section, inner } = cardShell(container); + + expect(section).toHaveClass('yv:w-full'); + expect(section).toHaveStyle({ maxWidth: '100%' }); + expect(inner).toHaveClass('yv:card-content'); + expect(inner).not.toHaveStyle({ maxWidth: 'none' }); + expect(section.style.getPropertyValue('--yv-reader-max-width')).toBe('none'); + }); + + it('still fills a parent that is narrower than the section cap', () => { + const { container } = renderCard(loaded, { hostWidth: 400 }); + const host = container.firstElementChild; + const { section, inner } = cardShell(container); + + expect(host).toHaveStyle({ width: '400px' }); + expect(section.parentElement).toBe(host); + expect(section).toHaveClass('yv:w-full'); + expect(section).toHaveStyle({ maxWidth: '700px' }); + expect(inner).toHaveClass('yv:w-full'); + expect(inner).not.toHaveClass('yv:card-content'); + expect(section.style.getPropertyValue('--yv-reader-max-width')).toBe('none'); }); }); diff --git a/packages/ui/src/components/bible-card.tsx b/packages/ui/src/components/bible-card.tsx index 22faa4e1..b8ad0d62 100644 --- a/packages/ui/src/components/bible-card.tsx +++ b/packages/ui/src/components/bible-card.tsx @@ -1,3 +1,4 @@ +import type { CSSProperties } from 'react'; import { usePassage, useVersion, useTheme } from '@youversion/platform-react-hooks'; import { DEFAULT_LICENSE_FREE_BIBLE_VERSION, type Highlight } from '@youversion/platform-core'; import { useTranslation } from 'react-i18next'; @@ -41,6 +42,18 @@ export type BibleCardProps = { * references paint the whole chapter. */ highlights?: Highlight[]; + /** + * Caps the painted `
` shell. A number is CSS pixels. `'100%'` fills + * the parent (Come and See / full-bleed) and keeps the 600px inner column. + * Omit for 700. Full-bleed hosts must pass `'100%'`. + * The section lifts the Bible renderer `65ch` measure so scripture fills + * that inner column. + */ + maxWidth?: number | '100%'; +}; + +type BibleCardSectionStyle = CSSProperties & { + '--yv-reader-max-width': 'none'; }; /** @@ -129,6 +142,8 @@ function BibleCardFooter({ copyright }: { copyright?: string | null }): React.Re ); } +const BIBLE_CARD_DEFAULT_MAX_WIDTH_PX = 700; + export function BibleCard({ reference, versionId: controlledVersionId, @@ -139,6 +154,7 @@ export function BibleCard({ onVersionPickerPress, onFootnotePress, highlights, + maxWidth = BIBLE_CARD_DEFAULT_MAX_WIDTH_PX, }: BibleCardProps): React.ReactNode { // Controlled only when both versionId + onVersionChange are provided. // versionId alone seeds uncontrolled state, preserving backwards compatibility @@ -167,14 +183,21 @@ export function BibleCard({ const isRefetching = passageLoading && passage !== null; const showSpinner = useDelayedLoading(isRefetching); + const sectionStyle: BibleCardSectionStyle = { + maxWidth: maxWidth === '100%' ? '100%' : `${maxWidth}px`, + marginInline: 'auto', + '--yv-reader-max-width': 'none', + }; return (
-
+ {/* Default/number: fill the shell. Keep shared card-content (600px) only for full-bleed. */} +
{/* The error branch stays separate rather than folding into the loading diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 94618a15..6aa4124b 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -279,17 +279,17 @@ importers: specifier: ^3.0.0 version: 3.0.0(vite@7.3.3(@types/node@24.11.0)(jiti@2.6.1)(lightningcss@1.31.1)(terser@5.44.0)(yaml@2.8.1)) '@storybook/addon-docs': - specifier: 10.3.5 - version: 10.3.5(@types/react@19.1.2)(esbuild@0.25.9)(rollup@4.50.1)(storybook@10.3.5(@testing-library/dom@10.4.1)(prettier@3.6.2)(react-dom@19.1.2(react@19.1.2))(react@19.1.2))(vite@7.3.3(@types/node@24.11.0)(jiti@2.6.1)(lightningcss@1.31.1)(terser@5.44.0)(yaml@2.8.1)) + specifier: 10.5.10 + version: 10.5.10(@types/react-dom@19.1.2(@types/react@19.1.2))(@types/react@19.1.2)(esbuild@0.27.7)(rollup@4.50.1)(storybook@10.5.10(@types/react@19.1.2)(prettier@3.6.2)(react@19.1.2))(vite@7.3.3(@types/node@24.11.0)(jiti@2.6.1)(lightningcss@1.31.1)(terser@5.44.0)(yaml@2.8.1)) '@storybook/addon-onboarding': - specifier: 10.3.5 - version: 10.3.5(storybook@10.3.5(@testing-library/dom@10.4.1)(prettier@3.6.2)(react-dom@19.1.2(react@19.1.2))(react@19.1.2)) + specifier: 10.5.10 + version: 10.5.10(storybook@10.5.10(@types/react@19.1.2)(prettier@3.6.2)(react@19.1.2)) '@storybook/addon-vitest': - specifier: 10.3.5 - version: 10.3.5(@vitest/browser-playwright@4.0.4)(@vitest/browser@4.0.4(msw@2.13.4(@types/node@24.11.0)(typescript@7.0.2))(vite@7.3.3(@types/node@24.11.0)(jiti@2.6.1)(lightningcss@1.31.1)(terser@5.44.0)(yaml@2.8.1))(vitest@4.0.4))(@vitest/runner@4.0.4)(react-dom@19.1.2(react@19.1.2))(react@19.1.2)(storybook@10.3.5(@testing-library/dom@10.4.1)(prettier@3.6.2)(react-dom@19.1.2(react@19.1.2))(react@19.1.2))(vitest@4.0.4) + specifier: 10.5.10 + version: 10.5.10(@vitest/browser-playwright@4.0.4)(@vitest/browser@4.0.4(msw@2.13.4(@types/node@24.11.0)(typescript@7.0.2))(vite@7.3.3(@types/node@24.11.0)(jiti@2.6.1)(lightningcss@1.31.1)(terser@5.44.0)(yaml@2.8.1))(vitest@4.0.4))(@vitest/runner@4.0.4)(react@19.1.2)(storybook@10.5.10(@types/react@19.1.2)(prettier@3.6.2)(react@19.1.2))(vitest@4.0.4) '@storybook/react-vite': - specifier: 10.3.5 - version: 10.3.5(esbuild@0.25.9)(react-dom@19.1.2(react@19.1.2))(react@19.1.2)(rollup@4.50.1)(storybook@10.3.5(@testing-library/dom@10.4.1)(prettier@3.6.2)(react-dom@19.1.2(react@19.1.2))(react@19.1.2))(typescript@7.0.2)(vite@7.3.3(@types/node@24.11.0)(jiti@2.6.1)(lightningcss@1.31.1)(terser@5.44.0)(yaml@2.8.1)) + specifier: 10.5.10 + version: 10.5.10(@types/react-dom@19.1.2(@types/react@19.1.2))(@types/react@19.1.2)(esbuild@0.27.7)(react-dom@19.1.2(react@19.1.2))(react@19.1.2)(rollup@4.50.1)(storybook@10.5.10(@types/react@19.1.2)(prettier@3.6.2)(react@19.1.2))(typescript@7.0.2)(vite@7.3.3(@types/node@24.11.0)(jiti@2.6.1)(lightningcss@1.31.1)(terser@5.44.0)(yaml@2.8.1)) '@tailwindcss/cli': specifier: 4.1.15 version: 4.1.15 @@ -339,8 +339,8 @@ importers: specifier: 1.56.1 version: 1.56.1 storybook: - specifier: 10.3.5 - version: 10.3.5(@testing-library/dom@10.4.1)(prettier@3.6.2)(react-dom@19.1.2(react@19.1.2))(react@19.1.2) + specifier: 10.5.10 + version: 10.5.10(@types/react@19.1.2)(prettier@3.6.2)(react@19.1.2) tailwindcss: specifier: 4.1.15 version: 4.1.15 @@ -835,15 +835,33 @@ packages: peerDependencies: '@noble/ciphers': ^1.0.0 + '@emnapi/core@1.11.0': + resolution: {integrity: sha512-l9Oo58x0HOP5znGzVhYW9U3e5wVuA4LAZU2AGezTmkhO1CgQRFDhDg4nneHsu/t3WniXg9QrG2nIXL/ZS8ln8Q==} + '@emnapi/core@1.5.0': resolution: {integrity: sha512-sbP8GzB1WDzacS8fgNPpHlp6C9VZe+SJP3F90W9rLemaQj2PzIuTEl1qDOYQf58YIpyjViI24y9aPWCjEzY2cg==} + '@emnapi/core@1.9.2': + resolution: {integrity: sha512-UC+ZhH3XtczQYfOlu3lNEkdW/p4dsJ1r/bP7H8+rhao3TTTMO1ATq/4DdIi23XuGoFY+Cz0JmCbdVl0hz9jZcA==} + + '@emnapi/runtime@1.11.0': + resolution: {integrity: sha512-55coeOFKHv1ywEcUXJtWU5f+Jr/W5tZDvZig8DLKSwUN1JpROQ4rk/SNOQiFWmaR/VKF4zuFyW1B8JduOSv6Pg==} + '@emnapi/runtime@1.5.0': resolution: {integrity: sha512-97/BJ3iXHww3djw6hYIfErCZFee7qCtrneuLa20UXFCOTCfBM2cvQHjWJ2EG0s0MtdNwInarqCTz35i4wWXHsQ==} + '@emnapi/runtime@1.9.2': + resolution: {integrity: sha512-3U4+MIWHImeyu1wnmVygh5WlgfYDtyf0k8AbLhMFxOipihf6nrWC4syIm/SwEeec0mNSafiiNnMJwbza/Is6Lw==} + '@emnapi/wasi-threads@1.1.0': resolution: {integrity: sha512-WI0DdZ8xFSbgMjR1sFsKABJ/C5OnRrjT06JXbZKexJGrDuPTzZdDYfFlsgcCXCyf+suG5QU2e/y1Wo2V/OapLQ==} + '@emnapi/wasi-threads@1.2.1': + resolution: {integrity: sha512-uTII7OYF+/Mes/MrcIOYp5yOtSMLBWSIoLPpcgwipoiKbli6k322tcoFsxoIIxPDqW01SQGAgko4EzZi2BNv2w==} + + '@emnapi/wasi-threads@1.2.2': + resolution: {integrity: sha512-c95qOXkHdydNKhscBTebqEC1CVAZpyqOfVfBzQ1qgzyl3gfeldUjIggDbIZgDKsHLgnsM+igH7TJ/eAasaVuMA==} + '@esbuild/aix-ppc64@0.25.9': resolution: {integrity: sha512-OaGtL73Jck6pBKjNIe24BnFE6agGl+6KxDtTfHhy1HmhthfKouEcOhqpSL64K4/0WCtbKFLOdzD/44cJ4k9opA==} engines: {node: '>=18'} @@ -1365,6 +1383,13 @@ packages: '@napi-rs/wasm-runtime@1.0.7': resolution: {integrity: sha512-SeDnOO0Tk7Okiq6DbXmmBODgOAb9dp9gjlphokTUxmt8U3liIP1ZsozBahH69j/RJv+Rfs6IwUKHTgQYJ/HBAw==} + '@napi-rs/wasm-runtime@1.2.3': + resolution: {integrity: sha512-UMduMbqO5s5zF2NkNacMT/yK5Y5QiKvWr2+50bzIIxFDwVJ2h49b+oyjaCGPhJxd2/gC2x39EHv/gHVuu36x2Q==} + engines: {node: ^20.19.0 || ^22.13.0 || >=23.5.0} + peerDependencies: + '@emnapi/core': ^1.7.1 || ^2.0.0-alpha.4 + '@emnapi/runtime': ^1.7.1 || ^2.0.0-alpha.4 + '@noble/ciphers@1.3.0': resolution: {integrity: sha512-2I0gnIVPtfnMw9ee9h1dJG7tp81+8Ob3OJb3Mv37rx5L40/b0i7djjCVvGOVqc9AEIQyvyu1i6ypKdFw8R8gQw==} engines: {node: ^14.21.3 || >=16} @@ -1401,99 +1426,327 @@ packages: '@open-draft/until@2.1.0': resolution: {integrity: sha512-U69T3ItWHvLwGg5eJ0n3I62nWuE6ilHlmz7zM0npLBRvPRd7e6NYmg54vvRtP5mZG7kZqZCFVdsTWo7BPtBujg==} + '@oxc-parser/binding-android-arm-eabi@0.127.0': + resolution: {integrity: sha512-0LC7ye4hvqbIKxAzThzvswgHLFu2AURKzYLeSVvLdu2TBOYWQDmHnTqPLeA597BcUCxiLqLsS4CJ5uoI5WYWCQ==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm] + os: [android] + + '@oxc-parser/binding-android-arm64@0.127.0': + resolution: {integrity: sha512-b5jtVTH6AU5CJXHNdj7Jj9IEiR9yVjjnwHzPJhGyHGPdcsZSzBCkS9GBbV33niRMvKthDwQRFRJfI4a+k4PvYg==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm64] + os: [android] + + '@oxc-parser/binding-darwin-arm64@0.127.0': + resolution: {integrity: sha512-obCE8B7ISKkJidjlhv9xRGJPOSDG2Yu6PRga9Ruaz35uintHxbp1Ki/Yc71wx4rj3Edrm0a1kzG1TAwit0wFpg==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm64] + os: [darwin] + + '@oxc-parser/binding-darwin-x64@0.127.0': + resolution: {integrity: sha512-JL6Xb5IwPQT8rUzlpsX7E+AgfcdNklXNPFp8pjCQQ5MQOQo5rtEB2ui+3Hgg9Sn7Y9Egj6YOLLiHhLpdAe12Aw==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [x64] + os: [darwin] + + '@oxc-parser/binding-freebsd-x64@0.127.0': + resolution: {integrity: sha512-SDQ/3MQFw58fqQz3Z1PhSKFF3JoCF4gmlNjziDm8X02tTahCw0qJbd7FGPDKw1i4VTBZene9JPyC3mHtSvi+wA==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [x64] + os: [freebsd] + + '@oxc-parser/binding-linux-arm-gnueabihf@0.127.0': + resolution: {integrity: sha512-Av+D1MIqzV0YMGPT9we2SIZaMKD7Cxs4CvXSx/yxaWHewZjYEjScpOf5igc8IILASViw4WTnjlwUdI1KzVtDHQ==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm] + os: [linux] + + '@oxc-parser/binding-linux-arm-musleabihf@0.127.0': + resolution: {integrity: sha512-Cs2fdJ8cPpFdeebj6p4dag8A4+56hPvZ0AhQQzlaLswGz1tz7bXt1nETLeorrM9+AMcWFFkqxcXwDGfTVidY8g==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm] + os: [linux] + + '@oxc-parser/binding-linux-arm64-gnu@0.127.0': + resolution: {integrity: sha512-qdOfTcT6SY8gsJrrV92uyEUyjqMGPpIB5JZUG6QN5dukYd+7/j0kX6MwK1DgQj39jtUYixxPiaRUiEN1+0CXgQ==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm64] + os: [linux] + libc: [glibc] + + '@oxc-parser/binding-linux-arm64-musl@0.127.0': + resolution: {integrity: sha512-EoTCZneNFU/P2qrpEM+RHmQwt+CvDkyGESG6qhr7KaegXLZwePfbrkCDfAk8/rhxbDUVGsZILX+2tqPzFtoFWA==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm64] + os: [linux] + libc: [musl] + + '@oxc-parser/binding-linux-ppc64-gnu@0.127.0': + resolution: {integrity: sha512-zALjmZYgxFLHjXeudcDF0xFGNydTAtkAeXAr2EuC17ywCyFxcmQra4w0BMde0Yi/re4Bi4iwEoEXtYN7l6eBLQ==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [ppc64] + os: [linux] + libc: [glibc] + + '@oxc-parser/binding-linux-riscv64-gnu@0.127.0': + resolution: {integrity: sha512-fPP8M6zQLS7Jz7o9d5ArUSuAuSK3e+WCYVrCpdzeCOejidtZExJ9tjhDrAd3HEPqARBCPmdpqxESPFqy44vkBQ==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [riscv64] + os: [linux] + libc: [glibc] + + '@oxc-parser/binding-linux-riscv64-musl@0.127.0': + resolution: {integrity: sha512-7IcC4Ao02oGpfnjt+X/oF4U2mllo2qoSkw5xxiXNKL9MCTsTiAC6616beOuehdxGcnz1bRoPC1RQ2f1GQDdN+g==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [riscv64] + os: [linux] + libc: [musl] + + '@oxc-parser/binding-linux-s390x-gnu@0.127.0': + resolution: {integrity: sha512-pbXIhiNFHoqWeqDNLiJ9JkpHz1IM9k4DXa66x+1GTWMG7iLxtkXgE53iiuKSXwmk3zIYmaPVfBvgcAhS583K4Q==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [s390x] + os: [linux] + libc: [glibc] + + '@oxc-parser/binding-linux-x64-gnu@0.127.0': + resolution: {integrity: sha512-MYCguB9RvBvlSd6gbuNI7QwiLoCCAlGnlRJFPrzLI6U1/9wkC/WK6LtBAUln55H1Ctqw45PWmqrobKoMhsYQzQ==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [x64] + os: [linux] + libc: [glibc] + + '@oxc-parser/binding-linux-x64-musl@0.127.0': + resolution: {integrity: sha512-5eY0B/bxf1xIUxb4NOTvOI3KWtBQfPWYyKAzgcrCt0mDibSZygVpO1Pz8bkeiSZ5Jj9+M09dkggG3H8I5d0Uyg==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [x64] + os: [linux] + libc: [musl] + + '@oxc-parser/binding-openharmony-arm64@0.127.0': + resolution: {integrity: sha512-Gld0ajrFTUXNtdw20fVBuTQx66FA75nIVg+//pPfR3sXkuABB4mTBhl3r9JNzrJpgW//qiwxf0nWXUWGJSL3UQ==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm64] + os: [openharmony] + + '@oxc-parser/binding-wasm32-wasi@0.127.0': + resolution: {integrity: sha512-T6KVD7rhLzFlwGRXMnxUFfkCZD8FHnb968wVXW1mXzgRFc5RNXOBY2mPPDZ77x5Ln76ltLMgtPg0cOkU1NSrEQ==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [wasm32] + + '@oxc-parser/binding-win32-arm64-msvc@0.127.0': + resolution: {integrity: sha512-Ujvw4X+LD1CCGULcsQcvb4YNVoBGqt+JHgNNzGGaCImELiZLk477ifUH53gIbE7EKd933NdTi25JWEr9K2HwXw==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm64] + os: [win32] + + '@oxc-parser/binding-win32-ia32-msvc@0.127.0': + resolution: {integrity: sha512-0cwxKO7KHQQQfo4Uf4B2SQrhgm+cJaP9OvFFhx52Tkg4bezsacu83GB2/In5bC415Ueeym+kXdnge/57rbSfTw==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [ia32] + os: [win32] + + '@oxc-parser/binding-win32-x64-msvc@0.127.0': + resolution: {integrity: sha512-rOrnSQSCbhI2kowr9XxE7m9a8oQXnBHjnS6j95LxxAnEZ0+Fz20WlRXG4ondQb+ejjt2KOsa65sE6++L6kUd+w==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [x64] + os: [win32] + + '@oxc-project/types@0.127.0': + resolution: {integrity: sha512-aIYXQBo4lCbO4z0R3FHeucQHpF46l2LbMdxRvqvuRuW2OxdnSkcng5B8+K12spgLDj93rtN3+J2Vac/TIO+ciQ==} + '@oxc-resolver/binding-android-arm-eabi@11.12.0': resolution: {integrity: sha512-/IfGWLNdmS1kVYM2g+Xw4qXNWtCPZ/i5YMprflA8FC3vAjT4N0VucQcDxUPHxatQwre4qnhbFFWqRa1mz6Cgkw==} cpu: [arm] os: [android] + '@oxc-resolver/binding-android-arm-eabi@11.21.2': + resolution: {integrity: sha512-xQoCRv+gKax9KTdwdaQNnAFOai8neay7g3jExDIORzhbrejwGSJaZNTdOJHR5ziLg2joMxOCMOFMo4zuxza2uQ==} + cpu: [arm] + os: [android] + '@oxc-resolver/binding-android-arm64@11.12.0': resolution: {integrity: sha512-H3Ehyinfx2VO8F5TwdaD/WY686Ia6J1H3LP0tgpNjlPGH2TrTniPERiwjqtOm/xHEef0KJvb/yfmUKLbHudhCA==} cpu: [arm64] os: [android] + '@oxc-resolver/binding-android-arm64@11.21.2': + resolution: {integrity: sha512-HF5oiE2L05yInPYCFD/4uxSrEZW4SuIfn99Y6L1xnJnzl066JR+MJs2rIdstw8A2MPlAKH+13dpFPNycjqzvGg==} + cpu: [arm64] + os: [android] + '@oxc-resolver/binding-darwin-arm64@11.12.0': resolution: {integrity: sha512-hmm+A/0WdEtIeBrPtUHoSTzJefrZkhGSrmv5pwELKiqNqd+/gctzmTlt6wWrU8BMIryDMT9fWqLSQ3+NYfqAEA==} cpu: [arm64] os: [darwin] + '@oxc-resolver/binding-darwin-arm64@11.21.2': + resolution: {integrity: sha512-UX4u49CVCAD8QZNELaW8eMGgMAGwFWYEPbvNsh+3r/gs4NX3KfpiACMVwRQT0EuH3uat9hM5Zl+Ppm9pJD8tgg==} + cpu: [arm64] + os: [darwin] + '@oxc-resolver/binding-darwin-x64@11.12.0': resolution: {integrity: sha512-g1tVu53EMfuRKs67o0PZR0+y/WXl/Tfn3d2ggjK3Hj17pQPcb9x1+Y6W7n4EjIDttwLZbCPCEr06X+aC03I45A==} cpu: [x64] os: [darwin] + '@oxc-resolver/binding-darwin-x64@11.21.2': + resolution: {integrity: sha512-J9xPx7YBkrRmJ+xl561ztnMWEc1aOyjEIxBiGX1dVb3u7bGSnfObfcZk+Pd+uM0HZAPNsQ1xvD8j52A/uOSqNQ==} + cpu: [x64] + os: [darwin] + '@oxc-resolver/binding-freebsd-x64@11.12.0': resolution: {integrity: sha512-TiMatzvcVMSOiAx8sbnAw7UCfQpZDlm91ItywZrSHlQIJqDBipOmjIEYUMc2p823Y+fJ2ADL5UBjUB2kfqpedw==} cpu: [x64] os: [freebsd] + '@oxc-resolver/binding-freebsd-x64@11.21.2': + resolution: {integrity: sha512-fRlt7OvSaQkWj6+EDTVxawVxOlqJB2QSnBfkeCyK4RTvsGctbw3BiH2Tb7DzMs7bikc4BRBpvWP5zF9K8b54Zg==} + cpu: [x64] + os: [freebsd] + '@oxc-resolver/binding-linux-arm-gnueabihf@11.12.0': resolution: {integrity: sha512-zU+9UgxPIvfReqmRr/dqZt3387HPgcH0hA4u0QGE+280EFjBYYL2rxGDxK0L+keO6vc2+ITWVDXm9KIj+alofg==} cpu: [arm] os: [linux] + '@oxc-resolver/binding-linux-arm-gnueabihf@11.21.2': + resolution: {integrity: sha512-gK+vPUcPQITkGwBKpZGrcDHSlU6eDGl7AQacxS2CEKAZIBHWkOVFeJwLZ4tYnA1acJqRM5lt7yYwPCVqGHIJ7A==} + cpu: [arm] + os: [linux] + '@oxc-resolver/binding-linux-arm-musleabihf@11.12.0': resolution: {integrity: sha512-dfO1rrOeELYWD/BewMCp81k1I3pOdtAi2VCKg/A1I8z0uI4OR6cThb5dV9fpHkj7zlb0Y5iZFPe+NTbI/u1MgQ==} cpu: [arm] os: [linux] + '@oxc-resolver/binding-linux-arm-musleabihf@11.21.2': + resolution: {integrity: sha512-L/Rgas7SrOKy/z7IH+HxSFRqVO4PuLDKLEGKvnhoCBBq3UJ0YzGBou3qMzaAGgkJwsIvX2pBF+7ojzfUhLiZxQ==} + cpu: [arm] + os: [linux] + '@oxc-resolver/binding-linux-arm64-gnu@11.12.0': resolution: {integrity: sha512-JJNyN1ueryETKTUsG57+u0GDbtHKVcwcUoC6YyJmDdWE0o/3twXtHuS+F/121a2sVK8PKlROqGAev+STx3AuuQ==} cpu: [arm64] os: [linux] libc: [glibc] + '@oxc-resolver/binding-linux-arm64-gnu@11.21.2': + resolution: {integrity: sha512-CUEYvlX1Fk7E9kUMzuswru1J9HLxMwnpDeQGjQuI4ZH+iNCoa2X9T+pvyzrbsgl7WnIeTFTlNlHsRfVdf5g9/g==} + cpu: [arm64] + os: [linux] + libc: [glibc] + '@oxc-resolver/binding-linux-arm64-musl@11.12.0': resolution: {integrity: sha512-rQHoxL0H0WwYUuukPUscLyzWwTl/hyogptYsY+Ye6AggJEOuvgJxMum2glY7etGIGOXxrfjareHnNO1tNY7WYg==} cpu: [arm64] os: [linux] libc: [musl] + '@oxc-resolver/binding-linux-arm64-musl@11.21.2': + resolution: {integrity: sha512-ViN1ZibQyxwC67GpoP33oo+S9UyUnkog13vzQb9+v9bCNvrVzJuk0MRdacjtv/9xfRMVF/eqHFyl8YOeykI10Q==} + cpu: [arm64] + os: [linux] + libc: [musl] + '@oxc-resolver/binding-linux-ppc64-gnu@11.12.0': resolution: {integrity: sha512-XPUZSctO+FrC0314Tcth+GrTtzy2yaYqyl8weBMAbKFMwuV8VnR2SHg9dmtI9vkukmM3auOLj0Kqjpl3YXwXiw==} cpu: [ppc64] os: [linux] libc: [glibc] + '@oxc-resolver/binding-linux-ppc64-gnu@11.21.2': + resolution: {integrity: sha512-CU1sCqWnhGqYD5I1HedHk5pujrn7ssDkNB/AEQd/pd3D/EojVSgJUlpbafwIbyhia3PgIfkvdFpRPWSALzVumA==} + cpu: [ppc64] + os: [linux] + libc: [glibc] + '@oxc-resolver/binding-linux-riscv64-gnu@11.12.0': resolution: {integrity: sha512-AmMjcP+6zHLF1JNq/p3yPEcXmZW/Xw5Xl19Zd0eBCSyGORJRuUOkcnyC8bwMO43b/G7PtausB83fclnFL5KZ3w==} cpu: [riscv64] os: [linux] libc: [glibc] + '@oxc-resolver/binding-linux-riscv64-gnu@11.21.2': + resolution: {integrity: sha512-jWVyZtIHca4Gb96x7dag+y69vlei7ffjrsveLkmf2ZhqEAz6ZSBnY1GWvgZUaZlwZP62A3xD092BW97Q5VGc+g==} + cpu: [riscv64] + os: [linux] + libc: [glibc] + '@oxc-resolver/binding-linux-riscv64-musl@11.12.0': resolution: {integrity: sha512-K2/yFBqFQOKyVwQxYDAKqDtk2kS4g58aGyj/R1bvYPr2P7v7971aUG/5m2WD5u2zSqWBfu1o4PdhX0lsqvA3vQ==} cpu: [riscv64] os: [linux] libc: [musl] + '@oxc-resolver/binding-linux-riscv64-musl@11.21.2': + resolution: {integrity: sha512-LF29obFqNgBUgDX7rmUK7M4D0JQG5LxhYzn3xXmECcHU9aQAdWG7NiY052qybtesEdwHQXKNTWYQ7mTsybNvWg==} + cpu: [riscv64] + os: [linux] + libc: [musl] + '@oxc-resolver/binding-linux-s390x-gnu@11.12.0': resolution: {integrity: sha512-uSl4jo78tONGZtwsOA4ldT/OI7/hoHJhSMlGYE4Z/lzwMjkAaBdX4soAK5P/rL+U2yCJlRMnnoUckhXlZvDbSw==} cpu: [s390x] os: [linux] libc: [glibc] + '@oxc-resolver/binding-linux-s390x-gnu@11.21.2': + resolution: {integrity: sha512-+NYcm+cCHBbtdQQ3A4phQTSuVRYnNHz7wrl9XRAPEovcdoqi0mb1K5ZOl+jN54ZD+q1zz3V0vltbFJmzecJKmw==} + cpu: [s390x] + os: [linux] + libc: [glibc] + '@oxc-resolver/binding-linux-x64-gnu@11.12.0': resolution: {integrity: sha512-YjL8VAkbPyQ1kUuR6pOBk1O+EkxOoLROTa+ia1/AmFLuXYNltLGI1YxOY14i80cKpOf0Z59IXnlrY3coAI9NDQ==} cpu: [x64] os: [linux] libc: [glibc] + '@oxc-resolver/binding-linux-x64-gnu@11.21.2': + resolution: {integrity: sha512-UQqZDdG2r2HhAOsZEgufkIWHPQ886IUyuJQkoZByvzhW8j51R4UNzGBJFkTiTnLhQnggwJRdJgFWK4uY6ZVIMw==} + cpu: [x64] + os: [linux] + libc: [glibc] + '@oxc-resolver/binding-linux-x64-musl@11.12.0': resolution: {integrity: sha512-qpHPU0qqeJXh7cPzA+I+WWA6RxtRArfmSrhTXidbiQ08G5A1e55YQwExWkitB2rSqN6YFxnpfhHKo9hyhpyfSg==} cpu: [x64] os: [linux] libc: [musl] + '@oxc-resolver/binding-linux-x64-musl@11.21.2': + resolution: {integrity: sha512-3Q9PMRjalWkT6NZ4jfujuqTCFwoWErg3y3BnOgb544B8IMw4PktiwWOigMfOHNRLMghZeJ7hpfpZf4CP7rV7Og==} + cpu: [x64] + os: [linux] + libc: [musl] + + '@oxc-resolver/binding-openharmony-arm64@11.21.2': + resolution: {integrity: sha512-Eljeq3ndtyKhM+Es8LITi4Zl2htzuRZcrPMF3kMCsrILztvU6AjZ3FuEhHHKobPUB9rMpzLpJP5bDqXI7r+iog==} + cpu: [arm64] + os: [openharmony] + '@oxc-resolver/binding-wasm32-wasi@11.12.0': resolution: {integrity: sha512-oqg80bERZAagWLqYmngnesE0/2miv4lST7+wiiZniD6gyb1SoRckwEkbTsytGutkudFtw7O61Pon6pNlOvyFaA==} engines: {node: '>=14.0.0'} cpu: [wasm32] + '@oxc-resolver/binding-wasm32-wasi@11.21.2': + resolution: {integrity: sha512-HGDbNsIywqc4LxU38+CTJNnB/6BF7rheWOJ259b4eE0aEnelYblC8x+1tEd63bp31fYne63RQz9Jb4yVnC7Yig==} + engines: {node: '>=14.0.0'} + cpu: [wasm32] + '@oxc-resolver/binding-win32-arm64-msvc@11.12.0': resolution: {integrity: sha512-qKH816ycEN9yR/TX91CP1/i6xyVNHKX9VEOYa3XzQROPVtcYG2F6A3ng/PhwpJvS1cmL/DlilhglZe9KWkhNjg==} cpu: [arm64] os: [win32] + '@oxc-resolver/binding-win32-arm64-msvc@11.21.2': + resolution: {integrity: sha512-iWx25CBEgH49iE9q5coEGI/jb1jl5kkCY9z6U5Og67xCkQ/WFMDc2J5U78+AE91SUxM2NqSLhJC8/PLfWnImww==} + cpu: [arm64] + os: [win32] + '@oxc-resolver/binding-win32-ia32-msvc@11.12.0': resolution: {integrity: sha512-3bgxubTlhzF6BwBnhGz5BTboarl1upuanEr6i0dncjfEcU+Z9xAOgbtA7Ip3G3EKDjE1objRKK+ny8PKJZ3b7Q==} cpu: [ia32] @@ -1504,6 +1757,11 @@ packages: cpu: [x64] os: [win32] + '@oxc-resolver/binding-win32-x64-msvc@11.21.2': + resolution: {integrity: sha512-VPoCAhKvCQTlG7vxqaBXcmuvbh77BfnGXj8g0pbvVXpm1F/R8rDVwqIWcEbMzrI1JvJlm8v7T9uMVQb6UctMRg==} + cpu: [x64] + os: [win32] + '@oxlint-tsgolint/darwin-arm64@7.0.2001': resolution: {integrity: sha512-CUJEdbSZ54+Xy9OXqOhWLTKZKV0BBiV7C2i/ygyVmXtkUNXx5YCzN8DpSSshTAKktoL7S+tnQ/ftFG/i7X896w==} cpu: [arm64] @@ -2640,23 +2898,27 @@ packages: '@storybook/addon-coverage@3.0.0': resolution: {integrity: sha512-ADXpeAXtSvyGs1BSZhtO5Bi2BUedcP6eGPcBm7w3cYSj6KTpww4epEp1lnUD4faojSBBIOI2bRa/a4NA+/zt2Q==} - '@storybook/addon-docs@10.3.5': - resolution: {integrity: sha512-WuHbxia/o5TX4Rg/IFD0641K5qId/Nk0dxhmAUNoFs5L0+yfZUwh65XOBbzXqrkYmYmcVID4v7cgDRmzstQNkA==} + '@storybook/addon-docs@10.5.10': + resolution: {integrity: sha512-06JoK3/a7FWI/6GzuidJP9iHp1/Vejboe6lzS1jW+d8ItpecriBt+oXh1VNmUM7i7PjI6pZnet+j51QnLyeOoQ==} peerDependencies: - storybook: ^10.3.5 + '@types/react': 19.1.2 + storybook: ^10.5.10 + peerDependenciesMeta: + '@types/react': + optional: true - '@storybook/addon-onboarding@10.3.5': - resolution: {integrity: sha512-s3/gIy9Tqxji27iclLY+KSk8kGeow1JxXMl1lPLyu8n6XVvv+tFrUPhAvUTs+fVenG6JQEWc0uzpYBdFRWbMtw==} + '@storybook/addon-onboarding@10.5.10': + resolution: {integrity: sha512-Qm1JyjM1wOabeZJykSuyT8mSyZE0/WdjT5wLjOnelE31nCWCh4DsBOgj8A1QDRt+3Hijq9/AW00olowJtf+eYA==} peerDependencies: - storybook: ^10.3.5 + storybook: ^10.5.10 - '@storybook/addon-vitest@10.3.5': - resolution: {integrity: sha512-PQDeeMwoF55kvzlhFqVKOryBJskkVk71AbDh7F0y8PdRRxlGbTvIUkKXktHZWBdESo0dV6BkeVxGQ4ZpiFxirg==} + '@storybook/addon-vitest@10.5.10': + resolution: {integrity: sha512-JNQ9DSkLfxC8qqytBCej91zBExIZ7z97B410U2zgfQPki4HkI9Ffz97a15f5yhVZ79ppIrZ/ssI+WcyWn0ykXQ==} peerDependencies: '@vitest/browser': ^3.0.0 || ^4.0.0 '@vitest/browser-playwright': ^4.0.0 '@vitest/runner': ^3.0.0 || ^4.0.0 - storybook: ^10.3.5 + storybook: ^10.5.10 vitest: ^3.0.0 || ^4.0.0 peerDependenciesMeta: '@vitest/browser': @@ -2668,18 +2930,18 @@ packages: vitest: optional: true - '@storybook/builder-vite@10.3.5': - resolution: {integrity: sha512-i4KwCOKbhtlbQIbhm53+Kk7bMnxa0cwTn1pxmtA/x5wm1Qu7FrrBQV0V0DNjkUqzcSKo1CjspASJV/HlY0zYlw==} + '@storybook/builder-vite@10.5.10': + resolution: {integrity: sha512-O4GgIP0tKLRueom3EmU3OaBUHKjNYj+jkOvmTIkn3PYTiWVkCuHqSKEs4ADvRyaQuLH+peHhFe4JtkNC9KbtrQ==} peerDependencies: - storybook: ^10.3.5 + storybook: ^10.5.10 vite: 7.3.3 - '@storybook/csf-plugin@10.3.5': - resolution: {integrity: sha512-qlEzNKxOjq86pvrbuMwiGD/bylnsXk1dg7ve0j77YFjEEchqtl7qTlrXvFdNaLA89GhW6D/EV6eOCu/eobPDgw==} + '@storybook/csf-plugin@10.5.10': + resolution: {integrity: sha512-TaCLBrqVEr767+w58QDotDUiCTuE5cyRJuRcDlsKQyUIyGBv+lYD3lu8wBiVCYxgIjB/gu9HmqiC+0yx1rHzaw==} peerDependencies: esbuild: '*' rollup: '*' - storybook: ^10.3.5 + storybook: ^10.5.10 vite: 7.3.3 webpack: '*' peerDependenciesMeta: @@ -2695,35 +2957,51 @@ packages: '@storybook/global@5.0.0': resolution: {integrity: sha512-FcOqPAXACP0I3oJ/ws6/rrPT9WGhu915Cg8D02a9YxLo0DE9zI+a9A5gRGvmQ09fiWPukqI8ZAEoQEdWUKMQdQ==} - '@storybook/icons@2.0.1': - resolution: {integrity: sha512-/smVjw88yK3CKsiuR71vNgWQ9+NuY2L+e8X7IMrFjexjm6ZR8ULrV2DRkTA61aV6ryefslzHEGDInGpnNeIocg==} + '@storybook/icons@2.1.0': + resolution: {integrity: sha512-Fxh9vYpX9bQqFeHRiY8h2ApeRGDzRSMLwJwNZ/AIRqnyOKHxRKL+yFe+ctEkVJmuptRE9u1Hrn8ZZNHyfDKKNg==} peerDependencies: react: 19.1.2 - react-dom: 19.1.2 - '@storybook/react-dom-shim@10.3.5': - resolution: {integrity: sha512-Gw8R7XZm0zSUH0XAuxlQJhmizsLzyD6x00KOlP6l7oW9eQHXGfxg3seNDG3WrSAcW07iP1/P422kuiriQlOv7g==} + '@storybook/react-dom-shim@10.5.10': + resolution: {integrity: sha512-rbu62ILo/VE3iXKmu+kWXFpD1H1Lwi0f19q/x7JnDsD2dxKS9w5znLEqPIq2qxpzi/wjjIb2iUP1cRG1d/9W5A==} peerDependencies: + '@types/react': 19.1.2 + '@types/react-dom': 19.1.2 react: 19.1.2 react-dom: 19.1.2 - storybook: ^10.3.5 + storybook: ^10.5.10 + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true - '@storybook/react-vite@10.3.5': - resolution: {integrity: sha512-UB5sJHeh26bfd8sNMx2YPGYRYmErIdTRaLOT28m4bykQIa1l9IgVktsYg/geW7KsJU0lXd3oTbnUjLD+enpi3w==} + '@storybook/react-vite@10.5.10': + resolution: {integrity: sha512-xOztxefUnqKeuyvcnjspqmlDnER4cExL+liltrpdXLPJVqfFNr9lgM49FyEPajzsUVG9W/vHJWjbaQGGu1UsYQ==} peerDependencies: react: 19.1.2 react-dom: 19.1.2 - storybook: ^10.3.5 + storybook: ^10.5.10 + typescript: 7.0.2 vite: 7.3.3 + peerDependenciesMeta: + typescript: + optional: true - '@storybook/react@10.3.5': - resolution: {integrity: sha512-tpLTLaVGoA6fLK3ReyGzZUricq7lyPaV2hLPpj5wqdXLV/LpRtAHClUpNoPDYSBjlnSjL81hMZijbkGC3mA+gw==} + '@storybook/react@10.5.10': + resolution: {integrity: sha512-4MBV5e1SXIMfPynLHzr+Mp0dwGv/FW1bklWAsS4ynBOAbC98W9p/I9vqBnUctsvE3BJkhzHQQyPwMHL5tTcHVA==} peerDependencies: + '@types/react': 19.1.2 + '@types/react-dom': 19.1.2 react: 19.1.2 react-dom: 19.1.2 - storybook: ^10.3.5 + storybook: ^10.5.10 typescript: 7.0.2 peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true typescript: optional: true @@ -3031,6 +3309,9 @@ packages: '@tybys/wasm-util@0.10.1': resolution: {integrity: sha512-9tTaPJLSiejZKx+Bmog4uSubteqTvFrVrURwkmHixBo0G4seD0zUxp98E1DzUBJxLQ3NPwXrGKDiVjwx/DpPsg==} + '@tybys/wasm-util@0.10.3': + resolution: {integrity: sha512-F3fo1MYrRJYL3zER0OUOmkutjr1Vp23m7OsSgp7nq4SP6OqX6C/56XFIPAl5bt3zaBRjmW7SGz3u/6LwFpYcOg==} + '@types/argparse@1.0.38': resolution: {integrity: sha512-ebDJ9b0e702Yr7pWgB0jzm+CX4Srzz8RcXtLJDJB+BSccqMa36uyH/zUsSYao5+BD1ytv3k3rPYCq4mAE1hsXA==} @@ -4575,6 +4856,9 @@ packages: engines: {node: '>=6'} hasBin: true + jsonc-parser@3.3.1: + resolution: {integrity: sha512-HUgH65KyejrUFPvHFPbqOY0rsFip3Bo5wb4ngvdi1EpCYWUQDC5V+Y7mZws+DLkr4M//zQJoanu1SP+87Dv1oQ==} + jsonfile@4.0.0: resolution: {integrity: sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==} @@ -5100,9 +5384,16 @@ packages: outvariant@1.4.3: resolution: {integrity: sha512-+Sl2UErvtsoajRDKCE5/dBz4DIvHXQQnAxtQTF04OJxY0+DyZXSo5P5Bb7XYWOh81syohlYL24hbDwxedPUJCA==} + oxc-parser@0.127.0: + resolution: {integrity: sha512-bkgD4qHlN7WxLdX8bLXdaU54TtQtAIg/ZBAfm0aje/mo3MRDo3P0hZSgr4U7O3xfX+fQmR5AP04JS/TGcZLcFA==} + engines: {node: ^20.19.0 || >=22.12.0} + oxc-resolver@11.12.0: resolution: {integrity: sha512-zmS2q2txiB+hS2u0aiIwmvITIJN8c8ThlWoWB762Wx5nUw8WBlttp0rzt8nnuP1cGIq9YJ7sGxfsgokm+SQk5Q==} + oxc-resolver@11.21.2: + resolution: {integrity: sha512-w5tLwYN3Zo24w5EeWJjJWZOwhYqTtC8PS2B1tIt7BZUuqTIcU07sQValbDw+rq7+AuAGzOHklgK+ifsy4lpXfw==} + oxlint-tsgolint@7.0.2001: resolution: {integrity: sha512-KjK/XLcXr1DSyonKhsuFqJRiuKqcyG9j3LJ8nkOsrLzGvodBPqzHOKauy10asLMDI0sUpvb+1sxlzff3udZvfg==} hasBin: true @@ -5683,14 +5974,20 @@ packages: resolution: {integrity: sha512-UhDfHmA92YAlNnCfhmq0VeNL5bDbiZGg7sZ2IvPsXubGkiNa9EC+tUTsjBRsYUAz87btI6/1wf4XoVvQ3uRnmQ==} engines: {node: '>=18'} - storybook@10.3.5: - resolution: {integrity: sha512-uBSZu/GZa9aEIW3QMGvdQPMZWhGxSe4dyRWU8B3/Vd47Gy/XLC7tsBxRr13txmmPOEDHZR94uLuq0H50fvuqBw==} + storybook@10.5.10: + resolution: {integrity: sha512-Rz8k9ejFHsi7lbtJTaxZlhCUz4GkbJIKEoKDjXeLfr/ZhXip73E6keKxW0KH8iGeKiCqHAbJCV4YIQrxTOLiig==} hasBin: true peerDependencies: + '@types/react': 19.1.2 prettier: ^2 || ^3 + vite-plus: ^0.1.15 || ^0.2.0 peerDependenciesMeta: + '@types/react': + optional: true prettier: optional: true + vite-plus: + optional: true strict-event-emitter@0.5.1: resolution: {integrity: sha512-vMgjE/GGEPEFnhFub6pa4FmJBRBVOLpIII2hvCZ8Kzb7K0hlHo7mQv6xYrBvCL2LtAIBwFUK8wvuJgTVSQ5MFQ==} @@ -6273,6 +6570,18 @@ packages: utf-8-validate: optional: true + ws@8.21.3: + resolution: {integrity: sha512-201TZ/kPWxoPr/OKWjquZR1SWKXcvxdH+e1xrx89b3YbmzLMFCLfnaG1HFIgWzJOEWZ7MvpK++odZufgYR50Rw==} + 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 + wsl-utils@0.1.0: resolution: {integrity: sha512-h3Fbisa2nKGPxCpm89Hk33lBLsnaGBvctQopaBSOW/uIs6FTe1ATyAnKFJrzVs9vpGdsTe73WF3V4lIsk4Gacw==} engines: {node: '>=18'} @@ -6473,7 +6782,7 @@ snapshots: '@babel/generator@7.28.5': dependencies: '@babel/parser': 7.28.5 - '@babel/types': 7.28.5 + '@babel/types': 7.29.0 '@jridgewell/gen-mapping': 0.3.13 '@jridgewell/trace-mapping': 0.3.31 jsesc: 3.1.0 @@ -6530,8 +6839,8 @@ snapshots: '@babel/helper-module-imports@7.27.1': dependencies: - '@babel/traverse': 7.28.4 - '@babel/types': 7.28.4 + '@babel/traverse': 7.29.0 + '@babel/types': 7.29.0 transitivePeerDependencies: - supports-color @@ -6713,12 +7022,12 @@ snapshots: '@babel/traverse@7.28.5': dependencies: - '@babel/code-frame': 7.27.1 + '@babel/code-frame': 7.29.0 '@babel/generator': 7.28.5 '@babel/helper-globals': 7.28.0 '@babel/parser': 7.28.5 '@babel/template': 7.27.2 - '@babel/types': 7.28.5 + '@babel/types': 7.29.0 debug: 4.4.3 transitivePeerDependencies: - supports-color @@ -7074,22 +7383,54 @@ snapshots: dependencies: '@noble/ciphers': 1.3.0 + '@emnapi/core@1.11.0': + dependencies: + '@emnapi/wasi-threads': 1.2.2 + tslib: 2.8.1 + optional: true + '@emnapi/core@1.5.0': dependencies: '@emnapi/wasi-threads': 1.1.0 tslib: 2.8.1 optional: true + '@emnapi/core@1.9.2': + dependencies: + '@emnapi/wasi-threads': 1.2.1 + tslib: 2.8.1 + optional: true + + '@emnapi/runtime@1.11.0': + dependencies: + tslib: 2.8.1 + optional: true + '@emnapi/runtime@1.5.0': dependencies: tslib: 2.8.1 optional: true + '@emnapi/runtime@1.9.2': + dependencies: + tslib: 2.8.1 + optional: true + '@emnapi/wasi-threads@1.1.0': dependencies: tslib: 2.8.1 optional: true + '@emnapi/wasi-threads@1.2.1': + dependencies: + tslib: 2.8.1 + optional: true + + '@emnapi/wasi-threads@1.2.2': + dependencies: + tslib: 2.8.1 + optional: true + '@esbuild/aix-ppc64@0.25.9': optional: true @@ -7538,6 +7879,20 @@ snapshots: '@tybys/wasm-util': 0.10.1 optional: true + '@napi-rs/wasm-runtime@1.2.3(@emnapi/core@1.11.0)(@emnapi/runtime@1.11.0)': + dependencies: + '@emnapi/core': 1.11.0 + '@emnapi/runtime': 1.11.0 + '@tybys/wasm-util': 0.10.3 + optional: true + + '@napi-rs/wasm-runtime@1.2.3(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)': + dependencies: + '@emnapi/core': 1.9.2 + '@emnapi/runtime': 1.9.2 + '@tybys/wasm-util': 0.10.3 + optional: true + '@noble/ciphers@1.3.0': {} '@noble/curves@1.9.7': @@ -7569,65 +7924,192 @@ snapshots: '@open-draft/until@2.1.0': {} + '@oxc-parser/binding-android-arm-eabi@0.127.0': + optional: true + + '@oxc-parser/binding-android-arm64@0.127.0': + optional: true + + '@oxc-parser/binding-darwin-arm64@0.127.0': + optional: true + + '@oxc-parser/binding-darwin-x64@0.127.0': + optional: true + + '@oxc-parser/binding-freebsd-x64@0.127.0': + optional: true + + '@oxc-parser/binding-linux-arm-gnueabihf@0.127.0': + optional: true + + '@oxc-parser/binding-linux-arm-musleabihf@0.127.0': + optional: true + + '@oxc-parser/binding-linux-arm64-gnu@0.127.0': + optional: true + + '@oxc-parser/binding-linux-arm64-musl@0.127.0': + optional: true + + '@oxc-parser/binding-linux-ppc64-gnu@0.127.0': + optional: true + + '@oxc-parser/binding-linux-riscv64-gnu@0.127.0': + optional: true + + '@oxc-parser/binding-linux-riscv64-musl@0.127.0': + optional: true + + '@oxc-parser/binding-linux-s390x-gnu@0.127.0': + optional: true + + '@oxc-parser/binding-linux-x64-gnu@0.127.0': + optional: true + + '@oxc-parser/binding-linux-x64-musl@0.127.0': + optional: true + + '@oxc-parser/binding-openharmony-arm64@0.127.0': + optional: true + + '@oxc-parser/binding-wasm32-wasi@0.127.0': + dependencies: + '@emnapi/core': 1.9.2 + '@emnapi/runtime': 1.9.2 + '@napi-rs/wasm-runtime': 1.2.3(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2) + optional: true + + '@oxc-parser/binding-win32-arm64-msvc@0.127.0': + optional: true + + '@oxc-parser/binding-win32-ia32-msvc@0.127.0': + optional: true + + '@oxc-parser/binding-win32-x64-msvc@0.127.0': + optional: true + + '@oxc-project/types@0.127.0': {} + '@oxc-resolver/binding-android-arm-eabi@11.12.0': optional: true + '@oxc-resolver/binding-android-arm-eabi@11.21.2': + optional: true + '@oxc-resolver/binding-android-arm64@11.12.0': optional: true + '@oxc-resolver/binding-android-arm64@11.21.2': + optional: true + '@oxc-resolver/binding-darwin-arm64@11.12.0': optional: true + '@oxc-resolver/binding-darwin-arm64@11.21.2': + optional: true + '@oxc-resolver/binding-darwin-x64@11.12.0': optional: true + '@oxc-resolver/binding-darwin-x64@11.21.2': + optional: true + '@oxc-resolver/binding-freebsd-x64@11.12.0': optional: true + '@oxc-resolver/binding-freebsd-x64@11.21.2': + optional: true + '@oxc-resolver/binding-linux-arm-gnueabihf@11.12.0': optional: true + '@oxc-resolver/binding-linux-arm-gnueabihf@11.21.2': + optional: true + '@oxc-resolver/binding-linux-arm-musleabihf@11.12.0': optional: true + '@oxc-resolver/binding-linux-arm-musleabihf@11.21.2': + optional: true + '@oxc-resolver/binding-linux-arm64-gnu@11.12.0': optional: true + '@oxc-resolver/binding-linux-arm64-gnu@11.21.2': + optional: true + '@oxc-resolver/binding-linux-arm64-musl@11.12.0': optional: true + '@oxc-resolver/binding-linux-arm64-musl@11.21.2': + optional: true + '@oxc-resolver/binding-linux-ppc64-gnu@11.12.0': optional: true + '@oxc-resolver/binding-linux-ppc64-gnu@11.21.2': + optional: true + '@oxc-resolver/binding-linux-riscv64-gnu@11.12.0': optional: true + '@oxc-resolver/binding-linux-riscv64-gnu@11.21.2': + optional: true + '@oxc-resolver/binding-linux-riscv64-musl@11.12.0': optional: true + '@oxc-resolver/binding-linux-riscv64-musl@11.21.2': + optional: true + '@oxc-resolver/binding-linux-s390x-gnu@11.12.0': optional: true + '@oxc-resolver/binding-linux-s390x-gnu@11.21.2': + optional: true + '@oxc-resolver/binding-linux-x64-gnu@11.12.0': optional: true + '@oxc-resolver/binding-linux-x64-gnu@11.21.2': + optional: true + '@oxc-resolver/binding-linux-x64-musl@11.12.0': optional: true + '@oxc-resolver/binding-linux-x64-musl@11.21.2': + optional: true + + '@oxc-resolver/binding-openharmony-arm64@11.21.2': + optional: true + '@oxc-resolver/binding-wasm32-wasi@11.12.0': dependencies: '@napi-rs/wasm-runtime': 1.0.7 optional: true + '@oxc-resolver/binding-wasm32-wasi@11.21.2': + dependencies: + '@emnapi/core': 1.11.0 + '@emnapi/runtime': 1.11.0 + '@napi-rs/wasm-runtime': 1.2.3(@emnapi/core@1.11.0)(@emnapi/runtime@1.11.0) + optional: true + '@oxc-resolver/binding-win32-arm64-msvc@11.12.0': optional: true + '@oxc-resolver/binding-win32-arm64-msvc@11.21.2': + optional: true + '@oxc-resolver/binding-win32-ia32-msvc@11.12.0': optional: true '@oxc-resolver/binding-win32-x64-msvc@11.12.0': optional: true + '@oxc-resolver/binding-win32-x64-msvc@11.21.2': + optional: true + '@oxlint-tsgolint/darwin-arm64@7.0.2001': optional: true @@ -8700,32 +9182,34 @@ snapshots: - supports-color - vite - '@storybook/addon-docs@10.3.5(@types/react@19.1.2)(esbuild@0.25.9)(rollup@4.50.1)(storybook@10.3.5(@testing-library/dom@10.4.1)(prettier@3.6.2)(react-dom@19.1.2(react@19.1.2))(react@19.1.2))(vite@7.3.3(@types/node@24.11.0)(jiti@2.6.1)(lightningcss@1.31.1)(terser@5.44.0)(yaml@2.8.1))': + '@storybook/addon-docs@10.5.10(@types/react-dom@19.1.2(@types/react@19.1.2))(@types/react@19.1.2)(esbuild@0.27.7)(rollup@4.50.1)(storybook@10.5.10(@types/react@19.1.2)(prettier@3.6.2)(react@19.1.2))(vite@7.3.3(@types/node@24.11.0)(jiti@2.6.1)(lightningcss@1.31.1)(terser@5.44.0)(yaml@2.8.1))': dependencies: '@mdx-js/react': 3.1.1(@types/react@19.1.2)(react@19.1.2) - '@storybook/csf-plugin': 10.3.5(esbuild@0.25.9)(rollup@4.50.1)(storybook@10.3.5(@testing-library/dom@10.4.1)(prettier@3.6.2)(react-dom@19.1.2(react@19.1.2))(react@19.1.2))(vite@7.3.3(@types/node@24.11.0)(jiti@2.6.1)(lightningcss@1.31.1)(terser@5.44.0)(yaml@2.8.1)) - '@storybook/icons': 2.0.1(react-dom@19.1.2(react@19.1.2))(react@19.1.2) - '@storybook/react-dom-shim': 10.3.5(react-dom@19.1.2(react@19.1.2))(react@19.1.2)(storybook@10.3.5(@testing-library/dom@10.4.1)(prettier@3.6.2)(react-dom@19.1.2(react@19.1.2))(react@19.1.2)) + '@storybook/csf-plugin': 10.5.10(esbuild@0.27.7)(rollup@4.50.1)(storybook@10.5.10(@types/react@19.1.2)(prettier@3.6.2)(react@19.1.2))(vite@7.3.3(@types/node@24.11.0)(jiti@2.6.1)(lightningcss@1.31.1)(terser@5.44.0)(yaml@2.8.1)) + '@storybook/icons': 2.1.0(react@19.1.2) + '@storybook/react-dom-shim': 10.5.10(@types/react-dom@19.1.2(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.2(react@19.1.2))(react@19.1.2)(storybook@10.5.10(@types/react@19.1.2)(prettier@3.6.2)(react@19.1.2)) react: 19.1.2 react-dom: 19.1.2(react@19.1.2) - storybook: 10.3.5(@testing-library/dom@10.4.1)(prettier@3.6.2)(react-dom@19.1.2(react@19.1.2))(react@19.1.2) + storybook: 10.5.10(@types/react@19.1.2)(prettier@3.6.2)(react@19.1.2) ts-dedent: 2.2.0 + optionalDependencies: + '@types/react': 19.1.2 transitivePeerDependencies: - - '@types/react' + - '@types/react-dom' - esbuild - rollup - vite - webpack - '@storybook/addon-onboarding@10.3.5(storybook@10.3.5(@testing-library/dom@10.4.1)(prettier@3.6.2)(react-dom@19.1.2(react@19.1.2))(react@19.1.2))': + '@storybook/addon-onboarding@10.5.10(storybook@10.5.10(@types/react@19.1.2)(prettier@3.6.2)(react@19.1.2))': dependencies: - storybook: 10.3.5(@testing-library/dom@10.4.1)(prettier@3.6.2)(react-dom@19.1.2(react@19.1.2))(react@19.1.2) + storybook: 10.5.10(@types/react@19.1.2)(prettier@3.6.2)(react@19.1.2) - '@storybook/addon-vitest@10.3.5(@vitest/browser-playwright@4.0.4)(@vitest/browser@4.0.4(msw@2.13.4(@types/node@24.11.0)(typescript@7.0.2))(vite@7.3.3(@types/node@24.11.0)(jiti@2.6.1)(lightningcss@1.31.1)(terser@5.44.0)(yaml@2.8.1))(vitest@4.0.4))(@vitest/runner@4.0.4)(react-dom@19.1.2(react@19.1.2))(react@19.1.2)(storybook@10.3.5(@testing-library/dom@10.4.1)(prettier@3.6.2)(react-dom@19.1.2(react@19.1.2))(react@19.1.2))(vitest@4.0.4)': + '@storybook/addon-vitest@10.5.10(@vitest/browser-playwright@4.0.4)(@vitest/browser@4.0.4(msw@2.13.4(@types/node@24.11.0)(typescript@7.0.2))(vite@7.3.3(@types/node@24.11.0)(jiti@2.6.1)(lightningcss@1.31.1)(terser@5.44.0)(yaml@2.8.1))(vitest@4.0.4))(@vitest/runner@4.0.4)(react@19.1.2)(storybook@10.5.10(@types/react@19.1.2)(prettier@3.6.2)(react@19.1.2))(vitest@4.0.4)': dependencies: '@storybook/global': 5.0.0 - '@storybook/icons': 2.0.1(react-dom@19.1.2(react@19.1.2))(react@19.1.2) - storybook: 10.3.5(@testing-library/dom@10.4.1)(prettier@3.6.2)(react-dom@19.1.2(react@19.1.2))(react@19.1.2) + '@storybook/icons': 2.1.0(react@19.1.2) + storybook: 10.5.10(@types/react@19.1.2)(prettier@3.6.2)(react@19.1.2) optionalDependencies: '@vitest/browser': 4.0.4(msw@2.13.4(@types/node@24.11.0)(typescript@7.0.2))(vite@7.3.3(@types/node@24.11.0)(jiti@2.6.1)(lightningcss@1.31.1)(terser@5.44.0)(yaml@2.8.1))(vitest@4.0.4) '@vitest/browser-playwright': 4.0.4(msw@2.13.4(@types/node@24.11.0)(typescript@7.0.2))(playwright@1.56.1)(vite@7.3.3(@types/node@24.11.0)(jiti@2.6.1)(lightningcss@1.31.1)(terser@5.44.0)(yaml@2.8.1))(vitest@4.0.4) @@ -8733,12 +9217,11 @@ snapshots: vitest: 4.0.4(@types/node@24.11.0)(@vitest/browser-playwright@4.0.4)(jiti@2.6.1)(jsdom@27.0.1(postcss@8.5.6))(lightningcss@1.31.1)(msw@2.13.4(@types/node@24.11.0)(typescript@7.0.2))(terser@5.44.0)(yaml@2.8.1) transitivePeerDependencies: - react - - react-dom - '@storybook/builder-vite@10.3.5(esbuild@0.25.9)(rollup@4.50.1)(storybook@10.3.5(@testing-library/dom@10.4.1)(prettier@3.6.2)(react-dom@19.1.2(react@19.1.2))(react@19.1.2))(vite@7.3.3(@types/node@24.11.0)(jiti@2.6.1)(lightningcss@1.31.1)(terser@5.44.0)(yaml@2.8.1))': + '@storybook/builder-vite@10.5.10(esbuild@0.27.7)(rollup@4.50.1)(storybook@10.5.10(@types/react@19.1.2)(prettier@3.6.2)(react@19.1.2))(vite@7.3.3(@types/node@24.11.0)(jiti@2.6.1)(lightningcss@1.31.1)(terser@5.44.0)(yaml@2.8.1))': dependencies: - '@storybook/csf-plugin': 10.3.5(esbuild@0.25.9)(rollup@4.50.1)(storybook@10.3.5(@testing-library/dom@10.4.1)(prettier@3.6.2)(react-dom@19.1.2(react@19.1.2))(react@19.1.2))(vite@7.3.3(@types/node@24.11.0)(jiti@2.6.1)(lightningcss@1.31.1)(terser@5.44.0)(yaml@2.8.1)) - storybook: 10.3.5(@testing-library/dom@10.4.1)(prettier@3.6.2)(react-dom@19.1.2(react@19.1.2))(react@19.1.2) + '@storybook/csf-plugin': 10.5.10(esbuild@0.27.7)(rollup@4.50.1)(storybook@10.5.10(@types/react@19.1.2)(prettier@3.6.2)(react@19.1.2))(vite@7.3.3(@types/node@24.11.0)(jiti@2.6.1)(lightningcss@1.31.1)(terser@5.44.0)(yaml@2.8.1)) + storybook: 10.5.10(@types/react@19.1.2)(prettier@3.6.2)(react@19.1.2) ts-dedent: 2.2.0 vite: 7.3.3(@types/node@24.11.0)(jiti@2.6.1)(lightningcss@1.31.1)(terser@5.44.0)(yaml@2.8.1) transitivePeerDependencies: @@ -8746,60 +9229,67 @@ snapshots: - rollup - webpack - '@storybook/csf-plugin@10.3.5(esbuild@0.25.9)(rollup@4.50.1)(storybook@10.3.5(@testing-library/dom@10.4.1)(prettier@3.6.2)(react-dom@19.1.2(react@19.1.2))(react@19.1.2))(vite@7.3.3(@types/node@24.11.0)(jiti@2.6.1)(lightningcss@1.31.1)(terser@5.44.0)(yaml@2.8.1))': + '@storybook/csf-plugin@10.5.10(esbuild@0.27.7)(rollup@4.50.1)(storybook@10.5.10(@types/react@19.1.2)(prettier@3.6.2)(react@19.1.2))(vite@7.3.3(@types/node@24.11.0)(jiti@2.6.1)(lightningcss@1.31.1)(terser@5.44.0)(yaml@2.8.1))': dependencies: - storybook: 10.3.5(@testing-library/dom@10.4.1)(prettier@3.6.2)(react-dom@19.1.2(react@19.1.2))(react@19.1.2) + storybook: 10.5.10(@types/react@19.1.2)(prettier@3.6.2)(react@19.1.2) unplugin: 2.3.10 optionalDependencies: - esbuild: 0.25.9 + esbuild: 0.27.7 rollup: 4.50.1 vite: 7.3.3(@types/node@24.11.0)(jiti@2.6.1)(lightningcss@1.31.1)(terser@5.44.0)(yaml@2.8.1) '@storybook/global@5.0.0': {} - '@storybook/icons@2.0.1(react-dom@19.1.2(react@19.1.2))(react@19.1.2)': + '@storybook/icons@2.1.0(react@19.1.2)': dependencies: react: 19.1.2 - react-dom: 19.1.2(react@19.1.2) - '@storybook/react-dom-shim@10.3.5(react-dom@19.1.2(react@19.1.2))(react@19.1.2)(storybook@10.3.5(@testing-library/dom@10.4.1)(prettier@3.6.2)(react-dom@19.1.2(react@19.1.2))(react@19.1.2))': + '@storybook/react-dom-shim@10.5.10(@types/react-dom@19.1.2(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.2(react@19.1.2))(react@19.1.2)(storybook@10.5.10(@types/react@19.1.2)(prettier@3.6.2)(react@19.1.2))': dependencies: react: 19.1.2 react-dom: 19.1.2(react@19.1.2) - storybook: 10.3.5(@testing-library/dom@10.4.1)(prettier@3.6.2)(react-dom@19.1.2(react@19.1.2))(react@19.1.2) + storybook: 10.5.10(@types/react@19.1.2)(prettier@3.6.2)(react@19.1.2) + optionalDependencies: + '@types/react': 19.1.2 + '@types/react-dom': 19.1.2(@types/react@19.1.2) - '@storybook/react-vite@10.3.5(esbuild@0.25.9)(react-dom@19.1.2(react@19.1.2))(react@19.1.2)(rollup@4.50.1)(storybook@10.3.5(@testing-library/dom@10.4.1)(prettier@3.6.2)(react-dom@19.1.2(react@19.1.2))(react@19.1.2))(typescript@7.0.2)(vite@7.3.3(@types/node@24.11.0)(jiti@2.6.1)(lightningcss@1.31.1)(terser@5.44.0)(yaml@2.8.1))': + '@storybook/react-vite@10.5.10(@types/react-dom@19.1.2(@types/react@19.1.2))(@types/react@19.1.2)(esbuild@0.27.7)(react-dom@19.1.2(react@19.1.2))(react@19.1.2)(rollup@4.50.1)(storybook@10.5.10(@types/react@19.1.2)(prettier@3.6.2)(react@19.1.2))(typescript@7.0.2)(vite@7.3.3(@types/node@24.11.0)(jiti@2.6.1)(lightningcss@1.31.1)(terser@5.44.0)(yaml@2.8.1))': dependencies: '@joshwooding/vite-plugin-react-docgen-typescript': 0.7.0(typescript@7.0.2)(vite@7.3.3(@types/node@24.11.0)(jiti@2.6.1)(lightningcss@1.31.1)(terser@5.44.0)(yaml@2.8.1)) '@rollup/pluginutils': 5.3.0(rollup@4.50.1) - '@storybook/builder-vite': 10.3.5(esbuild@0.25.9)(rollup@4.50.1)(storybook@10.3.5(@testing-library/dom@10.4.1)(prettier@3.6.2)(react-dom@19.1.2(react@19.1.2))(react@19.1.2))(vite@7.3.3(@types/node@24.11.0)(jiti@2.6.1)(lightningcss@1.31.1)(terser@5.44.0)(yaml@2.8.1)) - '@storybook/react': 10.3.5(react-dom@19.1.2(react@19.1.2))(react@19.1.2)(storybook@10.3.5(@testing-library/dom@10.4.1)(prettier@3.6.2)(react-dom@19.1.2(react@19.1.2))(react@19.1.2))(typescript@7.0.2) + '@storybook/builder-vite': 10.5.10(esbuild@0.27.7)(rollup@4.50.1)(storybook@10.5.10(@types/react@19.1.2)(prettier@3.6.2)(react@19.1.2))(vite@7.3.3(@types/node@24.11.0)(jiti@2.6.1)(lightningcss@1.31.1)(terser@5.44.0)(yaml@2.8.1)) + '@storybook/react': 10.5.10(@types/react-dom@19.1.2(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.2(react@19.1.2))(react@19.1.2)(storybook@10.5.10(@types/react@19.1.2)(prettier@3.6.2)(react@19.1.2))(typescript@7.0.2) empathic: 2.0.0 magic-string: 0.30.21 react: 19.1.2 react-docgen: 8.0.2 react-dom: 19.1.2(react@19.1.2) resolve: 1.22.11 - storybook: 10.3.5(@testing-library/dom@10.4.1)(prettier@3.6.2)(react-dom@19.1.2(react@19.1.2))(react@19.1.2) + storybook: 10.5.10(@types/react@19.1.2)(prettier@3.6.2)(react@19.1.2) tsconfig-paths: 4.2.0 vite: 7.3.3(@types/node@24.11.0)(jiti@2.6.1)(lightningcss@1.31.1)(terser@5.44.0)(yaml@2.8.1) + optionalDependencies: + typescript: 7.0.2 transitivePeerDependencies: + - '@types/react' + - '@types/react-dom' - esbuild - rollup - supports-color - - typescript - webpack - '@storybook/react@10.3.5(react-dom@19.1.2(react@19.1.2))(react@19.1.2)(storybook@10.3.5(@testing-library/dom@10.4.1)(prettier@3.6.2)(react-dom@19.1.2(react@19.1.2))(react@19.1.2))(typescript@7.0.2)': + '@storybook/react@10.5.10(@types/react-dom@19.1.2(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.2(react@19.1.2))(react@19.1.2)(storybook@10.5.10(@types/react@19.1.2)(prettier@3.6.2)(react@19.1.2))(typescript@7.0.2)': dependencies: '@storybook/global': 5.0.0 - '@storybook/react-dom-shim': 10.3.5(react-dom@19.1.2(react@19.1.2))(react@19.1.2)(storybook@10.3.5(@testing-library/dom@10.4.1)(prettier@3.6.2)(react-dom@19.1.2(react@19.1.2))(react@19.1.2)) + '@storybook/react-dom-shim': 10.5.10(@types/react-dom@19.1.2(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.2(react@19.1.2))(react@19.1.2)(storybook@10.5.10(@types/react@19.1.2)(prettier@3.6.2)(react@19.1.2)) react: 19.1.2 react-docgen: 8.0.2 react-docgen-typescript: 2.4.0(typescript@7.0.2) react-dom: 19.1.2(react@19.1.2) - storybook: 10.3.5(@testing-library/dom@10.4.1)(prettier@3.6.2)(react-dom@19.1.2(react@19.1.2))(react@19.1.2) + storybook: 10.5.10(@types/react@19.1.2)(prettier@3.6.2)(react@19.1.2) optionalDependencies: + '@types/react': 19.1.2 + '@types/react-dom': 19.1.2(@types/react@19.1.2) typescript: 7.0.2 transitivePeerDependencies: - supports-color @@ -9049,6 +9539,11 @@ snapshots: tslib: 2.8.1 optional: true + '@tybys/wasm-util@0.10.3': + dependencies: + tslib: 2.8.1 + optional: true + '@types/argparse@1.0.38': {} '@types/aria-query@5.0.4': {} @@ -10661,6 +11156,8 @@ snapshots: json5@2.2.3: {} + jsonc-parser@3.3.1: {} + jsonfile@4.0.0: optionalDependencies: graceful-fs: 4.2.11 @@ -11130,6 +11627,31 @@ snapshots: outvariant@1.4.3: {} + oxc-parser@0.127.0: + dependencies: + '@oxc-project/types': 0.127.0 + optionalDependencies: + '@oxc-parser/binding-android-arm-eabi': 0.127.0 + '@oxc-parser/binding-android-arm64': 0.127.0 + '@oxc-parser/binding-darwin-arm64': 0.127.0 + '@oxc-parser/binding-darwin-x64': 0.127.0 + '@oxc-parser/binding-freebsd-x64': 0.127.0 + '@oxc-parser/binding-linux-arm-gnueabihf': 0.127.0 + '@oxc-parser/binding-linux-arm-musleabihf': 0.127.0 + '@oxc-parser/binding-linux-arm64-gnu': 0.127.0 + '@oxc-parser/binding-linux-arm64-musl': 0.127.0 + '@oxc-parser/binding-linux-ppc64-gnu': 0.127.0 + '@oxc-parser/binding-linux-riscv64-gnu': 0.127.0 + '@oxc-parser/binding-linux-riscv64-musl': 0.127.0 + '@oxc-parser/binding-linux-s390x-gnu': 0.127.0 + '@oxc-parser/binding-linux-x64-gnu': 0.127.0 + '@oxc-parser/binding-linux-x64-musl': 0.127.0 + '@oxc-parser/binding-openharmony-arm64': 0.127.0 + '@oxc-parser/binding-wasm32-wasi': 0.127.0 + '@oxc-parser/binding-win32-arm64-msvc': 0.127.0 + '@oxc-parser/binding-win32-ia32-msvc': 0.127.0 + '@oxc-parser/binding-win32-x64-msvc': 0.127.0 + oxc-resolver@11.12.0: optionalDependencies: '@oxc-resolver/binding-android-arm-eabi': 11.12.0 @@ -11152,6 +11674,28 @@ snapshots: '@oxc-resolver/binding-win32-ia32-msvc': 11.12.0 '@oxc-resolver/binding-win32-x64-msvc': 11.12.0 + oxc-resolver@11.21.2: + optionalDependencies: + '@oxc-resolver/binding-android-arm-eabi': 11.21.2 + '@oxc-resolver/binding-android-arm64': 11.21.2 + '@oxc-resolver/binding-darwin-arm64': 11.21.2 + '@oxc-resolver/binding-darwin-x64': 11.21.2 + '@oxc-resolver/binding-freebsd-x64': 11.21.2 + '@oxc-resolver/binding-linux-arm-gnueabihf': 11.21.2 + '@oxc-resolver/binding-linux-arm-musleabihf': 11.21.2 + '@oxc-resolver/binding-linux-arm64-gnu': 11.21.2 + '@oxc-resolver/binding-linux-arm64-musl': 11.21.2 + '@oxc-resolver/binding-linux-ppc64-gnu': 11.21.2 + '@oxc-resolver/binding-linux-riscv64-gnu': 11.21.2 + '@oxc-resolver/binding-linux-riscv64-musl': 11.21.2 + '@oxc-resolver/binding-linux-s390x-gnu': 11.21.2 + '@oxc-resolver/binding-linux-x64-gnu': 11.21.2 + '@oxc-resolver/binding-linux-x64-musl': 11.21.2 + '@oxc-resolver/binding-openharmony-arm64': 11.21.2 + '@oxc-resolver/binding-wasm32-wasi': 11.21.2 + '@oxc-resolver/binding-win32-arm64-msvc': 11.21.2 + '@oxc-resolver/binding-win32-x64-msvc': 11.21.2 + oxlint-tsgolint@7.0.2001: optionalDependencies: '@oxlint-tsgolint/darwin-arm64': 7.0.2001 @@ -11252,7 +11796,7 @@ snapshots: path-scurry@1.11.1: dependencies: lru-cache: 10.4.3 - minipass: 7.1.2 + minipass: 7.1.3 path-scurry@2.0.0: dependencies: @@ -11261,7 +11805,7 @@ snapshots: path-scurry@2.0.2: dependencies: - lru-cache: 11.2.2 + lru-cache: 11.5.2 minipass: 7.1.3 path-to-regexp@6.3.0: {} @@ -11803,28 +12347,31 @@ snapshots: stdin-discarder@0.2.2: {} - storybook@10.3.5(@testing-library/dom@10.4.1)(prettier@3.6.2)(react-dom@19.1.2(react@19.1.2))(react@19.1.2): + storybook@10.5.10(@types/react@19.1.2)(prettier@3.6.2)(react@19.1.2): dependencies: '@storybook/global': 5.0.0 - '@storybook/icons': 2.0.1(react-dom@19.1.2(react@19.1.2))(react@19.1.2) + '@storybook/icons': 2.1.0(react@19.1.2) + '@testing-library/dom': 10.4.1 '@testing-library/jest-dom': 6.9.1 '@testing-library/user-event': 14.6.1(@testing-library/dom@10.4.1) '@vitest/expect': 3.2.4 '@vitest/spy': 3.2.4 '@webcontainer/env': 1.1.1 esbuild: 0.27.7 + jsonc-parser: 3.3.1 open: 10.2.0 + oxc-parser: 0.127.0 + oxc-resolver: 11.21.2 recast: 0.23.11 semver: 7.7.3 use-sync-external-store: 1.6.0(react@19.1.2) - ws: 8.18.3 + ws: 8.21.3 optionalDependencies: + '@types/react': 19.1.2 prettier: 3.6.2 transitivePeerDependencies: - - '@testing-library/dom' - bufferutil - react - - react-dom - utf-8-validate strict-event-emitter@0.5.1: {} @@ -12415,6 +12962,8 @@ snapshots: ws@8.18.3: {} + ws@8.21.3: {} + wsl-utils@0.1.0: dependencies: is-wsl: 3.1.1