├── vite.config.ts ├── .gitignore ├── tsconfig.json ├── .storybook ├── preview.ts └── main.ts ├── tsconfig.base.json ├── README.md ├── package.json ├── src ├── FPSMeter.stories.tsx └── index.tsx └── pnpm-lock.yaml /vite.config.ts: -------------------------------------------------------------------------------- 1 | import { defineConfig } from 'vite' 2 | import react from '@vitejs/plugin-react' 3 | 4 | export default defineConfig({ 5 | plugins: [react()], 6 | }) -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | dist 2 | .DS_Store 3 | node_modules 4 | 5 | /.yarn/* 6 | !/.yarn/releases 7 | !/.yarn/patches 8 | !/.yarn/plugins 9 | !/.yarn/sdks 10 | 11 | storybook-static 12 | 13 | tmp 14 | .vercel 15 | -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.base.json", 3 | "compilerOptions": { 4 | "jsx": "preserve", 5 | "outDir": "./dist", 6 | "rootDir": "./src", 7 | "tsBuildInfoFile": "./dist/.tsbuildinfo" 8 | }, 9 | "include": ["./src"], 10 | } 11 | -------------------------------------------------------------------------------- /.storybook/preview.ts: -------------------------------------------------------------------------------- 1 | import type { Preview } from '@storybook/react' 2 | 3 | const preview: Preview = { 4 | parameters: { 5 | controls: { 6 | matchers: { 7 | color: /(background|color)$/i, 8 | date: /Date$/i, 9 | }, 10 | }, 11 | }, 12 | } 13 | 14 | export default preview -------------------------------------------------------------------------------- /.storybook/main.ts: -------------------------------------------------------------------------------- 1 | import type { StorybookConfig } from '@storybook/react-vite' 2 | 3 | const config: StorybookConfig = { 4 | stories: ['../src/**/*.stories.@(js|jsx|ts|tsx)'], 5 | addons: [], 6 | framework: { 7 | name: '@storybook/react-vite', 8 | options: {}, 9 | }, 10 | } 11 | 12 | export default config -------------------------------------------------------------------------------- /tsconfig.base.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "strict": true, 4 | "noUncheckedIndexedAccess": true, 5 | "esModuleInterop": true, 6 | "sourceMap": true, 7 | "declarationMap": true, 8 | "declaration": true, 9 | "moduleResolution": "node", 10 | "strictNullChecks": true, 11 | "incremental": true, 12 | "composite": true, 13 | "allowJs": true, 14 | "skipLibCheck": true, 15 | "forceConsistentCasingInFileNames": true, 16 | "noFallthroughCasesInSwitch": true, 17 | "noErrorTruncation": true, 18 | "isolatedModules": true, 19 | "target": "ES2022", 20 | "module": "ESNext", 21 | }, 22 | } -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # fps-meter [![](https://badgen.net/npm/v/@overengineering/fps-meter)](https://www.npmjs.com/package/@overengineering/fps-meter) 2 | 3 | Fast and simple FPS meter for React. Renders to a canvas element and uses requestAnimationFrame to update the FPS counter. 4 | 5 | 6 | 7 |
8 | 9 | ### Install 10 | 11 | ```sh 12 | pnpm add @overengineering/fps-meter 13 | ``` 14 | 15 | ### Usage 16 | 17 | ```tsx 18 | import React from 'react' 19 | import { FPSMeter } from '@overengineering/fps-meter' 20 | 21 | export const MyApp: React.FC = () => { 22 | return ( 23 |
24 | 25 |
26 | ) 27 | } 28 | ``` 29 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "@overengineering/fps-meter", 3 | "version": "0.2.4", 4 | "type": "module", 5 | "files": [ 6 | "dist", 7 | "src", 8 | "README.md" 9 | ], 10 | "repository": { 11 | "type": "git", 12 | "url": "https://github.com/overengineeringstudio/fps-meter" 13 | }, 14 | "exports": { 15 | ".": { 16 | "import": "./dist/index.jsx", 17 | "default": "./dist/index.jsx", 18 | "types": "./dist/index.d.ts" 19 | } 20 | }, 21 | "types": "./dist/index.d.ts", 22 | "scripts": { 23 | "build": "tsc", 24 | "storybook": "storybook dev -p 6006", 25 | "build-storybook": "storybook build" 26 | }, 27 | "peerDependencies": { 28 | "react": "*" 29 | }, 30 | "devDependencies": { 31 | "@storybook/react": "^9.0.16", 32 | "@storybook/react-vite": "^9.0.16", 33 | "@types/react": "^18.2.6", 34 | "@vitejs/plugin-react": "^4.6.0", 35 | "playwright": "^1.54.1", 36 | "react": "^19.1.0", 37 | "react-dom": "^19.1.0", 38 | "storybook": "^9.0.16", 39 | "typescript": "^5.0.4", 40 | "vite": "^7.0.4" 41 | }, 42 | "packageManager": "pnpm@9.9.0" 43 | } 44 | -------------------------------------------------------------------------------- /src/FPSMeter.stories.tsx: -------------------------------------------------------------------------------- 1 | import type { Meta, StoryObj } from '@storybook/react' 2 | import { FPSMeter } from './index' 3 | 4 | const meta: Meta = { 5 | title: 'FPSMeter', 6 | component: FPSMeter, 7 | parameters: { 8 | layout: 'centered', 9 | }, 10 | argTypes: { 11 | width: { 12 | control: { type: 'range', min: 50, max: 300, step: 10 }, 13 | }, 14 | height: { 15 | control: { type: 'range', min: 20, max: 100, step: 5 }, 16 | }, 17 | initialSystemFps: { 18 | control: { type: 'select' }, 19 | options: [60, 120, 144, 160, 240], 20 | }, 21 | className: { 22 | control: { type: 'text' }, 23 | }, 24 | }, 25 | } 26 | 27 | export default meta 28 | type Story = StoryObj 29 | 30 | export const Default: Story = { 31 | args: { 32 | width: 120, 33 | height: 30, 34 | initialSystemFps: 60, 35 | }, 36 | } 37 | 38 | export const Small: Story = { 39 | args: { 40 | width: 80, 41 | height: 20, 42 | initialSystemFps: 60, 43 | }, 44 | } 45 | 46 | export const Large: Story = { 47 | args: { 48 | width: 200, 49 | height: 50, 50 | initialSystemFps: 60, 51 | }, 52 | } 53 | 54 | export const HighRefreshRate: Story = { 55 | args: { 56 | width: 120, 57 | height: 30, 58 | initialSystemFps: 144, 59 | }, 60 | } 61 | 62 | export const VeryHighRefreshRate: Story = { 63 | args: { 64 | width: 120, 65 | height: 30, 66 | initialSystemFps: 240, 67 | }, 68 | } -------------------------------------------------------------------------------- /src/index.tsx: -------------------------------------------------------------------------------- 1 | import React from 'react' 2 | 3 | const getDevicePixelRatio = (): number => { 4 | if (typeof window === 'undefined') { 5 | return 1 6 | } 7 | 8 | const ratio = window.devicePixelRatio ?? 1 9 | if (Number.isFinite(ratio)) { 10 | return Math.round(ratio) 11 | } 12 | 13 | return 1 14 | } 15 | 16 | const supportedFps = [60, 120, 144, 160, 240] as const 17 | 18 | const getFrameBarWidth = (fps: number): number => { 19 | if (fps <= 60) return 2 20 | if (fps <= 144) return 1 21 | return 0.5 22 | } 23 | 24 | export type FPSMeterProps = { 25 | width?: number 26 | height?: number 27 | initialSystemFps?: number 28 | className?: string 29 | } 30 | 31 | const FRAME_HIT = Symbol('FRAME_HIT') 32 | const FRAME_MISS = Symbol('FRAME_MISS') 33 | const FRAME_UNINITIALIZED = Symbol('FRAME_UNINITIALIZED') 34 | 35 | type FrameValue = typeof FRAME_HIT | typeof FRAME_MISS | typeof FRAME_UNINITIALIZED 36 | 37 | // TODO handle frames differently if browser went to background 38 | export const FPSMeter: React.FC = ({ width = 120, height = 30, initialSystemFps = 60, className }) => { 39 | const [systemFps, setSystemFps] = React.useState(initialSystemFps) 40 | 41 | const frameBarWidth = React.useMemo(() => getFrameBarWidth(systemFps), [systemFps]) 42 | const pixelRatio = React.useMemo(() => getDevicePixelRatio(), []) 43 | const adjustedWidth = Math.round(width * pixelRatio) 44 | const adjustedHeight = Math.round(height * pixelRatio) 45 | const numberOfVisibleFrames = React.useMemo(() => Math.floor(adjustedWidth / frameBarWidth), [adjustedWidth, frameBarWidth]) 46 | 47 | // Frame duration tracking for FPS detection 48 | const last500FrameDurations = React.useMemo(() => Array.from({ length: 500 }).fill(0), []) 49 | 50 | const readjustSystemFps = React.useCallback(() => { 51 | const nonZero = last500FrameDurations.filter((_) => _ > 0).sort() 52 | if (nonZero.length < 10) return 53 | 54 | const medianIndex = Math.floor(nonZero.length / 2) 55 | const tenFramesAroundMedian = nonZero.slice(medianIndex - 5, medianIndex + 5) 56 | const sumOfTenFramesAroundMedian = tenFramesAroundMedian.reduce((acc, _) => acc + _, 0) 57 | const newSystemFps = Math.round(10_000 / sumOfTenFramesAroundMedian) 58 | 59 | const closestFps = supportedFps.find((fps) => Math.abs(newSystemFps - fps) < 10) 60 | 61 | if (closestFps === undefined) { 62 | console.warn(`Unsupported system FPS ${newSystemFps}`) 63 | return 64 | } 65 | 66 | if (systemFps !== closestFps) { 67 | setSystemFps(closestFps) 68 | } 69 | }, [last500FrameDurations, systemFps]) 70 | 71 | const resolutionInMs = 1000 / systemFps 72 | 73 | // NOTE larger values can result in more items taken from array than it has and makes stuff go boom 74 | const numberOfSecondsForAverageFps = 2 75 | 76 | // Depending on bar size and screen refresh rate, it can happen that the count of visible frames 77 | // is smaller than the count of frames used for calculating the average FPS. 78 | // To avoid this case, we force the number of frames used to calculate average FPS to always be less 79 | // than the number of visible frames. 80 | const numberOfFramesForAverageFps = Math.min(numberOfSecondsForAverageFps * systemFps, numberOfVisibleFrames) 81 | 82 | // eslint-disable-next-line unicorn/no-useless-undefined 83 | const animationFrameRef = React.useRef(undefined) 84 | 85 | const canvasRef = React.useCallback( 86 | (canvas: HTMLCanvasElement | null) => { 87 | if (animationFrameRef.current !== undefined && typeof window !== 'undefined') { 88 | window.cancelAnimationFrame(animationFrameRef.current) 89 | } 90 | 91 | if (canvas === null) return 92 | if (typeof window === 'undefined') return 93 | 94 | if (numberOfFramesForAverageFps > numberOfVisibleFrames) { 95 | throw new Error( 96 | `numberOfFramesForAverageFps (${numberOfFramesForAverageFps}) must be smaller than numberOfVisibleFrames (${numberOfVisibleFrames}). Either increase the width or increase the resolutionInMs.`, 97 | ) 98 | } 99 | 100 | // eslint-disable-next-line unicorn/no-new-array 101 | const frames: FrameValue[] = new Array(numberOfVisibleFrames).fill(FRAME_UNINITIALIZED) 102 | 103 | const ctx = canvas.getContext('2d')! 104 | 105 | const draw = (frameNumber: number) => { 106 | ctx.clearRect(0, 0, adjustedWidth, adjustedHeight) 107 | 108 | // Calculate chunk width for alternating pattern 109 | const chunkWidth = (1 / frameBarWidth) * 8 110 | 111 | for (let i = 0; i < numberOfVisibleFrames; i++) { 112 | const frameHit = frames[i]! 113 | if (frameHit === FRAME_UNINITIALIZED) continue 114 | 115 | const x = i * frameBarWidth 116 | 117 | // Alternating colors for visual feedback that rendering isn't blocked 118 | const isEvenChunk = (frameNumber + i) % (chunkWidth * 2) < chunkWidth 119 | ctx.fillStyle = 120 | frameHit === FRAME_MISS 121 | ? 'rgba(255, 0, 0, 1)' // red 122 | : isEvenChunk 123 | ? 'rgba(255, 255, 255, 0.37)' // slightly more transparent 124 | : 'rgba(255, 255, 255, 0.4)' // slightly less transparent 125 | ctx.fillRect(x, adjustedHeight, frameBarWidth, -adjustedHeight) 126 | } 127 | 128 | // Rendering average FPS value text 129 | let frameCount = 0 130 | let numberOfInitializedFrames = 0 131 | for (let i = 0; i < numberOfFramesForAverageFps; i++) { 132 | const frameHit = frames.at(-i - 1)! 133 | if (frameHit !== FRAME_UNINITIALIZED) { 134 | frameCount += frameHit === FRAME_HIT ? 1 : 0 135 | numberOfInitializedFrames++ 136 | } 137 | } 138 | if (numberOfInitializedFrames >= numberOfFramesForAverageFps) { 139 | ctx.fillStyle = 'white' 140 | const fontSize = pixelRatio * 10 141 | ctx.font = `${fontSize}px monospace` 142 | 143 | const averageFps = Math.round((systemFps * frameCount) / numberOfInitializedFrames) 144 | ctx.fillText(`${averageFps} FPS`, 2 * pixelRatio, adjustedHeight - 3 * pixelRatio) 145 | } 146 | } 147 | 148 | let previousFrameNumber = 0 149 | let previousFrameTime = 0 150 | 151 | const loop = () => { 152 | animationFrameRef.current = window.requestAnimationFrame((now) => { 153 | loop() 154 | 155 | const frameNumber = Math.floor(now / resolutionInMs) 156 | 157 | const numberOfSkippedFrames = frameNumber - previousFrameNumber - 1 158 | 159 | // Checking for skipped frames 160 | for (let i = 0; i < numberOfSkippedFrames; i++) { 161 | frames.shift()! 162 | frames.push(FRAME_MISS) 163 | } 164 | 165 | frames.shift()! 166 | frames.push(FRAME_HIT) 167 | 168 | previousFrameNumber = frameNumber 169 | 170 | const frameDuration = now - previousFrameTime 171 | previousFrameTime = now 172 | last500FrameDurations.shift() 173 | last500FrameDurations.push(frameDuration) 174 | 175 | if (frameNumber % 100 === 0) { 176 | readjustSystemFps() 177 | } 178 | 179 | draw(frameNumber) 180 | }) 181 | } 182 | 183 | loop() 184 | }, 185 | [adjustedHeight, adjustedWidth, numberOfVisibleFrames, numberOfFramesForAverageFps, resolutionInMs, frameBarWidth, last500FrameDurations, readjustSystemFps, pixelRatio], 186 | ) 187 | 188 | return ( 189 | 196 | ) 197 | } 198 | -------------------------------------------------------------------------------- /pnpm-lock.yaml: -------------------------------------------------------------------------------- 1 | lockfileVersion: '9.0' 2 | 3 | settings: 4 | autoInstallPeers: true 5 | excludeLinksFromLockfile: false 6 | 7 | importers: 8 | 9 | .: 10 | devDependencies: 11 | '@storybook/react': 12 | specifier: ^9.0.16 13 | version: 9.0.16(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(storybook@9.0.16(@testing-library/dom@10.4.0))(typescript@5.6.3) 14 | '@storybook/react-vite': 15 | specifier: ^9.0.16 16 | version: 9.0.16(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(rollup@4.45.0)(storybook@9.0.16(@testing-library/dom@10.4.0))(typescript@5.6.3)(vite@7.0.4) 17 | '@types/react': 18 | specifier: ^18.2.6 19 | version: 18.3.12 20 | '@vitejs/plugin-react': 21 | specifier: ^4.6.0 22 | version: 4.6.0(vite@7.0.4) 23 | playwright: 24 | specifier: ^1.54.1 25 | version: 1.54.1 26 | react: 27 | specifier: ^19.1.0 28 | version: 19.1.0 29 | react-dom: 30 | specifier: ^19.1.0 31 | version: 19.1.0(react@19.1.0) 32 | storybook: 33 | specifier: ^9.0.16 34 | version: 9.0.16(@testing-library/dom@10.4.0) 35 | typescript: 36 | specifier: ^5.0.4 37 | version: 5.6.3 38 | vite: 39 | specifier: ^7.0.4 40 | version: 7.0.4 41 | 42 | packages: 43 | 44 | '@adobe/css-tools@4.4.3': 45 | resolution: {integrity: sha512-VQKMkwriZbaOgVCby1UDY/LDk5fIjhQicCvVPFqfe+69fWaPWydbWJ3wRt59/YzIwda1I81loas3oCoHxnqvdA==} 46 | 47 | '@ampproject/remapping@2.3.0': 48 | resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==} 49 | engines: {node: '>=6.0.0'} 50 | 51 | '@babel/code-frame@7.27.1': 52 | resolution: {integrity: sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg==} 53 | engines: {node: '>=6.9.0'} 54 | 55 | '@babel/compat-data@7.28.0': 56 | resolution: {integrity: sha512-60X7qkglvrap8mn1lh2ebxXdZYtUcpd7gsmy9kLaBJ4i/WdY8PqTSdxyA8qraikqKQK5C1KRBKXqznrVapyNaw==} 57 | engines: {node: '>=6.9.0'} 58 | 59 | '@babel/core@7.28.0': 60 | resolution: {integrity: sha512-UlLAnTPrFdNGoFtbSXwcGFQBtQZJCNjaN6hQNP3UPvuNXT1i82N26KL3dZeIpNalWywr9IuQuncaAfUaS1g6sQ==} 61 | engines: {node: '>=6.9.0'} 62 | 63 | '@babel/generator@7.28.0': 64 | resolution: {integrity: sha512-lJjzvrbEeWrhB4P3QBsH7tey117PjLZnDbLiQEKjQ/fNJTjuq4HSqgFA+UNSwZT8D7dxxbnuSBMsa1lrWzKlQg==} 65 | engines: {node: '>=6.9.0'} 66 | 67 | '@babel/helper-compilation-targets@7.27.2': 68 | resolution: {integrity: sha512-2+1thGUUWWjLTYTHZWK1n8Yga0ijBz1XAhUXcKy81rd5g6yh7hGqMp45v7cadSbEHc9G3OTv45SyneRN3ps4DQ==} 69 | engines: {node: '>=6.9.0'} 70 | 71 | '@babel/helper-globals@7.28.0': 72 | resolution: {integrity: sha512-+W6cISkXFa1jXsDEdYA8HeevQT/FULhxzR99pxphltZcVaugps53THCeiWA8SguxxpSp3gKPiuYfSWopkLQ4hw==} 73 | engines: {node: '>=6.9.0'} 74 | 75 | '@babel/helper-module-imports@7.27.1': 76 | resolution: {integrity: sha512-0gSFWUPNXNopqtIPQvlD5WgXYI5GY2kP2cCvoT8kczjbfcfuIljTbcWrulD1CIPIX2gt1wghbDy08yE1p+/r3w==} 77 | engines: {node: '>=6.9.0'} 78 | 79 | '@babel/helper-module-transforms@7.27.3': 80 | resolution: {integrity: sha512-dSOvYwvyLsWBeIRyOeHXp5vPj5l1I011r52FM1+r1jCERv+aFXYk4whgQccYEGYxK2H3ZAIA8nuPkQ0HaUo3qg==} 81 | engines: {node: '>=6.9.0'} 82 | peerDependencies: 83 | '@babel/core': ^7.0.0 84 | 85 | '@babel/helper-plugin-utils@7.27.1': 86 | resolution: {integrity: sha512-1gn1Up5YXka3YYAHGKpbideQ5Yjf1tDa9qYcgysz+cNCXukyLl6DjPXhD3VRwSb8c0J9tA4b2+rHEZtc6R0tlw==} 87 | engines: {node: '>=6.9.0'} 88 | 89 | '@babel/helper-string-parser@7.27.1': 90 | resolution: {integrity: sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==} 91 | engines: {node: '>=6.9.0'} 92 | 93 | '@babel/helper-validator-identifier@7.27.1': 94 | resolution: {integrity: sha512-D2hP9eA+Sqx1kBZgzxZh0y1trbuU+JoDkiEwqhQ36nodYqJwyEIhPSdMNd7lOm/4io72luTPWH20Yda0xOuUow==} 95 | engines: {node: '>=6.9.0'} 96 | 97 | '@babel/helper-validator-option@7.27.1': 98 | resolution: {integrity: sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg==} 99 | engines: {node: '>=6.9.0'} 100 | 101 | '@babel/helpers@7.27.6': 102 | resolution: {integrity: sha512-muE8Tt8M22638HU31A3CgfSUciwz1fhATfoVai05aPXGor//CdWDCbnlY1yvBPo07njuVOCNGCSp/GTt12lIug==} 103 | engines: {node: '>=6.9.0'} 104 | 105 | '@babel/parser@7.28.0': 106 | resolution: {integrity: sha512-jVZGvOxOuNSsuQuLRTh13nU0AogFlw32w/MT+LV6D3sP5WdbW61E77RnkbaO2dUvmPAYrBDJXGn5gGS6tH4j8g==} 107 | engines: {node: '>=6.0.0'} 108 | hasBin: true 109 | 110 | '@babel/plugin-transform-react-jsx-self@7.27.1': 111 | resolution: {integrity: sha512-6UzkCs+ejGdZ5mFFC/OCUrv028ab2fp1znZmCZjAOBKiBK2jXD1O+BPSfX8X2qjJ75fZBMSnQn3Rq2mrBJK2mw==} 112 | engines: {node: '>=6.9.0'} 113 | peerDependencies: 114 | '@babel/core': ^7.0.0-0 115 | 116 | '@babel/plugin-transform-react-jsx-source@7.27.1': 117 | resolution: {integrity: sha512-zbwoTsBruTeKB9hSq73ha66iFeJHuaFkUbwvqElnygoNbj/jHRsSeokowZFN3CZ64IvEqcmmkVe89OPXc7ldAw==} 118 | engines: {node: '>=6.9.0'} 119 | peerDependencies: 120 | '@babel/core': ^7.0.0-0 121 | 122 | '@babel/runtime@7.27.6': 123 | resolution: {integrity: sha512-vbavdySgbTTrmFE+EsiqUTzlOr5bzlnJtUv9PynGCAKvfQqjIXbvFdumPM/GxMDfyuGMJaJAU6TO4zc1Jf1i8Q==} 124 | engines: {node: '>=6.9.0'} 125 | 126 | '@babel/template@7.27.2': 127 | resolution: {integrity: sha512-LPDZ85aEJyYSd18/DkjNh4/y1ntkE5KwUHWTiqgRxruuZL2F1yuHligVHLvcHY2vMHXttKFpJn6LwfI7cw7ODw==} 128 | engines: {node: '>=6.9.0'} 129 | 130 | '@babel/traverse@7.28.0': 131 | resolution: {integrity: sha512-mGe7UK5wWyh0bKRfupsUchrQGqvDbZDbKJw+kcRGSmdHVYrv+ltd0pnpDTVpiTqnaBru9iEvA8pz8W46v0Amwg==} 132 | engines: {node: '>=6.9.0'} 133 | 134 | '@babel/types@7.28.0': 135 | resolution: {integrity: sha512-jYnje+JyZG5YThjHiF28oT4SIZLnYOcSBb6+SDaFIyzDVSkXQmQQYclJ2R+YxcdmK0AX6x1E5OQNtuh3jHDrUg==} 136 | engines: {node: '>=6.9.0'} 137 | 138 | '@esbuild/aix-ppc64@0.25.6': 139 | resolution: {integrity: sha512-ShbM/3XxwuxjFiuVBHA+d3j5dyac0aEVVq1oluIDf71hUw0aRF59dV/efUsIwFnR6m8JNM2FjZOzmaZ8yG61kw==} 140 | engines: {node: '>=18'} 141 | cpu: [ppc64] 142 | os: [aix] 143 | 144 | '@esbuild/android-arm64@0.25.6': 145 | resolution: {integrity: sha512-hd5zdUarsK6strW+3Wxi5qWws+rJhCCbMiC9QZyzoxfk5uHRIE8T287giQxzVpEvCwuJ9Qjg6bEjcRJcgfLqoA==} 146 | engines: {node: '>=18'} 147 | cpu: [arm64] 148 | os: [android] 149 | 150 | '@esbuild/android-arm@0.25.6': 151 | resolution: {integrity: sha512-S8ToEOVfg++AU/bHwdksHNnyLyVM+eMVAOf6yRKFitnwnbwwPNqKr3srzFRe7nzV69RQKb5DgchIX5pt3L53xg==} 152 | engines: {node: '>=18'} 153 | cpu: [arm] 154 | os: [android] 155 | 156 | '@esbuild/android-x64@0.25.6': 157 | resolution: {integrity: sha512-0Z7KpHSr3VBIO9A/1wcT3NTy7EB4oNC4upJ5ye3R7taCc2GUdeynSLArnon5G8scPwaU866d3H4BCrE5xLW25A==} 158 | engines: {node: '>=18'} 159 | cpu: [x64] 160 | os: [android] 161 | 162 | '@esbuild/darwin-arm64@0.25.6': 163 | resolution: {integrity: sha512-FFCssz3XBavjxcFxKsGy2DYK5VSvJqa6y5HXljKzhRZ87LvEi13brPrf/wdyl/BbpbMKJNOr1Sd0jtW4Ge1pAA==} 164 | engines: {node: '>=18'} 165 | cpu: [arm64] 166 | os: [darwin] 167 | 168 | '@esbuild/darwin-x64@0.25.6': 169 | resolution: {integrity: sha512-GfXs5kry/TkGM2vKqK2oyiLFygJRqKVhawu3+DOCk7OxLy/6jYkWXhlHwOoTb0WqGnWGAS7sooxbZowy+pK9Yg==} 170 | engines: {node: '>=18'} 171 | cpu: [x64] 172 | os: [darwin] 173 | 174 | '@esbuild/freebsd-arm64@0.25.6': 175 | resolution: {integrity: sha512-aoLF2c3OvDn2XDTRvn8hN6DRzVVpDlj2B/F66clWd/FHLiHaG3aVZjxQX2DYphA5y/evbdGvC6Us13tvyt4pWg==} 176 | engines: {node: '>=18'} 177 | cpu: [arm64] 178 | os: [freebsd] 179 | 180 | '@esbuild/freebsd-x64@0.25.6': 181 | resolution: {integrity: sha512-2SkqTjTSo2dYi/jzFbU9Plt1vk0+nNg8YC8rOXXea+iA3hfNJWebKYPs3xnOUf9+ZWhKAaxnQNUf2X9LOpeiMQ==} 182 | engines: {node: '>=18'} 183 | cpu: [x64] 184 | os: [freebsd] 185 | 186 | '@esbuild/linux-arm64@0.25.6': 187 | resolution: {integrity: sha512-b967hU0gqKd9Drsh/UuAm21Khpoh6mPBSgz8mKRq4P5mVK8bpA+hQzmm/ZwGVULSNBzKdZPQBRT3+WuVavcWsQ==} 188 | engines: {node: '>=18'} 189 | cpu: [arm64] 190 | os: [linux] 191 | 192 | '@esbuild/linux-arm@0.25.6': 193 | resolution: {integrity: sha512-SZHQlzvqv4Du5PrKE2faN0qlbsaW/3QQfUUc6yO2EjFcA83xnwm91UbEEVx4ApZ9Z5oG8Bxz4qPE+HFwtVcfyw==} 194 | engines: {node: '>=18'} 195 | cpu: [arm] 196 | os: [linux] 197 | 198 | '@esbuild/linux-ia32@0.25.6': 199 | resolution: {integrity: sha512-aHWdQ2AAltRkLPOsKdi3xv0mZ8fUGPdlKEjIEhxCPm5yKEThcUjHpWB1idN74lfXGnZ5SULQSgtr5Qos5B0bPw==} 200 | engines: {node: '>=18'} 201 | cpu: [ia32] 202 | os: [linux] 203 | 204 | '@esbuild/linux-loong64@0.25.6': 205 | resolution: {integrity: sha512-VgKCsHdXRSQ7E1+QXGdRPlQ/e08bN6WMQb27/TMfV+vPjjTImuT9PmLXupRlC90S1JeNNW5lzkAEO/McKeJ2yg==} 206 | engines: {node: '>=18'} 207 | cpu: [loong64] 208 | os: [linux] 209 | 210 | '@esbuild/linux-mips64el@0.25.6': 211 | resolution: {integrity: sha512-WViNlpivRKT9/py3kCmkHnn44GkGXVdXfdc4drNmRl15zVQ2+D2uFwdlGh6IuK5AAnGTo2qPB1Djppj+t78rzw==} 212 | engines: {node: '>=18'} 213 | cpu: [mips64el] 214 | os: [linux] 215 | 216 | '@esbuild/linux-ppc64@0.25.6': 217 | resolution: {integrity: sha512-wyYKZ9NTdmAMb5730I38lBqVu6cKl4ZfYXIs31Baf8aoOtB4xSGi3THmDYt4BTFHk7/EcVixkOV2uZfwU3Q2Jw==} 218 | engines: {node: '>=18'} 219 | cpu: [ppc64] 220 | os: [linux] 221 | 222 | '@esbuild/linux-riscv64@0.25.6': 223 | resolution: {integrity: sha512-KZh7bAGGcrinEj4qzilJ4hqTY3Dg2U82c8bv+e1xqNqZCrCyc+TL9AUEn5WGKDzm3CfC5RODE/qc96OcbIe33w==} 224 | engines: {node: '>=18'} 225 | cpu: [riscv64] 226 | os: [linux] 227 | 228 | '@esbuild/linux-s390x@0.25.6': 229 | resolution: {integrity: sha512-9N1LsTwAuE9oj6lHMyyAM+ucxGiVnEqUdp4v7IaMmrwb06ZTEVCIs3oPPplVsnjPfyjmxwHxHMF8b6vzUVAUGw==} 230 | engines: {node: '>=18'} 231 | cpu: [s390x] 232 | os: [linux] 233 | 234 | '@esbuild/linux-x64@0.25.6': 235 | resolution: {integrity: sha512-A6bJB41b4lKFWRKNrWoP2LHsjVzNiaurf7wyj/XtFNTsnPuxwEBWHLty+ZE0dWBKuSK1fvKgrKaNjBS7qbFKig==} 236 | engines: {node: '>=18'} 237 | cpu: [x64] 238 | os: [linux] 239 | 240 | '@esbuild/netbsd-arm64@0.25.6': 241 | resolution: {integrity: sha512-IjA+DcwoVpjEvyxZddDqBY+uJ2Snc6duLpjmkXm/v4xuS3H+3FkLZlDm9ZsAbF9rsfP3zeA0/ArNDORZgrxR/Q==} 242 | engines: {node: '>=18'} 243 | cpu: [arm64] 244 | os: [netbsd] 245 | 246 | '@esbuild/netbsd-x64@0.25.6': 247 | resolution: {integrity: sha512-dUXuZr5WenIDlMHdMkvDc1FAu4xdWixTCRgP7RQLBOkkGgwuuzaGSYcOpW4jFxzpzL1ejb8yF620UxAqnBrR9g==} 248 | engines: {node: '>=18'} 249 | cpu: [x64] 250 | os: [netbsd] 251 | 252 | '@esbuild/openbsd-arm64@0.25.6': 253 | resolution: {integrity: sha512-l8ZCvXP0tbTJ3iaqdNf3pjaOSd5ex/e6/omLIQCVBLmHTlfXW3zAxQ4fnDmPLOB1x9xrcSi/xtCWFwCZRIaEwg==} 254 | engines: {node: '>=18'} 255 | cpu: [arm64] 256 | os: [openbsd] 257 | 258 | '@esbuild/openbsd-x64@0.25.6': 259 | resolution: {integrity: sha512-hKrmDa0aOFOr71KQ/19JC7az1P0GWtCN1t2ahYAf4O007DHZt/dW8ym5+CUdJhQ/qkZmI1HAF8KkJbEFtCL7gw==} 260 | engines: {node: '>=18'} 261 | cpu: [x64] 262 | os: [openbsd] 263 | 264 | '@esbuild/openharmony-arm64@0.25.6': 265 | resolution: {integrity: sha512-+SqBcAWoB1fYKmpWoQP4pGtx+pUUC//RNYhFdbcSA16617cchuryuhOCRpPsjCblKukAckWsV+aQ3UKT/RMPcA==} 266 | engines: {node: '>=18'} 267 | cpu: [arm64] 268 | os: [openharmony] 269 | 270 | '@esbuild/sunos-x64@0.25.6': 271 | resolution: {integrity: sha512-dyCGxv1/Br7MiSC42qinGL8KkG4kX0pEsdb0+TKhmJZgCUDBGmyo1/ArCjNGiOLiIAgdbWgmWgib4HoCi5t7kA==} 272 | engines: {node: '>=18'} 273 | cpu: [x64] 274 | os: [sunos] 275 | 276 | '@esbuild/win32-arm64@0.25.6': 277 | resolution: {integrity: sha512-42QOgcZeZOvXfsCBJF5Afw73t4veOId//XD3i+/9gSkhSV6Gk3VPlWncctI+JcOyERv85FUo7RxuxGy+z8A43Q==} 278 | engines: {node: '>=18'} 279 | cpu: [arm64] 280 | os: [win32] 281 | 282 | '@esbuild/win32-ia32@0.25.6': 283 | resolution: {integrity: sha512-4AWhgXmDuYN7rJI6ORB+uU9DHLq/erBbuMoAuB4VWJTu5KtCgcKYPynF0YI1VkBNuEfjNlLrFr9KZPJzrtLkrQ==} 284 | engines: {node: '>=18'} 285 | cpu: [ia32] 286 | os: [win32] 287 | 288 | '@esbuild/win32-x64@0.25.6': 289 | resolution: {integrity: sha512-NgJPHHbEpLQgDH2MjQu90pzW/5vvXIZ7KOnPyNBm92A6WgZ/7b6fJyUBjoumLqeOQQGqY2QjQxRo97ah4Sj0cA==} 290 | engines: {node: '>=18'} 291 | cpu: [x64] 292 | os: [win32] 293 | 294 | '@isaacs/cliui@8.0.2': 295 | resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==} 296 | engines: {node: '>=12'} 297 | 298 | '@joshwooding/vite-plugin-react-docgen-typescript@0.6.1': 299 | resolution: {integrity: sha512-J4BaTocTOYFkMHIra1JDWrMWpNmBl4EkplIwHEsV8aeUOtdWjwSnln9U7twjMFTAEB7mptNtSKyVi1Y2W9sDJw==} 300 | peerDependencies: 301 | typescript: '>= 4.3.x' 302 | vite: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 303 | peerDependenciesMeta: 304 | typescript: 305 | optional: true 306 | 307 | '@jridgewell/gen-mapping@0.3.12': 308 | resolution: {integrity: sha512-OuLGC46TjB5BbN1dH8JULVVZY4WTdkF7tV9Ys6wLL1rubZnCMstOhNHueU5bLCrnRuDhKPDM4g6sw4Bel5Gzqg==} 309 | 310 | '@jridgewell/resolve-uri@3.1.2': 311 | resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==} 312 | engines: {node: '>=6.0.0'} 313 | 314 | '@jridgewell/sourcemap-codec@1.5.4': 315 | resolution: {integrity: sha512-VT2+G1VQs/9oz078bLrYbecdZKs912zQlkelYpuf+SXF+QvZDYJlbx/LSx+meSAwdDFnF8FVXW92AVjjkVmgFw==} 316 | 317 | '@jridgewell/trace-mapping@0.3.29': 318 | resolution: {integrity: sha512-uw6guiW/gcAGPDhLmd77/6lW8QLeiV5RUTsAX46Db6oLhGaVj4lhnPwb184s1bkc8kdVg/+h988dro8GRDpmYQ==} 319 | 320 | '@pkgjs/parseargs@0.11.0': 321 | resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} 322 | engines: {node: '>=14'} 323 | 324 | '@rolldown/pluginutils@1.0.0-beta.19': 325 | resolution: {integrity: sha512-3FL3mnMbPu0muGOCaKAhhFEYmqv9eTfPSJRJmANrCwtgK8VuxpsZDGK+m0LYAGoyO8+0j5uRe4PeyPDK1yA/hA==} 326 | 327 | '@rollup/pluginutils@5.2.0': 328 | resolution: {integrity: sha512-qWJ2ZTbmumwiLFomfzTyt5Kng4hwPi9rwCYN4SHb6eaRU1KNO4ccxINHr/VhH4GgPlt1XfSTLX2LBTme8ne4Zw==} 329 | engines: {node: '>=14.0.0'} 330 | peerDependencies: 331 | rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 332 | peerDependenciesMeta: 333 | rollup: 334 | optional: true 335 | 336 | '@rollup/rollup-android-arm-eabi@4.45.0': 337 | resolution: {integrity: sha512-2o/FgACbji4tW1dzXOqAV15Eu7DdgbKsF2QKcxfG4xbh5iwU7yr5RRP5/U+0asQliSYv5M4o7BevlGIoSL0LXg==} 338 | cpu: [arm] 339 | os: [android] 340 | 341 | '@rollup/rollup-android-arm64@4.45.0': 342 | resolution: {integrity: sha512-PSZ0SvMOjEAxwZeTx32eI/j5xSYtDCRxGu5k9zvzoY77xUNssZM+WV6HYBLROpY5CkXsbQjvz40fBb7WPwDqtQ==} 343 | cpu: [arm64] 344 | os: [android] 345 | 346 | '@rollup/rollup-darwin-arm64@4.45.0': 347 | resolution: {integrity: sha512-BA4yPIPssPB2aRAWzmqzQ3y2/KotkLyZukVB7j3psK/U3nVJdceo6qr9pLM2xN6iRP/wKfxEbOb1yrlZH6sYZg==} 348 | cpu: [arm64] 349 | os: [darwin] 350 | 351 | '@rollup/rollup-darwin-x64@4.45.0': 352 | resolution: {integrity: sha512-Pr2o0lvTwsiG4HCr43Zy9xXrHspyMvsvEw4FwKYqhli4FuLE5FjcZzuQ4cfPe0iUFCvSQG6lACI0xj74FDZKRA==} 353 | cpu: [x64] 354 | os: [darwin] 355 | 356 | '@rollup/rollup-freebsd-arm64@4.45.0': 357 | resolution: {integrity: sha512-lYE8LkE5h4a/+6VnnLiL14zWMPnx6wNbDG23GcYFpRW1V9hYWHAw9lBZ6ZUIrOaoK7NliF1sdwYGiVmziUF4vA==} 358 | cpu: [arm64] 359 | os: [freebsd] 360 | 361 | '@rollup/rollup-freebsd-x64@4.45.0': 362 | resolution: {integrity: sha512-PVQWZK9sbzpvqC9Q0GlehNNSVHR+4m7+wET+7FgSnKG3ci5nAMgGmr9mGBXzAuE5SvguCKJ6mHL6vq1JaJ/gvw==} 363 | cpu: [x64] 364 | os: [freebsd] 365 | 366 | '@rollup/rollup-linux-arm-gnueabihf@4.45.0': 367 | resolution: {integrity: sha512-hLrmRl53prCcD+YXTfNvXd776HTxNh8wPAMllusQ+amcQmtgo3V5i/nkhPN6FakW+QVLoUUr2AsbtIRPFU3xIA==} 368 | cpu: [arm] 369 | os: [linux] 370 | 371 | '@rollup/rollup-linux-arm-musleabihf@4.45.0': 372 | resolution: {integrity: sha512-XBKGSYcrkdiRRjl+8XvrUR3AosXU0NvF7VuqMsm7s5nRy+nt58ZMB19Jdp1RdqewLcaYnpk8zeVs/4MlLZEJxw==} 373 | cpu: [arm] 374 | os: [linux] 375 | 376 | '@rollup/rollup-linux-arm64-gnu@4.45.0': 377 | resolution: {integrity: sha512-fRvZZPUiBz7NztBE/2QnCS5AtqLVhXmUOPj9IHlfGEXkapgImf4W9+FSkL8cWqoAjozyUzqFmSc4zh2ooaeF6g==} 378 | cpu: [arm64] 379 | os: [linux] 380 | 381 | '@rollup/rollup-linux-arm64-musl@4.45.0': 382 | resolution: {integrity: sha512-Btv2WRZOcUGi8XU80XwIvzTg4U6+l6D0V6sZTrZx214nrwxw5nAi8hysaXj/mctyClWgesyuxbeLylCBNauimg==} 383 | cpu: [arm64] 384 | os: [linux] 385 | 386 | '@rollup/rollup-linux-loongarch64-gnu@4.45.0': 387 | resolution: {integrity: sha512-Li0emNnwtUZdLwHjQPBxn4VWztcrw/h7mgLyHiEI5Z0MhpeFGlzaiBHpSNVOMB/xucjXTTcO+dhv469Djr16KA==} 388 | cpu: [loong64] 389 | os: [linux] 390 | 391 | '@rollup/rollup-linux-powerpc64le-gnu@4.45.0': 392 | resolution: {integrity: sha512-sB8+pfkYx2kvpDCfd63d5ScYT0Fz1LO6jIb2zLZvmK9ob2D8DeVqrmBDE0iDK8KlBVmsTNzrjr3G1xV4eUZhSw==} 393 | cpu: [ppc64] 394 | os: [linux] 395 | 396 | '@rollup/rollup-linux-riscv64-gnu@4.45.0': 397 | resolution: {integrity: sha512-5GQ6PFhh7E6jQm70p1aW05G2cap5zMOvO0se5JMecHeAdj5ZhWEHbJ4hiKpfi1nnnEdTauDXxPgXae/mqjow9w==} 398 | cpu: [riscv64] 399 | os: [linux] 400 | 401 | '@rollup/rollup-linux-riscv64-musl@4.45.0': 402 | resolution: {integrity: sha512-N/euLsBd1rekWcuduakTo/dJw6U6sBP3eUq+RXM9RNfPuWTvG2w/WObDkIvJ2KChy6oxZmOSC08Ak2OJA0UiAA==} 403 | cpu: [riscv64] 404 | os: [linux] 405 | 406 | '@rollup/rollup-linux-s390x-gnu@4.45.0': 407 | resolution: {integrity: sha512-2l9sA7d7QdikL0xQwNMO3xURBUNEWyHVHfAsHsUdq+E/pgLTUcCE+gih5PCdmyHmfTDeXUWVhqL0WZzg0nua3g==} 408 | cpu: [s390x] 409 | os: [linux] 410 | 411 | '@rollup/rollup-linux-x64-gnu@4.45.0': 412 | resolution: {integrity: sha512-XZdD3fEEQcwG2KrJDdEQu7NrHonPxxaV0/w2HpvINBdcqebz1aL+0vM2WFJq4DeiAVT6F5SUQas65HY5JDqoPw==} 413 | cpu: [x64] 414 | os: [linux] 415 | 416 | '@rollup/rollup-linux-x64-musl@4.45.0': 417 | resolution: {integrity: sha512-7ayfgvtmmWgKWBkCGg5+xTQ0r5V1owVm67zTrsEY1008L5ro7mCyGYORomARt/OquB9KY7LpxVBZes+oSniAAQ==} 418 | cpu: [x64] 419 | os: [linux] 420 | 421 | '@rollup/rollup-win32-arm64-msvc@4.45.0': 422 | resolution: {integrity: sha512-B+IJgcBnE2bm93jEW5kHisqvPITs4ddLOROAcOc/diBgrEiQJJ6Qcjby75rFSmH5eMGrqJryUgJDhrfj942apQ==} 423 | cpu: [arm64] 424 | os: [win32] 425 | 426 | '@rollup/rollup-win32-ia32-msvc@4.45.0': 427 | resolution: {integrity: sha512-+CXwwG66g0/FpWOnP/v1HnrGVSOygK/osUbu3wPRy8ECXjoYKjRAyfxYpDQOfghC5qPJYLPH0oN4MCOjwgdMug==} 428 | cpu: [ia32] 429 | os: [win32] 430 | 431 | '@rollup/rollup-win32-x64-msvc@4.45.0': 432 | resolution: {integrity: sha512-SRf1cytG7wqcHVLrBc9VtPK4pU5wxiB/lNIkNmW2ApKXIg+RpqwHfsaEK+e7eH4A1BpI6BX/aBWXxZCIrJg3uA==} 433 | cpu: [x64] 434 | os: [win32] 435 | 436 | '@storybook/builder-vite@9.0.16': 437 | resolution: {integrity: sha512-zXockUexeRy3ABG7DFLEvJqJe4mGL0JkI7FMrpwiKaHCQNaD87vR0xkRVeh0a3B8GKUNxoYtpYKvdzc9DobQHQ==} 438 | peerDependencies: 439 | storybook: ^9.0.16 440 | vite: ^5.0.0 || ^6.0.0 || ^7.0.0 441 | 442 | '@storybook/csf-plugin@9.0.16': 443 | resolution: {integrity: sha512-MSmfPwI0j1mMAc+R3DVkVBQf2KLzaVn2SLdEwweesx63Nh9j3zu9CqKEa0zOuDX1lR2M0DZU0lV6K4sc2EYI4A==} 444 | peerDependencies: 445 | storybook: ^9.0.16 446 | 447 | '@storybook/global@5.0.0': 448 | resolution: {integrity: sha512-FcOqPAXACP0I3oJ/ws6/rrPT9WGhu915Cg8D02a9YxLo0DE9zI+a9A5gRGvmQ09fiWPukqI8ZAEoQEdWUKMQdQ==} 449 | 450 | '@storybook/react-dom-shim@9.0.16': 451 | resolution: {integrity: sha512-5aIK+31R41mRUvDB4vmBv8hwh3IVHIk/Zbs6kkWF2a+swOsB2+a06aLX21lma4/0T/AuFVXHWat0+inQ4nrXRg==} 452 | peerDependencies: 453 | react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta 454 | react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta 455 | storybook: ^9.0.16 456 | 457 | '@storybook/react-vite@9.0.16': 458 | resolution: {integrity: sha512-a+UsoymyvPH4bJJVI+asj02N8U2wlkGyzhUqF6LUM9gXzixRMxoRHkchCKLdqLhE+//STrwC0YFF3GG6Y5oMEg==} 459 | engines: {node: '>=20.0.0'} 460 | peerDependencies: 461 | react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta 462 | react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta 463 | storybook: ^9.0.16 464 | vite: ^5.0.0 || ^6.0.0 || ^7.0.0 465 | 466 | '@storybook/react@9.0.16': 467 | resolution: {integrity: sha512-1jk9fBe8vEoZrba9cK19ZDdZgYMXUNl3Egjj5RsTMYMc1L2mtIu9o56VyK/1V4Q52N9IyawHvmIIuxc5pCZHkQ==} 468 | engines: {node: '>=20.0.0'} 469 | peerDependencies: 470 | react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta 471 | react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta 472 | storybook: ^9.0.16 473 | typescript: '>= 4.9.x' 474 | peerDependenciesMeta: 475 | typescript: 476 | optional: true 477 | 478 | '@testing-library/dom@10.4.0': 479 | resolution: {integrity: sha512-pemlzrSESWbdAloYml3bAJMEfNh1Z7EduzqPKprCH5S341frlpYnUEW0H72dLxa6IsYr+mPno20GiSm+h9dEdQ==} 480 | engines: {node: '>=18'} 481 | 482 | '@testing-library/jest-dom@6.6.3': 483 | resolution: {integrity: sha512-IteBhl4XqYNkM54f4ejhLRJiZNqcSCoXUOG2CPK7qbD322KjQozM4kHQOfkG2oln9b9HTYqs+Sae8vBATubxxA==} 484 | engines: {node: '>=14', npm: '>=6', yarn: '>=1'} 485 | 486 | '@testing-library/user-event@14.6.1': 487 | resolution: {integrity: sha512-vq7fv0rnt+QTXgPxr5Hjc210p6YKq2kmdziLgnsZGgLJ9e6VAShx1pACLuRjd/AS/sr7phAR58OIIpf0LlmQNw==} 488 | engines: {node: '>=12', npm: '>=6'} 489 | peerDependencies: 490 | '@testing-library/dom': '>=7.21.4' 491 | 492 | '@types/aria-query@5.0.4': 493 | resolution: {integrity: sha512-rfT93uj5s0PRL7EzccGMs3brplhcrghnDoV26NqKhCAS1hVo+WdNsPvE/yb6ilfr5hi2MEk6d5EWJTKdxg8jVw==} 494 | 495 | '@types/babel__core@7.20.5': 496 | resolution: {integrity: sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==} 497 | 498 | '@types/babel__generator@7.27.0': 499 | resolution: {integrity: sha512-ufFd2Xi92OAVPYsy+P4n7/U7e68fex0+Ee8gSG9KX7eo084CWiQ4sdxktvdl0bOPupXtVJPY19zk6EwWqUQ8lg==} 500 | 501 | '@types/babel__template@7.4.4': 502 | resolution: {integrity: sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==} 503 | 504 | '@types/babel__traverse@7.20.7': 505 | resolution: {integrity: sha512-dkO5fhS7+/oos4ciWxyEyjWe48zmG6wbCheo/G2ZnHx4fs3EU6YC6UM8rk56gAjNJ9P3MTH2jo5jb92/K6wbng==} 506 | 507 | '@types/chai@5.2.2': 508 | resolution: {integrity: sha512-8kB30R7Hwqf40JPiKhVzodJs2Qc1ZJ5zuT3uzw5Hq/dhNCl3G3l83jfpdI1e20BP348+fV7VIL/+FxaXkqBmWg==} 509 | 510 | '@types/deep-eql@4.0.2': 511 | resolution: {integrity: sha512-c9h9dVVMigMPc4bwTvC5dxqtqJZwQPePsWjPlpSOnojbor6pGqdk541lfA7AqFQr5pB1BRdq0juY9db81BwyFw==} 512 | 513 | '@types/doctrine@0.0.9': 514 | resolution: {integrity: sha512-eOIHzCUSH7SMfonMG1LsC2f8vxBFtho6NGBznK41R84YzPuvSBzrhEps33IsQiOW9+VL6NQ9DbjQJznk/S4uRA==} 515 | 516 | '@types/estree@1.0.8': 517 | resolution: {integrity: sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==} 518 | 519 | '@types/prop-types@15.7.13': 520 | resolution: {integrity: sha512-hCZTSvwbzWGvhqxp/RqVqwU999pBf2vp7hzIjiYOsl8wqOmUxkQ6ddw1cV3l8811+kdUFus/q4d1Y3E3SyEifA==} 521 | 522 | '@types/react@18.3.12': 523 | resolution: {integrity: sha512-D2wOSq/d6Agt28q7rSI3jhU7G6aiuzljDGZ2hTZHIkrTLUI+AF3WMeKkEZ9nN2fkBAlcktT6vcZjDFiIhMYEQw==} 524 | 525 | '@types/resolve@1.20.6': 526 | resolution: {integrity: sha512-A4STmOXPhMUtHH+S6ymgE2GiBSMqf4oTvcQZMcHzokuTLVYzXTB8ttjcgxOVaAp2lGwEdzZ0J+cRbbeevQj1UQ==} 527 | 528 | '@vitejs/plugin-react@4.6.0': 529 | resolution: {integrity: sha512-5Kgff+m8e2PB+9j51eGHEpn5kUzRKH2Ry0qGoe8ItJg7pqnkPrYPkDQZGgGmTa0EGarHrkjLvOdU3b1fzI8otQ==} 530 | engines: {node: ^14.18.0 || >=16.0.0} 531 | peerDependencies: 532 | vite: ^4.2.0 || ^5.0.0 || ^6.0.0 || ^7.0.0-beta.0 533 | 534 | '@vitest/expect@3.2.4': 535 | resolution: {integrity: sha512-Io0yyORnB6sikFlt8QW5K7slY4OjqNX9jmJQ02QDda8lyM6B5oNgVWoSoKPac8/kgnCUzuHQKrSLtu/uOqqrig==} 536 | 537 | '@vitest/pretty-format@3.2.4': 538 | resolution: {integrity: sha512-IVNZik8IVRJRTr9fxlitMKeJeXFFFN0JaB9PHPGQ8NKQbGpfjlTx9zO4RefN8gp7eqjNy8nyK3NZmBzOPeIxtA==} 539 | 540 | '@vitest/spy@3.2.4': 541 | resolution: {integrity: sha512-vAfasCOe6AIK70iP5UD11Ac4siNUNJ9i/9PZ3NKx07sG6sUxeag1LWdNrMWeKKYBLlzuK+Gn65Yd5nyL6ds+nw==} 542 | 543 | '@vitest/utils@3.2.4': 544 | resolution: {integrity: sha512-fB2V0JFrQSMsCo9HiSq3Ezpdv4iYaXRG1Sx8edX3MwxfyNn83mKiGzOcH+Fkxt4MHxr3y42fQi1oeAInqgX2QA==} 545 | 546 | acorn@8.15.0: 547 | resolution: {integrity: sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==} 548 | engines: {node: '>=0.4.0'} 549 | hasBin: true 550 | 551 | ansi-regex@5.0.1: 552 | resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} 553 | engines: {node: '>=8'} 554 | 555 | ansi-regex@6.1.0: 556 | resolution: {integrity: sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==} 557 | engines: {node: '>=12'} 558 | 559 | ansi-styles@4.3.0: 560 | resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} 561 | engines: {node: '>=8'} 562 | 563 | ansi-styles@5.2.0: 564 | resolution: {integrity: sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==} 565 | engines: {node: '>=10'} 566 | 567 | ansi-styles@6.2.1: 568 | resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==} 569 | engines: {node: '>=12'} 570 | 571 | aria-query@5.3.0: 572 | resolution: {integrity: sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==} 573 | 574 | aria-query@5.3.2: 575 | resolution: {integrity: sha512-COROpnaoap1E2F000S62r6A60uHZnmlvomhfyT2DlTcrY1OrBKn2UhH7qn5wTC9zMvD0AY7csdPSNwKP+7WiQw==} 576 | engines: {node: '>= 0.4'} 577 | 578 | assertion-error@2.0.1: 579 | resolution: {integrity: sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==} 580 | engines: {node: '>=12'} 581 | 582 | ast-types@0.16.1: 583 | resolution: {integrity: sha512-6t10qk83GOG8p0vKmaCr8eiilZwO171AvbROMtvvNiwrTly62t+7XkA8RdIIVbpMhCASAsxgAzdRSwh6nw/5Dg==} 584 | engines: {node: '>=4'} 585 | 586 | balanced-match@1.0.2: 587 | resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} 588 | 589 | better-opn@3.0.2: 590 | resolution: {integrity: sha512-aVNobHnJqLiUelTaHat9DZ1qM2w0C0Eym4LPI/3JxOnSokGVdsl1T1kN7TFvsEAD8G47A6VKQ0TVHqbBnYMJlQ==} 591 | engines: {node: '>=12.0.0'} 592 | 593 | brace-expansion@2.0.2: 594 | resolution: {integrity: sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==} 595 | 596 | browserslist@4.25.1: 597 | resolution: {integrity: sha512-KGj0KoOMXLpSNkkEI6Z6mShmQy0bc1I+T7K9N81k4WWMrfz+6fQ6es80B/YLAeRoKvjYE1YSHHOW1qe9xIVzHw==} 598 | engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} 599 | hasBin: true 600 | 601 | caniuse-lite@1.0.30001727: 602 | resolution: {integrity: sha512-pB68nIHmbN6L/4C6MH1DokyR3bYqFwjaSs/sWDHGj4CTcFtQUQMuJftVwWkXq7mNWOybD3KhUv3oWHoGxgP14Q==} 603 | 604 | chai@5.2.1: 605 | resolution: {integrity: sha512-5nFxhUrX0PqtyogoYOA8IPswy5sZFTOsBFl/9bNsmDLgsxYTzSZQJDPppDnZPTQbzSEm0hqGjWPzRemQCYbD6A==} 606 | engines: {node: '>=18'} 607 | 608 | chalk@3.0.0: 609 | resolution: {integrity: sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==} 610 | engines: {node: '>=8'} 611 | 612 | chalk@4.1.2: 613 | resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} 614 | engines: {node: '>=10'} 615 | 616 | check-error@2.1.1: 617 | resolution: {integrity: sha512-OAlb+T7V4Op9OwdkjmguYRqncdlx5JiofwOAUkmTF+jNdHwzTaTs4sRAGpzLF3oOz5xAyDGrPgeIDFQmDOTiJw==} 618 | engines: {node: '>= 16'} 619 | 620 | color-convert@2.0.1: 621 | resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} 622 | engines: {node: '>=7.0.0'} 623 | 624 | color-name@1.1.4: 625 | resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} 626 | 627 | convert-source-map@2.0.0: 628 | resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==} 629 | 630 | cross-spawn@7.0.6: 631 | resolution: {integrity: sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==} 632 | engines: {node: '>= 8'} 633 | 634 | css.escape@1.5.1: 635 | resolution: {integrity: sha512-YUifsXXuknHlUsmlgyY0PKzgPOr7/FjCePfHNt0jxm83wHZi44VDMQ7/fGNkjY3/jV1MC+1CmZbaHzugyeRtpg==} 636 | 637 | csstype@3.1.3: 638 | resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==} 639 | 640 | debug@4.4.1: 641 | resolution: {integrity: sha512-KcKCqiftBJcZr++7ykoDIEwSa3XWowTfNPo92BYxjXiyYEVrUQh2aLyhxBCwww+heortUFxEJYcRzosstTEBYQ==} 642 | engines: {node: '>=6.0'} 643 | peerDependencies: 644 | supports-color: '*' 645 | peerDependenciesMeta: 646 | supports-color: 647 | optional: true 648 | 649 | deep-eql@5.0.2: 650 | resolution: {integrity: sha512-h5k/5U50IJJFpzfL6nO9jaaumfjO/f2NjK/oYB2Djzm4p9L+3T9qWpZqZ2hAbLPuuYq9wrU08WQyBTL5GbPk5Q==} 651 | engines: {node: '>=6'} 652 | 653 | define-lazy-prop@2.0.0: 654 | resolution: {integrity: sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==} 655 | engines: {node: '>=8'} 656 | 657 | dequal@2.0.3: 658 | resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==} 659 | engines: {node: '>=6'} 660 | 661 | doctrine@3.0.0: 662 | resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==} 663 | engines: {node: '>=6.0.0'} 664 | 665 | dom-accessibility-api@0.5.16: 666 | resolution: {integrity: sha512-X7BJ2yElsnOJ30pZF4uIIDfBEVgF4XEBxL9Bxhy6dnrm5hkzqmsWHGTiHqRiITNhMyFLyAiWndIJP7Z1NTteDg==} 667 | 668 | dom-accessibility-api@0.6.3: 669 | resolution: {integrity: sha512-7ZgogeTnjuHbo+ct10G9Ffp0mif17idi0IyWNVA/wcwcm7NPOD/WEHVP3n7n3MhXqxoIYm8d6MuZohYWIZ4T3w==} 670 | 671 | eastasianwidth@0.2.0: 672 | resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} 673 | 674 | electron-to-chromium@1.5.182: 675 | resolution: {integrity: sha512-Lv65Btwv9W4J9pyODI6EWpdnhfvrve/us5h1WspW8B2Fb0366REPtY3hX7ounk1CkV/TBjWCEvCBBbYbmV0qCA==} 676 | 677 | emoji-regex@8.0.0: 678 | resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} 679 | 680 | emoji-regex@9.2.2: 681 | resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} 682 | 683 | esbuild-register@3.6.0: 684 | resolution: {integrity: sha512-H2/S7Pm8a9CL1uhp9OvjwrBh5Pvx0H8qVOxNu8Wed9Y7qv56MPtq+GGM8RJpq6glYJn9Wspr8uw7l55uyinNeg==} 685 | peerDependencies: 686 | esbuild: '>=0.12 <1' 687 | 688 | esbuild@0.25.6: 689 | resolution: {integrity: sha512-GVuzuUwtdsghE3ocJ9Bs8PNoF13HNQ5TXbEi2AhvVb8xU1Iwt9Fos9FEamfoee+u/TOsn7GUWc04lz46n2bbTg==} 690 | engines: {node: '>=18'} 691 | hasBin: true 692 | 693 | escalade@3.2.0: 694 | resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==} 695 | engines: {node: '>=6'} 696 | 697 | esprima@4.0.1: 698 | resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==} 699 | engines: {node: '>=4'} 700 | hasBin: true 701 | 702 | estree-walker@2.0.2: 703 | resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==} 704 | 705 | esutils@2.0.3: 706 | resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} 707 | engines: {node: '>=0.10.0'} 708 | 709 | fdir@6.4.6: 710 | resolution: {integrity: sha512-hiFoqpyZcfNm1yc4u8oWCf9A2c4D3QjCrks3zmoVKVxpQRzmPNar1hUJcBG2RQHvEVGDN+Jm81ZheVLAQMK6+w==} 711 | peerDependencies: 712 | picomatch: ^3 || ^4 713 | peerDependenciesMeta: 714 | picomatch: 715 | optional: true 716 | 717 | find-up@7.0.0: 718 | resolution: {integrity: sha512-YyZM99iHrqLKjmt4LJDj58KI+fYyufRLBSYcqycxf//KpBk9FoewoGX0450m9nB44qrZnovzC2oeP5hUibxc/g==} 719 | engines: {node: '>=18'} 720 | 721 | foreground-child@3.3.1: 722 | resolution: {integrity: sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw==} 723 | engines: {node: '>=14'} 724 | 725 | fsevents@2.3.2: 726 | resolution: {integrity: sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==} 727 | engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} 728 | os: [darwin] 729 | 730 | fsevents@2.3.3: 731 | resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} 732 | engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} 733 | os: [darwin] 734 | 735 | function-bind@1.1.2: 736 | resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} 737 | 738 | gensync@1.0.0-beta.2: 739 | resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==} 740 | engines: {node: '>=6.9.0'} 741 | 742 | glob@10.4.5: 743 | resolution: {integrity: sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==} 744 | hasBin: true 745 | 746 | has-flag@4.0.0: 747 | resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} 748 | engines: {node: '>=8'} 749 | 750 | hasown@2.0.2: 751 | resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==} 752 | engines: {node: '>= 0.4'} 753 | 754 | indent-string@4.0.0: 755 | resolution: {integrity: sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==} 756 | engines: {node: '>=8'} 757 | 758 | is-core-module@2.16.1: 759 | resolution: {integrity: sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==} 760 | engines: {node: '>= 0.4'} 761 | 762 | is-docker@2.2.1: 763 | resolution: {integrity: sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==} 764 | engines: {node: '>=8'} 765 | hasBin: true 766 | 767 | is-fullwidth-code-point@3.0.0: 768 | resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} 769 | engines: {node: '>=8'} 770 | 771 | is-wsl@2.2.0: 772 | resolution: {integrity: sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==} 773 | engines: {node: '>=8'} 774 | 775 | isexe@2.0.0: 776 | resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} 777 | 778 | jackspeak@3.4.3: 779 | resolution: {integrity: sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==} 780 | 781 | js-tokens@4.0.0: 782 | resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} 783 | 784 | jsesc@3.1.0: 785 | resolution: {integrity: sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==} 786 | engines: {node: '>=6'} 787 | hasBin: true 788 | 789 | json5@2.2.3: 790 | resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==} 791 | engines: {node: '>=6'} 792 | hasBin: true 793 | 794 | locate-path@7.2.0: 795 | resolution: {integrity: sha512-gvVijfZvn7R+2qyPX8mAuKcFGDf6Nc61GdvGafQsHL0sBIxfKzA+usWn4GFC/bk+QdwPUD4kWFJLhElipq+0VA==} 796 | engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} 797 | 798 | lodash@4.17.21: 799 | resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} 800 | 801 | loupe@3.1.4: 802 | resolution: {integrity: sha512-wJzkKwJrheKtknCOKNEtDK4iqg/MxmZheEMtSTYvnzRdEYaZzmgH976nenp8WdJRdx5Vc1X/9MO0Oszl6ezeXg==} 803 | 804 | lru-cache@10.4.3: 805 | resolution: {integrity: sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==} 806 | 807 | lru-cache@5.1.1: 808 | resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==} 809 | 810 | lz-string@1.5.0: 811 | resolution: {integrity: sha512-h5bgJWpxJNswbU7qCrV0tIKQCaS3blPDrqKWx+QxzuzL1zGUzij9XCWLrSLsJPu5t+eWA/ycetzYAO5IOMcWAQ==} 812 | hasBin: true 813 | 814 | magic-string@0.30.17: 815 | resolution: {integrity: sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA==} 816 | 817 | min-indent@1.0.1: 818 | resolution: {integrity: sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==} 819 | engines: {node: '>=4'} 820 | 821 | minimatch@9.0.5: 822 | resolution: {integrity: sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==} 823 | engines: {node: '>=16 || 14 >=14.17'} 824 | 825 | minimist@1.2.8: 826 | resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} 827 | 828 | minipass@7.1.2: 829 | resolution: {integrity: sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==} 830 | engines: {node: '>=16 || 14 >=14.17'} 831 | 832 | ms@2.1.3: 833 | resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} 834 | 835 | nanoid@3.3.11: 836 | resolution: {integrity: sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==} 837 | engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} 838 | hasBin: true 839 | 840 | node-releases@2.0.19: 841 | resolution: {integrity: sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==} 842 | 843 | open@8.4.2: 844 | resolution: {integrity: sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==} 845 | engines: {node: '>=12'} 846 | 847 | p-limit@4.0.0: 848 | resolution: {integrity: sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==} 849 | engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} 850 | 851 | p-locate@6.0.0: 852 | resolution: {integrity: sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw==} 853 | engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} 854 | 855 | package-json-from-dist@1.0.1: 856 | resolution: {integrity: sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==} 857 | 858 | path-exists@5.0.0: 859 | resolution: {integrity: sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==} 860 | engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} 861 | 862 | path-key@3.1.1: 863 | resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} 864 | engines: {node: '>=8'} 865 | 866 | path-parse@1.0.7: 867 | resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} 868 | 869 | path-scurry@1.11.1: 870 | resolution: {integrity: sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==} 871 | engines: {node: '>=16 || 14 >=14.18'} 872 | 873 | pathval@2.0.1: 874 | resolution: {integrity: sha512-//nshmD55c46FuFw26xV/xFAaB5HF9Xdap7HJBBnrKdAd6/GxDBaNA1870O79+9ueg61cZLSVc+OaFlfmObYVQ==} 875 | engines: {node: '>= 14.16'} 876 | 877 | picocolors@1.1.1: 878 | resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==} 879 | 880 | picomatch@4.0.2: 881 | resolution: {integrity: sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==} 882 | engines: {node: '>=12'} 883 | 884 | playwright-core@1.54.1: 885 | resolution: {integrity: sha512-Nbjs2zjj0htNhzgiy5wu+3w09YetDx5pkrpI/kZotDlDUaYk0HVA5xrBVPdow4SAUIlhgKcJeJg4GRKW6xHusA==} 886 | engines: {node: '>=18'} 887 | hasBin: true 888 | 889 | playwright@1.54.1: 890 | resolution: {integrity: sha512-peWpSwIBmSLi6aW2auvrUtf2DqY16YYcCMO8rTVx486jKmDTJg7UAhyrraP98GB8BoPURZP8+nxO7TSd4cPr5g==} 891 | engines: {node: '>=18'} 892 | hasBin: true 893 | 894 | postcss@8.5.6: 895 | resolution: {integrity: sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==} 896 | engines: {node: ^10 || ^12 || >=14} 897 | 898 | pretty-format@27.5.1: 899 | resolution: {integrity: sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==} 900 | engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} 901 | 902 | react-docgen-typescript@2.4.0: 903 | resolution: {integrity: sha512-ZtAp5XTO5HRzQctjPU0ybY0RRCQO19X/8fxn3w7y2VVTUbGHDKULPTL4ky3vB05euSgG5NpALhEhDPvQ56wvXg==} 904 | peerDependencies: 905 | typescript: '>= 4.3.x' 906 | 907 | react-docgen@8.0.0: 908 | resolution: {integrity: sha512-kmob/FOTwep7DUWf9KjuenKX0vyvChr3oTdvvPt09V60Iz75FJp+T/0ZeHMbAfJj2WaVWqAPP5Hmm3PYzSPPKg==} 909 | engines: {node: ^20.9.0 || >=22} 910 | 911 | react-dom@19.1.0: 912 | resolution: {integrity: sha512-Xs1hdnE+DyKgeHJeJznQmYMIBG3TKIHJJT95Q58nHLSrElKlGQqDTR2HQ9fx5CN/Gk6Vh/kupBTDLU11/nDk/g==} 913 | peerDependencies: 914 | react: ^19.1.0 915 | 916 | react-is@17.0.2: 917 | resolution: {integrity: sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==} 918 | 919 | react-refresh@0.17.0: 920 | resolution: {integrity: sha512-z6F7K9bV85EfseRCp2bzrpyQ0Gkw1uLoCel9XBVWPg/TjRj94SkJzUTGfOa4bs7iJvBWtQG0Wq7wnI0syw3EBQ==} 921 | engines: {node: '>=0.10.0'} 922 | 923 | react@19.1.0: 924 | resolution: {integrity: sha512-FS+XFBNvn3GTAWq26joslQgWNoFu08F4kl0J4CgdNKADkdSGXQyTCnKteIAJy96Br6YbpEU1LSzV5dYtjMkMDg==} 925 | engines: {node: '>=0.10.0'} 926 | 927 | recast@0.23.11: 928 | resolution: {integrity: sha512-YTUo+Flmw4ZXiWfQKGcwwc11KnoRAYgzAE2E7mXKCjSviTKShtxBsN6YUUBB2gtaBzKzeKunxhUwNHQuRryhWA==} 929 | engines: {node: '>= 4'} 930 | 931 | redent@3.0.0: 932 | resolution: {integrity: sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==} 933 | engines: {node: '>=8'} 934 | 935 | resolve@1.22.10: 936 | resolution: {integrity: sha512-NPRy+/ncIMeDlTAsuqwKIiferiawhefFJtkNSW0qZJEqMEb+qBt/77B/jGeeek+F0uOeN05CDa6HXbbIgtVX4w==} 937 | engines: {node: '>= 0.4'} 938 | hasBin: true 939 | 940 | rollup@4.45.0: 941 | resolution: {integrity: sha512-WLjEcJRIo7i3WDDgOIJqVI2d+lAC3EwvOGy+Xfq6hs+GQuAA4Di/H72xmXkOhrIWFg2PFYSKZYfH0f4vfKXN4A==} 942 | engines: {node: '>=18.0.0', npm: '>=8.0.0'} 943 | hasBin: true 944 | 945 | scheduler@0.26.0: 946 | resolution: {integrity: sha512-NlHwttCI/l5gCPR3D1nNXtWABUmBwvZpEQiD4IXSbIDq8BzLIK/7Ir5gTFSGZDUu37K5cMNp0hFtzO38sC7gWA==} 947 | 948 | semver@6.3.1: 949 | resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} 950 | hasBin: true 951 | 952 | semver@7.7.2: 953 | resolution: {integrity: sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==} 954 | engines: {node: '>=10'} 955 | hasBin: true 956 | 957 | shebang-command@2.0.0: 958 | resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} 959 | engines: {node: '>=8'} 960 | 961 | shebang-regex@3.0.0: 962 | resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} 963 | engines: {node: '>=8'} 964 | 965 | signal-exit@4.1.0: 966 | resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} 967 | engines: {node: '>=14'} 968 | 969 | source-map-js@1.2.1: 970 | resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==} 971 | engines: {node: '>=0.10.0'} 972 | 973 | source-map@0.6.1: 974 | resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} 975 | engines: {node: '>=0.10.0'} 976 | 977 | storybook@9.0.16: 978 | resolution: {integrity: sha512-DzjzeggdzlXKKBK1L9iqNKqqNpyfeaL1hxxeAOmqgeMezwy5d5mCJmjNcZEmx+prsRmvj1OWm4ZZAg6iP/wABg==} 979 | hasBin: true 980 | peerDependencies: 981 | prettier: ^2 || ^3 982 | peerDependenciesMeta: 983 | prettier: 984 | optional: true 985 | 986 | string-width@4.2.3: 987 | resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} 988 | engines: {node: '>=8'} 989 | 990 | string-width@5.1.2: 991 | resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==} 992 | engines: {node: '>=12'} 993 | 994 | strip-ansi@6.0.1: 995 | resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} 996 | engines: {node: '>=8'} 997 | 998 | strip-ansi@7.1.0: 999 | resolution: {integrity: sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==} 1000 | engines: {node: '>=12'} 1001 | 1002 | strip-bom@3.0.0: 1003 | resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==} 1004 | engines: {node: '>=4'} 1005 | 1006 | strip-indent@3.0.0: 1007 | resolution: {integrity: sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==} 1008 | engines: {node: '>=8'} 1009 | 1010 | strip-indent@4.0.0: 1011 | resolution: {integrity: sha512-mnVSV2l+Zv6BLpSD/8V87CW/y9EmmbYzGCIavsnsI6/nwn26DwffM/yztm30Z/I2DY9wdS3vXVCMnHDgZaVNoA==} 1012 | engines: {node: '>=12'} 1013 | 1014 | supports-color@7.2.0: 1015 | resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} 1016 | engines: {node: '>=8'} 1017 | 1018 | supports-preserve-symlinks-flag@1.0.0: 1019 | resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} 1020 | engines: {node: '>= 0.4'} 1021 | 1022 | tiny-invariant@1.3.3: 1023 | resolution: {integrity: sha512-+FbBPE1o9QAYvviau/qC5SE3caw21q3xkvWKBtja5vgqOWIHHJ3ioaq1VPfn/Szqctz2bU/oYeKd9/z5BL+PVg==} 1024 | 1025 | tinyglobby@0.2.14: 1026 | resolution: {integrity: sha512-tX5e7OM1HnYr2+a2C/4V0htOcSQcoSTH9KgJnVvNm5zm/cyEWKJ7j7YutsH9CxMdtOkkLFy2AHrMci9IM8IPZQ==} 1027 | engines: {node: '>=12.0.0'} 1028 | 1029 | tinyrainbow@2.0.0: 1030 | resolution: {integrity: sha512-op4nsTR47R6p0vMUUoYl/a+ljLFVtlfaXkLQmqfLR1qHma1h/ysYk4hEXZ880bf2CYgTskvTa/e196Vd5dDQXw==} 1031 | engines: {node: '>=14.0.0'} 1032 | 1033 | tinyspy@4.0.3: 1034 | resolution: {integrity: sha512-t2T/WLB2WRgZ9EpE4jgPJ9w+i66UZfDc8wHh0xrwiRNN+UwH98GIJkTeZqX9rg0i0ptwzqW+uYeIF0T4F8LR7A==} 1035 | engines: {node: '>=14.0.0'} 1036 | 1037 | ts-dedent@2.2.0: 1038 | resolution: {integrity: sha512-q5W7tVM71e2xjHZTlgfTDoPF/SmqKG5hddq9SzR49CH2hayqRKJtQ4mtRlSxKaJlR/+9rEM+mnBHf7I2/BQcpQ==} 1039 | engines: {node: '>=6.10'} 1040 | 1041 | tsconfig-paths@4.2.0: 1042 | resolution: {integrity: sha512-NoZ4roiN7LnbKn9QqE1amc9DJfzvZXxF4xDavcOWt1BPkdx+m+0gJuPM+S0vCe7zTJMYUP0R8pO2XMr+Y8oLIg==} 1043 | engines: {node: '>=6'} 1044 | 1045 | tslib@2.8.1: 1046 | resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==} 1047 | 1048 | typescript@5.6.3: 1049 | resolution: {integrity: sha512-hjcS1mhfuyi4WW8IWtjP7brDrG2cuDZukyrYrSauoXGNgx0S7zceP07adYkJycEr56BOUTNPzbInooiN3fn1qw==} 1050 | engines: {node: '>=14.17'} 1051 | hasBin: true 1052 | 1053 | unicorn-magic@0.1.0: 1054 | resolution: {integrity: sha512-lRfVq8fE8gz6QMBuDM6a+LO3IAzTi05H6gCVaUpir2E1Rwpo4ZUog45KpNXKC/Mn3Yb9UDuHumeFTo9iV/D9FQ==} 1055 | engines: {node: '>=18'} 1056 | 1057 | unplugin@1.16.1: 1058 | resolution: {integrity: sha512-4/u/j4FrCKdi17jaxuJA0jClGxB1AvU2hw/IuayPc4ay1XGaJs/rbb4v5WKwAjNifjmXK9PIFyuPiaK8azyR9w==} 1059 | engines: {node: '>=14.0.0'} 1060 | 1061 | update-browserslist-db@1.1.3: 1062 | resolution: {integrity: sha512-UxhIZQ+QInVdunkDAaiazvvT/+fXL5Osr0JZlJulepYu6Jd7qJtDZjlur0emRlT71EN3ScPoE7gvsuIKKNavKw==} 1063 | hasBin: true 1064 | peerDependencies: 1065 | browserslist: '>= 4.21.0' 1066 | 1067 | vite@7.0.4: 1068 | resolution: {integrity: sha512-SkaSguuS7nnmV7mfJ8l81JGBFV7Gvzp8IzgE8A8t23+AxuNX61Q5H1Tpz5efduSN7NHC8nQXD3sKQKZAu5mNEA==} 1069 | engines: {node: ^20.19.0 || >=22.12.0} 1070 | hasBin: true 1071 | peerDependencies: 1072 | '@types/node': ^20.19.0 || >=22.12.0 1073 | jiti: '>=1.21.0' 1074 | less: ^4.0.0 1075 | lightningcss: ^1.21.0 1076 | sass: ^1.70.0 1077 | sass-embedded: ^1.70.0 1078 | stylus: '>=0.54.8' 1079 | sugarss: ^5.0.0 1080 | terser: ^5.16.0 1081 | tsx: ^4.8.1 1082 | yaml: ^2.4.2 1083 | peerDependenciesMeta: 1084 | '@types/node': 1085 | optional: true 1086 | jiti: 1087 | optional: true 1088 | less: 1089 | optional: true 1090 | lightningcss: 1091 | optional: true 1092 | sass: 1093 | optional: true 1094 | sass-embedded: 1095 | optional: true 1096 | stylus: 1097 | optional: true 1098 | sugarss: 1099 | optional: true 1100 | terser: 1101 | optional: true 1102 | tsx: 1103 | optional: true 1104 | yaml: 1105 | optional: true 1106 | 1107 | webpack-virtual-modules@0.6.2: 1108 | resolution: {integrity: sha512-66/V2i5hQanC51vBQKPH4aI8NMAcBW59FVBs+rC7eGHupMyfn34q7rZIE+ETlJ+XTevqfUhVVBgSUNSW2flEUQ==} 1109 | 1110 | which@2.0.2: 1111 | resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} 1112 | engines: {node: '>= 8'} 1113 | hasBin: true 1114 | 1115 | wrap-ansi@7.0.0: 1116 | resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} 1117 | engines: {node: '>=10'} 1118 | 1119 | wrap-ansi@8.1.0: 1120 | resolution: {integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==} 1121 | engines: {node: '>=12'} 1122 | 1123 | ws@8.18.3: 1124 | resolution: {integrity: sha512-PEIGCY5tSlUt50cqyMXfCzX+oOPqN0vuGqWzbcJ2xvnkzkq46oOpz7dQaTDBdfICb4N14+GARUDw2XV2N4tvzg==} 1125 | engines: {node: '>=10.0.0'} 1126 | peerDependencies: 1127 | bufferutil: ^4.0.1 1128 | utf-8-validate: '>=5.0.2' 1129 | peerDependenciesMeta: 1130 | bufferutil: 1131 | optional: true 1132 | utf-8-validate: 1133 | optional: true 1134 | 1135 | yallist@3.1.1: 1136 | resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==} 1137 | 1138 | yocto-queue@1.2.1: 1139 | resolution: {integrity: sha512-AyeEbWOu/TAXdxlV9wmGcR0+yh2j3vYPGOECcIj2S7MkrLyC7ne+oye2BKTItt0ii2PHk4cDy+95+LshzbXnGg==} 1140 | engines: {node: '>=12.20'} 1141 | 1142 | snapshots: 1143 | 1144 | '@adobe/css-tools@4.4.3': {} 1145 | 1146 | '@ampproject/remapping@2.3.0': 1147 | dependencies: 1148 | '@jridgewell/gen-mapping': 0.3.12 1149 | '@jridgewell/trace-mapping': 0.3.29 1150 | 1151 | '@babel/code-frame@7.27.1': 1152 | dependencies: 1153 | '@babel/helper-validator-identifier': 7.27.1 1154 | js-tokens: 4.0.0 1155 | picocolors: 1.1.1 1156 | 1157 | '@babel/compat-data@7.28.0': {} 1158 | 1159 | '@babel/core@7.28.0': 1160 | dependencies: 1161 | '@ampproject/remapping': 2.3.0 1162 | '@babel/code-frame': 7.27.1 1163 | '@babel/generator': 7.28.0 1164 | '@babel/helper-compilation-targets': 7.27.2 1165 | '@babel/helper-module-transforms': 7.27.3(@babel/core@7.28.0) 1166 | '@babel/helpers': 7.27.6 1167 | '@babel/parser': 7.28.0 1168 | '@babel/template': 7.27.2 1169 | '@babel/traverse': 7.28.0 1170 | '@babel/types': 7.28.0 1171 | convert-source-map: 2.0.0 1172 | debug: 4.4.1 1173 | gensync: 1.0.0-beta.2 1174 | json5: 2.2.3 1175 | semver: 6.3.1 1176 | transitivePeerDependencies: 1177 | - supports-color 1178 | 1179 | '@babel/generator@7.28.0': 1180 | dependencies: 1181 | '@babel/parser': 7.28.0 1182 | '@babel/types': 7.28.0 1183 | '@jridgewell/gen-mapping': 0.3.12 1184 | '@jridgewell/trace-mapping': 0.3.29 1185 | jsesc: 3.1.0 1186 | 1187 | '@babel/helper-compilation-targets@7.27.2': 1188 | dependencies: 1189 | '@babel/compat-data': 7.28.0 1190 | '@babel/helper-validator-option': 7.27.1 1191 | browserslist: 4.25.1 1192 | lru-cache: 5.1.1 1193 | semver: 6.3.1 1194 | 1195 | '@babel/helper-globals@7.28.0': {} 1196 | 1197 | '@babel/helper-module-imports@7.27.1': 1198 | dependencies: 1199 | '@babel/traverse': 7.28.0 1200 | '@babel/types': 7.28.0 1201 | transitivePeerDependencies: 1202 | - supports-color 1203 | 1204 | '@babel/helper-module-transforms@7.27.3(@babel/core@7.28.0)': 1205 | dependencies: 1206 | '@babel/core': 7.28.0 1207 | '@babel/helper-module-imports': 7.27.1 1208 | '@babel/helper-validator-identifier': 7.27.1 1209 | '@babel/traverse': 7.28.0 1210 | transitivePeerDependencies: 1211 | - supports-color 1212 | 1213 | '@babel/helper-plugin-utils@7.27.1': {} 1214 | 1215 | '@babel/helper-string-parser@7.27.1': {} 1216 | 1217 | '@babel/helper-validator-identifier@7.27.1': {} 1218 | 1219 | '@babel/helper-validator-option@7.27.1': {} 1220 | 1221 | '@babel/helpers@7.27.6': 1222 | dependencies: 1223 | '@babel/template': 7.27.2 1224 | '@babel/types': 7.28.0 1225 | 1226 | '@babel/parser@7.28.0': 1227 | dependencies: 1228 | '@babel/types': 7.28.0 1229 | 1230 | '@babel/plugin-transform-react-jsx-self@7.27.1(@babel/core@7.28.0)': 1231 | dependencies: 1232 | '@babel/core': 7.28.0 1233 | '@babel/helper-plugin-utils': 7.27.1 1234 | 1235 | '@babel/plugin-transform-react-jsx-source@7.27.1(@babel/core@7.28.0)': 1236 | dependencies: 1237 | '@babel/core': 7.28.0 1238 | '@babel/helper-plugin-utils': 7.27.1 1239 | 1240 | '@babel/runtime@7.27.6': {} 1241 | 1242 | '@babel/template@7.27.2': 1243 | dependencies: 1244 | '@babel/code-frame': 7.27.1 1245 | '@babel/parser': 7.28.0 1246 | '@babel/types': 7.28.0 1247 | 1248 | '@babel/traverse@7.28.0': 1249 | dependencies: 1250 | '@babel/code-frame': 7.27.1 1251 | '@babel/generator': 7.28.0 1252 | '@babel/helper-globals': 7.28.0 1253 | '@babel/parser': 7.28.0 1254 | '@babel/template': 7.27.2 1255 | '@babel/types': 7.28.0 1256 | debug: 4.4.1 1257 | transitivePeerDependencies: 1258 | - supports-color 1259 | 1260 | '@babel/types@7.28.0': 1261 | dependencies: 1262 | '@babel/helper-string-parser': 7.27.1 1263 | '@babel/helper-validator-identifier': 7.27.1 1264 | 1265 | '@esbuild/aix-ppc64@0.25.6': 1266 | optional: true 1267 | 1268 | '@esbuild/android-arm64@0.25.6': 1269 | optional: true 1270 | 1271 | '@esbuild/android-arm@0.25.6': 1272 | optional: true 1273 | 1274 | '@esbuild/android-x64@0.25.6': 1275 | optional: true 1276 | 1277 | '@esbuild/darwin-arm64@0.25.6': 1278 | optional: true 1279 | 1280 | '@esbuild/darwin-x64@0.25.6': 1281 | optional: true 1282 | 1283 | '@esbuild/freebsd-arm64@0.25.6': 1284 | optional: true 1285 | 1286 | '@esbuild/freebsd-x64@0.25.6': 1287 | optional: true 1288 | 1289 | '@esbuild/linux-arm64@0.25.6': 1290 | optional: true 1291 | 1292 | '@esbuild/linux-arm@0.25.6': 1293 | optional: true 1294 | 1295 | '@esbuild/linux-ia32@0.25.6': 1296 | optional: true 1297 | 1298 | '@esbuild/linux-loong64@0.25.6': 1299 | optional: true 1300 | 1301 | '@esbuild/linux-mips64el@0.25.6': 1302 | optional: true 1303 | 1304 | '@esbuild/linux-ppc64@0.25.6': 1305 | optional: true 1306 | 1307 | '@esbuild/linux-riscv64@0.25.6': 1308 | optional: true 1309 | 1310 | '@esbuild/linux-s390x@0.25.6': 1311 | optional: true 1312 | 1313 | '@esbuild/linux-x64@0.25.6': 1314 | optional: true 1315 | 1316 | '@esbuild/netbsd-arm64@0.25.6': 1317 | optional: true 1318 | 1319 | '@esbuild/netbsd-x64@0.25.6': 1320 | optional: true 1321 | 1322 | '@esbuild/openbsd-arm64@0.25.6': 1323 | optional: true 1324 | 1325 | '@esbuild/openbsd-x64@0.25.6': 1326 | optional: true 1327 | 1328 | '@esbuild/openharmony-arm64@0.25.6': 1329 | optional: true 1330 | 1331 | '@esbuild/sunos-x64@0.25.6': 1332 | optional: true 1333 | 1334 | '@esbuild/win32-arm64@0.25.6': 1335 | optional: true 1336 | 1337 | '@esbuild/win32-ia32@0.25.6': 1338 | optional: true 1339 | 1340 | '@esbuild/win32-x64@0.25.6': 1341 | optional: true 1342 | 1343 | '@isaacs/cliui@8.0.2': 1344 | dependencies: 1345 | string-width: 5.1.2 1346 | string-width-cjs: string-width@4.2.3 1347 | strip-ansi: 7.1.0 1348 | strip-ansi-cjs: strip-ansi@6.0.1 1349 | wrap-ansi: 8.1.0 1350 | wrap-ansi-cjs: wrap-ansi@7.0.0 1351 | 1352 | '@joshwooding/vite-plugin-react-docgen-typescript@0.6.1(typescript@5.6.3)(vite@7.0.4)': 1353 | dependencies: 1354 | glob: 10.4.5 1355 | magic-string: 0.30.17 1356 | react-docgen-typescript: 2.4.0(typescript@5.6.3) 1357 | vite: 7.0.4 1358 | optionalDependencies: 1359 | typescript: 5.6.3 1360 | 1361 | '@jridgewell/gen-mapping@0.3.12': 1362 | dependencies: 1363 | '@jridgewell/sourcemap-codec': 1.5.4 1364 | '@jridgewell/trace-mapping': 0.3.29 1365 | 1366 | '@jridgewell/resolve-uri@3.1.2': {} 1367 | 1368 | '@jridgewell/sourcemap-codec@1.5.4': {} 1369 | 1370 | '@jridgewell/trace-mapping@0.3.29': 1371 | dependencies: 1372 | '@jridgewell/resolve-uri': 3.1.2 1373 | '@jridgewell/sourcemap-codec': 1.5.4 1374 | 1375 | '@pkgjs/parseargs@0.11.0': 1376 | optional: true 1377 | 1378 | '@rolldown/pluginutils@1.0.0-beta.19': {} 1379 | 1380 | '@rollup/pluginutils@5.2.0(rollup@4.45.0)': 1381 | dependencies: 1382 | '@types/estree': 1.0.8 1383 | estree-walker: 2.0.2 1384 | picomatch: 4.0.2 1385 | optionalDependencies: 1386 | rollup: 4.45.0 1387 | 1388 | '@rollup/rollup-android-arm-eabi@4.45.0': 1389 | optional: true 1390 | 1391 | '@rollup/rollup-android-arm64@4.45.0': 1392 | optional: true 1393 | 1394 | '@rollup/rollup-darwin-arm64@4.45.0': 1395 | optional: true 1396 | 1397 | '@rollup/rollup-darwin-x64@4.45.0': 1398 | optional: true 1399 | 1400 | '@rollup/rollup-freebsd-arm64@4.45.0': 1401 | optional: true 1402 | 1403 | '@rollup/rollup-freebsd-x64@4.45.0': 1404 | optional: true 1405 | 1406 | '@rollup/rollup-linux-arm-gnueabihf@4.45.0': 1407 | optional: true 1408 | 1409 | '@rollup/rollup-linux-arm-musleabihf@4.45.0': 1410 | optional: true 1411 | 1412 | '@rollup/rollup-linux-arm64-gnu@4.45.0': 1413 | optional: true 1414 | 1415 | '@rollup/rollup-linux-arm64-musl@4.45.0': 1416 | optional: true 1417 | 1418 | '@rollup/rollup-linux-loongarch64-gnu@4.45.0': 1419 | optional: true 1420 | 1421 | '@rollup/rollup-linux-powerpc64le-gnu@4.45.0': 1422 | optional: true 1423 | 1424 | '@rollup/rollup-linux-riscv64-gnu@4.45.0': 1425 | optional: true 1426 | 1427 | '@rollup/rollup-linux-riscv64-musl@4.45.0': 1428 | optional: true 1429 | 1430 | '@rollup/rollup-linux-s390x-gnu@4.45.0': 1431 | optional: true 1432 | 1433 | '@rollup/rollup-linux-x64-gnu@4.45.0': 1434 | optional: true 1435 | 1436 | '@rollup/rollup-linux-x64-musl@4.45.0': 1437 | optional: true 1438 | 1439 | '@rollup/rollup-win32-arm64-msvc@4.45.0': 1440 | optional: true 1441 | 1442 | '@rollup/rollup-win32-ia32-msvc@4.45.0': 1443 | optional: true 1444 | 1445 | '@rollup/rollup-win32-x64-msvc@4.45.0': 1446 | optional: true 1447 | 1448 | '@storybook/builder-vite@9.0.16(storybook@9.0.16(@testing-library/dom@10.4.0))(vite@7.0.4)': 1449 | dependencies: 1450 | '@storybook/csf-plugin': 9.0.16(storybook@9.0.16(@testing-library/dom@10.4.0)) 1451 | storybook: 9.0.16(@testing-library/dom@10.4.0) 1452 | ts-dedent: 2.2.0 1453 | vite: 7.0.4 1454 | 1455 | '@storybook/csf-plugin@9.0.16(storybook@9.0.16(@testing-library/dom@10.4.0))': 1456 | dependencies: 1457 | storybook: 9.0.16(@testing-library/dom@10.4.0) 1458 | unplugin: 1.16.1 1459 | 1460 | '@storybook/global@5.0.0': {} 1461 | 1462 | '@storybook/react-dom-shim@9.0.16(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(storybook@9.0.16(@testing-library/dom@10.4.0))': 1463 | dependencies: 1464 | react: 19.1.0 1465 | react-dom: 19.1.0(react@19.1.0) 1466 | storybook: 9.0.16(@testing-library/dom@10.4.0) 1467 | 1468 | '@storybook/react-vite@9.0.16(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(rollup@4.45.0)(storybook@9.0.16(@testing-library/dom@10.4.0))(typescript@5.6.3)(vite@7.0.4)': 1469 | dependencies: 1470 | '@joshwooding/vite-plugin-react-docgen-typescript': 0.6.1(typescript@5.6.3)(vite@7.0.4) 1471 | '@rollup/pluginutils': 5.2.0(rollup@4.45.0) 1472 | '@storybook/builder-vite': 9.0.16(storybook@9.0.16(@testing-library/dom@10.4.0))(vite@7.0.4) 1473 | '@storybook/react': 9.0.16(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(storybook@9.0.16(@testing-library/dom@10.4.0))(typescript@5.6.3) 1474 | find-up: 7.0.0 1475 | magic-string: 0.30.17 1476 | react: 19.1.0 1477 | react-docgen: 8.0.0 1478 | react-dom: 19.1.0(react@19.1.0) 1479 | resolve: 1.22.10 1480 | storybook: 9.0.16(@testing-library/dom@10.4.0) 1481 | tsconfig-paths: 4.2.0 1482 | vite: 7.0.4 1483 | transitivePeerDependencies: 1484 | - rollup 1485 | - supports-color 1486 | - typescript 1487 | 1488 | '@storybook/react@9.0.16(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(storybook@9.0.16(@testing-library/dom@10.4.0))(typescript@5.6.3)': 1489 | dependencies: 1490 | '@storybook/global': 5.0.0 1491 | '@storybook/react-dom-shim': 9.0.16(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(storybook@9.0.16(@testing-library/dom@10.4.0)) 1492 | react: 19.1.0 1493 | react-dom: 19.1.0(react@19.1.0) 1494 | storybook: 9.0.16(@testing-library/dom@10.4.0) 1495 | optionalDependencies: 1496 | typescript: 5.6.3 1497 | 1498 | '@testing-library/dom@10.4.0': 1499 | dependencies: 1500 | '@babel/code-frame': 7.27.1 1501 | '@babel/runtime': 7.27.6 1502 | '@types/aria-query': 5.0.4 1503 | aria-query: 5.3.0 1504 | chalk: 4.1.2 1505 | dom-accessibility-api: 0.5.16 1506 | lz-string: 1.5.0 1507 | pretty-format: 27.5.1 1508 | 1509 | '@testing-library/jest-dom@6.6.3': 1510 | dependencies: 1511 | '@adobe/css-tools': 4.4.3 1512 | aria-query: 5.3.2 1513 | chalk: 3.0.0 1514 | css.escape: 1.5.1 1515 | dom-accessibility-api: 0.6.3 1516 | lodash: 4.17.21 1517 | redent: 3.0.0 1518 | 1519 | '@testing-library/user-event@14.6.1(@testing-library/dom@10.4.0)': 1520 | dependencies: 1521 | '@testing-library/dom': 10.4.0 1522 | 1523 | '@types/aria-query@5.0.4': {} 1524 | 1525 | '@types/babel__core@7.20.5': 1526 | dependencies: 1527 | '@babel/parser': 7.28.0 1528 | '@babel/types': 7.28.0 1529 | '@types/babel__generator': 7.27.0 1530 | '@types/babel__template': 7.4.4 1531 | '@types/babel__traverse': 7.20.7 1532 | 1533 | '@types/babel__generator@7.27.0': 1534 | dependencies: 1535 | '@babel/types': 7.28.0 1536 | 1537 | '@types/babel__template@7.4.4': 1538 | dependencies: 1539 | '@babel/parser': 7.28.0 1540 | '@babel/types': 7.28.0 1541 | 1542 | '@types/babel__traverse@7.20.7': 1543 | dependencies: 1544 | '@babel/types': 7.28.0 1545 | 1546 | '@types/chai@5.2.2': 1547 | dependencies: 1548 | '@types/deep-eql': 4.0.2 1549 | 1550 | '@types/deep-eql@4.0.2': {} 1551 | 1552 | '@types/doctrine@0.0.9': {} 1553 | 1554 | '@types/estree@1.0.8': {} 1555 | 1556 | '@types/prop-types@15.7.13': {} 1557 | 1558 | '@types/react@18.3.12': 1559 | dependencies: 1560 | '@types/prop-types': 15.7.13 1561 | csstype: 3.1.3 1562 | 1563 | '@types/resolve@1.20.6': {} 1564 | 1565 | '@vitejs/plugin-react@4.6.0(vite@7.0.4)': 1566 | dependencies: 1567 | '@babel/core': 7.28.0 1568 | '@babel/plugin-transform-react-jsx-self': 7.27.1(@babel/core@7.28.0) 1569 | '@babel/plugin-transform-react-jsx-source': 7.27.1(@babel/core@7.28.0) 1570 | '@rolldown/pluginutils': 1.0.0-beta.19 1571 | '@types/babel__core': 7.20.5 1572 | react-refresh: 0.17.0 1573 | vite: 7.0.4 1574 | transitivePeerDependencies: 1575 | - supports-color 1576 | 1577 | '@vitest/expect@3.2.4': 1578 | dependencies: 1579 | '@types/chai': 5.2.2 1580 | '@vitest/spy': 3.2.4 1581 | '@vitest/utils': 3.2.4 1582 | chai: 5.2.1 1583 | tinyrainbow: 2.0.0 1584 | 1585 | '@vitest/pretty-format@3.2.4': 1586 | dependencies: 1587 | tinyrainbow: 2.0.0 1588 | 1589 | '@vitest/spy@3.2.4': 1590 | dependencies: 1591 | tinyspy: 4.0.3 1592 | 1593 | '@vitest/utils@3.2.4': 1594 | dependencies: 1595 | '@vitest/pretty-format': 3.2.4 1596 | loupe: 3.1.4 1597 | tinyrainbow: 2.0.0 1598 | 1599 | acorn@8.15.0: {} 1600 | 1601 | ansi-regex@5.0.1: {} 1602 | 1603 | ansi-regex@6.1.0: {} 1604 | 1605 | ansi-styles@4.3.0: 1606 | dependencies: 1607 | color-convert: 2.0.1 1608 | 1609 | ansi-styles@5.2.0: {} 1610 | 1611 | ansi-styles@6.2.1: {} 1612 | 1613 | aria-query@5.3.0: 1614 | dependencies: 1615 | dequal: 2.0.3 1616 | 1617 | aria-query@5.3.2: {} 1618 | 1619 | assertion-error@2.0.1: {} 1620 | 1621 | ast-types@0.16.1: 1622 | dependencies: 1623 | tslib: 2.8.1 1624 | 1625 | balanced-match@1.0.2: {} 1626 | 1627 | better-opn@3.0.2: 1628 | dependencies: 1629 | open: 8.4.2 1630 | 1631 | brace-expansion@2.0.2: 1632 | dependencies: 1633 | balanced-match: 1.0.2 1634 | 1635 | browserslist@4.25.1: 1636 | dependencies: 1637 | caniuse-lite: 1.0.30001727 1638 | electron-to-chromium: 1.5.182 1639 | node-releases: 2.0.19 1640 | update-browserslist-db: 1.1.3(browserslist@4.25.1) 1641 | 1642 | caniuse-lite@1.0.30001727: {} 1643 | 1644 | chai@5.2.1: 1645 | dependencies: 1646 | assertion-error: 2.0.1 1647 | check-error: 2.1.1 1648 | deep-eql: 5.0.2 1649 | loupe: 3.1.4 1650 | pathval: 2.0.1 1651 | 1652 | chalk@3.0.0: 1653 | dependencies: 1654 | ansi-styles: 4.3.0 1655 | supports-color: 7.2.0 1656 | 1657 | chalk@4.1.2: 1658 | dependencies: 1659 | ansi-styles: 4.3.0 1660 | supports-color: 7.2.0 1661 | 1662 | check-error@2.1.1: {} 1663 | 1664 | color-convert@2.0.1: 1665 | dependencies: 1666 | color-name: 1.1.4 1667 | 1668 | color-name@1.1.4: {} 1669 | 1670 | convert-source-map@2.0.0: {} 1671 | 1672 | cross-spawn@7.0.6: 1673 | dependencies: 1674 | path-key: 3.1.1 1675 | shebang-command: 2.0.0 1676 | which: 2.0.2 1677 | 1678 | css.escape@1.5.1: {} 1679 | 1680 | csstype@3.1.3: {} 1681 | 1682 | debug@4.4.1: 1683 | dependencies: 1684 | ms: 2.1.3 1685 | 1686 | deep-eql@5.0.2: {} 1687 | 1688 | define-lazy-prop@2.0.0: {} 1689 | 1690 | dequal@2.0.3: {} 1691 | 1692 | doctrine@3.0.0: 1693 | dependencies: 1694 | esutils: 2.0.3 1695 | 1696 | dom-accessibility-api@0.5.16: {} 1697 | 1698 | dom-accessibility-api@0.6.3: {} 1699 | 1700 | eastasianwidth@0.2.0: {} 1701 | 1702 | electron-to-chromium@1.5.182: {} 1703 | 1704 | emoji-regex@8.0.0: {} 1705 | 1706 | emoji-regex@9.2.2: {} 1707 | 1708 | esbuild-register@3.6.0(esbuild@0.25.6): 1709 | dependencies: 1710 | debug: 4.4.1 1711 | esbuild: 0.25.6 1712 | transitivePeerDependencies: 1713 | - supports-color 1714 | 1715 | esbuild@0.25.6: 1716 | optionalDependencies: 1717 | '@esbuild/aix-ppc64': 0.25.6 1718 | '@esbuild/android-arm': 0.25.6 1719 | '@esbuild/android-arm64': 0.25.6 1720 | '@esbuild/android-x64': 0.25.6 1721 | '@esbuild/darwin-arm64': 0.25.6 1722 | '@esbuild/darwin-x64': 0.25.6 1723 | '@esbuild/freebsd-arm64': 0.25.6 1724 | '@esbuild/freebsd-x64': 0.25.6 1725 | '@esbuild/linux-arm': 0.25.6 1726 | '@esbuild/linux-arm64': 0.25.6 1727 | '@esbuild/linux-ia32': 0.25.6 1728 | '@esbuild/linux-loong64': 0.25.6 1729 | '@esbuild/linux-mips64el': 0.25.6 1730 | '@esbuild/linux-ppc64': 0.25.6 1731 | '@esbuild/linux-riscv64': 0.25.6 1732 | '@esbuild/linux-s390x': 0.25.6 1733 | '@esbuild/linux-x64': 0.25.6 1734 | '@esbuild/netbsd-arm64': 0.25.6 1735 | '@esbuild/netbsd-x64': 0.25.6 1736 | '@esbuild/openbsd-arm64': 0.25.6 1737 | '@esbuild/openbsd-x64': 0.25.6 1738 | '@esbuild/openharmony-arm64': 0.25.6 1739 | '@esbuild/sunos-x64': 0.25.6 1740 | '@esbuild/win32-arm64': 0.25.6 1741 | '@esbuild/win32-ia32': 0.25.6 1742 | '@esbuild/win32-x64': 0.25.6 1743 | 1744 | escalade@3.2.0: {} 1745 | 1746 | esprima@4.0.1: {} 1747 | 1748 | estree-walker@2.0.2: {} 1749 | 1750 | esutils@2.0.3: {} 1751 | 1752 | fdir@6.4.6(picomatch@4.0.2): 1753 | optionalDependencies: 1754 | picomatch: 4.0.2 1755 | 1756 | find-up@7.0.0: 1757 | dependencies: 1758 | locate-path: 7.2.0 1759 | path-exists: 5.0.0 1760 | unicorn-magic: 0.1.0 1761 | 1762 | foreground-child@3.3.1: 1763 | dependencies: 1764 | cross-spawn: 7.0.6 1765 | signal-exit: 4.1.0 1766 | 1767 | fsevents@2.3.2: 1768 | optional: true 1769 | 1770 | fsevents@2.3.3: 1771 | optional: true 1772 | 1773 | function-bind@1.1.2: {} 1774 | 1775 | gensync@1.0.0-beta.2: {} 1776 | 1777 | glob@10.4.5: 1778 | dependencies: 1779 | foreground-child: 3.3.1 1780 | jackspeak: 3.4.3 1781 | minimatch: 9.0.5 1782 | minipass: 7.1.2 1783 | package-json-from-dist: 1.0.1 1784 | path-scurry: 1.11.1 1785 | 1786 | has-flag@4.0.0: {} 1787 | 1788 | hasown@2.0.2: 1789 | dependencies: 1790 | function-bind: 1.1.2 1791 | 1792 | indent-string@4.0.0: {} 1793 | 1794 | is-core-module@2.16.1: 1795 | dependencies: 1796 | hasown: 2.0.2 1797 | 1798 | is-docker@2.2.1: {} 1799 | 1800 | is-fullwidth-code-point@3.0.0: {} 1801 | 1802 | is-wsl@2.2.0: 1803 | dependencies: 1804 | is-docker: 2.2.1 1805 | 1806 | isexe@2.0.0: {} 1807 | 1808 | jackspeak@3.4.3: 1809 | dependencies: 1810 | '@isaacs/cliui': 8.0.2 1811 | optionalDependencies: 1812 | '@pkgjs/parseargs': 0.11.0 1813 | 1814 | js-tokens@4.0.0: {} 1815 | 1816 | jsesc@3.1.0: {} 1817 | 1818 | json5@2.2.3: {} 1819 | 1820 | locate-path@7.2.0: 1821 | dependencies: 1822 | p-locate: 6.0.0 1823 | 1824 | lodash@4.17.21: {} 1825 | 1826 | loupe@3.1.4: {} 1827 | 1828 | lru-cache@10.4.3: {} 1829 | 1830 | lru-cache@5.1.1: 1831 | dependencies: 1832 | yallist: 3.1.1 1833 | 1834 | lz-string@1.5.0: {} 1835 | 1836 | magic-string@0.30.17: 1837 | dependencies: 1838 | '@jridgewell/sourcemap-codec': 1.5.4 1839 | 1840 | min-indent@1.0.1: {} 1841 | 1842 | minimatch@9.0.5: 1843 | dependencies: 1844 | brace-expansion: 2.0.2 1845 | 1846 | minimist@1.2.8: {} 1847 | 1848 | minipass@7.1.2: {} 1849 | 1850 | ms@2.1.3: {} 1851 | 1852 | nanoid@3.3.11: {} 1853 | 1854 | node-releases@2.0.19: {} 1855 | 1856 | open@8.4.2: 1857 | dependencies: 1858 | define-lazy-prop: 2.0.0 1859 | is-docker: 2.2.1 1860 | is-wsl: 2.2.0 1861 | 1862 | p-limit@4.0.0: 1863 | dependencies: 1864 | yocto-queue: 1.2.1 1865 | 1866 | p-locate@6.0.0: 1867 | dependencies: 1868 | p-limit: 4.0.0 1869 | 1870 | package-json-from-dist@1.0.1: {} 1871 | 1872 | path-exists@5.0.0: {} 1873 | 1874 | path-key@3.1.1: {} 1875 | 1876 | path-parse@1.0.7: {} 1877 | 1878 | path-scurry@1.11.1: 1879 | dependencies: 1880 | lru-cache: 10.4.3 1881 | minipass: 7.1.2 1882 | 1883 | pathval@2.0.1: {} 1884 | 1885 | picocolors@1.1.1: {} 1886 | 1887 | picomatch@4.0.2: {} 1888 | 1889 | playwright-core@1.54.1: {} 1890 | 1891 | playwright@1.54.1: 1892 | dependencies: 1893 | playwright-core: 1.54.1 1894 | optionalDependencies: 1895 | fsevents: 2.3.2 1896 | 1897 | postcss@8.5.6: 1898 | dependencies: 1899 | nanoid: 3.3.11 1900 | picocolors: 1.1.1 1901 | source-map-js: 1.2.1 1902 | 1903 | pretty-format@27.5.1: 1904 | dependencies: 1905 | ansi-regex: 5.0.1 1906 | ansi-styles: 5.2.0 1907 | react-is: 17.0.2 1908 | 1909 | react-docgen-typescript@2.4.0(typescript@5.6.3): 1910 | dependencies: 1911 | typescript: 5.6.3 1912 | 1913 | react-docgen@8.0.0: 1914 | dependencies: 1915 | '@babel/core': 7.28.0 1916 | '@babel/traverse': 7.28.0 1917 | '@babel/types': 7.28.0 1918 | '@types/babel__core': 7.20.5 1919 | '@types/babel__traverse': 7.20.7 1920 | '@types/doctrine': 0.0.9 1921 | '@types/resolve': 1.20.6 1922 | doctrine: 3.0.0 1923 | resolve: 1.22.10 1924 | strip-indent: 4.0.0 1925 | transitivePeerDependencies: 1926 | - supports-color 1927 | 1928 | react-dom@19.1.0(react@19.1.0): 1929 | dependencies: 1930 | react: 19.1.0 1931 | scheduler: 0.26.0 1932 | 1933 | react-is@17.0.2: {} 1934 | 1935 | react-refresh@0.17.0: {} 1936 | 1937 | react@19.1.0: {} 1938 | 1939 | recast@0.23.11: 1940 | dependencies: 1941 | ast-types: 0.16.1 1942 | esprima: 4.0.1 1943 | source-map: 0.6.1 1944 | tiny-invariant: 1.3.3 1945 | tslib: 2.8.1 1946 | 1947 | redent@3.0.0: 1948 | dependencies: 1949 | indent-string: 4.0.0 1950 | strip-indent: 3.0.0 1951 | 1952 | resolve@1.22.10: 1953 | dependencies: 1954 | is-core-module: 2.16.1 1955 | path-parse: 1.0.7 1956 | supports-preserve-symlinks-flag: 1.0.0 1957 | 1958 | rollup@4.45.0: 1959 | dependencies: 1960 | '@types/estree': 1.0.8 1961 | optionalDependencies: 1962 | '@rollup/rollup-android-arm-eabi': 4.45.0 1963 | '@rollup/rollup-android-arm64': 4.45.0 1964 | '@rollup/rollup-darwin-arm64': 4.45.0 1965 | '@rollup/rollup-darwin-x64': 4.45.0 1966 | '@rollup/rollup-freebsd-arm64': 4.45.0 1967 | '@rollup/rollup-freebsd-x64': 4.45.0 1968 | '@rollup/rollup-linux-arm-gnueabihf': 4.45.0 1969 | '@rollup/rollup-linux-arm-musleabihf': 4.45.0 1970 | '@rollup/rollup-linux-arm64-gnu': 4.45.0 1971 | '@rollup/rollup-linux-arm64-musl': 4.45.0 1972 | '@rollup/rollup-linux-loongarch64-gnu': 4.45.0 1973 | '@rollup/rollup-linux-powerpc64le-gnu': 4.45.0 1974 | '@rollup/rollup-linux-riscv64-gnu': 4.45.0 1975 | '@rollup/rollup-linux-riscv64-musl': 4.45.0 1976 | '@rollup/rollup-linux-s390x-gnu': 4.45.0 1977 | '@rollup/rollup-linux-x64-gnu': 4.45.0 1978 | '@rollup/rollup-linux-x64-musl': 4.45.0 1979 | '@rollup/rollup-win32-arm64-msvc': 4.45.0 1980 | '@rollup/rollup-win32-ia32-msvc': 4.45.0 1981 | '@rollup/rollup-win32-x64-msvc': 4.45.0 1982 | fsevents: 2.3.3 1983 | 1984 | scheduler@0.26.0: {} 1985 | 1986 | semver@6.3.1: {} 1987 | 1988 | semver@7.7.2: {} 1989 | 1990 | shebang-command@2.0.0: 1991 | dependencies: 1992 | shebang-regex: 3.0.0 1993 | 1994 | shebang-regex@3.0.0: {} 1995 | 1996 | signal-exit@4.1.0: {} 1997 | 1998 | source-map-js@1.2.1: {} 1999 | 2000 | source-map@0.6.1: {} 2001 | 2002 | storybook@9.0.16(@testing-library/dom@10.4.0): 2003 | dependencies: 2004 | '@storybook/global': 5.0.0 2005 | '@testing-library/jest-dom': 6.6.3 2006 | '@testing-library/user-event': 14.6.1(@testing-library/dom@10.4.0) 2007 | '@vitest/expect': 3.2.4 2008 | '@vitest/spy': 3.2.4 2009 | better-opn: 3.0.2 2010 | esbuild: 0.25.6 2011 | esbuild-register: 3.6.0(esbuild@0.25.6) 2012 | recast: 0.23.11 2013 | semver: 7.7.2 2014 | ws: 8.18.3 2015 | transitivePeerDependencies: 2016 | - '@testing-library/dom' 2017 | - bufferutil 2018 | - supports-color 2019 | - utf-8-validate 2020 | 2021 | string-width@4.2.3: 2022 | dependencies: 2023 | emoji-regex: 8.0.0 2024 | is-fullwidth-code-point: 3.0.0 2025 | strip-ansi: 6.0.1 2026 | 2027 | string-width@5.1.2: 2028 | dependencies: 2029 | eastasianwidth: 0.2.0 2030 | emoji-regex: 9.2.2 2031 | strip-ansi: 7.1.0 2032 | 2033 | strip-ansi@6.0.1: 2034 | dependencies: 2035 | ansi-regex: 5.0.1 2036 | 2037 | strip-ansi@7.1.0: 2038 | dependencies: 2039 | ansi-regex: 6.1.0 2040 | 2041 | strip-bom@3.0.0: {} 2042 | 2043 | strip-indent@3.0.0: 2044 | dependencies: 2045 | min-indent: 1.0.1 2046 | 2047 | strip-indent@4.0.0: 2048 | dependencies: 2049 | min-indent: 1.0.1 2050 | 2051 | supports-color@7.2.0: 2052 | dependencies: 2053 | has-flag: 4.0.0 2054 | 2055 | supports-preserve-symlinks-flag@1.0.0: {} 2056 | 2057 | tiny-invariant@1.3.3: {} 2058 | 2059 | tinyglobby@0.2.14: 2060 | dependencies: 2061 | fdir: 6.4.6(picomatch@4.0.2) 2062 | picomatch: 4.0.2 2063 | 2064 | tinyrainbow@2.0.0: {} 2065 | 2066 | tinyspy@4.0.3: {} 2067 | 2068 | ts-dedent@2.2.0: {} 2069 | 2070 | tsconfig-paths@4.2.0: 2071 | dependencies: 2072 | json5: 2.2.3 2073 | minimist: 1.2.8 2074 | strip-bom: 3.0.0 2075 | 2076 | tslib@2.8.1: {} 2077 | 2078 | typescript@5.6.3: {} 2079 | 2080 | unicorn-magic@0.1.0: {} 2081 | 2082 | unplugin@1.16.1: 2083 | dependencies: 2084 | acorn: 8.15.0 2085 | webpack-virtual-modules: 0.6.2 2086 | 2087 | update-browserslist-db@1.1.3(browserslist@4.25.1): 2088 | dependencies: 2089 | browserslist: 4.25.1 2090 | escalade: 3.2.0 2091 | picocolors: 1.1.1 2092 | 2093 | vite@7.0.4: 2094 | dependencies: 2095 | esbuild: 0.25.6 2096 | fdir: 6.4.6(picomatch@4.0.2) 2097 | picomatch: 4.0.2 2098 | postcss: 8.5.6 2099 | rollup: 4.45.0 2100 | tinyglobby: 0.2.14 2101 | optionalDependencies: 2102 | fsevents: 2.3.3 2103 | 2104 | webpack-virtual-modules@0.6.2: {} 2105 | 2106 | which@2.0.2: 2107 | dependencies: 2108 | isexe: 2.0.0 2109 | 2110 | wrap-ansi@7.0.0: 2111 | dependencies: 2112 | ansi-styles: 4.3.0 2113 | string-width: 4.2.3 2114 | strip-ansi: 6.0.1 2115 | 2116 | wrap-ansi@8.1.0: 2117 | dependencies: 2118 | ansi-styles: 6.2.1 2119 | string-width: 5.1.2 2120 | strip-ansi: 7.1.0 2121 | 2122 | ws@8.18.3: {} 2123 | 2124 | yallist@3.1.1: {} 2125 | 2126 | yocto-queue@1.2.1: {} 2127 | --------------------------------------------------------------------------------