From db6d59ba4495f7d687ea3a3ed914f3da407e410a Mon Sep 17 00:00:00 2001 From: Alessandro Casazza Date: Tue, 16 Apr 2024 12:18:43 +0200 Subject: [PATCH 01/10] Create new core package --- packages/core/package.json | 42 ++++++++++++++++++++++++++++++++++++++ pnpm-lock.yaml | 19 +++++++++++++++++ 2 files changed, 61 insertions(+) create mode 100644 packages/core/package.json diff --git a/packages/core/package.json b/packages/core/package.json new file mode 100644 index 00000000..2558e295 --- /dev/null +++ b/packages/core/package.json @@ -0,0 +1,42 @@ +{ + "name": "@commercelayer/core", + "version": "1.0.0", + "description": "Commerce Layer Components Core SDK", + "type": "module", + "main": "./dist/index.js", + "exports": { + ".": { + "import": "./dist/index.js", + "require": "./dist/index.cjs", + "types": "./dist/index.d.ts" + } + }, + "keywords": [ + "jamstack", + "headless", + "ecommerce", + "api", + "components" + ], + "scripts": { + "lint": "eslint src --ext .ts,.tsx", + "lint:fix": "eslint src --ext .ts,.tsx --fix", + "test": "pnpm run lint && vitest run --silent", + "test:watch": "vitest --silent", + "build": "tsup" + }, + "publishConfig": { + "access": "public" + }, + "author": { + "name": "Alessandro Casazza", + "email": "alessandro@commercelayer.io" + }, + "license": "MIT", + "devDependencies": { + "tsup": "^8.0.2", + "typescript": "^5.4.5", + "vite-tsconfig-paths": "^4.3.2", + "vitest": "^1.5.0" + } +} \ No newline at end of file diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 0834aee0..89f6b303 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -38,6 +38,21 @@ importers: specifier: ^5.8.2 version: 5.8.2 + packages/core: + devDependencies: + tsup: + specifier: ^8.0.2 + version: 8.0.2(typescript@5.4.5) + typescript: + specifier: ^5.4.5 + version: 5.4.5 + vite-tsconfig-paths: + specifier: ^4.3.2 + version: 4.3.2(typescript@5.4.5) + vitest: + specifier: ^1.5.0 + version: 1.5.0 + packages/docs: devDependencies: '@babel/core': @@ -11354,6 +11369,7 @@ snapshots: minimatch: 3.1.2 once: 1.4.0 path-is-absolute: 1.0.1 + dev: true glob@9.3.5: dependencies: @@ -11512,6 +11528,7 @@ snapshots: dependencies: once: 1.4.0 wrappy: 1.0.2 + dev: true inherits@2.0.4: {} @@ -12886,6 +12903,7 @@ snapshots: once@1.4.0: dependencies: wrappy: 1.0.2 + dev: true onetime@5.1.2: dependencies: @@ -13564,6 +13582,7 @@ snapshots: rimraf@3.0.2: dependencies: glob: 7.2.3 + dev: true rimraf@4.4.1: dependencies: From 9ea9132faeb37bb54c332d09b195124029165431 Mon Sep 17 00:00:00 2001 From: Alessandro Casazza Date: Fri, 19 Apr 2024 10:51:27 +0200 Subject: [PATCH 02/10] Add configuration and getPrices function --- .vscode/settings.json | 1 + packages/core/package.json | 4 +++ packages/core/src/index.ts | 0 packages/core/src/prices/getPrices.test.ts | 20 ++++++++++++ packages/core/src/prices/getPrices.ts | 13 ++++++++ packages/core/src/sdk/index.ts | 8 +++++ packages/core/src/types/base.ts | 3 ++ packages/core/src/types/index.ts | 2 ++ packages/core/src/types/jwt.ts | 38 ++++++++++++++++++++++ packages/core/tsconfig.json | 34 +++++++++++++++++++ packages/core/tsup.config.ts | 15 +++++++++ pnpm-lock.yaml | 13 ++++++-- 12 files changed, 148 insertions(+), 3 deletions(-) create mode 100644 packages/core/src/index.ts create mode 100644 packages/core/src/prices/getPrices.test.ts create mode 100644 packages/core/src/prices/getPrices.ts create mode 100644 packages/core/src/sdk/index.ts create mode 100644 packages/core/src/types/base.ts create mode 100644 packages/core/src/types/index.ts create mode 100644 packages/core/src/types/jwt.ts create mode 100644 packages/core/tsconfig.json create mode 100644 packages/core/tsup.config.ts diff --git a/.vscode/settings.json b/.vscode/settings.json index 6eb5b69d..47ed019a 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -5,6 +5,7 @@ "eslint.workingDirectories": [ "packages/react-components", "packages/docs", + "packages/core", ], "eslint.validate": [ "javascript", diff --git a/packages/core/package.json b/packages/core/package.json index 2558e295..280080f7 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -38,5 +38,9 @@ "typescript": "^5.4.5", "vite-tsconfig-paths": "^4.3.2", "vitest": "^1.5.0" + }, + "dependencies": { + "@commercelayer/sdk": "6.0.0-rc.2", + "jwt-decode": "^4.0.0" } } \ No newline at end of file diff --git a/packages/core/src/index.ts b/packages/core/src/index.ts new file mode 100644 index 00000000..e69de29b diff --git a/packages/core/src/prices/getPrices.test.ts b/packages/core/src/prices/getPrices.test.ts new file mode 100644 index 00000000..799a6735 --- /dev/null +++ b/packages/core/src/prices/getPrices.test.ts @@ -0,0 +1,20 @@ +import { getPrices } from './getPrices.js' + +describe('getPrices', () => { + test('should return a list of prices', async () => { + // Mock the necessary dependencies and setup test data + const accessToken = 'YOUR_ACCESS_TOKEN' + const params = { + // Set your desired parameters for the getPrices function + } + + // Call the getPrices function + const result = await getPrices({ accessToken, ...params }) + + // Assert the expected result + expect(result).toBeDefined() + // Add more assertions based on the expected behavior of the getPrices function + }) + + // Add more test cases for different scenarios +}) diff --git a/packages/core/src/prices/getPrices.ts b/packages/core/src/prices/getPrices.ts new file mode 100644 index 00000000..c86e5607 --- /dev/null +++ b/packages/core/src/prices/getPrices.ts @@ -0,0 +1,13 @@ +import type { ListResponse, Price, QueryParamsList } from '@commercelayer/sdk' +import { getSdk } from 'src/sdk/index.js' +import type { RequestConfig } from 'src/types/index.js' + +type GetPricesParams = RequestConfig & QueryParamsList + +export async function getPrices({ + accessToken, + ...params +}: GetPricesParams): Promise> { + const sdk = getSdk({ accessToken }) + return await sdk.prices.list(params) +} diff --git a/packages/core/src/sdk/index.ts b/packages/core/src/sdk/index.ts new file mode 100644 index 00000000..7f9faad5 --- /dev/null +++ b/packages/core/src/sdk/index.ts @@ -0,0 +1,8 @@ +import type { Jwt, RequestConfig } from 'src/types/index.js' +import sdk, { type CommerceLayerClient } from '@commercelayer/sdk' +import { jwtDecode } from 'jwt-decode' + +export function getSdk({ accessToken }: RequestConfig): CommerceLayerClient { + const organization = jwtDecode(accessToken).organization.slug + return sdk.default({ accessToken, organization }) +} diff --git a/packages/core/src/types/base.ts b/packages/core/src/types/base.ts new file mode 100644 index 00000000..bb1cd2e6 --- /dev/null +++ b/packages/core/src/types/base.ts @@ -0,0 +1,3 @@ +export interface RequestConfig { + accessToken: string +} diff --git a/packages/core/src/types/index.ts b/packages/core/src/types/index.ts new file mode 100644 index 00000000..93bd730f --- /dev/null +++ b/packages/core/src/types/index.ts @@ -0,0 +1,2 @@ +export type { RequestConfig } from './base.js' +export type { Jwt } from './jwt.js' diff --git a/packages/core/src/types/jwt.ts b/packages/core/src/types/jwt.ts new file mode 100644 index 00000000..b39a8dc3 --- /dev/null +++ b/packages/core/src/types/jwt.ts @@ -0,0 +1,38 @@ +export interface Jwt { + organization: Organization + application: Application + market: Market + owner: Owner + scope: string + exp: number + test: boolean + rand: number + iat: number + iss: string +} + +interface Application { + id: string + kind: string + public: boolean +} + +interface Market { + id: string[] + price_list_id: string + stock_location_ids: string[] + geocoder_id: null + allows_external_prices: boolean +} + +interface Organization { + id: string + slug: string + enterprise: boolean + region: string +} + +interface Owner { + id: string + type: string +} diff --git a/packages/core/tsconfig.json b/packages/core/tsconfig.json new file mode 100644 index 00000000..a2a6dc62 --- /dev/null +++ b/packages/core/tsconfig.json @@ -0,0 +1,34 @@ +{ + "compilerOptions": { + /* Visit https://aka.ms/tsconfig.json to read more about this file */ + /* Module Resolution Options */ + "module": "Node16", + "target": "ES2022", + "moduleResolution": "Node16", + "verbatimModuleSyntax": true, + /* Other Options */ + "resolveJsonModule": true, + "declaration": true /* Generates corresponding '.d.ts' file. */, + "strict": true /* Enable all strict type-checking options. */, + "noUnusedLocals": true /* Report errors on unused locals. */, + "noUnusedParameters": true /* Report errors on unused parameters. */, + "noImplicitReturns": true /* Report error when not all code paths in function return a value. */, + "noFallthroughCasesInSwitch": true /* Report errors for fallthrough cases in switch statement. */, + "noUncheckedIndexedAccess": true /* Include 'undefined' in index signature results */, + "noPropertyAccessFromIndexSignature": true /* Require undeclared properties from index signatures to use element accesses. */, + "types": [ + "vitest/globals" + ], + "baseUrl": "." /* Base directory to resolve non-absolute module names. */, + "esModuleInterop": true /* Enables emit interoperability between CommonJS and ES Modules via creation of namespace objects for all imports. Implies 'allowSyntheticDefaultImports'. */, + "skipLibCheck": true /* Skip type checking of declaration files. */, + "forceConsistentCasingInFileNames": true /* Disallow inconsistently-cased references to the same file. */ + }, + "include": [ + "**/*.ts", + ".eslintrc.cjs" + ], + "exclude": [ + "node_modules" + ] +} \ No newline at end of file diff --git a/packages/core/tsup.config.ts b/packages/core/tsup.config.ts new file mode 100644 index 00000000..3f2a4c31 --- /dev/null +++ b/packages/core/tsup.config.ts @@ -0,0 +1,15 @@ +import { defineConfig } from 'tsup' + +const env = process.env['NODE_ENV'] + +export default defineConfig((options) => ({ + sourcemap: true, // source map is only available in prod + clean: true, // clean dist before build + dts: true, // generate dts file for main module + format: ['cjs', 'esm'], // generate cjs and esm files + minify: !options.watch, + bundle: true, + watch: env === 'development', + target: 'es2020', + entry: ['src/index.ts'] +})) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 89f6b303..e7c4bde5 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -39,19 +39,26 @@ importers: version: 5.8.2 packages/core: + dependencies: + '@commercelayer/sdk': + specifier: 6.0.0-rc.2 + version: 6.0.0-rc.2 + jwt-decode: + specifier: ^4.0.0 + version: 4.0.0 devDependencies: tsup: specifier: ^8.0.2 - version: 8.0.2(typescript@5.4.5) + version: 8.0.2(postcss@8.4.38)(typescript@5.4.5) typescript: specifier: ^5.4.5 version: 5.4.5 vite-tsconfig-paths: specifier: ^4.3.2 - version: 4.3.2(typescript@5.4.5) + version: 4.3.2(typescript@5.4.5)(vite@5.2.8(@types/node@20.12.7)(terser@5.30.3)) vitest: specifier: ^1.5.0 - version: 1.5.0 + version: 1.5.0(@types/node@20.12.7)(jsdom@24.0.0)(terser@5.30.3) packages/docs: devDependencies: From db82faa920b7505ac634ac1804971ca3ff344351 Mon Sep 17 00:00:00 2001 From: Alessandro Casazza Date: Thu, 6 Feb 2025 10:49:07 +0100 Subject: [PATCH 03/10] Add getPrices tests, biomejs, and global vitest config --- .vscode/settings.json | 22 +- biome.json | 58 +- package.json | 91 ++-- packages/core/extender.ts | 29 + packages/core/package.json | 31 +- packages/core/src/auth/getAccessToken.spec.ts | 38 ++ packages/core/src/auth/getAccessToken.ts | 21 + packages/core/src/prices/getPrices.spec.ts | 30 ++ packages/core/src/prices/getPrices.test.ts | 20 - packages/core/src/prices/getPrices.ts | 6 +- packages/core/src/sdk/index.ts | 8 +- packages/core/tsconfig.json | 15 +- packages/core/tsup.config.ts | 12 +- packages/core/vitest.config.ts | 12 + .../{vitest.config.mts => _vitest.config.mts} | 0 packages/react-components/package.json | 88 +-- packages/react-components/tsconfig.json | 68 +-- pnpm-lock.yaml | 508 ++++++++++++++---- vitest.workspace.ts | 3 + 19 files changed, 694 insertions(+), 366 deletions(-) create mode 100644 packages/core/extender.ts create mode 100644 packages/core/src/auth/getAccessToken.spec.ts create mode 100644 packages/core/src/auth/getAccessToken.ts create mode 100644 packages/core/src/prices/getPrices.spec.ts delete mode 100644 packages/core/src/prices/getPrices.test.ts create mode 100644 packages/core/vitest.config.ts rename packages/react-components/{vitest.config.mts => _vitest.config.mts} (100%) create mode 100644 vitest.workspace.ts diff --git a/.vscode/settings.json b/.vscode/settings.json index 47ed019a..184991f8 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -1,22 +1,8 @@ { - "typescript.tsdk": "node_modules/typescript/lib", "editor.formatOnSave": true, - "javascript.format.enable": true, - "eslint.workingDirectories": [ - "packages/react-components", - "packages/docs", - "packages/core", - ], - "eslint.validate": [ - "javascript", - "javascriptreact", - "typescript", - "typescriptreact" - ], - "css.validate": false, - "less.validate": false, - "scss.validate": false, + "editor.defaultFormatter": "biomejs.biome", "editor.codeActionsOnSave": { - "source.fixAll": "explicit" + "quickfix.biome": "explicit", + "source.organizeImports.biome": "explicit" } -} \ No newline at end of file +} diff --git a/biome.json b/biome.json index 64996857..173dadfd 100644 --- a/biome.json +++ b/biome.json @@ -1,31 +1,31 @@ { - "$schema": "https://biomejs.dev/schemas/1.9.4/schema.json", - "vcs": { - "enabled": false, - "clientKind": "git", - "useIgnoreFile": false - }, - "files": { - "ignoreUnknown": false, - "ignore": [] - }, - "formatter": { - "enabled": true, - "indentStyle": "space" - }, - "organizeImports": { - "enabled": true - }, - "linter": { - "enabled": true, - "rules": { - "recommended": true - } - }, - "javascript": { - "formatter": { - "quoteStyle": "double", - "semicolons":"asNeeded" - } - } + "$schema": "https://biomejs.dev/schemas/1.9.4/schema.json", + "vcs": { + "enabled": false, + "clientKind": "git", + "useIgnoreFile": false + }, + "files": { + "ignoreUnknown": false, + "ignore": [] + }, + "formatter": { + "enabled": true, + "indentStyle": "space" + }, + "organizeImports": { + "enabled": true + }, + "linter": { + "enabled": true, + "rules": { + "recommended": true + } + }, + "javascript": { + "formatter": { + "quoteStyle": "double", + "semicolons": "asNeeded" + } + } } diff --git a/package.json b/package.json index 8a73d137..5d0a5daa 100644 --- a/package.json +++ b/package.json @@ -1,47 +1,48 @@ { - "name": "root", - "private": true, - "author": { - "name": "Alessandro Casazza", - "email": "alessandro@commercelayer.io" - }, - "scripts": { - "preinstall": "npx only-allow pnpm", - "build": "pnpm -r build", - "prepare": "husky", - "test": "pnpm -r test", - "docs:dev": "pnpm --filter docs storybook", - "docs:build": "pnpm --filter docs build-storybook", - "components:build:dev": "pnpm --filter react-components build:dev", - "components:build": "pnpm --filter react-components build", - "make:version": "lerna version --no-private", - "make:version:force": "lerna version --no-private --force-publish", - "dep:major": "pnpm dlx npm-check-updates --packageFile '**/package.json' -u -i", - "dep:minor": "pnpm dep:major -t minor -i" - }, - "devDependencies": { - "@biomejs/biome": "1.9.4", - "husky": "^9.1.7", - "lerna": "^8.2.1", - "typescript": "^5.8.2" - }, - "pnpm": { - "overrides": { - "postcss@<8.4.31": ">=8.4.31", - "graphql@>=16.3.0 <16.8.1": ">=16.8.1", - "vite@>=4.4.0 <4.4.12": ">=4.4.12", - "@babel/traverse@<7.23.2": ">=7.23.2", - "vite@>=4.0.0 <=4.5.1": ">=4.5.2", - "follow-redirects@<1.15.4": ">=1.15.4", - "express@<4.19.2": ">=4.19.2", - "vite@>=5.1.0 <=5.1.6": ">=5.1.7", - "tar@<6.2.1": ">=6.2.1", - "ejs@<3.1.10": ">=3.1.10", - "braces@<3.0.3": ">=3.0.3", - "ws@>=8.0.0 <8.17.1": ">=8.17.1", - "micromatch@<4.0.8": ">=4.0.8", - "rollup@>=4.0.0 <4.22.4": ">=4.22.4", - "cross-spawn@>=7.0.0 <7.0.5": ">=7.0.5" - } - } + "name": "root", + "private": true, + "author": { + "name": "Alessandro Casazza", + "email": "alessandro@commercelayer.io" + }, + "scripts": { + "preinstall": "npx only-allow pnpm", + "build": "pnpm -r build", + "prepare": "husky", + "test": "pnpm -r test", + "docs:dev": "pnpm --filter docs storybook", + "docs:build": "pnpm --filter docs build-storybook", + "components:build:dev": "pnpm --filter react-components build:dev", + "components:build": "pnpm --filter react-components build", + "make:version": "lerna version --no-private", + "make:version:force": "lerna version --no-private --force-publish", + "dep:major": "pnpm dlx npm-check-updates --packageFile '**/package.json' -u -i", + "dep:minor": "pnpm dep:major -t minor -i" + }, + "devDependencies": { + "@biomejs/biome": "1.9.4", + "husky": "^9.1.7", + "lerna": "^8.1.9", + "typescript": "^5.7.3", + "vitest": "^3.0.4" + }, + "pnpm": { + "overrides": { + "postcss@<8.4.31": ">=8.4.31", + "graphql@>=16.3.0 <16.8.1": ">=16.8.1", + "vite@>=4.4.0 <4.4.12": ">=4.4.12", + "@babel/traverse@<7.23.2": ">=7.23.2", + "vite@>=4.0.0 <=4.5.1": ">=4.5.2", + "follow-redirects@<1.15.4": ">=1.15.4", + "express@<4.19.2": ">=4.19.2", + "vite@>=5.1.0 <=5.1.6": ">=5.1.7", + "tar@<6.2.1": ">=6.2.1", + "ejs@<3.1.10": ">=3.1.10", + "braces@<3.0.3": ">=3.0.3", + "ws@>=8.0.0 <8.17.1": ">=8.17.1", + "micromatch@<4.0.8": ">=4.0.8", + "rollup@>=4.0.0 <4.22.4": ">=4.22.4", + "cross-spawn@>=7.0.0 <7.0.5": ">=7.0.5" + } + } } diff --git a/packages/core/extender.ts b/packages/core/extender.ts new file mode 100644 index 00000000..3a6f35be --- /dev/null +++ b/packages/core/extender.ts @@ -0,0 +1,29 @@ +import { test } from "vitest" +import { getAccessToken } from "./src/auth/getAccessToken.js" + +const clientId = import.meta.env.VITE_SALES_CHANNEL_CLIENT_ID +const scope = import.meta.env.VITE_SALES_CHANNEL_SCOPE +const domain = import.meta.env.VITE_DOMAIN +let accessToken: ReturnType = undefined + +export const coreTest = test.extend({ + accessToken: async ({ _ }, use) => { + if (accessToken == null) { + accessToken = await getAccessToken({ + grantType: "client_credentials", + config: { + clientId, + scope, + domain, + }, + }) + } + use(accessToken) + accessToken = undefined + }, + config: { + clientId, + scope, + domain, + }, +}) diff --git a/packages/core/package.json b/packages/core/package.json index 280080f7..3b516ef5 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -11,18 +11,13 @@ "types": "./dist/index.d.ts" } }, - "keywords": [ - "jamstack", - "headless", - "ecommerce", - "api", - "components" - ], + "keywords": ["jamstack", "headless", "ecommerce", "api", "components"], "scripts": { - "lint": "eslint src --ext .ts,.tsx", - "lint:fix": "eslint src --ext .ts,.tsx --fix", - "test": "pnpm run lint && vitest run --silent", - "test:watch": "vitest --silent", + "lint": "biome lint --error-on-warnings ./src", + "lint:fix": "pnpm biome lint --write ./src", + "test": "pnpm run lint && vitest --silent", + "test:watch": "vitest", + "coverage": "vitest run --coverage", "build": "tsup" }, "publishConfig": { @@ -34,13 +29,15 @@ }, "license": "MIT", "devDependencies": { - "tsup": "^8.0.2", - "typescript": "^5.4.5", - "vite-tsconfig-paths": "^4.3.2", - "vitest": "^1.5.0" + "@vitest/coverage-v8": "^3.0.4", + "tsup": "^8.3.6", + "typescript": "^5.7.3", + "vite-tsconfig-paths": "^5.1.4", + "vitest": "^3.0.4" }, "dependencies": { - "@commercelayer/sdk": "6.0.0-rc.2", + "@commercelayer/js-auth": "^6.7.0", + "@commercelayer/sdk": "6.29.2", "jwt-decode": "^4.0.0" } -} \ No newline at end of file +} diff --git a/packages/core/src/auth/getAccessToken.spec.ts b/packages/core/src/auth/getAccessToken.spec.ts new file mode 100644 index 00000000..ff92d323 --- /dev/null +++ b/packages/core/src/auth/getAccessToken.spec.ts @@ -0,0 +1,38 @@ +import { authenticate } from "@commercelayer/js-auth" +import { describe, expect, vi } from "vitest" +import { coreTest } from "../../extender.js" +import { getAccessToken } from "./getAccessToken.js" + +vi.mock("@commercelayer/js-auth", () => ({ + authenticate: vi.fn(), +})) + +describe("getAccessToken", () => { + coreTest( + "should call authenticate with the correct parameters", + async ({ accessToken, config }) => { + const token = accessToken?.accessToken + const grantType = "client_credentials" + const mockToken = { accessToken: token } + authenticate.mockResolvedValue(mockToken) + const result = await getAccessToken({ grantType, config }) + await expect(authenticate).toHaveBeenCalledWith(grantType, config) + expect(result).toEqual(mockToken) + expect(result).toHaveProperty("accessToken") + expect(result.accessToken).toBe(mockToken.accessToken) + }, + ) + + coreTest("should throw an error if authenticate fails", async () => { + const grantType = "client_credentials" + const config = { + clientId: "test-client-id", + clientSecret: "test-client-secret", + } + const mockError = new Error("Authentication failed") + authenticate.mockRejectedValue(mockError) + await expect(getAccessToken({ grantType, config })).rejects.toThrow( + "Authentication failed", + ) + }) +}) diff --git a/packages/core/src/auth/getAccessToken.ts b/packages/core/src/auth/getAccessToken.ts new file mode 100644 index 00000000..56d91815 --- /dev/null +++ b/packages/core/src/auth/getAccessToken.ts @@ -0,0 +1,21 @@ +import { authenticate } from "@commercelayer/js-auth" + +interface AuthenticateProps { + grantType: Parameters[0] + config: Parameters[1] +} + +/** + * Retrieves an access token using the provided grant type and configuration. + * + * @param {AuthenticateProps} params - The parameters for authentication. + * @param {string} params.grantType - The type of grant to use for authentication. + * @param {object} params.config - The configuration object for authentication. + * @returns {Promise>} A promise that resolves to the access token. + */ +export async function getAccessToken({ + grantType, + config, +}: AuthenticateProps): ReturnType { + return await authenticate(grantType, config) +} diff --git a/packages/core/src/prices/getPrices.spec.ts b/packages/core/src/prices/getPrices.spec.ts new file mode 100644 index 00000000..bcef04c2 --- /dev/null +++ b/packages/core/src/prices/getPrices.spec.ts @@ -0,0 +1,30 @@ +import type { QueryFilter } from "@commercelayer/sdk" +import { describe, expect } from "vitest" +import { coreTest } from "../../extender.js" +import { getPrices } from "./getPrices.js" + +describe("getPrices", () => { + coreTest("should return a list of prices", async ({ accessToken }) => { + const token = accessToken?.accessToken + const result = await getPrices({ accessToken: token }) + expect(result).toBeDefined() + }) + + coreTest("should return a single price", async ({ accessToken }) => { + const token = accessToken?.accessToken + const params: QueryFilter = { + filters: { + sku_code_eq: "DIGITALPRODUCT", + }, + } + + // Call the getPrices function + const result = await getPrices({ accessToken: token, ...params }) + // Assert the expected result + expect(result).toBeDefined() + expect(result.getRecordCount()).toBe(1) + // Add more assertions based on the expected behavior of the getPrices function + }) + + // Add more test cases for different scenarios +}) diff --git a/packages/core/src/prices/getPrices.test.ts b/packages/core/src/prices/getPrices.test.ts deleted file mode 100644 index 799a6735..00000000 --- a/packages/core/src/prices/getPrices.test.ts +++ /dev/null @@ -1,20 +0,0 @@ -import { getPrices } from './getPrices.js' - -describe('getPrices', () => { - test('should return a list of prices', async () => { - // Mock the necessary dependencies and setup test data - const accessToken = 'YOUR_ACCESS_TOKEN' - const params = { - // Set your desired parameters for the getPrices function - } - - // Call the getPrices function - const result = await getPrices({ accessToken, ...params }) - - // Assert the expected result - expect(result).toBeDefined() - // Add more assertions based on the expected behavior of the getPrices function - }) - - // Add more test cases for different scenarios -}) diff --git a/packages/core/src/prices/getPrices.ts b/packages/core/src/prices/getPrices.ts index c86e5607..7586f706 100644 --- a/packages/core/src/prices/getPrices.ts +++ b/packages/core/src/prices/getPrices.ts @@ -1,6 +1,6 @@ -import type { ListResponse, Price, QueryParamsList } from '@commercelayer/sdk' -import { getSdk } from 'src/sdk/index.js' -import type { RequestConfig } from 'src/types/index.js' +import type { ListResponse, Price, QueryParamsList } from "@commercelayer/sdk" +import { getSdk } from "../sdk/index.js" +import type { RequestConfig } from "../types/index.js" type GetPricesParams = RequestConfig & QueryParamsList diff --git a/packages/core/src/sdk/index.ts b/packages/core/src/sdk/index.ts index 7f9faad5..d9caedfc 100644 --- a/packages/core/src/sdk/index.ts +++ b/packages/core/src/sdk/index.ts @@ -1,8 +1,8 @@ -import type { Jwt, RequestConfig } from 'src/types/index.js' -import sdk, { type CommerceLayerClient } from '@commercelayer/sdk' -import { jwtDecode } from 'jwt-decode' +import sdk, { type CommerceLayerClient } from "@commercelayer/sdk" +import { jwtDecode } from "jwt-decode" +import type { Jwt, RequestConfig } from "src/types/index.js" export function getSdk({ accessToken }: RequestConfig): CommerceLayerClient { const organization = jwtDecode(accessToken).organization.slug - return sdk.default({ accessToken, organization }) + return sdk({ accessToken, organization }) } diff --git a/packages/core/tsconfig.json b/packages/core/tsconfig.json index a2a6dc62..c920654c 100644 --- a/packages/core/tsconfig.json +++ b/packages/core/tsconfig.json @@ -16,19 +16,12 @@ "noFallthroughCasesInSwitch": true /* Report errors for fallthrough cases in switch statement. */, "noUncheckedIndexedAccess": true /* Include 'undefined' in index signature results */, "noPropertyAccessFromIndexSignature": true /* Require undeclared properties from index signatures to use element accesses. */, - "types": [ - "vitest/globals" - ], + "types": ["vitest/globals"], "baseUrl": "." /* Base directory to resolve non-absolute module names. */, "esModuleInterop": true /* Enables emit interoperability between CommonJS and ES Modules via creation of namespace objects for all imports. Implies 'allowSyntheticDefaultImports'. */, "skipLibCheck": true /* Skip type checking of declaration files. */, "forceConsistentCasingInFileNames": true /* Disallow inconsistently-cased references to the same file. */ }, - "include": [ - "**/*.ts", - ".eslintrc.cjs" - ], - "exclude": [ - "node_modules" - ] -} \ No newline at end of file + "include": ["**/*.ts", ".eslintrc.cjs", "src/hooks/useAuthenticate.tsx"], + "exclude": ["node_modules"] +} diff --git a/packages/core/tsup.config.ts b/packages/core/tsup.config.ts index 3f2a4c31..486ecc49 100644 --- a/packages/core/tsup.config.ts +++ b/packages/core/tsup.config.ts @@ -1,15 +1,15 @@ -import { defineConfig } from 'tsup' +import { defineConfig } from "tsup" -const env = process.env['NODE_ENV'] +const env = process.env.NODE_ENV export default defineConfig((options) => ({ sourcemap: true, // source map is only available in prod clean: true, // clean dist before build dts: true, // generate dts file for main module - format: ['cjs', 'esm'], // generate cjs and esm files + format: ["cjs", "esm"], // generate cjs and esm files minify: !options.watch, bundle: true, - watch: env === 'development', - target: 'es2020', - entry: ['src/index.ts'] + watch: env === "development", + target: "es2020", + entry: ["src/index.ts"], })) diff --git a/packages/core/vitest.config.ts b/packages/core/vitest.config.ts new file mode 100644 index 00000000..a455d010 --- /dev/null +++ b/packages/core/vitest.config.ts @@ -0,0 +1,12 @@ +import { defineConfig } from "vitest/config" + +export default defineConfig({ + test: { + name: "core", + environment: "node", + coverage: { + provider: "v8", + reporter: ["text", "json", "html"], + }, + }, +}) diff --git a/packages/react-components/vitest.config.mts b/packages/react-components/_vitest.config.mts similarity index 100% rename from packages/react-components/vitest.config.mts rename to packages/react-components/_vitest.config.mts diff --git a/packages/react-components/package.json b/packages/react-components/package.json index df9d9d43..d4ede5ee 100644 --- a/packages/react-components/package.json +++ b/packages/react-components/package.json @@ -5,11 +5,7 @@ "main": "lib/cjs/index.js", "module": "lib/esm/index.js", "types": "lib/esm/index.d.ts", - "files": [ - "lib", - "package.json", - "README.md" - ], + "files": ["lib", "package.json", "README.md"], "exports": { ".": { "require": "./lib/cjs/index.js", @@ -98,66 +94,28 @@ }, "typesVersions": { "*": { - "addresses/*": [ - "lib/esm/components/addresses/*.d.ts" - ], - "auth/*": [ - "lib/esm/components/auth/*.d.ts" - ], - "customers/*": [ - "lib/esm/components/customers/*.d.ts" - ], - "errors/*": [ - "lib/esm/components/errors/*.d.ts" - ], - "gift_cards/*": [ - "lib/esm/components/gift_cards/*.d.ts" - ], + "addresses/*": ["lib/esm/components/addresses/*.d.ts"], + "auth/*": ["lib/esm/components/auth/*.d.ts"], + "customers/*": ["lib/esm/components/customers/*.d.ts"], + "errors/*": ["lib/esm/components/errors/*.d.ts"], + "gift_cards/*": ["lib/esm/components/gift_cards/*.d.ts"], "in_stock_subscriptions/*": [ "lib/esm/components/in_stock_subscriptions/*.d.ts" ], - "hooks/*": [ - "lib/esm/hooks/*.d.ts" - ], - "line_items/*": [ - "lib/esm/components/line_items/*.d.ts" - ], - "orders/*": [ - "lib/esm/components/orders/*.d.ts" - ], - "parcels/*": [ - "lib/esm/components/parcels/*.d.ts" - ], - "payment_methods/*": [ - "lib/esm/components/payment_methods/*.d.ts" - ], - "payment_source/*": [ - "lib/esm/components/payment_source/*.d.ts" - ], - "prices/*": [ - "lib/esm/components/prices/*.d.ts" - ], - "shipments/*": [ - "lib/esm/components/shipments/*.d.ts" - ], - "shipping_methods/*": [ - "lib/esm/components/shipping_methods/*.d.ts" - ], - "skus/*": [ - "lib/esm/components/skus/*.d.ts" - ], - "stock_transfers/*": [ - "lib/esm/components/stock_transfers/*.d.ts" - ], - "context/*": [ - "lib/esm/context/*.d.ts" - ], - "utils/*": [ - "lib/esm/utils/*.d.ts" - ], - "component_utils/*": [ - "lib/esm/components/utils/*.d.ts" - ] + "hooks/*": ["lib/esm/hooks/*.d.ts"], + "line_items/*": ["lib/esm/components/line_items/*.d.ts"], + "orders/*": ["lib/esm/components/orders/*.d.ts"], + "parcels/*": ["lib/esm/components/parcels/*.d.ts"], + "payment_methods/*": ["lib/esm/components/payment_methods/*.d.ts"], + "payment_source/*": ["lib/esm/components/payment_source/*.d.ts"], + "prices/*": ["lib/esm/components/prices/*.d.ts"], + "shipments/*": ["lib/esm/components/shipments/*.d.ts"], + "shipping_methods/*": ["lib/esm/components/shipping_methods/*.d.ts"], + "skus/*": ["lib/esm/components/skus/*.d.ts"], + "stock_transfers/*": ["lib/esm/components/stock_transfers/*.d.ts"], + "context/*": ["lib/esm/context/*.d.ts"], + "utils/*": ["lib/esm/utils/*.d.ts"], + "component_utils/*": ["lib/esm/components/utils/*.d.ts"] } }, "publishConfig": { @@ -211,7 +169,7 @@ "iframe-resizer": "^4.3.6", "jwt-decode": "^4.0.0", "lodash": "^4.17.21", - "rapid-form": "2.1.0" + "rapid-form": "3.1.0" }, "devDependencies": { "@commercelayer/js-auth": "^6.7.1", @@ -223,8 +181,8 @@ "@types/lodash": "^4.17.16", "@types/node": "^22.13.9", "@types/prop-types": "^15.7.14", - "@types/react": "^18.3.1", - "@types/react-test-renderer": "^18.3.1", + "@types/react": "^19.0.8", + "@types/react-test-renderer": "^19.0.0", "@types/react-window": "^1.8.8", "@vitejs/plugin-react": "^4.3.4", "@vitest/coverage-v8": "^3.0.7", diff --git a/packages/react-components/tsconfig.json b/packages/react-components/tsconfig.json index 8ddd0972..1b8e176f 100644 --- a/packages/react-components/tsconfig.json +++ b/packages/react-components/tsconfig.json @@ -32,49 +32,27 @@ // "noImplicitThis": true, /* Raise error on 'this' expressions with an implied 'any' type. */ // "alwaysStrict": true, /* Parse in strict mode and emit "use strict" for each source file. */ /* Additional Checks */ - "noUnusedLocals": true, /* Report errors on unused locals. */ - "noUnusedParameters": true, /* Report errors on unused parameters. */ - "noImplicitReturns": true, /* Report error when not all code paths in function return a value. */ - "noFallthroughCasesInSwitch": true, /* Report errors for fallthrough cases in switch statement. */ - "noUncheckedIndexedAccess": true, /* Include 'undefined' in index signature results */ - "noPropertyAccessFromIndexSignature": true, /* Require undeclared properties from index signatures to use element accesses. */ - "types": [ - "vitest/globals" - ], + "noUnusedLocals": true /* Report errors on unused locals. */, + "noUnusedParameters": true /* Report errors on unused parameters. */, + "noImplicitReturns": true /* Report error when not all code paths in function return a value. */, + "noFallthroughCasesInSwitch": true /* Report errors for fallthrough cases in switch statement. */, + "noUncheckedIndexedAccess": true /* Include 'undefined' in index signature results */, + "noPropertyAccessFromIndexSignature": true /* Require undeclared properties from index signatures to use element accesses. */, + "types": ["vitest/globals"], /* Module Resolution Options */ "moduleResolution": "Node" /* Specify module resolution strategy: 'node' (Node.js) or 'classic' (TypeScript pre-1.6). */, "baseUrl": "." /* Base directory to resolve non-absolute module names. */, "paths": { - "@commercelayer/react-components": [ - "src/index" - ], - "#components/*": [ - "src/components/*" - ], - "#components-utils/*": [ - "src/components/utils/*" - ], - "#reducers/*": [ - "src/reducers/*" - ], - "#context/*": [ - "src/context/*" - ], - "#typings/*": [ - "src/typings/*" - ], - "#typings": [ - "src/typings/index" - ], - "#utils/*": [ - "src/utils/*" - ], - "#config/*": [ - "src/config/*" - ], - "#hooks/*": [ - "src/hooks/*" - ] + "@commercelayer/react-components": ["src/index"], + "#components/*": ["src/components/*"], + "#components-utils/*": ["src/components/utils/*"], + "#reducers/*": ["src/reducers/*"], + "#context/*": ["src/context/*"], + "#typings/*": ["src/typings/*"], + "#typings": ["src/typings/index"], + "#utils/*": ["src/utils/*"], + "#config/*": ["src/config/*"], + "#hooks/*": ["src/hooks/*"] } /* A series of entries which re-map imports to lookup locations relative to the 'baseUrl'. */, // "rootDirs": [], /* List of root folders whose combined content represents the structure of the project at runtime. */ // "typeRoots": [], /* List of folders to include type definitions from. */ @@ -95,12 +73,6 @@ "skipLibCheck": true /* Skip type checking of declaration files. */, "forceConsistentCasingInFileNames": true /* Disallow inconsistently-cased references to the same file. */ }, - "include": [ - "**/*.ts", - "**/*.tsx", - "vitest.config.mts" - ], - "exclude": [ - "node_modules" - ] -} \ No newline at end of file + "include": ["**/*.ts", "**/*.tsx", "_vitest.config.mts"], + "exclude": ["node_modules"] +} diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index e7c4bde5..c6d2d56d 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -35,30 +35,39 @@ importers: specifier: ^8.2.1 version: 8.2.1(encoding@0.1.13) typescript: - specifier: ^5.8.2 - version: 5.8.2 + specifier: ^5.7.3 + version: 5.7.3 + vitest: + specifier: ^3.0.4 + version: 3.0.4(@types/debug@4.1.12)(@types/node@22.12.0)(jsdom@26.0.0)(msw@2.7.0(@types/node@22.12.0)(typescript@5.7.3))(terser@5.37.0)(yaml@2.6.1) packages/core: dependencies: + '@commercelayer/js-auth': + specifier: ^6.7.0 + version: 6.7.0 '@commercelayer/sdk': - specifier: 6.0.0-rc.2 - version: 6.0.0-rc.2 + specifier: 6.29.2 + version: 6.29.2 jwt-decode: specifier: ^4.0.0 version: 4.0.0 devDependencies: + '@vitest/coverage-v8': + specifier: ^3.0.4 + version: 3.0.4(vitest@3.0.4(@types/debug@4.1.12)(@types/node@22.12.0)(jsdom@26.0.0)(msw@2.7.0(@types/node@22.12.0)(typescript@5.7.3))(terser@5.37.0)(yaml@2.6.1)) tsup: - specifier: ^8.0.2 - version: 8.0.2(postcss@8.4.38)(typescript@5.4.5) + specifier: ^8.3.6 + version: 8.3.6(postcss@8.5.1)(typescript@5.7.3)(yaml@2.6.1) typescript: - specifier: ^5.4.5 - version: 5.4.5 + specifier: ^5.7.3 + version: 5.7.3 vite-tsconfig-paths: - specifier: ^4.3.2 - version: 4.3.2(typescript@5.4.5)(vite@5.2.8(@types/node@20.12.7)(terser@5.30.3)) + specifier: ^5.1.4 + version: 5.1.4(typescript@5.7.3)(vite@6.0.11(@types/node@22.12.0)(terser@5.37.0)(yaml@2.6.1)) vitest: - specifier: ^1.5.0 - version: 1.5.0(@types/node@20.12.7)(jsdom@24.0.0)(terser@5.30.3) + specifier: ^3.0.4 + version: 3.0.4(@types/debug@4.1.12)(@types/node@22.12.0)(jsdom@26.0.0)(msw@2.7.0(@types/node@22.12.0)(typescript@5.7.3))(terser@5.37.0)(yaml@2.6.1) packages/docs: devDependencies: @@ -192,17 +201,17 @@ importers: specifier: ^2.2.0 version: 2.2.0 '@commercelayer/sdk': - specifier: ^6.34.0 - version: 6.35.0 + specifier: ^6.29.2 + version: 6.29.2 '@stripe/react-stripe-js': - specifier: ^3.3.0 - version: 3.4.0(@stripe/stripe-js@5.10.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + specifier: ^3.1.1 + version: 3.1.1(@stripe/stripe-js@5.6.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) '@stripe/stripe-js': - specifier: ^5.9.2 - version: 5.10.0 + specifier: ^5.6.0 + version: 5.6.0 '@tanstack/react-table': - specifier: ^8.21.2 - version: 8.21.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + specifier: ^8.20.6 + version: 8.20.6(react-dom@19.0.0(react@19.0.0))(react@19.0.0) '@types/iframe-resizer': specifier: ^3.5.13 version: 3.5.13 @@ -211,7 +220,7 @@ importers: version: 3.116.3 frames-react: specifier: ^1.2.2 - version: 1.2.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rollup@4.35.0)(typescript@5.8.2) + version: 1.2.2(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(rollup@4.32.0)(typescript@5.7.3) iframe-resizer: specifier: ^4.3.6 version: 4.4.5 @@ -222,8 +231,8 @@ importers: specifier: ^4.17.21 version: 4.17.21 rapid-form: - specifier: 2.1.0 - version: 2.1.0 + specifier: 3.1.0 + version: 3.1.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0) devDependencies: '@commercelayer/js-auth': specifier: ^6.7.1 @@ -239,7 +248,7 @@ importers: version: 10.4.0 '@testing-library/react': specifier: ^16.2.0 - version: 16.2.0(@testing-library/dom@10.4.0)(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 16.2.0(@testing-library/dom@10.4.0)(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) '@types/braintree-web': specifier: ^3.96.16 version: 3.96.16 @@ -253,11 +262,11 @@ importers: specifier: ^15.7.14 version: 15.7.14 '@types/react': - specifier: ^18.3.1 - version: 18.3.18 + specifier: ^19.0.8 + version: 19.0.8 '@types/react-test-renderer': - specifier: ^18.3.1 - version: 18.3.1 + specifier: ^19.0.0 + version: 19.0.0 '@types/react-window': specifier: ^1.8.8 version: 1.8.8 @@ -277,14 +286,14 @@ importers: specifier: ^2.7.3 version: 2.7.3(@types/node@22.13.10)(typescript@5.8.2) react: - specifier: ^18.3.1 - version: 18.3.1 + specifier: ^19.0.0 + version: 19.0.0 react-dom: - specifier: ^18.3.1 - version: 18.3.1(react@18.3.1) + specifier: ^19.0.0 + version: 19.0.0(react@19.0.0) react-test-renderer: - specifier: ^18.3.1 - version: 18.3.1(react@18.3.1) + specifier: ^19.0.0 + version: 19.0.0(react@19.0.0) tsc-alias: specifier: ^1.8.11 version: 1.8.11 @@ -980,8 +989,12 @@ packages: resolution: {integrity: sha512-0Afbon6//2KHCTb6bILk2L9Idj9dP8pw06V1CFtaz1wtAsX4iifubGpOPxHH6CuGi4DFHzgASJRz6+ZZbqb3kA==} engines: {node: '>=20'} - '@csstools/color-helpers@5.0.2': - resolution: {integrity: sha512-JqWH1vsgdGcw2RR6VliXXdA0/59LttzlU8UlRT/iUUsEeWfYq8I+K0yhihEUTTHLRm1EXvpsCx3083EU15ecsA==} + '@commercelayer/sdk@6.29.2': + resolution: {integrity: sha512-g7Tk0jR2ice0FTPaENN7D/XZOCtxO69UN5mLWBNh5ZnXNlGyS1HcNiakk0d7PHwb4ninLf9vjHsQ53QJCTctRw==} + engines: {node: '>=20'} + + '@csstools/color-helpers@5.0.1': + resolution: {integrity: sha512-MKtmkA0BX87PKaO1NFRTFH+UnkgnmySQOvNxJubsadusqPEC2aJ9MOQiMceZJJ6oitUl/i0L6u0M1IrmAOmgBA==} engines: {node: '>=18'} '@csstools/css-calc@2.1.2': @@ -2445,8 +2458,8 @@ packages: react: '>=16.8.0 <20.0.0' react-dom: '>=16.8.0 <20.0.0' - '@stripe/stripe-js@5.10.0': - resolution: {integrity: sha512-PTigkxMdMUP6B5ISS7jMqJAKhgrhZwjprDqR1eATtFfh0OpKVNp110xiH+goeVdrJ29/4LeZJR4FaHHWstsu0A==} + '@stripe/stripe-js@5.6.0': + resolution: {integrity: sha512-w8CEY73X/7tw2KKlL3iOk679V9bWseE4GzNz3zlaYxcTjmcmWOathRb0emgo/QQ3eoNzmq68+2Y2gxluAv3xGw==} engines: {node: '>=12.16'} '@tanstack/react-table@8.21.2': @@ -2659,8 +2672,8 @@ packages: '@types/range-parser@1.2.7': resolution: {integrity: sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==} - '@types/react-test-renderer@18.3.1': - resolution: {integrity: sha512-vAhnk0tG2eGa37lkU9+s5SoroCsRI08xnsWFiAXOuPH2jqzMbcXvKExXViPi1P5fIklDeCvXqyrdmipFaSkZrA==} + '@types/react-test-renderer@19.0.0': + resolution: {integrity: sha512-qDVnNybqFm2eZKJ4jD34EvRd6VHD67KjgnWaEMM0Id9L22EpWe3nOSVKHWL1XWRCxUWe3lhXwlEeCKD1BlJCQA==} '@types/react-window@1.8.8': resolution: {integrity: sha512-8Ls660bHR1AUA2kuRvVG9D/4XpRC6wjAaPT9dil7Ckc76eP9TKWZwwmgfq8Q1LANX3QNDnoU4Zp48A3w+zK69Q==} @@ -2668,6 +2681,9 @@ packages: '@types/react@18.3.18': resolution: {integrity: sha512-t4yC+vtgnkYjNSKlFx1jkAhH8LgTo2N/7Qvi83kdEaUtMDiwpbLAktKDaAMlRcJ5eSxZkH74eEGt1ky31d7kfQ==} + '@types/react@19.0.8': + resolution: {integrity: sha512-9P/o1IGdfmQxrujGbIMDyYaaCykhLKc0NGCtYcECNUr9UAaDe4gwvV9bR6tvd5Br1SG0j+PBpbKr2UYY8CwqSw==} + '@types/resolve@1.20.6': resolution: {integrity: sha512-A4STmOXPhMUtHH+S6ymgE2GiBSMqf4oTvcQZMcHzokuTLVYzXTB8ttjcgxOVaAp2lGwEdzZ0J+cRbbeevQj1UQ==} @@ -2921,6 +2937,9 @@ packages: resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==} engines: {node: '>=12'} + any-promise@1.3.0: + resolution: {integrity: sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==} + anymatch@3.1.3: resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} engines: {node: '>= 8'} @@ -3106,6 +3125,19 @@ packages: buffer@5.7.1: resolution: {integrity: sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==} + builtin-modules@3.3.0: + resolution: {integrity: sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==} + engines: {node: '>=6'} + + builtins@5.1.0: + resolution: {integrity: sha512-SW9lzGTLvWTP1AY8xeAMZimqDrIaSdLQUcVr9DMef51niJ022Ri87SwRRKYm4A6iHfkPaiVUu/Duw2Wc4J7kKg==} + + bundle-require@5.1.0: + resolution: {integrity: sha512-3WrrOuZiyaaZPWiEt4G3+IffISVC9HYlWueJEBWED4ZH4aIAC2PnkdnuRrR94M+w6yGWn4AglWtJtBI8YqvgoA==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + peerDependencies: + esbuild: '>=0.18' + byte-size@8.1.1: resolution: {integrity: sha512-tUkzZWK0M/qdoLEqikxBWe4kumyuwjl3HO6zHTr4yEI23EojPtLYXdG1+AQY7MN0cGyNDvEaJ8wiYQm6P2bPxg==} engines: {node: '>=12.17'} @@ -3181,6 +3213,10 @@ packages: resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==} engines: {node: '>= 8.10.0'} + chokidar@4.0.3: + resolution: {integrity: sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==} + engines: {node: '>= 14.16.0'} + chownr@1.1.4: resolution: {integrity: sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==} @@ -3279,6 +3315,10 @@ packages: commander@2.20.3: resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==} + commander@4.1.1: + resolution: {integrity: sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==} + engines: {node: '>= 6'} + commander@6.2.1: resolution: {integrity: sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA==} engines: {node: '>= 6'} @@ -3817,6 +3857,14 @@ packages: fd-slicer@1.1.0: resolution: {integrity: sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==} + fdir@6.4.3: + resolution: {integrity: sha512-PMXmW2y1hDDfTSRc9gaXIuCCRpuoz3Kaz8cUelp3smouvfT632ozg2vrT6lJsHKKOF59YLbOGfAWGUcKEfRMQw==} + peerDependencies: + picomatch: ^3 || ^4 + peerDependenciesMeta: + picomatch: + optional: true + fetch-retry@5.0.6: resolution: {integrity: sha512-3yurQZ2hD9VISAhJJP9bpYFNQrHHBXE2JxxjY5aLEcDi46RmAzJE2OC9FAde0yis5ElW0jTTzs0zfg/Cca4XqQ==} @@ -4524,6 +4572,10 @@ packages: resolution: {integrity: sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + joycon@3.1.1: + resolution: {integrity: sha512-34wB/Y7MW7bzjKRjUKTa46I2Z7eV62Rkhva+KkopW7Qvv/OSWBqvkSY7vusOPrNuZcUG3tApvdVgNB8POj3SPw==} + engines: {node: '>=10'} + js-cookie@3.0.5: resolution: {integrity: sha512-cEiJEAEoIbWfCZYKWhVwFuvPX1gETRYPw6LlaTKoxD3s2AkXzkCjnp6h0V77ozyqj0jakteJ4YqDJT830+lVGw==} engines: {node: '>=14'} @@ -4647,6 +4699,10 @@ packages: resolution: {integrity: sha512-26zzwoBNAvX9AWOPiqqF6FG4HrSCPsHFkQm7nT+xU1ggAujL/eae81RnCv4CJ2In9q9fh10B88sYSzKCUh/Ghg==} engines: {node: ^16.14.0 || >=18.0.0} + lilconfig@3.1.3: + resolution: {integrity: sha512-/vlFKAoH5Cgt3Ie+JLhRbwOsCQePABiU3tJ1egGvyQ+33R/vcwM2Zl2QR/LzjsBeItPt3oSVXapn+m4nQDvpzw==} + engines: {node: '>=14'} + lines-and-columns@1.2.4: resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} @@ -4662,6 +4718,10 @@ packages: resolution: {integrity: sha512-gUD/epcRms75Cw8RT1pUdHugZYM5ce64ucs2GEISABwkRsOQr0q2wm/MV2TKThycIe5e0ytRweW2RZxclogCdQ==} engines: {node: '>=8'} + load-tsconfig@0.2.5: + resolution: {integrity: sha512-IXO6OCs9yg8tMKzfPZ1YmheJbZCiEsnBdcB03l0OcfK9prKnJb96siuHCr5Fl37/yo9DnKU+TLpxzTUspw9shg==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + loader-runner@4.3.0: resolution: {integrity: sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==} engines: {node: '>=6.11.5'} @@ -4692,6 +4752,12 @@ packages: lodash.ismatch@4.4.0: resolution: {integrity: sha512-fPMfXjGQEV9Xsq/8MTSgUf255gawYRbjwMyDbcvDhXgV7enSZA0hynz6vMPnpAb5iONEzBHBPsT+0zes5Z301g==} + lodash.merge@4.6.2: + resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} + + lodash.sortby@4.7.0: + resolution: {integrity: sha512-HDWXG8isMntAyRF5vZ7xKuEvOhT4AhlRt/3czTSjvGUxjYCBVRQY48ViDHyfYz9VIoBkW4TMGQNapx+l3RUwdA==} + lodash@4.17.21: resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} @@ -5093,8 +5159,11 @@ packages: resolution: {integrity: sha512-+MrqnJRtxdF+xngFfUUkIMQrUUL0KsxbADUkn23Z/4ibGg192Q+z+CQyiYwvWTsYjJygmMR8+w3ZDa98Zh6ESg==} engines: {node: '>=12.0.0'} - nanoid@3.3.10: - resolution: {integrity: sha512-vSJJTG+t/dIKAUhUDw/dLdZ9s//5OxcHqLaDWWrW4Cdq7o6tdLIczUkMXt2MBNmk6sJRZBZRXVixs7URY1CmIg==} + mz@2.7.0: + resolution: {integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==} + + nanoid@3.3.8: + resolution: {integrity: sha512-WNLf5Sd8oZxOm+TzppcYk8gVOgP+l58xNy58D0nbUnOxOWRWvlcCV4kUF7ltmI6PsrLl/BgKEyS4mqsGChFN0w==} engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} hasBin: true @@ -5516,6 +5585,24 @@ packages: resolution: {integrity: sha512-/+5VFTchJDoVj3bhoqi6UeymcD00DAwb1nJwamzPvHEszJ4FpF6SNNbUbOS8yI56qHzdV8eK0qEfOSiodkTdxg==} engines: {node: '>= 0.4'} + postcss-load-config@6.0.1: + resolution: {integrity: sha512-oPtTM4oerL+UXmx+93ytZVN82RrlY/wPUV8IeDxFrzIjXOLF1pN+EmKPLbubvKHT2HC20xXsCAH2Z+CKV6Oz/g==} + engines: {node: '>= 18'} + peerDependencies: + jiti: '>=1.21.0' + postcss: '>=8.4.31' + tsx: ^4.8.1 + yaml: ^2.4.2 + peerDependenciesMeta: + jiti: + optional: true + postcss: + optional: true + tsx: + optional: true + yaml: + optional: true + postcss-selector-parser@6.1.2: resolution: {integrity: sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==} engines: {node: '>=4'} @@ -5664,8 +5751,11 @@ packages: resolution: {integrity: sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==} engines: {node: '>= 0.6'} - rapid-form@2.1.0: - resolution: {integrity: sha512-tZwrgbQLUDK8AFgVsw2DVd8eCqxuujblrc4QPyML/3qneR1/RzaDx5HB29zdAgp8TS4OC17DlD8fiQNiJx+6Tg==} + rapid-form@3.1.0: + resolution: {integrity: sha512-gZf8H9O98xdUz8p4cHZng/JBigLfb6VrIezQdIh+xYejccMxvo5TnZmjIzd3HZA0keYT+t0uJazzRksvBBLPBw==} + peerDependencies: + react: ^16.9.0 + react-dom: ^16.9.0 raw-body@2.5.2: resolution: {integrity: sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==} @@ -5691,6 +5781,11 @@ packages: peerDependencies: react: ^18.3.1 + react-dom@19.0.0: + resolution: {integrity: sha512-4GV5sHFG0e/0AD4X+ySy6UJd3jVl1iNsNHdpad0qhABJ11twS3TTBnseqsKurKcsNqCEFeGL3uLpVChpIO3QfQ==} + peerDependencies: + react: ^19.0.0 + react-element-to-jsx-string@15.0.0: resolution: {integrity: sha512-UDg4lXB6BzlobN60P8fHWVPX3Kyw8ORrTeBtClmIlGdkOOE+GYQSFvmEU5iLLpwp/6v42DINwNcwOhOLfQ//FQ==} peerDependencies: @@ -5709,6 +5804,9 @@ packages: react-is@18.3.1: resolution: {integrity: sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==} + react-is@19.0.0: + resolution: {integrity: sha512-H91OHcwjZsbq3ClIDHMzBShc1rotbfACdWENsmEf0IFvZ3FgGPtdHMcsv45bQ1hAbgdfiA8SnxTKfDS+x/8m2g==} + react-refresh@0.14.2: resolution: {integrity: sha512-jCvmsr+1IUSMUyzOkRcvnVbX3ZYC6g9TDrDbFuFmRDq7PD4yaGbLKNQL6k2jnArV8hjYxh7hVhAZB6s9HDGpZA==} engines: {node: '>=0.10.0'} @@ -5733,11 +5831,6 @@ packages: '@types/react': optional: true - react-shallow-renderer@16.15.0: - resolution: {integrity: sha512-oScf2FqQ9LFVQgA73vr86xl2NaOIX73rh+YFqcOp68CWj56tSfgtGKrEbyhCj0rSijyG9M1CYprTh39fBi5hzA==} - peerDependencies: - react: ^16.0.0 || ^17.0.0 || ^18.0.0 - react-style-singleton@2.2.3: resolution: {integrity: sha512-b6jSvxvVnyptAiLjbkWLE/lOnR4lfTtDAl+eUC7RZy+QQWc6wRzIV2CE6xBuMmDxc2qIihtDCZD5NPOFl7fRBQ==} engines: {node: '>=10'} @@ -5748,15 +5841,19 @@ packages: '@types/react': optional: true - react-test-renderer@18.3.1: - resolution: {integrity: sha512-KkAgygexHUkQqtvvx/otwxtuFu5cVjfzTCtjXLH9boS19/Nbtg84zS7wIQn39G8IlrhThBpQsMKkq5ZHZIYFXA==} + react-test-renderer@19.0.0: + resolution: {integrity: sha512-oX5u9rOQlHzqrE/64CNr0HB0uWxkCQmZNSfozlYvwE71TLVgeZxVf0IjouGEr1v7r1kcDifdAJBeOhdhxsG/DA==} peerDependencies: - react: ^18.3.1 + react: ^19.0.0 react@18.3.1: resolution: {integrity: sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==} engines: {node: '>=0.10.0'} + react@19.0.0: + resolution: {integrity: sha512-V8AVnmPIICiWpGfm6GLzCR/W5FXLchHop40W4nXBmdlEceh16rCN8O8LNWm5bh5XUX91fh7KpA+W0TgMKmgTpQ==} + engines: {node: '>=0.10.0'} + read-cmd-shim@4.0.0: resolution: {integrity: sha512-yILWifhaSEEytfXI76kB9xEEiG1AiozaCJZ83A87ytjRiN+jVibXjedjCRNjoZviinhG+4UkalO3mWTd8u5O0Q==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} @@ -5796,8 +5893,12 @@ packages: resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} engines: {node: '>=8.10.0'} - recast@0.23.11: - resolution: {integrity: sha512-YTUo+Flmw4ZXiWfQKGcwwc11KnoRAYgzAE2E7mXKCjSviTKShtxBsN6YUUBB2gtaBzKzeKunxhUwNHQuRryhWA==} + readdirp@4.1.1: + resolution: {integrity: sha512-h80JrZu/MHUZCyHu5ciuoI0+WxsCxzxJTILn6Fs8rxSnFPh+UVHYfeIxK1nVGugMqkfC4vJcBOYbkfkwYK0+gw==} + engines: {node: '>= 14.18.0'} + + recast@0.23.9: + resolution: {integrity: sha512-Hx/BGIbwj+Des3+xy5uAtAbdCyqK9y9wbBcDFDYanLS9JnMqf7OeF87HQwUimE87OEc72mr6tkKUKMBBL+hF9Q==} engines: {node: '>= 4'} redent@3.0.0: @@ -5961,6 +6062,13 @@ packages: scheduler@0.23.2: resolution: {integrity: sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==} + scheduler@0.25.0: + resolution: {integrity: sha512-xFVuu11jh+xcO7JOAGJNOXld8/TcEHK/4CituBUeUb5hqxJLj9YuemAEuvm9gQ/+pgXYfbQuqAkiYu+u7YEsNA==} + + schema-utils@3.3.0: + resolution: {integrity: sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==} + engines: {node: '>= 10.13.0'} + schema-utils@4.3.0: resolution: {integrity: sha512-Gf9qqc58SpCA/xdziiHz35F4GNIWYWZrEshUc/G/r5BnLph6xpKuLeoJoQuj5WfBIx/eQLf+hmVPYHaxJu7V2g==} engines: {node: '>= 10.13.0'} @@ -6079,6 +6187,10 @@ packages: resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} engines: {node: '>=0.10.0'} + source-map@0.8.0-beta.0: + resolution: {integrity: sha512-2ymg6oRBpebeZi9UUNsgQ89bhx01TcTkmNTGnNO88imTmbSgy4nfujrgVEFKWpMTEGA11EDkTt7mqObTPdigIA==} + engines: {node: '>= 8'} + space-separated-tokens@1.1.5: resolution: {integrity: sha512-q/JSVd1Lptzhf5bkYm4ob4iWPjx0KiRe3sRFBNrVqbJkFaBm5vbbowy1mymoPNLRa52+oadOhJ+K49wsSeSjTA==} @@ -6188,6 +6300,11 @@ packages: engines: {node: '>=4'} hasBin: true + sucrase@3.35.0: + resolution: {integrity: sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==} + engines: {node: '>=16 || 14 >=14.17'} + hasBin: true + supports-color@7.2.0: resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} engines: {node: '>=8'} @@ -6273,6 +6390,13 @@ packages: resolution: {integrity: sha512-wiBrwC1EhBelW12Zy26JeOUkQ5mRu+5o8rpsJk5+2t+Y5vE7e842qtZDQ2g1NpX/29HdyFeJ4nSIhI47ENSxlQ==} engines: {node: '>=0.10'} + thenify-all@1.6.0: + resolution: {integrity: sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==} + engines: {node: '>=0.8'} + + thenify@3.3.1: + resolution: {integrity: sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==} + through2@2.0.5: resolution: {integrity: sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==} @@ -6288,6 +6412,10 @@ packages: tinyexec@0.3.2: resolution: {integrity: sha512-KQQR9yN7R5+OSwaK0XQoj22pwHoTlgYqmUscPYoknOoWCWfj/5/ABTMRi69FrKU5ffPVh5QcFikpWJI/P1ocHA==} + tinyglobby@0.2.10: + resolution: {integrity: sha512-Zc+8eJlFMvgatPZTl6A9L/yht8QqdmUNtURHaKZLmKBE12hNPSrqNkUp2cs3M/UKmNVVAMFQYSjYIVHDjW5zew==} + engines: {node: '>=12.0.0'} + tinypool@1.0.2: resolution: {integrity: sha512-al6n+QEANGFOMf/dmUMsuS5/r9B06uwlyNjZZql/zv8J7ybHCgoihBNORZCY2mzUuAnomQa2JdhyHKzZxPCrFA==} engines: {node: ^18.0.0 || >=20.0.0} @@ -6340,10 +6468,17 @@ packages: tr46@0.0.3: resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==} - tr46@5.1.0: - resolution: {integrity: sha512-IUWnUK7ADYR5Sl1fZlO1INDUhVhatWl7BtJWsIhwJ0UAK7ilzzIa8uIqOO/aYVWHZPJkKbEL+362wrzoeRF7bw==} + tr46@1.0.1: + resolution: {integrity: sha512-dTpowEjclQ7Kgx5SdBkqRzVhERQXov8/l9Ft9dVM9fmg0W0KQSVaXX9T4i6twCPNtYiZM53lpSSUAwJbFPOHxA==} + + tr46@5.0.0: + resolution: {integrity: sha512-tk2G5R2KRwBd+ZN0zaEXpmzdKyOYksXwywulIX95MBODjSzMIuQnQ3m8JxgbhnL1LeVo7lqQKsYa1O3Htl7K5g==} engines: {node: '>=18'} + tree-kill@1.2.2: + resolution: {integrity: sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==} + hasBin: true + treeverse@3.0.0: resolution: {integrity: sha512-gcANaAnd2QDZFmHFEOF4k7uc1J/6a6z3DJMd/QwEyxLoKGiptJRwid582r7QIsFlFMIZ3SnxfS52S4hm2DHkuQ==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} @@ -6359,8 +6494,11 @@ packages: resolution: {integrity: sha512-q5W7tVM71e2xjHZTlgfTDoPF/SmqKG5hddq9SzR49CH2hayqRKJtQ4mtRlSxKaJlR/+9rEM+mnBHf7I2/BQcpQ==} engines: {node: '>=6.10'} - tsc-alias@1.8.11: - resolution: {integrity: sha512-2DuEQ58A9Rj2NE2c1+/qaGKlshni9MCK95MJzRGhQG0CYLw0bE/ACgbhhTSf/p1svLelwqafOd8stQate2bYbg==} + ts-interface-checker@0.1.13: + resolution: {integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==} + + tsc-alias@1.8.10: + resolution: {integrity: sha512-Ibv4KAWfFkFdKJxnWfVtdOmB0Zi1RJVxcbPGiCDsFpCQSsmpWyuzHG3rQyI5YkobWwxFPEyQfu1hdo4qLG2zPw==} hasBin: true tsconfck@3.1.5: @@ -6383,6 +6521,25 @@ packages: tslib@2.8.1: resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==} + tsup@8.3.6: + resolution: {integrity: sha512-XkVtlDV/58S9Ye0JxUUTcrQk4S+EqlOHKzg6Roa62rdjL1nGWNUstG0xgI4vanHdfIpjP448J8vlN0oK6XOJ5g==} + engines: {node: '>=18'} + hasBin: true + peerDependencies: + '@microsoft/api-extractor': ^7.36.0 + '@swc/core': ^1 + postcss: '>=8.4.31' + typescript: '>=4.5.0' + peerDependenciesMeta: + '@microsoft/api-extractor': + optional: true + '@swc/core': + optional: true + postcss: + optional: true + typescript: + optional: true + tuf-js@2.2.1: resolution: {integrity: sha512-GwIJau9XaA8nLVbUXsN3IlFi7WmQ48gBUrl3FTkkL/XLu/POhBzfmX9hd33FNMX1qAsfl6ozO1iMmW9NC8YniA==} engines: {node: ^16.14.0 || >=18.0.0} @@ -6705,6 +6862,9 @@ packages: webidl-conversions@3.0.1: resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==} + webidl-conversions@4.0.2: + resolution: {integrity: sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==} + webidl-conversions@7.0.0: resolution: {integrity: sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==} engines: {node: '>=12'} @@ -6741,6 +6901,9 @@ packages: whatwg-url@5.0.0: resolution: {integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==} + whatwg-url@7.1.0: + resolution: {integrity: sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg==} + which-boxed-primitive@1.1.1: resolution: {integrity: sha512-TbX3mj8n0odCBFVlY8AxkqcHASw3L60jIuF8jFP78az3C2YhmGvqbHBpAjTRH2/xqYunrJ9g1jSyjCjpoWzIAA==} engines: {node: '>= 0.4'} @@ -7708,7 +7871,7 @@ snapshots: '@commercelayer/sdk@6.35.0': {} - '@csstools/color-helpers@5.0.2': {} + '@commercelayer/sdk@6.29.2': {} '@csstools/css-calc@2.1.2(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3)': dependencies: @@ -9563,20 +9726,20 @@ snapshots: '@types/express': 4.17.21 file-system-cache: 2.3.0 - '@stripe/react-stripe-js@3.4.0(@stripe/stripe-js@5.10.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@stripe/react-stripe-js@3.1.1(@stripe/stripe-js@5.6.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': dependencies: - '@stripe/stripe-js': 5.10.0 + '@stripe/stripe-js': 5.6.0 prop-types: 15.8.1 - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) + react: 19.0.0 + react-dom: 19.0.0(react@19.0.0) - '@stripe/stripe-js@5.10.0': {} + '@stripe/stripe-js@5.6.0': {} - '@tanstack/react-table@8.21.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@tanstack/react-table@8.20.6(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': dependencies: - '@tanstack/table-core': 8.21.2 - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) + '@tanstack/table-core': 8.20.5 + react: 19.0.0 + react-dom: 19.0.0(react@19.0.0) '@tanstack/table-core@8.21.2': {} @@ -9602,14 +9765,14 @@ snapshots: lz-string: 1.5.0 pretty-format: 27.5.1 - '@testing-library/react@16.2.0(@testing-library/dom@10.4.0)(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@testing-library/react@16.2.0(@testing-library/dom@10.4.0)(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': dependencies: '@babel/runtime': 7.26.10 '@testing-library/dom': 10.4.0 - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) + react: 19.0.0 + react-dom: 19.0.0(react@19.0.0) optionalDependencies: - '@types/react': 18.3.18 + '@types/react': 19.0.8 '@testing-library/user-event@14.6.1(@testing-library/dom@9.3.4)': dependencies: @@ -9791,19 +9954,23 @@ snapshots: '@types/range-parser@1.2.7': {} - '@types/react-test-renderer@18.3.1': + '@types/react-test-renderer@19.0.0': dependencies: - '@types/react': 18.3.18 + '@types/react': 19.0.8 '@types/react-window@1.8.8': dependencies: - '@types/react': 18.3.18 + '@types/react': 19.0.8 '@types/react@18.3.18': dependencies: '@types/prop-types': 15.7.14 csstype: 3.1.3 + '@types/react@19.0.8': + dependencies: + csstype: 3.1.3 + '@types/resolve@1.20.6': {} '@types/semver@7.5.8': {} @@ -10093,6 +10260,8 @@ snapshots: ansi-styles@6.2.1: {} + any-promise@1.3.0: {} + anymatch@3.1.3: dependencies: normalize-path: 3.0.0 @@ -10321,6 +10490,17 @@ snapshots: base64-js: 1.5.1 ieee754: 1.2.1 + builtin-modules@3.3.0: {} + + builtins@5.1.0: + dependencies: + semver: 7.6.3 + + bundle-require@5.1.0(esbuild@0.24.2): + dependencies: + esbuild: 0.24.2 + load-tsconfig: 0.2.5 + byte-size@8.1.1: {} bytes@3.1.2: {} @@ -10413,6 +10593,10 @@ snapshots: optionalDependencies: fsevents: 2.3.3 + chokidar@4.0.3: + dependencies: + readdirp: 4.1.1 + chownr@1.1.4: {} chownr@2.0.0: {} @@ -10492,6 +10676,8 @@ snapshots: commander@2.20.3: {} + commander@4.1.1: {} + commander@6.2.1: {} commander@9.5.0: {} @@ -11106,6 +11292,10 @@ snapshots: dependencies: pend: 1.2.0 + fdir@6.4.3(picomatch@4.0.2): + optionalDependencies: + picomatch: 4.0.2 + fetch-retry@5.0.6: {} figures@3.2.0: @@ -11205,12 +11395,12 @@ snapshots: dependencies: '@braintree/uuid': 1.0.1 - frames-react@1.2.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rollup@4.35.0)(typescript@5.8.2): + frames-react@1.2.2(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(rollup@4.32.0)(typescript@5.7.3): dependencies: classnames: 2.5.1 - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - rollup-plugin-typescript2: 0.36.0(rollup@4.35.0)(typescript@5.8.2) + react: 19.0.0 + react-dom: 19.0.0(react@19.0.0) + rollup-plugin-typescript2: 0.36.0(rollup@4.32.0)(typescript@5.7.3) tslib: 2.8.1 transitivePeerDependencies: - rollup @@ -11376,7 +11566,6 @@ snapshots: minimatch: 3.1.2 once: 1.4.0 path-is-absolute: 1.0.1 - dev: true glob@9.3.5: dependencies: @@ -11387,6 +11576,17 @@ snapshots: globals@11.12.0: {} + globals@13.24.0: + dependencies: + type-fest: 0.20.2 + + globals@14.0.0: {} + + globalthis@1.0.4: + dependencies: + define-properties: 1.2.1 + gopd: 1.2.0 + globby@11.1.0: dependencies: array-union: 2.1.0 @@ -11535,7 +11735,6 @@ snapshots: dependencies: once: 1.4.0 wrappy: 1.0.2 - dev: true inherits@2.0.4: {} @@ -11855,6 +12054,8 @@ snapshots: merge-stream: 2.0.0 supports-color: 8.1.1 + joycon@3.1.1: {} + js-cookie@3.0.5: {} js-tokens@4.0.0: {} @@ -12084,6 +12285,8 @@ snapshots: transitivePeerDependencies: - supports-color + lilconfig@3.1.3: {} + lines-and-columns@1.2.4: {} lines-and-columns@2.0.3: {} @@ -12102,6 +12305,8 @@ snapshots: strip-bom: 4.0.0 type-fest: 0.6.0 + load-tsconfig@0.2.5: {} + loader-runner@4.3.0: {} locate-path@2.0.0: @@ -12130,6 +12335,10 @@ snapshots: lodash.ismatch@4.4.0: {} + lodash.merge@4.6.2: {} + + lodash.sortby@4.7.0: {} + lodash@4.17.21: {} log-symbols@4.1.0: @@ -12702,7 +12911,15 @@ snapshots: mylas@2.1.13: {} - nanoid@3.3.10: {} + mz@2.7.0: + dependencies: + any-promise: 1.3.0 + object-assign: 4.1.1 + thenify-all: 1.6.0 + + nanoid@3.3.8: {} + + natural-compare@1.4.0: {} negotiator@0.6.3: {} @@ -12910,7 +13127,6 @@ snapshots: once@1.4.0: dependencies: wrappy: 1.0.2 - dev: true onetime@5.1.2: dependencies: @@ -13172,6 +13388,13 @@ snapshots: possible-typed-array-names@1.1.0: {} + postcss-load-config@6.0.1(postcss@8.5.1)(yaml@2.6.1): + dependencies: + lilconfig: 3.1.3 + optionalDependencies: + postcss: 8.5.1 + yaml: 2.6.1 + postcss-selector-parser@6.1.2: dependencies: cssesc: 3.0.0 @@ -13315,7 +13538,11 @@ snapshots: range-parser@1.2.1: {} - rapid-form@2.1.0: {} + rapid-form@3.1.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0): + dependencies: + '@example/basics': link:../../../../alessandrocasazza/Documents/GitHub/okeo-academy + react: 19.0.0 + react-dom: 19.0.0(react@19.0.0) raw-body@2.5.2: dependencies: @@ -13354,6 +13581,11 @@ snapshots: react: 18.3.1 scheduler: 0.23.2 + react-dom@19.0.0(react@19.0.0): + dependencies: + react: 19.0.0 + scheduler: 0.25.0 + react-element-to-jsx-string@15.0.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1): dependencies: '@base2/pretty-print-object': 1.0.1 @@ -13370,6 +13602,8 @@ snapshots: react-is@18.3.1: {} + react-is@19.0.0: {} + react-refresh@0.14.2: {} react-remove-scroll-bar@2.3.8(@types/react@18.3.18)(react@18.3.1): @@ -13391,13 +13625,7 @@ snapshots: optionalDependencies: '@types/react': 18.3.18 - react-shallow-renderer@16.15.0(react@18.3.1): - dependencies: - object-assign: 4.1.1 - react: 18.3.1 - react-is: 18.3.1 - - react-style-singleton@2.2.3(@types/react@18.3.18)(react@18.3.1): + react-style-singleton@2.2.3(@types/react@18.3.17)(react@18.3.1): dependencies: get-nonce: 1.0.1 react: 18.3.1 @@ -13405,17 +13633,18 @@ snapshots: optionalDependencies: '@types/react': 18.3.18 - react-test-renderer@18.3.1(react@18.3.1): + react-test-renderer@19.0.0(react@19.0.0): dependencies: - react: 18.3.1 - react-is: 18.3.1 - react-shallow-renderer: 16.15.0(react@18.3.1) - scheduler: 0.23.2 + react: 19.0.0 + react-is: 19.0.0 + scheduler: 0.25.0 react@18.3.1: dependencies: loose-envify: 1.4.0 + react@19.0.0: {} + read-cmd-shim@4.0.0: {} read-package-json-fast@3.0.2: @@ -13471,7 +13700,9 @@ snapshots: dependencies: picomatch: 2.3.1 - recast@0.23.11: + readdirp@4.1.1: {} + + recast@0.23.9: dependencies: ast-types: 0.16.1 esprima: 4.0.1 @@ -13589,7 +13820,6 @@ snapshots: rimraf@3.0.2: dependencies: glob: 7.2.3 - dev: true rimraf@4.4.1: dependencies: @@ -13670,6 +13900,14 @@ snapshots: dependencies: loose-envify: 1.4.0 + scheduler@0.25.0: {} + + schema-utils@3.3.0: + dependencies: + '@types/json-schema': 7.0.15 + ajv: 6.12.6 + ajv-keywords: 3.5.2(ajv@6.12.6) + schema-utils@4.3.0: dependencies: '@types/json-schema': 7.0.15 @@ -13821,6 +14059,10 @@ snapshots: source-map@0.6.1: {} + source-map@0.8.0-beta.0: + dependencies: + whatwg-url: 7.1.0 + space-separated-tokens@1.1.5: {} spdx-correct@3.2.0: @@ -13929,6 +14171,16 @@ snapshots: minimist: 1.2.8 through: 2.3.8 + sucrase@3.35.0: + dependencies: + '@jridgewell/gen-mapping': 0.3.8 + commander: 4.1.1 + glob: 10.4.5 + lines-and-columns: 1.2.4 + mz: 2.7.0 + pirates: 4.0.6 + ts-interface-checker: 0.1.13 + supports-color@7.2.0: dependencies: has-flag: 4.0.0 @@ -14021,6 +14273,14 @@ snapshots: text-extensions@1.9.0: {} + thenify-all@1.6.0: + dependencies: + thenify: 3.3.1 + + thenify@3.3.1: + dependencies: + any-promise: 1.3.0 + through2@2.0.5: dependencies: readable-stream: 2.3.8 @@ -14034,6 +14294,11 @@ snapshots: tinyexec@0.3.2: {} + tinyglobby@0.2.10: + dependencies: + fdir: 6.4.3(picomatch@4.0.2) + picomatch: 4.0.2 + tinypool@1.0.2: {} tinyrainbow@2.0.0: {} @@ -14075,10 +14340,16 @@ snapshots: tr46@0.0.3: {} - tr46@5.1.0: + tr46@1.0.1: + dependencies: + punycode: 2.3.1 + + tr46@5.0.0: dependencies: punycode: 2.3.1 + tree-kill@1.2.2: {} + treeverse@3.0.0: {} trim-newlines@3.0.1: {} @@ -14087,7 +14358,9 @@ snapshots: ts-dedent@2.2.0: {} - tsc-alias@1.8.11: + ts-interface-checker@0.1.13: {} + + tsc-alias@1.8.10: dependencies: chokidar: 3.6.0 commander: 9.5.0 @@ -14110,6 +14383,33 @@ snapshots: tslib@2.8.1: {} + tsup@8.3.6(postcss@8.5.1)(typescript@5.7.3)(yaml@2.6.1): + dependencies: + bundle-require: 5.1.0(esbuild@0.24.2) + cac: 6.7.14 + chokidar: 4.0.3 + consola: 3.2.3 + debug: 4.4.0 + esbuild: 0.24.2 + joycon: 3.1.1 + picocolors: 1.1.1 + postcss-load-config: 6.0.1(postcss@8.5.1)(yaml@2.6.1) + resolve-from: 5.0.0 + rollup: 4.32.0 + source-map: 0.8.0-beta.0 + sucrase: 3.35.0 + tinyexec: 0.3.2 + tinyglobby: 0.2.10 + tree-kill: 1.2.2 + optionalDependencies: + postcss: 8.5.1 + typescript: 5.7.3 + transitivePeerDependencies: + - jiti + - supports-color + - tsx + - yaml + tuf-js@2.2.1: dependencies: '@tufjs/models': 2.0.1 @@ -14416,6 +14716,8 @@ snapshots: webidl-conversions@3.0.1: {} + webidl-conversions@4.0.2: {} + webidl-conversions@7.0.0: {} webpack-sources@3.2.3: {} @@ -14468,6 +14770,12 @@ snapshots: tr46: 0.0.3 webidl-conversions: 3.0.1 + whatwg-url@7.1.0: + dependencies: + lodash.sortby: 4.7.0 + tr46: 1.0.1 + webidl-conversions: 4.0.2 + which-boxed-primitive@1.1.1: dependencies: is-bigint: 1.1.0 diff --git a/vitest.workspace.ts b/vitest.workspace.ts new file mode 100644 index 00000000..cbf98059 --- /dev/null +++ b/vitest.workspace.ts @@ -0,0 +1,3 @@ +import { defineWorkspace } from "vitest/config" + +export default defineWorkspace(["packages/*"]) From d8154930821313c4826e39812931d754b9d3e3a8 Mon Sep 17 00:00:00 2001 From: Alessandro Casazza Date: Tue, 11 Feb 2025 18:33:47 +0100 Subject: [PATCH 04/10] Add new documentation folder --- packages/document/.gitignore | 26 + .../.storybook/addon-gh-repository/Tool.tsx | 17 + .../addon-gh-repository/constants.ts | 5 + .../addon-gh-repository/manager.tsx | 13 + .../.storybook/commercelayer.theme.ts | 11 + packages/document/.storybook/main.ts | 78 + .../document/.storybook/manager-head.html | 3 + .../document/.storybook/preview-head.html | 13 + packages/document/.storybook/preview.tsx | 143 + packages/document/README.md | 50 + packages/document/eslint.config.js | 28 + packages/document/index.html | 13 + packages/document/mocks/browser.js | 6 + packages/document/mocks/data/adjustments.js | 39 + packages/document/mocks/data/bundles.js | 388 ++ packages/document/mocks/data/line_items.js | 82 + packages/document/mocks/data/markets.js | 447 ++ packages/document/mocks/data/orders.js | 3713 +++++++++++++++++ packages/document/mocks/data/tags.js | 42 + packages/document/mocks/handlers.js | 15 + packages/document/package.json | 53 + packages/document/public/app-logo.png | Bin 0 -> 28732 bytes packages/document/public/mockServiceWorker.js | 303 ++ .../document/public/storybook-preview.css | 38 + packages/document/public/welcome-hero.png | Bin 0 -> 103964 bytes packages/document/src/App.css | 42 + packages/document/src/App.tsx | 35 + packages/document/src/assets/react.svg | 1 + packages/document/src/index.css | 68 + packages/document/src/main.tsx | 10 + .../document/src/stories/_internals/Code.tsx | 3 + .../src/stories/_internals/CommerceLayer.tsx | 35 + .../src/stories/_internals/OrderStorage.tsx | 96 + .../src/stories/_internals/useGetToken.ts | 261 ++ .../getting-started/001.introduction.mdx | 55 + .../getting-started/002.authentication.mdx | 61 + .../getting-started/003.microfrontends.mdx | 17 + .../stories/getting-started/004.styling.mdx | 16 + .../getting-started/005.containers.mdx | 36 + packages/document/src/vite-env.d.ts | 1 + packages/document/tsconfig.app.json | 26 + packages/document/tsconfig.json | 7 + packages/document/tsconfig.node.json | 24 + packages/document/vite.config.ts | 7 + pnpm-lock.yaml | 3287 ++++++++++++++- 45 files changed, 9388 insertions(+), 226 deletions(-) create mode 100644 packages/document/.gitignore create mode 100644 packages/document/.storybook/addon-gh-repository/Tool.tsx create mode 100644 packages/document/.storybook/addon-gh-repository/constants.ts create mode 100644 packages/document/.storybook/addon-gh-repository/manager.tsx create mode 100644 packages/document/.storybook/commercelayer.theme.ts create mode 100644 packages/document/.storybook/main.ts create mode 100644 packages/document/.storybook/manager-head.html create mode 100644 packages/document/.storybook/preview-head.html create mode 100644 packages/document/.storybook/preview.tsx create mode 100644 packages/document/README.md create mode 100644 packages/document/eslint.config.js create mode 100644 packages/document/index.html create mode 100644 packages/document/mocks/browser.js create mode 100644 packages/document/mocks/data/adjustments.js create mode 100644 packages/document/mocks/data/bundles.js create mode 100644 packages/document/mocks/data/line_items.js create mode 100644 packages/document/mocks/data/markets.js create mode 100644 packages/document/mocks/data/orders.js create mode 100644 packages/document/mocks/data/tags.js create mode 100644 packages/document/mocks/handlers.js create mode 100644 packages/document/package.json create mode 100644 packages/document/public/app-logo.png create mode 100644 packages/document/public/mockServiceWorker.js create mode 100644 packages/document/public/storybook-preview.css create mode 100644 packages/document/public/welcome-hero.png create mode 100644 packages/document/src/App.css create mode 100644 packages/document/src/App.tsx create mode 100644 packages/document/src/assets/react.svg create mode 100644 packages/document/src/index.css create mode 100644 packages/document/src/main.tsx create mode 100644 packages/document/src/stories/_internals/Code.tsx create mode 100644 packages/document/src/stories/_internals/CommerceLayer.tsx create mode 100644 packages/document/src/stories/_internals/OrderStorage.tsx create mode 100644 packages/document/src/stories/_internals/useGetToken.ts create mode 100644 packages/document/src/stories/getting-started/001.introduction.mdx create mode 100644 packages/document/src/stories/getting-started/002.authentication.mdx create mode 100644 packages/document/src/stories/getting-started/003.microfrontends.mdx create mode 100644 packages/document/src/stories/getting-started/004.styling.mdx create mode 100644 packages/document/src/stories/getting-started/005.containers.mdx create mode 100644 packages/document/src/vite-env.d.ts create mode 100644 packages/document/tsconfig.app.json create mode 100644 packages/document/tsconfig.json create mode 100644 packages/document/tsconfig.node.json create mode 100644 packages/document/vite.config.ts diff --git a/packages/document/.gitignore b/packages/document/.gitignore new file mode 100644 index 00000000..f940a995 --- /dev/null +++ b/packages/document/.gitignore @@ -0,0 +1,26 @@ +# Logs +logs +*.log +npm-debug.log* +yarn-debug.log* +yarn-error.log* +pnpm-debug.log* +lerna-debug.log* + +node_modules +dist +dist-ssr +*.local + +# Editor directories and files +.vscode/* +!.vscode/extensions.json +.idea +.DS_Store +*.suo +*.ntvs* +*.njsproj +*.sln +*.sw? + +*storybook.log diff --git a/packages/document/.storybook/addon-gh-repository/Tool.tsx b/packages/document/.storybook/addon-gh-repository/Tool.tsx new file mode 100644 index 00000000..25f4aa10 --- /dev/null +++ b/packages/document/.storybook/addon-gh-repository/Tool.tsx @@ -0,0 +1,17 @@ +import { A, IconButton, Icons, Separator } from '@storybook/components' +import React from 'react' +import { ADDON_NAME, REPOSITORY_URL, TOOL_ID } from './constants' + +export const Tool = () => { + return ( + <> + + + + +   repository + + + + ) +} diff --git a/packages/document/.storybook/addon-gh-repository/constants.ts b/packages/document/.storybook/addon-gh-repository/constants.ts new file mode 100644 index 00000000..da0fb807 --- /dev/null +++ b/packages/document/.storybook/addon-gh-repository/constants.ts @@ -0,0 +1,5 @@ +export const ADDON_ID = 'addon-gh-repository' +export const ADDON_NAME = 'View repository' +export const TOOL_ID = `${ADDON_ID}/tool` +export const REPOSITORY_URL = + 'https://github.com/commercelayer/commercelayer-react-components' diff --git a/packages/document/.storybook/addon-gh-repository/manager.tsx b/packages/document/.storybook/addon-gh-repository/manager.tsx new file mode 100644 index 00000000..0963c403 --- /dev/null +++ b/packages/document/.storybook/addon-gh-repository/manager.tsx @@ -0,0 +1,13 @@ +import { addons, types } from "@storybook/manager-api" +import React from "react" +import { Tool } from "./Tool" +import { ADDON_ID, ADDON_NAME } from "./constants" + +addons.register(ADDON_ID, () => { + addons.add(ADDON_ID, { + title: ADDON_NAME, + type: types.TOOL, + match: ({ viewMode }) => !!viewMode?.match(/^(story|docs)$/), + render: () => , + }) +}) diff --git a/packages/document/.storybook/commercelayer.theme.ts b/packages/document/.storybook/commercelayer.theme.ts new file mode 100644 index 00000000..1b06740a --- /dev/null +++ b/packages/document/.storybook/commercelayer.theme.ts @@ -0,0 +1,11 @@ +import { create } from '@storybook/theming' + +export default create({ + base: 'light', + brandTitle: 'Commerce Layer', + // brandUrl: 'https://example.com', + brandImage: './app-logo.png', + brandTarget: '_self', + + textColor: '#101111' +}) diff --git a/packages/document/.storybook/main.ts b/packages/document/.storybook/main.ts new file mode 100644 index 00000000..451b989b --- /dev/null +++ b/packages/document/.storybook/main.ts @@ -0,0 +1,78 @@ +import { resolve } from "node:path" +import type { StorybookConfig } from "@storybook/react-vite" +import remarkGfm from "remark-gfm" +import { type UserConfig, mergeConfig } from "vite" +import tsconfigPaths from "vite-tsconfig-paths" + +const viteOverrides: UserConfig = { + base: process.env.VITE_BASE_URL, + plugins: [ + tsconfigPaths({ + projects: [ + resolve(import.meta.dirname, "../../react-components/tsconfig.json"), + resolve(import.meta.dirname, "../tsconfig.json"), + ], + }), + ], +} + +const storybookConfig: StorybookConfig = { + async viteFinal(config) { + return mergeConfig(config, viteOverrides) + }, + stories: ["../stories/**/*.mdx", "../stories/**/*.stories.@(js|jsx|ts|tsx)"], + addons: [ + "@storybook/addon-links", + "@storybook/addon-essentials", + "@storybook/addon-interactions", + { + name: "@storybook/addon-docs", + options: { + mdxPluginOptions: { + mdxCompileOptions: { + remarkPlugins: [remarkGfm], + }, + }, + }, + }, + ], + // @ts-expect-error This 'managerEntries' exists. + managerEntries: [ + resolve(import.meta.dirname, "./addon-gh-repository/manager.tsx"), + ], + framework: { + name: "@storybook/react-vite", + options: {}, + }, + core: { + disableTelemetry: true, + }, + features: { + storyStoreV7: true, + }, + docs: { + autodocs: true, + docsMode: true, + }, + typescript: { + check: false, + reactDocgen: "react-docgen-typescript", + reactDocgenTypescriptOptions: { + propFilter: (prop) => { + if (["children", "className"].includes(prop.name)) { + return true + } + + if (prop.parent != null) { + return ( + !prop.parent.fileName.includes("@types/react") && + !prop.parent.fileName.includes("@emotion") + ) + } + return true + }, + }, + }, +} + +export default storybookConfig diff --git a/packages/document/.storybook/manager-head.html b/packages/document/.storybook/manager-head.html new file mode 100644 index 00000000..ece446c3 --- /dev/null +++ b/packages/document/.storybook/manager-head.html @@ -0,0 +1,3 @@ + + + diff --git a/packages/document/.storybook/preview-head.html b/packages/document/.storybook/preview-head.html new file mode 100644 index 00000000..6448e887 --- /dev/null +++ b/packages/document/.storybook/preview-head.html @@ -0,0 +1,13 @@ + + + + + \ No newline at end of file diff --git a/packages/document/.storybook/preview.tsx b/packages/document/.storybook/preview.tsx new file mode 100644 index 00000000..9632a948 --- /dev/null +++ b/packages/document/.storybook/preview.tsx @@ -0,0 +1,143 @@ +import { + Controls, + Description, + Primary, + Stories, + Subtitle, + Title, +} from "@storybook/blocks" +import type { Decorator, Parameters } from "@storybook/react" +import React from "react" +import { worker } from "../mocks/browser" + +export const parameters: Parameters = { + layout: "centered", + controls: { + matchers: { + color: /(background|color)$/i, + date: /Date$/, + }, + }, + backgrounds: { + values: [ + { + name: "overlay", + value: "#F8F8F8", + }, + ], + }, + options: { + storySort: { + method: "alphabetical", + order: [ + "Getting Started", + // [ + // "Welcome", + // "Applications", + // "Custom apps", + // "Token provider", + // "Core SDK provider", + // ], + // "Atoms", + // "Forms", + // ["react-hook-form"], + // "Hooks", + // "Lists", + // "Composite", + // "Resources", + // "Examples", + ], + }, + }, + docs: { + page: () => ( + + + <Subtitle /> + <Description /> + <Primary /> + <Controls /> + <Stories includePrimary={false} /> + </React.Fragment> + ), + // source: { + // transform: (input: string) => + // prettier.format(input, { + // parser: 'babel', + // plugins: [prettierBabel] + // }), + // }, + }, +} + +// export const withContainer: Decorator = (Story, context) => { +// const { containerEnabled } = context.globals +// if (containerEnabled === true) { +// return ( +// <Container minHeight={false}> +// <Story /> +// </Container> +// ) +// } + +// return <Story /> +// } + +// export const withLocale: Decorator = (Story, context) => { +// const locale = "en-US" +// return ( +// <I18NProvider enforcedLocaleCode={locale}> +// <Story /> +// </I18NProvider> +// ) +// } + +// export const decorators: Decorator[] = [withLocale, withContainer] + +// export const globals = { +// [PARAM_KEY]: true, +// } + +// Storybook executes this module in both bootstap phase (Node) +// and a story's runtime (browser). However, we cannot call `setupWorker` +// in Node environment, so need to check if we're in a browser. +if (typeof global.process === "undefined") { + // Start the mocking when each story is loaded. + // Repetitive calls to the `.start()` method do not register a new worker, + // but check whether there's an existing once, reusing it, if so. + worker.start({ + serviceWorker: { + url: `${import.meta.env.BASE_URL}mockServiceWorker.js`, + }, + quiet: import.meta.env.PROD, + onUnhandledRequest: !import.meta.env.PROD + ? (req, reqPrint) => { + const url = new URL(req.url) + if (url.hostname === "mock.localhost") { + reqPrint.warning() + } + } + : () => {}, + }) +} + +const argTypesEnhancers: Preview["argTypesEnhancers"] = [ + (context) => { + // when the className prop comes from `JSX.IntrinsicElements['div' | 'span']` + // and is not documented, we add a default description + if ( + "className" in context.argTypes && + context.argTypes.className.description === "" + ) { + context.argTypes.className.description = + "CSS class name for the base component" + } + + return context.argTypes + }, +] + +export default { + parameters, + argTypesEnhancers, +} diff --git a/packages/document/README.md b/packages/document/README.md new file mode 100644 index 00000000..74872fd4 --- /dev/null +++ b/packages/document/README.md @@ -0,0 +1,50 @@ +# React + TypeScript + Vite + +This template provides a minimal setup to get React working in Vite with HMR and some ESLint rules. + +Currently, two official plugins are available: + +- [@vitejs/plugin-react](https://github.com/vitejs/vite-plugin-react/blob/main/packages/plugin-react/README.md) uses [Babel](https://babeljs.io/) for Fast Refresh +- [@vitejs/plugin-react-swc](https://github.com/vitejs/vite-plugin-react-swc) uses [SWC](https://swc.rs/) for Fast Refresh + +## Expanding the ESLint configuration + +If you are developing a production application, we recommend updating the configuration to enable type aware lint rules: + +- Configure the top-level `parserOptions` property like this: + +```js +export default tseslint.config({ + languageOptions: { + // other options... + parserOptions: { + project: ['./tsconfig.node.json', './tsconfig.app.json'], + tsconfigRootDir: import.meta.dirname, + }, + }, +}) +``` + +- Replace `tseslint.configs.recommended` to `tseslint.configs.recommendedTypeChecked` or `tseslint.configs.strictTypeChecked` +- Optionally add `...tseslint.configs.stylisticTypeChecked` +- Install [eslint-plugin-react](https://github.com/jsx-eslint/eslint-plugin-react) and update the config: + +```js +// eslint.config.js +import react from 'eslint-plugin-react' + +export default tseslint.config({ + // Set the react version + settings: { react: { version: '18.3' } }, + plugins: { + // Add the react plugin + react, + }, + rules: { + // other rules... + // Enable its recommended rules + ...react.configs.recommended.rules, + ...react.configs['jsx-runtime'].rules, + }, +}) +``` diff --git a/packages/document/eslint.config.js b/packages/document/eslint.config.js new file mode 100644 index 00000000..092408a9 --- /dev/null +++ b/packages/document/eslint.config.js @@ -0,0 +1,28 @@ +import js from '@eslint/js' +import globals from 'globals' +import reactHooks from 'eslint-plugin-react-hooks' +import reactRefresh from 'eslint-plugin-react-refresh' +import tseslint from 'typescript-eslint' + +export default tseslint.config( + { ignores: ['dist'] }, + { + extends: [js.configs.recommended, ...tseslint.configs.recommended], + files: ['**/*.{ts,tsx}'], + languageOptions: { + ecmaVersion: 2020, + globals: globals.browser, + }, + plugins: { + 'react-hooks': reactHooks, + 'react-refresh': reactRefresh, + }, + rules: { + ...reactHooks.configs.recommended.rules, + 'react-refresh/only-export-components': [ + 'warn', + { allowConstantExport: true }, + ], + }, + }, +) diff --git a/packages/document/index.html b/packages/document/index.html new file mode 100644 index 00000000..e4b78eae --- /dev/null +++ b/packages/document/index.html @@ -0,0 +1,13 @@ +<!doctype html> +<html lang="en"> + <head> + <meta charset="UTF-8" /> + <link rel="icon" type="image/svg+xml" href="/vite.svg" /> + <meta name="viewport" content="width=device-width, initial-scale=1.0" /> + <title>Vite + React + TS + + +
+ + + diff --git a/packages/document/mocks/browser.js b/packages/document/mocks/browser.js new file mode 100644 index 00000000..c578a6eb --- /dev/null +++ b/packages/document/mocks/browser.js @@ -0,0 +1,6 @@ +// src/mocks/browser.js +import { setupWorker } from 'msw/browser' +import { handlers } from './handlers' + +// This configures a Service Worker with the given request handlers. +export const worker = setupWorker(...handlers) diff --git a/packages/document/mocks/data/adjustments.js b/packages/document/mocks/data/adjustments.js new file mode 100644 index 00000000..72d4a6f1 --- /dev/null +++ b/packages/document/mocks/data/adjustments.js @@ -0,0 +1,39 @@ +import { http } from 'msw' + +const restPost = http.post( + `https://mock.localhost/api/adjustments`, + async (req, res, ctx) => { + return await new Promise((resolve) => { + setTimeout(() => { + resolve( + res( + ctx.status(200), + ctx.json({ + data: { + id: 'eqJGhgEeBb', + type: 'adjustments', + links: { + self: 'https://mock.localhost/api/adjustments/eqJGhgEeBb' + }, + attributes: { + name: 'Manual adjustment', + currency_code: 'EUR', + amount_cents: -100, + amount_float: -1.0, + formatted_amount: '-€1,00', + created_at: '2023-08-23T15:59:30.059Z', + updated_at: '2023-08-23T15:59:30.059Z', + reference: null, + reference_origin: null, + metadata: {} + } + } + }) + ) + ) + }, 1000) + }) + } +) + +export default [restPost] diff --git a/packages/document/mocks/data/bundles.js b/packages/document/mocks/data/bundles.js new file mode 100644 index 00000000..7053b89e --- /dev/null +++ b/packages/document/mocks/data/bundles.js @@ -0,0 +1,388 @@ +import { http } from 'msw' + +const bundles = http.get( + 'https://mock.localhost/api/bundles?include=sku_list.sku_list_items.sku&filter[q][code_in]=WELCOME_KIT_001', + (req, res, ctx) => { + return res( + ctx.status(200), + ctx.json({ + data: [ + { + id: 'PljQzimxgB', + type: 'bundles', + links: { + self: 'https://mock.localhost/api/bundles/PljQzimxgB' + }, + attributes: { + code: 'SHIRTSETSINGLE', + name: 'Commerce Layer Shirt set single', + currency_code: 'EUR', + description: '', + image_url: '', + do_not_ship: false, + do_not_track: false, + price_amount_cents: 10500, + price_amount_float: 105.0, + formatted_price_amount: '€105,00', + compare_at_amount_cents: 10500, + compare_at_amount_float: 105.0, + formatted_compare_at_amount: '€105,00', + skus_count: 2, + created_at: '2022-03-11T10:20:48.680Z', + updated_at: '2022-03-11T10:20:48.680Z', + reference: '', + reference_origin: '', + metadata: {} + }, + relationships: { + market: { + links: { + self: 'https://mock.localhost/api/bundles/PljQzimxgB/relationships/market', + related: + 'https://mock.localhost/api/bundles/PljQzimxgB/market' + } + }, + sku_list: { + links: { + self: 'https://mock.localhost/api/bundles/PljQzimxgB/relationships/sku_list', + related: + 'https://mock.localhost/api/bundles/PljQzimxgB/sku_list' + }, + data: { type: 'sku_lists', id: 'myPrZIqano' } + }, + skus: { + links: { + self: 'https://mock.localhost/api/bundles/PljQzimxgB/relationships/skus', + related: 'https://mock.localhost/api/bundles/PljQzimxgB/skus' + } + }, + attachments: { + links: { + self: 'https://mock.localhost/api/bundles/PljQzimxgB/relationships/attachments', + related: + 'https://mock.localhost/api/bundles/PljQzimxgB/attachments' + } + }, + events: { + links: { + self: 'https://mock.localhost/api/bundles/PljQzimxgB/relationships/events', + related: + 'https://mock.localhost/api/bundles/PljQzimxgB/events' + } + }, + tags: { + links: { + self: 'https://mock.localhost/api/bundles/PljQzimxgB/relationships/tags', + related: 'https://mock.localhost/api/bundles/PljQzimxgB/tags' + } + } + }, + meta: { mode: 'test', organization_id: 'WXlEOFrjnr' } + } + ], + included: [ + { + id: 'myPrZIqano', + type: 'sku_lists', + links: { + self: 'https://mock.localhost/api/sku_lists/myPrZIqano' + }, + attributes: { + name: 'CL SHIRTS (Single shipment)', + slug: 'cl-shirts-single-shipment', + description: '', + image_url: '', + manual: true, + sku_code_regex: null, + created_at: '2022-03-11T10:17:50.637Z', + updated_at: '2022-03-11T10:18:03.442Z', + reference: null, + reference_origin: null, + metadata: {} + }, + relationships: { + customer: { + links: { + self: 'https://mock.localhost/api/sku_lists/myPrZIqano/relationships/customer', + related: + 'https://mock.localhost/api/sku_lists/myPrZIqano/customer' + } + }, + skus: { + links: { + self: 'https://mock.localhost/api/sku_lists/myPrZIqano/relationships/skus', + related: + 'https://mock.localhost/api/sku_lists/myPrZIqano/skus' + } + }, + sku_list_items: { + links: { + self: 'https://mock.localhost/api/sku_lists/myPrZIqano/relationships/sku_list_items', + related: + 'https://mock.localhost/api/sku_lists/myPrZIqano/sku_list_items' + }, + data: [ + { type: 'sku_list_items', id: 'LWKOPINkWM' }, + { type: 'sku_list_items', id: 'vWbjGINmWn' } + ] + }, + bundles: { + links: { + self: 'https://mock.localhost/api/sku_lists/myPrZIqano/relationships/bundles', + related: + 'https://mock.localhost/api/sku_lists/myPrZIqano/bundles' + } + }, + attachments: { + links: { + self: 'https://mock.localhost/api/sku_lists/myPrZIqano/relationships/attachments', + related: + 'https://mock.localhost/api/sku_lists/myPrZIqano/attachments' + } + } + }, + meta: { mode: 'test', organization_id: 'WXlEOFrjnr' } + }, + { + id: 'LWKOPINkWM', + type: 'sku_list_items', + links: { + self: 'https://mock.localhost/api/sku_list_items/LWKOPINkWM' + }, + attributes: { + position: 1, + sku_code: 'TSHIRTMS000000FFFFFFLXXX', + quantity: 1, + created_at: '2022-03-11T10:17:59.154Z', + updated_at: '2022-03-11T10:17:59.154Z', + reference: null, + reference_origin: null, + metadata: {} + }, + relationships: { + sku_list: { + links: { + self: 'https://mock.localhost/api/sku_list_items/LWKOPINkWM/relationships/sku_list', + related: + 'https://mock.localhost/api/sku_list_items/LWKOPINkWM/sku_list' + } + }, + sku: { + links: { + self: 'https://mock.localhost/api/sku_list_items/LWKOPINkWM/relationships/sku', + related: + 'https://mock.localhost/api/sku_list_items/LWKOPINkWM/sku' + }, + data: { type: 'skus', id: 'EWzPQSpRzn' } + } + }, + meta: { mode: 'test', organization_id: 'WXlEOFrjnr' } + }, + { + id: 'vWbjGINmWn', + type: 'sku_list_items', + links: { + self: 'https://mock.localhost/api/sku_list_items/vWbjGINmWn' + }, + attributes: { + position: 2, + sku_code: 'SWEETHMUB7B7B7000000MXXX', + quantity: 1, + created_at: '2022-03-11T10:18:03.437Z', + updated_at: '2022-03-11T10:18:03.437Z', + reference: null, + reference_origin: null, + metadata: {} + }, + relationships: { + sku_list: { + links: { + self: 'https://mock.localhost/api/sku_list_items/vWbjGINmWn/relationships/sku_list', + related: + 'https://mock.localhost/api/sku_list_items/vWbjGINmWn/sku_list' + } + }, + sku: { + links: { + self: 'https://mock.localhost/api/sku_list_items/vWbjGINmWn/relationships/sku', + related: + 'https://mock.localhost/api/sku_list_items/vWbjGINmWn/sku' + }, + data: { type: 'skus', id: 'MBrxeSaGpZ' } + } + }, + meta: { mode: 'test', organization_id: 'WXlEOFrjnr' } + }, + { + id: 'EWzPQSpRzn', + type: 'skus', + links: { + self: 'https://mock.localhost/api/skus/EWzPQSpRzn' + }, + attributes: { + code: 'TSHIRTMS000000FFFFFFLXXX', + name: 'Black Men T-Shirt with White Logo (L)', + description: + 'With a large front pouch pocket and drawstrings in a matching color, this hoodie is a sure crowd-favorite. It’s soft, stylish, and perfect for the cooler evenings.', + image_url: + 'https://data.commercelayer.app/seed/images/skus/TSHIRTMS000000FFFFFFLXXX_FLAT.png', + pieces_per_pack: null, + weight: null, + unit_of_weight: '', + hs_tariff_number: '', + do_not_ship: false, + do_not_track: false, + inventory: null, + created_at: '2022-03-11T09:42:47.300Z', + updated_at: '2022-03-11T10:17:22.143Z', + reference: 'sku_69', + reference_origin: 'CLI', + metadata: {} + }, + relationships: { + shipping_category: { + links: { + self: 'https://mock.localhost/api/skus/EWzPQSpRzn/relationships/shipping_category', + related: + 'https://mock.localhost/api/skus/EWzPQSpRzn/shipping_category' + } + }, + prices: { + links: { + self: 'https://mock.localhost/api/skus/EWzPQSpRzn/relationships/prices', + related: 'https://mock.localhost/api/skus/EWzPQSpRzn/prices' + } + }, + stock_items: { + links: { + self: 'https://mock.localhost/api/skus/EWzPQSpRzn/relationships/stock_items', + related: + 'https://mock.localhost/api/skus/EWzPQSpRzn/stock_items' + } + }, + delivery_lead_times: { + links: { + self: 'https://mock.localhost/api/skus/EWzPQSpRzn/relationships/delivery_lead_times', + related: + 'https://mock.localhost/api/skus/EWzPQSpRzn/delivery_lead_times' + } + }, + sku_options: { + links: { + self: 'https://mock.localhost/api/skus/EWzPQSpRzn/relationships/sku_options', + related: + 'https://mock.localhost/api/skus/EWzPQSpRzn/sku_options' + } + }, + attachments: { + links: { + self: 'https://mock.localhost/api/skus/EWzPQSpRzn/relationships/attachments', + related: + 'https://mock.localhost/api/skus/EWzPQSpRzn/attachments' + } + }, + events: { + links: { + self: 'https://mock.localhost/api/skus/EWzPQSpRzn/relationships/events', + related: 'https://mock.localhost/api/skus/EWzPQSpRzn/events' + } + }, + tags: { + links: { + self: 'https://mock.localhost/api/skus/EWzPQSpRzn/relationships/tags', + related: 'https://mock.localhost/api/skus/EWzPQSpRzn/tags' + } + } + }, + meta: { mode: 'test', organization_id: 'WXlEOFrjnr' } + }, + { + id: 'MBrxeSaGpZ', + type: 'skus', + links: { + self: 'https://mock.localhost/api/skus/MBrxeSaGpZ' + }, + attributes: { + code: 'SWEETHMUB7B7B7000000MXXX', + name: 'Sport Grey Unisex Hoodie Sweatshirt with Black Logo (M)', + description: + 'With a large front pouch pocket and drawstrings in a matching color, this hoodie is a sure crowd-favorite. It’s soft, stylish, and perfect for the cooler evenings.', + image_url: + 'https://data.commercelayer.app/seed/images/skus/HOODIEMX7F7F7F000000MXXX_FLAT.png', + pieces_per_pack: null, + weight: null, + unit_of_weight: '', + hs_tariff_number: '', + do_not_ship: false, + do_not_track: false, + inventory: null, + created_at: '2022-03-11T09:42:48.985Z', + updated_at: '2022-03-11T10:17:41.219Z', + reference: 'sku_70', + reference_origin: 'CLI', + metadata: {} + }, + relationships: { + shipping_category: { + links: { + self: 'https://mock.localhost/api/skus/MBrxeSaGpZ/relationships/shipping_category', + related: + 'https://mock.localhost/api/skus/MBrxeSaGpZ/shipping_category' + } + }, + prices: { + links: { + self: 'https://mock.localhost/api/skus/MBrxeSaGpZ/relationships/prices', + related: 'https://mock.localhost/api/skus/MBrxeSaGpZ/prices' + } + }, + stock_items: { + links: { + self: 'https://mock.localhost/api/skus/MBrxeSaGpZ/relationships/stock_items', + related: + 'https://mock.localhost/api/skus/MBrxeSaGpZ/stock_items' + } + }, + delivery_lead_times: { + links: { + self: 'https://mock.localhost/api/skus/MBrxeSaGpZ/relationships/delivery_lead_times', + related: + 'https://mock.localhost/api/skus/MBrxeSaGpZ/delivery_lead_times' + } + }, + sku_options: { + links: { + self: 'https://mock.localhost/api/skus/MBrxeSaGpZ/relationships/sku_options', + related: + 'https://mock.localhost/api/skus/MBrxeSaGpZ/sku_options' + } + }, + attachments: { + links: { + self: 'https://mock.localhost/api/skus/MBrxeSaGpZ/relationships/attachments', + related: + 'https://mock.localhost/api/skus/MBrxeSaGpZ/attachments' + } + }, + events: { + links: { + self: 'https://mock.localhost/api/skus/MBrxeSaGpZ/relationships/events', + related: 'https://mock.localhost/api/skus/MBrxeSaGpZ/events' + } + }, + tags: { + links: { + self: 'https://mock.localhost/api/skus/MBrxeSaGpZ/relationships/tags', + related: 'https://mock.localhost/api/skus/MBrxeSaGpZ/tags' + } + } + }, + meta: { mode: 'test', organization_id: 'WXlEOFrjnr' } + } + ] + }) + ) + } +) + +export default [bundles] diff --git a/packages/document/mocks/data/line_items.js b/packages/document/mocks/data/line_items.js new file mode 100644 index 00000000..95139b05 --- /dev/null +++ b/packages/document/mocks/data/line_items.js @@ -0,0 +1,82 @@ +import { http } from 'msw' + +const restPatch = http.patch( + `https://mock.localhost/api/line_items/:id`, + async (req, res, ctx) => { + return await new Promise((resolve) => { + setTimeout(() => { + resolve(res(ctx.status(200), ctx.body(`Update ${req.params.id}`))) + }, 1000) + }) + } +) + +const restDelete = http.delete( + `https://mock.localhost/api/line_items/:id`, + async (req, res, ctx) => { + return await new Promise((resolve) => { + setTimeout(() => { + resolve(res(ctx.status(200), ctx.body(`Removed ${req.params.id}`))) + }, 1000) + }) + } +) + +const restPost = http.post( + `https://mock.localhost/api/line_items`, + async (req, res, ctx) => { + return await new Promise((resolve) => { + setTimeout(() => { + resolve( + res( + ctx.status(200), + ctx.json({ + data: { + id: 'vrEAtOmRaz', + type: 'line_items', + links: { + self: 'https://mock.localhost/api/line_items/vrEAtOmRaz' + }, + attributes: { + sku_code: null, + bundle_code: null, + quantity: 1, + currency_code: 'EUR', + unit_amount_cents: -100, + unit_amount_float: -1.0, + formatted_unit_amount: '-€1,00', + options_amount_cents: 0, + options_amount_float: 0.0, + formatted_options_amount: '€0,00', + discount_cents: 0, + discount_float: 0.0, + formatted_discount: '€0,00', + total_amount_cents: -100, + total_amount_float: -1.0, + formatted_total_amount: '-€1,00', + tax_amount_cents: 0, + tax_amount_float: 0.0, + formatted_tax_amount: '€0,00', + name: 'Manual adjustment', + image_url: null, + discount_breakdown: {}, + tax_rate: 0.0, + tax_breakdown: {}, + item_type: 'adjustments', + frequency: null, + created_at: '2023-08-23T15:59:30.205Z', + updated_at: '2023-08-23T15:59:30.205Z', + reference: null, + reference_origin: null, + metadata: {} + } + } + }) + ) + ) + }, 1000) + }) + } +) + +export default [restPatch, restDelete, restPost] diff --git a/packages/document/mocks/data/markets.js b/packages/document/mocks/data/markets.js new file mode 100644 index 00000000..b5db10ae --- /dev/null +++ b/packages/document/mocks/data/markets.js @@ -0,0 +1,447 @@ +import { http } from 'msw' + +// used in HookedInputResourceGroup +const someMarkets = http.get( + 'https://mock.localhost/api/markets?fields[markets]=id,name&sort=name&page[size]=3', + (req, res, ctx) => { + return res( + ctx.status(200), + ctx.json({ + data: [ + { + id: 'rlEPzheRgO', + type: 'markets', + links: { + self: 'https://mock.localhost/api/markets/rlEPzheRgO' + }, + attributes: { name: 'Adyen' }, + meta: { mode: 'test', organization_id: 'WXlEOFrjnr' } + }, + { + id: 'dlQbPhNNop', + type: 'markets', + links: { + self: 'https://mock.localhost/api/markets/dlQbPhNNop' + }, + attributes: { name: 'Europe' }, + meta: { mode: 'test', organization_id: 'WXlEOFrjnr' } + }, + { + id: 'AlRevhXQga', + type: 'markets', + links: { + self: 'https://mock.localhost/api/markets/AlRevhXQga' + }, + attributes: { name: 'Milan' }, + meta: { mode: 'test', organization_id: 'WXlEOFrjnr' } + } + ], + meta: { record_count: 5, page_count: 2 }, + links: { + first: + 'https://mock.localhost/api/markets?fields%5Bmarkets%5D=id%2Cname&page%5Bnumber%5D=1&page%5Bsize%5D=3&sort=name', + next: 'https://mock.localhost/api/markets?fields%5Bmarkets%5D=id%2Cname&page%5Bnumber%5D=2&page%5Bsize%5D=3&sort=name', + last: 'https://mock.localhost/api/markets?fields%5Bmarkets%5D=id%2Cname&page%5Bnumber%5D=2&page%5Bsize%5D=3&sort=name' + } + }) + ) + } +) + +// used in HookedInputResourceGroup +const allMarkets = http.get( + 'https://mock.localhost/api/markets?sort=name&page[number]=1&page[size]=25', + (req, res, ctx) => { + return res( + ctx.status(200), + ctx.json({ + data: [ + { + id: 'rlEPzheRgO', + type: 'markets', + links: { + self: 'https://mock.localhost/api/markets/rlEPzheRgO' + }, + attributes: { + number: 475, + name: 'Adyen', + facebook_pixel_id: null, + checkout_url: '', + external_prices_url: '', + external_order_validation_url: null, + shared_secret: '5a4c961792866897db26dd3aad9c435e', + private: false, + disabled_at: null, + created_at: '2022-08-23T09:59:25.940Z', + updated_at: '2022-08-23T09:59:25.940Z', + reference: '', + reference_origin: '', + metadata: {} + }, + relationships: { + merchant: { + links: { + self: 'https://mock.localhost/api/markets/rlEPzheRgO/relationships/merchant', + related: + 'https://mock.localhost/api/markets/rlEPzheRgO/merchant' + } + }, + price_list: { + links: { + self: 'https://mock.localhost/api/markets/rlEPzheRgO/relationships/price_list', + related: + 'https://mock.localhost/api/markets/rlEPzheRgO/price_list' + } + }, + inventory_model: { + links: { + self: 'https://mock.localhost/api/markets/rlEPzheRgO/relationships/inventory_model', + related: + 'https://mock.localhost/api/markets/rlEPzheRgO/inventory_model' + } + }, + subscription_model: { + links: { + self: 'https://mock.localhost/api/markets/rlEPzheRgO/relationships/subscription_model', + related: + 'https://mock.localhost/api/markets/rlEPzheRgO/subscription_model' + } + }, + tax_calculator: { + links: { + self: 'https://mock.localhost/api/markets/rlEPzheRgO/relationships/tax_calculator', + related: + 'https://mock.localhost/api/markets/rlEPzheRgO/tax_calculator' + } + }, + customer_group: { + links: { + self: 'https://mock.localhost/api/markets/rlEPzheRgO/relationships/customer_group', + related: + 'https://mock.localhost/api/markets/rlEPzheRgO/customer_group' + } + }, + attachments: { + links: { + self: 'https://mock.localhost/api/markets/rlEPzheRgO/relationships/attachments', + related: + 'https://mock.localhost/api/markets/rlEPzheRgO/attachments' + } + } + }, + meta: { mode: 'test', organization_id: 'WXlEOFrjnr' } + }, + { + id: 'dlQbPhNNop', + type: 'markets', + links: { + self: 'https://mock.localhost/api/markets/dlQbPhNNop' + }, + attributes: { + number: 350, + name: 'Europe', + facebook_pixel_id: null, + checkout_url: '', + external_prices_url: + 'https://pippo.malessani.commercelayer.dev/api/verify', + external_order_validation_url: '', + shared_secret: '4ea4390961025de791d5bb92e92744eb', + private: false, + disabled_at: null, + created_at: '2022-03-11T09:40:49.000Z', + updated_at: '2023-03-13T13:30:32.184Z', + reference: 'market_1', + reference_origin: 'CLI', + metadata: {} + }, + relationships: { + merchant: { + links: { + self: 'https://mock.localhost/api/markets/dlQbPhNNop/relationships/merchant', + related: + 'https://mock.localhost/api/markets/dlQbPhNNop/merchant' + } + }, + price_list: { + links: { + self: 'https://mock.localhost/api/markets/dlQbPhNNop/relationships/price_list', + related: + 'https://mock.localhost/api/markets/dlQbPhNNop/price_list' + } + }, + inventory_model: { + links: { + self: 'https://mock.localhost/api/markets/dlQbPhNNop/relationships/inventory_model', + related: + 'https://mock.localhost/api/markets/dlQbPhNNop/inventory_model' + } + }, + subscription_model: { + links: { + self: 'https://mock.localhost/api/markets/dlQbPhNNop/relationships/subscription_model', + related: + 'https://mock.localhost/api/markets/dlQbPhNNop/subscription_model' + } + }, + tax_calculator: { + links: { + self: 'https://mock.localhost/api/markets/dlQbPhNNop/relationships/tax_calculator', + related: + 'https://mock.localhost/api/markets/dlQbPhNNop/tax_calculator' + } + }, + customer_group: { + links: { + self: 'https://mock.localhost/api/markets/dlQbPhNNop/relationships/customer_group', + related: + 'https://mock.localhost/api/markets/dlQbPhNNop/customer_group' + } + }, + attachments: { + links: { + self: 'https://mock.localhost/api/markets/dlQbPhNNop/relationships/attachments', + related: + 'https://mock.localhost/api/markets/dlQbPhNNop/attachments' + } + } + }, + meta: { mode: 'test', organization_id: 'WXlEOFrjnr' } + }, + { + id: 'AlRevhXQga', + type: 'markets', + links: { + self: 'https://mock.localhost/api/markets/AlRevhXQga' + }, + attributes: { + number: 418, + name: 'Milan', + facebook_pixel_id: null, + checkout_url: '', + external_prices_url: '', + external_order_validation_url: null, + shared_secret: 'fc9954fc7ae851d9588d456656ba102f', + private: false, + disabled_at: null, + created_at: '2022-05-13T12:27:05.075Z', + updated_at: '2022-05-13T12:27:05.075Z', + reference: '', + reference_origin: '', + metadata: {} + }, + relationships: { + merchant: { + links: { + self: 'https://mock.localhost/api/markets/AlRevhXQga/relationships/merchant', + related: + 'https://mock.localhost/api/markets/AlRevhXQga/merchant' + } + }, + price_list: { + links: { + self: 'https://mock.localhost/api/markets/AlRevhXQga/relationships/price_list', + related: + 'https://mock.localhost/api/markets/AlRevhXQga/price_list' + } + }, + inventory_model: { + links: { + self: 'https://mock.localhost/api/markets/AlRevhXQga/relationships/inventory_model', + related: + 'https://mock.localhost/api/markets/AlRevhXQga/inventory_model' + } + }, + subscription_model: { + links: { + self: 'https://mock.localhost/api/markets/AlRevhXQga/relationships/subscription_model', + related: + 'https://mock.localhost/api/markets/AlRevhXQga/subscription_model' + } + }, + tax_calculator: { + links: { + self: 'https://mock.localhost/api/markets/AlRevhXQga/relationships/tax_calculator', + related: + 'https://mock.localhost/api/markets/AlRevhXQga/tax_calculator' + } + }, + customer_group: { + links: { + self: 'https://mock.localhost/api/markets/AlRevhXQga/relationships/customer_group', + related: + 'https://mock.localhost/api/markets/AlRevhXQga/customer_group' + } + }, + attachments: { + links: { + self: 'https://mock.localhost/api/markets/AlRevhXQga/relationships/attachments', + related: + 'https://mock.localhost/api/markets/AlRevhXQga/attachments' + } + } + }, + meta: { mode: 'test', organization_id: 'WXlEOFrjnr' } + }, + { + id: 'AjRevhQOoa', + type: 'markets', + links: { + self: 'https://mock.localhost/api/markets/AjRevhQOoa' + }, + attributes: { + number: 351, + name: 'UK', + facebook_pixel_id: null, + checkout_url: null, + external_prices_url: null, + external_order_validation_url: null, + shared_secret: 'a028eb9f9812ee2949da28cd3f8f5268', + private: false, + disabled_at: null, + created_at: '2022-03-11T09:40:50.558Z', + updated_at: '2022-03-11T09:40:50.558Z', + reference: 'market_3', + reference_origin: 'CLI', + metadata: {} + }, + relationships: { + merchant: { + links: { + self: 'https://mock.localhost/api/markets/AjRevhQOoa/relationships/merchant', + related: + 'https://mock.localhost/api/markets/AjRevhQOoa/merchant' + } + }, + price_list: { + links: { + self: 'https://mock.localhost/api/markets/AjRevhQOoa/relationships/price_list', + related: + 'https://mock.localhost/api/markets/AjRevhQOoa/price_list' + } + }, + inventory_model: { + links: { + self: 'https://mock.localhost/api/markets/AjRevhQOoa/relationships/inventory_model', + related: + 'https://mock.localhost/api/markets/AjRevhQOoa/inventory_model' + } + }, + subscription_model: { + links: { + self: 'https://mock.localhost/api/markets/AjRevhQOoa/relationships/subscription_model', + related: + 'https://mock.localhost/api/markets/AjRevhQOoa/subscription_model' + } + }, + tax_calculator: { + links: { + self: 'https://mock.localhost/api/markets/AjRevhQOoa/relationships/tax_calculator', + related: + 'https://mock.localhost/api/markets/AjRevhQOoa/tax_calculator' + } + }, + customer_group: { + links: { + self: 'https://mock.localhost/api/markets/AjRevhQOoa/relationships/customer_group', + related: + 'https://mock.localhost/api/markets/AjRevhQOoa/customer_group' + } + }, + attachments: { + links: { + self: 'https://mock.localhost/api/markets/AjRevhQOoa/relationships/attachments', + related: + 'https://mock.localhost/api/markets/AjRevhQOoa/attachments' + } + } + }, + meta: { mode: 'test', organization_id: 'WXlEOFrjnr' } + }, + { + id: 'EjDkXhNEoD', + type: 'markets', + links: { + self: 'https://mock.localhost/api/markets/EjDkXhNEoD' + }, + attributes: { + number: 349, + name: 'USA', + facebook_pixel_id: null, + checkout_url: '', + external_prices_url: '', + external_order_validation_url: null, + shared_secret: '60860b96e891725099e0b1a72dceb510', + private: false, + disabled_at: null, + created_at: '2022-02-24T14:08:20.092Z', + updated_at: '2022-03-21T09:37:44.202Z', + reference: 'market_2', + reference_origin: 'CLI', + metadata: {} + }, + relationships: { + merchant: { + links: { + self: 'https://mock.localhost/api/markets/EjDkXhNEoD/relationships/merchant', + related: + 'https://mock.localhost/api/markets/EjDkXhNEoD/merchant' + } + }, + price_list: { + links: { + self: 'https://mock.localhost/api/markets/EjDkXhNEoD/relationships/price_list', + related: + 'https://mock.localhost/api/markets/EjDkXhNEoD/price_list' + } + }, + inventory_model: { + links: { + self: 'https://mock.localhost/api/markets/EjDkXhNEoD/relationships/inventory_model', + related: + 'https://mock.localhost/api/markets/EjDkXhNEoD/inventory_model' + } + }, + subscription_model: { + links: { + self: 'https://mock.localhost/api/markets/EjDkXhNEoD/relationships/subscription_model', + related: + 'https://mock.localhost/api/markets/EjDkXhNEoD/subscription_model' + } + }, + tax_calculator: { + links: { + self: 'https://mock.localhost/api/markets/EjDkXhNEoD/relationships/tax_calculator', + related: + 'https://mock.localhost/api/markets/EjDkXhNEoD/tax_calculator' + } + }, + customer_group: { + links: { + self: 'https://mock.localhost/api/markets/EjDkXhNEoD/relationships/customer_group', + related: + 'https://mock.localhost/api/markets/EjDkXhNEoD/customer_group' + } + }, + attachments: { + links: { + self: 'https://mock.localhost/api/markets/EjDkXhNEoD/relationships/attachments', + related: + 'https://mock.localhost/api/markets/EjDkXhNEoD/attachments' + } + } + }, + meta: { mode: 'test', organization_id: 'WXlEOFrjnr' } + } + ], + meta: { record_count: 5, page_count: 1 }, + links: { + first: + 'https://mock.localhost/api/markets?page%5Bnumber%5D=1&page%5Bsize%5D=25&sort=name', + last: 'https://mock.localhost/api/markets?page%5Bnumber%5D=1&page%5Bsize%5D=25&sort=name' + } + }) + ) + } +) + +export default [allMarkets, someMarkets] diff --git a/packages/document/mocks/data/orders.js b/packages/document/mocks/data/orders.js new file mode 100644 index 00000000..49afe454 --- /dev/null +++ b/packages/document/mocks/data/orders.js @@ -0,0 +1,3713 @@ +import { http } from 'msw' + +const order = { + id: 'NMWYhbGorj', + type: 'orders', + links: { + self: 'https://alessani.commercelayer.co/api/orders/NMWYhbGorj' + }, + attributes: { + number: 2485862, + autorefresh: true, + status: 'approved', + payment_status: 'paid', + fulfillment_status: 'in_progress', + guest: true, + editable: false, + customer_email: 'customer@tk.com', + language_code: 'en', + currency_code: 'EUR', + tax_included: true, + tax_rate: null, + freight_taxable: null, + requires_billing_info: true, + country_code: 'IT', + shipping_country_code_lock: null, + coupon_code: null, + gift_card_code: '9951a05f-741a-4ab1-8405-2a7e57612792', + gift_card_or_coupon_code: '9951a05f-741a-4ab1-8405-2a7e57612792', + subtotal_amount_cents: 24400, + subtotal_amount_float: 244.0, + formatted_subtotal_amount: '€244,00', + shipping_amount_cents: 0, + shipping_amount_float: 0.0, + formatted_shipping_amount: '€0,00', + payment_method_amount_cents: 1000, + payment_method_amount_float: 10.0, + formatted_payment_method_amount: '€10,00', + discount_amount_cents: 0, + discount_amount_float: 0.0, + formatted_discount_amount: '€0,00', + adjustment_amount_cents: 0, + adjustment_amount_float: 0.0, + formatted_adjustment_amount: '€0,00', + gift_card_amount_cents: -10000, + gift_card_amount_float: -100.0, + formatted_gift_card_amount: '-€100,00', + total_tax_amount_cents: 0, + total_tax_amount_float: 0.0, + formatted_total_tax_amount: '€0,00', + subtotal_tax_amount_cents: 0, + subtotal_tax_amount_float: 0.0, + formatted_subtotal_tax_amount: '€0,00', + shipping_tax_amount_cents: 0, + shipping_tax_amount_float: 0.0, + formatted_shipping_tax_amount: '€0,00', + payment_method_tax_amount_cents: 0, + payment_method_tax_amount_float: 0.0, + formatted_payment_method_tax_amount: '€0,00', + adjustment_tax_amount_cents: 0, + adjustment_tax_amount_float: 0.0, + formatted_adjustment_tax_amount: '€0,00', + total_amount_cents: 25400, + total_amount_float: 254.0, + formatted_total_amount: '€254,00', + total_taxable_amount_cents: 25400, + total_taxable_amount_float: 254.0, + formatted_total_taxable_amount: '€254,00', + subtotal_taxable_amount_cents: 24400, + subtotal_taxable_amount_float: 244.0, + formatted_subtotal_taxable_amount: '€244,00', + shipping_taxable_amount_cents: 0, + shipping_taxable_amount_float: 0.0, + formatted_shipping_taxable_amount: '€0,00', + payment_method_taxable_amount_cents: 1000, + payment_method_taxable_amount_float: 10.0, + formatted_payment_method_taxable_amount: '€10,00', + adjustment_taxable_amount_cents: 0, + adjustment_taxable_amount_float: 0.0, + formatted_adjustment_taxable_amount: '€0,00', + total_amount_with_taxes_cents: 15400, + total_amount_with_taxes_float: 154.0, + formatted_total_amount_with_taxes: '€154,00', + fees_amount_cents: 0, + fees_amount_float: 0.0, + formatted_fees_amount: '€0,00', + duty_amount_cents: null, + duty_amount_float: null, + formatted_duty_amount: null, + skus_count: 6, + line_item_options_count: 0, + shipments_count: 2, + tax_calculations_count: 0, + validations_count: 0, + payment_source_details: { + type: 'stripe_payment', + payment_method_id: 'pm_1N8LhuK5j6INEBBIHXkK0FFF', + payment_method_type: 'card', + payment_method_details: { + brand: 'visa', + last4: '4242', + checks: { + cvc_check: 'pass', + address_line1_check: 'pass', + address_postal_code_check: 'pass' + }, + wallet: null, + country: 'US', + funding: 'credit', + exp_year: 2031, + networks: { available: ['visa'], preferred: null }, + exp_month: 2, + fingerprint: 'bVaeOEKRmYhi20Nj', + generated_from: null, + three_d_secure_usage: { supported: true } + } + }, + token: '7fe6285a3dfdabeb8cb9324980743396', + cart_url: null, + return_url: null, + terms_url: null, + privacy_url: null, + checkout_url: null, + placed_at: '2023-05-16T11:06:22.012Z', + approved_at: '2023-05-16T14:18:16.775Z', + cancelled_at: null, + payment_updated_at: '2023-05-16T14:18:35.404Z', + fulfillment_updated_at: '2023-05-16T14:18:35.411Z', + refreshed_at: '2023-05-16T11:06:04.613Z', + archived_at: null, + expires_at: null, + subscription_created_at: null, + created_at: '2023-05-16T11:06:02.074Z', + updated_at: '2023-05-16T14:18:35.572Z', + reference: null, + reference_origin: null, + metadata: {} + }, + relationships: { + market: { + links: { + self: 'https://alessani.commercelayer.co/api/orders/NMWYhbGorj/relationships/market', + related: + 'https://alessani.commercelayer.co/api/orders/NMWYhbGorj/market' + }, + data: { type: 'markets', id: 'dlQbPhNNop' } + }, + customer: { + links: { + self: 'https://alessani.commercelayer.co/api/orders/NMWYhbGorj/relationships/customer', + related: + 'https://alessani.commercelayer.co/api/orders/NMWYhbGorj/customer' + }, + data: { type: 'customers', id: 'JkAdBhNGjQ' } + }, + shipping_address: { + links: { + self: 'https://alessani.commercelayer.co/api/orders/NMWYhbGorj/relationships/shipping_address', + related: + 'https://alessani.commercelayer.co/api/orders/NMWYhbGorj/shipping_address' + }, + data: { type: 'addresses', id: 'dPoNukZmnB' } + }, + billing_address: { + links: { + self: 'https://alessani.commercelayer.co/api/orders/NMWYhbGorj/relationships/billing_address', + related: + 'https://alessani.commercelayer.co/api/orders/NMWYhbGorj/billing_address' + }, + data: { type: 'addresses', id: 'dQxruwZDnB' } + }, + available_payment_methods: { + links: { + self: 'https://alessani.commercelayer.co/api/orders/NMWYhbGorj/relationships/available_payment_methods', + related: + 'https://alessani.commercelayer.co/api/orders/NMWYhbGorj/available_payment_methods' + } + }, + available_customer_payment_sources: { + links: { + self: 'https://alessani.commercelayer.co/api/orders/NMWYhbGorj/relationships/available_customer_payment_sources', + related: + 'https://alessani.commercelayer.co/api/orders/NMWYhbGorj/available_customer_payment_sources' + } + }, + available_free_skus: { + links: { + self: 'https://alessani.commercelayer.co/api/orders/NMWYhbGorj/relationships/available_free_skus', + related: + 'https://alessani.commercelayer.co/api/orders/NMWYhbGorj/available_free_skus' + } + }, + available_free_bundles: { + links: { + self: 'https://alessani.commercelayer.co/api/orders/NMWYhbGorj/relationships/available_free_bundles', + related: + 'https://alessani.commercelayer.co/api/orders/NMWYhbGorj/available_free_bundles' + } + }, + payment_method: { + links: { + self: 'https://alessani.commercelayer.co/api/orders/NMWYhbGorj/relationships/payment_method', + related: + 'https://alessani.commercelayer.co/api/orders/NMWYhbGorj/payment_method' + }, + data: { type: 'payment_methods', id: 'wmBvQsARml' } + }, + payment_source: { + links: { + self: 'https://alessani.commercelayer.co/api/orders/NMWYhbGorj/relationships/payment_source', + related: + 'https://alessani.commercelayer.co/api/orders/NMWYhbGorj/payment_source' + }, + data: { type: 'stripe_payments', id: 'onXELSmbQy' } + }, + line_items: { + links: { + self: 'https://alessani.commercelayer.co/api/orders/NMWYhbGorj/relationships/line_items', + related: + 'https://alessani.commercelayer.co/api/orders/NMWYhbGorj/line_items' + }, + data: [ + { type: 'line_items', id: 'vaoMtAZlXy' }, + { type: 'line_items', id: 'kmnptjPlBv' }, + { type: 'line_items', id: 'vWEZtMGVKy' }, + { type: 'line_items', id: 'NqYatGaKnN' }, + { type: 'line_items', id: 'NoEntBwEdk' }, + { type: 'line_items', id: 'NlQmtMAnGy' } + ] + }, + shipments: { + links: { + self: 'https://alessani.commercelayer.co/api/orders/NMWYhbGorj/relationships/shipments', + related: + 'https://alessani.commercelayer.co/api/orders/NMWYhbGorj/shipments' + }, + data: [ + { type: 'shipments', id: 'YpLwCnNQgY' }, + { type: 'shipments', id: 'PabvCpOxRy' } + ] + }, + transactions: { + links: { + self: 'https://alessani.commercelayer.co/api/orders/NMWYhbGorj/relationships/transactions', + related: + 'https://alessani.commercelayer.co/api/orders/NMWYhbGorj/transactions' + }, + data: [ + { type: 'authorizations', id: 'nKZkPUDBVj' }, + { type: 'captures', id: 'kyAnxUgegE' } + ] + }, + authorizations: { + links: { + self: 'https://alessani.commercelayer.co/api/orders/NMWYhbGorj/relationships/authorizations', + related: + 'https://alessani.commercelayer.co/api/orders/NMWYhbGorj/authorizations' + } + }, + captures: { + links: { + self: 'https://alessani.commercelayer.co/api/orders/NMWYhbGorj/relationships/captures', + related: + 'https://alessani.commercelayer.co/api/orders/NMWYhbGorj/captures' + } + }, + voids: { + links: { + self: 'https://alessani.commercelayer.co/api/orders/NMWYhbGorj/relationships/voids', + related: 'https://alessani.commercelayer.co/api/orders/NMWYhbGorj/voids' + } + }, + refunds: { + links: { + self: 'https://alessani.commercelayer.co/api/orders/NMWYhbGorj/relationships/refunds', + related: + 'https://alessani.commercelayer.co/api/orders/NMWYhbGorj/refunds' + } + }, + returns: { + links: { + self: 'https://alessani.commercelayer.co/api/orders/NMWYhbGorj/relationships/returns', + related: + 'https://alessani.commercelayer.co/api/orders/NMWYhbGorj/returns' + } + }, + order_subscriptions: { + links: { + self: 'https://alessani.commercelayer.co/api/orders/NMWYhbGorj/relationships/order_subscriptions', + related: + 'https://alessani.commercelayer.co/api/orders/NMWYhbGorj/order_subscriptions' + } + }, + order_factories: { + links: { + self: 'https://alessani.commercelayer.co/api/orders/NMWYhbGorj/relationships/order_factories', + related: + 'https://alessani.commercelayer.co/api/orders/NMWYhbGorj/order_factories' + } + }, + order_copies: { + links: { + self: 'https://alessani.commercelayer.co/api/orders/NMWYhbGorj/relationships/order_copies', + related: + 'https://alessani.commercelayer.co/api/orders/NMWYhbGorj/order_copies' + } + }, + recurring_order_copies: { + links: { + self: 'https://alessani.commercelayer.co/api/orders/NMWYhbGorj/relationships/recurring_order_copies', + related: + 'https://alessani.commercelayer.co/api/orders/NMWYhbGorj/recurring_order_copies' + } + }, + attachments: { + links: { + self: 'https://alessani.commercelayer.co/api/orders/NMWYhbGorj/relationships/attachments', + related: + 'https://alessani.commercelayer.co/api/orders/NMWYhbGorj/attachments' + }, + data: [{ type: 'attachments', id: 'EqGrksxWNW' }] + }, + events: { + links: { + self: 'https://alessani.commercelayer.co/api/orders/NMWYhbGorj/relationships/events', + related: + 'https://alessani.commercelayer.co/api/orders/NMWYhbGorj/events' + } + }, + tags: { + links: { + self: 'https://alessani.commercelayer.co/api/orders/NMWYhbGorj/relationships/tags', + related: 'https://alessani.commercelayer.co/api/orders/NMWYhbGorj/tags' + } + }, + versions: { + links: { + self: 'https://alessani.commercelayer.co/api/orders/NMWYhbGorj/relationships/versions', + related: + 'https://alessani.commercelayer.co/api/orders/NMWYhbGorj/versions' + } + } + }, + meta: { mode: 'test', organization_id: 'WXlEOFrjnr' } +} + +const orderDetail = http.get( + 'https://mock.localhost/api/orders/NMWYhbGorj?include=shipments,transactions,payment_method,payment_source,attachments', + async (req, res, ctx) => { + return await new Promise((resolve) => { + setTimeout(() => { + resolve( + res( + ctx.status(200), + ctx.json({ + data: order, + included: [ + { + id: 'dlQbPhNNop', + type: 'markets', + links: { + self: 'https://alessani.commercelayer.co/api/markets/dlQbPhNNop' + }, + attributes: { + number: 350, + name: 'Europe', + facebook_pixel_id: null, + checkout_url: '', + external_prices_url: + 'https://pippo.malessani.commercelayer.dev/api/verify', + external_order_validation_url: '', + private: false, + disabled_at: null, + created_at: '2022-03-11T09:40:49.000Z', + updated_at: '2023-03-13T13:30:32.184Z', + reference: 'market_1', + reference_origin: 'CLI', + metadata: {} + }, + relationships: { + merchant: { + links: { + self: 'https://alessani.commercelayer.co/api/markets/dlQbPhNNop/relationships/merchant', + related: + 'https://alessani.commercelayer.co/api/markets/dlQbPhNNop/merchant' + } + }, + price_list: { + links: { + self: 'https://alessani.commercelayer.co/api/markets/dlQbPhNNop/relationships/price_list', + related: + 'https://alessani.commercelayer.co/api/markets/dlQbPhNNop/price_list' + } + }, + inventory_model: { + links: { + self: 'https://alessani.commercelayer.co/api/markets/dlQbPhNNop/relationships/inventory_model', + related: + 'https://alessani.commercelayer.co/api/markets/dlQbPhNNop/inventory_model' + } + }, + subscription_model: { + links: { + self: 'https://alessani.commercelayer.co/api/markets/dlQbPhNNop/relationships/subscription_model', + related: + 'https://alessani.commercelayer.co/api/markets/dlQbPhNNop/subscription_model' + } + }, + tax_calculator: { + links: { + self: 'https://alessani.commercelayer.co/api/markets/dlQbPhNNop/relationships/tax_calculator', + related: + 'https://alessani.commercelayer.co/api/markets/dlQbPhNNop/tax_calculator' + } + }, + customer_group: { + links: { + self: 'https://alessani.commercelayer.co/api/markets/dlQbPhNNop/relationships/customer_group', + related: + 'https://alessani.commercelayer.co/api/markets/dlQbPhNNop/customer_group' + } + }, + attachments: { + links: { + self: 'https://alessani.commercelayer.co/api/markets/dlQbPhNNop/relationships/attachments', + related: + 'https://alessani.commercelayer.co/api/markets/dlQbPhNNop/attachments' + } + }, + versions: { + links: { + self: 'https://alessani.commercelayer.co/api/markets/dlQbPhNNop/relationships/versions', + related: + 'https://alessani.commercelayer.co/api/markets/dlQbPhNNop/versions' + } + } + }, + meta: { mode: 'test', organization_id: 'WXlEOFrjnr' } + }, + { + id: 'JkAdBhNGjQ', + type: 'customers', + links: { + self: 'https://alessani.commercelayer.co/api/customers/JkAdBhNGjQ' + }, + attributes: { + email: 'customer@tk.com', + status: 'repeat', + has_password: false, + total_orders_count: 2753, + created_at: '2022-03-14T09:13:06.633Z', + updated_at: '2023-07-31T09:13:06.049Z', + reference: null, + reference_origin: null, + metadata: {} + }, + relationships: { + customer_group: { + links: { + self: 'https://alessani.commercelayer.co/api/customers/JkAdBhNGjQ/relationships/customer_group', + related: + 'https://alessani.commercelayer.co/api/customers/JkAdBhNGjQ/customer_group' + } + }, + customer_addresses: { + links: { + self: 'https://alessani.commercelayer.co/api/customers/JkAdBhNGjQ/relationships/customer_addresses', + related: + 'https://alessani.commercelayer.co/api/customers/JkAdBhNGjQ/customer_addresses' + } + }, + customer_payment_sources: { + links: { + self: 'https://alessani.commercelayer.co/api/customers/JkAdBhNGjQ/relationships/customer_payment_sources', + related: + 'https://alessani.commercelayer.co/api/customers/JkAdBhNGjQ/customer_payment_sources' + } + }, + customer_subscriptions: { + links: { + self: 'https://alessani.commercelayer.co/api/customers/JkAdBhNGjQ/relationships/customer_subscriptions', + related: + 'https://alessani.commercelayer.co/api/customers/JkAdBhNGjQ/customer_subscriptions' + } + }, + orders: { + links: { + self: 'https://alessani.commercelayer.co/api/customers/JkAdBhNGjQ/relationships/orders', + related: + 'https://alessani.commercelayer.co/api/customers/JkAdBhNGjQ/orders' + } + }, + order_subscriptions: { + links: { + self: 'https://alessani.commercelayer.co/api/customers/JkAdBhNGjQ/relationships/order_subscriptions', + related: + 'https://alessani.commercelayer.co/api/customers/JkAdBhNGjQ/order_subscriptions' + } + }, + returns: { + links: { + self: 'https://alessani.commercelayer.co/api/customers/JkAdBhNGjQ/relationships/returns', + related: + 'https://alessani.commercelayer.co/api/customers/JkAdBhNGjQ/returns' + } + }, + sku_lists: { + links: { + self: 'https://alessani.commercelayer.co/api/customers/JkAdBhNGjQ/relationships/sku_lists', + related: + 'https://alessani.commercelayer.co/api/customers/JkAdBhNGjQ/sku_lists' + } + }, + attachments: { + links: { + self: 'https://alessani.commercelayer.co/api/customers/JkAdBhNGjQ/relationships/attachments', + related: + 'https://alessani.commercelayer.co/api/customers/JkAdBhNGjQ/attachments' + } + }, + events: { + links: { + self: 'https://alessani.commercelayer.co/api/customers/JkAdBhNGjQ/relationships/events', + related: + 'https://alessani.commercelayer.co/api/customers/JkAdBhNGjQ/events' + } + }, + tags: { + links: { + self: 'https://alessani.commercelayer.co/api/customers/JkAdBhNGjQ/relationships/tags', + related: + 'https://alessani.commercelayer.co/api/customers/JkAdBhNGjQ/tags' + } + } + }, + meta: { mode: 'test', organization_id: 'WXlEOFrjnr' } + }, + { + id: 'dPoNukZmnB', + type: 'addresses', + links: { + self: 'https://alessani.commercelayer.co/api/addresses/dPoNukZmnB' + }, + attributes: { + business: false, + first_name: 'Darth', + last_name: 'Vader', + company: null, + full_name: 'Darth Vader', + line_1: 'Via Morte Nera, 13', + line_2: 'Ragnatela, 99', + city: 'Cogorno', + zip_code: '16030', + state_code: 'GE', + country_code: 'IT', + phone: '+39 055 1234567890', + full_address: + 'Via Morte Nera, 13 Ragnatela, 99, 16030 Cogorno GE (IT) +39 055 1234567890', + name: 'Darth Vader, Via Morte Nera, 13 Ragnatela, 99, 16030 Cogorno GE (IT) +39 055 1234567890', + email: null, + notes: null, + lat: null, + lng: null, + is_localized: false, + is_geocoded: false, + provider_name: null, + map_url: null, + static_map_url: null, + billing_info: 'ABCDEFGHIJKLMNOPQRSTUVWYXZ', + created_at: '2023-05-16T11:06:07.638Z', + updated_at: '2023-05-16T11:06:07.638Z', + reference: null, + reference_origin: null, + metadata: {} + }, + relationships: { + geocoder: { + links: { + self: 'https://alessani.commercelayer.co/api/addresses/dPoNukZmnB/relationships/geocoder', + related: + 'https://alessani.commercelayer.co/api/addresses/dPoNukZmnB/geocoder' + } + }, + events: { + links: { + self: 'https://alessani.commercelayer.co/api/addresses/dPoNukZmnB/relationships/events', + related: + 'https://alessani.commercelayer.co/api/addresses/dPoNukZmnB/events' + } + }, + tags: { + links: { + self: 'https://alessani.commercelayer.co/api/addresses/dPoNukZmnB/relationships/tags', + related: + 'https://alessani.commercelayer.co/api/addresses/dPoNukZmnB/tags' + } + }, + versions: { + links: { + self: 'https://alessani.commercelayer.co/api/addresses/dPoNukZmnB/relationships/versions', + related: + 'https://alessani.commercelayer.co/api/addresses/dPoNukZmnB/versions' + } + } + }, + meta: { mode: 'test', organization_id: 'WXlEOFrjnr' } + }, + { + id: 'dQxruwZDnB', + type: 'addresses', + links: { + self: 'https://alessani.commercelayer.co/api/addresses/dQxruwZDnB' + }, + attributes: { + business: false, + first_name: 'Darth', + last_name: 'Vader', + company: null, + full_name: 'Darth Vader', + line_1: 'Via Morte Nera, 13', + line_2: 'Ragnatela, 99', + city: 'Cogorno', + zip_code: '16030', + state_code: 'GE', + country_code: 'IT', + phone: '+39 055 1234567890', + full_address: + 'Via Morte Nera, 13 Ragnatela, 99, 16030 Cogorno GE (IT) +39 055 1234567890', + name: 'Darth Vader, Via Morte Nera, 13 Ragnatela, 99, 16030 Cogorno GE (IT) +39 055 1234567890', + email: null, + notes: null, + lat: null, + lng: null, + is_localized: false, + is_geocoded: false, + provider_name: null, + map_url: null, + static_map_url: null, + billing_info: 'ABCDEFGHIJKLMNOPQRSTUVWYXZ', + created_at: '2023-05-16T11:06:07.493Z', + updated_at: '2023-05-16T11:06:07.493Z', + reference: null, + reference_origin: null, + metadata: {} + }, + relationships: { + geocoder: { + links: { + self: 'https://alessani.commercelayer.co/api/addresses/dQxruwZDnB/relationships/geocoder', + related: + 'https://alessani.commercelayer.co/api/addresses/dQxruwZDnB/geocoder' + } + }, + events: { + links: { + self: 'https://alessani.commercelayer.co/api/addresses/dQxruwZDnB/relationships/events', + related: + 'https://alessani.commercelayer.co/api/addresses/dQxruwZDnB/events' + } + }, + tags: { + links: { + self: 'https://alessani.commercelayer.co/api/addresses/dQxruwZDnB/relationships/tags', + related: + 'https://alessani.commercelayer.co/api/addresses/dQxruwZDnB/tags' + } + }, + versions: { + links: { + self: 'https://alessani.commercelayer.co/api/addresses/dQxruwZDnB/relationships/versions', + related: + 'https://alessani.commercelayer.co/api/addresses/dQxruwZDnB/versions' + } + } + }, + meta: { mode: 'test', organization_id: 'WXlEOFrjnr' } + }, + { + id: 'wmBvQsARml', + type: 'payment_methods', + links: { + self: 'https://alessani.commercelayer.co/api/payment_methods/wmBvQsARml' + }, + attributes: { + payment_source_type: 'stripe_payments', + name: 'Stripe Payment', + currency_code: 'EUR', + moto: false, + require_capture: true, + auto_capture: false, + disabled_at: null, + price_amount_cents: 1000, + price_amount_float: 10.0, + formatted_price_amount: '€10,00', + auto_capture_max_amount_cents: null, + auto_capture_max_amount_float: null, + formatted_auto_capture_max_amount: null, + created_at: '2022-03-11T14:18:08.420Z', + updated_at: '2022-03-11T14:18:08.420Z', + reference: '', + reference_origin: '', + metadata: {} + }, + relationships: { + market: { + links: { + self: 'https://alessani.commercelayer.co/api/payment_methods/wmBvQsARml/relationships/market', + related: + 'https://alessani.commercelayer.co/api/payment_methods/wmBvQsARml/market' + } + }, + payment_gateway: { + links: { + self: 'https://alessani.commercelayer.co/api/payment_methods/wmBvQsARml/relationships/payment_gateway', + related: + 'https://alessani.commercelayer.co/api/payment_methods/wmBvQsARml/payment_gateway' + } + }, + attachments: { + links: { + self: 'https://alessani.commercelayer.co/api/payment_methods/wmBvQsARml/relationships/attachments', + related: + 'https://alessani.commercelayer.co/api/payment_methods/wmBvQsARml/attachments' + } + }, + versions: { + links: { + self: 'https://alessani.commercelayer.co/api/payment_methods/wmBvQsARml/relationships/versions', + related: + 'https://alessani.commercelayer.co/api/payment_methods/wmBvQsARml/versions' + } + } + }, + meta: { mode: 'test', organization_id: 'WXlEOFrjnr' } + }, + { + id: 'onXELSmbQy', + type: 'stripe_payments', + links: { + self: 'https://alessani.commercelayer.co/api/stripe_payments/onXELSmbQy' + }, + attributes: { + client_secret: + 'pi_3N8LhsK5j6INEBBI0JicoLOo_secret_CKWfEPSnvyBHIQrEfRXkrJYd7', + publishable_key: + 'pk_test_51KH86yK5j6INEBBIdkXoh0UwOoOlAbFZc3b8j0vjRHKQHdaUfEJm24F0A9QkrQXVlgh1nXJCpWR6PG3epaUWzE2z00BdEe9fho', + options: { + id: 'pm_1N8LhuK5j6INEBBI71U1QOlu', + card: { + brand: 'visa', + last4: '4242', + checks: { + cvc_check: null, + address_line1_check: null, + address_postal_code_check: null + }, + wallet: null, + country: 'US', + funding: 'credit', + exp_year: 2031, + networks: { available: ['visa'], preferred: null }, + exp_month: 2, + generated_from: null, + three_d_secure_usage: { supported: true } + }, + type: 'card', + object: 'payment_method', + created: 1684235178, + customer: null, + livemode: false, + billing_details: { + name: 'Darth Vader', + email: 'customer@tk.com', + phone: '+39 055 1234567890', + address: { + city: 'Cogorno', + line1: 'Via Morte Nera, 13', + line2: null, + state: 'GE', + country: 'IT', + postal_code: '16030' + } + }, + setup_future_usage: 'off_session', + intent_amount_cents: 15400 + }, + payment_method: { + id: 'pm_1N8LhuK5j6INEBBIHXkK0FFF', + card: { + brand: 'visa', + last4: '4242', + checks: { + cvc_check: 'pass', + address_line1_check: 'pass', + address_postal_code_check: 'pass' + }, + wallet: null, + country: 'US', + funding: 'credit', + exp_year: 2031, + networks: { available: ['visa'], preferred: null }, + exp_month: 2, + fingerprint: 'bVaeOEKRmYhi20Nj', + generated_from: null, + three_d_secure_usage: { supported: true } + }, + type: 'card', + object: 'payment_method', + created: 1684235179, + customer: null, + livemode: false, + metadata: {}, + billing_details: { + name: 'Darth Vader', + email: 'customer@tk.com', + phone: '+39 055 1234567890', + address: { + city: 'Cogorno', + line1: 'Via Morte Nera, 13', + line2: null, + state: 'GE', + country: 'IT', + postal_code: '16030' + } + } + }, + mismatched_amounts: false, + intent_amount_cents: 15400, + intent_amount_float: 154.0, + formatted_intent_amount: '€154,00', + return_url: null, + payment_instrument: { + issuer_type: 'card', + card_type: 'visa', + card_last_digits: '4242', + card_expiry_month: '2', + card_expiry_year: '2031' + }, + created_at: '2023-05-16T11:06:16.338Z', + updated_at: '2023-05-16T11:06:21.948Z', + reference: null, + reference_origin: null, + metadata: {} + }, + relationships: { + order: { + links: { + self: 'https://alessani.commercelayer.co/api/stripe_payments/onXELSmbQy/relationships/order', + related: + 'https://alessani.commercelayer.co/api/stripe_payments/onXELSmbQy/order' + } + }, + payment_gateway: { + links: { + self: 'https://alessani.commercelayer.co/api/stripe_payments/onXELSmbQy/relationships/payment_gateway', + related: + 'https://alessani.commercelayer.co/api/stripe_payments/onXELSmbQy/payment_gateway' + } + }, + versions: { + links: { + self: 'https://alessani.commercelayer.co/api/stripe_payments/onXELSmbQy/relationships/versions', + related: + 'https://alessani.commercelayer.co/api/stripe_payments/onXELSmbQy/versions' + } + } + }, + meta: { mode: 'test', organization_id: 'WXlEOFrjnr' } + }, + { + id: 'vaoMtAZlXy', + type: 'line_items', + links: { + self: 'https://alessani.commercelayer.co/api/line_items/vaoMtAZlXy' + }, + attributes: { + sku_code: null, + bundle_code: null, + quantity: 1, + currency_code: 'EUR', + unit_amount_cents: -10000, + unit_amount_float: -100.0, + formatted_unit_amount: '-€100,00', + options_amount_cents: 0, + options_amount_float: 0.0, + formatted_options_amount: '€0,00', + discount_cents: 0, + discount_float: 0.0, + formatted_discount: '€0,00', + total_amount_cents: -10000, + total_amount_float: -100.0, + formatted_total_amount: '-€100,00', + tax_amount_cents: 0, + tax_amount_float: 0.0, + formatted_tax_amount: '€0,00', + name: 'Gift card: €100,00', + image_url: null, + discount_breakdown: {}, + tax_rate: 0.0, + tax_breakdown: {}, + item_type: 'gift_cards', + frequency: null, + created_at: '2023-05-16T11:06:14.674Z', + updated_at: '2023-05-16T11:06:14.674Z', + reference: null, + reference_origin: null, + metadata: {} + }, + relationships: { + order: { + links: { + self: 'https://alessani.commercelayer.co/api/line_items/vaoMtAZlXy/relationships/order', + related: + 'https://alessani.commercelayer.co/api/line_items/vaoMtAZlXy/order' + } + }, + item: { + links: { + self: 'https://alessani.commercelayer.co/api/line_items/vaoMtAZlXy/relationships/item', + related: + 'https://alessani.commercelayer.co/api/line_items/vaoMtAZlXy/item' + } + }, + line_item_options: { + links: { + self: 'https://alessani.commercelayer.co/api/line_items/vaoMtAZlXy/relationships/line_item_options', + related: + 'https://alessani.commercelayer.co/api/line_items/vaoMtAZlXy/line_item_options' + } + }, + shipment_line_items: { + links: { + self: 'https://alessani.commercelayer.co/api/line_items/vaoMtAZlXy/relationships/shipment_line_items', + related: + 'https://alessani.commercelayer.co/api/line_items/vaoMtAZlXy/shipment_line_items' + } + }, + stock_reservations: { + links: { + self: 'https://alessani.commercelayer.co/api/line_items/vaoMtAZlXy/relationships/stock_reservations', + related: + 'https://alessani.commercelayer.co/api/line_items/vaoMtAZlXy/stock_reservations' + } + }, + stock_line_items: { + links: { + self: 'https://alessani.commercelayer.co/api/line_items/vaoMtAZlXy/relationships/stock_line_items', + related: + 'https://alessani.commercelayer.co/api/line_items/vaoMtAZlXy/stock_line_items' + } + }, + stock_transfers: { + links: { + self: 'https://alessani.commercelayer.co/api/line_items/vaoMtAZlXy/relationships/stock_transfers', + related: + 'https://alessani.commercelayer.co/api/line_items/vaoMtAZlXy/stock_transfers' + } + }, + events: { + links: { + self: 'https://alessani.commercelayer.co/api/line_items/vaoMtAZlXy/relationships/events', + related: + 'https://alessani.commercelayer.co/api/line_items/vaoMtAZlXy/events' + } + }, + tags: { + links: { + self: 'https://alessani.commercelayer.co/api/line_items/vaoMtAZlXy/relationships/tags', + related: + 'https://alessani.commercelayer.co/api/line_items/vaoMtAZlXy/tags' + } + } + }, + meta: { mode: 'test', organization_id: 'WXlEOFrjnr' } + }, + { + id: 'kmnptjPlBv', + type: 'line_items', + links: { + self: 'https://alessani.commercelayer.co/api/line_items/kmnptjPlBv' + }, + attributes: { + sku_code: null, + bundle_code: null, + quantity: 1, + currency_code: 'EUR', + unit_amount_cents: 1000, + unit_amount_float: 10.0, + formatted_unit_amount: '€10,00', + options_amount_cents: 0, + options_amount_float: 0.0, + formatted_options_amount: '€0,00', + discount_cents: 0, + discount_float: 0.0, + formatted_discount: '€0,00', + total_amount_cents: 1000, + total_amount_float: 10.0, + formatted_total_amount: '€10,00', + tax_amount_cents: 0, + tax_amount_float: 0.0, + formatted_tax_amount: '€0,00', + name: 'Stripe Payment', + image_url: null, + discount_breakdown: {}, + tax_rate: 0.0, + tax_breakdown: {}, + item_type: 'payment_methods', + frequency: null, + created_at: '2023-05-16T11:06:14.629Z', + updated_at: '2023-05-16T11:06:14.629Z', + reference: null, + reference_origin: null, + metadata: {} + }, + relationships: { + order: { + links: { + self: 'https://alessani.commercelayer.co/api/line_items/kmnptjPlBv/relationships/order', + related: + 'https://alessani.commercelayer.co/api/line_items/kmnptjPlBv/order' + } + }, + item: { + links: { + self: 'https://alessani.commercelayer.co/api/line_items/kmnptjPlBv/relationships/item', + related: + 'https://alessani.commercelayer.co/api/line_items/kmnptjPlBv/item' + } + }, + line_item_options: { + links: { + self: 'https://alessani.commercelayer.co/api/line_items/kmnptjPlBv/relationships/line_item_options', + related: + 'https://alessani.commercelayer.co/api/line_items/kmnptjPlBv/line_item_options' + } + }, + shipment_line_items: { + links: { + self: 'https://alessani.commercelayer.co/api/line_items/kmnptjPlBv/relationships/shipment_line_items', + related: + 'https://alessani.commercelayer.co/api/line_items/kmnptjPlBv/shipment_line_items' + } + }, + stock_reservations: { + links: { + self: 'https://alessani.commercelayer.co/api/line_items/kmnptjPlBv/relationships/stock_reservations', + related: + 'https://alessani.commercelayer.co/api/line_items/kmnptjPlBv/stock_reservations' + } + }, + stock_line_items: { + links: { + self: 'https://alessani.commercelayer.co/api/line_items/kmnptjPlBv/relationships/stock_line_items', + related: + 'https://alessani.commercelayer.co/api/line_items/kmnptjPlBv/stock_line_items' + } + }, + stock_transfers: { + links: { + self: 'https://alessani.commercelayer.co/api/line_items/kmnptjPlBv/relationships/stock_transfers', + related: + 'https://alessani.commercelayer.co/api/line_items/kmnptjPlBv/stock_transfers' + } + }, + events: { + links: { + self: 'https://alessani.commercelayer.co/api/line_items/kmnptjPlBv/relationships/events', + related: + 'https://alessani.commercelayer.co/api/line_items/kmnptjPlBv/events' + } + }, + tags: { + links: { + self: 'https://alessani.commercelayer.co/api/line_items/kmnptjPlBv/relationships/tags', + related: + 'https://alessani.commercelayer.co/api/line_items/kmnptjPlBv/tags' + } + } + }, + meta: { mode: 'test', organization_id: 'WXlEOFrjnr' } + }, + { + id: 'vWEZtMGVKy', + type: 'line_items', + links: { + self: 'https://alessani.commercelayer.co/api/line_items/vWEZtMGVKy' + }, + attributes: { + sku_code: null, + bundle_code: null, + quantity: 1, + currency_code: 'EUR', + unit_amount_cents: 0, + unit_amount_float: 0.0, + formatted_unit_amount: '€0,00', + options_amount_cents: 0, + options_amount_float: 0.0, + formatted_options_amount: '€0,00', + discount_cents: 0, + discount_float: 0.0, + formatted_discount: '€0,00', + total_amount_cents: 0, + total_amount_float: 0.0, + formatted_total_amount: '€0,00', + tax_amount_cents: 0, + tax_amount_float: 0.0, + formatted_tax_amount: '€0,00', + name: 'Shipment #2485862/S/001', + image_url: null, + discount_breakdown: {}, + tax_rate: 0.0, + tax_breakdown: {}, + item_type: 'shipments', + frequency: null, + created_at: '2023-05-16T11:06:09.728Z', + updated_at: '2023-05-16T11:06:09.728Z', + reference: null, + reference_origin: null, + metadata: {} + }, + relationships: { + order: { + links: { + self: 'https://alessani.commercelayer.co/api/line_items/vWEZtMGVKy/relationships/order', + related: + 'https://alessani.commercelayer.co/api/line_items/vWEZtMGVKy/order' + } + }, + item: { + links: { + self: 'https://alessani.commercelayer.co/api/line_items/vWEZtMGVKy/relationships/item', + related: + 'https://alessani.commercelayer.co/api/line_items/vWEZtMGVKy/item' + } + }, + line_item_options: { + links: { + self: 'https://alessani.commercelayer.co/api/line_items/vWEZtMGVKy/relationships/line_item_options', + related: + 'https://alessani.commercelayer.co/api/line_items/vWEZtMGVKy/line_item_options' + } + }, + shipment_line_items: { + links: { + self: 'https://alessani.commercelayer.co/api/line_items/vWEZtMGVKy/relationships/shipment_line_items', + related: + 'https://alessani.commercelayer.co/api/line_items/vWEZtMGVKy/shipment_line_items' + } + }, + stock_reservations: { + links: { + self: 'https://alessani.commercelayer.co/api/line_items/vWEZtMGVKy/relationships/stock_reservations', + related: + 'https://alessani.commercelayer.co/api/line_items/vWEZtMGVKy/stock_reservations' + } + }, + stock_line_items: { + links: { + self: 'https://alessani.commercelayer.co/api/line_items/vWEZtMGVKy/relationships/stock_line_items', + related: + 'https://alessani.commercelayer.co/api/line_items/vWEZtMGVKy/stock_line_items' + } + }, + stock_transfers: { + links: { + self: 'https://alessani.commercelayer.co/api/line_items/vWEZtMGVKy/relationships/stock_transfers', + related: + 'https://alessani.commercelayer.co/api/line_items/vWEZtMGVKy/stock_transfers' + } + }, + events: { + links: { + self: 'https://alessani.commercelayer.co/api/line_items/vWEZtMGVKy/relationships/events', + related: + 'https://alessani.commercelayer.co/api/line_items/vWEZtMGVKy/events' + } + }, + tags: { + links: { + self: 'https://alessani.commercelayer.co/api/line_items/vWEZtMGVKy/relationships/tags', + related: + 'https://alessani.commercelayer.co/api/line_items/vWEZtMGVKy/tags' + } + } + }, + meta: { mode: 'test', organization_id: 'WXlEOFrjnr' } + }, + { + id: 'NqYatGaKnN', + type: 'line_items', + links: { + self: 'https://alessani.commercelayer.co/api/line_items/NqYatGaKnN' + }, + attributes: { + sku_code: null, + bundle_code: null, + quantity: 1, + currency_code: 'EUR', + unit_amount_cents: 0, + unit_amount_float: 0.0, + formatted_unit_amount: '€0,00', + options_amount_cents: 0, + options_amount_float: 0.0, + formatted_options_amount: '€0,00', + discount_cents: 0, + discount_float: 0.0, + formatted_discount: '€0,00', + total_amount_cents: 0, + total_amount_float: 0.0, + formatted_total_amount: '€0,00', + tax_amount_cents: 0, + tax_amount_float: 0.0, + formatted_tax_amount: '€0,00', + name: 'Shipment #2485862/S/002', + image_url: null, + discount_breakdown: {}, + tax_rate: 0.0, + tax_breakdown: {}, + item_type: 'shipments', + frequency: null, + created_at: '2023-05-16T11:06:09.602Z', + updated_at: '2023-05-16T11:06:09.602Z', + reference: null, + reference_origin: null, + metadata: {} + }, + relationships: { + order: { + links: { + self: 'https://alessani.commercelayer.co/api/line_items/NqYatGaKnN/relationships/order', + related: + 'https://alessani.commercelayer.co/api/line_items/NqYatGaKnN/order' + } + }, + item: { + links: { + self: 'https://alessani.commercelayer.co/api/line_items/NqYatGaKnN/relationships/item', + related: + 'https://alessani.commercelayer.co/api/line_items/NqYatGaKnN/item' + } + }, + line_item_options: { + links: { + self: 'https://alessani.commercelayer.co/api/line_items/NqYatGaKnN/relationships/line_item_options', + related: + 'https://alessani.commercelayer.co/api/line_items/NqYatGaKnN/line_item_options' + } + }, + shipment_line_items: { + links: { + self: 'https://alessani.commercelayer.co/api/line_items/NqYatGaKnN/relationships/shipment_line_items', + related: + 'https://alessani.commercelayer.co/api/line_items/NqYatGaKnN/shipment_line_items' + } + }, + stock_reservations: { + links: { + self: 'https://alessani.commercelayer.co/api/line_items/NqYatGaKnN/relationships/stock_reservations', + related: + 'https://alessani.commercelayer.co/api/line_items/NqYatGaKnN/stock_reservations' + } + }, + stock_line_items: { + links: { + self: 'https://alessani.commercelayer.co/api/line_items/NqYatGaKnN/relationships/stock_line_items', + related: + 'https://alessani.commercelayer.co/api/line_items/NqYatGaKnN/stock_line_items' + } + }, + stock_transfers: { + links: { + self: 'https://alessani.commercelayer.co/api/line_items/NqYatGaKnN/relationships/stock_transfers', + related: + 'https://alessani.commercelayer.co/api/line_items/NqYatGaKnN/stock_transfers' + } + }, + events: { + links: { + self: 'https://alessani.commercelayer.co/api/line_items/NqYatGaKnN/relationships/events', + related: + 'https://alessani.commercelayer.co/api/line_items/NqYatGaKnN/events' + } + }, + tags: { + links: { + self: 'https://alessani.commercelayer.co/api/line_items/NqYatGaKnN/relationships/tags', + related: + 'https://alessani.commercelayer.co/api/line_items/NqYatGaKnN/tags' + } + } + }, + meta: { mode: 'test', organization_id: 'WXlEOFrjnr' } + }, + { + id: 'NoEntBwEdk', + type: 'line_items', + links: { + self: 'https://alessani.commercelayer.co/api/line_items/NoEntBwEdk' + }, + attributes: { + sku_code: 'TSHIRTMMFFFFFF000000XLXX', + bundle_code: null, + quantity: 5, + currency_code: 'EUR', + unit_amount_cents: 2900, + unit_amount_float: 29.0, + formatted_unit_amount: '€29,00', + options_amount_cents: 0, + options_amount_float: 0.0, + formatted_options_amount: '€0,00', + discount_cents: -5943, + discount_float: -59.43, + formatted_discount: '-€59,43', + total_amount_cents: 14500, + total_amount_float: 145.0, + formatted_total_amount: '€145,00', + tax_amount_cents: 0, + tax_amount_float: 0.0, + formatted_tax_amount: '€0,00', + name: 'White Men T-Shirt with Black Logo (XL)', + image_url: + 'https://data.commercelayer.app/seed/images/skus/TSHIRTMSFFFFFF000000XLXX_FLAT.png', + discount_breakdown: { + vaoMtAZlXy: { cents: -5943, weight: 0.5942622950819673 } + }, + tax_rate: 0.0, + tax_breakdown: {}, + item_type: 'skus', + frequency: null, + created_at: '2023-05-16T11:06:02.458Z', + updated_at: '2023-05-16T11:06:02.458Z', + reference: null, + reference_origin: null, + metadata: {} + }, + relationships: { + order: { + links: { + self: 'https://alessani.commercelayer.co/api/line_items/NoEntBwEdk/relationships/order', + related: + 'https://alessani.commercelayer.co/api/line_items/NoEntBwEdk/order' + } + }, + item: { + links: { + self: 'https://alessani.commercelayer.co/api/line_items/NoEntBwEdk/relationships/item', + related: + 'https://alessani.commercelayer.co/api/line_items/NoEntBwEdk/item' + } + }, + line_item_options: { + links: { + self: 'https://alessani.commercelayer.co/api/line_items/NoEntBwEdk/relationships/line_item_options', + related: + 'https://alessani.commercelayer.co/api/line_items/NoEntBwEdk/line_item_options' + } + }, + shipment_line_items: { + links: { + self: 'https://alessani.commercelayer.co/api/line_items/NoEntBwEdk/relationships/shipment_line_items', + related: + 'https://alessani.commercelayer.co/api/line_items/NoEntBwEdk/shipment_line_items' + } + }, + stock_reservations: { + links: { + self: 'https://alessani.commercelayer.co/api/line_items/NoEntBwEdk/relationships/stock_reservations', + related: + 'https://alessani.commercelayer.co/api/line_items/NoEntBwEdk/stock_reservations' + } + }, + stock_line_items: { + links: { + self: 'https://alessani.commercelayer.co/api/line_items/NoEntBwEdk/relationships/stock_line_items', + related: + 'https://alessani.commercelayer.co/api/line_items/NoEntBwEdk/stock_line_items' + } + }, + stock_transfers: { + links: { + self: 'https://alessani.commercelayer.co/api/line_items/NoEntBwEdk/relationships/stock_transfers', + related: + 'https://alessani.commercelayer.co/api/line_items/NoEntBwEdk/stock_transfers' + } + }, + events: { + links: { + self: 'https://alessani.commercelayer.co/api/line_items/NoEntBwEdk/relationships/events', + related: + 'https://alessani.commercelayer.co/api/line_items/NoEntBwEdk/events' + } + }, + tags: { + links: { + self: 'https://alessani.commercelayer.co/api/line_items/NoEntBwEdk/relationships/tags', + related: + 'https://alessani.commercelayer.co/api/line_items/NoEntBwEdk/tags' + } + } + }, + meta: { mode: 'test', organization_id: 'WXlEOFrjnr' } + }, + { + id: 'NlQmtMAnGy', + type: 'line_items', + links: { + self: 'https://alessani.commercelayer.co/api/line_items/NlQmtMAnGy' + }, + attributes: { + sku_code: 'CANVASAU000000FFFFFF1824', + bundle_code: null, + quantity: 1, + currency_code: 'EUR', + unit_amount_cents: 9900, + unit_amount_float: 99.0, + formatted_unit_amount: '€99,00', + options_amount_cents: 0, + options_amount_float: 0.0, + formatted_options_amount: '€0,00', + discount_cents: -4057, + discount_float: -40.57, + formatted_discount: '-€40,57', + total_amount_cents: 9900, + total_amount_float: 99.0, + formatted_total_amount: '€99,00', + tax_amount_cents: 0, + tax_amount_float: 0.0, + formatted_tax_amount: '€0,00', + name: 'Black Canvas with White Logo (18x24)', + image_url: + 'https://img.commercelayer.io/skus/CANVASAU000000FFFFFF.png?fm=jpg&q=90', + discount_breakdown: { + vaoMtAZlXy: { cents: -4057, weight: 0.4057377049180328 } + }, + tax_rate: 0.0, + tax_breakdown: {}, + item_type: 'skus', + frequency: null, + created_at: '2023-05-16T11:06:02.444Z', + updated_at: '2023-05-16T11:06:02.444Z', + reference: null, + reference_origin: null, + metadata: {} + }, + relationships: { + order: { + links: { + self: 'https://alessani.commercelayer.co/api/line_items/NlQmtMAnGy/relationships/order', + related: + 'https://alessani.commercelayer.co/api/line_items/NlQmtMAnGy/order' + } + }, + item: { + links: { + self: 'https://alessani.commercelayer.co/api/line_items/NlQmtMAnGy/relationships/item', + related: + 'https://alessani.commercelayer.co/api/line_items/NlQmtMAnGy/item' + } + }, + line_item_options: { + links: { + self: 'https://alessani.commercelayer.co/api/line_items/NlQmtMAnGy/relationships/line_item_options', + related: + 'https://alessani.commercelayer.co/api/line_items/NlQmtMAnGy/line_item_options' + } + }, + shipment_line_items: { + links: { + self: 'https://alessani.commercelayer.co/api/line_items/NlQmtMAnGy/relationships/shipment_line_items', + related: + 'https://alessani.commercelayer.co/api/line_items/NlQmtMAnGy/shipment_line_items' + } + }, + stock_reservations: { + links: { + self: 'https://alessani.commercelayer.co/api/line_items/NlQmtMAnGy/relationships/stock_reservations', + related: + 'https://alessani.commercelayer.co/api/line_items/NlQmtMAnGy/stock_reservations' + } + }, + stock_line_items: { + links: { + self: 'https://alessani.commercelayer.co/api/line_items/NlQmtMAnGy/relationships/stock_line_items', + related: + 'https://alessani.commercelayer.co/api/line_items/NlQmtMAnGy/stock_line_items' + } + }, + stock_transfers: { + links: { + self: 'https://alessani.commercelayer.co/api/line_items/NlQmtMAnGy/relationships/stock_transfers', + related: + 'https://alessani.commercelayer.co/api/line_items/NlQmtMAnGy/stock_transfers' + } + }, + events: { + links: { + self: 'https://alessani.commercelayer.co/api/line_items/NlQmtMAnGy/relationships/events', + related: + 'https://alessani.commercelayer.co/api/line_items/NlQmtMAnGy/events' + } + }, + tags: { + links: { + self: 'https://alessani.commercelayer.co/api/line_items/NlQmtMAnGy/relationships/tags', + related: + 'https://alessani.commercelayer.co/api/line_items/NlQmtMAnGy/tags' + } + } + }, + meta: { mode: 'test', organization_id: 'WXlEOFrjnr' } + }, + { + id: 'YpLwCnNQgY', + type: 'shipments', + links: { + self: 'https://alessani.commercelayer.co/api/shipments/YpLwCnNQgY' + }, + attributes: { + number: '2485862/S/001', + status: 'on_hold', + currency_code: 'EUR', + cost_amount_cents: 0, + cost_amount_float: 0.0, + formatted_cost_amount: '$0.00', + skus_count: 5, + selected_rate_id: null, + rates: [], + purchase_error_code: null, + purchase_error_message: null, + get_rates_errors: [], + get_rates_started_at: null, + get_rates_completed_at: null, + purchase_started_at: null, + purchase_completed_at: null, + purchase_failed_at: null, + on_hold_at: '2023-07-21T14:12:13.287Z', + picking_at: '2023-07-21T14:12:08.574Z', + packing_at: '2023-07-21T14:10:54.107Z', + ready_to_ship_at: null, + shipped_at: null, + created_at: '2023-05-16T11:06:07.685Z', + updated_at: '2023-07-21T14:12:13.286Z', + reference: null, + reference_origin: null, + metadata: {} + }, + relationships: { + order: { + links: { + self: 'https://alessani.commercelayer.co/api/shipments/YpLwCnNQgY/relationships/order', + related: + 'https://alessani.commercelayer.co/api/shipments/YpLwCnNQgY/order' + } + }, + shipping_category: { + links: { + self: 'https://alessani.commercelayer.co/api/shipments/YpLwCnNQgY/relationships/shipping_category', + related: + 'https://alessani.commercelayer.co/api/shipments/YpLwCnNQgY/shipping_category' + } + }, + stock_location: { + links: { + self: 'https://alessani.commercelayer.co/api/shipments/YpLwCnNQgY/relationships/stock_location', + related: + 'https://alessani.commercelayer.co/api/shipments/YpLwCnNQgY/stock_location' + } + }, + origin_address: { + links: { + self: 'https://alessani.commercelayer.co/api/shipments/YpLwCnNQgY/relationships/origin_address', + related: + 'https://alessani.commercelayer.co/api/shipments/YpLwCnNQgY/origin_address' + } + }, + shipping_address: { + links: { + self: 'https://alessani.commercelayer.co/api/shipments/YpLwCnNQgY/relationships/shipping_address', + related: + 'https://alessani.commercelayer.co/api/shipments/YpLwCnNQgY/shipping_address' + } + }, + shipping_method: { + links: { + self: 'https://alessani.commercelayer.co/api/shipments/YpLwCnNQgY/relationships/shipping_method', + related: + 'https://alessani.commercelayer.co/api/shipments/YpLwCnNQgY/shipping_method' + } + }, + delivery_lead_time: { + links: { + self: 'https://alessani.commercelayer.co/api/shipments/YpLwCnNQgY/relationships/delivery_lead_time', + related: + 'https://alessani.commercelayer.co/api/shipments/YpLwCnNQgY/delivery_lead_time' + } + }, + shipment_line_items: { + links: { + self: 'https://alessani.commercelayer.co/api/shipments/YpLwCnNQgY/relationships/shipment_line_items', + related: + 'https://alessani.commercelayer.co/api/shipments/YpLwCnNQgY/shipment_line_items' + } + }, + stock_line_items: { + links: { + self: 'https://alessani.commercelayer.co/api/shipments/YpLwCnNQgY/relationships/stock_line_items', + related: + 'https://alessani.commercelayer.co/api/shipments/YpLwCnNQgY/stock_line_items' + } + }, + stock_transfers: { + links: { + self: 'https://alessani.commercelayer.co/api/shipments/YpLwCnNQgY/relationships/stock_transfers', + related: + 'https://alessani.commercelayer.co/api/shipments/YpLwCnNQgY/stock_transfers' + } + }, + available_shipping_methods: { + links: { + self: 'https://alessani.commercelayer.co/api/shipments/YpLwCnNQgY/relationships/available_shipping_methods', + related: + 'https://alessani.commercelayer.co/api/shipments/YpLwCnNQgY/available_shipping_methods' + } + }, + carrier_accounts: { + links: { + self: 'https://alessani.commercelayer.co/api/shipments/YpLwCnNQgY/relationships/carrier_accounts', + related: + 'https://alessani.commercelayer.co/api/shipments/YpLwCnNQgY/carrier_accounts' + } + }, + parcels: { + links: { + self: 'https://alessani.commercelayer.co/api/shipments/YpLwCnNQgY/relationships/parcels', + related: + 'https://alessani.commercelayer.co/api/shipments/YpLwCnNQgY/parcels' + } + }, + attachments: { + links: { + self: 'https://alessani.commercelayer.co/api/shipments/YpLwCnNQgY/relationships/attachments', + related: + 'https://alessani.commercelayer.co/api/shipments/YpLwCnNQgY/attachments' + } + }, + events: { + links: { + self: 'https://alessani.commercelayer.co/api/shipments/YpLwCnNQgY/relationships/events', + related: + 'https://alessani.commercelayer.co/api/shipments/YpLwCnNQgY/events' + } + }, + versions: { + links: { + self: 'https://alessani.commercelayer.co/api/shipments/YpLwCnNQgY/relationships/versions', + related: + 'https://alessani.commercelayer.co/api/shipments/YpLwCnNQgY/versions' + } + } + }, + meta: { mode: 'test', organization_id: 'WXlEOFrjnr' } + }, + { + id: 'PabvCpOxRy', + type: 'shipments', + links: { + self: 'https://alessani.commercelayer.co/api/shipments/PabvCpOxRy' + }, + attributes: { + number: '2485862/S/002', + status: 'shipped', + currency_code: 'EUR', + cost_amount_cents: 0, + cost_amount_float: 0.0, + formatted_cost_amount: '$0.00', + skus_count: 1, + selected_rate_id: null, + rates: [], + purchase_error_code: null, + purchase_error_message: null, + get_rates_errors: [], + get_rates_started_at: null, + get_rates_completed_at: null, + purchase_started_at: null, + purchase_completed_at: null, + purchase_failed_at: null, + on_hold_at: null, + picking_at: '2023-05-16T14:18:35.559Z', + packing_at: '2023-05-16T14:20:24.459Z', + ready_to_ship_at: '2023-05-16T14:21:43.665Z', + shipped_at: '2023-05-16T14:22:42.632Z', + created_at: '2023-05-16T11:06:07.711Z', + updated_at: '2023-05-16T14:22:42.633Z', + reference: null, + reference_origin: null, + metadata: {} + }, + relationships: { + order: { + links: { + self: 'https://alessani.commercelayer.co/api/shipments/PabvCpOxRy/relationships/order', + related: + 'https://alessani.commercelayer.co/api/shipments/PabvCpOxRy/order' + } + }, + shipping_category: { + links: { + self: 'https://alessani.commercelayer.co/api/shipments/PabvCpOxRy/relationships/shipping_category', + related: + 'https://alessani.commercelayer.co/api/shipments/PabvCpOxRy/shipping_category' + } + }, + stock_location: { + links: { + self: 'https://alessani.commercelayer.co/api/shipments/PabvCpOxRy/relationships/stock_location', + related: + 'https://alessani.commercelayer.co/api/shipments/PabvCpOxRy/stock_location' + } + }, + origin_address: { + links: { + self: 'https://alessani.commercelayer.co/api/shipments/PabvCpOxRy/relationships/origin_address', + related: + 'https://alessani.commercelayer.co/api/shipments/PabvCpOxRy/origin_address' + } + }, + shipping_address: { + links: { + self: 'https://alessani.commercelayer.co/api/shipments/PabvCpOxRy/relationships/shipping_address', + related: + 'https://alessani.commercelayer.co/api/shipments/PabvCpOxRy/shipping_address' + } + }, + shipping_method: { + links: { + self: 'https://alessani.commercelayer.co/api/shipments/PabvCpOxRy/relationships/shipping_method', + related: + 'https://alessani.commercelayer.co/api/shipments/PabvCpOxRy/shipping_method' + } + }, + delivery_lead_time: { + links: { + self: 'https://alessani.commercelayer.co/api/shipments/PabvCpOxRy/relationships/delivery_lead_time', + related: + 'https://alessani.commercelayer.co/api/shipments/PabvCpOxRy/delivery_lead_time' + } + }, + shipment_line_items: { + links: { + self: 'https://alessani.commercelayer.co/api/shipments/PabvCpOxRy/relationships/shipment_line_items', + related: + 'https://alessani.commercelayer.co/api/shipments/PabvCpOxRy/shipment_line_items' + } + }, + stock_line_items: { + links: { + self: 'https://alessani.commercelayer.co/api/shipments/PabvCpOxRy/relationships/stock_line_items', + related: + 'https://alessani.commercelayer.co/api/shipments/PabvCpOxRy/stock_line_items' + } + }, + stock_transfers: { + links: { + self: 'https://alessani.commercelayer.co/api/shipments/PabvCpOxRy/relationships/stock_transfers', + related: + 'https://alessani.commercelayer.co/api/shipments/PabvCpOxRy/stock_transfers' + } + }, + available_shipping_methods: { + links: { + self: 'https://alessani.commercelayer.co/api/shipments/PabvCpOxRy/relationships/available_shipping_methods', + related: + 'https://alessani.commercelayer.co/api/shipments/PabvCpOxRy/available_shipping_methods' + } + }, + carrier_accounts: { + links: { + self: 'https://alessani.commercelayer.co/api/shipments/PabvCpOxRy/relationships/carrier_accounts', + related: + 'https://alessani.commercelayer.co/api/shipments/PabvCpOxRy/carrier_accounts' + } + }, + parcels: { + links: { + self: 'https://alessani.commercelayer.co/api/shipments/PabvCpOxRy/relationships/parcels', + related: + 'https://alessani.commercelayer.co/api/shipments/PabvCpOxRy/parcels' + } + }, + attachments: { + links: { + self: 'https://alessani.commercelayer.co/api/shipments/PabvCpOxRy/relationships/attachments', + related: + 'https://alessani.commercelayer.co/api/shipments/PabvCpOxRy/attachments' + } + }, + events: { + links: { + self: 'https://alessani.commercelayer.co/api/shipments/PabvCpOxRy/relationships/events', + related: + 'https://alessani.commercelayer.co/api/shipments/PabvCpOxRy/events' + } + }, + versions: { + links: { + self: 'https://alessani.commercelayer.co/api/shipments/PabvCpOxRy/relationships/versions', + related: + 'https://alessani.commercelayer.co/api/shipments/PabvCpOxRy/versions' + } + } + }, + meta: { mode: 'test', organization_id: 'WXlEOFrjnr' } + }, + { + id: 'nKZkPUDBVj', + type: 'authorizations', + links: { + self: 'https://alessani.commercelayer.co/api/authorizations/nKZkPUDBVj' + }, + attributes: { + number: '2485862/T/001', + currency_code: 'EUR', + amount_cents: 15400, + amount_float: 154.0, + formatted_amount: '€154,00', + succeeded: true, + message: 'Success!', + error_code: null, + error_detail: null, + token: 'pi_3N8LhsK5j6INEBBI0JicoLOo', + gateway_transaction_id: 'pi_3N8LhsK5j6INEBBI0JicoLOo', + created_at: '2023-05-16T11:06:21.964Z', + updated_at: '2023-05-16T11:06:21.964Z', + reference: null, + reference_origin: null, + metadata: {}, + cvv_code: null, + cvv_message: null, + avs_code: null, + avs_message: null, + fraud_review: null, + capture_amount_cents: 0, + capture_amount_float: 0.0, + formatted_capture_amount: '€0,00', + capture_balance_cents: 0, + capture_balance_float: 0.0, + formatted_capture_balance: '€0,00', + void_balance_cents: 15400, + void_balance_float: 154.0, + formatted_void_balance: '€154,00' + }, + relationships: { + order: { + links: { + self: 'https://alessani.commercelayer.co/api/authorizations/nKZkPUDBVj/relationships/order', + related: + 'https://alessani.commercelayer.co/api/authorizations/nKZkPUDBVj/order' + } + }, + attachments: { + links: { + self: 'https://alessani.commercelayer.co/api/authorizations/nKZkPUDBVj/relationships/attachments', + related: + 'https://alessani.commercelayer.co/api/authorizations/nKZkPUDBVj/attachments' + } + }, + versions: { + links: { + self: 'https://alessani.commercelayer.co/api/authorizations/nKZkPUDBVj/relationships/versions', + related: + 'https://alessani.commercelayer.co/api/authorizations/nKZkPUDBVj/versions' + } + }, + captures: { + links: { + self: 'https://alessani.commercelayer.co/api/authorizations/nKZkPUDBVj/relationships/captures', + related: + 'https://alessani.commercelayer.co/api/authorizations/nKZkPUDBVj/captures' + } + }, + voids: { + links: { + self: 'https://alessani.commercelayer.co/api/authorizations/nKZkPUDBVj/relationships/voids', + related: + 'https://alessani.commercelayer.co/api/authorizations/nKZkPUDBVj/voids' + } + }, + events: { + links: { + self: 'https://alessani.commercelayer.co/api/authorizations/nKZkPUDBVj/relationships/events', + related: + 'https://alessani.commercelayer.co/api/authorizations/nKZkPUDBVj/events' + } + } + }, + meta: { mode: 'test', organization_id: 'WXlEOFrjnr' } + }, + { + id: 'kyAnxUgegE', + type: 'captures', + links: { + self: 'https://alessani.commercelayer.co/api/captures/kyAnxUgegE' + }, + attributes: { + number: '2485862/T/002', + currency_code: 'EUR', + amount_cents: 15400, + amount_float: 154.0, + formatted_amount: '€154,00', + succeeded: true, + message: 'Success!', + error_code: null, + error_detail: null, + token: 'pi_3N8LhsK5j6INEBBI0JicoLOo', + gateway_transaction_id: 'pi_3N8LhsK5j6INEBBI0JicoLOo', + created_at: '2023-05-16T14:18:35.368Z', + updated_at: '2023-05-16T14:18:35.368Z', + reference: null, + reference_origin: null, + metadata: {}, + refund_amount_cents: 15400, + refund_amount_float: 154.0, + formatted_refund_amount: '€154,00', + refund_balance_cents: 15400, + refund_balance_float: 154.0, + formatted_refund_balance: '€154,00' + }, + relationships: { + order: { + links: { + self: 'https://alessani.commercelayer.co/api/captures/kyAnxUgegE/relationships/order', + related: + 'https://alessani.commercelayer.co/api/captures/kyAnxUgegE/order' + } + }, + attachments: { + links: { + self: 'https://alessani.commercelayer.co/api/captures/kyAnxUgegE/relationships/attachments', + related: + 'https://alessani.commercelayer.co/api/captures/kyAnxUgegE/attachments' + } + }, + versions: { + links: { + self: 'https://alessani.commercelayer.co/api/captures/kyAnxUgegE/relationships/versions', + related: + 'https://alessani.commercelayer.co/api/captures/kyAnxUgegE/versions' + } + }, + reference_authorization: { + links: { + self: 'https://alessani.commercelayer.co/api/captures/kyAnxUgegE/relationships/reference_authorization', + related: + 'https://alessani.commercelayer.co/api/captures/kyAnxUgegE/reference_authorization' + } + }, + refunds: { + links: { + self: 'https://alessani.commercelayer.co/api/captures/kyAnxUgegE/relationships/refunds', + related: + 'https://alessani.commercelayer.co/api/captures/kyAnxUgegE/refunds' + } + }, + events: { + links: { + self: 'https://alessani.commercelayer.co/api/captures/kyAnxUgegE/relationships/events', + related: + 'https://alessani.commercelayer.co/api/captures/kyAnxUgegE/events' + } + } + }, + meta: { mode: 'test', organization_id: 'WXlEOFrjnr' } + }, + { + id: 'EqGrksxWNW', + type: 'attachments', + links: { + self: 'https://alessani.commercelayer.co/api/attachments/EqGrksxWNW' + }, + attributes: { + name: 'M. Montalbano', + description: 'Ehi there!', + url: null, + created_at: '2023-07-20T13:58:52.184Z', + updated_at: '2023-07-20T13:58:52.184Z', + reference: null, + reference_origin: 'app-orders--note', + metadata: {} + }, + relationships: { + attachable: { + links: { + self: 'https://alessani.commercelayer.co/api/attachments/EqGrksxWNW/relationships/attachable', + related: + 'https://alessani.commercelayer.co/api/attachments/EqGrksxWNW/attachable' + } + } + }, + meta: { mode: 'test', organization_id: 'WXlEOFrjnr' } + } + ] + }) + ) + ) + }, 2000) + }) + } +) + +function getRandomFormattedPrice() { + return `€${Math.floor(Math.random() * 1000)}.00` +} + +function getRandomOrderStatus() { + const statues = [ + { + status: 'placed', + payment_status: 'authorized', + fulfillment_status: 'unfulfilled' + }, + { + status: 'approved', + payment_status: 'paid', + fulfillment_status: 'in_progress' + }, + { + status: 'approved', + payment_status: 'paid', + fulfillment_status: 'fulfilled' + } + ] + return statues[Math.floor(Math.random() * statues.length)] +} + +const orderList = http.get( + 'https://mock.localhost/api/orders', + async (req, res, ctx) => { + const currentPage = parseInt( + req.url.searchParams.get('page[number]') ?? '1' + ) + const itemPerPage = parseInt(req.url.searchParams.get('page[size]') ?? '5') + const pageCount = itemPerPage <= 5 ? 1 : 3 + + return res( + ctx.delay(2000), + ctx.status(200), + ctx.json({ + data: Array(itemPerPage) + .fill(order) + .map((order, idx) => ({ + ...order, + id: `mocked-${currentPage}-${idx}`, + attributes: { + ...order.attributes, + number: parseInt(`26372${currentPage}${idx}`, 10), + formatted_total_amount: getRandomFormattedPrice(), + ...getRandomOrderStatus() + } + })), + meta: { + record_count: itemPerPage * pageCount, + page_count: pageCount + }, + included: [ + { + id: 'dlQbPhNNop', + type: 'markets', + links: { + self: 'https://alessani.commercelayer.co/api/markets/dlQbPhNNop' + }, + attributes: { + number: 350, + name: 'Europe', + facebook_pixel_id: null, + checkout_url: '', + external_prices_url: + 'https://pippo.malessani.commercelayer.dev/api/verify', + external_order_validation_url: '', + private: false, + disabled_at: null, + created_at: '2022-03-11T09:40:49.000Z', + updated_at: '2023-03-13T13:30:32.184Z', + reference: 'market_1', + reference_origin: 'CLI', + metadata: {} + }, + relationships: { + merchant: { + links: { + self: 'https://alessani.commercelayer.co/api/markets/dlQbPhNNop/relationships/merchant', + related: + 'https://alessani.commercelayer.co/api/markets/dlQbPhNNop/merchant' + } + }, + price_list: { + links: { + self: 'https://alessani.commercelayer.co/api/markets/dlQbPhNNop/relationships/price_list', + related: + 'https://alessani.commercelayer.co/api/markets/dlQbPhNNop/price_list' + } + }, + inventory_model: { + links: { + self: 'https://alessani.commercelayer.co/api/markets/dlQbPhNNop/relationships/inventory_model', + related: + 'https://alessani.commercelayer.co/api/markets/dlQbPhNNop/inventory_model' + } + }, + subscription_model: { + links: { + self: 'https://alessani.commercelayer.co/api/markets/dlQbPhNNop/relationships/subscription_model', + related: + 'https://alessani.commercelayer.co/api/markets/dlQbPhNNop/subscription_model' + } + }, + tax_calculator: { + links: { + self: 'https://alessani.commercelayer.co/api/markets/dlQbPhNNop/relationships/tax_calculator', + related: + 'https://alessani.commercelayer.co/api/markets/dlQbPhNNop/tax_calculator' + } + }, + customer_group: { + links: { + self: 'https://alessani.commercelayer.co/api/markets/dlQbPhNNop/relationships/customer_group', + related: + 'https://alessani.commercelayer.co/api/markets/dlQbPhNNop/customer_group' + } + }, + attachments: { + links: { + self: 'https://alessani.commercelayer.co/api/markets/dlQbPhNNop/relationships/attachments', + related: + 'https://alessani.commercelayer.co/api/markets/dlQbPhNNop/attachments' + } + }, + versions: { + links: { + self: 'https://alessani.commercelayer.co/api/markets/dlQbPhNNop/relationships/versions', + related: + 'https://alessani.commercelayer.co/api/markets/dlQbPhNNop/versions' + } + } + }, + meta: { mode: 'test', organization_id: 'WXlEOFrjnr' } + }, + { + id: 'JkAdBhNGjQ', + type: 'customers', + links: { + self: 'https://alessani.commercelayer.co/api/customers/JkAdBhNGjQ' + }, + attributes: { + email: 'customer@tk.com', + status: 'repeat', + has_password: false, + total_orders_count: 2753, + created_at: '2022-03-14T09:13:06.633Z', + updated_at: '2023-07-31T09:13:06.049Z', + reference: null, + reference_origin: null, + metadata: {} + }, + relationships: { + customer_group: { + links: { + self: 'https://alessani.commercelayer.co/api/customers/JkAdBhNGjQ/relationships/customer_group', + related: + 'https://alessani.commercelayer.co/api/customers/JkAdBhNGjQ/customer_group' + } + }, + customer_addresses: { + links: { + self: 'https://alessani.commercelayer.co/api/customers/JkAdBhNGjQ/relationships/customer_addresses', + related: + 'https://alessani.commercelayer.co/api/customers/JkAdBhNGjQ/customer_addresses' + } + }, + customer_payment_sources: { + links: { + self: 'https://alessani.commercelayer.co/api/customers/JkAdBhNGjQ/relationships/customer_payment_sources', + related: + 'https://alessani.commercelayer.co/api/customers/JkAdBhNGjQ/customer_payment_sources' + } + }, + customer_subscriptions: { + links: { + self: 'https://alessani.commercelayer.co/api/customers/JkAdBhNGjQ/relationships/customer_subscriptions', + related: + 'https://alessani.commercelayer.co/api/customers/JkAdBhNGjQ/customer_subscriptions' + } + }, + orders: { + links: { + self: 'https://alessani.commercelayer.co/api/customers/JkAdBhNGjQ/relationships/orders', + related: + 'https://alessani.commercelayer.co/api/customers/JkAdBhNGjQ/orders' + } + }, + order_subscriptions: { + links: { + self: 'https://alessani.commercelayer.co/api/customers/JkAdBhNGjQ/relationships/order_subscriptions', + related: + 'https://alessani.commercelayer.co/api/customers/JkAdBhNGjQ/order_subscriptions' + } + }, + returns: { + links: { + self: 'https://alessani.commercelayer.co/api/customers/JkAdBhNGjQ/relationships/returns', + related: + 'https://alessani.commercelayer.co/api/customers/JkAdBhNGjQ/returns' + } + }, + sku_lists: { + links: { + self: 'https://alessani.commercelayer.co/api/customers/JkAdBhNGjQ/relationships/sku_lists', + related: + 'https://alessani.commercelayer.co/api/customers/JkAdBhNGjQ/sku_lists' + } + }, + attachments: { + links: { + self: 'https://alessani.commercelayer.co/api/customers/JkAdBhNGjQ/relationships/attachments', + related: + 'https://alessani.commercelayer.co/api/customers/JkAdBhNGjQ/attachments' + } + }, + events: { + links: { + self: 'https://alessani.commercelayer.co/api/customers/JkAdBhNGjQ/relationships/events', + related: + 'https://alessani.commercelayer.co/api/customers/JkAdBhNGjQ/events' + } + }, + tags: { + links: { + self: 'https://alessani.commercelayer.co/api/customers/JkAdBhNGjQ/relationships/tags', + related: + 'https://alessani.commercelayer.co/api/customers/JkAdBhNGjQ/tags' + } + } + }, + meta: { mode: 'test', organization_id: 'WXlEOFrjnr' } + }, + { + id: 'dPoNukZmnB', + type: 'addresses', + links: { + self: 'https://alessani.commercelayer.co/api/addresses/dPoNukZmnB' + }, + attributes: { + business: false, + first_name: 'Darth', + last_name: 'Vader', + company: null, + full_name: 'Darth Vader', + line_1: 'Via Morte Nera, 13', + line_2: 'Ragnatela, 99', + city: 'Cogorno', + zip_code: '16030', + state_code: 'GE', + country_code: 'IT', + phone: '+39 055 1234567890', + full_address: + 'Via Morte Nera, 13 Ragnatela, 99, 16030 Cogorno GE (IT) +39 055 1234567890', + name: 'Darth Vader, Via Morte Nera, 13 Ragnatela, 99, 16030 Cogorno GE (IT) +39 055 1234567890', + email: null, + notes: null, + lat: null, + lng: null, + is_localized: false, + is_geocoded: false, + provider_name: null, + map_url: null, + static_map_url: null, + billing_info: 'ABCDEFGHIJKLMNOPQRSTUVWYXZ', + created_at: '2023-05-16T11:06:07.638Z', + updated_at: '2023-05-16T11:06:07.638Z', + reference: null, + reference_origin: null, + metadata: {} + }, + relationships: { + geocoder: { + links: { + self: 'https://alessani.commercelayer.co/api/addresses/dPoNukZmnB/relationships/geocoder', + related: + 'https://alessani.commercelayer.co/api/addresses/dPoNukZmnB/geocoder' + } + }, + events: { + links: { + self: 'https://alessani.commercelayer.co/api/addresses/dPoNukZmnB/relationships/events', + related: + 'https://alessani.commercelayer.co/api/addresses/dPoNukZmnB/events' + } + }, + tags: { + links: { + self: 'https://alessani.commercelayer.co/api/addresses/dPoNukZmnB/relationships/tags', + related: + 'https://alessani.commercelayer.co/api/addresses/dPoNukZmnB/tags' + } + }, + versions: { + links: { + self: 'https://alessani.commercelayer.co/api/addresses/dPoNukZmnB/relationships/versions', + related: + 'https://alessani.commercelayer.co/api/addresses/dPoNukZmnB/versions' + } + } + }, + meta: { mode: 'test', organization_id: 'WXlEOFrjnr' } + }, + { + id: 'dQxruwZDnB', + type: 'addresses', + links: { + self: 'https://alessani.commercelayer.co/api/addresses/dQxruwZDnB' + }, + attributes: { + business: false, + first_name: 'Darth', + last_name: 'Vader', + company: null, + full_name: 'Darth Vader', + line_1: 'Via Morte Nera, 13', + line_2: 'Ragnatela, 99', + city: 'Cogorno', + zip_code: '16030', + state_code: 'GE', + country_code: 'IT', + phone: '+39 055 1234567890', + full_address: + 'Via Morte Nera, 13 Ragnatela, 99, 16030 Cogorno GE (IT) +39 055 1234567890', + name: 'Darth Vader, Via Morte Nera, 13 Ragnatela, 99, 16030 Cogorno GE (IT) +39 055 1234567890', + email: null, + notes: null, + lat: null, + lng: null, + is_localized: false, + is_geocoded: false, + provider_name: null, + map_url: null, + static_map_url: null, + billing_info: 'ABCDEFGHIJKLMNOPQRSTUVWYXZ', + created_at: '2023-05-16T11:06:07.493Z', + updated_at: '2023-05-16T11:06:07.493Z', + reference: null, + reference_origin: null, + metadata: {} + }, + relationships: { + geocoder: { + links: { + self: 'https://alessani.commercelayer.co/api/addresses/dQxruwZDnB/relationships/geocoder', + related: + 'https://alessani.commercelayer.co/api/addresses/dQxruwZDnB/geocoder' + } + }, + events: { + links: { + self: 'https://alessani.commercelayer.co/api/addresses/dQxruwZDnB/relationships/events', + related: + 'https://alessani.commercelayer.co/api/addresses/dQxruwZDnB/events' + } + }, + tags: { + links: { + self: 'https://alessani.commercelayer.co/api/addresses/dQxruwZDnB/relationships/tags', + related: + 'https://alessani.commercelayer.co/api/addresses/dQxruwZDnB/tags' + } + }, + versions: { + links: { + self: 'https://alessani.commercelayer.co/api/addresses/dQxruwZDnB/relationships/versions', + related: + 'https://alessani.commercelayer.co/api/addresses/dQxruwZDnB/versions' + } + } + }, + meta: { mode: 'test', organization_id: 'WXlEOFrjnr' } + }, + { + id: 'wmBvQsARml', + type: 'payment_methods', + links: { + self: 'https://alessani.commercelayer.co/api/payment_methods/wmBvQsARml' + }, + attributes: { + payment_source_type: 'stripe_payments', + name: 'Stripe Payment', + currency_code: 'EUR', + moto: false, + require_capture: true, + auto_capture: false, + disabled_at: null, + price_amount_cents: 1000, + price_amount_float: 10.0, + formatted_price_amount: '€10,00', + auto_capture_max_amount_cents: null, + auto_capture_max_amount_float: null, + formatted_auto_capture_max_amount: null, + created_at: '2022-03-11T14:18:08.420Z', + updated_at: '2022-03-11T14:18:08.420Z', + reference: '', + reference_origin: '', + metadata: {} + }, + relationships: { + market: { + links: { + self: 'https://alessani.commercelayer.co/api/payment_methods/wmBvQsARml/relationships/market', + related: + 'https://alessani.commercelayer.co/api/payment_methods/wmBvQsARml/market' + } + }, + payment_gateway: { + links: { + self: 'https://alessani.commercelayer.co/api/payment_methods/wmBvQsARml/relationships/payment_gateway', + related: + 'https://alessani.commercelayer.co/api/payment_methods/wmBvQsARml/payment_gateway' + } + }, + attachments: { + links: { + self: 'https://alessani.commercelayer.co/api/payment_methods/wmBvQsARml/relationships/attachments', + related: + 'https://alessani.commercelayer.co/api/payment_methods/wmBvQsARml/attachments' + } + }, + versions: { + links: { + self: 'https://alessani.commercelayer.co/api/payment_methods/wmBvQsARml/relationships/versions', + related: + 'https://alessani.commercelayer.co/api/payment_methods/wmBvQsARml/versions' + } + } + }, + meta: { mode: 'test', organization_id: 'WXlEOFrjnr' } + }, + { + id: 'onXELSmbQy', + type: 'stripe_payments', + links: { + self: 'https://alessani.commercelayer.co/api/stripe_payments/onXELSmbQy' + }, + attributes: { + client_secret: + 'pi_3N8LhsK5j6INEBBI0JicoLOo_secret_CKWfEPSnvyBHIQrEfRXkrJYd7', + publishable_key: + 'pk_test_51KH86yK5j6INEBBIdkXoh0UwOoOlAbFZc3b8j0vjRHKQHdaUfEJm24F0A9QkrQXVlgh1nXJCpWR6PG3epaUWzE2z00BdEe9fho', + options: { + id: 'pm_1N8LhuK5j6INEBBI71U1QOlu', + card: { + brand: 'visa', + last4: '4242', + checks: { + cvc_check: null, + address_line1_check: null, + address_postal_code_check: null + }, + wallet: null, + country: 'US', + funding: 'credit', + exp_year: 2031, + networks: { available: ['visa'], preferred: null }, + exp_month: 2, + generated_from: null, + three_d_secure_usage: { supported: true } + }, + type: 'card', + object: 'payment_method', + created: 1684235178, + customer: null, + livemode: false, + billing_details: { + name: 'Darth Vader', + email: 'customer@tk.com', + phone: '+39 055 1234567890', + address: { + city: 'Cogorno', + line1: 'Via Morte Nera, 13', + line2: null, + state: 'GE', + country: 'IT', + postal_code: '16030' + } + }, + setup_future_usage: 'off_session', + intent_amount_cents: 15400 + }, + payment_method: { + id: 'pm_1N8LhuK5j6INEBBIHXkK0FFF', + card: { + brand: 'visa', + last4: '4242', + checks: { + cvc_check: 'pass', + address_line1_check: 'pass', + address_postal_code_check: 'pass' + }, + wallet: null, + country: 'US', + funding: 'credit', + exp_year: 2031, + networks: { available: ['visa'], preferred: null }, + exp_month: 2, + fingerprint: 'bVaeOEKRmYhi20Nj', + generated_from: null, + three_d_secure_usage: { supported: true } + }, + type: 'card', + object: 'payment_method', + created: 1684235179, + customer: null, + livemode: false, + metadata: {}, + billing_details: { + name: 'Darth Vader', + email: 'customer@tk.com', + phone: '+39 055 1234567890', + address: { + city: 'Cogorno', + line1: 'Via Morte Nera, 13', + line2: null, + state: 'GE', + country: 'IT', + postal_code: '16030' + } + } + }, + mismatched_amounts: false, + intent_amount_cents: 15400, + intent_amount_float: 154.0, + formatted_intent_amount: '€154,00', + return_url: null, + payment_instrument: { + issuer_type: 'card', + card_type: 'visa', + card_last_digits: '4242', + card_expiry_month: '2', + card_expiry_year: '2031' + }, + created_at: '2023-05-16T11:06:16.338Z', + updated_at: '2023-05-16T11:06:21.948Z', + reference: null, + reference_origin: null, + metadata: {} + }, + relationships: { + order: { + links: { + self: 'https://alessani.commercelayer.co/api/stripe_payments/onXELSmbQy/relationships/order', + related: + 'https://alessani.commercelayer.co/api/stripe_payments/onXELSmbQy/order' + } + }, + payment_gateway: { + links: { + self: 'https://alessani.commercelayer.co/api/stripe_payments/onXELSmbQy/relationships/payment_gateway', + related: + 'https://alessani.commercelayer.co/api/stripe_payments/onXELSmbQy/payment_gateway' + } + }, + versions: { + links: { + self: 'https://alessani.commercelayer.co/api/stripe_payments/onXELSmbQy/relationships/versions', + related: + 'https://alessani.commercelayer.co/api/stripe_payments/onXELSmbQy/versions' + } + } + }, + meta: { mode: 'test', organization_id: 'WXlEOFrjnr' } + }, + { + id: 'vaoMtAZlXy', + type: 'line_items', + links: { + self: 'https://alessani.commercelayer.co/api/line_items/vaoMtAZlXy' + }, + attributes: { + sku_code: null, + bundle_code: null, + quantity: 1, + currency_code: 'EUR', + unit_amount_cents: -10000, + unit_amount_float: -100.0, + formatted_unit_amount: '-€100,00', + options_amount_cents: 0, + options_amount_float: 0.0, + formatted_options_amount: '€0,00', + discount_cents: 0, + discount_float: 0.0, + formatted_discount: '€0,00', + total_amount_cents: -10000, + total_amount_float: -100.0, + formatted_total_amount: '-€100,00', + tax_amount_cents: 0, + tax_amount_float: 0.0, + formatted_tax_amount: '€0,00', + name: 'Gift card: €100,00', + image_url: null, + discount_breakdown: {}, + tax_rate: 0.0, + tax_breakdown: {}, + item_type: 'gift_cards', + frequency: null, + created_at: '2023-05-16T11:06:14.674Z', + updated_at: '2023-05-16T11:06:14.674Z', + reference: null, + reference_origin: null, + metadata: {} + }, + relationships: { + order: { + links: { + self: 'https://alessani.commercelayer.co/api/line_items/vaoMtAZlXy/relationships/order', + related: + 'https://alessani.commercelayer.co/api/line_items/vaoMtAZlXy/order' + } + }, + item: { + links: { + self: 'https://alessani.commercelayer.co/api/line_items/vaoMtAZlXy/relationships/item', + related: + 'https://alessani.commercelayer.co/api/line_items/vaoMtAZlXy/item' + } + }, + line_item_options: { + links: { + self: 'https://alessani.commercelayer.co/api/line_items/vaoMtAZlXy/relationships/line_item_options', + related: + 'https://alessani.commercelayer.co/api/line_items/vaoMtAZlXy/line_item_options' + } + }, + shipment_line_items: { + links: { + self: 'https://alessani.commercelayer.co/api/line_items/vaoMtAZlXy/relationships/shipment_line_items', + related: + 'https://alessani.commercelayer.co/api/line_items/vaoMtAZlXy/shipment_line_items' + } + }, + stock_reservations: { + links: { + self: 'https://alessani.commercelayer.co/api/line_items/vaoMtAZlXy/relationships/stock_reservations', + related: + 'https://alessani.commercelayer.co/api/line_items/vaoMtAZlXy/stock_reservations' + } + }, + stock_line_items: { + links: { + self: 'https://alessani.commercelayer.co/api/line_items/vaoMtAZlXy/relationships/stock_line_items', + related: + 'https://alessani.commercelayer.co/api/line_items/vaoMtAZlXy/stock_line_items' + } + }, + stock_transfers: { + links: { + self: 'https://alessani.commercelayer.co/api/line_items/vaoMtAZlXy/relationships/stock_transfers', + related: + 'https://alessani.commercelayer.co/api/line_items/vaoMtAZlXy/stock_transfers' + } + }, + events: { + links: { + self: 'https://alessani.commercelayer.co/api/line_items/vaoMtAZlXy/relationships/events', + related: + 'https://alessani.commercelayer.co/api/line_items/vaoMtAZlXy/events' + } + }, + tags: { + links: { + self: 'https://alessani.commercelayer.co/api/line_items/vaoMtAZlXy/relationships/tags', + related: + 'https://alessani.commercelayer.co/api/line_items/vaoMtAZlXy/tags' + } + } + }, + meta: { mode: 'test', organization_id: 'WXlEOFrjnr' } + }, + { + id: 'kmnptjPlBv', + type: 'line_items', + links: { + self: 'https://alessani.commercelayer.co/api/line_items/kmnptjPlBv' + }, + attributes: { + sku_code: null, + bundle_code: null, + quantity: 1, + currency_code: 'EUR', + unit_amount_cents: 1000, + unit_amount_float: 10.0, + formatted_unit_amount: '€10,00', + options_amount_cents: 0, + options_amount_float: 0.0, + formatted_options_amount: '€0,00', + discount_cents: 0, + discount_float: 0.0, + formatted_discount: '€0,00', + total_amount_cents: 1000, + total_amount_float: 10.0, + formatted_total_amount: '€10,00', + tax_amount_cents: 0, + tax_amount_float: 0.0, + formatted_tax_amount: '€0,00', + name: 'Stripe Payment', + image_url: null, + discount_breakdown: {}, + tax_rate: 0.0, + tax_breakdown: {}, + item_type: 'payment_methods', + frequency: null, + created_at: '2023-05-16T11:06:14.629Z', + updated_at: '2023-05-16T11:06:14.629Z', + reference: null, + reference_origin: null, + metadata: {} + }, + relationships: { + order: { + links: { + self: 'https://alessani.commercelayer.co/api/line_items/kmnptjPlBv/relationships/order', + related: + 'https://alessani.commercelayer.co/api/line_items/kmnptjPlBv/order' + } + }, + item: { + links: { + self: 'https://alessani.commercelayer.co/api/line_items/kmnptjPlBv/relationships/item', + related: + 'https://alessani.commercelayer.co/api/line_items/kmnptjPlBv/item' + } + }, + line_item_options: { + links: { + self: 'https://alessani.commercelayer.co/api/line_items/kmnptjPlBv/relationships/line_item_options', + related: + 'https://alessani.commercelayer.co/api/line_items/kmnptjPlBv/line_item_options' + } + }, + shipment_line_items: { + links: { + self: 'https://alessani.commercelayer.co/api/line_items/kmnptjPlBv/relationships/shipment_line_items', + related: + 'https://alessani.commercelayer.co/api/line_items/kmnptjPlBv/shipment_line_items' + } + }, + stock_reservations: { + links: { + self: 'https://alessani.commercelayer.co/api/line_items/kmnptjPlBv/relationships/stock_reservations', + related: + 'https://alessani.commercelayer.co/api/line_items/kmnptjPlBv/stock_reservations' + } + }, + stock_line_items: { + links: { + self: 'https://alessani.commercelayer.co/api/line_items/kmnptjPlBv/relationships/stock_line_items', + related: + 'https://alessani.commercelayer.co/api/line_items/kmnptjPlBv/stock_line_items' + } + }, + stock_transfers: { + links: { + self: 'https://alessani.commercelayer.co/api/line_items/kmnptjPlBv/relationships/stock_transfers', + related: + 'https://alessani.commercelayer.co/api/line_items/kmnptjPlBv/stock_transfers' + } + }, + events: { + links: { + self: 'https://alessani.commercelayer.co/api/line_items/kmnptjPlBv/relationships/events', + related: + 'https://alessani.commercelayer.co/api/line_items/kmnptjPlBv/events' + } + }, + tags: { + links: { + self: 'https://alessani.commercelayer.co/api/line_items/kmnptjPlBv/relationships/tags', + related: + 'https://alessani.commercelayer.co/api/line_items/kmnptjPlBv/tags' + } + } + }, + meta: { mode: 'test', organization_id: 'WXlEOFrjnr' } + }, + { + id: 'vWEZtMGVKy', + type: 'line_items', + links: { + self: 'https://alessani.commercelayer.co/api/line_items/vWEZtMGVKy' + }, + attributes: { + sku_code: null, + bundle_code: null, + quantity: 1, + currency_code: 'EUR', + unit_amount_cents: 0, + unit_amount_float: 0.0, + formatted_unit_amount: '€0,00', + options_amount_cents: 0, + options_amount_float: 0.0, + formatted_options_amount: '€0,00', + discount_cents: 0, + discount_float: 0.0, + formatted_discount: '€0,00', + total_amount_cents: 0, + total_amount_float: 0.0, + formatted_total_amount: '€0,00', + tax_amount_cents: 0, + tax_amount_float: 0.0, + formatted_tax_amount: '€0,00', + name: 'Shipment #2485862/S/001', + image_url: null, + discount_breakdown: {}, + tax_rate: 0.0, + tax_breakdown: {}, + item_type: 'shipments', + frequency: null, + created_at: '2023-05-16T11:06:09.728Z', + updated_at: '2023-05-16T11:06:09.728Z', + reference: null, + reference_origin: null, + metadata: {} + }, + relationships: { + order: { + links: { + self: 'https://alessani.commercelayer.co/api/line_items/vWEZtMGVKy/relationships/order', + related: + 'https://alessani.commercelayer.co/api/line_items/vWEZtMGVKy/order' + } + }, + item: { + links: { + self: 'https://alessani.commercelayer.co/api/line_items/vWEZtMGVKy/relationships/item', + related: + 'https://alessani.commercelayer.co/api/line_items/vWEZtMGVKy/item' + } + }, + line_item_options: { + links: { + self: 'https://alessani.commercelayer.co/api/line_items/vWEZtMGVKy/relationships/line_item_options', + related: + 'https://alessani.commercelayer.co/api/line_items/vWEZtMGVKy/line_item_options' + } + }, + shipment_line_items: { + links: { + self: 'https://alessani.commercelayer.co/api/line_items/vWEZtMGVKy/relationships/shipment_line_items', + related: + 'https://alessani.commercelayer.co/api/line_items/vWEZtMGVKy/shipment_line_items' + } + }, + stock_reservations: { + links: { + self: 'https://alessani.commercelayer.co/api/line_items/vWEZtMGVKy/relationships/stock_reservations', + related: + 'https://alessani.commercelayer.co/api/line_items/vWEZtMGVKy/stock_reservations' + } + }, + stock_line_items: { + links: { + self: 'https://alessani.commercelayer.co/api/line_items/vWEZtMGVKy/relationships/stock_line_items', + related: + 'https://alessani.commercelayer.co/api/line_items/vWEZtMGVKy/stock_line_items' + } + }, + stock_transfers: { + links: { + self: 'https://alessani.commercelayer.co/api/line_items/vWEZtMGVKy/relationships/stock_transfers', + related: + 'https://alessani.commercelayer.co/api/line_items/vWEZtMGVKy/stock_transfers' + } + }, + events: { + links: { + self: 'https://alessani.commercelayer.co/api/line_items/vWEZtMGVKy/relationships/events', + related: + 'https://alessani.commercelayer.co/api/line_items/vWEZtMGVKy/events' + } + }, + tags: { + links: { + self: 'https://alessani.commercelayer.co/api/line_items/vWEZtMGVKy/relationships/tags', + related: + 'https://alessani.commercelayer.co/api/line_items/vWEZtMGVKy/tags' + } + } + }, + meta: { mode: 'test', organization_id: 'WXlEOFrjnr' } + }, + { + id: 'NqYatGaKnN', + type: 'line_items', + links: { + self: 'https://alessani.commercelayer.co/api/line_items/NqYatGaKnN' + }, + attributes: { + sku_code: null, + bundle_code: null, + quantity: 1, + currency_code: 'EUR', + unit_amount_cents: 0, + unit_amount_float: 0.0, + formatted_unit_amount: '€0,00', + options_amount_cents: 0, + options_amount_float: 0.0, + formatted_options_amount: '€0,00', + discount_cents: 0, + discount_float: 0.0, + formatted_discount: '€0,00', + total_amount_cents: 0, + total_amount_float: 0.0, + formatted_total_amount: '€0,00', + tax_amount_cents: 0, + tax_amount_float: 0.0, + formatted_tax_amount: '€0,00', + name: 'Shipment #2485862/S/002', + image_url: null, + discount_breakdown: {}, + tax_rate: 0.0, + tax_breakdown: {}, + item_type: 'shipments', + frequency: null, + created_at: '2023-05-16T11:06:09.602Z', + updated_at: '2023-05-16T11:06:09.602Z', + reference: null, + reference_origin: null, + metadata: {} + }, + relationships: { + order: { + links: { + self: 'https://alessani.commercelayer.co/api/line_items/NqYatGaKnN/relationships/order', + related: + 'https://alessani.commercelayer.co/api/line_items/NqYatGaKnN/order' + } + }, + item: { + links: { + self: 'https://alessani.commercelayer.co/api/line_items/NqYatGaKnN/relationships/item', + related: + 'https://alessani.commercelayer.co/api/line_items/NqYatGaKnN/item' + } + }, + line_item_options: { + links: { + self: 'https://alessani.commercelayer.co/api/line_items/NqYatGaKnN/relationships/line_item_options', + related: + 'https://alessani.commercelayer.co/api/line_items/NqYatGaKnN/line_item_options' + } + }, + shipment_line_items: { + links: { + self: 'https://alessani.commercelayer.co/api/line_items/NqYatGaKnN/relationships/shipment_line_items', + related: + 'https://alessani.commercelayer.co/api/line_items/NqYatGaKnN/shipment_line_items' + } + }, + stock_reservations: { + links: { + self: 'https://alessani.commercelayer.co/api/line_items/NqYatGaKnN/relationships/stock_reservations', + related: + 'https://alessani.commercelayer.co/api/line_items/NqYatGaKnN/stock_reservations' + } + }, + stock_line_items: { + links: { + self: 'https://alessani.commercelayer.co/api/line_items/NqYatGaKnN/relationships/stock_line_items', + related: + 'https://alessani.commercelayer.co/api/line_items/NqYatGaKnN/stock_line_items' + } + }, + stock_transfers: { + links: { + self: 'https://alessani.commercelayer.co/api/line_items/NqYatGaKnN/relationships/stock_transfers', + related: + 'https://alessani.commercelayer.co/api/line_items/NqYatGaKnN/stock_transfers' + } + }, + events: { + links: { + self: 'https://alessani.commercelayer.co/api/line_items/NqYatGaKnN/relationships/events', + related: + 'https://alessani.commercelayer.co/api/line_items/NqYatGaKnN/events' + } + }, + tags: { + links: { + self: 'https://alessani.commercelayer.co/api/line_items/NqYatGaKnN/relationships/tags', + related: + 'https://alessani.commercelayer.co/api/line_items/NqYatGaKnN/tags' + } + } + }, + meta: { mode: 'test', organization_id: 'WXlEOFrjnr' } + }, + { + id: 'NoEntBwEdk', + type: 'line_items', + links: { + self: 'https://alessani.commercelayer.co/api/line_items/NoEntBwEdk' + }, + attributes: { + sku_code: 'TSHIRTMMFFFFFF000000XLXX', + bundle_code: null, + quantity: 5, + currency_code: 'EUR', + unit_amount_cents: 2900, + unit_amount_float: 29.0, + formatted_unit_amount: '€29,00', + options_amount_cents: 0, + options_amount_float: 0.0, + formatted_options_amount: '€0,00', + discount_cents: -5943, + discount_float: -59.43, + formatted_discount: '-€59,43', + total_amount_cents: 14500, + total_amount_float: 145.0, + formatted_total_amount: '€145,00', + tax_amount_cents: 0, + tax_amount_float: 0.0, + formatted_tax_amount: '€0,00', + name: 'White Men T-Shirt with Black Logo (XL)', + image_url: + 'https://data.commercelayer.app/seed/images/skus/TSHIRTMSFFFFFF000000XLXX_FLAT.png', + discount_breakdown: { + vaoMtAZlXy: { cents: -5943, weight: 0.5942622950819673 } + }, + tax_rate: 0.0, + tax_breakdown: {}, + item_type: 'skus', + frequency: null, + created_at: '2023-05-16T11:06:02.458Z', + updated_at: '2023-05-16T11:06:02.458Z', + reference: null, + reference_origin: null, + metadata: {} + }, + relationships: { + order: { + links: { + self: 'https://alessani.commercelayer.co/api/line_items/NoEntBwEdk/relationships/order', + related: + 'https://alessani.commercelayer.co/api/line_items/NoEntBwEdk/order' + } + }, + item: { + links: { + self: 'https://alessani.commercelayer.co/api/line_items/NoEntBwEdk/relationships/item', + related: + 'https://alessani.commercelayer.co/api/line_items/NoEntBwEdk/item' + } + }, + line_item_options: { + links: { + self: 'https://alessani.commercelayer.co/api/line_items/NoEntBwEdk/relationships/line_item_options', + related: + 'https://alessani.commercelayer.co/api/line_items/NoEntBwEdk/line_item_options' + } + }, + shipment_line_items: { + links: { + self: 'https://alessani.commercelayer.co/api/line_items/NoEntBwEdk/relationships/shipment_line_items', + related: + 'https://alessani.commercelayer.co/api/line_items/NoEntBwEdk/shipment_line_items' + } + }, + stock_reservations: { + links: { + self: 'https://alessani.commercelayer.co/api/line_items/NoEntBwEdk/relationships/stock_reservations', + related: + 'https://alessani.commercelayer.co/api/line_items/NoEntBwEdk/stock_reservations' + } + }, + stock_line_items: { + links: { + self: 'https://alessani.commercelayer.co/api/line_items/NoEntBwEdk/relationships/stock_line_items', + related: + 'https://alessani.commercelayer.co/api/line_items/NoEntBwEdk/stock_line_items' + } + }, + stock_transfers: { + links: { + self: 'https://alessani.commercelayer.co/api/line_items/NoEntBwEdk/relationships/stock_transfers', + related: + 'https://alessani.commercelayer.co/api/line_items/NoEntBwEdk/stock_transfers' + } + }, + events: { + links: { + self: 'https://alessani.commercelayer.co/api/line_items/NoEntBwEdk/relationships/events', + related: + 'https://alessani.commercelayer.co/api/line_items/NoEntBwEdk/events' + } + }, + tags: { + links: { + self: 'https://alessani.commercelayer.co/api/line_items/NoEntBwEdk/relationships/tags', + related: + 'https://alessani.commercelayer.co/api/line_items/NoEntBwEdk/tags' + } + } + }, + meta: { mode: 'test', organization_id: 'WXlEOFrjnr' } + }, + { + id: 'NlQmtMAnGy', + type: 'line_items', + links: { + self: 'https://alessani.commercelayer.co/api/line_items/NlQmtMAnGy' + }, + attributes: { + sku_code: 'CANVASAU000000FFFFFF1824', + bundle_code: null, + quantity: 1, + currency_code: 'EUR', + unit_amount_cents: 9900, + unit_amount_float: 99.0, + formatted_unit_amount: '€99,00', + options_amount_cents: 0, + options_amount_float: 0.0, + formatted_options_amount: '€0,00', + discount_cents: -4057, + discount_float: -40.57, + formatted_discount: '-€40,57', + total_amount_cents: 9900, + total_amount_float: 99.0, + formatted_total_amount: '€99,00', + tax_amount_cents: 0, + tax_amount_float: 0.0, + formatted_tax_amount: '€0,00', + name: 'Black Canvas with White Logo (18x24)', + image_url: + 'https://img.commercelayer.io/skus/CANVASAU000000FFFFFF.png?fm=jpg&q=90', + discount_breakdown: { + vaoMtAZlXy: { cents: -4057, weight: 0.4057377049180328 } + }, + tax_rate: 0.0, + tax_breakdown: {}, + item_type: 'skus', + frequency: null, + created_at: '2023-05-16T11:06:02.444Z', + updated_at: '2023-05-16T11:06:02.444Z', + reference: null, + reference_origin: null, + metadata: {} + }, + relationships: { + order: { + links: { + self: 'https://alessani.commercelayer.co/api/line_items/NlQmtMAnGy/relationships/order', + related: + 'https://alessani.commercelayer.co/api/line_items/NlQmtMAnGy/order' + } + }, + item: { + links: { + self: 'https://alessani.commercelayer.co/api/line_items/NlQmtMAnGy/relationships/item', + related: + 'https://alessani.commercelayer.co/api/line_items/NlQmtMAnGy/item' + } + }, + line_item_options: { + links: { + self: 'https://alessani.commercelayer.co/api/line_items/NlQmtMAnGy/relationships/line_item_options', + related: + 'https://alessani.commercelayer.co/api/line_items/NlQmtMAnGy/line_item_options' + } + }, + shipment_line_items: { + links: { + self: 'https://alessani.commercelayer.co/api/line_items/NlQmtMAnGy/relationships/shipment_line_items', + related: + 'https://alessani.commercelayer.co/api/line_items/NlQmtMAnGy/shipment_line_items' + } + }, + stock_reservations: { + links: { + self: 'https://alessani.commercelayer.co/api/line_items/NlQmtMAnGy/relationships/stock_reservations', + related: + 'https://alessani.commercelayer.co/api/line_items/NlQmtMAnGy/stock_reservations' + } + }, + stock_line_items: { + links: { + self: 'https://alessani.commercelayer.co/api/line_items/NlQmtMAnGy/relationships/stock_line_items', + related: + 'https://alessani.commercelayer.co/api/line_items/NlQmtMAnGy/stock_line_items' + } + }, + stock_transfers: { + links: { + self: 'https://alessani.commercelayer.co/api/line_items/NlQmtMAnGy/relationships/stock_transfers', + related: + 'https://alessani.commercelayer.co/api/line_items/NlQmtMAnGy/stock_transfers' + } + }, + events: { + links: { + self: 'https://alessani.commercelayer.co/api/line_items/NlQmtMAnGy/relationships/events', + related: + 'https://alessani.commercelayer.co/api/line_items/NlQmtMAnGy/events' + } + }, + tags: { + links: { + self: 'https://alessani.commercelayer.co/api/line_items/NlQmtMAnGy/relationships/tags', + related: + 'https://alessani.commercelayer.co/api/line_items/NlQmtMAnGy/tags' + } + } + }, + meta: { mode: 'test', organization_id: 'WXlEOFrjnr' } + }, + { + id: 'YpLwCnNQgY', + type: 'shipments', + links: { + self: 'https://alessani.commercelayer.co/api/shipments/YpLwCnNQgY' + }, + attributes: { + number: '2485862/S/001', + status: 'on_hold', + currency_code: 'EUR', + cost_amount_cents: 0, + cost_amount_float: 0.0, + formatted_cost_amount: '$0.00', + skus_count: 5, + selected_rate_id: null, + rates: [], + purchase_error_code: null, + purchase_error_message: null, + get_rates_errors: [], + get_rates_started_at: null, + get_rates_completed_at: null, + purchase_started_at: null, + purchase_completed_at: null, + purchase_failed_at: null, + on_hold_at: '2023-07-21T14:12:13.287Z', + picking_at: '2023-07-21T14:12:08.574Z', + packing_at: '2023-07-21T14:10:54.107Z', + ready_to_ship_at: null, + shipped_at: null, + created_at: '2023-05-16T11:06:07.685Z', + updated_at: '2023-07-21T14:12:13.286Z', + reference: null, + reference_origin: null, + metadata: {} + }, + relationships: { + order: { + links: { + self: 'https://alessani.commercelayer.co/api/shipments/YpLwCnNQgY/relationships/order', + related: + 'https://alessani.commercelayer.co/api/shipments/YpLwCnNQgY/order' + } + }, + shipping_category: { + links: { + self: 'https://alessani.commercelayer.co/api/shipments/YpLwCnNQgY/relationships/shipping_category', + related: + 'https://alessani.commercelayer.co/api/shipments/YpLwCnNQgY/shipping_category' + } + }, + stock_location: { + links: { + self: 'https://alessani.commercelayer.co/api/shipments/YpLwCnNQgY/relationships/stock_location', + related: + 'https://alessani.commercelayer.co/api/shipments/YpLwCnNQgY/stock_location' + } + }, + origin_address: { + links: { + self: 'https://alessani.commercelayer.co/api/shipments/YpLwCnNQgY/relationships/origin_address', + related: + 'https://alessani.commercelayer.co/api/shipments/YpLwCnNQgY/origin_address' + } + }, + shipping_address: { + links: { + self: 'https://alessani.commercelayer.co/api/shipments/YpLwCnNQgY/relationships/shipping_address', + related: + 'https://alessani.commercelayer.co/api/shipments/YpLwCnNQgY/shipping_address' + } + }, + shipping_method: { + links: { + self: 'https://alessani.commercelayer.co/api/shipments/YpLwCnNQgY/relationships/shipping_method', + related: + 'https://alessani.commercelayer.co/api/shipments/YpLwCnNQgY/shipping_method' + } + }, + delivery_lead_time: { + links: { + self: 'https://alessani.commercelayer.co/api/shipments/YpLwCnNQgY/relationships/delivery_lead_time', + related: + 'https://alessani.commercelayer.co/api/shipments/YpLwCnNQgY/delivery_lead_time' + } + }, + shipment_line_items: { + links: { + self: 'https://alessani.commercelayer.co/api/shipments/YpLwCnNQgY/relationships/shipment_line_items', + related: + 'https://alessani.commercelayer.co/api/shipments/YpLwCnNQgY/shipment_line_items' + } + }, + stock_line_items: { + links: { + self: 'https://alessani.commercelayer.co/api/shipments/YpLwCnNQgY/relationships/stock_line_items', + related: + 'https://alessani.commercelayer.co/api/shipments/YpLwCnNQgY/stock_line_items' + } + }, + stock_transfers: { + links: { + self: 'https://alessani.commercelayer.co/api/shipments/YpLwCnNQgY/relationships/stock_transfers', + related: + 'https://alessani.commercelayer.co/api/shipments/YpLwCnNQgY/stock_transfers' + } + }, + available_shipping_methods: { + links: { + self: 'https://alessani.commercelayer.co/api/shipments/YpLwCnNQgY/relationships/available_shipping_methods', + related: + 'https://alessani.commercelayer.co/api/shipments/YpLwCnNQgY/available_shipping_methods' + } + }, + carrier_accounts: { + links: { + self: 'https://alessani.commercelayer.co/api/shipments/YpLwCnNQgY/relationships/carrier_accounts', + related: + 'https://alessani.commercelayer.co/api/shipments/YpLwCnNQgY/carrier_accounts' + } + }, + parcels: { + links: { + self: 'https://alessani.commercelayer.co/api/shipments/YpLwCnNQgY/relationships/parcels', + related: + 'https://alessani.commercelayer.co/api/shipments/YpLwCnNQgY/parcels' + } + }, + attachments: { + links: { + self: 'https://alessani.commercelayer.co/api/shipments/YpLwCnNQgY/relationships/attachments', + related: + 'https://alessani.commercelayer.co/api/shipments/YpLwCnNQgY/attachments' + } + }, + events: { + links: { + self: 'https://alessani.commercelayer.co/api/shipments/YpLwCnNQgY/relationships/events', + related: + 'https://alessani.commercelayer.co/api/shipments/YpLwCnNQgY/events' + } + }, + versions: { + links: { + self: 'https://alessani.commercelayer.co/api/shipments/YpLwCnNQgY/relationships/versions', + related: + 'https://alessani.commercelayer.co/api/shipments/YpLwCnNQgY/versions' + } + } + }, + meta: { mode: 'test', organization_id: 'WXlEOFrjnr' } + }, + { + id: 'PabvCpOxRy', + type: 'shipments', + links: { + self: 'https://alessani.commercelayer.co/api/shipments/PabvCpOxRy' + }, + attributes: { + number: '2485862/S/002', + status: 'shipped', + currency_code: 'EUR', + cost_amount_cents: 0, + cost_amount_float: 0.0, + formatted_cost_amount: '$0.00', + skus_count: 1, + selected_rate_id: null, + rates: [], + purchase_error_code: null, + purchase_error_message: null, + get_rates_errors: [], + get_rates_started_at: null, + get_rates_completed_at: null, + purchase_started_at: null, + purchase_completed_at: null, + purchase_failed_at: null, + on_hold_at: null, + picking_at: '2023-05-16T14:18:35.559Z', + packing_at: '2023-05-16T14:20:24.459Z', + ready_to_ship_at: '2023-05-16T14:21:43.665Z', + shipped_at: '2023-05-16T14:22:42.632Z', + created_at: '2023-05-16T11:06:07.711Z', + updated_at: '2023-05-16T14:22:42.633Z', + reference: null, + reference_origin: null, + metadata: {} + }, + relationships: { + order: { + links: { + self: 'https://alessani.commercelayer.co/api/shipments/PabvCpOxRy/relationships/order', + related: + 'https://alessani.commercelayer.co/api/shipments/PabvCpOxRy/order' + } + }, + shipping_category: { + links: { + self: 'https://alessani.commercelayer.co/api/shipments/PabvCpOxRy/relationships/shipping_category', + related: + 'https://alessani.commercelayer.co/api/shipments/PabvCpOxRy/shipping_category' + } + }, + stock_location: { + links: { + self: 'https://alessani.commercelayer.co/api/shipments/PabvCpOxRy/relationships/stock_location', + related: + 'https://alessani.commercelayer.co/api/shipments/PabvCpOxRy/stock_location' + } + }, + origin_address: { + links: { + self: 'https://alessani.commercelayer.co/api/shipments/PabvCpOxRy/relationships/origin_address', + related: + 'https://alessani.commercelayer.co/api/shipments/PabvCpOxRy/origin_address' + } + }, + shipping_address: { + links: { + self: 'https://alessani.commercelayer.co/api/shipments/PabvCpOxRy/relationships/shipping_address', + related: + 'https://alessani.commercelayer.co/api/shipments/PabvCpOxRy/shipping_address' + } + }, + shipping_method: { + links: { + self: 'https://alessani.commercelayer.co/api/shipments/PabvCpOxRy/relationships/shipping_method', + related: + 'https://alessani.commercelayer.co/api/shipments/PabvCpOxRy/shipping_method' + } + }, + delivery_lead_time: { + links: { + self: 'https://alessani.commercelayer.co/api/shipments/PabvCpOxRy/relationships/delivery_lead_time', + related: + 'https://alessani.commercelayer.co/api/shipments/PabvCpOxRy/delivery_lead_time' + } + }, + shipment_line_items: { + links: { + self: 'https://alessani.commercelayer.co/api/shipments/PabvCpOxRy/relationships/shipment_line_items', + related: + 'https://alessani.commercelayer.co/api/shipments/PabvCpOxRy/shipment_line_items' + } + }, + stock_line_items: { + links: { + self: 'https://alessani.commercelayer.co/api/shipments/PabvCpOxRy/relationships/stock_line_items', + related: + 'https://alessani.commercelayer.co/api/shipments/PabvCpOxRy/stock_line_items' + } + }, + stock_transfers: { + links: { + self: 'https://alessani.commercelayer.co/api/shipments/PabvCpOxRy/relationships/stock_transfers', + related: + 'https://alessani.commercelayer.co/api/shipments/PabvCpOxRy/stock_transfers' + } + }, + available_shipping_methods: { + links: { + self: 'https://alessani.commercelayer.co/api/shipments/PabvCpOxRy/relationships/available_shipping_methods', + related: + 'https://alessani.commercelayer.co/api/shipments/PabvCpOxRy/available_shipping_methods' + } + }, + carrier_accounts: { + links: { + self: 'https://alessani.commercelayer.co/api/shipments/PabvCpOxRy/relationships/carrier_accounts', + related: + 'https://alessani.commercelayer.co/api/shipments/PabvCpOxRy/carrier_accounts' + } + }, + parcels: { + links: { + self: 'https://alessani.commercelayer.co/api/shipments/PabvCpOxRy/relationships/parcels', + related: + 'https://alessani.commercelayer.co/api/shipments/PabvCpOxRy/parcels' + } + }, + attachments: { + links: { + self: 'https://alessani.commercelayer.co/api/shipments/PabvCpOxRy/relationships/attachments', + related: + 'https://alessani.commercelayer.co/api/shipments/PabvCpOxRy/attachments' + } + }, + events: { + links: { + self: 'https://alessani.commercelayer.co/api/shipments/PabvCpOxRy/relationships/events', + related: + 'https://alessani.commercelayer.co/api/shipments/PabvCpOxRy/events' + } + }, + versions: { + links: { + self: 'https://alessani.commercelayer.co/api/shipments/PabvCpOxRy/relationships/versions', + related: + 'https://alessani.commercelayer.co/api/shipments/PabvCpOxRy/versions' + } + } + }, + meta: { mode: 'test', organization_id: 'WXlEOFrjnr' } + }, + { + id: 'nKZkPUDBVj', + type: 'authorizations', + links: { + self: 'https://alessani.commercelayer.co/api/authorizations/nKZkPUDBVj' + }, + attributes: { + number: '2485862/T/001', + currency_code: 'EUR', + amount_cents: 15400, + amount_float: 154.0, + formatted_amount: '€154,00', + succeeded: true, + message: 'Success!', + error_code: null, + error_detail: null, + token: 'pi_3N8LhsK5j6INEBBI0JicoLOo', + gateway_transaction_id: 'pi_3N8LhsK5j6INEBBI0JicoLOo', + created_at: '2023-05-16T11:06:21.964Z', + updated_at: '2023-05-16T11:06:21.964Z', + reference: null, + reference_origin: null, + metadata: {}, + cvv_code: null, + cvv_message: null, + avs_code: null, + avs_message: null, + fraud_review: null, + capture_amount_cents: 0, + capture_amount_float: 0.0, + formatted_capture_amount: '€0,00', + capture_balance_cents: 0, + capture_balance_float: 0.0, + formatted_capture_balance: '€0,00', + void_balance_cents: 15400, + void_balance_float: 154.0, + formatted_void_balance: '€154,00' + }, + relationships: { + order: { + links: { + self: 'https://alessani.commercelayer.co/api/authorizations/nKZkPUDBVj/relationships/order', + related: + 'https://alessani.commercelayer.co/api/authorizations/nKZkPUDBVj/order' + } + }, + attachments: { + links: { + self: 'https://alessani.commercelayer.co/api/authorizations/nKZkPUDBVj/relationships/attachments', + related: + 'https://alessani.commercelayer.co/api/authorizations/nKZkPUDBVj/attachments' + } + }, + versions: { + links: { + self: 'https://alessani.commercelayer.co/api/authorizations/nKZkPUDBVj/relationships/versions', + related: + 'https://alessani.commercelayer.co/api/authorizations/nKZkPUDBVj/versions' + } + }, + captures: { + links: { + self: 'https://alessani.commercelayer.co/api/authorizations/nKZkPUDBVj/relationships/captures', + related: + 'https://alessani.commercelayer.co/api/authorizations/nKZkPUDBVj/captures' + } + }, + voids: { + links: { + self: 'https://alessani.commercelayer.co/api/authorizations/nKZkPUDBVj/relationships/voids', + related: + 'https://alessani.commercelayer.co/api/authorizations/nKZkPUDBVj/voids' + } + }, + events: { + links: { + self: 'https://alessani.commercelayer.co/api/authorizations/nKZkPUDBVj/relationships/events', + related: + 'https://alessani.commercelayer.co/api/authorizations/nKZkPUDBVj/events' + } + } + }, + meta: { mode: 'test', organization_id: 'WXlEOFrjnr' } + }, + { + id: 'kyAnxUgegE', + type: 'captures', + links: { + self: 'https://alessani.commercelayer.co/api/captures/kyAnxUgegE' + }, + attributes: { + number: '2485862/T/002', + currency_code: 'EUR', + amount_cents: 15400, + amount_float: 154.0, + formatted_amount: '€154,00', + succeeded: true, + message: 'Success!', + error_code: null, + error_detail: null, + token: 'pi_3N8LhsK5j6INEBBI0JicoLOo', + gateway_transaction_id: 'pi_3N8LhsK5j6INEBBI0JicoLOo', + created_at: '2023-05-16T14:18:35.368Z', + updated_at: '2023-05-16T14:18:35.368Z', + reference: null, + reference_origin: null, + metadata: {}, + refund_amount_cents: 15400, + refund_amount_float: 154.0, + formatted_refund_amount: '€154,00', + refund_balance_cents: 15400, + refund_balance_float: 154.0, + formatted_refund_balance: '€154,00' + }, + relationships: { + order: { + links: { + self: 'https://alessani.commercelayer.co/api/captures/kyAnxUgegE/relationships/order', + related: + 'https://alessani.commercelayer.co/api/captures/kyAnxUgegE/order' + } + }, + attachments: { + links: { + self: 'https://alessani.commercelayer.co/api/captures/kyAnxUgegE/relationships/attachments', + related: + 'https://alessani.commercelayer.co/api/captures/kyAnxUgegE/attachments' + } + }, + versions: { + links: { + self: 'https://alessani.commercelayer.co/api/captures/kyAnxUgegE/relationships/versions', + related: + 'https://alessani.commercelayer.co/api/captures/kyAnxUgegE/versions' + } + }, + reference_authorization: { + links: { + self: 'https://alessani.commercelayer.co/api/captures/kyAnxUgegE/relationships/reference_authorization', + related: + 'https://alessani.commercelayer.co/api/captures/kyAnxUgegE/reference_authorization' + } + }, + refunds: { + links: { + self: 'https://alessani.commercelayer.co/api/captures/kyAnxUgegE/relationships/refunds', + related: + 'https://alessani.commercelayer.co/api/captures/kyAnxUgegE/refunds' + } + }, + events: { + links: { + self: 'https://alessani.commercelayer.co/api/captures/kyAnxUgegE/relationships/events', + related: + 'https://alessani.commercelayer.co/api/captures/kyAnxUgegE/events' + } + } + }, + meta: { mode: 'test', organization_id: 'WXlEOFrjnr' } + }, + { + id: 'EqGrksxWNW', + type: 'attachments', + links: { + self: 'https://alessani.commercelayer.co/api/attachments/EqGrksxWNW' + }, + attributes: { + name: 'M. Montalbano', + description: 'Ehi there!', + url: null, + created_at: '2023-07-20T13:58:52.184Z', + updated_at: '2023-07-20T13:58:52.184Z', + reference: null, + reference_origin: 'app-orders--note', + metadata: {} + }, + relationships: { + attachable: { + links: { + self: 'https://alessani.commercelayer.co/api/attachments/EqGrksxWNW/relationships/attachable', + related: + 'https://alessani.commercelayer.co/api/attachments/EqGrksxWNW/attachable' + } + } + }, + meta: { mode: 'test', organization_id: 'WXlEOFrjnr' } + } + ] + }) + ) + } +) + +export default [orderDetail, orderList] diff --git a/packages/document/mocks/data/tags.js b/packages/document/mocks/data/tags.js new file mode 100644 index 00000000..3fdf23d7 --- /dev/null +++ b/packages/document/mocks/data/tags.js @@ -0,0 +1,42 @@ +import { HttpResponse, http } from 'msw' + +const mockedTags = Array(15) + .fill(null) + .map((item, idx) => ({ + id: Math.random().toString().substring(2, 12), + type: 'tags', + attributes: { + name: `tag-${idx}`, + created_at: '2023-03-17T14:07:36.604Z', + updated_at: '2023-03-17T14:07:36.604Z' + }, + meta: { mode: 'test', organization_id: 'WXlEOFrjnr' } + })) + +const customerTags = http.get( + `https://mock.localhost/api/customers/NMWYhbGorj/tags`, + async () => { + return HttpResponse.json( + { + data: mockedTags.slice(0, 2), + meta: { record_count: 2, page_count: 1 } + }, + { status: 200 } + ) + } +) + +const organizationTags = http.get( + `https://mock.localhost/api/tags`, + async () => { + return HttpResponse.json( + { + data: mockedTags, + meta: { record_count: 100, page_count: 10 } + }, + { status: 200 } + ) + } +) + +export default [customerTags, organizationTags] diff --git a/packages/document/mocks/handlers.js b/packages/document/mocks/handlers.js new file mode 100644 index 00000000..df071002 --- /dev/null +++ b/packages/document/mocks/handlers.js @@ -0,0 +1,15 @@ +import adjustments from './data/adjustments' +import bundles from './data/bundles' +import lineItems from './data/line_items' +import markets from './data/markets' +import orders from './data/orders' +import tags from './data/tags' + +export const handlers = [ + ...adjustments, + ...bundles, + ...lineItems, + ...markets, + ...orders, + ...tags +] diff --git a/packages/document/package.json b/packages/document/package.json new file mode 100644 index 00000000..f179175e --- /dev/null +++ b/packages/document/package.json @@ -0,0 +1,53 @@ +{ + "name": "document", + "private": true, + "version": "0.0.0", + "type": "module", + "scripts": { + "dev": "vite", + "build": "tsc -b && vite build", + "lint": "eslint .", + "preview": "vite preview", + "storybook": "storybook dev -p 6006", + "build-storybook": "storybook build" + }, + "dependencies": { + "react": "^19.0.0", + "react-dom": "^19.0.0" + }, + "devDependencies": { + "@chromatic-com/storybook": "^3.2.4", + "@eslint/js": "^9.19.0", + "@storybook/addon-docs": "^7.6.17", + "@storybook/addon-essentials": "^8.5.3", + "@storybook/addon-interactions": "^8.5.3", + "@storybook/addon-links": "^7.6.17", + "@storybook/addon-mdx-gfm": "^8.5.3", + "@storybook/addon-onboarding": "^8.5.3", + "@storybook/blocks": "^8.5.3", + "@storybook/react": "^8.5.3", + "@storybook/react-vite": "^8.5.3", + "@storybook/test": "^8.5.3", + "@storybook/theming": "^8.5.3", + "@types/react": "^19.0.8", + "@types/react-dom": "^19.0.3", + "@vitejs/plugin-react": "^4.3.4", + "eslint": "^9.19.0", + "eslint-plugin-react-hooks": "^5.0.0", + "eslint-plugin-react-refresh": "^0.4.18", + "eslint-plugin-storybook": "^0.11.2", + "globals": "^15.14.0", + "msw": "^2.7.0", + "remark-gfm": "^4.0.0", + "storybook": "^8.5.3", + "typescript": "~5.7.2", + "typescript-eslint": "^8.22.0", + "vite": "^6.1.0", + "vite-tsconfig-paths": "^5.1.4" + }, + "eslintConfig": { + "extends": [ + "plugin:storybook/recommended" + ] + } +} diff --git a/packages/document/public/app-logo.png b/packages/document/public/app-logo.png new file mode 100644 index 0000000000000000000000000000000000000000..77e678b5bf1857fc4ea500ae856282d0aabe3996 GIT binary patch literal 28732 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 { + return client.id !== clientId + }) + + // Unregister itself when there are no more clients + if (remainingClients.length === 0) { + self.registration.unregister() + } + + break + } + } +}) + +self.addEventListener('fetch', function (event) { + const { request } = event + const accept = request.headers.get('accept') || '' + + // Bypass server-sent events. + if (accept.includes('text/event-stream')) { + return + } + + // Bypass navigation requests. + if (request.mode === 'navigate') { + return + } + + // Opening the DevTools triggers the "only-if-cached" request + // that cannot be handled by the worker. Bypass such requests. + if (request.cache === 'only-if-cached' && request.mode !== 'same-origin') { + return + } + + // Bypass all requests when there are no active clients. + // Prevents the self-unregistered worked from handling requests + // after it's been deleted (still remains active until the next reload). + if (activeClientIds.size === 0) { + return + } + + // Generate unique request ID. + const requestId = Math.random().toString(16).slice(2) + + event.respondWith( + handleRequest(event, requestId).catch((error) => { + if (error.name === 'NetworkError') { + console.warn( + '[MSW] Successfully emulated a network error for the "%s %s" request.', + request.method, + request.url, + ) + return + } + + // At this point, any exception indicates an issue with the original request/response. + console.error( + `\ +[MSW] Caught an exception from the "%s %s" request (%s). This is probably not a problem with Mock Service Worker. There is likely an additional logging output above.`, + request.method, + request.url, + `${error.name}: ${error.message}`, + ) + }), + ) +}) + +async function handleRequest(event, requestId) { + const client = await resolveMainClient(event) + const response = await getResponse(event, client, requestId) + + // Send back the response clone for the "response:*" life-cycle events. + // Ensure MSW is active and ready to handle the message, otherwise + // this message will pend indefinitely. + if (client && activeClientIds.has(client.id)) { + ;(async function () { + const clonedResponse = response.clone() + sendToClient(client, { + type: 'RESPONSE', + payload: { + requestId, + type: clonedResponse.type, + ok: clonedResponse.ok, + status: clonedResponse.status, + statusText: clonedResponse.statusText, + body: + clonedResponse.body === null ? null : await clonedResponse.text(), + headers: Object.fromEntries(clonedResponse.headers.entries()), + redirected: clonedResponse.redirected, + }, + }) + })() + } + + return response +} + +// Resolve the main client for the given event. +// Client that issues a request doesn't necessarily equal the client +// that registered the worker. It's with the latter the worker should +// communicate with during the response resolving phase. +async function resolveMainClient(event) { + const client = await self.clients.get(event.clientId) + + if (client?.frameType === 'top-level') { + return client + } + + const allClients = await self.clients.matchAll({ + type: 'window', + }) + + return allClients + .filter((client) => { + // Get only those clients that are currently visible. + return client.visibilityState === 'visible' + }) + .find((client) => { + // Find the client ID that's recorded in the + // set of clients that have registered the worker. + return activeClientIds.has(client.id) + }) +} + +async function getResponse(event, client, requestId) { + const { request } = event + const clonedRequest = request.clone() + + function passthrough() { + // Clone the request because it might've been already used + // (i.e. its body has been read and sent to the client). + const headers = Object.fromEntries(clonedRequest.headers.entries()) + + // Remove MSW-specific request headers so the bypassed requests + // comply with the server's CORS preflight check. + // Operate with the headers as an object because request "Headers" + // are immutable. + delete headers['x-msw-bypass'] + + return fetch(clonedRequest, { headers }) + } + + // Bypass mocking when the client is not active. + if (!client) { + return passthrough() + } + + // Bypass initial page load requests (i.e. static assets). + // The absence of the immediate/parent client in the map of the active clients + // means that MSW hasn't dispatched the "MOCK_ACTIVATE" event yet + // and is not ready to handle requests. + if (!activeClientIds.has(client.id)) { + return passthrough() + } + + // Bypass requests with the explicit bypass header. + // Such requests can be issued by "ctx.fetch()". + if (request.headers.get('x-msw-bypass') === 'true') { + return passthrough() + } + + // Notify the client that a request has been intercepted. + const clientMessage = await sendToClient(client, { + type: 'REQUEST', + payload: { + id: requestId, + url: request.url, + method: request.method, + headers: Object.fromEntries(request.headers.entries()), + cache: request.cache, + mode: request.mode, + credentials: request.credentials, + destination: request.destination, + integrity: request.integrity, + redirect: request.redirect, + referrer: request.referrer, + referrerPolicy: request.referrerPolicy, + body: await request.text(), + bodyUsed: request.bodyUsed, + keepalive: request.keepalive, + }, + }) + + switch (clientMessage.type) { + case 'MOCK_RESPONSE': { + return respondWithMock(clientMessage.data) + } + + case 'MOCK_NOT_FOUND': { + return passthrough() + } + + case 'NETWORK_ERROR': { + const { name, message } = clientMessage.data + const networkError = new Error(message) + networkError.name = name + + // Rejecting a "respondWith" promise emulates a network error. + throw networkError + } + } + + return passthrough() +} + +function sendToClient(client, message) { + return new Promise((resolve, reject) => { + const channel = new MessageChannel() + + channel.port1.onmessage = (event) => { + if (event.data && event.data.error) { + return reject(event.data.error) + } + + resolve(event.data) + } + + client.postMessage(message, [channel.port2]) + }) +} + +function sleep(timeMs) { + return new Promise((resolve) => { + setTimeout(resolve, timeMs) + }) +} + +async function respondWithMock(response) { + await sleep(response.delay) + return new Response(response.body, response) +} diff --git a/packages/document/public/storybook-preview.css b/packages/document/public/storybook-preview.css new file mode 100644 index 00000000..3d591793 --- /dev/null +++ b/packages/document/public/storybook-preview.css @@ -0,0 +1,38 @@ +/* Global */ +.sbdocs-wrapper ol { + list-style: decimal; +} + +/** Blockquote */ +span[type] { + display: block; + padding: 16px !important; + font-size: 14px !important; + color: #2e3438 !important; + margin: 16px 0; + border-left: 4px solid; +} +span[type]::before { + content: attr(title); + display: block; + font-weight: bold; +} +span[type] > p { + margin: 0; +} +span[type='info'] { + border-color: #3b82f6; + background-color: #dbebfe; +} +span[type='warning'] { + border-color: #f97317; + background-color: #ffedd5; +} +span[type='success'] { + border-color: #22c55f; + background-color: #ddfce7; +} +span[type='danger'] { + border-color: #ef4544; + background-color: #fee2e3; +} diff --git a/packages/document/public/welcome-hero.png b/packages/document/public/welcome-hero.png new file mode 100644 index 0000000000000000000000000000000000000000..57c9193bb7778c712d774da1fd68cb13c17293cc GIT binary patch literal 103964 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 z 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 m&Hplk|1tyU|669T;MjP>7eA1we-Ym9�eQOINuZ@P7b&d + +

Vite + React

+
+ +

+ Edit src/App.tsx and save to test HMR +

+
+

+ Click on the Vite and React logos to learn more +

+ + ) +} + +export default App diff --git a/packages/document/src/assets/react.svg b/packages/document/src/assets/react.svg new file mode 100644 index 00000000..6c87de9b --- /dev/null +++ b/packages/document/src/assets/react.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/document/src/index.css b/packages/document/src/index.css new file mode 100644 index 00000000..6119ad9a --- /dev/null +++ b/packages/document/src/index.css @@ -0,0 +1,68 @@ +:root { + font-family: Inter, system-ui, Avenir, Helvetica, Arial, sans-serif; + line-height: 1.5; + font-weight: 400; + + color-scheme: light dark; + color: rgba(255, 255, 255, 0.87); + background-color: #242424; + + font-synthesis: none; + text-rendering: optimizeLegibility; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} + +a { + font-weight: 500; + color: #646cff; + text-decoration: inherit; +} +a:hover { + color: #535bf2; +} + +body { + margin: 0; + display: flex; + place-items: center; + min-width: 320px; + min-height: 100vh; +} + +h1 { + font-size: 3.2em; + line-height: 1.1; +} + +button { + border-radius: 8px; + border: 1px solid transparent; + padding: 0.6em 1.2em; + font-size: 1em; + font-weight: 500; + font-family: inherit; + background-color: #1a1a1a; + cursor: pointer; + transition: border-color 0.25s; +} +button:hover { + border-color: #646cff; +} +button:focus, +button:focus-visible { + outline: 4px auto -webkit-focus-ring-color; +} + +@media (prefers-color-scheme: light) { + :root { + color: #213547; + background-color: #ffffff; + } + a:hover { + color: #747bff; + } + button { + background-color: #f9f9f9; + } +} diff --git a/packages/document/src/main.tsx b/packages/document/src/main.tsx new file mode 100644 index 00000000..86e0ef88 --- /dev/null +++ b/packages/document/src/main.tsx @@ -0,0 +1,10 @@ +import { StrictMode } from "react" +import { createRoot } from "react-dom/client" +import "./index.css" +import App from "./App.tsx" + +createRoot(document.getElementById("root")!).render( + + + , +) diff --git a/packages/document/src/stories/_internals/Code.tsx b/packages/document/src/stories/_internals/Code.tsx new file mode 100644 index 00000000..383c69b0 --- /dev/null +++ b/packages/document/src/stories/_internals/Code.tsx @@ -0,0 +1,3 @@ +export const Code: React.FC<{ children?: string }> = ({ children }) => { + return {children} +} diff --git a/packages/document/src/stories/_internals/CommerceLayer.tsx b/packages/document/src/stories/_internals/CommerceLayer.tsx new file mode 100644 index 00000000..e4bed7a8 --- /dev/null +++ b/packages/document/src/stories/_internals/CommerceLayer.tsx @@ -0,0 +1,35 @@ +import { type DefaultChildrenType } from '#typings/globals' +import CommerceLayerComponent from '#components/auth/CommerceLayer' +import { useGetToken } from './useGetToken' + +interface Props { + children: DefaultChildrenType + accessToken: + | 'customer-access-token' + | 'customer-orders-access-token' + | 'my-access-token' // guest token + endpoint?: string +} + +/** + * Custom setup for the `CommerceLayer` component that can be used in Storybook. + * without exposing the `accessToken` and `endpoint` props. + */ +function CommerceLayer({ children, ...props }: Props): JSX.Element { + const { accessToken, endpoint } = useGetToken({ + mode: + props.accessToken === 'customer-access-token' + ? 'customer' + : props.accessToken === 'customer-orders-access-token' + ? 'customer-orders' + : 'guest' + }) + + return ( + + {children} + + ) +} + +export default CommerceLayer diff --git a/packages/document/src/stories/_internals/OrderStorage.tsx b/packages/document/src/stories/_internals/OrderStorage.tsx new file mode 100644 index 00000000..41df3c7b --- /dev/null +++ b/packages/document/src/stories/_internals/OrderStorage.tsx @@ -0,0 +1,96 @@ +/* eslint-disable @typescript-eslint/no-misused-promises */ +import OrderStorageComponent from "#components/orders/OrderStorage"; +import useCommerceLayer from "#hooks/useCommerceLayer"; +import { useState, useEffect } from "react"; +import useOrderContainer from "#hooks/useOrderContainer"; +import type { CommerceLayerClient } from "@commercelayer/sdk"; + +export const OrderStorage = ({ + persistKey, + children, +}: { + persistKey: string; + children: React.ReactNode; +}): JSX.Element => { + const [orderId, setOrderId] = useState(localStorage.getItem(persistKey)); + const { sdkClient, accessToken } = useCommerceLayer(); + const cl = + accessToken != null && accessToken !== "" && sdkClient != null + ? sdkClient() + : undefined; + + useEffect(() => { + if (cl != null && orderId == null) { + createOrderWithItems(cl).then((orderId) => { + setOrderId(orderId); + localStorage.setItem(persistKey, orderId); + }); + } + }, [cl, persistKey]); + + if (cl == null || orderId == null) { + return
; + } + + return ( + + {children} + + ); +}; + +export const AddSampleItems = (): JSX.Element => { + const { sdkClient, accessToken } = useCommerceLayer(); + const { order, addToCart } = useOrderContainer(); + const cl = accessToken != null && accessToken !== "" && sdkClient(); + + if (cl == null || cl === false || order == null) return
loading...
; + + return ( +
+

Cart is empty

+ +
+ ); +}; + +async function createOrderWithItems(cl: CommerceLayerClient): Promise { + const order = await cl.orders.create({ + language_code: "en", + }); + await fillOrder(order.id, cl); + return order.id; +} + +async function fillOrder( + orderId: string, + cl: CommerceLayerClient, +): Promise { + await cl.line_items.create({ + item_type: "skus", + sku_code: "5PANECAP9D9CA1FFFFFFXXXX", + quantity: 2, + order: cl.orders.relationship(orderId), + }); + + await cl.line_items.create({ + item_type: "skus", + sku_code: "BACKPACK000000FFFFFFXXXX", + quantity: 3, + order: cl.orders.relationship(orderId), + }); +} diff --git a/packages/document/src/stories/_internals/useGetToken.ts b/packages/document/src/stories/_internals/useGetToken.ts new file mode 100644 index 00000000..966dd14f --- /dev/null +++ b/packages/document/src/stories/_internals/useGetToken.ts @@ -0,0 +1,261 @@ +import { authenticate } from '@commercelayer/js-auth' +import { useEffect, useMemo, useState } from 'react' +import Cookie from 'js-cookie' +import { jwtDecode } from 'jwt-decode' + +const salesChannel = { + clientId: 'Z5ypiDlsqgV8twWRz0GabrJvTKXad4U-PMoVAU-XvV0', + slug: 'react-components-store', + scope: 'market:15283', + domain: 'commercelayer.io' +} +const savedCustomerWithOrders = { + username: 'bruce@wayne.com', + password: '123456' +} + +type UserMode = 'customer' | 'customer-orders' | 'guest' +interface UseGetTokenOptions { + mode?: UserMode +} + +const getAccessTokenCookieName = (mode: UserMode): string => + `clToken.${salesChannel.slug}.${mode}` + +const getCustomerLoginCookieName = (mode: UserMode): string => + `clToken.customerLogin.${mode}` + +export function useGetToken( + options?: T +): { + accessToken: string + endpoint: string +} { + const mode = options?.mode ?? 'guest' + const [accessToken, setAccessToken] = useState( + Cookie.get(getAccessTokenCookieName(mode)) ?? '' + ) + const clientId = salesChannel.clientId + const slug = salesChannel.slug + const scope = salesChannel.scope + const domain = salesChannel.domain + + const initToken = useMemo(() => { + return async () => { + const user = + mode === 'customer' + ? await retrieveCustomerData({ + clientId, + slug, + scope, + domain, + mode + }) + : mode === 'customer-orders' + ? savedCustomerWithOrders + : undefined + + await generateNewToken({ + clientId, + slug, + scope, + domain, + user, + mode + }).then(({ accessToken, expires }) => { + setAccessToken(accessToken) + Cookie.set(getAccessTokenCookieName(mode), accessToken, { expires }) + }) + } + }, []) + + useEffect(() => { + if ( + accessToken == null || + accessToken === '' || + isTokenExpired({ accessToken, compareTo: new Date() }) + ) { + initToken() + } + }, [accessToken]) + + return { + accessToken, + endpoint: `https://${slug}.${domain}` + } +} + +async function retrieveCustomerData({ + clientId, + slug, + scope, + domain, + mode +}: { + clientId: string + slug: string + scope: string + domain: string + mode: UserMode +}): Promise<{ + username: string + password: string +}> { + const existingUser = Cookie.get(getCustomerLoginCookieName(mode)) + const savedEmail = parseEmailAddress(existingUser?.split(':')[0]) + const savedPassword = parsePassword(existingUser?.split(':')[1]) + + if (savedEmail != null && savedPassword != null) { + return { + username: savedEmail, + password: savedPassword + } + } + + const newEmail = `user-${generateRandomString(5)}-${generateRandomString( + 5 + )}@domain.com` + const newPassword = generateRandomString(10) + + const guestToken = await generateNewToken({ + clientId, + slug, + scope, + domain, + mode + }) + + await createNewCustomer({ + email: newEmail, + password: newPassword, + salesChannelToken: guestToken.accessToken, + slug, + domain + }) + + Cookie.set(getCustomerLoginCookieName(mode), `${newEmail}:${newPassword}`) + + return { + username: newEmail, + password: newPassword + } +} + +// eslint-disable-next-line @typescript-eslint/explicit-function-return-type +async function generateNewToken({ + clientId, + slug, + scope, + domain, + user, + mode +}: { + clientId: string + slug: string + scope: string + domain: string + user?: { username: string; password: string } + mode: UserMode +}) { + return user == null + ? await authenticate('client_credentials', { + clientId, + scope, + domain + }) + : await authenticate('password', { + clientId, + scope, + domain, + ...user + }).then((res) => { + if (res != null && 'error' in res) { + Cookie.remove(getCustomerLoginCookieName('customer')) + Cookie.remove(getCustomerLoginCookieName('customer-orders')) + Cookie.remove(getAccessTokenCookieName(mode)) + } + return res + }) +} + +function isTokenExpired({ + accessToken, + compareTo +}: { + accessToken?: string + compareTo: Date +}): boolean { + if (accessToken == null || accessToken === '') { + return true + } + + try { + const { exp } = jwtDecode<{ exp: number }>(accessToken) + + if (exp == null) { + return true + } + + const nowTime = Math.trunc(compareTo.getTime() / 1000) + return nowTime > exp + } catch { + return true + } +} + +function generateRandomString(length = 10): string { + const chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789' + let result = '' + for (let i = 0; i < length; i++) { + result += chars.charAt(Math.floor(Math.random() * chars.length)) + } + return result +} + +function parseEmailAddress(email?: string): string | undefined { + const re = /^[a-zA-Z0-9._%+-]+@domain\.com$/ + if (email == null) { + return undefined + } + return re.test(email) ? email : undefined +} + +function parsePassword(password?: string): string | undefined { + return password?.length === 10 ? password : undefined +} + +async function createNewCustomer({ + email, + password, + salesChannelToken, + slug, + domain +}: { + email: string + password: string + salesChannelToken: string + slug: string + domain: string +}): Promise { + const newCustomer = await fetch(`https://${slug}.${domain}/api/customers`, { + method: 'POST', + headers: { + Accept: 'application/vnd.api+json', + 'Content-Type': 'application/vnd.api+json', + Authorization: `Bearer ${salesChannelToken}` + }, + body: JSON.stringify({ + data: { + type: 'customers', + attributes: { + email, + password + } + } + }) + }) + + if (newCustomer.status !== 201) { + throw new Error('Error creating customer') + } +} diff --git a/packages/document/src/stories/getting-started/001.introduction.mdx b/packages/document/src/stories/getting-started/001.introduction.mdx new file mode 100644 index 00000000..51386c8d --- /dev/null +++ b/packages/document/src/stories/getting-started/001.introduction.mdx @@ -0,0 +1,55 @@ +import { Meta, Source } from '@storybook/addon-docs'; + + + +![App Element splashscreen](welcome-hero.png) + +A collection of reusable React components that makes it super fast and simple to build your own custom commerce UI, leveraging Commerce Layer API. + +Under the hood, our React components are built on top of [Commerce Layer JS SDK](https://github.com/commercelayer/commercelayer-sdk) — feel free to use it if you want to develop your custom ones. + + +## Installation + +This library is [open sourced](https://github.com/commercelayer/commercelayer-react-components/) and served as [npm package](https://www.npmjs.com/package/@commercelayer/react-components) and need to be installed as dependency inside your project. + + + + + +## Import components into your project + +You can use ES6 named import with every single component you plan to use (in addition to `CommerceLayer` one), as follow: + + + +But you can also leverage treeshaking by importing only the components you need from its folder using either default or named export, as follow: + + diff --git a/packages/document/src/stories/getting-started/002.authentication.mdx b/packages/document/src/stories/getting-started/002.authentication.mdx new file mode 100644 index 00000000..802a5adf --- /dev/null +++ b/packages/document/src/stories/getting-started/002.authentication.mdx @@ -0,0 +1,61 @@ +import { Meta, Source } from '@storybook/addon-docs'; + + + +# Authentication + +To get started with **Commerce Layer React Components** you need get the credentials that will allow you to perform the API calls they wrap. + +All requests to Commerce Layer API must be authenticated with an [OAuth2](https://oauth.net/2/) bearer token. +Hence, to use these components, you need to get a valid access token. + + +## Getting an access token + +If you are new to Commerce Layer, we suggest you to read the [Overview of Commerce Layer's OAuth 2.0](https://docs.commercelayer.io/core/applications) guide. + + +There are many ways to get an access token and the one you choose depends on your specific needs. + +You can get an access token by using one of the following methods: +- [API/OAuth requests](https://docs.commercelayer.io/core/authentication/client-credentials#getting-an-access-token) (i.e. `curl` or `postman`) +- [Commerce Layer CLI](https://github.com/commercelayer/commercelayer-cli) +- [Commerce Layer JS Auth Library](https://github.com/commercelayer/commercelayer-js-auth) + + +If you want to retrieve the access token from the **command line**, we suggest you to use the [Commerce Layer CLI](https://github.com/commercelayer/commercelayer-cli) +using the `commercelayer application:login` command ([view example](https://github.com/commercelayer/commercelayer-cli/blob/main/docs/applications.md#commercelayer-applicationslogin)), +followed by `commercelayer application:token` + +
+Otherwise, if you need to get it from a **web application**, you can use the Commerce Layer JS Auth library that works both in the browser and in Node.js environments. +
+ + + + +## Configure the `CommerceLayer` component +Once you got it, you can pass it as prop to the `CommerceLayer` component, as follow: + + ( + + {/* ... child components */} + +) +`} +/> + + +This token will be used to authorize the API calls of all its child components. +That's why the presence of (at least) one `CommerceLayer` component is mandatory — it must wrap every other component you need to use. + + +In case you need to fetch data with different tokens (i.e. from different organizations or using apps with different roles and permissions) +— nothing prevents you from putting as many `` components you want in the same page. + diff --git a/packages/document/src/stories/getting-started/003.microfrontends.mdx b/packages/document/src/stories/getting-started/003.microfrontends.mdx new file mode 100644 index 00000000..1bc7aba4 --- /dev/null +++ b/packages/document/src/stories/getting-started/003.microfrontends.mdx @@ -0,0 +1,17 @@ +import { Meta, Source } from '@storybook/addon-docs'; + + + +# Micro frontends + +We use **Commerce Layer React Components** library in our official open sourced hosted applications. + +Feel free to check them out and see how it works in a real world application. + + +|Application|Description|Source| +|:-----------|:-----------|:----| +| Checkout | Checkout application that you can integrate with just a single link or use as an open-source reference for your projects. | [GitHub](https://github.com/commercelayer/mfe-checkout) +| Cart | Shopping cart application that you can integrate with just a single link or use as an open-source reference for your projects. | [GitHub](https://github.com/commercelayer/mfe-cart) +| My account | Customer portal application with personal account information and management that you can integrate with just a single link or use as an open-source reference for your projects. | [GitHub](https://github.com/commercelayer/mfe-my-account) +| Microstore | Production-ready, self-contained store. Each microstore will be accessible at a unique URL and configurable via URL query strings, with no development required. | [GitHub](https://github.com/commercelayer/mfe-microstore) diff --git a/packages/document/src/stories/getting-started/004.styling.mdx b/packages/document/src/stories/getting-started/004.styling.mdx new file mode 100644 index 00000000..6ce9259b --- /dev/null +++ b/packages/document/src/stories/getting-started/004.styling.mdx @@ -0,0 +1,16 @@ +import { Meta, Source } from '@storybook/addon-docs'; + + + +# Styling the components + +This library does not provide any styling. They return simple html/jsx tags filled with fetched data. + +**It is up to you to style the components as you want**. + +Almost all components expose a `className` prop that allows you to add your own css classes. +Some components that renders multiple elements also expose other props to add classes to each specific elements. + + +All the examples in this documentation use [Tailwind CSS](https://tailwindcss.com/) to demostrate how the components can be styled. + diff --git a/packages/document/src/stories/getting-started/005.containers.mdx b/packages/document/src/stories/getting-started/005.containers.mdx new file mode 100644 index 00000000..b3d44fee --- /dev/null +++ b/packages/document/src/stories/getting-started/005.containers.mdx @@ -0,0 +1,36 @@ +import { Meta, Source } from '@storybook/addon-docs'; + + + +# Containers + +Getting used to the components hierarchy is important to understand how to use this library. + +All components need to be wrapped inside the main `` context that handles the authentication with the API layer. +**It needs to be placed at the top of the application**. + +Other components need to be wrapped inside their own containers in order to access to their specific context. +As example the `` component needs to be wrapped inside the `` or it won't work. +At the same time, the `` will not render any HTML since it just holds the data for the `` component. + + +To amultiple requests to the API, the library uses a cache system that stores the data in React contexts that we refer as containers.
+Less re-rendering of those containers means better performance and less requests to the API. +
+ + +## Hierarchy +Each container documentend in the Components section of this guide, highlights a list of **Requirements** and **Children** that are needed to make it work. + +Example: + + +Must be a child of `` component. + + + + +`` +`` +`` + diff --git a/packages/document/src/vite-env.d.ts b/packages/document/src/vite-env.d.ts new file mode 100644 index 00000000..11f02fe2 --- /dev/null +++ b/packages/document/src/vite-env.d.ts @@ -0,0 +1 @@ +/// diff --git a/packages/document/tsconfig.app.json b/packages/document/tsconfig.app.json new file mode 100644 index 00000000..358ca9ba --- /dev/null +++ b/packages/document/tsconfig.app.json @@ -0,0 +1,26 @@ +{ + "compilerOptions": { + "tsBuildInfoFile": "./node_modules/.tmp/tsconfig.app.tsbuildinfo", + "target": "ES2020", + "useDefineForClassFields": true, + "lib": ["ES2020", "DOM", "DOM.Iterable"], + "module": "ESNext", + "skipLibCheck": true, + + /* Bundler mode */ + "moduleResolution": "bundler", + "allowImportingTsExtensions": true, + "isolatedModules": true, + "moduleDetection": "force", + "noEmit": true, + "jsx": "react-jsx", + + /* Linting */ + "strict": true, + "noUnusedLocals": true, + "noUnusedParameters": true, + "noFallthroughCasesInSwitch": true, + "noUncheckedSideEffectImports": true + }, + "include": ["src"] +} diff --git a/packages/document/tsconfig.json b/packages/document/tsconfig.json new file mode 100644 index 00000000..1ffef600 --- /dev/null +++ b/packages/document/tsconfig.json @@ -0,0 +1,7 @@ +{ + "files": [], + "references": [ + { "path": "./tsconfig.app.json" }, + { "path": "./tsconfig.node.json" } + ] +} diff --git a/packages/document/tsconfig.node.json b/packages/document/tsconfig.node.json new file mode 100644 index 00000000..db0becc8 --- /dev/null +++ b/packages/document/tsconfig.node.json @@ -0,0 +1,24 @@ +{ + "compilerOptions": { + "tsBuildInfoFile": "./node_modules/.tmp/tsconfig.node.tsbuildinfo", + "target": "ES2022", + "lib": ["ES2023"], + "module": "ESNext", + "skipLibCheck": true, + + /* Bundler mode */ + "moduleResolution": "bundler", + "allowImportingTsExtensions": true, + "isolatedModules": true, + "moduleDetection": "force", + "noEmit": true, + + /* Linting */ + "strict": true, + "noUnusedLocals": true, + "noUnusedParameters": true, + "noFallthroughCasesInSwitch": true, + "noUncheckedSideEffectImports": true + }, + "include": ["vite.config.ts"] +} diff --git a/packages/document/vite.config.ts b/packages/document/vite.config.ts new file mode 100644 index 00000000..8b0f57b9 --- /dev/null +++ b/packages/document/vite.config.ts @@ -0,0 +1,7 @@ +import { defineConfig } from 'vite' +import react from '@vitejs/plugin-react' + +// https://vite.dev/config/ +export default defineConfig({ + plugins: [react()], +}) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index c6d2d56d..01f5a02b 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -64,7 +64,7 @@ importers: version: 5.7.3 vite-tsconfig-paths: specifier: ^5.1.4 - version: 5.1.4(typescript@5.7.3)(vite@6.0.11(@types/node@22.12.0)(terser@5.37.0)(yaml@2.6.1)) + version: 5.1.4(typescript@5.7.3)(vite@6.1.0(@types/node@22.12.0)(terser@5.37.0)(yaml@2.6.1)) vitest: specifier: ^3.0.4 version: 3.0.4(@types/debug@4.1.12)(@types/node@22.12.0)(jsdom@26.0.0)(msw@2.7.0(@types/node@22.12.0)(typescript@5.7.3))(terser@5.37.0)(yaml@2.6.1) @@ -75,8 +75,11 @@ importers: specifier: ^7.26.9 version: 7.26.10 '@babel/preset-env': - specifier: ^7.26.9 - version: 7.26.9(@babel/core@7.26.10) + specifier: ^7.26.0 + version: 7.26.0(@babel/core@7.26.0) + '@commercelayer/eslint-config-ts-react': + specifier: ^1.3.0 + version: 1.4.5(@types/eslint@9.6.1)(eslint@9.19.0)(react@18.3.1)(typescript@5.7.2) '@commercelayer/js-auth': specifier: ^6.7.1 version: 6.7.1 @@ -94,10 +97,10 @@ importers: version: 7.6.20 '@storybook/addon-docs': specifier: ^7.6.17 - version: 7.6.20(@types/react@18.3.18)(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 7.6.20(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@storybook/addon-essentials': specifier: ^7.6.17 - version: 7.6.20(@types/react@18.3.18)(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 7.6.20(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@storybook/addon-interactions': specifier: ^7.6.17 version: 7.6.20 @@ -121,7 +124,7 @@ importers: version: 7.6.17(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@storybook/blocks': specifier: ^7.6.17 - version: 7.6.20(@types/react@18.3.18)(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 7.6.20(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@storybook/client-api': specifier: ^7.6.17 version: 7.6.17 @@ -192,6 +195,100 @@ importers: specifier: ^5.1.4 version: 5.1.4(typescript@5.8.2)(vite@6.2.2(@types/node@22.13.10)(terser@5.39.0)(yaml@2.7.0)) + packages/document: + dependencies: + react: + specifier: ^19.0.0 + version: 19.0.0 + react-dom: + specifier: ^19.0.0 + version: 19.0.0(react@19.0.0) + devDependencies: + '@chromatic-com/storybook': + specifier: ^3.2.4 + version: 3.2.4(react@19.0.0)(storybook@8.5.3(prettier@3.4.2)) + '@eslint/js': + specifier: ^9.19.0 + version: 9.19.0 + '@storybook/addon-docs': + specifier: ^7.6.17 + version: 7.6.20(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(encoding@0.1.13)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@storybook/addon-essentials': + specifier: ^8.5.3 + version: 8.5.3(@types/react@19.0.8)(storybook@8.5.3(prettier@3.4.2)) + '@storybook/addon-interactions': + specifier: ^8.5.3 + version: 8.5.3(storybook@8.5.3(prettier@3.4.2)) + '@storybook/addon-links': + specifier: ^7.6.17 + version: 7.6.20(react@19.0.0) + '@storybook/addon-mdx-gfm': + specifier: ^8.5.3 + version: 8.5.3(storybook@8.5.3(prettier@3.4.2)) + '@storybook/addon-onboarding': + specifier: ^8.5.3 + version: 8.5.3(storybook@8.5.3(prettier@3.4.2)) + '@storybook/blocks': + specifier: ^8.5.3 + version: 8.5.3(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(storybook@8.5.3(prettier@3.4.2)) + '@storybook/react': + specifier: ^8.5.3 + version: 8.5.3(@storybook/test@8.5.3(storybook@8.5.3(prettier@3.4.2)))(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(storybook@8.5.3(prettier@3.4.2))(typescript@5.7.3) + '@storybook/react-vite': + specifier: ^8.5.3 + version: 8.5.3(@storybook/test@8.5.3(storybook@8.5.3(prettier@3.4.2)))(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(rollup@4.32.0)(storybook@8.5.3(prettier@3.4.2))(typescript@5.7.3)(vite@6.1.0(@types/node@22.12.0)(terser@5.37.0)(yaml@2.6.1)) + '@storybook/test': + specifier: ^8.5.3 + version: 8.5.3(storybook@8.5.3(prettier@3.4.2)) + '@storybook/theming': + specifier: ^8.5.3 + version: 8.5.3(storybook@8.5.3(prettier@3.4.2)) + '@types/react': + specifier: ^19.0.8 + version: 19.0.8 + '@types/react-dom': + specifier: ^19.0.3 + version: 19.0.3(@types/react@19.0.8) + '@vitejs/plugin-react': + specifier: ^4.3.4 + version: 4.3.4(vite@6.1.0(@types/node@22.12.0)(terser@5.37.0)(yaml@2.6.1)) + eslint: + specifier: ^9.19.0 + version: 9.19.0 + eslint-plugin-react-hooks: + specifier: ^5.0.0 + version: 5.1.0(eslint@9.19.0) + eslint-plugin-react-refresh: + specifier: ^0.4.18 + version: 0.4.18(eslint@9.19.0) + eslint-plugin-storybook: + specifier: ^0.11.2 + version: 0.11.2(eslint@9.19.0)(typescript@5.7.3) + globals: + specifier: ^15.14.0 + version: 15.14.0 + msw: + specifier: ^2.7.0 + version: 2.7.0(@types/node@22.12.0)(typescript@5.7.3) + remark-gfm: + specifier: ^4.0.0 + version: 4.0.0 + storybook: + specifier: ^8.5.3 + version: 8.5.3(prettier@3.4.2) + typescript: + specifier: ~5.7.2 + version: 5.7.3 + typescript-eslint: + specifier: ^8.22.0 + version: 8.23.0(eslint@9.19.0)(typescript@5.7.3) + vite: + specifier: ^6.1.0 + version: 6.1.0(@types/node@22.12.0)(terser@5.37.0)(yaml@2.6.1) + vite-tsconfig-paths: + specifier: ^5.1.4 + version: 5.1.4(typescript@5.7.3)(vite@6.1.0(@types/node@22.12.0)(terser@5.37.0)(yaml@2.6.1)) + packages/react-components: dependencies: '@adyen/adyen-web': @@ -248,7 +345,7 @@ importers: version: 10.4.0 '@testing-library/react': specifier: ^16.2.0 - version: 16.2.0(@testing-library/dom@10.4.0)(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + version: 16.2.0(@testing-library/dom@10.4.0)(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) '@types/braintree-web': specifier: ^3.96.16 version: 3.96.16 @@ -315,8 +412,14 @@ importers: packages: - '@adyen/adyen-web@6.9.0': - resolution: {integrity: sha512-R4TbMuDT7rzSwpUEmgD/idW/a7x3gMv1LIdvHdwiNOEhJeLyCZTCSZBbP0r9SecpRFN1BM1L57FJc4WZfhRS+w==} + '@adobe/css-tools@4.4.1': + resolution: {integrity: sha512-12WGKBQzjUAI4ayyF4IAtfw2QR/IDoqk6jTddXDhtYTJF9ASmoE1zst7cVtP0aL/F1jUJL5r+JxKXKEgHNbEUQ==} + + '@adyen/adyen-web@6.8.0': + resolution: {integrity: sha512-qOCFk4c0tc+So3a4co+RX01eVQFJpnzHRmUTtEiWIetWYSaBX1+htovIoj6L1k4mhRXohyo2GjAJAlueoe8rVQ==} + + '@adyen/bento-design-tokens@1.10.0': + resolution: {integrity: sha512-ZaWLGTLLW0bh69mu9ibGMaZ2DXkrB07XU3gc5Mt1fTZgNDAnCsdfJ/Wq7BxW3zYhtQLU69oz0QayZ3RDKTlHEA==} '@ampproject/remapping@2.3.0': resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==} @@ -973,6 +1076,12 @@ packages: '@bundled-es-modules/tough-cookie@0.1.6': resolution: {integrity: sha512-dvMHbL464C0zI+Yqxbz6kZ5TOEp7GLW+pry/RWndAR8MJQAXZ2rPmIs8tziTZjeIyhSNZgZbCePtfSbdWqStJw==} + '@chromatic-com/storybook@3.2.4': + resolution: {integrity: sha512-5/bOOYxfwZ2BktXeqcCpOVAoR6UCoeART5t9FVy22hoo8F291zOuX4y3SDgm10B1GVU/ZTtJWPT2X9wZFlxYLg==} + engines: {node: '>=16.0.0', yarn: '>=1.22.18'} + peerDependencies: + storybook: ^8.2.0 || ^8.3.0-0 || ^8.4.0-0 || ^8.5.0-0 || ^8.6.0-0 + '@colors/colors@1.5.0': resolution: {integrity: sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==} engines: {node: '>=0.1.90'} @@ -1321,8 +1430,42 @@ packages: cpu: [x64] os: [win32] - '@faker-js/faker@9.6.0': - resolution: {integrity: sha512-3vm4by+B5lvsFPSyep3ELWmZfE3kicDtmemVpuwl1yH7tqtnHdsA6hG8fbXedMVdkzgtvzWoRgjSB4Q+FHnZiw==} + '@eslint-community/eslint-utils@4.4.1': + resolution: {integrity: sha512-s3O3waFUrMV8P/XaF/+ZTp1X9XBZW1a4B97ZnjQF2KYWaFD2A8KyFBsrsfSjEmjn3RGWAIuvlneuZm3CUK3jbA==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 + + '@eslint-community/regexpp@4.12.1': + resolution: {integrity: sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==} + engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} + + '@eslint/config-array@0.19.1': + resolution: {integrity: sha512-fo6Mtm5mWyKjA/Chy1BYTdn5mGJoDNjC7C64ug20ADsRDGrA85bN3uK3MaKbeRkRuuIEAR5N33Jr1pbm411/PA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@eslint/core@0.10.0': + resolution: {integrity: sha512-gFHJ+xBOo4G3WRlR1e/3G8A6/KZAH6zcE/hkLRCZTi/B9avAG365QhFA8uOGzTMqgTghpn7/fSnscW++dpMSAw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@eslint/eslintrc@3.2.0': + resolution: {integrity: sha512-grOjVNN8P3hjJn/eIETF1wwd12DdnwFDoyceUJLYYdkpbwq3nLi+4fqrTAONx7XDALqlL220wC/RHSC/QTI/0w==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@eslint/js@9.19.0': + resolution: {integrity: sha512-rbq9/g38qjfqFLOVPvwjIvFFdNziEC5S65jmjPw5r6A//QH+W91akh9irMwjDN8zKUTak6W9EsAv4m/7Wnw0UQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@eslint/object-schema@2.1.5': + resolution: {integrity: sha512-o0bhxnL89h5Bae5T318nFoFzGy+YE5i/gGkoPAgkmTVdRKTiv3p8JHevPiPaMwoloKfEiiaHlawCqaZMqRm+XQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@eslint/plugin-kit@0.2.5': + resolution: {integrity: sha512-lB05FkqEdUg2AA0xEbUz0SnkXT1LcCTa438W4IWTUh4hdOnVbQyOJ81OrDXsJk/LSiJHubgGEFoR5EHq1NsH1A==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@faker-js/faker@9.4.0': + resolution: {integrity: sha512-85+k0AxaZSTowL0gXp8zYWDIrWclTbRPg/pm/V0dSFZ6W6D4lhcG3uuZl4zLsEKfEvs69xDbLN2cHQudwp95JA==} engines: {node: '>=18.0.0', npm: '>=9.0.0'} '@fal-works/esbuild-plugin-global-externals@2.1.2': @@ -1418,6 +1561,15 @@ packages: typescript: optional: true + '@joshwooding/vite-plugin-react-docgen-typescript@0.4.2': + resolution: {integrity: sha512-feQ+ntr+8hbVudnsTUapiMN9q8T90XA1d5jn9QzY09sNoj4iD9wi0PY1vsBFTda4ZjEaxRK9S81oarR2nj7TFQ==} + peerDependencies: + typescript: '>= 4.3.x' + vite: '>=4.5.2' + peerDependenciesMeta: + typescript: + optional: true + '@jridgewell/gen-mapping@0.3.8': resolution: {integrity: sha512-imAbBGkb+ebQyxKgzv5Hu2nmROxoDOXHh80evxdoXNOrvAnVx7zimzc1Oo5h9RlfV4vPXaE2iM5pOFbvOCClWA==} engines: {node: '>=6.0.0'} @@ -2225,30 +2377,65 @@ packages: '@storybook/addon-actions@7.6.20': resolution: {integrity: sha512-c/GkEQ2U9BC/Ew/IMdh+zvsh4N6y6n7Zsn2GIhJgcu9YEAa5aF2a9/pNgEGBMOABH959XE8DAOMERw/5qiLR8g==} + '@storybook/addon-actions@8.5.3': + resolution: {integrity: sha512-7a+SD4EZdZocm+NG1Kx4yV6Aw7+YUlRIyGvKcxsGtYMOLaqrUewApqveXF83+FbYWMoezXcoZCLQFROtS/Z6Fw==} + peerDependencies: + storybook: ^8.5.3 + '@storybook/addon-backgrounds@7.6.20': resolution: {integrity: sha512-a7ukoaXT42vpKsMxkseIeO3GqL0Zst2IxpCTq5dSlXiADrcemSF/8/oNpNW9C4L6F1Zdt+WDtECXslEm017FvQ==} + '@storybook/addon-backgrounds@8.5.3': + resolution: {integrity: sha512-sZcw8/C/HIIgbRBY+0ZYTBc5Py8xvw3bt6lzSVQEXA2aygfJpO/jiQJlmOXTmK3g5F5pjFKaaCodfXT7V/9mzw==} + peerDependencies: + storybook: ^8.5.3 + '@storybook/addon-controls@7.6.20': resolution: {integrity: sha512-06ZT5Ce1sZW52B0s6XuokwjkKO9GqHlTUHvuflvd8wifxKlCmRvNUxjBvwh+ccGJ49ZS73LbMSLFgtmBEkCxbg==} + '@storybook/addon-controls@8.5.3': + resolution: {integrity: sha512-A4UVQhPyC7FvV+fM50xvEZO26/2uE41Ns0TN0qq7U5EH0Dlj43Salgay6qT8fve6XAI4SgVjkujPVCSbLg/yVQ==} + peerDependencies: + storybook: ^8.5.3 + '@storybook/addon-docs@7.6.20': resolution: {integrity: sha512-XNfYRhbxH5JP7B9Lh4W06PtMefNXkfpV39Gaoih5HuqngV3eoSL4RikZYOMkvxRGQ738xc6axySU3+JKcP1OZg==} peerDependencies: react: ^16.8.0 || ^17.0.0 || ^18.0.0 react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 + '@storybook/addon-docs@8.5.3': + resolution: {integrity: sha512-XVcQlHX963nuoeRkb7qQg89t/9CThdT46UV7jX3FFn08NEMhmDEa+4iVA4l+4xNgJ+Av6uX+u6yRGnM/910mLg==} + peerDependencies: + storybook: ^8.5.3 + '@storybook/addon-essentials@7.6.20': resolution: {integrity: sha512-hCupSOiJDeOxJKZSgH0x5Mb2Xqii6mps21g5hpxac1XjhQtmGflShxi/xOHhK3sNqrbgTSbScfpUP3hUlZO/2Q==} peerDependencies: react: ^16.8.0 || ^17.0.0 || ^18.0.0 react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 + '@storybook/addon-essentials@8.5.3': + resolution: {integrity: sha512-0zbEWQQZCiYRUxMo6FrfwQER/vi+B8mCLLivdjbSVSvZsjmlpcaBA5uBjbsXfIRcedHlou4QiJXn+nR8thDlKA==} + peerDependencies: + storybook: ^8.5.3 + '@storybook/addon-highlight@7.6.20': resolution: {integrity: sha512-7/x7xFdFyqCki5Dm3uBePldUs9l98/WxJ7rTHQuYqlX7kASwyN5iXPzuhmMRUhlMm/6G6xXtLabIpzwf1sFurA==} + '@storybook/addon-highlight@8.5.3': + resolution: {integrity: sha512-xhsr3W6KTvlOIIe+8JE9/sEOAgkW0yjMZzs47A+bWcxKwcFhAUgVLbAgEzjJ0u248rjGKlCJ2pswWefO+ZKJeg==} + peerDependencies: + storybook: ^8.5.3 + '@storybook/addon-interactions@7.6.20': resolution: {integrity: sha512-uH+OIxLtvfnnmdN3Uf8MwzfEFYtaqSA6Hir6QNPc643se0RymM8mULN0rzRyvspwd6OagWdtOxsws3aHk02KTA==} + '@storybook/addon-interactions@8.5.3': + resolution: {integrity: sha512-nQuP65iFGgqfVp/O8NxNDUwLTWmQBW4bofUFaT4wzYn7Jk9zobOZYtgQvdqBZtNzBDYmLrfrCutEBj5jVPRyuQ==} + peerDependencies: + storybook: ^8.5.3 + '@storybook/addon-links@7.6.20': resolution: {integrity: sha512-iomSnBD90CA4MinesYiJkFX2kb3P1Psd/a1Y0ghlFEsHD4uMId9iT6sx2s16DYMja0SlPkrbWYnGukqaCjZpRw==} peerDependencies: @@ -2260,18 +2447,48 @@ packages: '@storybook/addon-mdx-gfm@7.6.20': resolution: {integrity: sha512-htfiooRdIYIjdKpxFjJAT+b90iatraI7yfmgF8VmpGTPqjyjGDZccUFCaE7op9S2smLZi4zYYGd+fqA5NtykkQ==} + '@storybook/addon-mdx-gfm@8.5.3': + resolution: {integrity: sha512-jKfJir3E+jJkD1K9SvrzUQBhaQJbGd2DtcE5IusXe0NKBJegbBy+eMhh9K7ani/isTf8+ZkhoXR3DFWwi2IJhg==} + peerDependencies: + storybook: ^8.5.3 + '@storybook/addon-measure@7.6.20': resolution: {integrity: sha512-i2Iq08bGfI7gZbG6Lb8uF/L287tnaGUR+2KFEmdBjH6+kgjWLiwfpanoPQpy4drm23ar0gUjX+L3Ri03VI5/Xg==} + '@storybook/addon-measure@8.5.3': + resolution: {integrity: sha512-unb0bRsnISXWiCBBECxNUUdM12hHpV+1uJUu5OJHtKb26YpiQvewDFLTLjuZJ3NIAfw+F5232Q7K88AWJV6weg==} + peerDependencies: + storybook: ^8.5.3 + + '@storybook/addon-onboarding@8.5.3': + resolution: {integrity: sha512-NZhYj3UZK65reO7mXcK7FPPu7QkLCRyIa6TpfQ3mRAocfjqg401mcBsRO37JNywYfHCZrU4w1l7pwpqjvcYceg==} + peerDependencies: + storybook: ^8.5.3 + '@storybook/addon-outline@7.6.20': resolution: {integrity: sha512-TdsIQZf/TcDsGoZ1XpO+9nBc4OKqcMIzY4SrI8Wj9dzyFLQ37s08gnZr9POci8AEv62NTUOVavsxcafllkzqDQ==} + '@storybook/addon-outline@8.5.3': + resolution: {integrity: sha512-e1MkGN6XVdeRh2oUKGdqEDyAo2TD/47ashAAxw8DEiLRWgBMbQ+KBVH4EOG+dn5395jxh7YgRLJn/miqNnfN5g==} + peerDependencies: + storybook: ^8.5.3 + '@storybook/addon-toolbars@7.6.20': resolution: {integrity: sha512-5Btg4i8ffWTDHsU72cqxC8nIv9N3E3ObJAc6k0llrmPBG/ybh3jxmRfs8fNm44LlEXaZ5qrK/petsXX3UbpIFg==} + '@storybook/addon-toolbars@8.5.3': + resolution: {integrity: sha512-AWr9Per9WDrbFtNlbVlj6CiEwKOvOyoBt3bCuMHuRfTdqKwkwInEtyUi4//T8U+c1qs7KJBpsWV2vhIuc5sODg==} + peerDependencies: + storybook: ^8.5.3 + '@storybook/addon-viewport@7.6.20': resolution: {integrity: sha512-i8mIw8BjLWAVHEQsOTE6UPuEGQvJDpsu1XZnOCkpfTfPMz73m+3td/PmLG7mMT2wPnLu9IZncKLCKTAZRbt/YQ==} + '@storybook/addon-viewport@8.5.3': + resolution: {integrity: sha512-OkLJ2B8+PiOEAd2HtRG6XewVjtw6AkBMgoSbfKCMr6TWSbuKrOeiwIMqqieAAPVNfsOQ8hTK6JGhr/KPRCKgRA==} + peerDependencies: + storybook: ^8.5.3 + '@storybook/addons@7.6.17': resolution: {integrity: sha512-Ok18Y698Ccyg++MoUNJNHY0cXUvo8ETFIRLJk1g9ElJ70j6kPgNnzW2pAtZkBNmswHtofZ7pT156cj96k/LgfA==} @@ -2284,6 +2501,18 @@ packages: react: ^16.8.0 || ^17.0.0 || ^18.0.0 react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 + '@storybook/blocks@8.5.3': + resolution: {integrity: sha512-a/PpHFmeBtVB9Q/6cNAnqfeCqMowsrI8nGka0Nl7BB3x1eJnS3I1Qo3Skht0LBEsmXOgXk4dwWxpeQL3qHMRkw==} + peerDependencies: + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta + react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta + storybook: ^8.5.3 + peerDependenciesMeta: + react: + optional: true + react-dom: + optional: true + '@storybook/builder-manager@7.6.20': resolution: {integrity: sha512-e2GzpjLaw6CM/XSmc4qJRzBF8GOoOyotyu3JrSPTYOt4RD8kjUsK4QlismQM1DQRu8i39aIexxmRbiJyD74xzQ==} @@ -2302,6 +2531,12 @@ packages: vite-plugin-glimmerx: optional: true + '@storybook/builder-vite@8.5.3': + resolution: {integrity: sha512-MxriwzZSVidaXj3kpH/jCOJZUdF7ofcvxmvrMrNehH9UvXIGM6b73CBC5ucnptbnQ7qxYKdAZiMhQbPHZ9cqOQ==} + peerDependencies: + storybook: ^8.5.3 + vite: '>=4.5.2' + '@storybook/channels@7.6.17': resolution: {integrity: sha512-GFG40pzaSxk1hUr/J/TMqW5AFDDPUSu+HkeE/oqSWJbOodBOLJzHN6CReJS6y1DjYSZLNFt1jftPWZZInG/XUA==} @@ -2330,6 +2565,11 @@ packages: react: ^16.8.0 || ^17.0.0 || ^18.0.0 react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 + '@storybook/components@8.5.3': + resolution: {integrity: sha512-iC9VbpM8Equ8wXI2syBzov+8wys4sGYW7Xfz67LdSVbCMhsH9FRtvgbDppJQC/ZDCofg4sTAHhWpDV/KAQ385A==} + peerDependencies: + storybook: ^8.2.0 || ^8.3.0-0 || ^8.4.0-0 || ^8.5.0-0 || ^8.6.0-0 + '@storybook/core-client@7.6.20': resolution: {integrity: sha512-upQuQQinLmlOPKcT8yqXNtwIucZ4E4qegYZXH5HXRWoLAL6GQtW7sUVSIuFogdki8OXRncr/dz8OA+5yQyYS4w==} @@ -2345,9 +2585,22 @@ packages: '@storybook/core-server@7.6.20': resolution: {integrity: sha512-qC5BdbqqwMLTdCwMKZ1Hbc3+3AaxHYWLiJaXL9e8s8nJw89xV8c8l30QpbJOGvcDmsgY6UTtXYaJ96OsTr7MrA==} + '@storybook/core@8.5.3': + resolution: {integrity: sha512-ZLlr2pltbj/hmC54lggJTnh09FCAJR62lIdiXNwa+V+/eJz0CfD8tfGmZGKPSmaQeZBpMwAOeRM97k2oLPF+0w==} + peerDependencies: + prettier: ^2 || ^3 + peerDependenciesMeta: + prettier: + optional: true + '@storybook/csf-plugin@7.6.20': resolution: {integrity: sha512-dzBzq0dN+8WLDp6NxYS4G7BCe8+vDeDRBRjHmM0xb0uJ6xgQViL8SDplYVSGnk3bXE/1WmtvyRzQyTffBnaj9Q==} + '@storybook/csf-plugin@8.5.3': + resolution: {integrity: sha512-u5oyXTFg3KIy4h9qoNyiCG2mJF3OpkLO/AcM4lMAwQVnBvz8pwITvr4jDZByVjGmcIbgKJQnWX+BwdK2NI4yAw==} + peerDependencies: + storybook: ^8.5.3 + '@storybook/csf-tools@7.6.20': resolution: {integrity: sha512-rwcwzCsAYh/m/WYcxBiEtLpIW5OH1ingxNdF/rK9mtGWhJxXRDV8acPkFrF8rtFWIVKoOCXu5USJYmc3f2gdYQ==} @@ -2363,12 +2616,29 @@ packages: '@storybook/global@5.0.0': resolution: {integrity: sha512-FcOqPAXACP0I3oJ/ws6/rrPT9WGhu915Cg8D02a9YxLo0DE9zI+a9A5gRGvmQ09fiWPukqI8ZAEoQEdWUKMQdQ==} + '@storybook/icons@1.3.2': + resolution: {integrity: sha512-t3xcbCKkPvqyef8urBM0j/nP6sKtnlRkVgC+8JTbTAZQjaTmOjes3byEgzs89p4B/K6cJsg9wLW2k3SknLtYJw==} + engines: {node: '>=14.0.0'} + peerDependencies: + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta + react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta + + '@storybook/instrumenter@8.5.3': + resolution: {integrity: sha512-pxaTbGeju8MkwouIiaWX5DMWtpRruxqig8W3nZPOvzoSCCbQY+sLMQoyXxFlpGxLBjcvXivkL7AMVBKps5sFEQ==} + peerDependencies: + storybook: ^8.5.3 + '@storybook/manager-api@7.6.17': resolution: {integrity: sha512-IJIV1Yc6yw1dhCY4tReHCfBnUKDqEBnMyHp3mbXpsaHxnxJZrXO45WjRAZIKlQKhl/Ge1CrnznmHRCmYgqmrWg==} '@storybook/manager-api@7.6.20': resolution: {integrity: sha512-gOB3m8hO3gBs9cBoN57T7jU0wNKDh+hi06gLcyd2awARQlAlywnLnr3s1WH5knih6Aq+OpvGBRVKkGLOkaouCQ==} + '@storybook/manager-api@8.5.3': + resolution: {integrity: sha512-JtfuMgQpKIPU0ARn1jNPce8FmknpM0Ap0mppWl+KGAWWGadJPDaX/nrY/19dT1kRgIhyOnbX6tgJxII4E9dE5w==} + peerDependencies: + storybook: ^8.2.0 || ^8.3.0-0 || ^8.4.0-0 || ^8.5.0-0 || ^8.6.0-0 + '@storybook/manager@7.6.20': resolution: {integrity: sha512-0Cf6WN0t7yEG2DR29tN5j+i7H/TH5EfPppg9h9/KiQSoFHk+6KLoy2p5do94acFU+Ro4+zzxvdCGbcYGKuArpg==} @@ -2392,6 +2662,11 @@ packages: '@storybook/preview-api@7.6.20': resolution: {integrity: sha512-3ic2m9LDZEPwZk02wIhNc3n3rNvbi7VDKn52hDXfAxnL5EYm7yDICAkaWcVaTfblru2zn0EDJt7ROpthscTW5w==} + '@storybook/preview-api@8.5.3': + resolution: {integrity: sha512-dUsuXW+KgDg4tWXOB6dk5j5gwwRUzbPvicHAY9mzbpSVScbWXuE5T/S/9hHlbtfkhFroWQgPx2eB8z3rai+7RQ==} + peerDependencies: + storybook: ^8.2.0 || ^8.3.0-0 || ^8.4.0-0 || ^8.5.0-0 || ^8.6.0-0 + '@storybook/preview@7.6.20': resolution: {integrity: sha512-cxYlZ5uKbCYMHoFpgleZqqGWEnqHrk5m5fT8bYSsDsdQ+X5wPcwI/V+v8dxYAdQcMphZVIlTjo6Dno9WG8qmVA==} @@ -2401,6 +2676,13 @@ packages: react: ^16.8.0 || ^17.0.0 || ^18.0.0 react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 + '@storybook/react-dom-shim@8.5.3': + resolution: {integrity: sha512-kNIGk6mpXW3Wy+uS9pH9b9w/54EPJnH+QXA6MX4EQgmxhMQlGlS/l/YZp+3jsVQW4YgTmqe740qB+ccJAKZxBQ==} + peerDependencies: + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta + react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta + storybook: ^8.5.3 + '@storybook/react-vite@7.6.20': resolution: {integrity: sha512-uKuBFyGPZxpfR8vpDU/2OE9v7iTaxwL7ldd7k1swYd1rTSAPacTnEHSMl1R5AjUhkdI7gRmGN9q7qiVfK2XJCA==} engines: {node: '>=16'} @@ -2409,6 +2691,19 @@ packages: react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 vite: '>=4.5.2' + '@storybook/react-vite@8.5.3': + resolution: {integrity: sha512-F30u2Xf+X774wrfQzWgg7vRVJmmJFbBVGdULsAGonkdy1FUeYo7puPiD2Qg6hBYNDyIyxDXVOukkOvTlG7IBRg==} + engines: {node: '>=18.0.0'} + peerDependencies: + '@storybook/test': 8.5.3 + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta + react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta + storybook: ^8.5.3 + vite: '>=4.5.2' + peerDependenciesMeta: + '@storybook/test': + optional: true + '@storybook/react@7.6.20': resolution: {integrity: sha512-i5tKNgUbTNwlqBWGwPveDhh9ktlS0wGtd97A1ZgKZc3vckLizunlAFc7PRC1O/CMq5PTyxbuUb4RvRD2jWKwDA==} engines: {node: '>=16.0.0'} @@ -2420,6 +2715,21 @@ packages: typescript: optional: true + '@storybook/react@8.5.3': + resolution: {integrity: sha512-QIdBSjsnwV/J919i4Fi7DlwxDKHU815t0c4B/w2KTMtKKBkk+Bge+vgVi0/lNqD3eF4w3yjVWGbkzUQZ63yiPg==} + engines: {node: '>=18.0.0'} + peerDependencies: + '@storybook/test': 8.5.3 + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta + react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta + storybook: ^8.5.3 + typescript: '>= 4.2.x' + peerDependenciesMeta: + '@storybook/test': + optional: true + typescript: + optional: true + '@storybook/router@7.6.17': resolution: {integrity: sha512-GnyC0j6Wi5hT4qRhSyT8NPtJfGmf82uZw97LQRWeyYu5gWEshUdM7aj40XlNiScd5cZDp0owO1idduVF2k2l2A==} @@ -2429,6 +2739,11 @@ packages: '@storybook/telemetry@7.6.20': resolution: {integrity: sha512-dmAOCWmOscYN6aMbhCMmszQjoycg7tUPRVy2kTaWg6qX10wtMrvEtBV29W4eMvqdsoRj5kcvoNbzRdYcWBUOHQ==} + '@storybook/test@8.5.3': + resolution: {integrity: sha512-2smoDbtU6Qh4yk0uD18qGfW6ll7lZBzKlF58Ha1CgWR4o+jpeeTQcfDLH9gG6sNrpojF7AVzMh/aN9BDHD+Chg==} + peerDependencies: + storybook: ^8.5.3 + '@storybook/testing-library@0.2.2': resolution: {integrity: sha512-L8sXFJUHmrlyU2BsWWZGuAjv39Jl1uAqUHdxmN42JY15M4+XCMjGlArdCCjDe1wpTSW6USYISA9axjZojgtvnw==} deprecated: In Storybook 8, this package functionality has been integrated to a new package called @storybook/test, which uses Vitest APIs for an improved experience. When upgrading to Storybook 8 with 'npx storybook@latest upgrade', you will get prompted and will get an automigration for the new package. Please migrate when you can. @@ -2445,6 +2760,11 @@ packages: react: ^16.8.0 || ^17.0.0 || ^18.0.0 react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 + '@storybook/theming@8.5.3': + resolution: {integrity: sha512-Jvzw+gT1HNarkJo21WZBq5pU89qDN8u/pD3woSh/1c2h5RS6UylWjQHotPFpcBIQiUSrDFtvCU9xugJm4MD0+w==} + peerDependencies: + storybook: ^8.2.0 || ^8.3.0-0 || ^8.4.0-0 || ^8.5.0-0 || ^8.6.0-0 + '@storybook/types@7.6.17': resolution: {integrity: sha512-GRY0xEJQ0PrL7DY2qCNUdIfUOE0Gsue6N+GBJw9ku1IUDFLJRDOF+4Dx2BvYcVCPI5XPqdWKlEyZdMdKjiQN7Q==} @@ -2481,6 +2801,10 @@ packages: resolution: {integrity: sha512-FlS4ZWlp97iiNWig0Muq8p+3rVDjRiYE+YKGbAqXOu9nwJFFOdL00kFpz42M+4huzYi86vAK1sOOfyOG45muIQ==} engines: {node: '>=14'} + '@testing-library/jest-dom@6.5.0': + resolution: {integrity: sha512-xGGHpBXYSHUUr6XsKBfs85TWlYKpTc37cSBBVrXcib2MkHLboWlkClhWF37JKlDb9KEq3dHs+f2xR7XJEWGBxA==} + engines: {node: '>=14', npm: '>=6', yarn: '>=1'} + '@testing-library/react@16.2.0': resolution: {integrity: sha512-2cSskAvA1QNtKc8Y9VJQRv0tm3hLVgxRGDB+KYhIaPQJ1I+RHbhIXcM+zClKXzMes/wshsMVzf4B9vS4IZpqDQ==} engines: {node: '>=18'} @@ -2624,6 +2948,9 @@ packages: '@types/mdast@3.0.15': resolution: {integrity: sha512-LnwD+mUEfxWMa1QpDraczIn6k0Ee3SMicuYSSzS6ZYl2gKS09EClnJYGd8Du6rfc5r/GZEk5o1mRb8TaTj03sQ==} + '@types/mdast@4.0.4': + resolution: {integrity: sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA==} + '@types/mdx@2.0.13': resolution: {integrity: sha512-+OWZQfAYyio6YkJb3HLxDrvnx6SWWDbC0zVPfBRzUk0/nqoDyf6dNxQi3eArPe8rJ473nobTMQ/8Zk+LxJ+Yuw==} @@ -2672,6 +2999,11 @@ packages: '@types/range-parser@1.2.7': resolution: {integrity: sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==} + '@types/react-dom@19.0.3': + resolution: {integrity: sha512-0Knk+HJiMP/qOZgMyNFamlIjw9OFCsyC2ZbigmEEyXXixgre6IQpm/4V+r3qH4GC1JPvRJKInw+on2rV6YZLeA==} + peerDependencies: + '@types/react': ^19.0.0 + '@types/react-test-renderer@19.0.0': resolution: {integrity: sha512-qDVnNybqFm2eZKJ4jD34EvRd6VHD67KjgnWaEMM0Id9L22EpWe3nOSVKHWL1XWRCxUWe3lhXwlEeCKD1BlJCQA==} @@ -2705,6 +3037,9 @@ packages: '@types/unist@2.0.11': resolution: {integrity: sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA==} + '@types/unist@3.0.3': + resolution: {integrity: sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==} + '@types/uuid@9.0.8': resolution: {integrity: sha512-jg+97EGIcY9AGHJJRaaPVgetKDsrTgbRjQ5Msgjh/DQKEFl0DtyRr/VCOyD1T2R1MNeWPK/u7JoGhlDZnKBAfA==} @@ -2717,6 +3052,142 @@ packages: '@types/yargs@17.0.33': resolution: {integrity: sha512-WpxBCKWPLr4xSsHgz511rFJAM+wS28w2zEO1QDNY5zM/S8ok70NNfztH0xwhqKyaK0OHCbN98LDAZuy1ctxDkA==} + '@typescript-eslint/eslint-plugin@7.18.0': + resolution: {integrity: sha512-94EQTWZ40mzBc42ATNIBimBEDltSJ9RQHCC8vc/PDbxi4k8dVwUAv4o98dk50M1zB+JGFxp43FP7f8+FP8R6Sw==} + engines: {node: ^18.18.0 || >=20.0.0} + peerDependencies: + '@typescript-eslint/parser': ^7.0.0 + eslint: ^8.56.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + + '@typescript-eslint/eslint-plugin@8.23.0': + resolution: {integrity: sha512-vBz65tJgRrA1Q5gWlRfvoH+w943dq9K1p1yDBY2pc+a1nbBLZp7fB9+Hk8DaALUbzjqlMfgaqlVPT1REJdkt/w==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + '@typescript-eslint/parser': ^8.0.0 || ^8.0.0-alpha.0 + eslint: ^8.57.0 || ^9.0.0 + typescript: '>=4.8.4 <5.8.0' + + '@typescript-eslint/parser@6.21.0': + resolution: {integrity: sha512-tbsV1jPne5CkFQCgPBcDOt30ItF7aJoZL997JSF7MhGQqOeT3svWRYxiqlfA5RUdlHN6Fi+EI9bxqbdyAUZjYQ==} + engines: {node: ^16.0.0 || >=18.0.0} + peerDependencies: + eslint: ^7.0.0 || ^8.0.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + + '@typescript-eslint/parser@7.18.0': + resolution: {integrity: sha512-4Z+L8I2OqhZV8qA132M4wNL30ypZGYOQVBfMgxDH/K5UX0PNqTu1c6za9ST5r9+tavvHiTWmBnKzpCJ/GlVFtg==} + engines: {node: ^18.18.0 || >=20.0.0} + peerDependencies: + eslint: ^8.56.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + + '@typescript-eslint/parser@8.23.0': + resolution: {integrity: sha512-h2lUByouOXFAlMec2mILeELUbME5SZRN/7R9Cw2RD2lRQQY08MWMM+PmVVKKJNK1aIwqTo9t/0CvOxwPbRIE2Q==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + eslint: ^8.57.0 || ^9.0.0 + typescript: '>=4.8.4 <5.8.0' + + '@typescript-eslint/scope-manager@6.21.0': + resolution: {integrity: sha512-OwLUIWZJry80O99zvqXVEioyniJMa+d2GrqpUTqi5/v5D5rOrppJVBPa0yKCblcigC0/aYAzxxqQ1B+DS2RYsg==} + engines: {node: ^16.0.0 || >=18.0.0} + + '@typescript-eslint/scope-manager@7.18.0': + resolution: {integrity: sha512-jjhdIE/FPF2B7Z1uzc6i3oWKbGcHb87Qw7AWj6jmEqNOfDFbJWtjt/XfwCpvNkpGWlcJaog5vTR+VV8+w9JflA==} + engines: {node: ^18.18.0 || >=20.0.0} + + '@typescript-eslint/scope-manager@8.23.0': + resolution: {integrity: sha512-OGqo7+dXHqI7Hfm+WqkZjKjsiRtFUQHPdGMXzk5mYXhJUedO7e/Y7i8AK3MyLMgZR93TX4bIzYrfyVjLC+0VSw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@typescript-eslint/type-utils@7.18.0': + resolution: {integrity: sha512-XL0FJXuCLaDuX2sYqZUUSOJ2sG5/i1AAze+axqmLnSkNEVMVYLF+cbwlB2w8D1tinFuSikHmFta+P+HOofrLeA==} + engines: {node: ^18.18.0 || >=20.0.0} + peerDependencies: + eslint: ^8.56.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + + '@typescript-eslint/type-utils@8.23.0': + resolution: {integrity: sha512-iIuLdYpQWZKbiH+RkCGc6iu+VwscP5rCtQ1lyQ7TYuKLrcZoeJVpcLiG8DliXVkUxirW/PWlmS+d6yD51L9jvA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + eslint: ^8.57.0 || ^9.0.0 + typescript: '>=4.8.4 <5.8.0' + + '@typescript-eslint/types@6.21.0': + resolution: {integrity: sha512-1kFmZ1rOm5epu9NZEZm1kckCDGj5UJEf7P1kliH4LKu/RkwpsfqqGmY2OOcUs18lSlQBKLDYBOGxRVtrMN5lpg==} + engines: {node: ^16.0.0 || >=18.0.0} + + '@typescript-eslint/types@7.18.0': + resolution: {integrity: sha512-iZqi+Ds1y4EDYUtlOOC+aUmxnE9xS/yCigkjA7XpTKV6nCBd3Hp/PRGGmdwnfkV2ThMyYldP1wRpm/id99spTQ==} + engines: {node: ^18.18.0 || >=20.0.0} + + '@typescript-eslint/types@8.23.0': + resolution: {integrity: sha512-1sK4ILJbCmZOTt9k4vkoulT6/y5CHJ1qUYxqpF1K/DBAd8+ZUL4LlSCxOssuH5m4rUaaN0uS0HlVPvd45zjduQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@typescript-eslint/typescript-estree@6.21.0': + resolution: {integrity: sha512-6npJTkZcO+y2/kr+z0hc4HwNfrrP4kNYh57ek7yCNlrBjWQ1Y0OS7jiZTkgumrvkX5HkEKXFZkkdFNkaW2wmUQ==} + engines: {node: ^16.0.0 || >=18.0.0} + peerDependencies: + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + + '@typescript-eslint/typescript-estree@7.18.0': + resolution: {integrity: sha512-aP1v/BSPnnyhMHts8cf1qQ6Q1IFwwRvAQGRvBFkWlo3/lH29OXA3Pts+c10nxRxIBrDnoMqzhgdwVe5f2D6OzA==} + engines: {node: ^18.18.0 || >=20.0.0} + peerDependencies: + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + + '@typescript-eslint/typescript-estree@8.23.0': + resolution: {integrity: sha512-LcqzfipsB8RTvH8FX24W4UUFk1bl+0yTOf9ZA08XngFwMg4Kj8A+9hwz8Cr/ZS4KwHrmo9PJiLZkOt49vPnuvQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + typescript: '>=4.8.4 <5.8.0' + + '@typescript-eslint/utils@7.18.0': + resolution: {integrity: sha512-kK0/rNa2j74XuHVcoCZxdFBMF+aq/vH83CXAOHieC+2Gis4mF8jJXT5eAfyD3K0sAxtPuwxaIOIOvhwzVDt/kw==} + engines: {node: ^18.18.0 || >=20.0.0} + peerDependencies: + eslint: ^8.56.0 + + '@typescript-eslint/utils@8.23.0': + resolution: {integrity: sha512-uB/+PSo6Exu02b5ZEiVtmY6RVYO7YU5xqgzTIVZwTHvvK3HsL8tZZHFaTLFtRG3CsV4A5mhOv+NZx5BlhXPyIA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + eslint: ^8.57.0 || ^9.0.0 + typescript: '>=4.8.4 <5.8.0' + + '@typescript-eslint/visitor-keys@6.21.0': + resolution: {integrity: sha512-JJtkDduxLi9bivAB+cYOVMtbkqdPOhZ+ZI5LC47MIRrDV4Yn2o+ZnW10Nkmr28xRpSpdJ6Sm42Hjf2+REYXm0A==} + engines: {node: ^16.0.0 || >=18.0.0} + + '@typescript-eslint/visitor-keys@7.18.0': + resolution: {integrity: sha512-cDF0/Gf81QpY3xYyJKDV14Zwdmid5+uuENhjH2EqFaF0ni+yAyq/LzMaIJdhNJXZI7uLzwIlA+V7oWoyn6Curg==} + engines: {node: ^18.18.0 || >=20.0.0} + + '@typescript-eslint/visitor-keys@8.23.0': + resolution: {integrity: sha512-oWWhcWDLwDfu++BGTZcmXWqpwtkwb5o7fxUIGksMQQDSdPW9prsSnfIOZMlsj4vBOSrcnjIUZMiIjODgGosFhQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@vitejs/plugin-react@3.1.0': resolution: {integrity: sha512-AfgcRL8ZBhAlc3BFdigClmTUMISmmzHn7sB2h9U1odvc5U/MjWXsAaz18b/WoppUTDBzxOJwo2VdClfUcItu9g==} engines: {node: ^14.18.0 || >=16.0.0} @@ -2738,8 +3209,11 @@ packages: '@vitest/browser': optional: true - '@vitest/expect@3.0.8': - resolution: {integrity: sha512-Xu6TTIavTvSSS6LZaA3EebWFr6tsoXPetOWNMOlc7LO88QVVBwq2oQWBoDiLCN6YTvNYsGSjqOO8CAdjom5DCQ==} + '@vitest/expect@2.0.5': + resolution: {integrity: sha512-yHZtwuP7JZivj65Gxoi8upUN2OzHTi3zVfjwdpu2WrvCZPLwsJ2Ey5ILIPccoW23dd/zQBlJ4/dhi7DWNyXCpA==} + + '@vitest/expect@3.0.4': + resolution: {integrity: sha512-Nm5kJmYw6P2BxhJPkO3eKKhGYKRsnqJqf+r0yOGRKpEP+bSCBDsjXgiu1/5QFrnPMEgzfC38ZEjvCFgaNBC0Eg==} '@vitest/mocker@3.0.8': resolution: {integrity: sha512-n3LjS7fcW1BCoF+zWZxG7/5XvuYH+lsFg+BDwwAz0arIwHQJFUEsKBQ0BLU49fCxuM/2HSeBPHQD8WjgrxMfow==} @@ -2752,8 +3226,14 @@ packages: vite: optional: true - '@vitest/pretty-format@3.0.8': - resolution: {integrity: sha512-BNqwbEyitFhzYMYHUVbIvepOyeQOSFA/NeJMIP9enMntkkxLgOcgABH6fjyXG85ipTgvero6noreavGIqfJcIg==} + '@vitest/pretty-format@2.0.5': + resolution: {integrity: sha512-h8k+1oWHfwTkyTkb9egzwNMfJAEx4veaPSnMeKbVSjp4euqGSbQlm5+6VHwTr7u4FJslVVsUG5nopCaAYdOmSQ==} + + '@vitest/pretty-format@2.1.9': + resolution: {integrity: sha512-KhRIdGV2U9HOUzxfiHmY8IFHTdqtOhIzCpd8WRdJiE7D/HUcZVD0EgQCVjm+Q9gkUXWgBvMmTtZgIG48wq7sOQ==} + + '@vitest/pretty-format@3.0.4': + resolution: {integrity: sha512-ts0fba+dEhK2aC9PFuZ9LTpULHpY/nd6jhAQ5IMU7Gaj7crPCTdCFfgvXxruRBLFS+MLraicCuFXxISEq8C93g==} '@vitest/runner@3.0.8': resolution: {integrity: sha512-c7UUw6gEcOzI8fih+uaAXS5DwjlBaCJUo7KJ4VvJcjL95+DSR1kova2hFuRt3w41KZEFcOEiq098KkyrjXeM5w==} @@ -2761,11 +3241,20 @@ packages: '@vitest/snapshot@3.0.8': resolution: {integrity: sha512-x8IlMGSEMugakInj44nUrLSILh/zy1f2/BgH0UeHpNyOocG18M9CWVIFBaXPt8TrqVZWmcPjwfG/ht5tnpba8A==} - '@vitest/spy@3.0.8': - resolution: {integrity: sha512-MR+PzJa+22vFKYb934CejhR4BeRpMSoxkvNoDit68GQxRLSf11aT6CTj3XaqUU9rxgWJFnqicN/wxw6yBRkI1Q==} + '@vitest/spy@2.0.5': + resolution: {integrity: sha512-c/jdthAhvJdpfVuaexSrnawxZz6pywlTPe84LUB2m/4t3rl2fTo9NFGBG4oWgaD+FTgDDV8hJ/nibT7IfH3JfA==} - '@vitest/utils@3.0.8': - resolution: {integrity: sha512-nkBC3aEhfX2PdtQI/QwAWp8qZWwzASsU4Npbcd5RdMPBSSLCpkZp52P3xku3s3uA0HIEhGvEcF8rNkBsz9dQ4Q==} + '@vitest/spy@3.0.4': + resolution: {integrity: sha512-sXIMF0oauYyUy2hN49VFTYodzEAu744MmGcPR3ZBsPM20G+1/cSW/n1U+3Yu/zHxX2bIDe1oJASOkml+osTU6Q==} + + '@vitest/utils@2.0.5': + resolution: {integrity: sha512-d8HKbqIcya+GR67mkZbrzhS5kKhtp8dQLcmRZLGTscGVg7yImT82cIrhtn2L8+VujWcy6KZweApgNmPsTAO/UQ==} + + '@vitest/utils@2.1.9': + resolution: {integrity: sha512-v0psaMSkNJ3A2NMrUEHFRzJtDPFn+/VWZ5WxImB21T9fjucJRmS7xCS3ppEnARb9y11OAzaD+P2Ps+b+BGX5iQ==} + + '@vitest/utils@3.0.4': + resolution: {integrity: sha512-8BqC1ksYsHtbWH+DfpOAKrFw3jl3Uf9J7yeFh85Pz52IWuh1hBBtyfEbRNNZNjl8H8A5yMLH9/t+k7HIKzQcZQ==} '@webassemblyjs/ast@1.14.1': resolution: {integrity: sha512-nuBEDgQfm1ccRp/8bCQrx1frohyufl4JlbMMZ4P1wpeOfDhF6FQkxZJ1b/e+PLwr6X1Nhw6OLme5usuBWYBvuQ==} @@ -3191,6 +3680,10 @@ packages: resolution: {integrity: sha512-mCuXncKXk5iCLhfhwTc0izo0gtEmpz5CtG2y8GiOINBlMVS6v8TMRc5TaLWKS6692m9+dVVfzgeVxR5UxWHTYw==} engines: {node: '>=12'} + chalk@3.0.0: + resolution: {integrity: sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==} + engines: {node: '>=8'} + chalk@4.1.0: resolution: {integrity: sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==} engines: {node: '>=10'} @@ -3224,6 +3717,18 @@ packages: resolution: {integrity: sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==} engines: {node: '>=10'} + chromatic@11.25.2: + resolution: {integrity: sha512-/9eQWn6BU1iFsop86t8Au21IksTRxwXAl7if8YHD05L2AbuMjClLWZo5cZojqrJHGKDhTqfrC2X2xE4uSm0iKw==} + hasBin: true + peerDependencies: + '@chromatic-com/cypress': ^0.*.* || ^1.0.0 + '@chromatic-com/playwright': ^0.*.* || ^1.0.0 + peerDependenciesMeta: + '@chromatic-com/cypress': + optional: true + '@chromatic-com/playwright': + optional: true + chrome-trace-event@1.0.4: resolution: {integrity: sha512-rNjApaLzuwaOTjCiT8lSDdGN1APCiqkChLMJxJPWLunPAt5fy8xgU9/jNOchV84wfIxrA0lRQB7oCT8jrn/wrQ==} engines: {node: '>=6.0'} @@ -3447,6 +3952,9 @@ packages: resolution: {integrity: sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==} engines: {node: '>=8'} + css.escape@1.5.1: + resolution: {integrity: sha512-YUifsXXuknHlUsmlgyY0PKzgPOr7/FjCePfHNt0jxm83wHZi44VDMQ7/fGNkjY3/jV1MC+1CmZbaHzugyeRtpg==} + cssesc@3.0.0: resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==} engines: {node: '>=4'} @@ -3582,6 +4090,9 @@ packages: engines: {node: '>= 4.0.0'} hasBin: true + devlop@1.1.0: + resolution: {integrity: sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA==} + diff-sequences@29.6.3: resolution: {integrity: sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -3601,6 +4112,9 @@ packages: dom-accessibility-api@0.5.16: resolution: {integrity: sha512-X7BJ2yElsnOJ30pZF4uIIDfBEVgF4XEBxL9Bxhy6dnrm5hkzqmsWHGTiHqRiITNhMyFLyAiWndIJP7Z1NTteDg==} + dom-accessibility-api@0.6.3: + resolution: {integrity: sha512-7ZgogeTnjuHbo+ct10G9Ffp0mif17idi0IyWNVA/wcwcm7NPOD/WEHVP3n7n3MhXqxoIYm8d6MuZohYWIZ4T3w==} + dot-prop@5.3.0: resolution: {integrity: sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==} engines: {node: '>=8'} @@ -3763,36 +4277,188 @@ packages: engines: {node: '>=6.0'} hasBin: true - eslint-scope@5.1.1: - resolution: {integrity: sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==} - engines: {node: '>=8.0.0'} + eslint-compat-utils@0.5.1: + resolution: {integrity: sha512-3z3vFexKIEnjHE3zCMRo6fn/e44U7T1khUjg+Hp0ZQMCigh28rALD0nPFBcGZuiLC5rLZa2ubQHDRln09JfU2Q==} + engines: {node: '>=12'} + peerDependencies: + eslint: '>=6.0.0' - esprima@4.0.1: - resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==} - engines: {node: '>=4'} - hasBin: true + eslint-config-love@43.1.0: + resolution: {integrity: sha512-r3+7mSaOl0BEGf8LEntPPDbWTDw8o0Dpy9vdts7m+NAuSpmz9C/gL+64lC0Z8nKNE4uwdymPGll4czGQiR+XmQ==} + peerDependencies: + '@typescript-eslint/eslint-plugin': ^6.4.0 + eslint: ^8.0.1 + eslint-plugin-import: ^2.25.2 + eslint-plugin-n: '^15.0.0 || ^16.0.0 ' + eslint-plugin-promise: ^6.0.0 + typescript: '*' - esrecurse@4.3.0: - resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} - engines: {node: '>=4.0'} + eslint-config-prettier@9.1.0: + resolution: {integrity: sha512-NSWl5BFQWEPi1j4TjVNItzYV7dZXZ+wP6I6ZhrBGpChQhZRUaElihE9uRRkcbRnNb76UMKDF3r+WTmNcGPKsqw==} + hasBin: true + peerDependencies: + eslint: '>=7.0.0' - estraverse@4.3.0: - resolution: {integrity: sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==} - engines: {node: '>=4.0'} + eslint-config-standard-jsx@11.0.0: + resolution: {integrity: sha512-+1EV/R0JxEK1L0NGolAr8Iktm3Rgotx3BKwgaX+eAuSX8D952LULKtjgZD3F+e6SvibONnhLwoTi9DPxN5LvvQ==} + peerDependencies: + eslint: ^8.8.0 + eslint-plugin-react: ^7.28.0 - estraverse@5.3.0: - resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} - engines: {node: '>=4.0'} + eslint-config-standard@17.1.0: + resolution: {integrity: sha512-IwHwmaBNtDK4zDHQukFDW5u/aTb8+meQWZvNFWkiGmbWjD6bqyuSSBxxXKkCftCUzc1zwCH2m/baCNDLGmuO5Q==} + engines: {node: '>=12.0.0'} + peerDependencies: + eslint: ^8.0.1 + eslint-plugin-import: ^2.25.2 + eslint-plugin-n: '^15.0.0 || ^16.0.0 ' + eslint-plugin-promise: ^6.0.0 - estree-walker@2.0.2: - resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==} + eslint-import-resolver-node@0.3.9: + resolution: {integrity: sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==} - estree-walker@3.0.3: - resolution: {integrity: sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==} + eslint-module-utils@2.12.0: + resolution: {integrity: sha512-wALZ0HFoytlyh/1+4wuZ9FJCD/leWHQzzrxJ8+rebyReSLk7LApMyd3WJaLVoN+D5+WIdJyDK1c6JnE65V4Zyg==} + engines: {node: '>=4'} + peerDependencies: + '@typescript-eslint/parser': '*' + eslint: '*' + eslint-import-resolver-node: '*' + eslint-import-resolver-typescript: '*' + eslint-import-resolver-webpack: '*' + peerDependenciesMeta: + '@typescript-eslint/parser': + optional: true + eslint: + optional: true + eslint-import-resolver-node: + optional: true + eslint-import-resolver-typescript: + optional: true + eslint-import-resolver-webpack: + optional: true - esutils@2.0.3: - resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} - engines: {node: '>=0.10.0'} + eslint-plugin-es-x@7.8.0: + resolution: {integrity: sha512-7Ds8+wAAoV3T+LAKeu39Y5BzXCrGKrcISfgKEqTS4BDN8SFEDQd0S43jiQ8vIa3wUKD07qitZdfzlenSi8/0qQ==} + engines: {node: ^14.18.0 || >=16.0.0} + peerDependencies: + eslint: '>=8' + + eslint-plugin-import@2.31.0: + resolution: {integrity: sha512-ixmkI62Rbc2/w8Vfxyh1jQRTdRTF52VxwRVHl/ykPAmqG+Nb7/kNn+byLP0LxPgI7zWA16Jt82SybJInmMia3A==} + engines: {node: '>=4'} + peerDependencies: + '@typescript-eslint/parser': '*' + eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 || ^9 + peerDependenciesMeta: + '@typescript-eslint/parser': + optional: true + + eslint-plugin-n@16.6.2: + resolution: {integrity: sha512-6TyDmZ1HXoFQXnhCTUjVFULReoBPOAjpuiKELMkeP40yffI/1ZRO+d9ug/VC6fqISo2WkuIBk3cvuRPALaWlOQ==} + engines: {node: '>=16.0.0'} + peerDependencies: + eslint: '>=7.0.0' + + eslint-plugin-prettier@5.2.1: + resolution: {integrity: sha512-gH3iR3g4JfF+yYPaJYkN7jEl9QbweL/YfkoRlNnuIEHEz1vHVlCmWOS+eGGiRuzHQXdJFCOTxRgvju9b8VUmrw==} + engines: {node: ^14.18.0 || >=16.0.0} + peerDependencies: + '@types/eslint': '>=8.0.0' + eslint: '>=8.0.0' + eslint-config-prettier: '*' + prettier: '>=3.0.0' + peerDependenciesMeta: + '@types/eslint': + optional: true + eslint-config-prettier: + optional: true + + eslint-plugin-promise@6.6.0: + resolution: {integrity: sha512-57Zzfw8G6+Gq7axm2Pdo3gW/Rx3h9Yywgn61uE/3elTCOePEHVrn2i5CdfBwA1BLK0Q0WqctICIUSqXZW/VprQ==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: ^7.0.0 || ^8.0.0 || ^9.0.0 + + eslint-plugin-react-hooks@5.1.0: + resolution: {integrity: sha512-mpJRtPgHN2tNAvZ35AMfqeB3Xqeo273QxrHJsbBEPWODRM4r0yB6jfoROqKEYrOn27UtRPpcpHc2UqyBSuUNTw==} + engines: {node: '>=10'} + peerDependencies: + eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 || ^9.0.0 + + eslint-plugin-react-refresh@0.4.18: + resolution: {integrity: sha512-IRGEoFn3OKalm3hjfolEWGqoF/jPqeEYFp+C8B0WMzwGwBMvlRDQd06kghDhF0C61uJ6WfSDhEZE/sAQjduKgw==} + peerDependencies: + eslint: '>=8.40' + + eslint-plugin-react@7.37.2: + resolution: {integrity: sha512-EsTAnj9fLVr/GZleBLFbj/sSuXeWmp1eXIN60ceYnZveqEaUCyW4X+Vh4WTdUhCkW4xutXYqTXCUSyqD4rB75w==} + engines: {node: '>=4'} + peerDependencies: + eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9.7 + + eslint-plugin-storybook@0.11.2: + resolution: {integrity: sha512-0Z4DUklJrC+GHjCRXa7PYfPzWC15DaVnwaOYenpgXiCEijXPZkLKCms+rHhtoRcWccP7Z8DpOOaP1gc3P9oOwg==} + engines: {node: '>= 18'} + peerDependencies: + eslint: '>=8' + + eslint-scope@5.1.1: + resolution: {integrity: sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==} + engines: {node: '>=8.0.0'} + + eslint-scope@8.2.0: + resolution: {integrity: sha512-PHlWUfG6lvPc3yvP5A4PNyBL1W8fkDUccmI21JUu/+GKZBoH/W5u6usENXUrWFRsyoW5ACUjFGgAFQp5gUlb/A==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + eslint-visitor-keys@3.4.3: + resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + + eslint-visitor-keys@4.2.0: + resolution: {integrity: sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + eslint@9.19.0: + resolution: {integrity: sha512-ug92j0LepKlbbEv6hD911THhoRHmbdXt2gX+VDABAW/Ir7D3nqKdv5Pf5vtlyY6HQMTEP2skXY43ueqTCWssEA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + hasBin: true + peerDependencies: + jiti: '*' + peerDependenciesMeta: + jiti: + optional: true + + espree@10.3.0: + resolution: {integrity: sha512-0QYC8b24HWY8zjRnDTL6RiHfDbAWn63qb4LMj1Z4b076A4une81+z03Kg7l7mn/48PUTqoLptSXez8oknU8Clg==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + esprima@4.0.1: + resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==} + engines: {node: '>=4'} + hasBin: true + + esrecurse@4.3.0: + resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} + engines: {node: '>=4.0'} + + estraverse@4.3.0: + resolution: {integrity: sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==} + engines: {node: '>=4.0'} + + estraverse@5.3.0: + resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} + engines: {node: '>=4.0'} + + estree-walker@2.0.2: + resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==} + + estree-walker@3.0.3: + resolution: {integrity: sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==} + + esutils@2.0.3: + resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} + engines: {node: '>=0.10.0'} etag@1.8.1: resolution: {integrity: sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==} @@ -3878,6 +4544,10 @@ packages: filelist@1.0.4: resolution: {integrity: sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q==} + filesize@10.1.6: + resolution: {integrity: sha512-sJslQKU2uM33qH5nqewAwVB2QgR6w1aMNsYUp3aN5rMRyXEwJGmZvaWzeJFNTOXWlHQyBFCWrdj3fV/fsTOX8w==} + engines: {node: '>= 10.4.0'} + fill-range@7.1.1: resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==} engines: {node: '>=8'} @@ -4117,6 +4787,22 @@ packages: resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==} engines: {node: '>=4'} + globals@13.24.0: + resolution: {integrity: sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==} + engines: {node: '>=8'} + + globals@14.0.0: + resolution: {integrity: sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==} + engines: {node: '>=18'} + + globals@15.14.0: + resolution: {integrity: sha512-OkToC372DtlQeje9/zHIo5CT8lRP/FUgEOKBEhU4e0abL7J7CD24fD9ohiLN5hagG/kWCYj4K5oaxxtj2Z0Dig==} + engines: {node: '>=18'} + + globalthis@1.0.4: + resolution: {integrity: sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==} + engines: {node: '>= 0.4'} + globby@11.1.0: resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} engines: {node: '>=10'} @@ -4603,6 +5289,10 @@ packages: '@babel/preset-env': optional: true + jsdoc-type-pratt-parser@4.1.0: + resolution: {integrity: sha512-Hicd6JK5Njt2QB6XYFS7ok9e37O8AYk3jTcppG4YVQnYjOemymvTcmc7OWsmq/Qqj5TdRFO5/x/tIPmBeRtGHg==} + engines: {node: '>=12.0.0'} + jsdom@26.0.0: resolution: {integrity: sha512-BZYDGVAIriBWTpIxYzrXjv3E/4u8+/pSG5bQdIYCbNCGOvsPkDQfTVLAIXAf9ETdCpduCVTkDe2NNZ8NIwUVzw==} engines: {node: '>=18'} @@ -4848,39 +5538,72 @@ packages: mdast-util-find-and-replace@2.2.2: resolution: {integrity: sha512-MTtdFRz/eMDHXzeK6W3dO7mXUlF82Gom4y0oOgvHhh/HXZAGvIQDUvQ0SuUx+j2tv44b8xTHOm8K/9OoRFnXKw==} + mdast-util-find-and-replace@3.0.2: + resolution: {integrity: sha512-Tmd1Vg/m3Xz43afeNxDIhWRtFZgM2VLyaf4vSTYwudTyeuTneoL3qtWMA5jeLyz/O1vDJmmV4QuScFCA2tBPwg==} + mdast-util-from-markdown@1.3.1: resolution: {integrity: sha512-4xTO/M8c82qBcnQc1tgpNtubGUW/Y1tBQ1B0i5CtSoelOLKFYlElIr3bvgREYYO5iRqbMY1YuqZng0GVOI8Qww==} + mdast-util-from-markdown@2.0.2: + resolution: {integrity: sha512-uZhTV/8NBuw0WHkPTrCqDOl0zVe1BIng5ZtHoDk49ME1qqcjYmmLmOf0gELgcRMxN4w2iuIeVso5/6QymSrgmA==} + mdast-util-gfm-autolink-literal@1.0.3: resolution: {integrity: sha512-My8KJ57FYEy2W2LyNom4n3E7hKTuQk/0SES0u16tjA9Z3oFkF4RrC/hPAPgjlSpezsOvI8ObcXcElo92wn5IGA==} + mdast-util-gfm-autolink-literal@2.0.1: + resolution: {integrity: sha512-5HVP2MKaP6L+G6YaxPNjuL0BPrq9orG3TsrZ9YXbA3vDw/ACI4MEsnoDpn6ZNm7GnZgtAcONJyPhOP8tNJQavQ==} + mdast-util-gfm-footnote@1.0.2: resolution: {integrity: sha512-56D19KOGbE00uKVj3sgIykpwKL179QsVFwx/DCW0u/0+URsryacI4MAdNJl0dh+u2PSsD9FtxPFbHCzJ78qJFQ==} + mdast-util-gfm-footnote@2.0.0: + resolution: {integrity: sha512-5jOT2boTSVkMnQ7LTrd6n/18kqwjmuYqo7JUPe+tRCY6O7dAuTFMtTPauYYrMPpox9hlN0uOx/FL8XvEfG9/mQ==} + mdast-util-gfm-strikethrough@1.0.3: resolution: {integrity: sha512-DAPhYzTYrRcXdMjUtUjKvW9z/FNAMTdU0ORyMcbmkwYNbKocDpdk+PX1L1dQgOID/+vVs1uBQ7ElrBQfZ0cuiQ==} + mdast-util-gfm-strikethrough@2.0.0: + resolution: {integrity: sha512-mKKb915TF+OC5ptj5bJ7WFRPdYtuHv0yTRxK2tJvi+BDqbkiG7h7u/9SI89nRAYcmap2xHQL9D+QG/6wSrTtXg==} + mdast-util-gfm-table@1.0.7: resolution: {integrity: sha512-jjcpmNnQvrmN5Vx7y7lEc2iIOEytYv7rTvu+MeyAsSHTASGCCRA79Igg2uKssgOs1i1po8s3plW0sTu1wkkLGg==} + mdast-util-gfm-table@2.0.0: + resolution: {integrity: sha512-78UEvebzz/rJIxLvE7ZtDd/vIQ0RHv+3Mh5DR96p7cS7HsBhYIICDBCu8csTNWNO6tBWfqXPWekRuj2FNOGOZg==} + mdast-util-gfm-task-list-item@1.0.2: resolution: {integrity: sha512-PFTA1gzfp1B1UaiJVyhJZA1rm0+Tzn690frc/L8vNX1Jop4STZgOE6bxUhnzdVSB+vm2GU1tIsuQcA9bxTQpMQ==} + mdast-util-gfm-task-list-item@2.0.0: + resolution: {integrity: sha512-IrtvNvjxC1o06taBAVJznEnkiHxLFTzgonUdy8hzFVeDun0uTjxxrRGVaNFqkU1wJR3RBPEfsxmU6jDWPofrTQ==} + mdast-util-gfm@2.0.2: resolution: {integrity: sha512-qvZ608nBppZ4icQlhQQIAdc6S3Ffj9RGmzwUKUWuEICFnd1LVkN3EktF7ZHAgfcEdvZB5owU9tQgt99e2TlLjg==} + mdast-util-gfm@3.0.0: + resolution: {integrity: sha512-dgQEX5Amaq+DuUqf26jJqSK9qgixgd6rYDHAv4aTBuA92cTknZlKpPfa86Z/s8Dj8xsAQpFfBmPUHWJBWqS4Bw==} + mdast-util-phrasing@3.0.1: resolution: {integrity: sha512-WmI1gTXUBJo4/ZmSk79Wcb2HcjPJBzM1nlI/OUWA8yk2X9ik3ffNbBGsU+09BFmXaL1IBb9fiuvq6/KMiNycSg==} + mdast-util-phrasing@4.1.0: + resolution: {integrity: sha512-TqICwyvJJpBwvGAMZjj4J2n0X8QWp21b9l0o7eXyVJ25YNWYbJDVIyD1bZXE6WtV6RmKJVYmQAKWa0zWOABz2w==} + mdast-util-to-markdown@1.5.0: resolution: {integrity: sha512-bbv7TPv/WC49thZPg3jXuqzuvI45IL2EVAr/KxF0BSdHsU0ceFHOmwQn6evxAh1GaoK/6GQ1wp4R4oW2+LFL/A==} + mdast-util-to-markdown@2.1.2: + resolution: {integrity: sha512-xj68wMTvGXVOKonmog6LwyJKrYXZPvlwabaryTjLh9LuvovB/KAH+kvi8Gjj+7rJjsFi23nkUxRQv1KqSroMqA==} + mdast-util-to-string@1.1.0: resolution: {integrity: sha512-jVU0Nr2B9X3MU4tSK7JP1CMkSvOj7X5l/GboG1tKRw52lLF1x2Ju92Ms9tNetCcbfX3hzlM73zYo2NKkWSfF/A==} mdast-util-to-string@3.2.0: resolution: {integrity: sha512-V4Zn/ncyN1QNSqSBxTrMOLpjr+IKdHl2v3KVLoWmDPscP4r9GcCi71gjgvUV1SFSKh92AjAG4peFuBl2/YgCJg==} + mdast-util-to-string@4.0.0: + resolution: {integrity: sha512-0H44vDimn51F0YwvxSJSm0eCDOJTRlmN0R1yBh4HLj9wiV1Dn0QoXGbvFAWj2hSItVTlCmBF1hqKlIyUBVFLPg==} + media-typer@0.3.0: resolution: {integrity: sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==} engines: {node: '>= 0.6'} @@ -4913,87 +5636,171 @@ packages: micromark-core-commonmark@1.1.0: resolution: {integrity: sha512-BgHO1aRbolh2hcrzL2d1La37V0Aoz73ymF8rAcKnohLy93titmv62E0gP8Hrx9PKcKrqCZ1BbLGbP3bEhoXYlw==} + micromark-core-commonmark@2.0.2: + resolution: {integrity: sha512-FKjQKbxd1cibWMM1P9N+H8TwlgGgSkWZMmfuVucLCHaYqeSvJ0hFeHsIa65pA2nYbes0f8LDHPMrd9X7Ujxg9w==} + micromark-extension-gfm-autolink-literal@1.0.5: resolution: {integrity: sha512-z3wJSLrDf8kRDOh2qBtoTRD53vJ+CWIyo7uyZuxf/JAbNJjiHsOpG1y5wxk8drtv3ETAHutCu6N3thkOOgueWg==} + micromark-extension-gfm-autolink-literal@2.1.0: + resolution: {integrity: sha512-oOg7knzhicgQ3t4QCjCWgTmfNhvQbDDnJeVu9v81r7NltNCVmhPy1fJRX27pISafdjL+SVc4d3l48Gb6pbRypw==} + micromark-extension-gfm-footnote@1.1.2: resolution: {integrity: sha512-Yxn7z7SxgyGWRNa4wzf8AhYYWNrwl5q1Z8ii+CSTTIqVkmGZF1CElX2JI8g5yGoM3GAman9/PVCUFUSJ0kB/8Q==} + micromark-extension-gfm-footnote@2.1.0: + resolution: {integrity: sha512-/yPhxI1ntnDNsiHtzLKYnE3vf9JZ6cAisqVDauhp4CEHxlb4uoOTxOCJ+9s51bIB8U1N1FJ1RXOKTIlD5B/gqw==} + micromark-extension-gfm-strikethrough@1.0.7: resolution: {integrity: sha512-sX0FawVE1o3abGk3vRjOH50L5TTLr3b5XMqnP9YDRb34M0v5OoZhG+OHFz1OffZ9dlwgpTBKaT4XW/AsUVnSDw==} + micromark-extension-gfm-strikethrough@2.1.0: + resolution: {integrity: sha512-ADVjpOOkjz1hhkZLlBiYA9cR2Anf8F4HqZUO6e5eDcPQd0Txw5fxLzzxnEkSkfnD0wziSGiv7sYhk/ktvbf1uw==} + micromark-extension-gfm-table@1.0.7: resolution: {integrity: sha512-3ZORTHtcSnMQEKtAOsBQ9/oHp9096pI/UvdPtN7ehKvrmZZ2+bbWhi0ln+I9drmwXMt5boocn6OlwQzNXeVeqw==} + micromark-extension-gfm-table@2.1.1: + resolution: {integrity: sha512-t2OU/dXXioARrC6yWfJ4hqB7rct14e8f7m0cbI5hUmDyyIlwv5vEtooptH8INkbLzOatzKuVbQmAYcbWoyz6Dg==} + micromark-extension-gfm-tagfilter@1.0.2: resolution: {integrity: sha512-5XWB9GbAUSHTn8VPU8/1DBXMuKYT5uOgEjJb8gN3mW0PNW5OPHpSdojoqf+iq1xo7vWzw/P8bAHY0n6ijpXF7g==} + micromark-extension-gfm-tagfilter@2.0.0: + resolution: {integrity: sha512-xHlTOmuCSotIA8TW1mDIM6X2O1SiX5P9IuDtqGonFhEK0qgRI4yeC6vMxEV2dgyr2TiD+2PQ10o+cOhdVAcwfg==} + micromark-extension-gfm-task-list-item@1.0.5: resolution: {integrity: sha512-RMFXl2uQ0pNQy6Lun2YBYT9g9INXtWJULgbt01D/x8/6yJ2qpKyzdZD3pi6UIkzF++Da49xAelVKUeUMqd5eIQ==} + micromark-extension-gfm-task-list-item@2.1.0: + resolution: {integrity: sha512-qIBZhqxqI6fjLDYFTBIa4eivDMnP+OZqsNwmQ3xNLE4Cxwc+zfQEfbs6tzAo2Hjq+bh6q5F+Z8/cksrLFYWQQw==} + micromark-extension-gfm@2.0.3: resolution: {integrity: sha512-vb9OoHqrhCmbRidQv/2+Bc6pkP0FrtlhurxZofvOEy5o8RtuuvTq+RQ1Vw5ZDNrVraQZu3HixESqbG+0iKk/MQ==} + micromark-extension-gfm@3.0.0: + resolution: {integrity: sha512-vsKArQsicm7t0z2GugkCKtZehqUm31oeGBV/KVSorWSy8ZlNAv7ytjFhvaryUiCUJYqs+NoE6AFhpQvBTM6Q4w==} + micromark-factory-destination@1.1.0: resolution: {integrity: sha512-XaNDROBgx9SgSChd69pjiGKbV+nfHGDPVYFs5dOoDd7ZnMAE+Cuu91BCpsY8RT2NP9vo/B8pds2VQNCLiu0zhg==} + micromark-factory-destination@2.0.1: + resolution: {integrity: sha512-Xe6rDdJlkmbFRExpTOmRj9N3MaWmbAgdpSrBQvCFqhezUn4AHqJHbaEnfbVYYiexVSs//tqOdY/DxhjdCiJnIA==} + micromark-factory-label@1.1.0: resolution: {integrity: sha512-OLtyez4vZo/1NjxGhcpDSbHQ+m0IIGnT8BoPamh+7jVlzLJBH98zzuCoUeMxvM6WsNeh8wx8cKvqLiPHEACn0w==} + micromark-factory-label@2.0.1: + resolution: {integrity: sha512-VFMekyQExqIW7xIChcXn4ok29YE3rnuyveW3wZQWWqF4Nv9Wk5rgJ99KzPvHjkmPXF93FXIbBp6YdW3t71/7Vg==} + micromark-factory-space@1.1.0: resolution: {integrity: sha512-cRzEj7c0OL4Mw2v6nwzttyOZe8XY/Z8G0rzmWQZTBi/jjwyw/U4uqKtUORXQrR5bAZZnbTI/feRV/R7hc4jQYQ==} + micromark-factory-space@2.0.1: + resolution: {integrity: sha512-zRkxjtBxxLd2Sc0d+fbnEunsTj46SWXgXciZmHq0kDYGnck/ZSGj9/wULTV95uoeYiK5hRXP2mJ98Uo4cq/LQg==} + micromark-factory-title@1.1.0: resolution: {integrity: sha512-J7n9R3vMmgjDOCY8NPw55jiyaQnH5kBdV2/UXCtZIpnHH3P6nHUKaH7XXEYuWwx/xUJcawa8plLBEjMPU24HzQ==} + micromark-factory-title@2.0.1: + resolution: {integrity: sha512-5bZ+3CjhAd9eChYTHsjy6TGxpOFSKgKKJPJxr293jTbfry2KDoWkhBb6TcPVB4NmzaPhMs1Frm9AZH7OD4Cjzw==} + micromark-factory-whitespace@1.1.0: resolution: {integrity: sha512-v2WlmiymVSp5oMg+1Q0N1Lxmt6pMhIHD457whWM7/GUlEks1hI9xj5w3zbc4uuMKXGisksZk8DzP2UyGbGqNsQ==} + micromark-factory-whitespace@2.0.1: + resolution: {integrity: sha512-Ob0nuZ3PKt/n0hORHyvoD9uZhr+Za8sFoP+OnMcnWK5lngSzALgQYKMr9RJVOWLqQYuyn6ulqGWSXdwf6F80lQ==} + micromark-util-character@1.2.0: resolution: {integrity: sha512-lXraTwcX3yH/vMDaFWCQJP1uIszLVebzUa3ZHdrgxr7KEU/9mL4mVgCpGbyhvNLNlauROiNUq7WN5u7ndbY6xg==} + micromark-util-character@2.1.1: + resolution: {integrity: sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==} + micromark-util-chunked@1.1.0: resolution: {integrity: sha512-Ye01HXpkZPNcV6FiyoW2fGZDUw4Yc7vT0E9Sad83+bEDiCJ1uXu0S3mr8WLpsz3HaG3x2q0HM6CTuPdcZcluFQ==} + micromark-util-chunked@2.0.1: + resolution: {integrity: sha512-QUNFEOPELfmvv+4xiNg2sRYeS/P84pTW0TCgP5zc9FpXetHY0ab7SxKyAQCNCc1eK0459uoLI1y5oO5Vc1dbhA==} + micromark-util-classify-character@1.1.0: resolution: {integrity: sha512-SL0wLxtKSnklKSUplok1WQFoGhUdWYKggKUiqhX+Swala+BtptGCu5iPRc+xvzJ4PXE/hwM3FNXsfEVgoZsWbw==} + micromark-util-classify-character@2.0.1: + resolution: {integrity: sha512-K0kHzM6afW/MbeWYWLjoHQv1sgg2Q9EccHEDzSkxiP/EaagNzCm7T/WMKZ3rjMbvIpvBiZgwR3dKMygtA4mG1Q==} + micromark-util-combine-extensions@1.1.0: resolution: {integrity: sha512-Q20sp4mfNf9yEqDL50WwuWZHUrCO4fEyeDCnMGmG5Pr0Cz15Uo7KBs6jq+dq0EgX4DPwwrh9m0X+zPV1ypFvUA==} + micromark-util-combine-extensions@2.0.1: + resolution: {integrity: sha512-OnAnH8Ujmy59JcyZw8JSbK9cGpdVY44NKgSM7E9Eh7DiLS2E9RNQf0dONaGDzEG9yjEl5hcqeIsj4hfRkLH/Bg==} + micromark-util-decode-numeric-character-reference@1.1.0: resolution: {integrity: sha512-m9V0ExGv0jB1OT21mrWcuf4QhP46pH1KkfWy9ZEezqHKAxkj4mPCy3nIH1rkbdMlChLHX531eOrymlwyZIf2iw==} + micromark-util-decode-numeric-character-reference@2.0.2: + resolution: {integrity: sha512-ccUbYk6CwVdkmCQMyr64dXz42EfHGkPQlBj5p7YVGzq8I7CtjXZJrubAYezf7Rp+bjPseiROqe7G6foFd+lEuw==} + micromark-util-decode-string@1.1.0: resolution: {integrity: sha512-YphLGCK8gM1tG1bd54azwyrQRjCFcmgj2S2GoJDNnh4vYtnL38JS8M4gpxzOPNyHdNEpheyWXCTnnTDY3N+NVQ==} + micromark-util-decode-string@2.0.1: + resolution: {integrity: sha512-nDV/77Fj6eH1ynwscYTOsbK7rR//Uj0bZXBwJZRfaLEJ1iGBR6kIfNmlNqaqJf649EP0F3NWNdeJi03elllNUQ==} + micromark-util-encode@1.1.0: resolution: {integrity: sha512-EuEzTWSTAj9PA5GOAs992GzNh2dGQO52UvAbtSOMvXTxv3Criqb6IOzJUBCmEqrrXSblJIJBbFFv6zPxpreiJw==} + micromark-util-encode@2.0.1: + resolution: {integrity: sha512-c3cVx2y4KqUnwopcO9b/SCdo2O67LwJJ/UyqGfbigahfegL9myoEFoDYZgkT7f36T0bLrM9hZTAaAyH+PCAXjw==} + micromark-util-html-tag-name@1.2.0: resolution: {integrity: sha512-VTQzcuQgFUD7yYztuQFKXT49KghjtETQ+Wv/zUjGSGBioZnkA4P1XXZPT1FHeJA6RwRXSF47yvJ1tsJdoxwO+Q==} + micromark-util-html-tag-name@2.0.1: + resolution: {integrity: sha512-2cNEiYDhCWKI+Gs9T0Tiysk136SnR13hhO8yW6BGNyhOC4qYFnwF1nKfD3HFAIXA5c45RrIG1ub11GiXeYd1xA==} + micromark-util-normalize-identifier@1.1.0: resolution: {integrity: sha512-N+w5vhqrBihhjdpM8+5Xsxy71QWqGn7HYNUvch71iV2PM7+E3uWGox1Qp90loa1ephtCxG2ftRV/Conitc6P2Q==} + micromark-util-normalize-identifier@2.0.1: + resolution: {integrity: sha512-sxPqmo70LyARJs0w2UclACPUUEqltCkJ6PhKdMIDuJ3gSf/Q+/GIe3WKl0Ijb/GyH9lOpUkRAO2wp0GVkLvS9Q==} + micromark-util-resolve-all@1.1.0: resolution: {integrity: sha512-b/G6BTMSg+bX+xVCshPTPyAu2tmA0E4X98NSR7eIbeC6ycCqCeE7wjfDIgzEbkzdEVJXRtOG4FbEm/uGbCRouA==} + micromark-util-resolve-all@2.0.1: + resolution: {integrity: sha512-VdQyxFWFT2/FGJgwQnJYbe1jjQoNTS4RjglmSjTUlpUMa95Htx9NHeYW4rGDJzbjvCsl9eLjMQwGeElsqmzcHg==} + micromark-util-sanitize-uri@1.2.0: resolution: {integrity: sha512-QO4GXv0XZfWey4pYFndLUKEAktKkG5kZTdUNaTAkzbuJxn2tNBOr+QtxR2XpWaMhbImT2dPzyLrPXLlPhph34A==} + micromark-util-sanitize-uri@2.0.1: + resolution: {integrity: sha512-9N9IomZ/YuGGZZmQec1MbgxtlgougxTodVwDzzEouPKo3qFWvymFHWcnDi2vzV1ff6kas9ucW+o3yzJK9YB1AQ==} + micromark-util-subtokenize@1.1.0: resolution: {integrity: sha512-kUQHyzRoxvZO2PuLzMt2P/dwVsTiivCK8icYTeR+3WgbuPqfHgPPy7nFKbeqRivBvn/3N3GBiNC+JRTMSxEC7A==} + micromark-util-subtokenize@2.0.4: + resolution: {integrity: sha512-N6hXjrin2GTJDe3MVjf5FuXpm12PGm80BrUAeub9XFXca8JZbP+oIwY4LJSVwFUCL1IPm/WwSVUN7goFHmSGGQ==} + micromark-util-symbol@1.1.0: resolution: {integrity: sha512-uEjpEYY6KMs1g7QfJ2eX1SQEV+ZT4rUD3UcF6l57acZvLNK7PBZL+ty82Z1qhK1/yXIY4bdx04FKMgR0g4IAag==} + micromark-util-symbol@2.0.1: + resolution: {integrity: sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==} + micromark-util-types@1.1.0: resolution: {integrity: sha512-ukRBgie8TIAcacscVHSiddHjO4k/q3pnedmzMQ4iwDcK0FtFCohKOlFbaOL/mPgfnPsL3C1ZyxJa4sbWrBl3jg==} + micromark-util-types@2.0.1: + resolution: {integrity: sha512-534m2WhVTddrcKVepwmVEVnUAmtrx9bfIjNoQHRqfnvdaHQiFytEhJoTgpWJvDEXCO5gLTQh3wYC1PgOJA4NSQ==} + micromark@3.2.0: resolution: {integrity: sha512-uD66tJj54JLYq0De10AhWycZWGQNUvDI55xPgk2sQM5kn1JYlhbCMTtEeT27+vAhW2FBQxLlOmS3pmA7/2z4aA==} + micromark@4.0.1: + resolution: {integrity: sha512-eBPdkcoCNvYcxQOAKAlceo5SNdzZWfF+FcSupREAzdAh9rRmE239CEQAiTwIgblwnoM8zzj35sZ5ZwvSEOF6Kw==} + micromatch@4.0.8: resolution: {integrity: sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==} engines: {node: '>=8.6'} @@ -5767,6 +6574,12 @@ packages: react: '>=16.8.0' react-dom: '>=16.8.0' + react-confetti@6.2.2: + resolution: {integrity: sha512-K+kTyOPgX+ZujMZ+Rmb7pZdHBvg+DzinG/w4Eh52WOB8/pfO38efnnrtEZNJmjTvLxc16RBYO+tPM68Fg8viBA==} + engines: {node: '>=16'} + peerDependencies: + react: ^16.3.0 || ^17.0.1 || ^18.0.0 || ^19.0.0 + react-docgen-typescript@2.2.2: resolution: {integrity: sha512-tvg2ZtOpOi6QDwsb3GZhOjDkkX0h8Z2gipvTg6OVMUyoYoURhEiRNePT8NZItTVCDh39JJHnLdfCOkzoLbFnTg==} peerDependencies: @@ -5939,9 +6752,18 @@ packages: remark-gfm@3.0.1: resolution: {integrity: sha512-lEFDoi2PICJyNrACFOfDD3JlLkuSbOa5Wd8EPt06HUdptv8Gn0bxYTdbU/XXQ3swAPkEaGxxPN9cbnMHvVu1Ig==} + remark-gfm@4.0.0: + resolution: {integrity: sha512-U92vJgBPkbw4Zfu/IiW2oTZLSL3Zpv+uI7My2eq8JxKgqraFdU8YUGicEJCEgSbeaG+QDFqIcwwfMTOEelPxuA==} + + remark-parse@11.0.0: + resolution: {integrity: sha512-FCxlKLNGknS5ba/1lmpYijMUzX2esxW5xQqjWxw2eHFfS2MSdaHVINFmhjo+qN1WhZhNimq0dZATN9pH0IDrpA==} + remark-slug@6.1.0: resolution: {integrity: sha512-oGCxDF9deA8phWvxFuyr3oSJsdyUAxMFbA0mZ7Y1Sas+emILtO+e5WutF9564gDsEN4IXaQXm5pFo6MLH+YmwQ==} + remark-stringify@11.0.0: + resolution: {integrity: sha512-1OSmLd3awB/t8qdoEOMazZkNsfVTeY4fTsgzcQFdXNq8ToTN4ZGwrMnlda4K6smTFKD+GRV6O48i6Z4iKgPPpw==} + require-directory@2.1.1: resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} engines: {node: '>=0.10.0'} @@ -6243,6 +7065,15 @@ packages: resolution: {integrity: sha512-Wt04pPTO71pwmRmsgkyZhNo4Bvdb/1pBAMsIFb9nQLykEdzzpXjvingxFFvdOG4nIowzwgxD+CLlyRqVJqnATw==} hasBin: true + storybook@8.5.3: + resolution: {integrity: sha512-2WtNBZ45u1AhviRU+U+ld588tH8gDa702dNSq5C8UBaE9PlOsazGsyp90dw1s9YRvi+ejrjKAupQAU0GwwUiVg==} + hasBin: true + peerDependencies: + prettier: ^2 || ^3 + peerDependenciesMeta: + prettier: + optional: true + stream-shift@1.0.3: resolution: {integrity: sha512-76ORR0DO1o1hlKwTbi/DM3EXWGf3ZJYO8cXX5RJwnul2DEg2oyoZyjLNoQM8WsvZiFKCRfC1O0J7iCvie3RZmQ==} @@ -6420,6 +7251,10 @@ packages: resolution: {integrity: sha512-al6n+QEANGFOMf/dmUMsuS5/r9B06uwlyNjZZql/zv8J7ybHCgoihBNORZCY2mzUuAnomQa2JdhyHKzZxPCrFA==} engines: {node: ^18.0.0 || >=20.0.0} + tinyrainbow@1.2.0: + resolution: {integrity: sha512-weEDEq7Z5eTHPDh4xjX789+fHfF+P8boiFB+0vbWzpbnbsEr/GRaohi/uMKxg8RZMXnl1ItAi/IUHWMsjDV7kQ==} + engines: {node: '>=14.0.0'} + tinyrainbow@2.0.0: resolution: {integrity: sha512-op4nsTR47R6p0vMUUoYl/a+ljLFVtlfaXkLQmqfLR1qHma1h/ysYk4hEXZ880bf2CYgTskvTa/e196Vd5dDQXw==} engines: {node: '>=14.0.0'} @@ -6490,6 +7325,18 @@ packages: trough@2.2.0: resolution: {integrity: sha512-tmMpK00BjZiUyVyvrBK7knerNgmgvcV/KLVyuma/SC+TQN167GrMRciANTz09+k3zW8L8t60jWO1GpfkZdjTaw==} + ts-api-utils@1.4.3: + resolution: {integrity: sha512-i3eMG77UTMD0hZhgRS562pv83RC6ukSAC2GMNWc+9dieh/+jDM5u5YG+NHX6VNDRHQcHwmsTHctP9LhbC3WxVw==} + engines: {node: '>=16'} + peerDependencies: + typescript: '>=4.2.0' + + ts-api-utils@2.0.1: + resolution: {integrity: sha512-dnlgjFSVetynI8nzgJ+qF62efpglpWRk8isUEWZGWlJYySCTD6aKvbUDu+zbPeDakk3bg5H4XpitHukgfL1m9w==} + engines: {node: '>=18.12'} + peerDependencies: + typescript: '>=4.8.4' + ts-dedent@2.2.0: resolution: {integrity: sha512-q5W7tVM71e2xjHZTlgfTDoPF/SmqKG5hddq9SzR49CH2hayqRKJtQ4mtRlSxKaJlR/+9rEM+mnBHf7I2/BQcpQ==} engines: {node: '>=6.10'} @@ -6544,6 +7391,13 @@ packages: resolution: {integrity: sha512-GwIJau9XaA8nLVbUXsN3IlFi7WmQ48gBUrl3FTkkL/XLu/POhBzfmX9hd33FNMX1qAsfl6ozO1iMmW9NC8YniA==} engines: {node: ^16.14.0 || >=18.0.0} + tween-functions@1.2.0: + resolution: {integrity: sha512-PZBtLYcCLtEcjL14Fzb1gSxPBeL7nWvGhO5ZFPGqziCcr8uvHp0NDmdjBchp6KHL+tExcg0m3NISmKxhU394dA==} + + type-check@0.4.0: + resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} + engines: {node: '>= 0.8.0'} + type-fest@0.16.0: resolution: {integrity: sha512-eaBzG6MxNzEn9kiwvtre90cXaNLkmadMWa1zQMs3XORCXNbsH/OewwbxC5ia9dCxIxnTAsSxXJaa/p5y8DlvJg==} engines: {node: '>=10'} @@ -6583,6 +7437,13 @@ packages: typedarray@0.0.6: resolution: {integrity: sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==} + typescript-eslint@8.23.0: + resolution: {integrity: sha512-/LBRo3HrXr5LxmrdYSOCvoAMm7p2jNizNfbIpCgvG4HMsnoprRUOce/+8VJ9BDYWW68rqIENE/haVLWPeFZBVQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + eslint: ^8.57.0 || ^9.0.0 + typescript: '>=4.8.4 <5.8.0' + typescript@4.9.5: resolution: {integrity: sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==} engines: {node: '>=4.2.0'} @@ -6626,6 +7487,9 @@ packages: unified@10.1.2: resolution: {integrity: sha512-pUSWAi/RAnVy1Pif2kAoeWNBa3JVrx0MId2LASj8G+7AiHWoKZNTomq6LG326T68U7/e263X6fTdcXIy7XnF7Q==} + unified@11.0.5: + resolution: {integrity: sha512-xKvGhPWw3k84Qjh8bI3ZeJjqnyadK+GEFtazSfZv/rKeTkTjOJho6mFqh2SM96iIcZokxiOpg78GazTSg8+KHA==} + unique-filename@3.0.0: resolution: {integrity: sha512-afXhuC55wkAmZ0P18QsVE6kp8JaxrEokN2HGIoIVv2ijHQd419H0+6EigAFcIzXeMIkcIkNBpB3L/DXB3cTS/g==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} @@ -6644,21 +7508,33 @@ packages: unist-util-is@5.2.1: resolution: {integrity: sha512-u9njyyfEh43npf1M+yGKDGVPbY/JWEemg5nH05ncKPfi+kBbKBJoTdsogMu33uhytuLlv9y0O7GH7fEdwLdLQw==} + unist-util-is@6.0.0: + resolution: {integrity: sha512-2qCTHimwdxLfz+YzdGfkqNlH0tLi9xjTnHddPmJwtIG9MGsdbutfTc4P+haPD7l7Cjxf/WZj+we5qfVPvvxfYw==} + unist-util-stringify-position@3.0.3: resolution: {integrity: sha512-k5GzIBZ/QatR8N5X2y+drfpWG8IDBzdnVj6OInRNWm1oXrzydiaAT2OQiA8DPRRZyAKb9b6I2a6PxYklZD0gKg==} + unist-util-stringify-position@4.0.0: + resolution: {integrity: sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==} + unist-util-visit-parents@3.1.1: resolution: {integrity: sha512-1KROIZWo6bcMrZEwiH2UrXDyalAa0uqzWCxCJj6lPOvTve2WkfgCytoDTPaMnodXh1WrXOq0haVYHj99ynJlsg==} unist-util-visit-parents@5.1.3: resolution: {integrity: sha512-x6+y8g7wWMyQhL1iZfhIPhDAs7Xwbn9nRosDXl7qoPTSCy0yNxnKc+hWokFifWQIDGi154rdUqKvbCa4+1kLhg==} + unist-util-visit-parents@6.0.1: + resolution: {integrity: sha512-L/PqWzfTP9lzzEa6CKs0k2nARxTdZduw3zyh8d2NVBnsyvHjSX4TWse388YrrQKbvI8w20fGjGlhgT96WwKykw==} + unist-util-visit@2.0.3: resolution: {integrity: sha512-iJ4/RczbJMkD0712mGktuGpm/U4By4FfDonL7N/9tATGIF4imikjOuagyMY53tnZq3NP6BcmlrHhEKAfGWjh7Q==} unist-util-visit@4.1.2: resolution: {integrity: sha512-MSd8OUGISqHdVvfY9TPhyK2VdUrPgxkUtWSuMHF6XAAFuL4LokseigBnZtPnJMu+FbynTkFNnFlyjxpVKujMRg==} + unist-util-visit@5.0.0: + resolution: {integrity: sha512-MR04uvD+07cwl/yhVuVWAtw+3GOR/knlL55Nd/wAdblk27GCVt3lqpTivy/tkJcZoNPzTwS1Y+KMojlLDhoTzg==} + universal-user-agent@6.0.1: resolution: {integrity: sha512-yCzhz6FN2wU1NiiQRogkTQszlQSlpWaw8SvVegAc+bDxbzHgh1vX8uIe8OYyMH6DwH+sdTJsgMl36+mSMdRJIQ==} @@ -6758,11 +7634,17 @@ packages: vfile-message@3.1.4: resolution: {integrity: sha512-fa0Z6P8HUrQN4BZaX05SIVXic+7kE3b05PWAtPuYP9QLHsLKYR7/AlLW3NtOrpXRLeawpDLMsVkmk5DG0NXgWw==} + vfile-message@4.0.2: + resolution: {integrity: sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==} + vfile@5.3.7: resolution: {integrity: sha512-r7qlzkgErKjobAmyNIkkSpizsFPYiUPuJb5pNW1RB4JcYVZhs4lIbVqk8XPk033CV/1z8ss5pkax8SuhGpcG8g==} - vite-node@3.0.8: - resolution: {integrity: sha512-6PhR4H9VGlcwXZ+KWCdMqbtG649xCPZqfI9j2PsK1FcXgEzro5bGHcVKFCTqPLaNKZES8Evqv4LwvZARsq5qlg==} + vfile@6.0.3: + resolution: {integrity: sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q==} + + vite-node@3.0.4: + resolution: {integrity: sha512-7JZKEzcYV2Nx3u6rlvN8qdo3QV7Fxyt6hx+CCKz9fbWxdX5IvUOmTWEAxMrWxaiSf7CKGLJQ5rFu8prb/jBjOA==} engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0} hasBin: true @@ -6814,8 +7696,48 @@ packages: yaml: optional: true - vitest@3.0.8: - resolution: {integrity: sha512-dfqAsNqRGUc8hB9OVR2P0w8PZPEckti2+5rdZip0WIz9WW0MnImJ8XiR61QhqLa92EQzKP2uPkzenKOAHyEIbA==} + vite@6.1.0: + resolution: {integrity: sha512-RjjMipCKVoR4hVfPY6GQTgveinjNuyLw+qruksLDvA5ktI1150VmcMBKmQaEWJhg/j6Uaf6dNCNA0AfdzUb/hQ==} + engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0} + hasBin: true + peerDependencies: + '@types/node': ^18.0.0 || ^20.0.0 || >=22.0.0 + jiti: '>=1.21.0' + less: '*' + lightningcss: ^1.21.0 + sass: '*' + sass-embedded: '*' + stylus: '*' + sugarss: '*' + terser: ^5.16.0 + tsx: ^4.8.1 + yaml: ^2.4.2 + peerDependenciesMeta: + '@types/node': + optional: true + jiti: + optional: true + less: + optional: true + lightningcss: + optional: true + sass: + optional: true + sass-embedded: + optional: true + stylus: + optional: true + sugarss: + optional: true + terser: + optional: true + tsx: + optional: true + yaml: + optional: true + + vitest@3.0.4: + resolution: {integrity: sha512-6XG8oTKy2gnJIFTHP6LD7ExFeNLxiTkK3CfMvT7IfR8IN+BYICCf0lXUQmX7i7JoxUP8QmeP4mTnWXgflu4yjw==} engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0} hasBin: true peerDependencies: @@ -7056,7 +7978,9 @@ packages: snapshots: - '@adyen/adyen-web@6.9.0': + '@adobe/css-tools@4.4.1': {} + + '@adyen/adyen-web@6.8.0': dependencies: '@types/applepayjs': 14.0.8 '@types/googlepay': 0.7.6 @@ -7860,12 +8784,60 @@ snapshots: '@types/tough-cookie': 4.0.5 tough-cookie: 4.1.4 + '@chromatic-com/storybook@3.2.4(react@19.0.0)(storybook@8.5.3(prettier@3.4.2))': + dependencies: + chromatic: 11.25.2 + filesize: 10.1.6 + jsonfile: 6.1.0 + react-confetti: 6.2.2(react@19.0.0) + storybook: 8.5.3(prettier@3.4.2) + strip-ansi: 7.1.0 + transitivePeerDependencies: + - '@chromatic-com/cypress' + - '@chromatic-com/playwright' + - react + '@colors/colors@1.5.0': optional: true - '@commercelayer/js-auth@6.7.1': {} + '@commercelayer/eslint-config-ts-react@1.4.5(@types/eslint@9.6.1)(eslint@9.19.0)(react@18.3.1)(typescript@5.7.2)': + dependencies: + '@commercelayer/eslint-config-ts': 1.4.5(@types/eslint@9.6.1)(eslint@9.19.0)(typescript@5.7.2) + '@typescript-eslint/eslint-plugin': 7.18.0(@typescript-eslint/parser@7.18.0(eslint@9.19.0)(typescript@5.7.2))(eslint@9.19.0)(typescript@5.7.2) + '@typescript-eslint/parser': 7.18.0(eslint@9.19.0)(typescript@5.7.2) + eslint: 9.19.0 + eslint-config-standard-jsx: 11.0.0(eslint-plugin-react@7.37.2(eslint@9.19.0))(eslint@9.19.0) + eslint-plugin-react: 7.37.2(eslint@9.19.0) + react: 18.3.1 + typescript: 5.7.2 + transitivePeerDependencies: + - '@types/eslint' + - eslint-import-resolver-typescript + - eslint-import-resolver-webpack + - supports-color - '@commercelayer/organization-config@2.2.0': + '@commercelayer/eslint-config-ts@1.4.5(@types/eslint@9.6.1)(eslint@9.19.0)(typescript@5.7.2)': + dependencies: + '@typescript-eslint/eslint-plugin': 7.18.0(@typescript-eslint/parser@7.18.0(eslint@9.19.0)(typescript@5.7.2))(eslint@9.19.0)(typescript@5.7.2) + '@typescript-eslint/parser': 7.18.0(eslint@9.19.0)(typescript@5.7.2) + eslint: 9.19.0 + eslint-config-love: 43.1.0(@typescript-eslint/eslint-plugin@7.18.0(@typescript-eslint/parser@7.18.0(eslint@9.19.0)(typescript@5.7.2))(eslint@9.19.0)(typescript@5.7.2))(eslint-plugin-import@2.31.0(@typescript-eslint/parser@7.18.0(eslint@9.19.0)(typescript@5.7.2))(eslint@9.19.0))(eslint-plugin-n@16.6.2(eslint@9.19.0))(eslint-plugin-promise@6.6.0(eslint@9.19.0))(eslint@9.19.0)(typescript@5.7.2) + eslint-config-prettier: 9.1.0(eslint@9.19.0) + eslint-plugin-import: 2.31.0(@typescript-eslint/parser@7.18.0(eslint@9.19.0)(typescript@5.7.2))(eslint@9.19.0) + eslint-plugin-n: 16.6.2(eslint@9.19.0) + eslint-plugin-prettier: 5.2.1(@types/eslint@9.6.1)(eslint-config-prettier@9.1.0(eslint@9.19.0))(eslint@9.19.0)(prettier@3.4.2) + eslint-plugin-promise: 6.6.0(eslint@9.19.0) + prettier: 3.4.2 + typescript: 5.7.2 + transitivePeerDependencies: + - '@types/eslint' + - eslint-import-resolver-typescript + - eslint-import-resolver-webpack + - supports-color + + '@commercelayer/js-auth@6.7.0': {} + + '@commercelayer/organization-config@2.0.0': dependencies: merge-anything: 5.1.7 @@ -7910,7 +8882,14 @@ snapshots: dependencies: react: 18.3.1 - '@esbuild/aix-ppc64@0.25.1': + '@emotion/use-insertion-effect-with-fallbacks@1.2.0(react@19.0.0)': + dependencies: + react: 19.0.0 + + '@esbuild/aix-ppc64@0.21.5': + optional: true + + '@esbuild/aix-ppc64@0.24.2': optional: true '@esbuild/android-arm64@0.18.20': @@ -8051,7 +9030,52 @@ snapshots: '@esbuild/win32-x64@0.25.1': optional: true - '@faker-js/faker@9.6.0': {} + '@esbuild/win32-x64@0.24.2': + optional: true + + '@eslint-community/eslint-utils@4.4.1(eslint@9.19.0)': + dependencies: + eslint: 9.19.0 + eslint-visitor-keys: 3.4.3 + + '@eslint-community/regexpp@4.12.1': {} + + '@eslint/config-array@0.19.1': + dependencies: + '@eslint/object-schema': 2.1.5 + debug: 4.4.0 + minimatch: 3.1.2 + transitivePeerDependencies: + - supports-color + + '@eslint/core@0.10.0': + dependencies: + '@types/json-schema': 7.0.15 + + '@eslint/eslintrc@3.2.0': + dependencies: + ajv: 6.12.6 + debug: 4.4.0 + espree: 10.3.0 + globals: 14.0.0 + ignore: 5.3.2 + import-fresh: 3.3.0 + js-yaml: 4.1.0 + minimatch: 3.1.2 + strip-json-comments: 3.1.1 + transitivePeerDependencies: + - supports-color + + '@eslint/js@9.19.0': {} + + '@eslint/object-schema@2.1.5': {} + + '@eslint/plugin-kit@0.2.5': + dependencies: + '@eslint/core': 0.10.0 + levn: 0.4.1 + + '@faker-js/faker@9.4.0': {} '@fal-works/esbuild-plugin-global-externals@2.1.2': {} @@ -8070,7 +9094,26 @@ snapshots: react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - '@floating-ui/utils@0.2.9': {} + '@floating-ui/react-dom@2.1.2(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': + dependencies: + '@floating-ui/dom': 1.6.12 + react: 19.0.0 + react-dom: 19.0.0(react@19.0.0) + + '@floating-ui/utils@0.2.8': {} + + '@humanfs/core@0.19.1': {} + + '@humanfs/node@0.16.6': + dependencies: + '@humanfs/core': 0.19.1 + '@humanwhocodes/retry': 0.3.1 + + '@humanwhocodes/module-importer@1.0.1': {} + + '@humanwhocodes/retry@0.3.1': {} + + '@humanwhocodes/retry@0.4.1': {} '@hutson/parse-repository-url@3.0.2': {} @@ -8172,6 +9215,14 @@ snapshots: optionalDependencies: typescript: 5.8.2 + '@joshwooding/vite-plugin-react-docgen-typescript@0.4.2(typescript@5.7.3)(vite@6.1.0(@types/node@22.12.0)(terser@5.37.0)(yaml@2.6.1))': + dependencies: + magic-string: 0.27.0 + react-docgen-typescript: 2.2.2(typescript@5.7.3) + vite: 6.1.0(@types/node@22.12.0)(terser@5.37.0)(yaml@2.6.1) + optionalDependencies: + typescript: 5.7.3 + '@jridgewell/gen-mapping@0.3.8': dependencies: '@jridgewell/set-array': 1.2.1 @@ -8281,16 +9332,28 @@ snapshots: '@mdx-js/react@2.3.0(react@18.3.1)': dependencies: '@types/mdx': 2.0.13 - '@types/react': 18.3.18 + '@types/react': 19.0.8 react: 18.3.1 - '@mdx-js/react@3.1.0(@types/react@18.3.18)(react@18.3.1)': + '@mdx-js/react@2.3.0(react@19.0.0)': dependencies: '@types/mdx': 2.0.13 - '@types/react': 18.3.18 + '@types/react': 19.0.8 + react: 19.0.0 + + '@mdx-js/react@3.1.0(@types/react@18.3.17)(react@18.3.1)': + dependencies: + '@types/mdx': 2.0.13 + '@types/react': 18.3.18 react: 18.3.1 - '@mswjs/interceptors@0.37.6': + '@mdx-js/react@3.1.0(@types/react@19.0.8)(react@18.3.1)': + dependencies: + '@types/mdx': 2.0.13 + '@types/react': 19.0.8 + react: 18.3.1 + + '@mswjs/interceptors@0.37.3': dependencies: '@open-draft/deferred-promise': 2.2.0 '@open-draft/logger': 0.3.0 @@ -8592,37 +9655,75 @@ snapshots: '@radix-ui/primitive@1.1.1': {} - '@radix-ui/react-arrow@1.0.3(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-arrow@1.0.3(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@babel/runtime': 7.26.10 - '@radix-ui/react-primitive': 1.0.3(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@babel/runtime': 7.26.7 + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) optionalDependencies: - '@types/react': 18.3.18 + '@types/react': 18.3.17 + '@types/react-dom': 19.0.3(@types/react@18.3.17) - '@radix-ui/react-collection@1.0.3(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-arrow@1.0.3(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': dependencies: - '@babel/runtime': 7.26.10 - '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.3.18)(react@18.3.1) - '@radix-ui/react-context': 1.0.1(@types/react@18.3.18)(react@18.3.1) - '@radix-ui/react-primitive': 1.0.3(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-slot': 1.0.2(@types/react@18.3.18)(react@18.3.1) + '@babel/runtime': 7.26.7 + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + react: 19.0.0 + react-dom: 19.0.0(react@19.0.0) + optionalDependencies: + '@types/react': 19.0.8 + '@types/react-dom': 19.0.3(@types/react@19.0.8) + + '@radix-ui/react-collection@1.0.3(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@babel/runtime': 7.26.7 + '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.3.17)(react@18.3.1) + '@radix-ui/react-context': 1.0.1(@types/react@18.3.17)(react@18.3.1) + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-slot': 1.0.2(@types/react@18.3.17)(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) optionalDependencies: - '@types/react': 18.3.18 + '@types/react': 18.3.17 + '@types/react-dom': 19.0.3(@types/react@18.3.17) - '@radix-ui/react-collection@1.1.2(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-collection@1.0.3(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': dependencies: - '@radix-ui/react-compose-refs': 1.1.1(@types/react@18.3.18)(react@18.3.1) - '@radix-ui/react-context': 1.1.1(@types/react@18.3.18)(react@18.3.1) - '@radix-ui/react-primitive': 2.0.2(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-slot': 1.1.2(@types/react@18.3.18)(react@18.3.1) + '@babel/runtime': 7.26.7 + '@radix-ui/react-compose-refs': 1.0.1(@types/react@19.0.8)(react@19.0.0) + '@radix-ui/react-context': 1.0.1(@types/react@19.0.8)(react@19.0.0) + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-slot': 1.0.2(@types/react@19.0.8)(react@19.0.0) + react: 19.0.0 + react-dom: 19.0.0(react@19.0.0) + optionalDependencies: + '@types/react': 19.0.8 + '@types/react-dom': 19.0.3(@types/react@19.0.8) + + '@radix-ui/react-collection@1.1.1(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@radix-ui/react-compose-refs': 1.1.1(@types/react@18.3.17)(react@18.3.1) + '@radix-ui/react-context': 1.1.1(@types/react@18.3.17)(react@18.3.1) + '@radix-ui/react-primitive': 2.0.1(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-slot': 1.1.1(@types/react@18.3.17)(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) optionalDependencies: - '@types/react': 18.3.18 + '@types/react': 18.3.17 + '@types/react-dom': 19.0.3(@types/react@18.3.17) + + '@radix-ui/react-collection@1.1.1(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': + dependencies: + '@radix-ui/react-compose-refs': 1.1.1(@types/react@19.0.8)(react@19.0.0) + '@radix-ui/react-context': 1.1.1(@types/react@19.0.8)(react@19.0.0) + '@radix-ui/react-primitive': 2.0.1(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-slot': 1.1.1(@types/react@19.0.8)(react@19.0.0) + react: 19.0.0 + react-dom: 19.0.0(react@19.0.0) + optionalDependencies: + '@types/react': 19.0.8 + '@types/react-dom': 19.0.3(@types/react@19.0.8) '@radix-ui/react-compose-refs@1.0.1(@types/react@18.3.18)(react@18.3.1)': dependencies: @@ -8631,50 +9732,104 @@ snapshots: optionalDependencies: '@types/react': 18.3.18 - '@radix-ui/react-compose-refs@1.1.1(@types/react@18.3.18)(react@18.3.1)': + '@radix-ui/react-compose-refs@1.0.1(@types/react@19.0.8)(react@19.0.0)': + dependencies: + '@babel/runtime': 7.26.7 + react: 19.0.0 + optionalDependencies: + '@types/react': 19.0.8 + + '@radix-ui/react-compose-refs@1.1.1(@types/react@18.3.17)(react@18.3.1)': dependencies: react: 18.3.1 optionalDependencies: '@types/react': 18.3.18 - '@radix-ui/react-context@1.0.1(@types/react@18.3.18)(react@18.3.1)': + '@radix-ui/react-compose-refs@1.1.1(@types/react@19.0.8)(react@19.0.0)': + dependencies: + react: 19.0.0 + optionalDependencies: + '@types/react': 19.0.8 + + '@radix-ui/react-context@1.0.1(@types/react@18.3.17)(react@18.3.1)': dependencies: '@babel/runtime': 7.26.10 react: 18.3.1 optionalDependencies: '@types/react': 18.3.18 - '@radix-ui/react-context@1.1.1(@types/react@18.3.18)(react@18.3.1)': + '@radix-ui/react-context@1.0.1(@types/react@19.0.8)(react@19.0.0)': + dependencies: + '@babel/runtime': 7.26.7 + react: 19.0.0 + optionalDependencies: + '@types/react': 19.0.8 + + '@radix-ui/react-context@1.1.1(@types/react@18.3.17)(react@18.3.1)': dependencies: react: 18.3.1 optionalDependencies: '@types/react': 18.3.18 - '@radix-ui/react-direction@1.0.1(@types/react@18.3.18)(react@18.3.1)': + '@radix-ui/react-context@1.1.1(@types/react@19.0.8)(react@19.0.0)': + dependencies: + react: 19.0.0 + optionalDependencies: + '@types/react': 19.0.8 + + '@radix-ui/react-direction@1.0.1(@types/react@18.3.17)(react@18.3.1)': dependencies: '@babel/runtime': 7.26.10 react: 18.3.1 optionalDependencies: '@types/react': 18.3.18 - '@radix-ui/react-direction@1.1.0(@types/react@18.3.18)(react@18.3.1)': + '@radix-ui/react-direction@1.0.1(@types/react@19.0.8)(react@19.0.0)': + dependencies: + '@babel/runtime': 7.26.7 + react: 19.0.0 + optionalDependencies: + '@types/react': 19.0.8 + + '@radix-ui/react-direction@1.1.0(@types/react@18.3.17)(react@18.3.1)': dependencies: react: 18.3.1 optionalDependencies: '@types/react': 18.3.18 - '@radix-ui/react-dismissable-layer@1.0.4(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-direction@1.1.0(@types/react@19.0.8)(react@19.0.0)': + dependencies: + react: 19.0.0 + optionalDependencies: + '@types/react': 19.0.8 + + '@radix-ui/react-dismissable-layer@1.0.4(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@babel/runtime': 7.26.10 '@radix-ui/primitive': 1.0.1 - '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.3.18)(react@18.3.1) - '@radix-ui/react-primitive': 1.0.3(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.3.18)(react@18.3.1) - '@radix-ui/react-use-escape-keydown': 1.0.3(@types/react@18.3.18)(react@18.3.1) + '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.3.17)(react@18.3.1) + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.3.17)(react@18.3.1) + '@radix-ui/react-use-escape-keydown': 1.0.3(@types/react@18.3.17)(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) optionalDependencies: - '@types/react': 18.3.18 + '@types/react': 18.3.17 + '@types/react-dom': 19.0.3(@types/react@18.3.17) + + '@radix-ui/react-dismissable-layer@1.0.4(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': + dependencies: + '@babel/runtime': 7.26.7 + '@radix-ui/primitive': 1.0.1 + '@radix-ui/react-compose-refs': 1.0.1(@types/react@19.0.8)(react@19.0.0) + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@19.0.8)(react@19.0.0) + '@radix-ui/react-use-escape-keydown': 1.0.3(@types/react@19.0.8)(react@19.0.0) + react: 19.0.0 + react-dom: 19.0.0(react@19.0.0) + optionalDependencies: + '@types/react': 19.0.8 + '@types/react-dom': 19.0.3(@types/react@19.0.8) '@radix-ui/react-focus-guards@1.0.1(@types/react@18.3.18)(react@18.3.1)': dependencies: @@ -8683,16 +9838,36 @@ snapshots: optionalDependencies: '@types/react': 18.3.18 - '@radix-ui/react-focus-scope@1.0.3(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-focus-guards@1.0.1(@types/react@19.0.8)(react@19.0.0)': dependencies: - '@babel/runtime': 7.26.10 - '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.3.18)(react@18.3.1) - '@radix-ui/react-primitive': 1.0.3(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.3.18)(react@18.3.1) + '@babel/runtime': 7.26.7 + react: 19.0.0 + optionalDependencies: + '@types/react': 19.0.8 + + '@radix-ui/react-focus-scope@1.0.3(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@babel/runtime': 7.26.7 + '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.3.17)(react@18.3.1) + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.3.17)(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) optionalDependencies: - '@types/react': 18.3.18 + '@types/react': 18.3.17 + '@types/react-dom': 19.0.3(@types/react@18.3.17) + + '@radix-ui/react-focus-scope@1.0.3(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': + dependencies: + '@babel/runtime': 7.26.7 + '@radix-ui/react-compose-refs': 1.0.1(@types/react@19.0.8)(react@19.0.0) + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@19.0.8)(react@19.0.0) + react: 19.0.0 + react-dom: 19.0.0(react@19.0.0) + optionalDependencies: + '@types/react': 19.0.8 + '@types/react-dom': 19.0.3(@types/react@19.0.8) '@radix-ui/react-id@1.0.1(@types/react@18.3.18)(react@18.3.1)': dependencies: @@ -8702,109 +9877,235 @@ snapshots: optionalDependencies: '@types/react': 18.3.18 - '@radix-ui/react-id@1.1.0(@types/react@18.3.18)(react@18.3.1)': + '@radix-ui/react-id@1.0.1(@types/react@19.0.8)(react@19.0.0)': + dependencies: + '@babel/runtime': 7.26.7 + '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@19.0.8)(react@19.0.0) + react: 19.0.0 + optionalDependencies: + '@types/react': 19.0.8 + + '@radix-ui/react-id@1.1.0(@types/react@18.3.17)(react@18.3.1)': dependencies: '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@18.3.18)(react@18.3.1) react: 18.3.1 optionalDependencies: '@types/react': 18.3.18 - '@radix-ui/react-popper@1.1.2(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-id@1.1.0(@types/react@19.0.8)(react@19.0.0)': + dependencies: + '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@19.0.8)(react@19.0.0) + react: 19.0.0 + optionalDependencies: + '@types/react': 19.0.8 + + '@radix-ui/react-popper@1.1.2(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@babel/runtime': 7.26.10 '@floating-ui/react-dom': 2.1.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-arrow': 1.0.3(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.3.18)(react@18.3.1) - '@radix-ui/react-context': 1.0.1(@types/react@18.3.18)(react@18.3.1) - '@radix-ui/react-primitive': 1.0.3(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.3.18)(react@18.3.1) - '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@18.3.18)(react@18.3.1) - '@radix-ui/react-use-rect': 1.0.1(@types/react@18.3.18)(react@18.3.1) - '@radix-ui/react-use-size': 1.0.1(@types/react@18.3.18)(react@18.3.1) + '@radix-ui/react-arrow': 1.0.3(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.3.17)(react@18.3.1) + '@radix-ui/react-context': 1.0.1(@types/react@18.3.17)(react@18.3.1) + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.3.17)(react@18.3.1) + '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@18.3.17)(react@18.3.1) + '@radix-ui/react-use-rect': 1.0.1(@types/react@18.3.17)(react@18.3.1) + '@radix-ui/react-use-size': 1.0.1(@types/react@18.3.17)(react@18.3.1) '@radix-ui/rect': 1.0.1 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) optionalDependencies: - '@types/react': 18.3.18 + '@types/react': 18.3.17 + '@types/react-dom': 19.0.3(@types/react@18.3.17) + + '@radix-ui/react-popper@1.1.2(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': + dependencies: + '@babel/runtime': 7.26.7 + '@floating-ui/react-dom': 2.1.2(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-arrow': 1.0.3(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-compose-refs': 1.0.1(@types/react@19.0.8)(react@19.0.0) + '@radix-ui/react-context': 1.0.1(@types/react@19.0.8)(react@19.0.0) + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@19.0.8)(react@19.0.0) + '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@19.0.8)(react@19.0.0) + '@radix-ui/react-use-rect': 1.0.1(@types/react@19.0.8)(react@19.0.0) + '@radix-ui/react-use-size': 1.0.1(@types/react@19.0.8)(react@19.0.0) + '@radix-ui/rect': 1.0.1 + react: 19.0.0 + react-dom: 19.0.0(react@19.0.0) + optionalDependencies: + '@types/react': 19.0.8 + '@types/react-dom': 19.0.3(@types/react@19.0.8) - '@radix-ui/react-portal@1.0.3(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-portal@1.0.3(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@babel/runtime': 7.26.10 - '@radix-ui/react-primitive': 1.0.3(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@babel/runtime': 7.26.7 + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) optionalDependencies: - '@types/react': 18.3.18 + '@types/react': 18.3.17 + '@types/react-dom': 19.0.3(@types/react@18.3.17) + + '@radix-ui/react-portal@1.0.3(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': + dependencies: + '@babel/runtime': 7.26.7 + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + react: 19.0.0 + react-dom: 19.0.0(react@19.0.0) + optionalDependencies: + '@types/react': 19.0.8 + '@types/react-dom': 19.0.3(@types/react@19.0.8) - '@radix-ui/react-primitive@1.0.3(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-primitive@1.0.3(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@babel/runtime': 7.26.10 '@radix-ui/react-slot': 1.0.2(@types/react@18.3.18)(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) optionalDependencies: - '@types/react': 18.3.18 + '@types/react': 18.3.17 + '@types/react-dom': 19.0.3(@types/react@18.3.17) - '@radix-ui/react-primitive@2.0.2(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-primitive@1.0.3(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': + dependencies: + '@babel/runtime': 7.26.7 + '@radix-ui/react-slot': 1.0.2(@types/react@19.0.8)(react@19.0.0) + react: 19.0.0 + react-dom: 19.0.0(react@19.0.0) + optionalDependencies: + '@types/react': 19.0.8 + '@types/react-dom': 19.0.3(@types/react@19.0.8) + + '@radix-ui/react-primitive@2.0.1(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@radix-ui/react-slot': 1.1.2(@types/react@18.3.18)(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) optionalDependencies: - '@types/react': 18.3.18 + '@types/react': 18.3.17 + '@types/react-dom': 19.0.3(@types/react@18.3.17) + + '@radix-ui/react-primitive@2.0.1(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': + dependencies: + '@radix-ui/react-slot': 1.1.1(@types/react@19.0.8)(react@19.0.0) + react: 19.0.0 + react-dom: 19.0.0(react@19.0.0) + optionalDependencies: + '@types/react': 19.0.8 + '@types/react-dom': 19.0.3(@types/react@19.0.8) - '@radix-ui/react-roving-focus@1.1.2(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-roving-focus@1.1.1(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@radix-ui/primitive': 1.1.1 - '@radix-ui/react-collection': 1.1.2(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-compose-refs': 1.1.1(@types/react@18.3.18)(react@18.3.1) - '@radix-ui/react-context': 1.1.1(@types/react@18.3.18)(react@18.3.1) - '@radix-ui/react-direction': 1.1.0(@types/react@18.3.18)(react@18.3.1) - '@radix-ui/react-id': 1.1.0(@types/react@18.3.18)(react@18.3.1) - '@radix-ui/react-primitive': 2.0.2(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.3.18)(react@18.3.1) - '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@18.3.18)(react@18.3.1) + '@radix-ui/react-collection': 1.1.1(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-compose-refs': 1.1.1(@types/react@18.3.17)(react@18.3.1) + '@radix-ui/react-context': 1.1.1(@types/react@18.3.17)(react@18.3.1) + '@radix-ui/react-direction': 1.1.0(@types/react@18.3.17)(react@18.3.1) + '@radix-ui/react-id': 1.1.0(@types/react@18.3.17)(react@18.3.1) + '@radix-ui/react-primitive': 2.0.1(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.3.17)(react@18.3.1) + '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@18.3.17)(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) optionalDependencies: - '@types/react': 18.3.18 + '@types/react': 18.3.17 + '@types/react-dom': 19.0.3(@types/react@18.3.17) - '@radix-ui/react-select@1.2.2(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-roving-focus@1.1.1(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': + dependencies: + '@radix-ui/primitive': 1.1.1 + '@radix-ui/react-collection': 1.1.1(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-compose-refs': 1.1.1(@types/react@19.0.8)(react@19.0.0) + '@radix-ui/react-context': 1.1.1(@types/react@19.0.8)(react@19.0.0) + '@radix-ui/react-direction': 1.1.0(@types/react@19.0.8)(react@19.0.0) + '@radix-ui/react-id': 1.1.0(@types/react@19.0.8)(react@19.0.0) + '@radix-ui/react-primitive': 2.0.1(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@19.0.8)(react@19.0.0) + '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@19.0.8)(react@19.0.0) + react: 19.0.0 + react-dom: 19.0.0(react@19.0.0) + optionalDependencies: + '@types/react': 19.0.8 + '@types/react-dom': 19.0.3(@types/react@19.0.8) + + '@radix-ui/react-select@1.2.2(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@babel/runtime': 7.26.10 '@radix-ui/number': 1.0.1 '@radix-ui/primitive': 1.0.1 - '@radix-ui/react-collection': 1.0.3(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.3.18)(react@18.3.1) - '@radix-ui/react-context': 1.0.1(@types/react@18.3.18)(react@18.3.1) - '@radix-ui/react-direction': 1.0.1(@types/react@18.3.18)(react@18.3.1) - '@radix-ui/react-dismissable-layer': 1.0.4(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-focus-guards': 1.0.1(@types/react@18.3.18)(react@18.3.1) - '@radix-ui/react-focus-scope': 1.0.3(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-id': 1.0.1(@types/react@18.3.18)(react@18.3.1) - '@radix-ui/react-popper': 1.1.2(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-portal': 1.0.3(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-primitive': 1.0.3(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-slot': 1.0.2(@types/react@18.3.18)(react@18.3.1) - '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.3.18)(react@18.3.1) - '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@18.3.18)(react@18.3.1) - '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@18.3.18)(react@18.3.1) - '@radix-ui/react-use-previous': 1.0.1(@types/react@18.3.18)(react@18.3.1) - '@radix-ui/react-visually-hidden': 1.0.3(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-collection': 1.0.3(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.3.17)(react@18.3.1) + '@radix-ui/react-context': 1.0.1(@types/react@18.3.17)(react@18.3.1) + '@radix-ui/react-direction': 1.0.1(@types/react@18.3.17)(react@18.3.1) + '@radix-ui/react-dismissable-layer': 1.0.4(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-focus-guards': 1.0.1(@types/react@18.3.17)(react@18.3.1) + '@radix-ui/react-focus-scope': 1.0.3(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-id': 1.0.1(@types/react@18.3.17)(react@18.3.1) + '@radix-ui/react-popper': 1.1.2(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-portal': 1.0.3(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-slot': 1.0.2(@types/react@18.3.17)(react@18.3.1) + '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.3.17)(react@18.3.1) + '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@18.3.17)(react@18.3.1) + '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@18.3.17)(react@18.3.1) + '@radix-ui/react-use-previous': 1.0.1(@types/react@18.3.17)(react@18.3.1) + '@radix-ui/react-visually-hidden': 1.0.3(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) aria-hidden: 1.2.4 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) react-remove-scroll: 2.5.5(@types/react@18.3.18)(react@18.3.1) optionalDependencies: - '@types/react': 18.3.18 + '@types/react': 18.3.17 + '@types/react-dom': 19.0.3(@types/react@18.3.17) - '@radix-ui/react-separator@1.1.2(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-select@1.2.2(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': dependencies: - '@radix-ui/react-primitive': 2.0.2(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@babel/runtime': 7.26.7 + '@radix-ui/number': 1.0.1 + '@radix-ui/primitive': 1.0.1 + '@radix-ui/react-collection': 1.0.3(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-compose-refs': 1.0.1(@types/react@19.0.8)(react@19.0.0) + '@radix-ui/react-context': 1.0.1(@types/react@19.0.8)(react@19.0.0) + '@radix-ui/react-direction': 1.0.1(@types/react@19.0.8)(react@19.0.0) + '@radix-ui/react-dismissable-layer': 1.0.4(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-focus-guards': 1.0.1(@types/react@19.0.8)(react@19.0.0) + '@radix-ui/react-focus-scope': 1.0.3(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-id': 1.0.1(@types/react@19.0.8)(react@19.0.0) + '@radix-ui/react-popper': 1.1.2(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-portal': 1.0.3(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-slot': 1.0.2(@types/react@19.0.8)(react@19.0.0) + '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@19.0.8)(react@19.0.0) + '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@19.0.8)(react@19.0.0) + '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@19.0.8)(react@19.0.0) + '@radix-ui/react-use-previous': 1.0.1(@types/react@19.0.8)(react@19.0.0) + '@radix-ui/react-visually-hidden': 1.0.3(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + aria-hidden: 1.2.4 + react: 19.0.0 + react-dom: 19.0.0(react@19.0.0) + react-remove-scroll: 2.5.5(@types/react@19.0.8)(react@19.0.0) + optionalDependencies: + '@types/react': 19.0.8 + '@types/react-dom': 19.0.3(@types/react@19.0.8) + + '@radix-ui/react-separator@1.1.1(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@radix-ui/react-primitive': 2.0.1(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) optionalDependencies: - '@types/react': 18.3.18 + '@types/react': 18.3.17 + '@types/react-dom': 19.0.3(@types/react@18.3.17) + + '@radix-ui/react-separator@1.1.1(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': + dependencies: + '@radix-ui/react-primitive': 2.0.1(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + react: 19.0.0 + react-dom: 19.0.0(react@19.0.0) + optionalDependencies: + '@types/react': 19.0.8 + '@types/react-dom': 19.0.3(@types/react@19.0.8) '@radix-ui/react-slot@1.0.2(@types/react@18.3.18)(react@18.3.1)': dependencies: @@ -8814,50 +10115,109 @@ snapshots: optionalDependencies: '@types/react': 18.3.18 - '@radix-ui/react-slot@1.1.2(@types/react@18.3.18)(react@18.3.1)': + '@radix-ui/react-slot@1.0.2(@types/react@19.0.8)(react@19.0.0)': + dependencies: + '@babel/runtime': 7.26.7 + '@radix-ui/react-compose-refs': 1.0.1(@types/react@19.0.8)(react@19.0.0) + react: 19.0.0 + optionalDependencies: + '@types/react': 19.0.8 + + '@radix-ui/react-slot@1.1.1(@types/react@18.3.17)(react@18.3.1)': dependencies: '@radix-ui/react-compose-refs': 1.1.1(@types/react@18.3.18)(react@18.3.1) react: 18.3.1 optionalDependencies: '@types/react': 18.3.18 - '@radix-ui/react-toggle-group@1.1.2(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-slot@1.1.1(@types/react@19.0.8)(react@19.0.0)': + dependencies: + '@radix-ui/react-compose-refs': 1.1.1(@types/react@19.0.8)(react@19.0.0) + react: 19.0.0 + optionalDependencies: + '@types/react': 19.0.8 + + '@radix-ui/react-toggle-group@1.1.1(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@radix-ui/primitive': 1.1.1 - '@radix-ui/react-context': 1.1.1(@types/react@18.3.18)(react@18.3.1) - '@radix-ui/react-direction': 1.1.0(@types/react@18.3.18)(react@18.3.1) - '@radix-ui/react-primitive': 2.0.2(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-roving-focus': 1.1.2(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-toggle': 1.1.2(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@18.3.18)(react@18.3.1) + '@radix-ui/react-context': 1.1.1(@types/react@18.3.17)(react@18.3.1) + '@radix-ui/react-direction': 1.1.0(@types/react@18.3.17)(react@18.3.1) + '@radix-ui/react-primitive': 2.0.1(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-roving-focus': 1.1.1(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-toggle': 1.1.1(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@18.3.17)(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) optionalDependencies: - '@types/react': 18.3.18 + '@types/react': 18.3.17 + '@types/react-dom': 19.0.3(@types/react@18.3.17) + + '@radix-ui/react-toggle-group@1.1.1(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': + dependencies: + '@radix-ui/primitive': 1.1.1 + '@radix-ui/react-context': 1.1.1(@types/react@19.0.8)(react@19.0.0) + '@radix-ui/react-direction': 1.1.0(@types/react@19.0.8)(react@19.0.0) + '@radix-ui/react-primitive': 2.0.1(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-roving-focus': 1.1.1(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-toggle': 1.1.1(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@19.0.8)(react@19.0.0) + react: 19.0.0 + react-dom: 19.0.0(react@19.0.0) + optionalDependencies: + '@types/react': 19.0.8 + '@types/react-dom': 19.0.3(@types/react@19.0.8) - '@radix-ui/react-toggle@1.1.2(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-toggle@1.1.1(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@radix-ui/primitive': 1.1.1 - '@radix-ui/react-primitive': 2.0.2(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@18.3.18)(react@18.3.1) + '@radix-ui/react-primitive': 2.0.1(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@18.3.17)(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) optionalDependencies: - '@types/react': 18.3.18 + '@types/react': 18.3.17 + '@types/react-dom': 19.0.3(@types/react@18.3.17) - '@radix-ui/react-toolbar@1.1.2(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-toggle@1.1.1(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': dependencies: '@radix-ui/primitive': 1.1.1 - '@radix-ui/react-context': 1.1.1(@types/react@18.3.18)(react@18.3.1) - '@radix-ui/react-direction': 1.1.0(@types/react@18.3.18)(react@18.3.1) - '@radix-ui/react-primitive': 2.0.2(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-roving-focus': 1.1.2(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-separator': 1.1.2(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-toggle-group': 1.1.2(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-primitive': 2.0.1(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@19.0.8)(react@19.0.0) + react: 19.0.0 + react-dom: 19.0.0(react@19.0.0) + optionalDependencies: + '@types/react': 19.0.8 + '@types/react-dom': 19.0.3(@types/react@19.0.8) + + '@radix-ui/react-toolbar@1.1.1(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@radix-ui/primitive': 1.1.1 + '@radix-ui/react-context': 1.1.1(@types/react@18.3.17)(react@18.3.1) + '@radix-ui/react-direction': 1.1.0(@types/react@18.3.17)(react@18.3.1) + '@radix-ui/react-primitive': 2.0.1(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-roving-focus': 1.1.1(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-separator': 1.1.1(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-toggle-group': 1.1.1(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) optionalDependencies: - '@types/react': 18.3.18 + '@types/react': 18.3.17 + '@types/react-dom': 19.0.3(@types/react@18.3.17) + + '@radix-ui/react-toolbar@1.1.1(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': + dependencies: + '@radix-ui/primitive': 1.1.1 + '@radix-ui/react-context': 1.1.1(@types/react@19.0.8)(react@19.0.0) + '@radix-ui/react-direction': 1.1.0(@types/react@19.0.8)(react@19.0.0) + '@radix-ui/react-primitive': 2.0.1(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-roving-focus': 1.1.1(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-separator': 1.1.1(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-toggle-group': 1.1.1(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + react: 19.0.0 + react-dom: 19.0.0(react@19.0.0) + optionalDependencies: + '@types/react': 19.0.8 + '@types/react-dom': 19.0.3(@types/react@19.0.8) '@radix-ui/react-use-callback-ref@1.0.1(@types/react@18.3.18)(react@18.3.1)': dependencies: @@ -8866,13 +10226,26 @@ snapshots: optionalDependencies: '@types/react': 18.3.18 - '@radix-ui/react-use-callback-ref@1.1.0(@types/react@18.3.18)(react@18.3.1)': + '@radix-ui/react-use-callback-ref@1.0.1(@types/react@19.0.8)(react@19.0.0)': + dependencies: + '@babel/runtime': 7.26.7 + react: 19.0.0 + optionalDependencies: + '@types/react': 19.0.8 + + '@radix-ui/react-use-callback-ref@1.1.0(@types/react@18.3.17)(react@18.3.1)': dependencies: react: 18.3.1 optionalDependencies: '@types/react': 18.3.18 - '@radix-ui/react-use-controllable-state@1.0.1(@types/react@18.3.18)(react@18.3.1)': + '@radix-ui/react-use-callback-ref@1.1.0(@types/react@19.0.8)(react@19.0.0)': + dependencies: + react: 19.0.0 + optionalDependencies: + '@types/react': 19.0.8 + + '@radix-ui/react-use-controllable-state@1.0.1(@types/react@18.3.17)(react@18.3.1)': dependencies: '@babel/runtime': 7.26.10 '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.3.18)(react@18.3.1) @@ -8880,14 +10253,29 @@ snapshots: optionalDependencies: '@types/react': 18.3.18 - '@radix-ui/react-use-controllable-state@1.1.0(@types/react@18.3.18)(react@18.3.1)': + '@radix-ui/react-use-controllable-state@1.0.1(@types/react@19.0.8)(react@19.0.0)': + dependencies: + '@babel/runtime': 7.26.7 + '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@19.0.8)(react@19.0.0) + react: 19.0.0 + optionalDependencies: + '@types/react': 19.0.8 + + '@radix-ui/react-use-controllable-state@1.1.0(@types/react@18.3.17)(react@18.3.1)': dependencies: '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.3.18)(react@18.3.1) react: 18.3.1 optionalDependencies: '@types/react': 18.3.18 - '@radix-ui/react-use-escape-keydown@1.0.3(@types/react@18.3.18)(react@18.3.1)': + '@radix-ui/react-use-controllable-state@1.1.0(@types/react@19.0.8)(react@19.0.0)': + dependencies: + '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@19.0.8)(react@19.0.0) + react: 19.0.0 + optionalDependencies: + '@types/react': 19.0.8 + + '@radix-ui/react-use-escape-keydown@1.0.3(@types/react@18.3.17)(react@18.3.1)': dependencies: '@babel/runtime': 7.26.10 '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.3.18)(react@18.3.1) @@ -8895,27 +10283,55 @@ snapshots: optionalDependencies: '@types/react': 18.3.18 - '@radix-ui/react-use-layout-effect@1.0.1(@types/react@18.3.18)(react@18.3.1)': + '@radix-ui/react-use-escape-keydown@1.0.3(@types/react@19.0.8)(react@19.0.0)': + dependencies: + '@babel/runtime': 7.26.7 + '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@19.0.8)(react@19.0.0) + react: 19.0.0 + optionalDependencies: + '@types/react': 19.0.8 + + '@radix-ui/react-use-layout-effect@1.0.1(@types/react@18.3.17)(react@18.3.1)': dependencies: '@babel/runtime': 7.26.10 react: 18.3.1 optionalDependencies: '@types/react': 18.3.18 - '@radix-ui/react-use-layout-effect@1.1.0(@types/react@18.3.18)(react@18.3.1)': + '@radix-ui/react-use-layout-effect@1.0.1(@types/react@19.0.8)(react@19.0.0)': + dependencies: + '@babel/runtime': 7.26.7 + react: 19.0.0 + optionalDependencies: + '@types/react': 19.0.8 + + '@radix-ui/react-use-layout-effect@1.1.0(@types/react@18.3.17)(react@18.3.1)': dependencies: react: 18.3.1 optionalDependencies: '@types/react': 18.3.18 - '@radix-ui/react-use-previous@1.0.1(@types/react@18.3.18)(react@18.3.1)': + '@radix-ui/react-use-layout-effect@1.1.0(@types/react@19.0.8)(react@19.0.0)': + dependencies: + react: 19.0.0 + optionalDependencies: + '@types/react': 19.0.8 + + '@radix-ui/react-use-previous@1.0.1(@types/react@18.3.17)(react@18.3.1)': dependencies: '@babel/runtime': 7.26.10 react: 18.3.1 optionalDependencies: '@types/react': 18.3.18 - '@radix-ui/react-use-rect@1.0.1(@types/react@18.3.18)(react@18.3.1)': + '@radix-ui/react-use-previous@1.0.1(@types/react@19.0.8)(react@19.0.0)': + dependencies: + '@babel/runtime': 7.26.7 + react: 19.0.0 + optionalDependencies: + '@types/react': 19.0.8 + + '@radix-ui/react-use-rect@1.0.1(@types/react@18.3.17)(react@18.3.1)': dependencies: '@babel/runtime': 7.26.10 '@radix-ui/rect': 1.0.1 @@ -8923,7 +10339,15 @@ snapshots: optionalDependencies: '@types/react': 18.3.18 - '@radix-ui/react-use-size@1.0.1(@types/react@18.3.18)(react@18.3.1)': + '@radix-ui/react-use-rect@1.0.1(@types/react@19.0.8)(react@19.0.0)': + dependencies: + '@babel/runtime': 7.26.7 + '@radix-ui/rect': 1.0.1 + react: 19.0.0 + optionalDependencies: + '@types/react': 19.0.8 + + '@radix-ui/react-use-size@1.0.1(@types/react@18.3.17)(react@18.3.1)': dependencies: '@babel/runtime': 7.26.10 '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@18.3.18)(react@18.3.1) @@ -8931,14 +10355,33 @@ snapshots: optionalDependencies: '@types/react': 18.3.18 - '@radix-ui/react-visually-hidden@1.0.3(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-use-size@1.0.1(@types/react@19.0.8)(react@19.0.0)': dependencies: - '@babel/runtime': 7.26.10 - '@radix-ui/react-primitive': 1.0.3(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@babel/runtime': 7.26.7 + '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@19.0.8)(react@19.0.0) + react: 19.0.0 + optionalDependencies: + '@types/react': 19.0.8 + + '@radix-ui/react-visually-hidden@1.0.3(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@babel/runtime': 7.26.7 + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) optionalDependencies: - '@types/react': 18.3.18 + '@types/react': 18.3.17 + '@types/react-dom': 19.0.3(@types/react@18.3.17) + + '@radix-ui/react-visually-hidden@1.0.3(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': + dependencies: + '@babel/runtime': 7.26.7 + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + react: 19.0.0 + react-dom: 19.0.0(react@19.0.0) + optionalDependencies: + '@types/react': 19.0.8 + '@types/react-dom': 19.0.3(@types/react@19.0.8) '@radix-ui/rect@1.0.1': dependencies: @@ -9057,15 +10500,31 @@ snapshots: polished: 4.3.1 uuid: 9.0.1 + '@storybook/addon-actions@8.5.3(storybook@8.5.3(prettier@3.4.2))': + dependencies: + '@storybook/global': 5.0.0 + '@types/uuid': 9.0.8 + dequal: 2.0.3 + polished: 4.3.1 + storybook: 8.5.3(prettier@3.4.2) + uuid: 9.0.1 + '@storybook/addon-backgrounds@7.6.20': dependencies: '@storybook/global': 5.0.0 memoizerific: 1.11.3 ts-dedent: 2.2.0 - '@storybook/addon-controls@7.6.20(@types/react@18.3.18)(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@storybook/addon-backgrounds@8.5.3(storybook@8.5.3(prettier@3.4.2))': + dependencies: + '@storybook/global': 5.0.0 + memoizerific: 1.11.3 + storybook: 8.5.3(prettier@3.4.2) + ts-dedent: 2.2.0 + + '@storybook/addon-controls@7.6.20(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@storybook/blocks': 7.6.20(@types/react@18.3.18)(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@storybook/blocks': 7.6.20(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) lodash: 4.17.21 ts-dedent: 2.2.0 transitivePeerDependencies: @@ -9076,13 +10535,20 @@ snapshots: - react-dom - supports-color - '@storybook/addon-docs@7.6.20(@types/react@18.3.18)(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@storybook/addon-controls@8.5.3(storybook@8.5.3(prettier@3.4.2))': + dependencies: + '@storybook/global': 5.0.0 + dequal: 2.0.3 + storybook: 8.5.3(prettier@3.4.2) + ts-dedent: 2.2.0 + + '@storybook/addon-docs@7.6.20(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@jest/transform': 29.7.0 '@mdx-js/react': 2.3.0(react@18.3.1) - '@storybook/blocks': 7.6.20(@types/react@18.3.18)(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@storybook/blocks': 7.6.20(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@storybook/client-logger': 7.6.20 - '@storybook/components': 7.6.20(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@storybook/components': 7.6.20(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@storybook/csf-plugin': 7.6.20 '@storybook/csf-tools': 7.6.20 '@storybook/global': 5.0.0 @@ -9105,12 +10571,54 @@ snapshots: - encoding - supports-color - '@storybook/addon-essentials@7.6.20(@types/react@18.3.18)(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@storybook/addon-docs@7.6.20(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(encoding@0.1.13)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': + dependencies: + '@jest/transform': 29.7.0 + '@mdx-js/react': 2.3.0(react@19.0.0) + '@storybook/blocks': 7.6.20(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(encoding@0.1.13)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@storybook/client-logger': 7.6.20 + '@storybook/components': 7.6.20(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@storybook/csf-plugin': 7.6.20 + '@storybook/csf-tools': 7.6.20 + '@storybook/global': 5.0.0 + '@storybook/mdx2-csf': 1.1.0 + '@storybook/node-logger': 7.6.20 + '@storybook/postinstall': 7.6.20 + '@storybook/preview-api': 7.6.20 + '@storybook/react-dom-shim': 7.6.20(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@storybook/theming': 7.6.20(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@storybook/types': 7.6.20 + fs-extra: 11.2.0 + react: 19.0.0 + react-dom: 19.0.0(react@19.0.0) + remark-external-links: 8.0.0 + remark-slug: 6.1.0 + ts-dedent: 2.2.0 + transitivePeerDependencies: + - '@types/react' + - '@types/react-dom' + - encoding + - supports-color + + '@storybook/addon-docs@8.5.3(@types/react@19.0.8)(storybook@8.5.3(prettier@3.4.2))': + dependencies: + '@mdx-js/react': 3.1.0(@types/react@19.0.8)(react@18.3.1) + '@storybook/blocks': 8.5.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.5.3(prettier@3.4.2)) + '@storybook/csf-plugin': 8.5.3(storybook@8.5.3(prettier@3.4.2)) + '@storybook/react-dom-shim': 8.5.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.5.3(prettier@3.4.2)) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + storybook: 8.5.3(prettier@3.4.2) + ts-dedent: 2.2.0 + transitivePeerDependencies: + - '@types/react' + + '@storybook/addon-essentials@7.6.20(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@storybook/addon-actions': 7.6.20 '@storybook/addon-backgrounds': 7.6.20 - '@storybook/addon-controls': 7.6.20(@types/react@18.3.18)(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@storybook/addon-docs': 7.6.20(@types/react@18.3.18)(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@storybook/addon-controls': 7.6.20(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@storybook/addon-docs': 7.6.20(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@storybook/addon-highlight': 7.6.20 '@storybook/addon-measure': 7.6.20 '@storybook/addon-outline': 7.6.20 @@ -9129,10 +10637,31 @@ snapshots: - encoding - supports-color + '@storybook/addon-essentials@8.5.3(@types/react@19.0.8)(storybook@8.5.3(prettier@3.4.2))': + dependencies: + '@storybook/addon-actions': 8.5.3(storybook@8.5.3(prettier@3.4.2)) + '@storybook/addon-backgrounds': 8.5.3(storybook@8.5.3(prettier@3.4.2)) + '@storybook/addon-controls': 8.5.3(storybook@8.5.3(prettier@3.4.2)) + '@storybook/addon-docs': 8.5.3(@types/react@19.0.8)(storybook@8.5.3(prettier@3.4.2)) + '@storybook/addon-highlight': 8.5.3(storybook@8.5.3(prettier@3.4.2)) + '@storybook/addon-measure': 8.5.3(storybook@8.5.3(prettier@3.4.2)) + '@storybook/addon-outline': 8.5.3(storybook@8.5.3(prettier@3.4.2)) + '@storybook/addon-toolbars': 8.5.3(storybook@8.5.3(prettier@3.4.2)) + '@storybook/addon-viewport': 8.5.3(storybook@8.5.3(prettier@3.4.2)) + storybook: 8.5.3(prettier@3.4.2) + ts-dedent: 2.2.0 + transitivePeerDependencies: + - '@types/react' + '@storybook/addon-highlight@7.6.20': dependencies: '@storybook/global': 5.0.0 + '@storybook/addon-highlight@8.5.3(storybook@8.5.3(prettier@3.4.2))': + dependencies: + '@storybook/global': 5.0.0 + storybook: 8.5.3(prettier@3.4.2) + '@storybook/addon-interactions@7.6.20': dependencies: '@storybook/global': 5.0.0 @@ -9141,6 +10670,15 @@ snapshots: polished: 4.3.1 ts-dedent: 2.2.0 + '@storybook/addon-interactions@8.5.3(storybook@8.5.3(prettier@3.4.2))': + dependencies: + '@storybook/global': 5.0.0 + '@storybook/instrumenter': 8.5.3(storybook@8.5.3(prettier@3.4.2)) + '@storybook/test': 8.5.3(storybook@8.5.3(prettier@3.4.2)) + polished: 4.3.1 + storybook: 8.5.3(prettier@3.4.2) + ts-dedent: 2.2.0 + '@storybook/addon-links@7.6.20(react@18.3.1)': dependencies: '@storybook/csf': 0.1.13 @@ -9149,6 +10687,14 @@ snapshots: optionalDependencies: react: 18.3.1 + '@storybook/addon-links@7.6.20(react@19.0.0)': + dependencies: + '@storybook/csf': 0.1.12 + '@storybook/global': 5.0.0 + ts-dedent: 2.2.0 + optionalDependencies: + react: 19.0.0 + '@storybook/addon-mdx-gfm@7.6.20': dependencies: '@storybook/node-logger': 7.6.20 @@ -9157,22 +10703,55 @@ snapshots: transitivePeerDependencies: - supports-color + '@storybook/addon-mdx-gfm@8.5.3(storybook@8.5.3(prettier@3.4.2))': + dependencies: + remark-gfm: 4.0.0 + storybook: 8.5.3(prettier@3.4.2) + ts-dedent: 2.2.0 + transitivePeerDependencies: + - supports-color + '@storybook/addon-measure@7.6.20': dependencies: '@storybook/global': 5.0.0 tiny-invariant: 1.3.3 + '@storybook/addon-measure@8.5.3(storybook@8.5.3(prettier@3.4.2))': + dependencies: + '@storybook/global': 5.0.0 + storybook: 8.5.3(prettier@3.4.2) + tiny-invariant: 1.3.3 + + '@storybook/addon-onboarding@8.5.3(storybook@8.5.3(prettier@3.4.2))': + dependencies: + storybook: 8.5.3(prettier@3.4.2) + '@storybook/addon-outline@7.6.20': dependencies: '@storybook/global': 5.0.0 ts-dedent: 2.2.0 + '@storybook/addon-outline@8.5.3(storybook@8.5.3(prettier@3.4.2))': + dependencies: + '@storybook/global': 5.0.0 + storybook: 8.5.3(prettier@3.4.2) + ts-dedent: 2.2.0 + '@storybook/addon-toolbars@7.6.20': {} + '@storybook/addon-toolbars@8.5.3(storybook@8.5.3(prettier@3.4.2))': + dependencies: + storybook: 8.5.3(prettier@3.4.2) + '@storybook/addon-viewport@7.6.20': dependencies: memoizerific: 1.11.3 + '@storybook/addon-viewport@8.5.3(storybook@8.5.3(prettier@3.4.2))': + dependencies: + memoizerific: 1.11.3 + storybook: 8.5.3(prettier@3.4.2) + '@storybook/addons@7.6.17(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@storybook/manager-api': 7.6.17(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -9190,11 +10769,11 @@ snapshots: - react - react-dom - '@storybook/blocks@7.6.20(@types/react@18.3.18)(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@storybook/blocks@7.6.20(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@storybook/channels': 7.6.20 '@storybook/client-logger': 7.6.20 - '@storybook/components': 7.6.20(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@storybook/components': 7.6.20(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@storybook/core-events': 7.6.20 '@storybook/csf': 0.1.13 '@storybook/docs-tools': 7.6.20(encoding@0.1.13) @@ -9223,6 +10802,59 @@ snapshots: - encoding - supports-color + '@storybook/blocks@7.6.20(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(encoding@0.1.13)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': + dependencies: + '@storybook/channels': 7.6.20 + '@storybook/client-logger': 7.6.20 + '@storybook/components': 7.6.20(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@storybook/core-events': 7.6.20 + '@storybook/csf': 0.1.12 + '@storybook/docs-tools': 7.6.20(encoding@0.1.13) + '@storybook/global': 5.0.0 + '@storybook/manager-api': 7.6.20(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@storybook/preview-api': 7.6.20 + '@storybook/theming': 7.6.20(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@storybook/types': 7.6.20 + '@types/lodash': 4.17.14 + color-convert: 2.0.1 + dequal: 2.0.3 + lodash: 4.17.21 + markdown-to-jsx: 7.7.2(react@19.0.0) + memoizerific: 1.11.3 + polished: 4.3.1 + react: 19.0.0 + react-colorful: 5.6.1(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + react-dom: 19.0.0(react@19.0.0) + telejson: 7.2.0 + tocbot: 4.32.2 + ts-dedent: 2.2.0 + util-deprecate: 1.0.2 + transitivePeerDependencies: + - '@types/react' + - '@types/react-dom' + - encoding + - supports-color + + '@storybook/blocks@8.5.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.5.3(prettier@3.4.2))': + dependencies: + '@storybook/csf': 0.1.12 + '@storybook/icons': 1.3.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + storybook: 8.5.3(prettier@3.4.2) + ts-dedent: 2.2.0 + optionalDependencies: + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + + '@storybook/blocks@8.5.3(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(storybook@8.5.3(prettier@3.4.2))': + dependencies: + '@storybook/csf': 0.1.12 + '@storybook/icons': 1.3.2(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + storybook: 8.5.3(prettier@3.4.2) + ts-dedent: 2.2.0 + optionalDependencies: + react: 19.0.0 + react-dom: 19.0.0(react@19.0.0) + '@storybook/builder-manager@7.6.20(encoding@0.1.13)': dependencies: '@fal-works/esbuild-plugin-global-externals': 2.1.2 @@ -9270,6 +10902,14 @@ snapshots: - encoding - supports-color + '@storybook/builder-vite@8.5.3(storybook@8.5.3(prettier@3.4.2))(vite@6.1.0(@types/node@22.12.0)(terser@5.37.0)(yaml@2.6.1))': + dependencies: + '@storybook/csf-plugin': 8.5.3(storybook@8.5.3(prettier@3.4.2)) + browser-assert: 1.2.1 + storybook: 8.5.3(prettier@3.4.2) + ts-dedent: 2.2.0 + vite: 6.1.0(@types/node@22.12.0)(terser@5.37.0)(yaml@2.6.1) + '@storybook/channels@7.6.17': dependencies: '@storybook/client-logger': 7.6.17 @@ -9368,10 +11008,10 @@ snapshots: transitivePeerDependencies: - supports-color - '@storybook/components@7.6.20(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@storybook/components@7.6.20(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@radix-ui/react-select': 1.2.2(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-toolbar': 1.1.2(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-select': 1.2.2(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-toolbar': 1.1.1(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@storybook/client-logger': 7.6.20 '@storybook/csf': 0.1.13 '@storybook/global': 5.0.0 @@ -9386,6 +11026,28 @@ snapshots: - '@types/react' - '@types/react-dom' + '@storybook/components@7.6.20(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': + dependencies: + '@radix-ui/react-select': 1.2.2(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-toolbar': 1.1.1(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@storybook/client-logger': 7.6.20 + '@storybook/csf': 0.1.12 + '@storybook/global': 5.0.0 + '@storybook/theming': 7.6.20(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@storybook/types': 7.6.20 + memoizerific: 1.11.3 + react: 19.0.0 + react-dom: 19.0.0(react@19.0.0) + use-resize-observer: 9.1.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + util-deprecate: 1.0.2 + transitivePeerDependencies: + - '@types/react' + - '@types/react-dom' + + '@storybook/components@8.5.3(storybook@8.5.3(prettier@3.4.2))': + dependencies: + storybook: 8.5.3(prettier@3.4.2) + '@storybook/core-client@7.6.20': dependencies: '@storybook/client-logger': 7.6.20 @@ -9476,6 +11138,26 @@ snapshots: - supports-color - utf-8-validate + '@storybook/core@8.5.3(prettier@3.4.2)': + dependencies: + '@storybook/csf': 0.1.12 + better-opn: 3.0.2 + browser-assert: 1.2.1 + esbuild: 0.24.2 + esbuild-register: 3.6.0(esbuild@0.24.2) + jsdoc-type-pratt-parser: 4.1.0 + process: 0.11.10 + recast: 0.23.9 + semver: 7.6.3 + util: 0.12.5 + ws: 8.18.0 + optionalDependencies: + prettier: 3.4.2 + transitivePeerDependencies: + - bufferutil + - supports-color + - utf-8-validate + '@storybook/csf-plugin@7.6.20': dependencies: '@storybook/csf-tools': 7.6.20 @@ -9483,6 +11165,11 @@ snapshots: transitivePeerDependencies: - supports-color + '@storybook/csf-plugin@8.5.3(storybook@8.5.3(prettier@3.4.2))': + dependencies: + storybook: 8.5.3(prettier@3.4.2) + unplugin: 1.16.0 + '@storybook/csf-tools@7.6.20': dependencies: '@babel/generator': 7.26.10 @@ -9518,6 +11205,22 @@ snapshots: '@storybook/global@5.0.0': {} + '@storybook/icons@1.3.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + + '@storybook/icons@1.3.2(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': + dependencies: + react: 19.0.0 + react-dom: 19.0.0(react@19.0.0) + + '@storybook/instrumenter@8.5.3(storybook@8.5.3(prettier@3.4.2))': + dependencies: + '@storybook/global': 5.0.0 + '@vitest/utils': 2.1.9 + storybook: 8.5.3(prettier@3.4.2) + '@storybook/manager-api@7.6.17(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@storybook/channels': 7.6.17 @@ -9558,6 +11261,30 @@ snapshots: - react - react-dom + '@storybook/manager-api@7.6.20(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': + dependencies: + '@storybook/channels': 7.6.20 + '@storybook/client-logger': 7.6.20 + '@storybook/core-events': 7.6.20 + '@storybook/csf': 0.1.12 + '@storybook/global': 5.0.0 + '@storybook/router': 7.6.20 + '@storybook/theming': 7.6.20(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@storybook/types': 7.6.20 + dequal: 2.0.3 + lodash: 4.17.21 + memoizerific: 1.11.3 + store2: 2.14.3 + telejson: 7.2.0 + ts-dedent: 2.2.0 + transitivePeerDependencies: + - react + - react-dom + + '@storybook/manager-api@8.5.3(storybook@8.5.3(prettier@3.4.2))': + dependencies: + storybook: 8.5.3(prettier@3.4.2) + '@storybook/manager@7.6.20': {} '@storybook/mdx2-csf@1.1.0': {} @@ -9604,6 +11331,10 @@ snapshots: ts-dedent: 2.2.0 util-deprecate: 1.0.2 + '@storybook/preview-api@8.5.3(storybook@8.5.3(prettier@3.4.2))': + dependencies: + storybook: 8.5.3(prettier@3.4.2) + '@storybook/preview@7.6.20': {} '@storybook/react-dom-shim@7.6.20(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': @@ -9611,7 +11342,24 @@ snapshots: react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - '@storybook/react-vite@7.6.20(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rollup@4.35.0)(typescript@5.8.2)(vite@6.2.2(@types/node@22.13.10)(terser@5.39.0)(yaml@2.7.0))': + '@storybook/react-dom-shim@7.6.20(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': + dependencies: + react: 19.0.0 + react-dom: 19.0.0(react@19.0.0) + + '@storybook/react-dom-shim@8.5.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.5.3(prettier@3.4.2))': + dependencies: + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + storybook: 8.5.3(prettier@3.4.2) + + '@storybook/react-dom-shim@8.5.3(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(storybook@8.5.3(prettier@3.4.2))': + dependencies: + react: 19.0.0 + react-dom: 19.0.0(react@19.0.0) + storybook: 8.5.3(prettier@3.4.2) + + '@storybook/react-vite@7.6.20(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rollup@4.32.0)(typescript@5.7.2)(vite@5.4.11(@types/node@22.12.0)(terser@5.37.0))': dependencies: '@joshwooding/vite-plugin-react-docgen-typescript': 0.3.0(typescript@5.8.2)(vite@6.2.2(@types/node@22.13.10)(terser@5.39.0)(yaml@2.7.0)) '@rollup/pluginutils': 5.1.4(rollup@4.35.0) @@ -9629,9 +11377,31 @@ snapshots: - rollup - supports-color - typescript - - vite-plugin-glimmerx + - vite-plugin-glimmerx + + '@storybook/react-vite@8.5.3(@storybook/test@8.5.3(storybook@8.5.3(prettier@3.4.2)))(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(rollup@4.32.0)(storybook@8.5.3(prettier@3.4.2))(typescript@5.7.3)(vite@6.1.0(@types/node@22.12.0)(terser@5.37.0)(yaml@2.6.1))': + dependencies: + '@joshwooding/vite-plugin-react-docgen-typescript': 0.4.2(typescript@5.7.3)(vite@6.1.0(@types/node@22.12.0)(terser@5.37.0)(yaml@2.6.1)) + '@rollup/pluginutils': 5.1.4(rollup@4.32.0) + '@storybook/builder-vite': 8.5.3(storybook@8.5.3(prettier@3.4.2))(vite@6.1.0(@types/node@22.12.0)(terser@5.37.0)(yaml@2.6.1)) + '@storybook/react': 8.5.3(@storybook/test@8.5.3(storybook@8.5.3(prettier@3.4.2)))(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(storybook@8.5.3(prettier@3.4.2))(typescript@5.7.3) + find-up: 5.0.0 + magic-string: 0.30.17 + react: 19.0.0 + react-docgen: 7.1.0 + react-dom: 19.0.0(react@19.0.0) + resolve: 1.22.9 + storybook: 8.5.3(prettier@3.4.2) + tsconfig-paths: 4.2.0 + vite: 6.1.0(@types/node@22.12.0)(terser@5.37.0)(yaml@2.6.1) + optionalDependencies: + '@storybook/test': 8.5.3(storybook@8.5.3(prettier@3.4.2)) + transitivePeerDependencies: + - rollup + - supports-color + - typescript - '@storybook/react@7.6.20(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.8.2)': + '@storybook/react@7.6.20(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.7.2)': dependencies: '@storybook/client-logger': 7.6.20 '@storybook/core-client': 7.6.20 @@ -9662,6 +11432,21 @@ snapshots: - encoding - supports-color + '@storybook/react@8.5.3(@storybook/test@8.5.3(storybook@8.5.3(prettier@3.4.2)))(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(storybook@8.5.3(prettier@3.4.2))(typescript@5.7.3)': + dependencies: + '@storybook/components': 8.5.3(storybook@8.5.3(prettier@3.4.2)) + '@storybook/global': 5.0.0 + '@storybook/manager-api': 8.5.3(storybook@8.5.3(prettier@3.4.2)) + '@storybook/preview-api': 8.5.3(storybook@8.5.3(prettier@3.4.2)) + '@storybook/react-dom-shim': 8.5.3(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(storybook@8.5.3(prettier@3.4.2)) + '@storybook/theming': 8.5.3(storybook@8.5.3(prettier@3.4.2)) + react: 19.0.0 + react-dom: 19.0.0(react@19.0.0) + storybook: 8.5.3(prettier@3.4.2) + optionalDependencies: + '@storybook/test': 8.5.3(storybook@8.5.3(prettier@3.4.2)) + typescript: 5.7.3 + '@storybook/router@7.6.17': dependencies: '@storybook/client-logger': 7.6.17 @@ -9688,6 +11473,18 @@ snapshots: - encoding - supports-color + '@storybook/test@8.5.3(storybook@8.5.3(prettier@3.4.2))': + dependencies: + '@storybook/csf': 0.1.12 + '@storybook/global': 5.0.0 + '@storybook/instrumenter': 8.5.3(storybook@8.5.3(prettier@3.4.2)) + '@testing-library/dom': 10.4.0 + '@testing-library/jest-dom': 6.5.0 + '@testing-library/user-event': 14.5.2(@testing-library/dom@10.4.0) + '@vitest/expect': 2.0.5 + '@vitest/spy': 2.0.5 + storybook: 8.5.3(prettier@3.4.2) + '@storybook/testing-library@0.2.2': dependencies: '@testing-library/dom': 9.3.4 @@ -9712,6 +11509,19 @@ snapshots: react: 18.3.1 react-dom: 18.3.1(react@18.3.1) + '@storybook/theming@7.6.20(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': + dependencies: + '@emotion/use-insertion-effect-with-fallbacks': 1.2.0(react@19.0.0) + '@storybook/client-logger': 7.6.20 + '@storybook/global': 5.0.0 + memoizerific: 1.11.3 + react: 19.0.0 + react-dom: 19.0.0(react@19.0.0) + + '@storybook/theming@8.5.3(storybook@8.5.3(prettier@3.4.2))': + dependencies: + storybook: 8.5.3(prettier@3.4.2) + '@storybook/types@7.6.17': dependencies: '@storybook/channels': 7.6.17 @@ -9765,7 +11575,17 @@ snapshots: lz-string: 1.5.0 pretty-format: 27.5.1 - '@testing-library/react@16.2.0(@testing-library/dom@10.4.0)(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': + '@testing-library/jest-dom@6.5.0': + dependencies: + '@adobe/css-tools': 4.4.1 + aria-query: 5.3.0 + chalk: 3.0.0 + css.escape: 1.5.1 + dom-accessibility-api: 0.6.3 + lodash: 4.17.21 + redent: 3.0.0 + + '@testing-library/react@16.2.0(@testing-library/dom@10.4.0)(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': dependencies: '@babel/runtime': 7.26.10 '@testing-library/dom': 10.4.0 @@ -9773,6 +11593,11 @@ snapshots: react-dom: 19.0.0(react@19.0.0) optionalDependencies: '@types/react': 19.0.8 + '@types/react-dom': 19.0.3(@types/react@19.0.8) + + '@testing-library/user-event@14.5.2(@testing-library/dom@10.4.0)': + dependencies: + '@testing-library/dom': 10.4.0 '@testing-library/user-event@14.6.1(@testing-library/dom@9.3.4)': dependencies: @@ -9915,6 +11740,10 @@ snapshots: dependencies: '@types/unist': 2.0.11 + '@types/mdast@4.0.4': + dependencies: + '@types/unist': 3.0.3 + '@types/mdx@2.0.13': {} '@types/mime-types@2.1.4': {} @@ -9954,6 +11783,15 @@ snapshots: '@types/range-parser@1.2.7': {} + '@types/react-dom@19.0.3(@types/react@18.3.17)': + dependencies: + '@types/react': 18.3.17 + optional: true + + '@types/react-dom@19.0.3(@types/react@19.0.8)': + dependencies: + '@types/react': 19.0.8 + '@types/react-test-renderer@19.0.0': dependencies: '@types/react': 19.0.8 @@ -9992,6 +11830,8 @@ snapshots: '@types/unist@2.0.11': {} + '@types/unist@3.0.3': {} + '@types/uuid@9.0.8': {} '@types/yargs-parser@21.0.3': {} @@ -10004,11 +11844,209 @@ snapshots: dependencies: '@types/yargs-parser': 21.0.3 - '@vitejs/plugin-react@3.1.0(vite@6.2.2(@types/node@22.13.10)(terser@5.39.0)(yaml@2.7.0))': + '@typescript-eslint/eslint-plugin@7.18.0(@typescript-eslint/parser@7.18.0(eslint@9.19.0)(typescript@5.7.2))(eslint@9.19.0)(typescript@5.7.2)': dependencies: - '@babel/core': 7.26.10 - '@babel/plugin-transform-react-jsx-self': 7.25.9(@babel/core@7.26.10) - '@babel/plugin-transform-react-jsx-source': 7.25.9(@babel/core@7.26.10) + '@eslint-community/regexpp': 4.12.1 + '@typescript-eslint/parser': 7.18.0(eslint@9.19.0)(typescript@5.7.2) + '@typescript-eslint/scope-manager': 7.18.0 + '@typescript-eslint/type-utils': 7.18.0(eslint@9.19.0)(typescript@5.7.2) + '@typescript-eslint/utils': 7.18.0(eslint@9.19.0)(typescript@5.7.2) + '@typescript-eslint/visitor-keys': 7.18.0 + eslint: 9.19.0 + graphemer: 1.4.0 + ignore: 5.3.2 + natural-compare: 1.4.0 + ts-api-utils: 1.4.3(typescript@5.7.2) + optionalDependencies: + typescript: 5.7.2 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/eslint-plugin@8.23.0(@typescript-eslint/parser@8.23.0(eslint@9.19.0)(typescript@5.7.3))(eslint@9.19.0)(typescript@5.7.3)': + dependencies: + '@eslint-community/regexpp': 4.12.1 + '@typescript-eslint/parser': 8.23.0(eslint@9.19.0)(typescript@5.7.3) + '@typescript-eslint/scope-manager': 8.23.0 + '@typescript-eslint/type-utils': 8.23.0(eslint@9.19.0)(typescript@5.7.3) + '@typescript-eslint/utils': 8.23.0(eslint@9.19.0)(typescript@5.7.3) + '@typescript-eslint/visitor-keys': 8.23.0 + eslint: 9.19.0 + graphemer: 1.4.0 + ignore: 5.3.2 + natural-compare: 1.4.0 + ts-api-utils: 2.0.1(typescript@5.7.3) + typescript: 5.7.3 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/parser@6.21.0(eslint@9.19.0)(typescript@5.7.2)': + dependencies: + '@typescript-eslint/scope-manager': 6.21.0 + '@typescript-eslint/types': 6.21.0 + '@typescript-eslint/typescript-estree': 6.21.0(typescript@5.7.2) + '@typescript-eslint/visitor-keys': 6.21.0 + debug: 4.4.0 + eslint: 9.19.0 + optionalDependencies: + typescript: 5.7.2 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/parser@7.18.0(eslint@9.19.0)(typescript@5.7.2)': + dependencies: + '@typescript-eslint/scope-manager': 7.18.0 + '@typescript-eslint/types': 7.18.0 + '@typescript-eslint/typescript-estree': 7.18.0(typescript@5.7.2) + '@typescript-eslint/visitor-keys': 7.18.0 + debug: 4.4.0 + eslint: 9.19.0 + optionalDependencies: + typescript: 5.7.2 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/parser@8.23.0(eslint@9.19.0)(typescript@5.7.3)': + dependencies: + '@typescript-eslint/scope-manager': 8.23.0 + '@typescript-eslint/types': 8.23.0 + '@typescript-eslint/typescript-estree': 8.23.0(typescript@5.7.3) + '@typescript-eslint/visitor-keys': 8.23.0 + debug: 4.4.0 + eslint: 9.19.0 + typescript: 5.7.3 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/scope-manager@6.21.0': + dependencies: + '@typescript-eslint/types': 6.21.0 + '@typescript-eslint/visitor-keys': 6.21.0 + + '@typescript-eslint/scope-manager@7.18.0': + dependencies: + '@typescript-eslint/types': 7.18.0 + '@typescript-eslint/visitor-keys': 7.18.0 + + '@typescript-eslint/scope-manager@8.23.0': + dependencies: + '@typescript-eslint/types': 8.23.0 + '@typescript-eslint/visitor-keys': 8.23.0 + + '@typescript-eslint/type-utils@7.18.0(eslint@9.19.0)(typescript@5.7.2)': + dependencies: + '@typescript-eslint/typescript-estree': 7.18.0(typescript@5.7.2) + '@typescript-eslint/utils': 7.18.0(eslint@9.19.0)(typescript@5.7.2) + debug: 4.4.0 + eslint: 9.19.0 + ts-api-utils: 1.4.3(typescript@5.7.2) + optionalDependencies: + typescript: 5.7.2 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/type-utils@8.23.0(eslint@9.19.0)(typescript@5.7.3)': + dependencies: + '@typescript-eslint/typescript-estree': 8.23.0(typescript@5.7.3) + '@typescript-eslint/utils': 8.23.0(eslint@9.19.0)(typescript@5.7.3) + debug: 4.4.0 + eslint: 9.19.0 + ts-api-utils: 2.0.1(typescript@5.7.3) + typescript: 5.7.3 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/types@6.21.0': {} + + '@typescript-eslint/types@7.18.0': {} + + '@typescript-eslint/types@8.23.0': {} + + '@typescript-eslint/typescript-estree@6.21.0(typescript@5.7.2)': + dependencies: + '@typescript-eslint/types': 6.21.0 + '@typescript-eslint/visitor-keys': 6.21.0 + debug: 4.4.0 + globby: 11.1.0 + is-glob: 4.0.3 + minimatch: 9.0.3 + semver: 7.6.3 + ts-api-utils: 1.4.3(typescript@5.7.2) + optionalDependencies: + typescript: 5.7.2 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/typescript-estree@7.18.0(typescript@5.7.2)': + dependencies: + '@typescript-eslint/types': 7.18.0 + '@typescript-eslint/visitor-keys': 7.18.0 + debug: 4.4.0 + globby: 11.1.0 + is-glob: 4.0.3 + minimatch: 9.0.5 + semver: 7.6.3 + ts-api-utils: 1.4.3(typescript@5.7.2) + optionalDependencies: + typescript: 5.7.2 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/typescript-estree@8.23.0(typescript@5.7.3)': + dependencies: + '@typescript-eslint/types': 8.23.0 + '@typescript-eslint/visitor-keys': 8.23.0 + debug: 4.4.0 + fast-glob: 3.3.2 + is-glob: 4.0.3 + minimatch: 9.0.5 + semver: 7.6.3 + ts-api-utils: 2.0.1(typescript@5.7.3) + typescript: 5.7.3 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/utils@7.18.0(eslint@9.19.0)(typescript@5.7.2)': + dependencies: + '@eslint-community/eslint-utils': 4.4.1(eslint@9.19.0) + '@typescript-eslint/scope-manager': 7.18.0 + '@typescript-eslint/types': 7.18.0 + '@typescript-eslint/typescript-estree': 7.18.0(typescript@5.7.2) + eslint: 9.19.0 + transitivePeerDependencies: + - supports-color + - typescript + + '@typescript-eslint/utils@8.23.0(eslint@9.19.0)(typescript@5.7.3)': + dependencies: + '@eslint-community/eslint-utils': 4.4.1(eslint@9.19.0) + '@typescript-eslint/scope-manager': 8.23.0 + '@typescript-eslint/types': 8.23.0 + '@typescript-eslint/typescript-estree': 8.23.0(typescript@5.7.3) + eslint: 9.19.0 + typescript: 5.7.3 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/visitor-keys@6.21.0': + dependencies: + '@typescript-eslint/types': 6.21.0 + eslint-visitor-keys: 3.4.3 + + '@typescript-eslint/visitor-keys@7.18.0': + dependencies: + '@typescript-eslint/types': 7.18.0 + eslint-visitor-keys: 3.4.3 + + '@typescript-eslint/visitor-keys@8.23.0': + dependencies: + '@typescript-eslint/types': 8.23.0 + eslint-visitor-keys: 4.2.0 + + '@vitejs/plugin-react@3.1.0(vite@5.4.11(@types/node@22.12.0)(terser@5.37.0))': + dependencies: + '@babel/core': 7.26.0 + '@babel/plugin-transform-react-jsx-self': 7.25.9(@babel/core@7.26.0) + '@babel/plugin-transform-react-jsx-source': 7.25.9(@babel/core@7.26.0) magic-string: 0.27.0 react-refresh: 0.14.2 vite: 6.2.2(@types/node@22.13.10)(terser@5.39.0)(yaml@2.7.0) @@ -10026,7 +12064,29 @@ snapshots: transitivePeerDependencies: - supports-color - '@vitest/coverage-v8@3.0.8(vitest@3.0.8(@types/debug@4.1.12)(@types/node@22.13.10)(jsdom@26.0.0)(msw@2.7.3(@types/node@22.13.10)(typescript@5.8.2))(terser@5.39.0)(yaml@2.7.0))': + '@vitejs/plugin-react@4.3.4(vite@6.0.11(@types/node@22.12.0)(terser@5.37.0)(yaml@2.6.1))': + dependencies: + '@babel/core': 7.26.0 + '@babel/plugin-transform-react-jsx-self': 7.25.9(@babel/core@7.26.0) + '@babel/plugin-transform-react-jsx-source': 7.25.9(@babel/core@7.26.0) + '@types/babel__core': 7.20.5 + react-refresh: 0.14.2 + vite: 6.0.11(@types/node@22.12.0)(terser@5.37.0)(yaml@2.6.1) + transitivePeerDependencies: + - supports-color + + '@vitejs/plugin-react@4.3.4(vite@6.1.0(@types/node@22.12.0)(terser@5.37.0)(yaml@2.6.1))': + dependencies: + '@babel/core': 7.26.0 + '@babel/plugin-transform-react-jsx-self': 7.25.9(@babel/core@7.26.0) + '@babel/plugin-transform-react-jsx-source': 7.25.9(@babel/core@7.26.0) + '@types/babel__core': 7.20.5 + react-refresh: 0.14.2 + vite: 6.1.0(@types/node@22.12.0)(terser@5.37.0)(yaml@2.6.1) + transitivePeerDependencies: + - supports-color + + '@vitest/coverage-v8@3.0.4(vitest@3.0.4(@types/debug@4.1.12)(@types/node@22.12.0)(jsdom@26.0.0)(msw@2.7.0(@types/node@22.12.0)(typescript@5.7.3))(terser@5.37.0)(yaml@2.6.1))': dependencies: '@ampproject/remapping': 2.3.0 '@bcoe/v8-coverage': 1.0.2 @@ -10044,7 +12104,14 @@ snapshots: transitivePeerDependencies: - supports-color - '@vitest/expect@3.0.8': + '@vitest/expect@2.0.5': + dependencies: + '@vitest/spy': 2.0.5 + '@vitest/utils': 2.0.5 + chai: 5.1.2 + tinyrainbow: 1.2.0 + + '@vitest/expect@3.0.4': dependencies: '@vitest/spy': 3.0.8 '@vitest/utils': 3.0.8 @@ -10060,7 +12127,15 @@ snapshots: msw: 2.7.3(@types/node@22.13.10)(typescript@5.8.2) vite: 6.2.2(@types/node@22.13.10)(terser@5.39.0)(yaml@2.7.0) - '@vitest/pretty-format@3.0.8': + '@vitest/pretty-format@2.0.5': + dependencies: + tinyrainbow: 1.2.0 + + '@vitest/pretty-format@2.1.9': + dependencies: + tinyrainbow: 1.2.0 + + '@vitest/pretty-format@3.0.4': dependencies: tinyrainbow: 2.0.0 @@ -10075,11 +12150,28 @@ snapshots: magic-string: 0.30.17 pathe: 2.0.3 - '@vitest/spy@3.0.8': + '@vitest/spy@2.0.5': + dependencies: + tinyspy: 3.0.2 + + '@vitest/spy@3.0.4': dependencies: tinyspy: 3.0.2 - '@vitest/utils@3.0.8': + '@vitest/utils@2.0.5': + dependencies: + '@vitest/pretty-format': 2.0.5 + estree-walker: 3.0.3 + loupe: 3.1.2 + tinyrainbow: 1.2.0 + + '@vitest/utils@2.1.9': + dependencies: + '@vitest/pretty-format': 2.1.9 + loupe: 3.1.2 + tinyrainbow: 1.2.0 + + '@vitest/utils@3.0.4': dependencies: '@vitest/pretty-format': 3.0.8 loupe: 3.1.3 @@ -10565,6 +12657,11 @@ snapshots: loupe: 3.1.3 pathval: 2.0.0 + chalk@3.0.0: + dependencies: + ansi-styles: 4.3.0 + supports-color: 7.2.0 + chalk@4.1.0: dependencies: ansi-styles: 4.3.0 @@ -10601,6 +12698,8 @@ snapshots: chownr@2.0.0: {} + chromatic@11.25.2: {} + chrome-trace-event@1.0.4: {} ci-info@3.9.0: {} @@ -10822,6 +12921,8 @@ snapshots: crypto-random-string@2.0.0: {} + css.escape@1.5.1: {} + cssesc@3.0.0: {} cssstyle@4.3.0: @@ -10949,6 +13050,10 @@ snapshots: transitivePeerDependencies: - supports-color + devlop@1.1.0: + dependencies: + dequal: 2.0.3 + diff-sequences@29.6.3: {} diff@5.2.0: {} @@ -10963,6 +13068,8 @@ snapshots: dom-accessibility-api@0.5.16: {} + dom-accessibility-api@0.6.3: {} + dot-prop@5.3.0: dependencies: is-obj: 2.0.0 @@ -11087,6 +13194,13 @@ snapshots: transitivePeerDependencies: - supports-color + esbuild-register@3.6.0(esbuild@0.24.2): + dependencies: + debug: 4.4.0 + esbuild: 0.24.2 + transitivePeerDependencies: + - supports-color + esbuild@0.18.20: optionalDependencies: '@esbuild/android-arm': 0.18.20 @@ -11148,18 +13262,229 @@ snapshots: escape-string-regexp@5.0.0: {} - escodegen@2.1.0: + escodegen@2.1.0: + dependencies: + esprima: 4.0.1 + estraverse: 5.3.0 + esutils: 2.0.3 + optionalDependencies: + source-map: 0.6.1 + + eslint-compat-utils@0.5.1(eslint@9.19.0): + dependencies: + eslint: 9.19.0 + semver: 7.6.3 + + eslint-config-love@43.1.0(@typescript-eslint/eslint-plugin@7.18.0(@typescript-eslint/parser@7.18.0(eslint@9.19.0)(typescript@5.7.2))(eslint@9.19.0)(typescript@5.7.2))(eslint-plugin-import@2.31.0(@typescript-eslint/parser@7.18.0(eslint@9.19.0)(typescript@5.7.2))(eslint@9.19.0))(eslint-plugin-n@16.6.2(eslint@9.19.0))(eslint-plugin-promise@6.6.0(eslint@9.19.0))(eslint@9.19.0)(typescript@5.7.2): + dependencies: + '@typescript-eslint/eslint-plugin': 7.18.0(@typescript-eslint/parser@7.18.0(eslint@9.19.0)(typescript@5.7.2))(eslint@9.19.0)(typescript@5.7.2) + '@typescript-eslint/parser': 6.21.0(eslint@9.19.0)(typescript@5.7.2) + eslint: 9.19.0 + eslint-config-standard: 17.1.0(eslint-plugin-import@2.31.0(@typescript-eslint/parser@7.18.0(eslint@9.19.0)(typescript@5.7.2))(eslint@9.19.0))(eslint-plugin-n@16.6.2(eslint@9.19.0))(eslint-plugin-promise@6.6.0(eslint@9.19.0))(eslint@9.19.0) + eslint-plugin-import: 2.31.0(@typescript-eslint/parser@7.18.0(eslint@9.19.0)(typescript@5.7.2))(eslint@9.19.0) + eslint-plugin-n: 16.6.2(eslint@9.19.0) + eslint-plugin-promise: 6.6.0(eslint@9.19.0) + typescript: 5.7.2 + transitivePeerDependencies: + - supports-color + + eslint-config-prettier@9.1.0(eslint@9.19.0): + dependencies: + eslint: 9.19.0 + + eslint-config-standard-jsx@11.0.0(eslint-plugin-react@7.37.2(eslint@9.19.0))(eslint@9.19.0): + dependencies: + eslint: 9.19.0 + eslint-plugin-react: 7.37.2(eslint@9.19.0) + + eslint-config-standard@17.1.0(eslint-plugin-import@2.31.0(@typescript-eslint/parser@7.18.0(eslint@9.19.0)(typescript@5.7.2))(eslint@9.19.0))(eslint-plugin-n@16.6.2(eslint@9.19.0))(eslint-plugin-promise@6.6.0(eslint@9.19.0))(eslint@9.19.0): + dependencies: + eslint: 9.19.0 + eslint-plugin-import: 2.31.0(@typescript-eslint/parser@7.18.0(eslint@9.19.0)(typescript@5.7.2))(eslint@9.19.0) + eslint-plugin-n: 16.6.2(eslint@9.19.0) + eslint-plugin-promise: 6.6.0(eslint@9.19.0) + + eslint-import-resolver-node@0.3.9: + dependencies: + debug: 3.2.7 + is-core-module: 2.16.0 + resolve: 1.22.9 + transitivePeerDependencies: + - supports-color + + eslint-module-utils@2.12.0(@typescript-eslint/parser@7.18.0(eslint@9.19.0)(typescript@5.7.2))(eslint-import-resolver-node@0.3.9)(eslint@9.19.0): + dependencies: + debug: 3.2.7 + optionalDependencies: + '@typescript-eslint/parser': 7.18.0(eslint@9.19.0)(typescript@5.7.2) + eslint: 9.19.0 + eslint-import-resolver-node: 0.3.9 + transitivePeerDependencies: + - supports-color + + eslint-plugin-es-x@7.8.0(eslint@9.19.0): + dependencies: + '@eslint-community/eslint-utils': 4.4.1(eslint@9.19.0) + '@eslint-community/regexpp': 4.12.1 + eslint: 9.19.0 + eslint-compat-utils: 0.5.1(eslint@9.19.0) + + eslint-plugin-import@2.31.0(@typescript-eslint/parser@7.18.0(eslint@9.19.0)(typescript@5.7.2))(eslint@9.19.0): + dependencies: + '@rtsao/scc': 1.1.0 + array-includes: 3.1.8 + array.prototype.findlastindex: 1.2.5 + array.prototype.flat: 1.3.3 + array.prototype.flatmap: 1.3.3 + debug: 3.2.7 + doctrine: 2.1.0 + eslint: 9.19.0 + eslint-import-resolver-node: 0.3.9 + eslint-module-utils: 2.12.0(@typescript-eslint/parser@7.18.0(eslint@9.19.0)(typescript@5.7.2))(eslint-import-resolver-node@0.3.9)(eslint@9.19.0) + hasown: 2.0.2 + is-core-module: 2.16.0 + is-glob: 4.0.3 + minimatch: 3.1.2 + object.fromentries: 2.0.8 + object.groupby: 1.0.3 + object.values: 1.2.0 + semver: 6.3.1 + string.prototype.trimend: 1.0.9 + tsconfig-paths: 3.15.0 + optionalDependencies: + '@typescript-eslint/parser': 7.18.0(eslint@9.19.0)(typescript@5.7.2) + transitivePeerDependencies: + - eslint-import-resolver-typescript + - eslint-import-resolver-webpack + - supports-color + + eslint-plugin-n@16.6.2(eslint@9.19.0): + dependencies: + '@eslint-community/eslint-utils': 4.4.1(eslint@9.19.0) + builtins: 5.1.0 + eslint: 9.19.0 + eslint-plugin-es-x: 7.8.0(eslint@9.19.0) + get-tsconfig: 4.8.1 + globals: 13.24.0 + ignore: 5.3.2 + is-builtin-module: 3.2.1 + is-core-module: 2.16.0 + minimatch: 3.1.2 + resolve: 1.22.9 + semver: 7.6.3 + + eslint-plugin-prettier@5.2.1(@types/eslint@9.6.1)(eslint-config-prettier@9.1.0(eslint@9.19.0))(eslint@9.19.0)(prettier@3.4.2): + dependencies: + eslint: 9.19.0 + prettier: 3.4.2 + prettier-linter-helpers: 1.0.0 + synckit: 0.9.2 + optionalDependencies: + '@types/eslint': 9.6.1 + eslint-config-prettier: 9.1.0(eslint@9.19.0) + + eslint-plugin-promise@6.6.0(eslint@9.19.0): + dependencies: + eslint: 9.19.0 + + eslint-plugin-react-hooks@5.1.0(eslint@9.19.0): + dependencies: + eslint: 9.19.0 + + eslint-plugin-react-refresh@0.4.18(eslint@9.19.0): + dependencies: + eslint: 9.19.0 + + eslint-plugin-react@7.37.2(eslint@9.19.0): + dependencies: + array-includes: 3.1.8 + array.prototype.findlast: 1.2.5 + array.prototype.flatmap: 1.3.3 + array.prototype.tosorted: 1.1.4 + doctrine: 2.1.0 + es-iterator-helpers: 1.2.0 + eslint: 9.19.0 + estraverse: 5.3.0 + hasown: 2.0.2 + jsx-ast-utils: 3.3.5 + minimatch: 3.1.2 + object.entries: 1.1.8 + object.fromentries: 2.0.8 + object.values: 1.2.0 + prop-types: 15.8.1 + resolve: 2.0.0-next.5 + semver: 6.3.1 + string.prototype.matchall: 4.0.11 + string.prototype.repeat: 1.0.0 + + eslint-plugin-storybook@0.11.2(eslint@9.19.0)(typescript@5.7.3): + dependencies: + '@storybook/csf': 0.1.12 + '@typescript-eslint/utils': 8.23.0(eslint@9.19.0)(typescript@5.7.3) + eslint: 9.19.0 + ts-dedent: 2.2.0 + transitivePeerDependencies: + - supports-color + - typescript + + eslint-scope@5.1.1: + dependencies: + esrecurse: 4.3.0 + estraverse: 4.3.0 + + eslint-scope@8.2.0: + dependencies: + esrecurse: 4.3.0 + estraverse: 5.3.0 + + eslint-visitor-keys@3.4.3: {} + + eslint-visitor-keys@4.2.0: {} + + eslint@9.19.0: dependencies: - esprima: 4.0.1 - estraverse: 5.3.0 + '@eslint-community/eslint-utils': 4.4.1(eslint@9.19.0) + '@eslint-community/regexpp': 4.12.1 + '@eslint/config-array': 0.19.1 + '@eslint/core': 0.10.0 + '@eslint/eslintrc': 3.2.0 + '@eslint/js': 9.19.0 + '@eslint/plugin-kit': 0.2.5 + '@humanfs/node': 0.16.6 + '@humanwhocodes/module-importer': 1.0.1 + '@humanwhocodes/retry': 0.4.1 + '@types/estree': 1.0.6 + '@types/json-schema': 7.0.15 + ajv: 6.12.6 + chalk: 4.1.2 + cross-spawn: 7.0.6 + debug: 4.4.0 + escape-string-regexp: 4.0.0 + eslint-scope: 8.2.0 + eslint-visitor-keys: 4.2.0 + espree: 10.3.0 + esquery: 1.6.0 esutils: 2.0.3 - optionalDependencies: - source-map: 0.6.1 + fast-deep-equal: 3.1.3 + file-entry-cache: 8.0.0 + find-up: 5.0.0 + glob-parent: 6.0.2 + ignore: 5.3.2 + imurmurhash: 0.1.4 + is-glob: 4.0.3 + json-stable-stringify-without-jsonify: 1.0.1 + lodash.merge: 4.6.2 + minimatch: 3.1.2 + natural-compare: 1.4.0 + optionator: 0.9.4 + transitivePeerDependencies: + - supports-color - eslint-scope@5.1.1: + espree@10.3.0: dependencies: - esrecurse: 4.3.0 - estraverse: 4.3.0 + acorn: 8.14.0 + acorn-jsx: 5.3.2(acorn@8.14.0) + eslint-visitor-keys: 4.2.0 esprima@4.0.1: {} @@ -11311,6 +13636,8 @@ snapshots: dependencies: minimatch: 5.1.6 + filesize@10.1.6: {} + fill-range@7.1.1: dependencies: to-regex-range: 5.0.1 @@ -11582,6 +13909,8 @@ snapshots: globals@14.0.0: {} + globals@15.14.0: {} + globalthis@1.0.4: dependencies: define-properties: 1.2.1 @@ -12098,6 +14427,8 @@ snapshots: transitivePeerDependencies: - supports-color + jsdoc-type-pratt-parser@4.1.0: {} + jsdom@26.0.0: dependencies: cssstyle: 4.3.0 @@ -12426,7 +14757,11 @@ snapshots: dependencies: react: 18.3.1 - math-intrinsics@1.1.0: {} + markdown-to-jsx@7.7.2(react@19.0.0): + dependencies: + react: 19.0.0 + + math-intrinsics@1.0.0: {} mdast-util-definitions@4.0.0: dependencies: @@ -12439,6 +14774,13 @@ snapshots: unist-util-is: 5.2.1 unist-util-visit-parents: 5.1.3 + mdast-util-find-and-replace@3.0.2: + dependencies: + '@types/mdast': 4.0.4 + escape-string-regexp: 5.0.0 + unist-util-is: 6.0.0 + unist-util-visit-parents: 6.0.1 + mdast-util-from-markdown@1.3.1: dependencies: '@types/mdast': 3.0.15 @@ -12456,6 +14798,23 @@ snapshots: transitivePeerDependencies: - supports-color + mdast-util-from-markdown@2.0.2: + dependencies: + '@types/mdast': 4.0.4 + '@types/unist': 3.0.3 + decode-named-character-reference: 1.0.2 + devlop: 1.1.0 + mdast-util-to-string: 4.0.0 + micromark: 4.0.1 + micromark-util-decode-numeric-character-reference: 2.0.2 + micromark-util-decode-string: 2.0.1 + micromark-util-normalize-identifier: 2.0.1 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.1 + unist-util-stringify-position: 4.0.0 + transitivePeerDependencies: + - supports-color + mdast-util-gfm-autolink-literal@1.0.3: dependencies: '@types/mdast': 3.0.15 @@ -12463,17 +14822,43 @@ snapshots: mdast-util-find-and-replace: 2.2.2 micromark-util-character: 1.2.0 + mdast-util-gfm-autolink-literal@2.0.1: + dependencies: + '@types/mdast': 4.0.4 + ccount: 2.0.1 + devlop: 1.1.0 + mdast-util-find-and-replace: 3.0.2 + micromark-util-character: 2.1.1 + mdast-util-gfm-footnote@1.0.2: dependencies: '@types/mdast': 3.0.15 mdast-util-to-markdown: 1.5.0 micromark-util-normalize-identifier: 1.1.0 + mdast-util-gfm-footnote@2.0.0: + dependencies: + '@types/mdast': 4.0.4 + devlop: 1.1.0 + mdast-util-from-markdown: 2.0.2 + mdast-util-to-markdown: 2.1.2 + micromark-util-normalize-identifier: 2.0.1 + transitivePeerDependencies: + - supports-color + mdast-util-gfm-strikethrough@1.0.3: dependencies: '@types/mdast': 3.0.15 mdast-util-to-markdown: 1.5.0 + mdast-util-gfm-strikethrough@2.0.0: + dependencies: + '@types/mdast': 4.0.4 + mdast-util-from-markdown: 2.0.2 + mdast-util-to-markdown: 2.1.2 + transitivePeerDependencies: + - supports-color + mdast-util-gfm-table@1.0.7: dependencies: '@types/mdast': 3.0.15 @@ -12483,11 +14868,30 @@ snapshots: transitivePeerDependencies: - supports-color + mdast-util-gfm-table@2.0.0: + dependencies: + '@types/mdast': 4.0.4 + devlop: 1.1.0 + markdown-table: 3.0.4 + mdast-util-from-markdown: 2.0.2 + mdast-util-to-markdown: 2.1.2 + transitivePeerDependencies: + - supports-color + mdast-util-gfm-task-list-item@1.0.2: dependencies: '@types/mdast': 3.0.15 mdast-util-to-markdown: 1.5.0 + mdast-util-gfm-task-list-item@2.0.0: + dependencies: + '@types/mdast': 4.0.4 + devlop: 1.1.0 + mdast-util-from-markdown: 2.0.2 + mdast-util-to-markdown: 2.1.2 + transitivePeerDependencies: + - supports-color + mdast-util-gfm@2.0.2: dependencies: mdast-util-from-markdown: 1.3.1 @@ -12500,11 +14904,28 @@ snapshots: transitivePeerDependencies: - supports-color + mdast-util-gfm@3.0.0: + dependencies: + mdast-util-from-markdown: 2.0.2 + mdast-util-gfm-autolink-literal: 2.0.1 + mdast-util-gfm-footnote: 2.0.0 + mdast-util-gfm-strikethrough: 2.0.0 + mdast-util-gfm-table: 2.0.0 + mdast-util-gfm-task-list-item: 2.0.0 + mdast-util-to-markdown: 2.1.2 + transitivePeerDependencies: + - supports-color + mdast-util-phrasing@3.0.1: dependencies: '@types/mdast': 3.0.15 unist-util-is: 5.2.1 + mdast-util-phrasing@4.1.0: + dependencies: + '@types/mdast': 4.0.4 + unist-util-is: 6.0.0 + mdast-util-to-markdown@1.5.0: dependencies: '@types/mdast': 3.0.15 @@ -12516,12 +14937,28 @@ snapshots: unist-util-visit: 4.1.2 zwitch: 2.0.4 + mdast-util-to-markdown@2.1.2: + dependencies: + '@types/mdast': 4.0.4 + '@types/unist': 3.0.3 + longest-streak: 3.1.0 + mdast-util-phrasing: 4.1.0 + mdast-util-to-string: 4.0.0 + micromark-util-classify-character: 2.0.1 + micromark-util-decode-string: 2.0.1 + unist-util-visit: 5.0.0 + zwitch: 2.0.4 + mdast-util-to-string@1.1.0: {} mdast-util-to-string@3.2.0: dependencies: '@types/mdast': 3.0.15 + mdast-util-to-string@4.0.0: + dependencies: + '@types/mdast': 4.0.4 + media-typer@0.3.0: {} memoizerific@1.11.3: @@ -12573,6 +15010,25 @@ snapshots: micromark-util-types: 1.1.0 uvu: 0.5.6 + micromark-core-commonmark@2.0.2: + dependencies: + decode-named-character-reference: 1.0.2 + devlop: 1.1.0 + micromark-factory-destination: 2.0.1 + micromark-factory-label: 2.0.1 + micromark-factory-space: 2.0.1 + micromark-factory-title: 2.0.1 + micromark-factory-whitespace: 2.0.1 + micromark-util-character: 2.1.1 + micromark-util-chunked: 2.0.1 + micromark-util-classify-character: 2.0.1 + micromark-util-html-tag-name: 2.0.1 + micromark-util-normalize-identifier: 2.0.1 + micromark-util-resolve-all: 2.0.1 + micromark-util-subtokenize: 2.0.4 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.1 + micromark-extension-gfm-autolink-literal@1.0.5: dependencies: micromark-util-character: 1.2.0 @@ -12580,6 +15036,13 @@ snapshots: micromark-util-symbol: 1.1.0 micromark-util-types: 1.1.0 + micromark-extension-gfm-autolink-literal@2.1.0: + dependencies: + micromark-util-character: 2.1.1 + micromark-util-sanitize-uri: 2.0.1 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.1 + micromark-extension-gfm-footnote@1.1.2: dependencies: micromark-core-commonmark: 1.1.0 @@ -12591,6 +15054,17 @@ snapshots: micromark-util-types: 1.1.0 uvu: 0.5.6 + micromark-extension-gfm-footnote@2.1.0: + dependencies: + devlop: 1.1.0 + micromark-core-commonmark: 2.0.2 + micromark-factory-space: 2.0.1 + micromark-util-character: 2.1.1 + micromark-util-normalize-identifier: 2.0.1 + micromark-util-sanitize-uri: 2.0.1 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.1 + micromark-extension-gfm-strikethrough@1.0.7: dependencies: micromark-util-chunked: 1.1.0 @@ -12600,6 +15074,15 @@ snapshots: micromark-util-types: 1.1.0 uvu: 0.5.6 + micromark-extension-gfm-strikethrough@2.1.0: + dependencies: + devlop: 1.1.0 + micromark-util-chunked: 2.0.1 + micromark-util-classify-character: 2.0.1 + micromark-util-resolve-all: 2.0.1 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.1 + micromark-extension-gfm-table@1.0.7: dependencies: micromark-factory-space: 1.1.0 @@ -12608,10 +15091,22 @@ snapshots: micromark-util-types: 1.1.0 uvu: 0.5.6 + micromark-extension-gfm-table@2.1.1: + dependencies: + devlop: 1.1.0 + micromark-factory-space: 2.0.1 + micromark-util-character: 2.1.1 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.1 + micromark-extension-gfm-tagfilter@1.0.2: dependencies: micromark-util-types: 1.1.0 + micromark-extension-gfm-tagfilter@2.0.0: + dependencies: + micromark-util-types: 2.0.1 + micromark-extension-gfm-task-list-item@1.0.5: dependencies: micromark-factory-space: 1.1.0 @@ -12620,6 +15115,14 @@ snapshots: micromark-util-types: 1.1.0 uvu: 0.5.6 + micromark-extension-gfm-task-list-item@2.1.0: + dependencies: + devlop: 1.1.0 + micromark-factory-space: 2.0.1 + micromark-util-character: 2.1.1 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.1 + micromark-extension-gfm@2.0.3: dependencies: micromark-extension-gfm-autolink-literal: 1.0.5 @@ -12631,12 +15134,29 @@ snapshots: micromark-util-combine-extensions: 1.1.0 micromark-util-types: 1.1.0 + micromark-extension-gfm@3.0.0: + dependencies: + micromark-extension-gfm-autolink-literal: 2.1.0 + micromark-extension-gfm-footnote: 2.1.0 + micromark-extension-gfm-strikethrough: 2.1.0 + micromark-extension-gfm-table: 2.1.1 + micromark-extension-gfm-tagfilter: 2.0.0 + micromark-extension-gfm-task-list-item: 2.1.0 + micromark-util-combine-extensions: 2.0.1 + micromark-util-types: 2.0.1 + micromark-factory-destination@1.1.0: dependencies: micromark-util-character: 1.2.0 micromark-util-symbol: 1.1.0 micromark-util-types: 1.1.0 + micromark-factory-destination@2.0.1: + dependencies: + micromark-util-character: 2.1.1 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.1 + micromark-factory-label@1.1.0: dependencies: micromark-util-character: 1.2.0 @@ -12644,11 +15164,23 @@ snapshots: micromark-util-types: 1.1.0 uvu: 0.5.6 + micromark-factory-label@2.0.1: + dependencies: + devlop: 1.1.0 + micromark-util-character: 2.1.1 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.1 + micromark-factory-space@1.1.0: dependencies: micromark-util-character: 1.2.0 micromark-util-types: 1.1.0 + micromark-factory-space@2.0.1: + dependencies: + micromark-util-character: 2.1.1 + micromark-util-types: 2.0.1 + micromark-factory-title@1.1.0: dependencies: micromark-factory-space: 1.1.0 @@ -12656,6 +15188,13 @@ snapshots: micromark-util-symbol: 1.1.0 micromark-util-types: 1.1.0 + micromark-factory-title@2.0.1: + dependencies: + micromark-factory-space: 2.0.1 + micromark-util-character: 2.1.1 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.1 + micromark-factory-whitespace@1.1.0: dependencies: micromark-factory-space: 1.1.0 @@ -12663,30 +15202,61 @@ snapshots: micromark-util-symbol: 1.1.0 micromark-util-types: 1.1.0 + micromark-factory-whitespace@2.0.1: + dependencies: + micromark-factory-space: 2.0.1 + micromark-util-character: 2.1.1 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.1 + micromark-util-character@1.2.0: dependencies: micromark-util-symbol: 1.1.0 micromark-util-types: 1.1.0 + micromark-util-character@2.1.1: + dependencies: + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.1 + micromark-util-chunked@1.1.0: dependencies: micromark-util-symbol: 1.1.0 + micromark-util-chunked@2.0.1: + dependencies: + micromark-util-symbol: 2.0.1 + micromark-util-classify-character@1.1.0: dependencies: micromark-util-character: 1.2.0 micromark-util-symbol: 1.1.0 micromark-util-types: 1.1.0 + micromark-util-classify-character@2.0.1: + dependencies: + micromark-util-character: 2.1.1 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.1 + micromark-util-combine-extensions@1.1.0: dependencies: micromark-util-chunked: 1.1.0 micromark-util-types: 1.1.0 + micromark-util-combine-extensions@2.0.1: + dependencies: + micromark-util-chunked: 2.0.1 + micromark-util-types: 2.0.1 + micromark-util-decode-numeric-character-reference@1.1.0: dependencies: micromark-util-symbol: 1.1.0 + micromark-util-decode-numeric-character-reference@2.0.2: + dependencies: + micromark-util-symbol: 2.0.1 + micromark-util-decode-string@1.1.0: dependencies: decode-named-character-reference: 1.1.0 @@ -12694,24 +15264,49 @@ snapshots: micromark-util-decode-numeric-character-reference: 1.1.0 micromark-util-symbol: 1.1.0 + micromark-util-decode-string@2.0.1: + dependencies: + decode-named-character-reference: 1.0.2 + micromark-util-character: 2.1.1 + micromark-util-decode-numeric-character-reference: 2.0.2 + micromark-util-symbol: 2.0.1 + micromark-util-encode@1.1.0: {} + micromark-util-encode@2.0.1: {} + micromark-util-html-tag-name@1.2.0: {} + micromark-util-html-tag-name@2.0.1: {} + micromark-util-normalize-identifier@1.1.0: dependencies: micromark-util-symbol: 1.1.0 + micromark-util-normalize-identifier@2.0.1: + dependencies: + micromark-util-symbol: 2.0.1 + micromark-util-resolve-all@1.1.0: dependencies: micromark-util-types: 1.1.0 + micromark-util-resolve-all@2.0.1: + dependencies: + micromark-util-types: 2.0.1 + micromark-util-sanitize-uri@1.2.0: dependencies: micromark-util-character: 1.2.0 micromark-util-encode: 1.1.0 micromark-util-symbol: 1.1.0 + micromark-util-sanitize-uri@2.0.1: + dependencies: + micromark-util-character: 2.1.1 + micromark-util-encode: 2.0.1 + micromark-util-symbol: 2.0.1 + micromark-util-subtokenize@1.1.0: dependencies: micromark-util-chunked: 1.1.0 @@ -12719,10 +15314,21 @@ snapshots: micromark-util-types: 1.1.0 uvu: 0.5.6 + micromark-util-subtokenize@2.0.4: + dependencies: + devlop: 1.1.0 + micromark-util-chunked: 2.0.1 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.1 + micromark-util-symbol@1.1.0: {} + micromark-util-symbol@2.0.1: {} + micromark-util-types@1.1.0: {} + micromark-util-types@2.0.1: {} + micromark@3.2.0: dependencies: '@types/debug': 4.1.12 @@ -12745,6 +15351,28 @@ snapshots: transitivePeerDependencies: - supports-color + micromark@4.0.1: + dependencies: + '@types/debug': 4.1.12 + debug: 4.4.0 + decode-named-character-reference: 1.0.2 + devlop: 1.1.0 + micromark-core-commonmark: 2.0.2 + micromark-factory-space: 2.0.1 + micromark-util-character: 2.1.1 + micromark-util-chunked: 2.0.1 + micromark-util-combine-extensions: 2.0.1 + micromark-util-decode-numeric-character-reference: 2.0.2 + micromark-util-encode: 2.0.1 + micromark-util-normalize-identifier: 2.0.1 + micromark-util-resolve-all: 2.0.1 + micromark-util-sanitize-uri: 2.0.1 + micromark-util-subtokenize: 2.0.4 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.1 + transitivePeerDependencies: + - supports-color + micromatch@4.0.8: dependencies: braces: 3.0.3 @@ -13556,11 +16184,25 @@ snapshots: react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - react-docgen-typescript@2.2.2(typescript@5.8.2): + react-colorful@5.6.1(react-dom@19.0.0(react@19.0.0))(react@19.0.0): + dependencies: + react: 19.0.0 + react-dom: 19.0.0(react@19.0.0) + + react-confetti@6.2.2(react@19.0.0): + dependencies: + react: 19.0.0 + tween-functions: 1.2.0 + + react-docgen-typescript@2.2.2(typescript@5.7.2): dependencies: typescript: 5.8.2 - react-docgen@7.1.1: + react-docgen-typescript@2.2.2(typescript@5.7.3): + dependencies: + typescript: 5.7.3 + + react-docgen@7.1.0: dependencies: '@babel/core': 7.26.10 '@babel/traverse': 7.26.10 @@ -13614,7 +16256,15 @@ snapshots: optionalDependencies: '@types/react': 18.3.18 - react-remove-scroll@2.5.5(@types/react@18.3.18)(react@18.3.1): + react-remove-scroll-bar@2.3.8(@types/react@19.0.8)(react@19.0.0): + dependencies: + react: 19.0.0 + react-style-singleton: 2.2.3(@types/react@19.0.8)(react@19.0.0) + tslib: 2.8.1 + optionalDependencies: + '@types/react': 19.0.8 + + react-remove-scroll@2.5.5(@types/react@18.3.17)(react@18.3.1): dependencies: react: 18.3.1 react-remove-scroll-bar: 2.3.8(@types/react@18.3.18)(react@18.3.1) @@ -13625,6 +16275,17 @@ snapshots: optionalDependencies: '@types/react': 18.3.18 + react-remove-scroll@2.5.5(@types/react@19.0.8)(react@19.0.0): + dependencies: + react: 19.0.0 + react-remove-scroll-bar: 2.3.8(@types/react@19.0.8)(react@19.0.0) + react-style-singleton: 2.2.3(@types/react@19.0.8)(react@19.0.0) + tslib: 2.8.1 + use-callback-ref: 1.3.3(@types/react@19.0.8)(react@19.0.0) + use-sidecar: 1.1.3(@types/react@19.0.8)(react@19.0.0) + optionalDependencies: + '@types/react': 19.0.8 + react-style-singleton@2.2.3(@types/react@18.3.17)(react@18.3.1): dependencies: get-nonce: 1.0.1 @@ -13633,6 +16294,14 @@ snapshots: optionalDependencies: '@types/react': 18.3.18 + react-style-singleton@2.2.3(@types/react@19.0.8)(react@19.0.0): + dependencies: + get-nonce: 1.0.1 + react: 19.0.0 + tslib: 2.8.1 + optionalDependencies: + '@types/react': 19.0.8 + react-test-renderer@19.0.0(react@19.0.0): dependencies: react: 19.0.0 @@ -13768,12 +16437,38 @@ snapshots: transitivePeerDependencies: - supports-color + remark-gfm@4.0.0: + dependencies: + '@types/mdast': 4.0.4 + mdast-util-gfm: 3.0.0 + micromark-extension-gfm: 3.0.0 + remark-parse: 11.0.0 + remark-stringify: 11.0.0 + unified: 11.0.5 + transitivePeerDependencies: + - supports-color + + remark-parse@11.0.0: + dependencies: + '@types/mdast': 4.0.4 + mdast-util-from-markdown: 2.0.2 + micromark-util-types: 2.0.1 + unified: 11.0.5 + transitivePeerDependencies: + - supports-color + remark-slug@6.1.0: dependencies: github-slugger: 1.5.0 mdast-util-to-string: 1.1.0 unist-util-visit: 2.0.3 + remark-stringify@11.0.0: + dependencies: + '@types/mdast': 4.0.4 + mdast-util-to-markdown: 2.1.2 + unified: 11.0.5 + require-directory@2.1.1: {} require-from-string@2.0.2: {} @@ -14117,6 +16812,16 @@ snapshots: - supports-color - utf-8-validate + storybook@8.5.3(prettier@3.4.2): + dependencies: + '@storybook/core': 8.5.3(prettier@3.4.2) + optionalDependencies: + prettier: 3.4.2 + transitivePeerDependencies: + - bufferutil + - supports-color + - utf-8-validate + stream-shift@1.0.3: {} strict-event-emitter@0.5.1: {} @@ -14301,6 +17006,8 @@ snapshots: tinypool@1.0.2: {} + tinyrainbow@1.2.0: {} + tinyrainbow@2.0.0: {} tinyspy@3.0.2: {} @@ -14356,6 +17063,14 @@ snapshots: trough@2.2.0: {} + ts-api-utils@1.4.3(typescript@5.7.2): + dependencies: + typescript: 5.7.2 + + ts-api-utils@2.0.1(typescript@5.7.3): + dependencies: + typescript: 5.7.3 + ts-dedent@2.2.0: {} ts-interface-checker@0.1.13: {} @@ -14418,6 +17133,12 @@ snapshots: transitivePeerDependencies: - supports-color + tween-functions@1.2.0: {} + + type-check@0.4.0: + dependencies: + prelude-ls: 1.2.1 + type-fest@0.16.0: {} type-fest@0.18.1: {} @@ -14441,6 +17162,16 @@ snapshots: typedarray@0.0.6: {} + typescript-eslint@8.23.0(eslint@9.19.0)(typescript@5.7.3): + dependencies: + '@typescript-eslint/eslint-plugin': 8.23.0(@typescript-eslint/parser@8.23.0(eslint@9.19.0)(typescript@5.7.3))(eslint@9.19.0)(typescript@5.7.3) + '@typescript-eslint/parser': 8.23.0(eslint@9.19.0)(typescript@5.7.3) + '@typescript-eslint/utils': 8.23.0(eslint@9.19.0)(typescript@5.7.3) + eslint: 9.19.0 + typescript: 5.7.3 + transitivePeerDependencies: + - supports-color + typescript@4.9.5: {} typescript@5.8.2: {} @@ -14475,6 +17206,16 @@ snapshots: trough: 2.2.0 vfile: 5.3.7 + unified@11.0.5: + dependencies: + '@types/unist': 3.0.3 + bail: 2.0.2 + devlop: 1.1.0 + extend: 3.0.2 + is-plain-obj: 4.1.0 + trough: 2.2.0 + vfile: 6.0.3 + unique-filename@3.0.0: dependencies: unique-slug: 4.0.0 @@ -14493,10 +17234,18 @@ snapshots: dependencies: '@types/unist': 2.0.11 + unist-util-is@6.0.0: + dependencies: + '@types/unist': 3.0.3 + unist-util-stringify-position@3.0.3: dependencies: '@types/unist': 2.0.11 + unist-util-stringify-position@4.0.0: + dependencies: + '@types/unist': 3.0.3 + unist-util-visit-parents@3.1.1: dependencies: '@types/unist': 2.0.11 @@ -14507,6 +17256,11 @@ snapshots: '@types/unist': 2.0.11 unist-util-is: 5.2.1 + unist-util-visit-parents@6.0.1: + dependencies: + '@types/unist': 3.0.3 + unist-util-is: 6.0.0 + unist-util-visit@2.0.3: dependencies: '@types/unist': 2.0.11 @@ -14519,6 +17273,12 @@ snapshots: unist-util-is: 5.2.1 unist-util-visit-parents: 5.1.3 + unist-util-visit@5.0.0: + dependencies: + '@types/unist': 3.0.3 + unist-util-is: 6.0.0 + unist-util-visit-parents: 6.0.1 + universal-user-agent@6.0.1: {} universalify@0.2.0: {} @@ -14554,13 +17314,26 @@ snapshots: optionalDependencies: '@types/react': 18.3.18 + use-callback-ref@1.3.3(@types/react@19.0.8)(react@19.0.0): + dependencies: + react: 19.0.0 + tslib: 2.8.1 + optionalDependencies: + '@types/react': 19.0.8 + use-resize-observer@9.1.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1): dependencies: '@juggle/resize-observer': 3.4.0 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - use-sidecar@1.1.3(@types/react@18.3.18)(react@18.3.1): + use-resize-observer@9.1.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0): + dependencies: + '@juggle/resize-observer': 3.4.0 + react: 19.0.0 + react-dom: 19.0.0(react@19.0.0) + + use-sidecar@1.1.3(@types/react@18.3.17)(react@18.3.1): dependencies: detect-node-es: 1.1.0 react: 18.3.1 @@ -14568,6 +17341,14 @@ snapshots: optionalDependencies: '@types/react': 18.3.18 + use-sidecar@1.1.3(@types/react@19.0.8)(react@19.0.0): + dependencies: + detect-node-es: 1.1.0 + react: 19.0.0 + tslib: 2.8.1 + optionalDependencies: + '@types/react': 19.0.8 + util-deprecate@1.0.2: {} util@0.12.5: @@ -14605,6 +17386,11 @@ snapshots: '@types/unist': 2.0.11 unist-util-stringify-position: 3.0.3 + vfile-message@4.0.2: + dependencies: + '@types/unist': 3.0.3 + unist-util-stringify-position: 4.0.0 + vfile@5.3.7: dependencies: '@types/unist': 2.0.11 @@ -14612,13 +17398,18 @@ snapshots: unist-util-stringify-position: 3.0.3 vfile-message: 3.1.4 - vite-node@3.0.8(@types/node@22.13.10)(terser@5.39.0)(yaml@2.7.0): + vfile@6.0.3: + dependencies: + '@types/unist': 3.0.3 + vfile-message: 4.0.2 + + vite-node@3.0.4(@types/node@22.12.0)(terser@5.37.0)(yaml@2.6.1): dependencies: cac: 6.7.14 debug: 4.4.0 es-module-lexer: 1.6.0 - pathe: 2.0.3 - vite: 6.2.2(@types/node@22.13.10)(terser@5.39.0)(yaml@2.7.0) + pathe: 2.0.2 + vite: 6.1.0(@types/node@22.12.0)(terser@5.37.0)(yaml@2.6.1) transitivePeerDependencies: - '@types/node' - jiti @@ -14650,21 +17441,65 @@ snapshots: postcss: 8.5.3 rollup: 4.35.0 optionalDependencies: - '@types/node': 22.13.10 + vite: 6.0.11(@types/node@22.12.0)(terser@5.37.0)(yaml@2.6.1) + transitivePeerDependencies: + - supports-color + - typescript + + vite-tsconfig-paths@5.1.4(typescript@5.7.3)(vite@6.1.0(@types/node@22.12.0)(terser@5.37.0)(yaml@2.6.1)): + dependencies: + debug: 4.4.0 + globrex: 0.1.2 + tsconfck: 3.1.4(typescript@5.7.3) + optionalDependencies: + vite: 6.1.0(@types/node@22.12.0)(terser@5.37.0)(yaml@2.6.1) + transitivePeerDependencies: + - supports-color + - typescript + + vite@5.4.11(@types/node@22.12.0)(terser@5.37.0): + dependencies: + esbuild: 0.21.5 + postcss: 8.4.49 + rollup: 4.28.1 + optionalDependencies: + '@types/node': 22.12.0 fsevents: 2.3.3 terser: 5.39.0 yaml: 2.7.0 vitest@3.0.8(@types/debug@4.1.12)(@types/node@22.13.10)(jsdom@26.0.0)(msw@2.7.3(@types/node@22.13.10)(typescript@5.8.2))(terser@5.39.0)(yaml@2.7.0): dependencies: - '@vitest/expect': 3.0.8 - '@vitest/mocker': 3.0.8(msw@2.7.3(@types/node@22.13.10)(typescript@5.8.2))(vite@6.2.2(@types/node@22.13.10)(terser@5.39.0)(yaml@2.7.0)) - '@vitest/pretty-format': 3.0.8 - '@vitest/runner': 3.0.8 - '@vitest/snapshot': 3.0.8 - '@vitest/spy': 3.0.8 - '@vitest/utils': 3.0.8 - chai: 5.2.0 + esbuild: 0.24.2 + postcss: 8.5.1 + rollup: 4.32.0 + optionalDependencies: + '@types/node': 22.12.0 + fsevents: 2.3.3 + terser: 5.37.0 + yaml: 2.6.1 + + vite@6.1.0(@types/node@22.12.0)(terser@5.37.0)(yaml@2.6.1): + dependencies: + esbuild: 0.24.2 + postcss: 8.5.1 + rollup: 4.32.0 + optionalDependencies: + '@types/node': 22.12.0 + fsevents: 2.3.3 + terser: 5.37.0 + yaml: 2.6.1 + + vitest@3.0.4(@types/debug@4.1.12)(@types/node@22.12.0)(jsdom@26.0.0)(msw@2.7.0(@types/node@22.12.0)(typescript@5.7.3))(terser@5.37.0)(yaml@2.6.1): + dependencies: + '@vitest/expect': 3.0.4 + '@vitest/mocker': 3.0.4(msw@2.7.0(@types/node@22.12.0)(typescript@5.7.3))(vite@6.0.11(@types/node@22.12.0)(terser@5.37.0)(yaml@2.6.1)) + '@vitest/pretty-format': 3.0.4 + '@vitest/runner': 3.0.4 + '@vitest/snapshot': 3.0.4 + '@vitest/spy': 3.0.4 + '@vitest/utils': 3.0.4 + chai: 5.1.2 debug: 4.4.0 expect-type: 1.2.0 magic-string: 0.30.17 From 066d1802cb12db4921f6c37cf588adffa21c34d2 Mon Sep 17 00:00:00 2001 From: Alessandro Casazza Date: Thu, 27 Mar 2025 10:44:47 +0100 Subject: [PATCH 05/10] Add new getAccessToken function. Resolve #617 --- package.json | 6 +- packages/core/package.json | 23 +- packages/core/src/auth/getAccessToken.spec.ts | 4 +- packages/core/tsconfig.json | 47 +- packages/core/tsup.config.ts | 15 +- pnpm-lock.yaml | 3241 +++++++---------- 6 files changed, 1308 insertions(+), 2028 deletions(-) diff --git a/package.json b/package.json index 5d0a5daa..464095d3 100644 --- a/package.json +++ b/package.json @@ -22,9 +22,9 @@ "devDependencies": { "@biomejs/biome": "1.9.4", "husky": "^9.1.7", - "lerna": "^8.1.9", - "typescript": "^5.7.3", - "vitest": "^3.0.4" + "lerna": "^8.2.1", + "typescript": "^5.8.2", + "vitest": "^3.0.9" }, "pnpm": { "overrides": { diff --git a/packages/core/package.json b/packages/core/package.json index 3b516ef5..09d3e787 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -5,20 +5,22 @@ "type": "module", "main": "./dist/index.js", "exports": { + "./package.json": "./package.json", ".": { "import": "./dist/index.js", - "require": "./dist/index.cjs", - "types": "./dist/index.d.ts" + "default": "./dist/index.cjs" } }, "keywords": ["jamstack", "headless", "ecommerce", "api", "components"], "scripts": { - "lint": "biome lint --error-on-warnings ./src", + "check-exports": "attw --pack .", + "lint": "biome lint --error-on-warnings ./src && tsc", "lint:fix": "pnpm biome lint --write ./src", "test": "pnpm run lint && vitest --silent", "test:watch": "vitest", "coverage": "vitest run --coverage", - "build": "tsup" + "build": "tsup", + "ci": "pnpm build && pnpm check-exports && pnpm lint" }, "publishConfig": { "access": "public" @@ -29,15 +31,16 @@ }, "license": "MIT", "devDependencies": { - "@vitest/coverage-v8": "^3.0.4", - "tsup": "^8.3.6", - "typescript": "^5.7.3", + "@arethetypeswrong/cli": "^0.17.4", + "@vitest/coverage-v8": "^3.0.9", + "tsup": "^8.4.0", + "typescript": "^5.8.2", "vite-tsconfig-paths": "^5.1.4", - "vitest": "^3.0.4" + "vitest": "^3.0.9" }, "dependencies": { - "@commercelayer/js-auth": "^6.7.0", - "@commercelayer/sdk": "6.29.2", + "@commercelayer/js-auth": "^6.7.1", + "@commercelayer/sdk": "6.36.0", "jwt-decode": "^4.0.0" } } diff --git a/packages/core/src/auth/getAccessToken.spec.ts b/packages/core/src/auth/getAccessToken.spec.ts index ff92d323..a57d0a39 100644 --- a/packages/core/src/auth/getAccessToken.spec.ts +++ b/packages/core/src/auth/getAccessToken.spec.ts @@ -1,7 +1,7 @@ import { authenticate } from "@commercelayer/js-auth" import { describe, expect, vi } from "vitest" -import { coreTest } from "../../extender.js" -import { getAccessToken } from "./getAccessToken.js" +import { coreTest } from "../../extender" +import { getAccessToken } from "./getAccessToken" vi.mock("@commercelayer/js-auth", () => ({ authenticate: vi.fn(), diff --git a/packages/core/tsconfig.json b/packages/core/tsconfig.json index c920654c..9c1f4f07 100644 --- a/packages/core/tsconfig.json +++ b/packages/core/tsconfig.json @@ -1,27 +1,30 @@ { "compilerOptions": { - /* Visit https://aka.ms/tsconfig.json to read more about this file */ - /* Module Resolution Options */ - "module": "Node16", - "target": "ES2022", - "moduleResolution": "Node16", - "verbatimModuleSyntax": true, - /* Other Options */ + /* Base Options: */ + "esModuleInterop": true, + "skipLibCheck": true, + "target": "es2022", + "allowJs": true, "resolveJsonModule": true, - "declaration": true /* Generates corresponding '.d.ts' file. */, - "strict": true /* Enable all strict type-checking options. */, - "noUnusedLocals": true /* Report errors on unused locals. */, - "noUnusedParameters": true /* Report errors on unused parameters. */, - "noImplicitReturns": true /* Report error when not all code paths in function return a value. */, - "noFallthroughCasesInSwitch": true /* Report errors for fallthrough cases in switch statement. */, - "noUncheckedIndexedAccess": true /* Include 'undefined' in index signature results */, - "noPropertyAccessFromIndexSignature": true /* Require undeclared properties from index signatures to use element accesses. */, - "types": ["vitest/globals"], - "baseUrl": "." /* Base directory to resolve non-absolute module names. */, - "esModuleInterop": true /* Enables emit interoperability between CommonJS and ES Modules via creation of namespace objects for all imports. Implies 'allowSyntheticDefaultImports'. */, - "skipLibCheck": true /* Skip type checking of declaration files. */, - "forceConsistentCasingInFileNames": true /* Disallow inconsistently-cased references to the same file. */ + "moduleDetection": "force", + "isolatedModules": true, + "verbatimModuleSyntax": true, + "lib": ["es2022"], + + /* Strictness */ + "strict": true, + "noUncheckedIndexedAccess": true, + "noImplicitOverride": true, + + /* If transpiling with TypeScript: */ + "module": "Preserve", + + /* Relative Paths */ + "baseUrl": ".", + "paths": { + "#sdk": ["src/sdk/index.ts"], + "#types": ["src/types/index.ts"] + } }, - "include": ["**/*.ts", ".eslintrc.cjs", "src/hooks/useAuthenticate.tsx"], - "exclude": ["node_modules"] + "exclude": ["node_modules", "dist", "coverage", "*.spec.ts"] } diff --git a/packages/core/tsup.config.ts b/packages/core/tsup.config.ts index 486ecc49..39f89612 100644 --- a/packages/core/tsup.config.ts +++ b/packages/core/tsup.config.ts @@ -3,13 +3,10 @@ import { defineConfig } from "tsup" const env = process.env.NODE_ENV export default defineConfig((options) => ({ - sourcemap: true, // source map is only available in prod - clean: true, // clean dist before build - dts: true, // generate dts file for main module - format: ["cjs", "esm"], // generate cjs and esm files - minify: !options.watch, - bundle: true, - watch: env === "development", - target: "es2020", - entry: ["src/index.ts"], + entryPoints: ["src/index.ts"], + format: ["cjs", "esm"], + dts: true, + outDir: "dist", + clean: true, + treeshake: true, })) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 01f5a02b..0d4206b6 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -35,39 +35,42 @@ importers: specifier: ^8.2.1 version: 8.2.1(encoding@0.1.13) typescript: - specifier: ^5.7.3 - version: 5.7.3 + specifier: ^5.8.2 + version: 5.8.2 vitest: - specifier: ^3.0.4 - version: 3.0.4(@types/debug@4.1.12)(@types/node@22.12.0)(jsdom@26.0.0)(msw@2.7.0(@types/node@22.12.0)(typescript@5.7.3))(terser@5.37.0)(yaml@2.6.1) + specifier: ^3.0.9 + version: 3.0.9(@types/debug@4.1.12)(@types/node@22.13.14)(jsdom@26.0.0)(msw@2.7.3(@types/node@22.13.14)(typescript@5.8.2))(terser@5.39.0)(yaml@2.7.0) packages/core: dependencies: '@commercelayer/js-auth': - specifier: ^6.7.0 - version: 6.7.0 + specifier: ^6.7.1 + version: 6.7.1 '@commercelayer/sdk': - specifier: 6.29.2 - version: 6.29.2 + specifier: 6.36.0 + version: 6.36.0 jwt-decode: specifier: ^4.0.0 version: 4.0.0 devDependencies: + '@arethetypeswrong/cli': + specifier: ^0.17.4 + version: 0.17.4 '@vitest/coverage-v8': - specifier: ^3.0.4 - version: 3.0.4(vitest@3.0.4(@types/debug@4.1.12)(@types/node@22.12.0)(jsdom@26.0.0)(msw@2.7.0(@types/node@22.12.0)(typescript@5.7.3))(terser@5.37.0)(yaml@2.6.1)) + specifier: ^3.0.9 + version: 3.0.9(vitest@3.0.9(@types/debug@4.1.12)(@types/node@22.13.14)(jsdom@26.0.0)(msw@2.7.3(@types/node@22.13.14)(typescript@5.8.2))(terser@5.39.0)(yaml@2.7.0)) tsup: - specifier: ^8.3.6 - version: 8.3.6(postcss@8.5.1)(typescript@5.7.3)(yaml@2.6.1) + specifier: ^8.4.0 + version: 8.4.0(postcss@8.5.3)(typescript@5.8.2)(yaml@2.7.0) typescript: - specifier: ^5.7.3 - version: 5.7.3 + specifier: ^5.8.2 + version: 5.8.2 vite-tsconfig-paths: specifier: ^5.1.4 - version: 5.1.4(typescript@5.7.3)(vite@6.1.0(@types/node@22.12.0)(terser@5.37.0)(yaml@2.6.1)) + version: 5.1.4(typescript@5.8.2)(vite@6.2.3(@types/node@22.13.14)(terser@5.39.0)(yaml@2.7.0)) vitest: - specifier: ^3.0.4 - version: 3.0.4(@types/debug@4.1.12)(@types/node@22.12.0)(jsdom@26.0.0)(msw@2.7.0(@types/node@22.12.0)(typescript@5.7.3))(terser@5.37.0)(yaml@2.6.1) + specifier: ^3.0.9 + version: 3.0.9(@types/debug@4.1.12)(@types/node@22.13.14)(jsdom@26.0.0)(msw@2.7.3(@types/node@22.13.14)(typescript@5.8.2))(terser@5.39.0)(yaml@2.7.0) packages/docs: devDependencies: @@ -75,11 +78,8 @@ importers: specifier: ^7.26.9 version: 7.26.10 '@babel/preset-env': - specifier: ^7.26.0 - version: 7.26.0(@babel/core@7.26.0) - '@commercelayer/eslint-config-ts-react': - specifier: ^1.3.0 - version: 1.4.5(@types/eslint@9.6.1)(eslint@9.19.0)(react@18.3.1)(typescript@5.7.2) + specifier: ^7.26.9 + version: 7.26.9(@babel/core@7.26.10) '@commercelayer/js-auth': specifier: ^6.7.1 version: 6.7.1 @@ -97,10 +97,10 @@ importers: version: 7.6.20 '@storybook/addon-docs': specifier: ^7.6.17 - version: 7.6.20(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 7.6.20(@types/react-dom@19.0.4(@types/react@18.3.18))(@types/react@18.3.18)(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@storybook/addon-essentials': specifier: ^7.6.17 - version: 7.6.20(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 7.6.20(@types/react-dom@19.0.4(@types/react@18.3.18))(@types/react@18.3.18)(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@storybook/addon-interactions': specifier: ^7.6.17 version: 7.6.20 @@ -124,7 +124,7 @@ importers: version: 7.6.17(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@storybook/blocks': specifier: ^7.6.17 - version: 7.6.20(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 7.6.20(@types/react-dom@19.0.4(@types/react@18.3.18))(@types/react@18.3.18)(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@storybook/client-api': specifier: ^7.6.17 version: 7.6.17 @@ -142,7 +142,7 @@ importers: version: 7.6.20(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.8.2) '@storybook/react-vite': specifier: ^7.6.17 - version: 7.6.20(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rollup@4.35.0)(typescript@5.8.2)(vite@6.2.2(@types/node@22.13.10)(terser@5.39.0)(yaml@2.7.0)) + version: 7.6.20(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rollup@4.35.0)(typescript@5.8.2)(vite@6.2.2(@types/node@22.13.14)(terser@5.39.0)(yaml@2.7.0)) '@storybook/testing-library': specifier: ^0.2.2 version: 0.2.2 @@ -157,7 +157,7 @@ importers: version: 18.3.18 '@vitejs/plugin-react': specifier: ^4.3.4 - version: 4.3.4(vite@6.2.2(@types/node@22.13.10)(terser@5.39.0)(yaml@2.7.0)) + version: 4.3.4(vite@6.2.2(@types/node@22.13.14)(terser@5.39.0)(yaml@2.7.0)) babel-loader: specifier: ^9.2.1 version: 9.2.1(@babel/core@7.26.10)(webpack@5.98.0(esbuild@0.18.20)) @@ -169,7 +169,7 @@ importers: version: 4.0.0 msw: specifier: ^2.7.0 - version: 2.7.3(@types/node@22.13.10)(typescript@5.8.2) + version: 2.7.3(@types/node@22.13.14)(typescript@5.8.2) prop-types: specifier: ^15.8.1 version: 15.8.1 @@ -190,10 +190,10 @@ importers: version: 5.8.2 vite: specifier: ^6.1.0 - version: 6.2.2(@types/node@22.13.10)(terser@5.39.0)(yaml@2.7.0) + version: 6.2.2(@types/node@22.13.14)(terser@5.39.0)(yaml@2.7.0) vite-tsconfig-paths: specifier: ^5.1.4 - version: 5.1.4(typescript@5.8.2)(vite@6.2.2(@types/node@22.13.10)(terser@5.39.0)(yaml@2.7.0)) + version: 5.1.4(typescript@5.8.2)(vite@6.2.2(@types/node@22.13.14)(terser@5.39.0)(yaml@2.7.0)) packages/document: dependencies: @@ -205,119 +205,119 @@ importers: version: 19.0.0(react@19.0.0) devDependencies: '@chromatic-com/storybook': - specifier: ^3.2.4 - version: 3.2.4(react@19.0.0)(storybook@8.5.3(prettier@3.4.2)) + specifier: ^3.2.6 + version: 3.2.6(react@19.0.0)(storybook@8.6.10(prettier@2.8.8)) '@eslint/js': - specifier: ^9.19.0 - version: 9.19.0 + specifier: ^9.23.0 + version: 9.23.0 '@storybook/addon-docs': - specifier: ^7.6.17 - version: 7.6.20(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(encoding@0.1.13)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + specifier: ^8.6.10 + version: 8.6.10(@types/react@19.0.12)(storybook@8.6.10(prettier@2.8.8)) '@storybook/addon-essentials': - specifier: ^8.5.3 - version: 8.5.3(@types/react@19.0.8)(storybook@8.5.3(prettier@3.4.2)) + specifier: ^8.6.10 + version: 8.6.10(@types/react@19.0.12)(storybook@8.6.10(prettier@2.8.8)) '@storybook/addon-interactions': - specifier: ^8.5.3 - version: 8.5.3(storybook@8.5.3(prettier@3.4.2)) + specifier: ^8.6.10 + version: 8.6.10(storybook@8.6.10(prettier@2.8.8)) '@storybook/addon-links': - specifier: ^7.6.17 - version: 7.6.20(react@19.0.0) + specifier: ^8.6.10 + version: 8.6.10(react@19.0.0)(storybook@8.6.10(prettier@2.8.8)) '@storybook/addon-mdx-gfm': - specifier: ^8.5.3 - version: 8.5.3(storybook@8.5.3(prettier@3.4.2)) + specifier: ^8.6.10 + version: 8.6.10(storybook@8.6.10(prettier@2.8.8)) '@storybook/addon-onboarding': - specifier: ^8.5.3 - version: 8.5.3(storybook@8.5.3(prettier@3.4.2)) + specifier: ^8.6.10 + version: 8.6.10(storybook@8.6.10(prettier@2.8.8)) '@storybook/blocks': - specifier: ^8.5.3 - version: 8.5.3(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(storybook@8.5.3(prettier@3.4.2)) + specifier: ^8.6.10 + version: 8.6.10(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(storybook@8.6.10(prettier@2.8.8)) '@storybook/react': - specifier: ^8.5.3 - version: 8.5.3(@storybook/test@8.5.3(storybook@8.5.3(prettier@3.4.2)))(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(storybook@8.5.3(prettier@3.4.2))(typescript@5.7.3) + specifier: ^8.6.10 + version: 8.6.10(@storybook/test@8.6.10(storybook@8.6.10(prettier@2.8.8)))(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(storybook@8.6.10(prettier@2.8.8))(typescript@5.8.2) '@storybook/react-vite': - specifier: ^8.5.3 - version: 8.5.3(@storybook/test@8.5.3(storybook@8.5.3(prettier@3.4.2)))(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(rollup@4.32.0)(storybook@8.5.3(prettier@3.4.2))(typescript@5.7.3)(vite@6.1.0(@types/node@22.12.0)(terser@5.37.0)(yaml@2.6.1)) + specifier: ^8.6.10 + version: 8.6.10(@storybook/test@8.6.10(storybook@8.6.10(prettier@2.8.8)))(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(rollup@4.35.0)(storybook@8.6.10(prettier@2.8.8))(typescript@5.8.2)(vite@6.2.3(@types/node@22.13.14)(terser@5.39.0)(yaml@2.7.0)) '@storybook/test': - specifier: ^8.5.3 - version: 8.5.3(storybook@8.5.3(prettier@3.4.2)) + specifier: ^8.6.10 + version: 8.6.10(storybook@8.6.10(prettier@2.8.8)) '@storybook/theming': - specifier: ^8.5.3 - version: 8.5.3(storybook@8.5.3(prettier@3.4.2)) + specifier: ^8.6.10 + version: 8.6.10(storybook@8.6.10(prettier@2.8.8)) '@types/react': - specifier: ^19.0.8 - version: 19.0.8 + specifier: ^19.0.12 + version: 19.0.12 '@types/react-dom': - specifier: ^19.0.3 - version: 19.0.3(@types/react@19.0.8) + specifier: ^19.0.4 + version: 19.0.4(@types/react@19.0.12) '@vitejs/plugin-react': specifier: ^4.3.4 - version: 4.3.4(vite@6.1.0(@types/node@22.12.0)(terser@5.37.0)(yaml@2.6.1)) + version: 4.3.4(vite@6.2.3(@types/node@22.13.14)(terser@5.39.0)(yaml@2.7.0)) eslint: - specifier: ^9.19.0 - version: 9.19.0 + specifier: ^9.23.0 + version: 9.23.0 eslint-plugin-react-hooks: - specifier: ^5.0.0 - version: 5.1.0(eslint@9.19.0) + specifier: ^5.2.0 + version: 5.2.0(eslint@9.23.0) eslint-plugin-react-refresh: - specifier: ^0.4.18 - version: 0.4.18(eslint@9.19.0) + specifier: ^0.4.19 + version: 0.4.19(eslint@9.23.0) eslint-plugin-storybook: - specifier: ^0.11.2 - version: 0.11.2(eslint@9.19.0)(typescript@5.7.3) + specifier: ^0.12.0 + version: 0.12.0(eslint@9.23.0)(typescript@5.8.2) globals: - specifier: ^15.14.0 - version: 15.14.0 + specifier: ^16.0.0 + version: 16.0.0 msw: - specifier: ^2.7.0 - version: 2.7.0(@types/node@22.12.0)(typescript@5.7.3) + specifier: ^2.7.3 + version: 2.7.3(@types/node@22.13.14)(typescript@5.8.2) remark-gfm: - specifier: ^4.0.0 - version: 4.0.0 + specifier: ^4.0.1 + version: 4.0.1 storybook: - specifier: ^8.5.3 - version: 8.5.3(prettier@3.4.2) + specifier: ^8.6.10 + version: 8.6.10(prettier@2.8.8) typescript: - specifier: ~5.7.2 - version: 5.7.3 + specifier: ~5.8.2 + version: 5.8.2 typescript-eslint: - specifier: ^8.22.0 - version: 8.23.0(eslint@9.19.0)(typescript@5.7.3) + specifier: ^8.28.0 + version: 8.28.0(eslint@9.23.0)(typescript@5.8.2) vite: - specifier: ^6.1.0 - version: 6.1.0(@types/node@22.12.0)(terser@5.37.0)(yaml@2.6.1) + specifier: ^6.2.3 + version: 6.2.3(@types/node@22.13.14)(terser@5.39.0)(yaml@2.7.0) vite-tsconfig-paths: specifier: ^5.1.4 - version: 5.1.4(typescript@5.7.3)(vite@6.1.0(@types/node@22.12.0)(terser@5.37.0)(yaml@2.6.1)) + version: 5.1.4(typescript@5.8.2)(vite@6.2.3(@types/node@22.13.14)(terser@5.39.0)(yaml@2.7.0)) packages/react-components: dependencies: '@adyen/adyen-web': - specifier: ^6.9.0 - version: 6.9.0 + specifier: ^6.11.0 + version: 6.11.0 '@commercelayer/organization-config': specifier: ^2.2.0 version: 2.2.0 '@commercelayer/sdk': - specifier: ^6.29.2 - version: 6.29.2 + specifier: ^6.36.0 + version: 6.36.0 '@stripe/react-stripe-js': - specifier: ^3.1.1 - version: 3.1.1(@stripe/stripe-js@5.6.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + specifier: ^3.5.1 + version: 3.5.1(@stripe/stripe-js@6.1.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) '@stripe/stripe-js': - specifier: ^5.6.0 - version: 5.6.0 + specifier: ^6.1.0 + version: 6.1.0 '@tanstack/react-table': - specifier: ^8.20.6 - version: 8.20.6(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + specifier: ^8.21.2 + version: 8.21.2(react-dom@19.0.0(react@19.0.0))(react@19.0.0) '@types/iframe-resizer': - specifier: ^3.5.13 - version: 3.5.13 + specifier: ^4.0.0 + version: 4.0.0 braintree-web: - specifier: ^3.115.2 - version: 3.116.3 + specifier: ^3.117.1 + version: 3.117.1 frames-react: specifier: ^1.2.2 - version: 1.2.2(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(rollup@4.32.0)(typescript@5.7.3) + version: 1.2.2(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(rollup@4.35.0)(typescript@5.8.2) iframe-resizer: specifier: ^4.3.6 version: 4.4.5 @@ -335,32 +335,32 @@ importers: specifier: ^6.7.1 version: 6.7.1 '@faker-js/faker': - specifier: ^9.5.1 + specifier: ^9.6.0 version: 9.6.0 '@playwright/test': - specifier: ^1.50.1 - version: 1.51.0 + specifier: ^1.51.1 + version: 1.51.1 '@testing-library/dom': specifier: ^10.4.0 version: 10.4.0 '@testing-library/react': specifier: ^16.2.0 - version: 16.2.0(@testing-library/dom@10.4.0)(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + version: 16.2.0(@testing-library/dom@10.4.0)(@types/react-dom@19.0.4(@types/react@19.0.12))(@types/react@19.0.12)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) '@types/braintree-web': - specifier: ^3.96.16 - version: 3.96.16 + specifier: ^3.96.17 + version: 3.96.17 '@types/lodash': specifier: ^4.17.16 version: 4.17.16 '@types/node': - specifier: ^22.13.9 - version: 22.13.10 + specifier: ^22.13.14 + version: 22.13.14 '@types/prop-types': specifier: ^15.7.14 version: 15.7.14 '@types/react': - specifier: ^19.0.8 - version: 19.0.8 + specifier: ^19.0.12 + version: 19.0.12 '@types/react-test-renderer': specifier: ^19.0.0 version: 19.0.0 @@ -369,10 +369,10 @@ importers: version: 1.8.8 '@vitejs/plugin-react': specifier: ^4.3.4 - version: 4.3.4(vite@6.2.2(@types/node@22.13.10)(terser@5.39.0)(yaml@2.7.0)) + version: 4.3.4(vite@6.2.3(@types/node@22.13.14)(terser@5.39.0)(yaml@2.7.0)) '@vitest/coverage-v8': - specifier: ^3.0.7 - version: 3.0.8(vitest@3.0.8(@types/debug@4.1.12)(@types/node@22.13.10)(jsdom@26.0.0)(msw@2.7.3(@types/node@22.13.10)(typescript@5.8.2))(terser@5.39.0)(yaml@2.7.0)) + specifier: ^3.0.9 + version: 3.0.9(vitest@3.0.9(@types/debug@4.1.12)(@types/node@22.13.14)(jsdom@26.0.0)(msw@2.7.3(@types/node@22.13.14)(typescript@5.8.2))(terser@5.39.0)(yaml@2.7.0)) jsdom: specifier: ^26.0.0 version: 26.0.0 @@ -381,7 +381,7 @@ importers: version: 1.4.0 msw: specifier: ^2.7.3 - version: 2.7.3(@types/node@22.13.10)(typescript@5.8.2) + version: 2.7.3(@types/node@22.13.14)(typescript@5.8.2) react: specifier: ^19.0.0 version: 19.0.0 @@ -401,30 +401,39 @@ importers: specifier: ^5.8.2 version: 5.8.2 vite: - specifier: ^6.2.0 - version: 6.2.2(@types/node@22.13.10)(terser@5.39.0)(yaml@2.7.0) + specifier: ^6.2.3 + version: 6.2.3(@types/node@22.13.14)(terser@5.39.0)(yaml@2.7.0) vite-tsconfig-paths: specifier: ^5.1.4 - version: 5.1.4(typescript@5.8.2)(vite@6.2.2(@types/node@22.13.10)(terser@5.39.0)(yaml@2.7.0)) + version: 5.1.4(typescript@5.8.2)(vite@6.2.3(@types/node@22.13.14)(terser@5.39.0)(yaml@2.7.0)) vitest: - specifier: ^3.0.7 - version: 3.0.8(@types/debug@4.1.12)(@types/node@22.13.10)(jsdom@26.0.0)(msw@2.7.3(@types/node@22.13.10)(typescript@5.8.2))(terser@5.39.0)(yaml@2.7.0) + specifier: ^3.0.9 + version: 3.0.9(@types/debug@4.1.12)(@types/node@22.13.14)(jsdom@26.0.0)(msw@2.7.3(@types/node@22.13.14)(typescript@5.8.2))(terser@5.39.0)(yaml@2.7.0) packages: '@adobe/css-tools@4.4.1': resolution: {integrity: sha512-12WGKBQzjUAI4ayyF4IAtfw2QR/IDoqk6jTddXDhtYTJF9ASmoE1zst7cVtP0aL/F1jUJL5r+JxKXKEgHNbEUQ==} - '@adyen/adyen-web@6.8.0': - resolution: {integrity: sha512-qOCFk4c0tc+So3a4co+RX01eVQFJpnzHRmUTtEiWIetWYSaBX1+htovIoj6L1k4mhRXohyo2GjAJAlueoe8rVQ==} - - '@adyen/bento-design-tokens@1.10.0': - resolution: {integrity: sha512-ZaWLGTLLW0bh69mu9ibGMaZ2DXkrB07XU3gc5Mt1fTZgNDAnCsdfJ/Wq7BxW3zYhtQLU69oz0QayZ3RDKTlHEA==} + '@adyen/adyen-web@6.11.0': + resolution: {integrity: sha512-OSpTq+VN84hNPOV5RpHM8T4TYMgL8sMr0UDa+2yDeTEBTIlNdigCKgDWTXzOHIW/BuPWna4e9n1fuGYnCJgXlQ==} '@ampproject/remapping@2.3.0': resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==} engines: {node: '>=6.0.0'} + '@andrewbranch/untar.js@1.0.3': + resolution: {integrity: sha512-Jh15/qVmrLGhkKJBdXlK1+9tY4lZruYjsgkDFj08ZmDiWVBLJcqkok7Z0/R0In+i1rScBpJlSvrTS2Lm41Pbnw==} + + '@arethetypeswrong/cli@0.17.4': + resolution: {integrity: sha512-AeiKxtf67XD/NdOqXgBOE5TZWH3EOCt+0GkbUpekOzngc+Q/cRZ5azjWyMxISxxfp0EItgm5NoSld9p7BAA5xQ==} + engines: {node: '>=18'} + hasBin: true + + '@arethetypeswrong/core@0.17.4': + resolution: {integrity: sha512-Izvir8iIoU+X4SKtDAa5kpb+9cpifclzsbA8x/AZY0k0gIfXYQ1fa1B6Epfe6vNA2YfDX8VtrZFgvnXB6aPEoQ==} + engines: {node: '>=18'} + '@asamuzakjp/css-color@3.1.1': resolution: {integrity: sha512-hpRD68SV2OMcZCsrbdkccTw5FXjNDLo5OuqSHyHZfwweGsDWZwDJ2+gONyNAbazZclobMirACLw0lk8WVxIqxA==} @@ -1037,6 +1046,9 @@ packages: cpu: [x64] os: [win32] + '@braidai/lang@1.1.0': + resolution: {integrity: sha512-xyJYkiyNQtTyCLeHxZmOs7rnB94D+N1IjKNArQIh8+8lTBOY7TFgwEV+Ow5a1uaBi5j2w9fLbWcJFTWLDItl5g==} + '@braintree/asset-loader@2.0.0': resolution: {integrity: sha512-7Zs3/g3lPTfkdtWr7cKh3tk1pDruXR++TXwGKkx7BPuTjjLNFul2JSfI+ScHzNU4u/gZNPNQagsSTlYxIhBgMA==} @@ -1076,8 +1088,8 @@ packages: '@bundled-es-modules/tough-cookie@0.1.6': resolution: {integrity: sha512-dvMHbL464C0zI+Yqxbz6kZ5TOEp7GLW+pry/RWndAR8MJQAXZ2rPmIs8tziTZjeIyhSNZgZbCePtfSbdWqStJw==} - '@chromatic-com/storybook@3.2.4': - resolution: {integrity: sha512-5/bOOYxfwZ2BktXeqcCpOVAoR6UCoeART5t9FVy22hoo8F291zOuX4y3SDgm10B1GVU/ZTtJWPT2X9wZFlxYLg==} + '@chromatic-com/storybook@3.2.6': + resolution: {integrity: sha512-FDmn5Ry2DzQdik+eq2sp/kJMMT36Ewe7ONXUXM2Izd97c7r6R/QyGli8eyh/F0iyqVvbLveNYFyF0dBOJNwLqw==} engines: {node: '>=16.0.0', yarn: '>=1.22.18'} peerDependencies: storybook: ^8.2.0 || ^8.3.0-0 || ^8.4.0-0 || ^8.5.0-0 || ^8.6.0-0 @@ -1098,12 +1110,12 @@ packages: resolution: {integrity: sha512-0Afbon6//2KHCTb6bILk2L9Idj9dP8pw06V1CFtaz1wtAsX4iifubGpOPxHH6CuGi4DFHzgASJRz6+ZZbqb3kA==} engines: {node: '>=20'} - '@commercelayer/sdk@6.29.2': - resolution: {integrity: sha512-g7Tk0jR2ice0FTPaENN7D/XZOCtxO69UN5mLWBNh5ZnXNlGyS1HcNiakk0d7PHwb4ninLf9vjHsQ53QJCTctRw==} + '@commercelayer/sdk@6.36.0': + resolution: {integrity: sha512-qM/8/RwyGA41GoSyMCRO5ZpxUElzc47rHVWX+oeZkmuV0Tad01Q7ZsYY5ZrAEswbICj6jRpFg82B9Wpv3gwsZg==} engines: {node: '>=20'} - '@csstools/color-helpers@5.0.1': - resolution: {integrity: sha512-MKtmkA0BX87PKaO1NFRTFH+UnkgnmySQOvNxJubsadusqPEC2aJ9MOQiMceZJJ6oitUl/i0L6u0M1IrmAOmgBA==} + '@csstools/color-helpers@5.0.2': + resolution: {integrity: sha512-JqWH1vsgdGcw2RR6VliXXdA0/59LttzlU8UlRT/iUUsEeWfYq8I+K0yhihEUTTHLRm1EXvpsCx3083EU15ecsA==} engines: {node: '>=18'} '@csstools/css-calc@2.1.2': @@ -1440,32 +1452,36 @@ packages: resolution: {integrity: sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==} engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} - '@eslint/config-array@0.19.1': - resolution: {integrity: sha512-fo6Mtm5mWyKjA/Chy1BYTdn5mGJoDNjC7C64ug20ADsRDGrA85bN3uK3MaKbeRkRuuIEAR5N33Jr1pbm411/PA==} + '@eslint/config-array@0.19.2': + resolution: {integrity: sha512-GNKqxfHG2ySmJOBSHg7LxeUx4xpuCoFjacmlCoYWEbaPXLwvfIjixRI12xCQZeULksQb23uiA8F40w5TojpV7w==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@eslint/core@0.10.0': - resolution: {integrity: sha512-gFHJ+xBOo4G3WRlR1e/3G8A6/KZAH6zcE/hkLRCZTi/B9avAG365QhFA8uOGzTMqgTghpn7/fSnscW++dpMSAw==} + '@eslint/config-helpers@0.2.0': + resolution: {integrity: sha512-yJLLmLexii32mGrhW29qvU3QBVTu0GUmEf/J4XsBtVhp4JkIUFN/BjWqTF63yRvGApIDpZm5fa97LtYtINmfeQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@eslint/eslintrc@3.2.0': - resolution: {integrity: sha512-grOjVNN8P3hjJn/eIETF1wwd12DdnwFDoyceUJLYYdkpbwq3nLi+4fqrTAONx7XDALqlL220wC/RHSC/QTI/0w==} + '@eslint/core@0.12.0': + resolution: {integrity: sha512-cmrR6pytBuSMTaBweKoGMwu3EiHiEC+DoyupPmlZ0HxBJBtIxwe+j/E4XPIKNx+Q74c8lXKPwYawBf5glsTkHg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@eslint/js@9.19.0': - resolution: {integrity: sha512-rbq9/g38qjfqFLOVPvwjIvFFdNziEC5S65jmjPw5r6A//QH+W91akh9irMwjDN8zKUTak6W9EsAv4m/7Wnw0UQ==} + '@eslint/eslintrc@3.3.1': + resolution: {integrity: sha512-gtF186CXhIl1p4pJNGZw8Yc6RlshoePRvE0X91oPGb3vZ8pM3qOS9W9NGPat9LziaBV7XrJWGylNQXkGcnM3IQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@eslint/object-schema@2.1.5': - resolution: {integrity: sha512-o0bhxnL89h5Bae5T318nFoFzGy+YE5i/gGkoPAgkmTVdRKTiv3p8JHevPiPaMwoloKfEiiaHlawCqaZMqRm+XQ==} + '@eslint/js@9.23.0': + resolution: {integrity: sha512-35MJ8vCPU0ZMxo7zfev2pypqTwWTofFZO6m4KAtdoFhRpLJUpHTZZ+KB3C7Hb1d7bULYwO4lJXGCi5Se+8OMbw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@eslint/plugin-kit@0.2.5': - resolution: {integrity: sha512-lB05FkqEdUg2AA0xEbUz0SnkXT1LcCTa438W4IWTUh4hdOnVbQyOJ81OrDXsJk/LSiJHubgGEFoR5EHq1NsH1A==} + '@eslint/object-schema@2.1.6': + resolution: {integrity: sha512-RBMg5FRL0I0gs51M/guSAj5/e14VQ4tpZnQNWwuDT66P14I43ItmPfIZRhO9fUVIPOAQXU47atlywZ/czoqFPA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@faker-js/faker@9.4.0': - resolution: {integrity: sha512-85+k0AxaZSTowL0gXp8zYWDIrWclTbRPg/pm/V0dSFZ6W6D4lhcG3uuZl4zLsEKfEvs69xDbLN2cHQudwp95JA==} + '@eslint/plugin-kit@0.2.7': + resolution: {integrity: sha512-JubJ5B2pJ4k4yGxaNLdbjrnk9d/iDz6/q8wOilpIowd6PJPgaxCuHBnBszq7Ce2TyMrywm5r4PnKm6V3iiZF+g==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@faker-js/faker@9.6.0': + resolution: {integrity: sha512-3vm4by+B5lvsFPSyep3ELWmZfE3kicDtmemVpuwl1yH7tqtnHdsA6hG8fbXedMVdkzgtvzWoRgjSB4Q+FHnZiw==} engines: {node: '>=18.0.0', npm: '>=9.0.0'} '@fal-works/esbuild-plugin-global-externals@2.1.2': @@ -1486,6 +1502,26 @@ packages: '@floating-ui/utils@0.2.9': resolution: {integrity: sha512-MDWhGtE+eHw5JW7lq4qhc5yRLS11ERl1c7Z6Xd0a58DozHES6EnNNwUWbMiG4J9Cgj053Bhk8zvlhFYKVhULwg==} + '@humanfs/core@0.19.1': + resolution: {integrity: sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA==} + engines: {node: '>=18.18.0'} + + '@humanfs/node@0.16.6': + resolution: {integrity: sha512-YuI2ZHQL78Q5HbhDiBA1X4LmYdXCKCMQIfw0pw7piHJwyREFebJUvrQN4cMssyES6x+vfUbx1CIpaQUKYdQZOw==} + engines: {node: '>=18.18.0'} + + '@humanwhocodes/module-importer@1.0.1': + resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==} + engines: {node: '>=12.22'} + + '@humanwhocodes/retry@0.3.1': + resolution: {integrity: sha512-JBxkERygn7Bv/GbN5Rv8Ul6LVknS+5Bp6RgDC/O8gEBU/yeH5Ui5C/OlWrTb6qct7LjjfT6Re2NxB0ln0yYybA==} + engines: {node: '>=18.18'} + + '@humanwhocodes/retry@0.4.2': + resolution: {integrity: sha512-xeO57FpIu4p1Ri3Jq/EXq4ClRm86dVF2z/+kvFnyqVYRavTZmaFaUBbWCOuuTh0o/g7DSsk6kc2vrS4Vl5oPOQ==} + engines: {node: '>=18.18'} + '@hutson/parse-repository-url@3.0.2': resolution: {integrity: sha512-H9XAx3hc0BQHY6l+IFSWHDySypcXsvsuLhgYLUGywmJ5pswRVQJUHpOsobnLYp2ZUaUlKiKDrgWWhosOwAEM8Q==} engines: {node: '>=6.9.0'} @@ -1561,8 +1597,8 @@ packages: typescript: optional: true - '@joshwooding/vite-plugin-react-docgen-typescript@0.4.2': - resolution: {integrity: sha512-feQ+ntr+8hbVudnsTUapiMN9q8T90XA1d5jn9QzY09sNoj4iD9wi0PY1vsBFTda4ZjEaxRK9S81oarR2nj7TFQ==} + '@joshwooding/vite-plugin-react-docgen-typescript@0.5.0': + resolution: {integrity: sha512-qYDdL7fPwLRI+bJNurVcis+tNgJmvWjH4YTBGXTA8xMuxFrnAz6E5o35iyzyKbq5J5Lr8mJGfrR5GXl+WGwhgQ==} peerDependencies: typescript: '>= 4.3.x' vite: '>=4.5.2' @@ -1598,6 +1634,9 @@ packages: resolution: {integrity: sha512-Cz2u/fwc03D1EE6VFZCLMmI8FIUtGmxHQ3ECeNblsxv9i0YSKWe4Xm18sjO1xltG/K5ByiH8/HMeY9dlyAv22A==} engines: {node: '>=18.0.0'} + '@loaderkit/resolve@1.0.4': + resolution: {integrity: sha512-rJzYKVcV4dxJv+vW6jlvagF8zvGxHJ2+HTr1e2qOejfmGhAApgJHl8Aog4mMszxceTRiKTTbnpgmTO1bEZHV/A==} + '@mdx-js/react@2.3.0': resolution: {integrity: sha512-zQH//gdOmuu7nt2oJR29vFhDv88oGPmVw6BggmrHeMI+xgEkp1B2dX9/bMBSYtK0dyLX/aOmesKS09g222K1/g==} peerDependencies: @@ -1609,8 +1648,8 @@ packages: '@types/react': '>=16' react: '>=16' - '@mswjs/interceptors@0.37.6': - resolution: {integrity: sha512-wK+5pLK5XFmgtH3aQ2YVvA3HohS3xqV/OxuVOdNx9Wpnz7VE/fnC+e1A7ln6LFYeck7gOJ/dsZV6OLplOtAJ2w==} + '@mswjs/interceptors@0.37.3': + resolution: {integrity: sha512-USvgCL/uOGFtVa6SVyRrC8kIAedzRohxIXN5LISlg5C5vLZCn7dgMFVSNhSF9cuBEFrm/O2spDWEZeMnw4ZXYg==} engines: {node: '>=18'} '@napi-rs/wasm-runtime@0.2.4': @@ -1825,8 +1864,8 @@ packages: resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} engines: {node: '>=14'} - '@playwright/test@1.51.0': - resolution: {integrity: sha512-dJ0dMbZeHhI+wb77+ljx/FeC8VBP6j/rj9OAojO08JI80wTZy6vRk9KvHKiDCUh4iMpEiseMgqRBIeW+eKX6RA==} + '@playwright/test@1.51.1': + resolution: {integrity: sha512-nM+kEaTSAoVlXmMPH10017vn3FSiFqr/bh4fKg9vmAdMfd9SDqRZNvPSiAHADc/itWak+qPvMPZQOPwCBW7k7Q==} engines: {node: '>=18'} hasBin: true @@ -1865,8 +1904,8 @@ packages: '@types/react-dom': optional: true - '@radix-ui/react-collection@1.1.2': - resolution: {integrity: sha512-9z54IEKRxIa9VityapoEYMuByaG42iSy1ZXlY2KcuLSEtq8x4987/N6m15ppoMffgZX72gER2uHe1D9Y6Unlcw==} + '@radix-ui/react-collection@1.1.1': + resolution: {integrity: sha512-LwT3pSho9Dljg+wY2KN2mrrh6y3qELfftINERIzBUO9e0N+t0oMTyn3k9iv+ZqgrwGkRnLpNJrsMv9BZlt2yuA==} peerDependencies: '@types/react': '*' '@types/react-dom': '*' @@ -2024,8 +2063,8 @@ packages: '@types/react-dom': optional: true - '@radix-ui/react-primitive@2.0.2': - resolution: {integrity: sha512-Ec/0d38EIuvDF+GZjcMU/Ze6MxntVJYO/fRlCPhCaVUyPY9WTalHJw54tp9sXeJo3tlShWpy41vQRgLRGOuz+w==} + '@radix-ui/react-primitive@2.0.1': + resolution: {integrity: sha512-sHCWTtxwNn3L3fH8qAfnF3WbUZycW93SM1j3NFDzXBiz8D6F5UTTy8G1+WFEaiCdvCVRJWj6N2R4Xq6HdiHmDg==} peerDependencies: '@types/react': '*' '@types/react-dom': '*' @@ -2037,8 +2076,8 @@ packages: '@types/react-dom': optional: true - '@radix-ui/react-roving-focus@1.1.2': - resolution: {integrity: sha512-zgMQWkNO169GtGqRvYrzb0Zf8NhMHS2DuEB/TiEmVnpr5OqPU3i8lfbxaAmC2J/KYuIQxyoQQ6DxepyXp61/xw==} + '@radix-ui/react-roving-focus@1.1.1': + resolution: {integrity: sha512-QE1RoxPGJ/Nm8Qmk0PxP8ojmoaS67i0s7hVssS7KuI2FQoc/uzVlZsqKfQvxPE6D8hICCPHJ4D88zNhT3OOmkw==} peerDependencies: '@types/react': '*' '@types/react-dom': '*' @@ -2063,8 +2102,8 @@ packages: '@types/react-dom': optional: true - '@radix-ui/react-separator@1.1.2': - resolution: {integrity: sha512-oZfHcaAp2Y6KFBX6I5P1u7CQoy4lheCGiYj+pGFrHy8E/VNRb5E39TkTr3JrV520csPBTZjkuKFdEsjS5EUNKQ==} + '@radix-ui/react-separator@1.1.1': + resolution: {integrity: sha512-RRiNRSrD8iUiXriq/Y5n4/3iE8HzqgLHsusUSg5jVpU2+3tqcUFPJXHDymwEypunc2sWxDUS3UC+rkZRlHedsw==} peerDependencies: '@types/react': '*' '@types/react-dom': '*' @@ -2085,8 +2124,8 @@ packages: '@types/react': optional: true - '@radix-ui/react-slot@1.1.2': - resolution: {integrity: sha512-YAKxaiGsSQJ38VzKH86/BPRC4rh+b1Jpa+JneA5LRE7skmLPNAyeG8kPJj/oo4STLvlrs8vkf/iYyc3A5stYCQ==} + '@radix-ui/react-slot@1.1.1': + resolution: {integrity: sha512-RApLLOcINYJA+dMVbOju7MYv1Mb2EBp2nH4HdDzXTSyaR5optlm6Otrz1euW3HbdOR8UmmFK06TD+A9frYWv+g==} peerDependencies: '@types/react': '*' react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc @@ -2094,8 +2133,8 @@ packages: '@types/react': optional: true - '@radix-ui/react-toggle-group@1.1.2': - resolution: {integrity: sha512-JBm6s6aVG/nwuY5eadhU2zDi/IwYS0sDM5ZWb4nymv/hn3hZdkw+gENn0LP4iY1yCd7+bgJaCwueMYJIU3vk4A==} + '@radix-ui/react-toggle-group@1.1.1': + resolution: {integrity: sha512-OgDLZEA30Ylyz8YSXvnGqIHtERqnUt1KUYTKdw/y8u7Ci6zGiJfXc02jahmcSNK3YcErqioj/9flWC9S1ihfwg==} peerDependencies: '@types/react': '*' '@types/react-dom': '*' @@ -2107,8 +2146,8 @@ packages: '@types/react-dom': optional: true - '@radix-ui/react-toggle@1.1.2': - resolution: {integrity: sha512-lntKchNWx3aCHuWKiDY+8WudiegQvBpDRAYL8dKLRvKEH8VOpl0XX6SSU/bUBqIRJbcTy4+MW06Wv8vgp10rzQ==} + '@radix-ui/react-toggle@1.1.1': + resolution: {integrity: sha512-i77tcgObYr743IonC1hrsnnPmszDRn8p+EGUsUt+5a/JFn28fxaM88Py6V2mc8J5kELMWishI0rLnuGLFD/nnQ==} peerDependencies: '@types/react': '*' '@types/react-dom': '*' @@ -2120,8 +2159,8 @@ packages: '@types/react-dom': optional: true - '@radix-ui/react-toolbar@1.1.2': - resolution: {integrity: sha512-wT20eQ7ScFk+kBMDmHp+lMk18cgxhu35b2Bn5deUcPxiVwfn5vuZgi7NGcHu8ocdkinahmp4FaSZysKDyRVPWQ==} + '@radix-ui/react-toolbar@1.1.1': + resolution: {integrity: sha512-r7T80WOCHc2n3KRzFCbHWGVzkfVTCzDofGU4gqa5ZuIzgnVaLogGsdyifFJXWQDp0lAr5hrf+X9uqQdE0pa6Ww==} peerDependencies: '@types/react': '*' '@types/react-dom': '*' @@ -2374,29 +2413,33 @@ packages: '@sinclair/typebox@0.27.8': resolution: {integrity: sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==} + '@sindresorhus/is@4.6.0': + resolution: {integrity: sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw==} + engines: {node: '>=10'} + '@storybook/addon-actions@7.6.20': resolution: {integrity: sha512-c/GkEQ2U9BC/Ew/IMdh+zvsh4N6y6n7Zsn2GIhJgcu9YEAa5aF2a9/pNgEGBMOABH959XE8DAOMERw/5qiLR8g==} - '@storybook/addon-actions@8.5.3': - resolution: {integrity: sha512-7a+SD4EZdZocm+NG1Kx4yV6Aw7+YUlRIyGvKcxsGtYMOLaqrUewApqveXF83+FbYWMoezXcoZCLQFROtS/Z6Fw==} + '@storybook/addon-actions@8.6.10': + resolution: {integrity: sha512-g+aC1bFwIwZqxSVjw+BhJJeTmZPBhZT52AO6DUYWF+FZ2N3rjnaVKwT1gZYYhuYw2WtWw2wLivkXcq2L/IBbkg==} peerDependencies: - storybook: ^8.5.3 + storybook: ^8.6.10 '@storybook/addon-backgrounds@7.6.20': resolution: {integrity: sha512-a7ukoaXT42vpKsMxkseIeO3GqL0Zst2IxpCTq5dSlXiADrcemSF/8/oNpNW9C4L6F1Zdt+WDtECXslEm017FvQ==} - '@storybook/addon-backgrounds@8.5.3': - resolution: {integrity: sha512-sZcw8/C/HIIgbRBY+0ZYTBc5Py8xvw3bt6lzSVQEXA2aygfJpO/jiQJlmOXTmK3g5F5pjFKaaCodfXT7V/9mzw==} + '@storybook/addon-backgrounds@8.6.10': + resolution: {integrity: sha512-zou/VJSVDacuaQVJV22hbQEZrQBllcoxSw40EgSedqLv1qaVpC7Nz5LY9srl522LeoVEP+AOYKf9K7hLbm0o7w==} peerDependencies: - storybook: ^8.5.3 + storybook: ^8.6.10 '@storybook/addon-controls@7.6.20': resolution: {integrity: sha512-06ZT5Ce1sZW52B0s6XuokwjkKO9GqHlTUHvuflvd8wifxKlCmRvNUxjBvwh+ccGJ49ZS73LbMSLFgtmBEkCxbg==} - '@storybook/addon-controls@8.5.3': - resolution: {integrity: sha512-A4UVQhPyC7FvV+fM50xvEZO26/2uE41Ns0TN0qq7U5EH0Dlj43Salgay6qT8fve6XAI4SgVjkujPVCSbLg/yVQ==} + '@storybook/addon-controls@8.6.10': + resolution: {integrity: sha512-aMw3NCVSq+vWEAp10kbBlbMx+7PIFFdgxMCh7b9N2DUR/5J4KCNFQosa8fAn03Noh2g5jgceqNyY6L4lDIu0Xw==} peerDependencies: - storybook: ^8.5.3 + storybook: ^8.6.10 '@storybook/addon-docs@7.6.20': resolution: {integrity: sha512-XNfYRhbxH5JP7B9Lh4W06PtMefNXkfpV39Gaoih5HuqngV3eoSL4RikZYOMkvxRGQ738xc6axySU3+JKcP1OZg==} @@ -2404,10 +2447,10 @@ packages: react: ^16.8.0 || ^17.0.0 || ^18.0.0 react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 - '@storybook/addon-docs@8.5.3': - resolution: {integrity: sha512-XVcQlHX963nuoeRkb7qQg89t/9CThdT46UV7jX3FFn08NEMhmDEa+4iVA4l+4xNgJ+Av6uX+u6yRGnM/910mLg==} + '@storybook/addon-docs@8.6.10': + resolution: {integrity: sha512-VnGtzwVaC8NvfhLr8UdIa6n38emU2SaDzfOTbvR1zibiqRmFDbo+kvAGSPOT6oIC5jZleUTLiIz0GzHxLuMxOQ==} peerDependencies: - storybook: ^8.5.3 + storybook: ^8.6.10 '@storybook/addon-essentials@7.6.20': resolution: {integrity: sha512-hCupSOiJDeOxJKZSgH0x5Mb2Xqii6mps21g5hpxac1XjhQtmGflShxi/xOHhK3sNqrbgTSbScfpUP3hUlZO/2Q==} @@ -2415,26 +2458,26 @@ packages: react: ^16.8.0 || ^17.0.0 || ^18.0.0 react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 - '@storybook/addon-essentials@8.5.3': - resolution: {integrity: sha512-0zbEWQQZCiYRUxMo6FrfwQER/vi+B8mCLLivdjbSVSvZsjmlpcaBA5uBjbsXfIRcedHlou4QiJXn+nR8thDlKA==} + '@storybook/addon-essentials@8.6.10': + resolution: {integrity: sha512-8sKfAp3KkEjIHm02JhdazEKHlwO8VQgzAHk2fzHREgf24KqlCyF9BhDM1vG38fGdB+B+l1edZTE5a3NmcvK5Cg==} peerDependencies: - storybook: ^8.5.3 + storybook: ^8.6.10 '@storybook/addon-highlight@7.6.20': resolution: {integrity: sha512-7/x7xFdFyqCki5Dm3uBePldUs9l98/WxJ7rTHQuYqlX7kASwyN5iXPzuhmMRUhlMm/6G6xXtLabIpzwf1sFurA==} - '@storybook/addon-highlight@8.5.3': - resolution: {integrity: sha512-xhsr3W6KTvlOIIe+8JE9/sEOAgkW0yjMZzs47A+bWcxKwcFhAUgVLbAgEzjJ0u248rjGKlCJ2pswWefO+ZKJeg==} + '@storybook/addon-highlight@8.6.10': + resolution: {integrity: sha512-ZKl0yKzs/6xOpeDIiqHhfrJGQYA7jQ6cxO2nUm3zyqOnHZspef38VlqE63VttBq+mKnh9VbemmaTd2mUgQnm2A==} peerDependencies: - storybook: ^8.5.3 + storybook: ^8.6.10 '@storybook/addon-interactions@7.6.20': resolution: {integrity: sha512-uH+OIxLtvfnnmdN3Uf8MwzfEFYtaqSA6Hir6QNPc643se0RymM8mULN0rzRyvspwd6OagWdtOxsws3aHk02KTA==} - '@storybook/addon-interactions@8.5.3': - resolution: {integrity: sha512-nQuP65iFGgqfVp/O8NxNDUwLTWmQBW4bofUFaT4wzYn7Jk9zobOZYtgQvdqBZtNzBDYmLrfrCutEBj5jVPRyuQ==} + '@storybook/addon-interactions@8.6.10': + resolution: {integrity: sha512-BtuqLJj1L5a8a4RmnX5YjrGhiEfn7LTdQgn2m71F8DnMCwvvYLHQgYUcpjobMld1OZr3IKq4/zCqesaGET++fQ==} peerDependencies: - storybook: ^8.5.3 + storybook: ^8.6.10 '@storybook/addon-links@7.6.20': resolution: {integrity: sha512-iomSnBD90CA4MinesYiJkFX2kb3P1Psd/a1Y0ghlFEsHD4uMId9iT6sx2s16DYMja0SlPkrbWYnGukqaCjZpRw==} @@ -2444,50 +2487,59 @@ packages: react: optional: true + '@storybook/addon-links@8.6.10': + resolution: {integrity: sha512-t7gRsFbOIAsqxb/5KA/LOywvx8USopqfW1KwLDBrDYaRUwkdiJVOSxjKB1a6cndFmqcGzucdXQx/PMmOQe9dig==} + peerDependencies: + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta + storybook: ^8.6.10 + peerDependenciesMeta: + react: + optional: true + '@storybook/addon-mdx-gfm@7.6.20': resolution: {integrity: sha512-htfiooRdIYIjdKpxFjJAT+b90iatraI7yfmgF8VmpGTPqjyjGDZccUFCaE7op9S2smLZi4zYYGd+fqA5NtykkQ==} - '@storybook/addon-mdx-gfm@8.5.3': - resolution: {integrity: sha512-jKfJir3E+jJkD1K9SvrzUQBhaQJbGd2DtcE5IusXe0NKBJegbBy+eMhh9K7ani/isTf8+ZkhoXR3DFWwi2IJhg==} + '@storybook/addon-mdx-gfm@8.6.10': + resolution: {integrity: sha512-9Ddu0AZ074O/hgooy2tFPvZqPzCJBQW57gGfCAj9PCvgRoALWsA7s5QHUlicq2r+iIxbKZv6o72ND+7Z9TwA7Q==} peerDependencies: - storybook: ^8.5.3 + storybook: ^8.6.10 '@storybook/addon-measure@7.6.20': resolution: {integrity: sha512-i2Iq08bGfI7gZbG6Lb8uF/L287tnaGUR+2KFEmdBjH6+kgjWLiwfpanoPQpy4drm23ar0gUjX+L3Ri03VI5/Xg==} - '@storybook/addon-measure@8.5.3': - resolution: {integrity: sha512-unb0bRsnISXWiCBBECxNUUdM12hHpV+1uJUu5OJHtKb26YpiQvewDFLTLjuZJ3NIAfw+F5232Q7K88AWJV6weg==} + '@storybook/addon-measure@8.6.10': + resolution: {integrity: sha512-ef5vAum7tMdiTsGsHOIHaLCyN0e3gLU2X4gzNelqH0/x/09C2QQaiOFDIpvbKt6HSjpHJeYcUOGzF7U/o4xVkw==} peerDependencies: - storybook: ^8.5.3 + storybook: ^8.6.10 - '@storybook/addon-onboarding@8.5.3': - resolution: {integrity: sha512-NZhYj3UZK65reO7mXcK7FPPu7QkLCRyIa6TpfQ3mRAocfjqg401mcBsRO37JNywYfHCZrU4w1l7pwpqjvcYceg==} + '@storybook/addon-onboarding@8.6.10': + resolution: {integrity: sha512-n4wtlZqYQiigtYCDCRXH1ilmGGv+DG5mggiTLpcLJEh9tZg2dGUptSyGARRF6igYYeiZTdDo8OPvwFUZc5N+vg==} peerDependencies: - storybook: ^8.5.3 + storybook: ^8.6.10 '@storybook/addon-outline@7.6.20': resolution: {integrity: sha512-TdsIQZf/TcDsGoZ1XpO+9nBc4OKqcMIzY4SrI8Wj9dzyFLQ37s08gnZr9POci8AEv62NTUOVavsxcafllkzqDQ==} - '@storybook/addon-outline@8.5.3': - resolution: {integrity: sha512-e1MkGN6XVdeRh2oUKGdqEDyAo2TD/47ashAAxw8DEiLRWgBMbQ+KBVH4EOG+dn5395jxh7YgRLJn/miqNnfN5g==} + '@storybook/addon-outline@8.6.10': + resolution: {integrity: sha512-Z5lQ/q9rULtlD99V1S3ymEU59tJGD2KHEdr4HRUgxo+fkyy7nOZDi88sOupoICBuAVYBIcxLKiMeYrUIwjHqtg==} peerDependencies: - storybook: ^8.5.3 + storybook: ^8.6.10 '@storybook/addon-toolbars@7.6.20': resolution: {integrity: sha512-5Btg4i8ffWTDHsU72cqxC8nIv9N3E3ObJAc6k0llrmPBG/ybh3jxmRfs8fNm44LlEXaZ5qrK/petsXX3UbpIFg==} - '@storybook/addon-toolbars@8.5.3': - resolution: {integrity: sha512-AWr9Per9WDrbFtNlbVlj6CiEwKOvOyoBt3bCuMHuRfTdqKwkwInEtyUi4//T8U+c1qs7KJBpsWV2vhIuc5sODg==} + '@storybook/addon-toolbars@8.6.10': + resolution: {integrity: sha512-cHhI+9r/Wt/l+E02V2UvybkmdembqjVUagLNHRIRQSqx0tH762G0OD3JzOC2nqmXMjABY2mUkADORhWERfMPjg==} peerDependencies: - storybook: ^8.5.3 + storybook: ^8.6.10 '@storybook/addon-viewport@7.6.20': resolution: {integrity: sha512-i8mIw8BjLWAVHEQsOTE6UPuEGQvJDpsu1XZnOCkpfTfPMz73m+3td/PmLG7mMT2wPnLu9IZncKLCKTAZRbt/YQ==} - '@storybook/addon-viewport@8.5.3': - resolution: {integrity: sha512-OkLJ2B8+PiOEAd2HtRG6XewVjtw6AkBMgoSbfKCMr6TWSbuKrOeiwIMqqieAAPVNfsOQ8hTK6JGhr/KPRCKgRA==} + '@storybook/addon-viewport@8.6.10': + resolution: {integrity: sha512-0ATxfA+bHpTcdTUc83VVJF3XPJqe64Yl1I9UWnx/XG2gzo8avRA44pQe8ETH5Fwr7kAvDMqW6LXAisfsl20wrg==} peerDependencies: - storybook: ^8.5.3 + storybook: ^8.6.10 '@storybook/addons@7.6.17': resolution: {integrity: sha512-Ok18Y698Ccyg++MoUNJNHY0cXUvo8ETFIRLJk1g9ElJ70j6kPgNnzW2pAtZkBNmswHtofZ7pT156cj96k/LgfA==} @@ -2501,12 +2553,12 @@ packages: react: ^16.8.0 || ^17.0.0 || ^18.0.0 react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 - '@storybook/blocks@8.5.3': - resolution: {integrity: sha512-a/PpHFmeBtVB9Q/6cNAnqfeCqMowsrI8nGka0Nl7BB3x1eJnS3I1Qo3Skht0LBEsmXOgXk4dwWxpeQL3qHMRkw==} + '@storybook/blocks@8.6.10': + resolution: {integrity: sha512-S9XVyN36utNAo78/IHUP1DpCw7vBw5Ef4iO9diF+MLtxP3jJwFXPFkyBSi7AnWig9FH3I8vYI1fh1a4/nk1H4g==} peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta - react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta - storybook: ^8.5.3 + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 + react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 + storybook: ^8.6.10 peerDependenciesMeta: react: optional: true @@ -2531,10 +2583,10 @@ packages: vite-plugin-glimmerx: optional: true - '@storybook/builder-vite@8.5.3': - resolution: {integrity: sha512-MxriwzZSVidaXj3kpH/jCOJZUdF7ofcvxmvrMrNehH9UvXIGM6b73CBC5ucnptbnQ7qxYKdAZiMhQbPHZ9cqOQ==} + '@storybook/builder-vite@8.6.10': + resolution: {integrity: sha512-RXT4uflQSgXSHbWG+Z2Im5r7Ji1wj0Lyo6hVJZIBLEbaIbjfvPtP9CXlhK/z1h90cegHTnkYDd01RHwgmlKRrg==} peerDependencies: - storybook: ^8.5.3 + storybook: ^8.6.10 vite: '>=4.5.2' '@storybook/channels@7.6.17': @@ -2565,8 +2617,8 @@ packages: react: ^16.8.0 || ^17.0.0 || ^18.0.0 react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 - '@storybook/components@8.5.3': - resolution: {integrity: sha512-iC9VbpM8Equ8wXI2syBzov+8wys4sGYW7Xfz67LdSVbCMhsH9FRtvgbDppJQC/ZDCofg4sTAHhWpDV/KAQ385A==} + '@storybook/components@8.6.10': + resolution: {integrity: sha512-9TE2aZU+1zjGO4R74jc4Dmx+pFb+9hm1vnlWH+WVfYV1nCSCZOMmMoO2J86PHPkR6RmPjcQJXz4ySdBbYiwKiw==} peerDependencies: storybook: ^8.2.0 || ^8.3.0-0 || ^8.4.0-0 || ^8.5.0-0 || ^8.6.0-0 @@ -2585,8 +2637,8 @@ packages: '@storybook/core-server@7.6.20': resolution: {integrity: sha512-qC5BdbqqwMLTdCwMKZ1Hbc3+3AaxHYWLiJaXL9e8s8nJw89xV8c8l30QpbJOGvcDmsgY6UTtXYaJ96OsTr7MrA==} - '@storybook/core@8.5.3': - resolution: {integrity: sha512-ZLlr2pltbj/hmC54lggJTnh09FCAJR62lIdiXNwa+V+/eJz0CfD8tfGmZGKPSmaQeZBpMwAOeRM97k2oLPF+0w==} + '@storybook/core@8.6.10': + resolution: {integrity: sha512-VyhE/9/idPeeObsx+DyD8RR2iEwLJGL9rYz61r+1IrpndIVnlYD+vjxc0Y/1jTG1RvShWzEF2A/vzsJ9PzXqcw==} peerDependencies: prettier: ^2 || ^3 peerDependenciesMeta: @@ -2596,10 +2648,10 @@ packages: '@storybook/csf-plugin@7.6.20': resolution: {integrity: sha512-dzBzq0dN+8WLDp6NxYS4G7BCe8+vDeDRBRjHmM0xb0uJ6xgQViL8SDplYVSGnk3bXE/1WmtvyRzQyTffBnaj9Q==} - '@storybook/csf-plugin@8.5.3': - resolution: {integrity: sha512-u5oyXTFg3KIy4h9qoNyiCG2mJF3OpkLO/AcM4lMAwQVnBvz8pwITvr4jDZByVjGmcIbgKJQnWX+BwdK2NI4yAw==} + '@storybook/csf-plugin@8.6.10': + resolution: {integrity: sha512-yjtFyjEvmmWUG1NzM81/CLI5rOUG311EoPmRnvbNpdzaVug4emC3rX9mR69DsrXfL7kLTDltDH8tjA7wLxpGMA==} peerDependencies: - storybook: ^8.5.3 + storybook: ^8.6.10 '@storybook/csf-tools@7.6.20': resolution: {integrity: sha512-rwcwzCsAYh/m/WYcxBiEtLpIW5OH1ingxNdF/rK9mtGWhJxXRDV8acPkFrF8rtFWIVKoOCXu5USJYmc3f2gdYQ==} @@ -2623,10 +2675,10 @@ packages: react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta - '@storybook/instrumenter@8.5.3': - resolution: {integrity: sha512-pxaTbGeju8MkwouIiaWX5DMWtpRruxqig8W3nZPOvzoSCCbQY+sLMQoyXxFlpGxLBjcvXivkL7AMVBKps5sFEQ==} + '@storybook/instrumenter@8.6.10': + resolution: {integrity: sha512-Hlps6V0lkhFMbgcJQRynVBne51ciG7Xv+YtiDCd0PQtvZu8+vVJr/ebWt3nCwpvkRHooYiud1ScA3K8McyA73w==} peerDependencies: - storybook: ^8.5.3 + storybook: ^8.6.10 '@storybook/manager-api@7.6.17': resolution: {integrity: sha512-IJIV1Yc6yw1dhCY4tReHCfBnUKDqEBnMyHp3mbXpsaHxnxJZrXO45WjRAZIKlQKhl/Ge1CrnznmHRCmYgqmrWg==} @@ -2634,8 +2686,8 @@ packages: '@storybook/manager-api@7.6.20': resolution: {integrity: sha512-gOB3m8hO3gBs9cBoN57T7jU0wNKDh+hi06gLcyd2awARQlAlywnLnr3s1WH5knih6Aq+OpvGBRVKkGLOkaouCQ==} - '@storybook/manager-api@8.5.3': - resolution: {integrity: sha512-JtfuMgQpKIPU0ARn1jNPce8FmknpM0Ap0mppWl+KGAWWGadJPDaX/nrY/19dT1kRgIhyOnbX6tgJxII4E9dE5w==} + '@storybook/manager-api@8.6.10': + resolution: {integrity: sha512-roJ2aXqbZfSh9IM4q34U2GpU0CDmUjTKGwAnYOS2SG6rGLPenPflIksW8A52cVFdzGa4eH/KzP2FIg5Zi1KLJQ==} peerDependencies: storybook: ^8.2.0 || ^8.3.0-0 || ^8.4.0-0 || ^8.5.0-0 || ^8.6.0-0 @@ -2662,8 +2714,8 @@ packages: '@storybook/preview-api@7.6.20': resolution: {integrity: sha512-3ic2m9LDZEPwZk02wIhNc3n3rNvbi7VDKn52hDXfAxnL5EYm7yDICAkaWcVaTfblru2zn0EDJt7ROpthscTW5w==} - '@storybook/preview-api@8.5.3': - resolution: {integrity: sha512-dUsuXW+KgDg4tWXOB6dk5j5gwwRUzbPvicHAY9mzbpSVScbWXuE5T/S/9hHlbtfkhFroWQgPx2eB8z3rai+7RQ==} + '@storybook/preview-api@8.6.10': + resolution: {integrity: sha512-8ki1GgiUlcSqZD3Oe42Fy0uW3E7XPpMAyzO+NSnHCKKfNlZgi036Rr+FyGcKwG5lJyubWwNesPGQX5UHigYu4w==} peerDependencies: storybook: ^8.2.0 || ^8.3.0-0 || ^8.4.0-0 || ^8.5.0-0 || ^8.6.0-0 @@ -2676,12 +2728,12 @@ packages: react: ^16.8.0 || ^17.0.0 || ^18.0.0 react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 - '@storybook/react-dom-shim@8.5.3': - resolution: {integrity: sha512-kNIGk6mpXW3Wy+uS9pH9b9w/54EPJnH+QXA6MX4EQgmxhMQlGlS/l/YZp+3jsVQW4YgTmqe740qB+ccJAKZxBQ==} + '@storybook/react-dom-shim@8.6.10': + resolution: {integrity: sha512-r4Q5stsoIlSEvOpOJgyFGPej+t9uuIzGI2ul83XNtiHEBs7xlmUN7qAm+U9cOuNZ7mPOXDKt9nZfUfCP5Ouhyw==} peerDependencies: react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta - storybook: ^8.5.3 + storybook: ^8.6.10 '@storybook/react-vite@7.6.20': resolution: {integrity: sha512-uKuBFyGPZxpfR8vpDU/2OE9v7iTaxwL7ldd7k1swYd1rTSAPacTnEHSMl1R5AjUhkdI7gRmGN9q7qiVfK2XJCA==} @@ -2691,14 +2743,14 @@ packages: react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 vite: '>=4.5.2' - '@storybook/react-vite@8.5.3': - resolution: {integrity: sha512-F30u2Xf+X774wrfQzWgg7vRVJmmJFbBVGdULsAGonkdy1FUeYo7puPiD2Qg6hBYNDyIyxDXVOukkOvTlG7IBRg==} + '@storybook/react-vite@8.6.10': + resolution: {integrity: sha512-CyptES7yE1fnZWMN5xk6AFPuchjg4YN8VvBaC0YyveKhfeXlczGwG9nPU28ZY3I+Xzz5g/A6rBvgSRQ88hc/bQ==} engines: {node: '>=18.0.0'} peerDependencies: - '@storybook/test': 8.5.3 + '@storybook/test': 8.6.10 react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta - storybook: ^8.5.3 + storybook: ^8.6.10 vite: '>=4.5.2' peerDependenciesMeta: '@storybook/test': @@ -2715,14 +2767,14 @@ packages: typescript: optional: true - '@storybook/react@8.5.3': - resolution: {integrity: sha512-QIdBSjsnwV/J919i4Fi7DlwxDKHU815t0c4B/w2KTMtKKBkk+Bge+vgVi0/lNqD3eF4w3yjVWGbkzUQZ63yiPg==} + '@storybook/react@8.6.10': + resolution: {integrity: sha512-QCs5nyXe+G2ZoZ1uspEsnSp7VYLJej5dJ1bSf22rrdHQde641zvC2HZQaba4dqR2YQxRCG9JtCdaQ3UVmnfzzA==} engines: {node: '>=18.0.0'} peerDependencies: - '@storybook/test': 8.5.3 + '@storybook/test': 8.6.10 react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta - storybook: ^8.5.3 + storybook: ^8.6.10 typescript: '>= 4.2.x' peerDependenciesMeta: '@storybook/test': @@ -2739,10 +2791,10 @@ packages: '@storybook/telemetry@7.6.20': resolution: {integrity: sha512-dmAOCWmOscYN6aMbhCMmszQjoycg7tUPRVy2kTaWg6qX10wtMrvEtBV29W4eMvqdsoRj5kcvoNbzRdYcWBUOHQ==} - '@storybook/test@8.5.3': - resolution: {integrity: sha512-2smoDbtU6Qh4yk0uD18qGfW6ll7lZBzKlF58Ha1CgWR4o+jpeeTQcfDLH9gG6sNrpojF7AVzMh/aN9BDHD+Chg==} + '@storybook/test@8.6.10': + resolution: {integrity: sha512-eCQueRB0SpwjnXcE5wmUNu2G7Z7nRzzHw+0QW2Yc3DoA5UwmOiuwTseZenQkD019dwvFJ87fHo1xXnDAamX1Tg==} peerDependencies: - storybook: ^8.5.3 + storybook: ^8.6.10 '@storybook/testing-library@0.2.2': resolution: {integrity: sha512-L8sXFJUHmrlyU2BsWWZGuAjv39Jl1uAqUHdxmN42JY15M4+XCMjGlArdCCjDe1wpTSW6USYISA9axjZojgtvnw==} @@ -2760,8 +2812,8 @@ packages: react: ^16.8.0 || ^17.0.0 || ^18.0.0 react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 - '@storybook/theming@8.5.3': - resolution: {integrity: sha512-Jvzw+gT1HNarkJo21WZBq5pU89qDN8u/pD3woSh/1c2h5RS6UylWjQHotPFpcBIQiUSrDFtvCU9xugJm4MD0+w==} + '@storybook/theming@8.6.10': + resolution: {integrity: sha512-4E5ArcJ/bhrWtlYzQDbtA3O3pha/Ys0Ja6X4waJQ5UJENzUMdVz6vTLSUHtG5hNRmSqreogxe4Ed88+0JtY7NQ==} peerDependencies: storybook: ^8.2.0 || ^8.3.0-0 || ^8.4.0-0 || ^8.5.0-0 || ^8.6.0-0 @@ -2771,15 +2823,15 @@ packages: '@storybook/types@7.6.20': resolution: {integrity: sha512-GncdY3x0LpbhmUAAJwXYtJDUQEwfF175gsjH0/fxPkxPoV7Sef9TM41jQLJW/5+6TnZoCZP/+aJZTJtq3ni23Q==} - '@stripe/react-stripe-js@3.4.0': - resolution: {integrity: sha512-5m0vProlV2qyB7qXHSn25Ao79BjgJW/oiv2ynJ645dpdjeR7fyeb+KSrA4Esk7jqy+aKmdyn70TAIN0BVgh0MA==} + '@stripe/react-stripe-js@3.5.1': + resolution: {integrity: sha512-MFZ69qz70T0srU9nsPhQHFNbOxfL4fb9fokHKqJy0S6X53D8KJXD23iiKWGmLasMeqXNzBqLnuziE72QszeRLw==} peerDependencies: '@stripe/stripe-js': '>=1.44.1 <7.0.0' react: '>=16.8.0 <20.0.0' react-dom: '>=16.8.0 <20.0.0' - '@stripe/stripe-js@5.6.0': - resolution: {integrity: sha512-w8CEY73X/7tw2KKlL3iOk679V9bWseE4GzNz3zlaYxcTjmcmWOathRb0emgo/QQ3eoNzmq68+2Y2gxluAv3xGw==} + '@stripe/stripe-js@6.1.0': + resolution: {integrity: sha512-/5zxRol+MU4I7fjZXPxP2M6E1nuHOxAzoc0tOEC/TLnC31Gzc+5EE93mIjoAnu28O1Sqpl7/BkceDHwnGmn75A==} engines: {node: '>=12.16'} '@tanstack/react-table@8.21.2': @@ -2820,6 +2872,12 @@ packages: '@types/react-dom': optional: true + '@testing-library/user-event@14.5.2': + resolution: {integrity: sha512-YAh82Wh4TIrxYLmfGcixwD18oIjyC1pFQC2Y01F2lzV2HTMiYrI0nze0FD0ocB//CKS/7jIUgae+adPqxK5yCQ==} + engines: {node: '>=12', npm: '>=6'} + peerDependencies: + '@testing-library/dom': '>=7.21.4' + '@testing-library/user-event@14.6.1': resolution: {integrity: sha512-vq7fv0rnt+QTXgPxr5Hjc210p6YKq2kmdziLgnsZGgLJ9e6VAShx1pACLuRjd/AS/sr7phAR58OIIpf0LlmQNw==} engines: {node: '>=12', npm: '>=6'} @@ -2837,8 +2895,8 @@ packages: '@tybys/wasm-util@0.9.0': resolution: {integrity: sha512-6+7nlbMVX/PVDCwaIQ8nTOPveOcFLSt8GcXdx8hD0bt39uWxYT88uXzqTd4fTvqta7oeUJqudepapKNt2DYJFw==} - '@types/applepayjs@14.0.8': - resolution: {integrity: sha512-Yzf5OSitdS+/G8cjaAkPJ0+pBOEf9Vik1XUCdw6ul7Qh6Xb18wTlG/sWA5jKIme3x4fbyTGlSd4mfkvdtP9mRw==} + '@types/applepayjs@14.0.9': + resolution: {integrity: sha512-xEprYbb0TEP/XIiDPbVnTYpDai8fTFpsQfVSfTd81Is2GOMUy7ie019eyX6Mz2ECxfjoUVKaiGSL577roIeHCg==} '@types/aria-query@5.0.4': resolution: {integrity: sha512-rfT93uj5s0PRL7EzccGMs3brplhcrghnDoV26NqKhCAS1hVo+WdNsPvE/yb6ilfr5hi2MEk6d5EWJTKdxg8jVw==} @@ -2858,8 +2916,8 @@ packages: '@types/body-parser@1.19.5': resolution: {integrity: sha512-fB3Zu92ucau0iQ0JMCFQE7b/dv8Ot07NI3KaZIkIUNXq82k4eBAqUaneXfleGY9JWskeS9y+u0nXMyspcuQrCg==} - '@types/braintree-web@3.96.16': - resolution: {integrity: sha512-v9gbS2vxpM5Bu5xpUMbKpZVqLjU1SZrDNXtSNSQtKH7Jc8W3dD4n5WK5z+sdnCsZU31/OXkeM/y/mOi8KQjpFw==} + '@types/braintree-web@3.96.17': + resolution: {integrity: sha512-l+ujTICdA34gxov4AAsJLONNvYKbMyOYBnDU8syBhosCp/3IW2bJuZQEmUuOrliYeMmFm20ltQO9VHsRb8066g==} '@types/connect@3.4.38': resolution: {integrity: sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==} @@ -2924,8 +2982,8 @@ packages: '@types/http-errors@2.0.4': resolution: {integrity: sha512-D0CFMMtydbJAegzOyHjtiKPLlvnm3iTZyZRSZoLq2mRhDdmLfIWOCYPfQJ4cu2erKghU++QvjcUjp/5h7hESpA==} - '@types/iframe-resizer@3.5.13': - resolution: {integrity: sha512-/Np2ntlOWd/NOHs23Mj7QlNEnZ6SL02AWWdYZLm4RQNukDdpqpagfMAdin5FvQDLngR8LWfh/qUnYxuDmR8BCg==} + '@types/iframe-resizer@4.0.0': + resolution: {integrity: sha512-RKrT4goNVtqZvf9WPkV0cUcphQWXzLVW1IE4yOIY21c1W+obJJbcHFD1lQu5ncNHm/6TeQSeedVf9bmkx2NaGQ==} '@types/istanbul-lib-coverage@2.0.6': resolution: {integrity: sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==} @@ -2978,8 +3036,8 @@ packages: '@types/node@18.19.80': resolution: {integrity: sha512-kEWeMwMeIvxYkeg1gTc01awpwLbfMRZXdIhwRcakd/KlK53jmRC26LqcbIt7fnAQTu5GzlnWmzA3H6+l1u6xxQ==} - '@types/node@22.13.10': - resolution: {integrity: sha512-I6LPUvlRH+O6VRUqYOcMudhaIdUVWfsjnZavnsraHvpBwaEyMN29ry+0UVJhImYL16xsscu0aske3yA+uPOWfw==} + '@types/node@22.13.14': + resolution: {integrity: sha512-Zs/Ollc1SJ8nKUAgc7ivOEdIBM8JAKgrqqUYi2J997JuKO7/tpQC+WCetQ1sypiKCQWHdvdg9wBNpUPEWZae7w==} '@types/normalize-package-data@2.4.4': resolution: {integrity: sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==} @@ -2999,8 +3057,8 @@ packages: '@types/range-parser@1.2.7': resolution: {integrity: sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==} - '@types/react-dom@19.0.3': - resolution: {integrity: sha512-0Knk+HJiMP/qOZgMyNFamlIjw9OFCsyC2ZbigmEEyXXixgre6IQpm/4V+r3qH4GC1JPvRJKInw+on2rV6YZLeA==} + '@types/react-dom@19.0.4': + resolution: {integrity: sha512-4fSQ8vWFkg+TGhePfUzVmat3eC14TXYSsiiDSLI0dVLsrm9gZFABjPy/Qu6TKgl1tq1Bu1yDsuQgY3A3DOjCcg==} peerDependencies: '@types/react': ^19.0.0 @@ -3013,8 +3071,8 @@ packages: '@types/react@18.3.18': resolution: {integrity: sha512-t4yC+vtgnkYjNSKlFx1jkAhH8LgTo2N/7Qvi83kdEaUtMDiwpbLAktKDaAMlRcJ5eSxZkH74eEGt1ky31d7kfQ==} - '@types/react@19.0.8': - resolution: {integrity: sha512-9P/o1IGdfmQxrujGbIMDyYaaCykhLKc0NGCtYcECNUr9UAaDe4gwvV9bR6tvd5Br1SG0j+PBpbKr2UYY8CwqSw==} + '@types/react@19.0.12': + resolution: {integrity: sha512-V6Ar115dBDrjbtXSrS+/Oruobc+qVbbUxDFC1RSbRqLt5SYvxxyIDrSC85RWml54g+jfNeEMZhEj7wW07ONQhA==} '@types/resolve@1.20.6': resolution: {integrity: sha512-A4STmOXPhMUtHH+S6ymgE2GiBSMqf4oTvcQZMcHzokuTLVYzXTB8ttjcgxOVaAp2lGwEdzZ0J+cRbbeevQj1UQ==} @@ -3052,110 +3110,43 @@ packages: '@types/yargs@17.0.33': resolution: {integrity: sha512-WpxBCKWPLr4xSsHgz511rFJAM+wS28w2zEO1QDNY5zM/S8ok70NNfztH0xwhqKyaK0OHCbN98LDAZuy1ctxDkA==} - '@typescript-eslint/eslint-plugin@7.18.0': - resolution: {integrity: sha512-94EQTWZ40mzBc42ATNIBimBEDltSJ9RQHCC8vc/PDbxi4k8dVwUAv4o98dk50M1zB+JGFxp43FP7f8+FP8R6Sw==} - engines: {node: ^18.18.0 || >=20.0.0} - peerDependencies: - '@typescript-eslint/parser': ^7.0.0 - eslint: ^8.56.0 - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - - '@typescript-eslint/eslint-plugin@8.23.0': - resolution: {integrity: sha512-vBz65tJgRrA1Q5gWlRfvoH+w943dq9K1p1yDBY2pc+a1nbBLZp7fB9+Hk8DaALUbzjqlMfgaqlVPT1REJdkt/w==} + '@typescript-eslint/eslint-plugin@8.28.0': + resolution: {integrity: sha512-lvFK3TCGAHsItNdWZ/1FkvpzCxTHUVuFrdnOGLMa0GGCFIbCgQWVk3CzCGdA7kM3qGVc+dfW9tr0Z/sHnGDFyg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: '@typescript-eslint/parser': ^8.0.0 || ^8.0.0-alpha.0 eslint: ^8.57.0 || ^9.0.0 - typescript: '>=4.8.4 <5.8.0' - - '@typescript-eslint/parser@6.21.0': - resolution: {integrity: sha512-tbsV1jPne5CkFQCgPBcDOt30ItF7aJoZL997JSF7MhGQqOeT3svWRYxiqlfA5RUdlHN6Fi+EI9bxqbdyAUZjYQ==} - engines: {node: ^16.0.0 || >=18.0.0} - peerDependencies: - eslint: ^7.0.0 || ^8.0.0 - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - - '@typescript-eslint/parser@7.18.0': - resolution: {integrity: sha512-4Z+L8I2OqhZV8qA132M4wNL30ypZGYOQVBfMgxDH/K5UX0PNqTu1c6za9ST5r9+tavvHiTWmBnKzpCJ/GlVFtg==} - engines: {node: ^18.18.0 || >=20.0.0} - peerDependencies: - eslint: ^8.56.0 - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true + typescript: '>=4.8.4 <5.9.0' - '@typescript-eslint/parser@8.23.0': - resolution: {integrity: sha512-h2lUByouOXFAlMec2mILeELUbME5SZRN/7R9Cw2RD2lRQQY08MWMM+PmVVKKJNK1aIwqTo9t/0CvOxwPbRIE2Q==} + '@typescript-eslint/parser@8.28.0': + resolution: {integrity: sha512-LPcw1yHD3ToaDEoljFEfQ9j2xShY367h7FZ1sq5NJT9I3yj4LHer1Xd1yRSOdYy9BpsrxU7R+eoDokChYM53lQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 - typescript: '>=4.8.4 <5.8.0' - - '@typescript-eslint/scope-manager@6.21.0': - resolution: {integrity: sha512-OwLUIWZJry80O99zvqXVEioyniJMa+d2GrqpUTqi5/v5D5rOrppJVBPa0yKCblcigC0/aYAzxxqQ1B+DS2RYsg==} - engines: {node: ^16.0.0 || >=18.0.0} - - '@typescript-eslint/scope-manager@7.18.0': - resolution: {integrity: sha512-jjhdIE/FPF2B7Z1uzc6i3oWKbGcHb87Qw7AWj6jmEqNOfDFbJWtjt/XfwCpvNkpGWlcJaog5vTR+VV8+w9JflA==} - engines: {node: ^18.18.0 || >=20.0.0} + typescript: '>=4.8.4 <5.9.0' '@typescript-eslint/scope-manager@8.23.0': resolution: {integrity: sha512-OGqo7+dXHqI7Hfm+WqkZjKjsiRtFUQHPdGMXzk5mYXhJUedO7e/Y7i8AK3MyLMgZR93TX4bIzYrfyVjLC+0VSw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/type-utils@7.18.0': - resolution: {integrity: sha512-XL0FJXuCLaDuX2sYqZUUSOJ2sG5/i1AAze+axqmLnSkNEVMVYLF+cbwlB2w8D1tinFuSikHmFta+P+HOofrLeA==} - engines: {node: ^18.18.0 || >=20.0.0} - peerDependencies: - eslint: ^8.56.0 - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true + '@typescript-eslint/scope-manager@8.28.0': + resolution: {integrity: sha512-u2oITX3BJwzWCapoZ/pXw6BCOl8rJP4Ij/3wPoGvY8XwvXflOzd1kLrDUUUAIEdJSFh+ASwdTHqtan9xSg8buw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/type-utils@8.23.0': - resolution: {integrity: sha512-iIuLdYpQWZKbiH+RkCGc6iu+VwscP5rCtQ1lyQ7TYuKLrcZoeJVpcLiG8DliXVkUxirW/PWlmS+d6yD51L9jvA==} + '@typescript-eslint/type-utils@8.28.0': + resolution: {integrity: sha512-oRoXu2v0Rsy/VoOGhtWrOKDiIehvI+YNrDk5Oqj40Mwm0Yt01FC/Q7nFqg088d3yAsR1ZcZFVfPCTTFCe/KPwg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 - typescript: '>=4.8.4 <5.8.0' - - '@typescript-eslint/types@6.21.0': - resolution: {integrity: sha512-1kFmZ1rOm5epu9NZEZm1kckCDGj5UJEf7P1kliH4LKu/RkwpsfqqGmY2OOcUs18lSlQBKLDYBOGxRVtrMN5lpg==} - engines: {node: ^16.0.0 || >=18.0.0} - - '@typescript-eslint/types@7.18.0': - resolution: {integrity: sha512-iZqi+Ds1y4EDYUtlOOC+aUmxnE9xS/yCigkjA7XpTKV6nCBd3Hp/PRGGmdwnfkV2ThMyYldP1wRpm/id99spTQ==} - engines: {node: ^18.18.0 || >=20.0.0} + typescript: '>=4.8.4 <5.9.0' '@typescript-eslint/types@8.23.0': resolution: {integrity: sha512-1sK4ILJbCmZOTt9k4vkoulT6/y5CHJ1qUYxqpF1K/DBAd8+ZUL4LlSCxOssuH5m4rUaaN0uS0HlVPvd45zjduQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/typescript-estree@6.21.0': - resolution: {integrity: sha512-6npJTkZcO+y2/kr+z0hc4HwNfrrP4kNYh57ek7yCNlrBjWQ1Y0OS7jiZTkgumrvkX5HkEKXFZkkdFNkaW2wmUQ==} - engines: {node: ^16.0.0 || >=18.0.0} - peerDependencies: - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - - '@typescript-eslint/typescript-estree@7.18.0': - resolution: {integrity: sha512-aP1v/BSPnnyhMHts8cf1qQ6Q1IFwwRvAQGRvBFkWlo3/lH29OXA3Pts+c10nxRxIBrDnoMqzhgdwVe5f2D6OzA==} - engines: {node: ^18.18.0 || >=20.0.0} - peerDependencies: - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true + '@typescript-eslint/types@8.28.0': + resolution: {integrity: sha512-bn4WS1bkKEjx7HqiwG2JNB3YJdC1q6Ue7GyGlwPHyt0TnVq6TtD/hiOdTZt71sq0s7UzqBFXD8t8o2e63tXgwA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@typescript-eslint/typescript-estree@8.23.0': resolution: {integrity: sha512-LcqzfipsB8RTvH8FX24W4UUFk1bl+0yTOf9ZA08XngFwMg4Kj8A+9hwz8Cr/ZS4KwHrmo9PJiLZkOt49vPnuvQ==} @@ -3163,11 +3154,11 @@ packages: peerDependencies: typescript: '>=4.8.4 <5.8.0' - '@typescript-eslint/utils@7.18.0': - resolution: {integrity: sha512-kK0/rNa2j74XuHVcoCZxdFBMF+aq/vH83CXAOHieC+2Gis4mF8jJXT5eAfyD3K0sAxtPuwxaIOIOvhwzVDt/kw==} - engines: {node: ^18.18.0 || >=20.0.0} + '@typescript-eslint/typescript-estree@8.28.0': + resolution: {integrity: sha512-H74nHEeBGeklctAVUvmDkxB1mk+PAZ9FiOMPFncdqeRBXxk1lWSYraHw8V12b7aa6Sg9HOBNbGdSHobBPuQSuA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - eslint: ^8.56.0 + typescript: '>=4.8.4 <5.9.0' '@typescript-eslint/utils@8.23.0': resolution: {integrity: sha512-uB/+PSo6Exu02b5ZEiVtmY6RVYO7YU5xqgzTIVZwTHvvK3HsL8tZZHFaTLFtRG3CsV4A5mhOv+NZx5BlhXPyIA==} @@ -3176,18 +3167,21 @@ packages: eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <5.8.0' - '@typescript-eslint/visitor-keys@6.21.0': - resolution: {integrity: sha512-JJtkDduxLi9bivAB+cYOVMtbkqdPOhZ+ZI5LC47MIRrDV4Yn2o+ZnW10Nkmr28xRpSpdJ6Sm42Hjf2+REYXm0A==} - engines: {node: ^16.0.0 || >=18.0.0} - - '@typescript-eslint/visitor-keys@7.18.0': - resolution: {integrity: sha512-cDF0/Gf81QpY3xYyJKDV14Zwdmid5+uuENhjH2EqFaF0ni+yAyq/LzMaIJdhNJXZI7uLzwIlA+V7oWoyn6Curg==} - engines: {node: ^18.18.0 || >=20.0.0} + '@typescript-eslint/utils@8.28.0': + resolution: {integrity: sha512-OELa9hbTYciYITqgurT1u/SzpQVtDLmQMFzy/N8pQE+tefOyCWT79jHsav294aTqV1q1u+VzqDGbuujvRYaeSQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + eslint: ^8.57.0 || ^9.0.0 + typescript: '>=4.8.4 <5.9.0' '@typescript-eslint/visitor-keys@8.23.0': resolution: {integrity: sha512-oWWhcWDLwDfu++BGTZcmXWqpwtkwb5o7fxUIGksMQQDSdPW9prsSnfIOZMlsj4vBOSrcnjIUZMiIjODgGosFhQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@typescript-eslint/visitor-keys@8.28.0': + resolution: {integrity: sha512-hbn8SZ8w4u2pRwgQ1GlUrPKE+t2XvcCW5tTRF7j6SMYIuYG37XuzIW44JCZPa36evi0Oy2SnM664BlIaAuQcvg==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@vitejs/plugin-react@3.1.0': resolution: {integrity: sha512-AfgcRL8ZBhAlc3BFdigClmTUMISmmzHn7sB2h9U1odvc5U/MjWXsAaz18b/WoppUTDBzxOJwo2VdClfUcItu9g==} engines: {node: ^14.18.0 || >=16.0.0} @@ -3198,13 +3192,13 @@ packages: resolution: {integrity: sha512-SCCPBJtYLdE8PX/7ZQAs1QAZ8Jqwih+0VBLum1EGqmCCQal+MIUqLCzj3ZUy8ufbC0cAM4LRlSTm7IQJwWT4ug==} engines: {node: ^14.18.0 || >=16.0.0} peerDependencies: - vite: '>=4.5.2' + vite: '>=5.1.7' - '@vitest/coverage-v8@3.0.8': - resolution: {integrity: sha512-y7SAKsQirsEJ2F8bulBck4DoluhI2EEgTimHd6EEUgJBGKy9tC25cpywh1MH4FvDGoG2Unt7+asVd1kj4qOSAw==} + '@vitest/coverage-v8@3.0.9': + resolution: {integrity: sha512-15OACZcBtQ34keIEn19JYTVuMFTlFrClclwWjHo/IRPg/8ELpkgNTl0o7WLP9WO9XGH6+tip9CPYtEOrIDJvBA==} peerDependencies: - '@vitest/browser': 3.0.8 - vitest: 3.0.8 + '@vitest/browser': 3.0.9 + vitest: 3.0.9 peerDependenciesMeta: '@vitest/browser': optional: true @@ -3212,11 +3206,11 @@ packages: '@vitest/expect@2.0.5': resolution: {integrity: sha512-yHZtwuP7JZivj65Gxoi8upUN2OzHTi3zVfjwdpu2WrvCZPLwsJ2Ey5ILIPccoW23dd/zQBlJ4/dhi7DWNyXCpA==} - '@vitest/expect@3.0.4': - resolution: {integrity: sha512-Nm5kJmYw6P2BxhJPkO3eKKhGYKRsnqJqf+r0yOGRKpEP+bSCBDsjXgiu1/5QFrnPMEgzfC38ZEjvCFgaNBC0Eg==} + '@vitest/expect@3.0.9': + resolution: {integrity: sha512-5eCqRItYgIML7NNVgJj6TVCmdzE7ZVgJhruW0ziSQV4V7PvLkDL1bBkBdcTs/VuIz0IxPb5da1IDSqc1TR9eig==} - '@vitest/mocker@3.0.8': - resolution: {integrity: sha512-n3LjS7fcW1BCoF+zWZxG7/5XvuYH+lsFg+BDwwAz0arIwHQJFUEsKBQ0BLU49fCxuM/2HSeBPHQD8WjgrxMfow==} + '@vitest/mocker@3.0.9': + resolution: {integrity: sha512-ryERPIBOnvevAkTq+L1lD+DTFBRcjueL9lOUfXsLfwP92h4e+Heb+PjiqS3/OURWPtywfafK0kj++yDFjWUmrA==} peerDependencies: msw: ^2.4.9 vite: '>=5.1.7' @@ -3232,20 +3226,20 @@ packages: '@vitest/pretty-format@2.1.9': resolution: {integrity: sha512-KhRIdGV2U9HOUzxfiHmY8IFHTdqtOhIzCpd8WRdJiE7D/HUcZVD0EgQCVjm+Q9gkUXWgBvMmTtZgIG48wq7sOQ==} - '@vitest/pretty-format@3.0.4': - resolution: {integrity: sha512-ts0fba+dEhK2aC9PFuZ9LTpULHpY/nd6jhAQ5IMU7Gaj7crPCTdCFfgvXxruRBLFS+MLraicCuFXxISEq8C93g==} + '@vitest/pretty-format@3.0.9': + resolution: {integrity: sha512-OW9F8t2J3AwFEwENg3yMyKWweF7oRJlMyHOMIhO5F3n0+cgQAJZBjNgrF8dLwFTEXl5jUqBLXd9QyyKv8zEcmA==} - '@vitest/runner@3.0.8': - resolution: {integrity: sha512-c7UUw6gEcOzI8fih+uaAXS5DwjlBaCJUo7KJ4VvJcjL95+DSR1kova2hFuRt3w41KZEFcOEiq098KkyrjXeM5w==} + '@vitest/runner@3.0.9': + resolution: {integrity: sha512-NX9oUXgF9HPfJSwl8tUZCMP1oGx2+Sf+ru6d05QjzQz4OwWg0psEzwY6VexP2tTHWdOkhKHUIZH+fS6nA7jfOw==} - '@vitest/snapshot@3.0.8': - resolution: {integrity: sha512-x8IlMGSEMugakInj44nUrLSILh/zy1f2/BgH0UeHpNyOocG18M9CWVIFBaXPt8TrqVZWmcPjwfG/ht5tnpba8A==} + '@vitest/snapshot@3.0.9': + resolution: {integrity: sha512-AiLUiuZ0FuA+/8i19mTYd+re5jqjEc2jZbgJ2up0VY0Ddyyxg/uUtBDpIFAy4uzKaQxOW8gMgBdAJJ2ydhu39A==} '@vitest/spy@2.0.5': resolution: {integrity: sha512-c/jdthAhvJdpfVuaexSrnawxZz6pywlTPe84LUB2m/4t3rl2fTo9NFGBG4oWgaD+FTgDDV8hJ/nibT7IfH3JfA==} - '@vitest/spy@3.0.4': - resolution: {integrity: sha512-sXIMF0oauYyUy2hN49VFTYodzEAu744MmGcPR3ZBsPM20G+1/cSW/n1U+3Yu/zHxX2bIDe1oJASOkml+osTU6Q==} + '@vitest/spy@3.0.9': + resolution: {integrity: sha512-/CcK2UDl0aQ2wtkp3YVWldrpLRNCfVcIOFGlVGKO4R5eajsH393Z1yiXLVQ7vWsj26JOEjeZI0x5sm5P4OGUNQ==} '@vitest/utils@2.0.5': resolution: {integrity: sha512-d8HKbqIcya+GR67mkZbrzhS5kKhtp8dQLcmRZLGTscGVg7yImT82cIrhtn2L8+VujWcy6KZweApgNmPsTAO/UQ==} @@ -3253,8 +3247,8 @@ packages: '@vitest/utils@2.1.9': resolution: {integrity: sha512-v0psaMSkNJ3A2NMrUEHFRzJtDPFn+/VWZ5WxImB21T9fjucJRmS7xCS3ppEnARb9y11OAzaD+P2Ps+b+BGX5iQ==} - '@vitest/utils@3.0.4': - resolution: {integrity: sha512-8BqC1ksYsHtbWH+DfpOAKrFw3jl3Uf9J7yeFh85Pz52IWuh1hBBtyfEbRNNZNjl8H8A5yMLH9/t+k7HIKzQcZQ==} + '@vitest/utils@3.0.9': + resolution: {integrity: sha512-ilHM5fHhZ89MCp5aAaM9uhfl1c2JdxVxl3McqsdVyVNN6JffnEen8UMCdRTzOhGXNQGo5GNL9QugHrz727Wnng==} '@webassemblyjs/ast@1.14.1': resolution: {integrity: sha512-nuBEDgQfm1ccRp/8bCQrx1frohyufl4JlbMMZ4P1wpeOfDhF6FQkxZJ1b/e+PLwr6X1Nhw6OLme5usuBWYBvuQ==} @@ -3395,6 +3389,9 @@ packages: peerDependencies: ajv: ^8.8.2 + ajv@6.12.6: + resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} + ajv@8.17.1: resolution: {integrity: sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==} @@ -3406,6 +3403,10 @@ packages: resolution: {integrity: sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==} engines: {node: '>=8'} + ansi-escapes@7.0.0: + resolution: {integrity: sha512-GdYO7a61mR0fOlAsvC9/rIHf7L96sBc6dEWzeOu+KAea5bZyQRPIpojrVoI4AXGJS/ycu/fBTdLrUkA4ODrvjw==} + engines: {node: '>=18'} + ansi-regex@5.0.1: resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} engines: {node: '>=8'} @@ -3588,8 +3589,8 @@ packages: resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} engines: {node: '>=8'} - braintree-web@3.116.3: - resolution: {integrity: sha512-pZVhmCA88g40XOZonKjD7RaS66tLJBA/EFfHqdqBr4+3IX73ssgmq2OfnWWOrVICgtMhFyG6fqtwwcYFewQ9Sg==} + braintree-web@3.117.1: + resolution: {integrity: sha512-Jv4NO0s90VYpbKMVL7IMigCyWhi+BlCqxS6Ub7auk6Jd4MUPToygKO3ryvvYVMmasm7pEVKRIAH16UMVfcq4FA==} browser-assert@1.2.1: resolution: {integrity: sha512-nfulgvOR6S4gt9UKCeGJOuSGBPGiFT6oQ/2UBnvTY/5aQ1PnksW72fhZkM30DzoRRv2WpwZf1vHHEr3mtuXIWQ==} @@ -3614,13 +3615,6 @@ packages: buffer@5.7.1: resolution: {integrity: sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==} - builtin-modules@3.3.0: - resolution: {integrity: sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==} - engines: {node: '>=6'} - - builtins@5.1.0: - resolution: {integrity: sha512-SW9lzGTLvWTP1AY8xeAMZimqDrIaSdLQUcVr9DMef51niJ022Ri87SwRRKYm4A6iHfkPaiVUu/Duw2Wc4J7kKg==} - bundle-require@5.1.0: resolution: {integrity: sha512-3WrrOuZiyaaZPWiEt4G3+IffISVC9HYlWueJEBWED4ZH4aIAC2PnkdnuRrR94M+w6yGWn4AglWtJtBI8YqvgoA==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} @@ -3692,6 +3686,14 @@ packages: resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} engines: {node: '>=10'} + chalk@5.4.1: + resolution: {integrity: sha512-zgVZuo2WcZgfUEmsn6eO3kINexW8RAE4maiQ8QNs8CtpPCSyMiYsULR3HQYkm3w8FIA3SberyMJMSldGsW+U3w==} + engines: {node: ^12.17.0 || ^14.13 || >=16.0.0} + + char-regex@1.0.2: + resolution: {integrity: sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==} + engines: {node: '>=10'} + character-entities@2.0.2: resolution: {integrity: sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ==} @@ -3744,6 +3746,9 @@ packages: citty@0.1.6: resolution: {integrity: sha512-tskPPKEs8D2KPafUypv2gxwJP8h/OaJmC82QQGGDQcHvXX43xF2VDACcJVmZ0EuSxkpO9Kc4MlrA3q0+FG58AQ==} + cjs-module-lexer@1.4.3: + resolution: {integrity: sha512-9z8TZaGM1pfswYeXrUpzPrkx8UnWYdhJclsiYMm6x/w5+nN+8Tf/LnAgfLGQCm59qAOxU8WwHEq2vNwF6i4j+Q==} + classnames@2.5.1: resolution: {integrity: sha512-saHYOzhIQs6wy2sVxTM6bUDsQO4F50V9RQ22qBpEdCW+I+/Wmke2HOl6lS6dTpdxVhb88/I6+Hs+438c3lfUow==} @@ -3755,6 +3760,11 @@ packages: resolution: {integrity: sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==} engines: {node: '>=8'} + cli-highlight@2.1.11: + resolution: {integrity: sha512-9KDcoEVwyUXrjcJNvHD0NFc/hiwe/WPVYIleQh2O1N2Zro5gWJZ/K+3DGn8w8P/F6FxOgzyC5bxDyHIgCSPhGg==} + engines: {node: '>=8.0.0', npm: '>=5.0.0'} + hasBin: true + cli-spinners@2.6.1: resolution: {integrity: sha512-x/5fWmGMnbKQAaNwN+UZlV79qBLM9JFnJuJ03gIi5whrob0xV0ofNVHy9DhwGdsMJQc2OKv0oGmLzvaqvAVv+g==} engines: {node: '>=6'} @@ -3813,6 +3823,10 @@ packages: resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==} engines: {node: '>= 0.8'} + commander@10.0.1: + resolution: {integrity: sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==} + engines: {node: '>=14'} + commander@11.1.0: resolution: {integrity: sha512-yPVavfyCcRhmorC7rWlkHn15b4wDVgVmBA7kV4QVBsF7kv/9TKJAbAXVTxvTnwP8HHKjRCJDClKbciiYS7p0DQ==} engines: {node: '>=16'} @@ -4025,6 +4039,9 @@ packages: resolution: {integrity: sha512-ZIwpnevOurS8bpT4192sqAowWM76JDKSHYzMLty3BZGSswgq6pBaH3DhCSW5xVAZICZyKdOBPjwww5wfgT/6PA==} engines: {node: '>= 0.4'} + deep-is@0.1.4: + resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} + default-browser-id@3.0.0: resolution: {integrity: sha512-OZ1y3y0SqSICtE8DE4S8YOE9UZOJ8wO16fKWVP5J1Qz42kV9jcnMVFrEE/noXb/ss3Q4pZIH79kxofzyNNtUNA==} engines: {node: '>=12'} @@ -4164,6 +4181,9 @@ packages: emoji-regex@9.2.2: resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} + emojilib@2.4.0: + resolution: {integrity: sha512-5U0rVMU5Y2n2+ykNLQqMoqklN9ICBT/KsvC1Gz6vqHbz2AXXGkG+Pm5rMWk/8Vjrr/mY9985Hi8DYzn1F09Nyw==} + encodeurl@1.0.2: resolution: {integrity: sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==} engines: {node: '>= 0.8'} @@ -4208,6 +4228,10 @@ packages: engines: {node: '>=4'} hasBin: true + environment@1.1.0: + resolution: {integrity: sha512-xUtoPkMggbz0MPyPiIWr1Kp4aeWJjDZ6SMvURhimjdZgsRuDplF5/s9hcgGhyXMhs+6vpnuoiZ2kFiu3FMnS8Q==} + engines: {node: '>=18'} + err-code@2.0.3: resolution: {integrity: sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==} @@ -4268,6 +4292,10 @@ packages: resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==} engines: {node: '>=0.8.0'} + escape-string-regexp@4.0.0: + resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} + engines: {node: '>=10'} + escape-string-regexp@5.0.0: resolution: {integrity: sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==} engines: {node: '>=12'} @@ -4277,128 +4305,19 @@ packages: engines: {node: '>=6.0'} hasBin: true - eslint-compat-utils@0.5.1: - resolution: {integrity: sha512-3z3vFexKIEnjHE3zCMRo6fn/e44U7T1khUjg+Hp0ZQMCigh28rALD0nPFBcGZuiLC5rLZa2ubQHDRln09JfU2Q==} - engines: {node: '>=12'} - peerDependencies: - eslint: '>=6.0.0' - - eslint-config-love@43.1.0: - resolution: {integrity: sha512-r3+7mSaOl0BEGf8LEntPPDbWTDw8o0Dpy9vdts7m+NAuSpmz9C/gL+64lC0Z8nKNE4uwdymPGll4czGQiR+XmQ==} - peerDependencies: - '@typescript-eslint/eslint-plugin': ^6.4.0 - eslint: ^8.0.1 - eslint-plugin-import: ^2.25.2 - eslint-plugin-n: '^15.0.0 || ^16.0.0 ' - eslint-plugin-promise: ^6.0.0 - typescript: '*' - - eslint-config-prettier@9.1.0: - resolution: {integrity: sha512-NSWl5BFQWEPi1j4TjVNItzYV7dZXZ+wP6I6ZhrBGpChQhZRUaElihE9uRRkcbRnNb76UMKDF3r+WTmNcGPKsqw==} - hasBin: true - peerDependencies: - eslint: '>=7.0.0' - - eslint-config-standard-jsx@11.0.0: - resolution: {integrity: sha512-+1EV/R0JxEK1L0NGolAr8Iktm3Rgotx3BKwgaX+eAuSX8D952LULKtjgZD3F+e6SvibONnhLwoTi9DPxN5LvvQ==} - peerDependencies: - eslint: ^8.8.0 - eslint-plugin-react: ^7.28.0 - - eslint-config-standard@17.1.0: - resolution: {integrity: sha512-IwHwmaBNtDK4zDHQukFDW5u/aTb8+meQWZvNFWkiGmbWjD6bqyuSSBxxXKkCftCUzc1zwCH2m/baCNDLGmuO5Q==} - engines: {node: '>=12.0.0'} - peerDependencies: - eslint: ^8.0.1 - eslint-plugin-import: ^2.25.2 - eslint-plugin-n: '^15.0.0 || ^16.0.0 ' - eslint-plugin-promise: ^6.0.0 - - eslint-import-resolver-node@0.3.9: - resolution: {integrity: sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==} - - eslint-module-utils@2.12.0: - resolution: {integrity: sha512-wALZ0HFoytlyh/1+4wuZ9FJCD/leWHQzzrxJ8+rebyReSLk7LApMyd3WJaLVoN+D5+WIdJyDK1c6JnE65V4Zyg==} - engines: {node: '>=4'} - peerDependencies: - '@typescript-eslint/parser': '*' - eslint: '*' - eslint-import-resolver-node: '*' - eslint-import-resolver-typescript: '*' - eslint-import-resolver-webpack: '*' - peerDependenciesMeta: - '@typescript-eslint/parser': - optional: true - eslint: - optional: true - eslint-import-resolver-node: - optional: true - eslint-import-resolver-typescript: - optional: true - eslint-import-resolver-webpack: - optional: true - - eslint-plugin-es-x@7.8.0: - resolution: {integrity: sha512-7Ds8+wAAoV3T+LAKeu39Y5BzXCrGKrcISfgKEqTS4BDN8SFEDQd0S43jiQ8vIa3wUKD07qitZdfzlenSi8/0qQ==} - engines: {node: ^14.18.0 || >=16.0.0} - peerDependencies: - eslint: '>=8' - - eslint-plugin-import@2.31.0: - resolution: {integrity: sha512-ixmkI62Rbc2/w8Vfxyh1jQRTdRTF52VxwRVHl/ykPAmqG+Nb7/kNn+byLP0LxPgI7zWA16Jt82SybJInmMia3A==} - engines: {node: '>=4'} - peerDependencies: - '@typescript-eslint/parser': '*' - eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 || ^9 - peerDependenciesMeta: - '@typescript-eslint/parser': - optional: true - - eslint-plugin-n@16.6.2: - resolution: {integrity: sha512-6TyDmZ1HXoFQXnhCTUjVFULReoBPOAjpuiKELMkeP40yffI/1ZRO+d9ug/VC6fqISo2WkuIBk3cvuRPALaWlOQ==} - engines: {node: '>=16.0.0'} - peerDependencies: - eslint: '>=7.0.0' - - eslint-plugin-prettier@5.2.1: - resolution: {integrity: sha512-gH3iR3g4JfF+yYPaJYkN7jEl9QbweL/YfkoRlNnuIEHEz1vHVlCmWOS+eGGiRuzHQXdJFCOTxRgvju9b8VUmrw==} - engines: {node: ^14.18.0 || >=16.0.0} - peerDependencies: - '@types/eslint': '>=8.0.0' - eslint: '>=8.0.0' - eslint-config-prettier: '*' - prettier: '>=3.0.0' - peerDependenciesMeta: - '@types/eslint': - optional: true - eslint-config-prettier: - optional: true - - eslint-plugin-promise@6.6.0: - resolution: {integrity: sha512-57Zzfw8G6+Gq7axm2Pdo3gW/Rx3h9Yywgn61uE/3elTCOePEHVrn2i5CdfBwA1BLK0Q0WqctICIUSqXZW/VprQ==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - peerDependencies: - eslint: ^7.0.0 || ^8.0.0 || ^9.0.0 - - eslint-plugin-react-hooks@5.1.0: - resolution: {integrity: sha512-mpJRtPgHN2tNAvZ35AMfqeB3Xqeo273QxrHJsbBEPWODRM4r0yB6jfoROqKEYrOn27UtRPpcpHc2UqyBSuUNTw==} + eslint-plugin-react-hooks@5.2.0: + resolution: {integrity: sha512-+f15FfK64YQwZdJNELETdn5ibXEUQmW1DZL6KXhNnc2heoy/sg9VJJeT7n8TlMWouzWqSWavFkIhHyIbIAEapg==} engines: {node: '>=10'} peerDependencies: eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 || ^9.0.0 - eslint-plugin-react-refresh@0.4.18: - resolution: {integrity: sha512-IRGEoFn3OKalm3hjfolEWGqoF/jPqeEYFp+C8B0WMzwGwBMvlRDQd06kghDhF0C61uJ6WfSDhEZE/sAQjduKgw==} + eslint-plugin-react-refresh@0.4.19: + resolution: {integrity: sha512-eyy8pcr/YxSYjBoqIFSrlbn9i/xvxUFa8CjzAYo9cFjgGXqq1hyjihcpZvxRLalpaWmueWR81xn7vuKmAFijDQ==} peerDependencies: eslint: '>=8.40' - eslint-plugin-react@7.37.2: - resolution: {integrity: sha512-EsTAnj9fLVr/GZleBLFbj/sSuXeWmp1eXIN60ceYnZveqEaUCyW4X+Vh4WTdUhCkW4xutXYqTXCUSyqD4rB75w==} - engines: {node: '>=4'} - peerDependencies: - eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9.7 - - eslint-plugin-storybook@0.11.2: - resolution: {integrity: sha512-0Z4DUklJrC+GHjCRXa7PYfPzWC15DaVnwaOYenpgXiCEijXPZkLKCms+rHhtoRcWccP7Z8DpOOaP1gc3P9oOwg==} + eslint-plugin-storybook@0.12.0: + resolution: {integrity: sha512-Lg5I0+npTgiYgZ4KSvGWGDFZi3eOCNJPaWX0c9rTEEXC5wvooOClsP9ZtbI4hhFKyKgYR877KiJxbRTSJq9gWA==} engines: {node: '>= 18'} peerDependencies: eslint: '>=8' @@ -4407,8 +4326,8 @@ packages: resolution: {integrity: sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==} engines: {node: '>=8.0.0'} - eslint-scope@8.2.0: - resolution: {integrity: sha512-PHlWUfG6lvPc3yvP5A4PNyBL1W8fkDUccmI21JUu/+GKZBoH/W5u6usENXUrWFRsyoW5ACUjFGgAFQp5gUlb/A==} + eslint-scope@8.3.0: + resolution: {integrity: sha512-pUNxi75F8MJ/GdeKtVLSbYg4ZI34J6C0C7sbL4YOp2exGwen7ZsuBqKzUhXd0qMQ362yET3z+uPwKeg/0C2XCQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} eslint-visitor-keys@3.4.3: @@ -4419,8 +4338,8 @@ packages: resolution: {integrity: sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - eslint@9.19.0: - resolution: {integrity: sha512-ug92j0LepKlbbEv6hD911THhoRHmbdXt2gX+VDABAW/Ir7D3nqKdv5Pf5vtlyY6HQMTEP2skXY43ueqTCWssEA==} + eslint@9.23.0: + resolution: {integrity: sha512-jV7AbNoFPAY1EkFYpLq5bslU9NLNO8xnEeQXwErNibVryjk67wHVmddTBilc5srIttJDBrB0eMHKZBFbSIABCw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} hasBin: true peerDependencies: @@ -4438,6 +4357,10 @@ packages: engines: {node: '>=4'} hasBin: true + esquery@1.6.0: + resolution: {integrity: sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==} + engines: {node: '>=0.10'} + esrecurse@4.3.0: resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} engines: {node: '>=4.0'} @@ -4511,6 +4434,9 @@ packages: fast-json-stable-stringify@2.1.0: resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} + fast-levenshtein@2.0.6: + resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} + fast-uri@3.0.6: resolution: {integrity: sha512-Atfo14OibSv5wAp4VWNsFYE1AchQRTv9cBGWET4pZWHzYshFSS9NQI6I57rdKn9croWVMbYFbLhJ+yJvmZIIHw==} @@ -4534,10 +4460,17 @@ packages: fetch-retry@5.0.6: resolution: {integrity: sha512-3yurQZ2hD9VISAhJJP9bpYFNQrHHBXE2JxxjY5aLEcDi46RmAzJE2OC9FAde0yis5ElW0jTTzs0zfg/Cca4XqQ==} + fflate@0.8.2: + resolution: {integrity: sha512-cPJU47OaAoCbg0pBvzsgpTPhmhqI5eJjh/JIu8tPj5q+T7iLvW/JAYUqmE7KOB4R1ZyEhzBaIQpQpardBF5z8A==} + figures@3.2.0: resolution: {integrity: sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==} engines: {node: '>=8'} + file-entry-cache@8.0.0: + resolution: {integrity: sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==} + engines: {node: '>=16.0.0'} + file-system-cache@2.3.0: resolution: {integrity: sha512-l4DMNdsIPsVnKrgEXbJwDJsA5mB8rGwHYERMgqQx/xAUtChPJMre1bXBzDEqqVbWv9AIbFezXMxeEkZDSrXUOQ==} @@ -4588,10 +4521,17 @@ packages: resolution: {integrity: sha512-v2ZsoEuVHYy8ZIlYqwPe/39Cy+cFDzp4dXPaxNvkEuouymu+2Jbz0PxpKarJHYJTmv2HWT3O382qY8l4jMWthw==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + flat-cache@4.0.1: + resolution: {integrity: sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==} + engines: {node: '>=16'} + flat@5.0.2: resolution: {integrity: sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==} hasBin: true + flatted@3.3.3: + resolution: {integrity: sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg==} + flow-parser@0.265.2: resolution: {integrity: sha512-DX2mp5u3lNJHl5dH8R1KrcrDsiJC02zFcG95p4b0YcDCzZZW+v9za2Csv5bQ0cq4jNzGx0gFU9jFZyM7FOyNFw==} engines: {node: '>=0.4.0'} @@ -4787,22 +4727,14 @@ packages: resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==} engines: {node: '>=4'} - globals@13.24.0: - resolution: {integrity: sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==} - engines: {node: '>=8'} - globals@14.0.0: resolution: {integrity: sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==} engines: {node: '>=18'} - globals@15.14.0: - resolution: {integrity: sha512-OkToC372DtlQeje9/zHIo5CT8lRP/FUgEOKBEhU4e0abL7J7CD24fD9ohiLN5hagG/kWCYj4K5oaxxtj2Z0Dig==} + globals@16.0.0: + resolution: {integrity: sha512-iInW14XItCXET01CQFqudPOWP2jYMl7T+QRQT+UNcR/iQncN/F0UNpgd76iFkBPgNQb4+X3LV9tLJYzwh+Gl3A==} engines: {node: '>=18'} - globalthis@1.0.4: - resolution: {integrity: sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==} - engines: {node: '>= 0.4'} - globby@11.1.0: resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} engines: {node: '>=10'} @@ -4817,6 +4749,9 @@ packages: graceful-fs@4.2.11: resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} + graphemer@1.4.0: + resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==} + graphql@16.10.0: resolution: {integrity: sha512-AjqGKbDGUFRKIRCP9tCKiIGHyriz2oHEbPIbEtcSLSs4YjReZOIPQQWek4+6hjw62H9QShXHyaGivGiYVLeYFQ==} engines: {node: ^12.22.0 || ^14.16.0 || ^16.0.0 || >=17.0.0} @@ -4863,6 +4798,9 @@ packages: headers-polyfill@4.0.3: resolution: {integrity: sha512-IScLbePpkvO846sIwOtOTDjutRMWdXdJmXdMvk6gCBHxFO8d+QKOQedyZSxFTTFYRSmlgSTDtXqqq4pcenBXLQ==} + highlight.js@10.7.3: + resolution: {integrity: sha512-tzcUFauisWKNHaRkN4Wjl/ZA07gENAjFl3J/c480dprkGTg5EQstgaNFqBfUqCq54kZRIEcreTsAgF/m2quD7A==} + hosted-git-info@2.8.9: resolution: {integrity: sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==} @@ -5312,6 +5250,9 @@ packages: engines: {node: '>=6'} hasBin: true + json-buffer@3.0.1: + resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==} + json-parse-better-errors@1.0.2: resolution: {integrity: sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==} @@ -5322,9 +5263,15 @@ packages: resolution: {integrity: sha512-fi0NG4bPjCHunUJffmLd0gxssIgkNmArMvis4iNah6Owg1MCJjWhEcDLmsK6iGkJq3tHwbDkTlce70/tmXN4cQ==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + json-schema-traverse@0.4.1: + resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} + json-schema-traverse@1.0.0: resolution: {integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==} + json-stable-stringify-without-jsonify@1.0.1: + resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} + json-stringify-nice@1.1.4: resolution: {integrity: sha512-5Z5RFW63yxReJ7vANgW6eZFGWaQvnPE3WNmZoOJrSkGju2etKA2L5rrOa1sm877TVTFt57A80BH1bArcmlLfPw==} @@ -5356,6 +5303,9 @@ packages: resolution: {integrity: sha512-+KJGIyHgkGuIq3IEBNftfhW/LfWhXUIY6OmyVWjliu5KH1y0fw7VQ8YndE2O4qZdMSd9SqbnC8GOcZEy0Om7sA==} engines: {node: '>=18'} + keyv@4.5.4: + resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==} + kind-of@6.0.3: resolution: {integrity: sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==} engines: {node: '>=0.10.0'} @@ -5381,6 +5331,10 @@ packages: resolution: {integrity: sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==} engines: {node: '>=6'} + levn@0.4.1: + resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} + engines: {node: '>= 0.8.0'} + libnpmaccess@8.0.6: resolution: {integrity: sha512-uM8DHDEfYG6G5gVivVl+yQd4pH3uRclHC59lzIbSvy7b5FEwR+mU49Zq1jEyRtRFv7+M99mUW9S0wL/4laT4lw==} engines: {node: ^16.14.0 || >=18.0.0} @@ -5528,6 +5482,17 @@ packages: peerDependencies: react: '>= 0.14.0' + marked-terminal@7.3.0: + resolution: {integrity: sha512-t4rBvPsHc57uE/2nJOLmMbZCQ4tgAccAED3ngXQqW6g+TxA488JzJ+FK3lQkzBQOI1mRV/r/Kq+1ZlJ4D0owQw==} + engines: {node: '>=16.0.0'} + peerDependencies: + marked: '>=1 <16' + + marked@9.1.6: + resolution: {integrity: sha512-jcByLnIFkd5gSXZmjNvS1TlmRhCXZjIzHYlaGkPlLIekG55JDR2Z4va9tZwCiP+/RDERiNhMOFu01xd6O5ct1Q==} + engines: {node: '>= 16'} + hasBin: true + math-intrinsics@1.1.0: resolution: {integrity: sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==} engines: {node: '>= 0.4'} @@ -5974,6 +5939,9 @@ packages: engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} hasBin: true + natural-compare@1.4.0: + resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} + negotiator@0.6.3: resolution: {integrity: sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==} engines: {node: '>= 0.6'} @@ -5989,6 +5957,10 @@ packages: resolution: {integrity: sha512-tmPX422rYgofd4epzrNoOXiE8XFZYOcCq1vD7MAXCDO+O+zndlA2ztdKKMa+EeuBG5tHETpr4ml4RGgpqDCCAg==} engines: {node: '>= 0.10.5'} + node-emoji@2.2.0: + resolution: {integrity: sha512-Z3lTE9pLaJF47NyMhd4ww1yFTAP8YhYI8SleJiHzM46Fgpm5cnNzSl9XfzFNqbaz+VlJrIj3fXQ4DeN1Rjm6cw==} + engines: {node: '>=18'} + node-fetch-native@1.6.6: resolution: {integrity: sha512-8Mc2HhqPdlIfedsuZoc3yioPuzp6b+L5jRCRY1QzuWZh2EGJVQrGppC6V6cF0bLdbW0+O2YpqCA25aF/1lvipQ==} @@ -6135,6 +6107,10 @@ packages: resolution: {integrity: sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==} engines: {node: '>=12'} + optionator@0.9.4: + resolution: {integrity: sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==} + engines: {node: '>= 0.8.0'} + ora@5.3.0: resolution: {integrity: sha512-zAKMgGXUim0Jyd6CXK9lraBnD3H5yPGBPPOkC23a2BG6hsm4Zu6OQSjQuEtV0BHDf4aKHcUFvJiGRrFuW3MG8g==} engines: {node: '>=10'} @@ -6259,6 +6235,15 @@ packages: parse-url@8.1.0: resolution: {integrity: sha512-xDvOoLU5XRrcOZvnI6b8zA6n9O9ejNk/GExuz1yBuWUGn9KA97GI6HTs6u02wKara1CeVmZhH+0TZFdWScR89w==} + parse5-htmlparser2-tree-adapter@6.0.1: + resolution: {integrity: sha512-qPuWvbLgvDGilKc5BoicRovlT4MtYT6JfJyBOMDsKoiT+GiuP5qyrPCnR9HcPECIJJmZh5jRndyNThnhhb/vlA==} + + parse5@5.1.1: + resolution: {integrity: sha512-ugq4DFI0Ptb+WWjAdOK16+u/nHfiIrcE+sh8kZMaM0WllQKLI9rOUq6c2b7cwPkXdzfQESqvoqK6ug7U/Yyzug==} + + parse5@6.0.1: + resolution: {integrity: sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==} + parse5@7.2.1: resolution: {integrity: sha512-BuBYQYlv1ckiPdQi/ohiivi9Sagc9JG+Ozs0r7b/0iK3sKmrb0b9FdWdBbOdx6hBCM/F9Ir82ofnBhtZOjCRPQ==} @@ -6370,13 +6355,13 @@ packages: pkg-types@1.3.1: resolution: {integrity: sha512-/Jm5M4RvtBFVkKWRu2BLUTNP8/M2a+UwuAX+ae4770q1qVGtfjG+WTCupoZixokjmHiry8uI+dlY8KXYV5HVVQ==} - playwright-core@1.51.0: - resolution: {integrity: sha512-x47yPE3Zwhlil7wlNU/iktF7t2r/URR3VLbH6EknJd/04Qc/PSJ0EY3CMXipmglLG+zyRxW6HNo2EGbKLHPWMg==} + playwright-core@1.51.1: + resolution: {integrity: sha512-/crRMj8+j/Nq5s8QcvegseuyeZPxpQCZb6HNk3Sos3BlZyAknRjoyJPFWkpNn8v0+P3WiwqFF8P+zQo4eqiNuw==} engines: {node: '>=18'} hasBin: true - playwright@1.51.0: - resolution: {integrity: sha512-442pTfGM0xxfCYxuBa/Pu6B2OqxqqaYq39JS8QDMGThUvIOCd6s0ANDog3uwA0cHavVlnTQzGCN7Id2YekDSXA==} + playwright@1.51.1: + resolution: {integrity: sha512-kkx+MB2KQRkyxjYPc3a0wLZZoDczmppyGJIvQ43l+aZihkaVvmu/21kiyaHeHjiFxjxNNFnUncKmcGIyOojsaw==} engines: {node: '>=18'} hasBin: true @@ -6421,6 +6406,10 @@ packages: preact@10.22.1: resolution: {integrity: sha512-jRYbDDgMpIb5LHq3hkI0bbl+l/TQ9UnkdQ0ww+lp+4MMOdqaUYdFc5qeyP+IV8FAd/2Em7drVPeKdQxsiWCf/A==} + prelude-ls@1.2.1: + resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} + engines: {node: '>= 0.8.0'} + prettier@2.8.8: resolution: {integrity: sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==} engines: {node: '>=10.13.0'} @@ -6585,8 +6574,8 @@ packages: peerDependencies: typescript: '>= 4.3.x' - react-docgen@7.1.1: - resolution: {integrity: sha512-hlSJDQ2synMPKFZOsKo9Hi8WWZTC7POR8EmWvTSjow+VDgKzkmjQvFm2fk0tmRw+f0vTOIYKlarR0iL4996pdg==} + react-docgen@7.1.0: + resolution: {integrity: sha512-APPU8HB2uZnpl6Vt/+0AFoVYgSRtfiP6FLrZgPPTDmqSb2R4qZRbgd0A3VzIFxDt5e+Fozjx79WjLWnF69DK8g==} engines: {node: '>=16.14.0'} react-dom@18.3.1: @@ -6752,8 +6741,8 @@ packages: remark-gfm@3.0.1: resolution: {integrity: sha512-lEFDoi2PICJyNrACFOfDD3JlLkuSbOa5Wd8EPt06HUdptv8Gn0bxYTdbU/XXQ3swAPkEaGxxPN9cbnMHvVu1Ig==} - remark-gfm@4.0.0: - resolution: {integrity: sha512-U92vJgBPkbw4Zfu/IiW2oTZLSL3Zpv+uI7My2eq8JxKgqraFdU8YUGicEJCEgSbeaG+QDFqIcwwfMTOEelPxuA==} + remark-gfm@4.0.1: + resolution: {integrity: sha512-1quofZ2RQ9EWdeN34S79+KExV1764+wCUGop5CPL1WGdD0ocPpu91lzPGbwWMECpEpd42kJGQwzRfyov9j4yNg==} remark-parse@11.0.0: resolution: {integrity: sha512-FCxlKLNGknS5ba/1lmpYijMUzX2esxW5xQqjWxw2eHFfS2MSdaHVINFmhjo+qN1WhZhNimq0dZATN9pH0IDrpA==} @@ -6887,10 +6876,6 @@ packages: scheduler@0.25.0: resolution: {integrity: sha512-xFVuu11jh+xcO7JOAGJNOXld8/TcEHK/4CituBUeUb5hqxJLj9YuemAEuvm9gQ/+pgXYfbQuqAkiYu+u7YEsNA==} - schema-utils@3.3.0: - resolution: {integrity: sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==} - engines: {node: '>= 10.13.0'} - schema-utils@4.3.0: resolution: {integrity: sha512-Gf9qqc58SpCA/xdziiHz35F4GNIWYWZrEshUc/G/r5BnLph6xpKuLeoJoQuj5WfBIx/eQLf+hmVPYHaxJu7V2g==} engines: {node: '>= 10.13.0'} @@ -6978,6 +6963,10 @@ packages: sisteransi@1.0.5: resolution: {integrity: sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==} + skin-tone@2.0.0: + resolution: {integrity: sha512-kUMbT1oBJCpgrnKoSr0o6wPtvRWT9W9UKvGLwfJYO2WuahZRHOpEyL1ckyMGgMWh0UdpmaoFqKKD29WTomNEGA==} + engines: {node: '>=8'} + slash@3.0.0: resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} engines: {node: '>=8'} @@ -7065,8 +7054,8 @@ packages: resolution: {integrity: sha512-Wt04pPTO71pwmRmsgkyZhNo4Bvdb/1pBAMsIFb9nQLykEdzzpXjvingxFFvdOG4nIowzwgxD+CLlyRqVJqnATw==} hasBin: true - storybook@8.5.3: - resolution: {integrity: sha512-2WtNBZ45u1AhviRU+U+ld588tH8gDa702dNSq5C8UBaE9PlOsazGsyp90dw1s9YRvi+ejrjKAupQAU0GwwUiVg==} + storybook@8.6.10: + resolution: {integrity: sha512-7LUD9hNllMZZhDJutxgejrpWI89rsBF+p2kCfWoJ9EuBTgRy8bbVQZlG7bE1gf7qLmnabnklsFslTakS2SbKRw==} hasBin: true peerDependencies: prettier: ^2 || ^3 @@ -7144,6 +7133,10 @@ packages: resolution: {integrity: sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==} engines: {node: '>=10'} + supports-hyperlinks@3.2.0: + resolution: {integrity: sha512-zFObLMyZeEwzAoKCyu1B91U79K2t7ApXuQfo8OuxwXLDgcKxuwM+YvcbIhm6QWqz7mHUH1TVytR1PwVVjEuMig==} + engines: {node: '>=14.18'} + supports-preserve-symlinks-flag@1.0.0: resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} engines: {node: '>= 0.4'} @@ -7243,8 +7236,8 @@ packages: tinyexec@0.3.2: resolution: {integrity: sha512-KQQR9yN7R5+OSwaK0XQoj22pwHoTlgYqmUscPYoknOoWCWfj/5/ABTMRi69FrKU5ffPVh5QcFikpWJI/P1ocHA==} - tinyglobby@0.2.10: - resolution: {integrity: sha512-Zc+8eJlFMvgatPZTl6A9L/yht8QqdmUNtURHaKZLmKBE12hNPSrqNkUp2cs3M/UKmNVVAMFQYSjYIVHDjW5zew==} + tinyglobby@0.2.12: + resolution: {integrity: sha512-qkf4trmKSIiMTs/E63cxH+ojC2unam7rJ0WrauAzpT3ECNTxGRMlaXxVbfxMUC/w0LaYk6jQ4y/nGR9uBO3tww==} engines: {node: '>=12.0.0'} tinypool@1.0.2: @@ -7306,8 +7299,8 @@ packages: tr46@1.0.1: resolution: {integrity: sha512-dTpowEjclQ7Kgx5SdBkqRzVhERQXov8/l9Ft9dVM9fmg0W0KQSVaXX9T4i6twCPNtYiZM53lpSSUAwJbFPOHxA==} - tr46@5.0.0: - resolution: {integrity: sha512-tk2G5R2KRwBd+ZN0zaEXpmzdKyOYksXwywulIX95MBODjSzMIuQnQ3m8JxgbhnL1LeVo7lqQKsYa1O3Htl7K5g==} + tr46@5.1.0: + resolution: {integrity: sha512-IUWnUK7ADYR5Sl1fZlO1INDUhVhatWl7BtJWsIhwJ0UAK7ilzzIa8uIqOO/aYVWHZPJkKbEL+362wrzoeRF7bw==} engines: {node: '>=18'} tree-kill@1.2.2: @@ -7325,12 +7318,6 @@ packages: trough@2.2.0: resolution: {integrity: sha512-tmMpK00BjZiUyVyvrBK7knerNgmgvcV/KLVyuma/SC+TQN167GrMRciANTz09+k3zW8L8t60jWO1GpfkZdjTaw==} - ts-api-utils@1.4.3: - resolution: {integrity: sha512-i3eMG77UTMD0hZhgRS562pv83RC6ukSAC2GMNWc+9dieh/+jDM5u5YG+NHX6VNDRHQcHwmsTHctP9LhbC3WxVw==} - engines: {node: '>=16'} - peerDependencies: - typescript: '>=4.2.0' - ts-api-utils@2.0.1: resolution: {integrity: sha512-dnlgjFSVetynI8nzgJ+qF62efpglpWRk8isUEWZGWlJYySCTD6aKvbUDu+zbPeDakk3bg5H4XpitHukgfL1m9w==} engines: {node: '>=18.12'} @@ -7344,8 +7331,8 @@ packages: ts-interface-checker@0.1.13: resolution: {integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==} - tsc-alias@1.8.10: - resolution: {integrity: sha512-Ibv4KAWfFkFdKJxnWfVtdOmB0Zi1RJVxcbPGiCDsFpCQSsmpWyuzHG3rQyI5YkobWwxFPEyQfu1hdo4qLG2zPw==} + tsc-alias@1.8.11: + resolution: {integrity: sha512-2DuEQ58A9Rj2NE2c1+/qaGKlshni9MCK95MJzRGhQG0CYLw0bE/ACgbhhTSf/p1svLelwqafOd8stQate2bYbg==} hasBin: true tsconfck@3.1.5: @@ -7368,8 +7355,8 @@ packages: tslib@2.8.1: resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==} - tsup@8.3.6: - resolution: {integrity: sha512-XkVtlDV/58S9Ye0JxUUTcrQk4S+EqlOHKzg6Roa62rdjL1nGWNUstG0xgI4vanHdfIpjP448J8vlN0oK6XOJ5g==} + tsup@8.4.0: + resolution: {integrity: sha512-b+eZbPCjz10fRryaAA7C8xlIHnf8VnsaRqydheLIqwG/Mcpfk8Z5zp3HayX7GaTygkigHl5cBUs+IhcySiIexQ==} engines: {node: '>=18'} hasBin: true peerDependencies: @@ -7437,18 +7424,23 @@ packages: typedarray@0.0.6: resolution: {integrity: sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==} - typescript-eslint@8.23.0: - resolution: {integrity: sha512-/LBRo3HrXr5LxmrdYSOCvoAMm7p2jNizNfbIpCgvG4HMsnoprRUOce/+8VJ9BDYWW68rqIENE/haVLWPeFZBVQ==} + typescript-eslint@8.28.0: + resolution: {integrity: sha512-jfZtxJoHm59bvoCMYCe2BM0/baMswRhMmYhy+w6VfcyHrjxZ0OJe0tGasydCpIpA+A/WIJhTyZfb3EtwNC/kHQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 - typescript: '>=4.8.4 <5.8.0' + typescript: '>=4.8.4 <5.9.0' typescript@4.9.5: resolution: {integrity: sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==} engines: {node: '>=4.2.0'} hasBin: true + typescript@5.6.1-rc: + resolution: {integrity: sha512-E3b2+1zEFu84jB0YQi9BORDjz9+jGbwwy1Zi3G0LUNw7a7cePUrHMRNy8aPh53nXpkFGVHSxIZo5vKTfYaFiBQ==} + engines: {node: '>=14.17'} + hasBin: true + typescript@5.8.2: resolution: {integrity: sha512-aJn6wq13/afZp/jT9QZmwEjDqqvSGp1VT5GVg+f/t6/oVyrgXM6BY1h9BRh/O5p3PlUPAe+WuiEZOmb/49RqoQ==} engines: {node: '>=14.17'} @@ -7472,6 +7464,10 @@ packages: resolution: {integrity: sha512-dA8WbNeb2a6oQzAQ55YlT5vQAWGV9WXOsi3SskE3bcCdM0P4SDd+24zS/OCacdRq5BkdsRj9q3Pg6YyQoxIGqg==} engines: {node: '>=4'} + unicode-emoji-modifier-base@1.0.0: + resolution: {integrity: sha512-yLSH4py7oFH3oG/9K+XWrz1pSi3dfUrWEnInbxMfArOfc1+33BlGPQtLsOYwvdMy11AwUBetYuaRxSPqgkq+8g==} + engines: {node: '>=4'} + unicode-match-property-ecmascript@2.0.0: resolution: {integrity: sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==} engines: {node: '>=4'} @@ -7568,6 +7564,9 @@ packages: peerDependencies: browserslist: '>= 4.21.0' + uri-js@4.4.1: + resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} + url-parse@1.5.10: resolution: {integrity: sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==} @@ -7643,15 +7642,15 @@ packages: vfile@6.0.3: resolution: {integrity: sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q==} - vite-node@3.0.4: - resolution: {integrity: sha512-7JZKEzcYV2Nx3u6rlvN8qdo3QV7Fxyt6hx+CCKz9fbWxdX5IvUOmTWEAxMrWxaiSf7CKGLJQ5rFu8prb/jBjOA==} + vite-node@3.0.9: + resolution: {integrity: sha512-w3Gdx7jDcuT9cNn9jExXgOyKmf5UOTb6WMHz8LGAm54eS1Elf5OuBhCxl6zJxGhEeIkgsE1WbHuoL0mj/UXqXg==} engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0} hasBin: true vite-tsconfig-paths@5.1.4: resolution: {integrity: sha512-cYj0LRuLV2c2sMqhqhGpaO3LretdtMn/BVX4cPLanIZuwwrkVl+lK84E/miEXkCHWXuq65rhNN4rXsBcOB3S4w==} peerDependencies: - vite: '>=4.5.2' + vite: '>=5.1.7' peerDependenciesMeta: vite: optional: true @@ -7696,8 +7695,8 @@ packages: yaml: optional: true - vite@6.1.0: - resolution: {integrity: sha512-RjjMipCKVoR4hVfPY6GQTgveinjNuyLw+qruksLDvA5ktI1150VmcMBKmQaEWJhg/j6Uaf6dNCNA0AfdzUb/hQ==} + vite@6.2.3: + resolution: {integrity: sha512-IzwM54g4y9JA/xAeBPNaDXiBF8Jsgl3VBQ2YQ/wOY6fyW3xMdSoltIV3Bo59DErdqdE6RxUfv8W69DvUorE4Eg==} engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0} hasBin: true peerDependencies: @@ -7736,16 +7735,16 @@ packages: yaml: optional: true - vitest@3.0.4: - resolution: {integrity: sha512-6XG8oTKy2gnJIFTHP6LD7ExFeNLxiTkK3CfMvT7IfR8IN+BYICCf0lXUQmX7i7JoxUP8QmeP4mTnWXgflu4yjw==} + vitest@3.0.9: + resolution: {integrity: sha512-BbcFDqNyBlfSpATmTtXOAOj71RNKDDvjBM/uPfnxxVGrG+FSH2RQIwgeEngTaTkuU/h0ScFvf+tRcKfYXzBybQ==} engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0} hasBin: true peerDependencies: '@edge-runtime/vm': '*' '@types/debug': ^4.1.12 '@types/node': ^18.0.0 || ^20.0.0 || >=22.0.0 - '@vitest/browser': 3.0.8 - '@vitest/ui': 3.0.8 + '@vitest/browser': 3.0.9 + '@vitest/ui': 3.0.9 happy-dom: '*' jsdom: '*' peerDependenciesMeta: @@ -7856,6 +7855,10 @@ packages: wide-align@1.1.5: resolution: {integrity: sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==} + word-wrap@1.2.5: + resolution: {integrity: sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==} + engines: {node: '>=0.10.0'} + wordwrap@1.0.0: resolution: {integrity: sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==} @@ -7980,9 +7983,9 @@ snapshots: '@adobe/css-tools@4.4.1': {} - '@adyen/adyen-web@6.8.0': + '@adyen/adyen-web@6.11.0': dependencies: - '@types/applepayjs': 14.0.8 + '@types/applepayjs': 14.0.9 '@types/googlepay': 0.7.6 classnames: 2.5.1 preact: 10.22.1 @@ -7992,6 +7995,29 @@ snapshots: '@jridgewell/gen-mapping': 0.3.8 '@jridgewell/trace-mapping': 0.3.25 + '@andrewbranch/untar.js@1.0.3': {} + + '@arethetypeswrong/cli@0.17.4': + dependencies: + '@arethetypeswrong/core': 0.17.4 + chalk: 4.1.2 + cli-table3: 0.6.5 + commander: 10.0.1 + marked: 9.1.6 + marked-terminal: 7.3.0(marked@9.1.6) + semver: 7.7.1 + + '@arethetypeswrong/core@0.17.4': + dependencies: + '@andrewbranch/untar.js': 1.0.3 + '@loaderkit/resolve': 1.0.4 + cjs-module-lexer: 1.4.3 + fflate: 0.8.2 + lru-cache: 10.4.3 + semver: 7.7.1 + typescript: 5.6.1-rc + validate-npm-package-name: 5.0.1 + '@asamuzakjp/css-color@3.1.1': dependencies: '@csstools/css-calc': 2.1.2(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3) @@ -8751,6 +8777,8 @@ snapshots: '@biomejs/cli-win32-x64@1.9.4': optional: true + '@braidai/lang@1.1.0': {} + '@braintree/asset-loader@2.0.0': {} '@braintree/asset-loader@2.0.2': {} @@ -8784,13 +8812,13 @@ snapshots: '@types/tough-cookie': 4.0.5 tough-cookie: 4.1.4 - '@chromatic-com/storybook@3.2.4(react@19.0.0)(storybook@8.5.3(prettier@3.4.2))': + '@chromatic-com/storybook@3.2.6(react@19.0.0)(storybook@8.6.10(prettier@2.8.8))': dependencies: chromatic: 11.25.2 filesize: 10.1.6 jsonfile: 6.1.0 react-confetti: 6.2.2(react@19.0.0) - storybook: 8.5.3(prettier@3.4.2) + storybook: 8.6.10(prettier@2.8.8) strip-ansi: 7.1.0 transitivePeerDependencies: - '@chromatic-com/cypress' @@ -8800,50 +8828,17 @@ snapshots: '@colors/colors@1.5.0': optional: true - '@commercelayer/eslint-config-ts-react@1.4.5(@types/eslint@9.6.1)(eslint@9.19.0)(react@18.3.1)(typescript@5.7.2)': - dependencies: - '@commercelayer/eslint-config-ts': 1.4.5(@types/eslint@9.6.1)(eslint@9.19.0)(typescript@5.7.2) - '@typescript-eslint/eslint-plugin': 7.18.0(@typescript-eslint/parser@7.18.0(eslint@9.19.0)(typescript@5.7.2))(eslint@9.19.0)(typescript@5.7.2) - '@typescript-eslint/parser': 7.18.0(eslint@9.19.0)(typescript@5.7.2) - eslint: 9.19.0 - eslint-config-standard-jsx: 11.0.0(eslint-plugin-react@7.37.2(eslint@9.19.0))(eslint@9.19.0) - eslint-plugin-react: 7.37.2(eslint@9.19.0) - react: 18.3.1 - typescript: 5.7.2 - transitivePeerDependencies: - - '@types/eslint' - - eslint-import-resolver-typescript - - eslint-import-resolver-webpack - - supports-color - - '@commercelayer/eslint-config-ts@1.4.5(@types/eslint@9.6.1)(eslint@9.19.0)(typescript@5.7.2)': - dependencies: - '@typescript-eslint/eslint-plugin': 7.18.0(@typescript-eslint/parser@7.18.0(eslint@9.19.0)(typescript@5.7.2))(eslint@9.19.0)(typescript@5.7.2) - '@typescript-eslint/parser': 7.18.0(eslint@9.19.0)(typescript@5.7.2) - eslint: 9.19.0 - eslint-config-love: 43.1.0(@typescript-eslint/eslint-plugin@7.18.0(@typescript-eslint/parser@7.18.0(eslint@9.19.0)(typescript@5.7.2))(eslint@9.19.0)(typescript@5.7.2))(eslint-plugin-import@2.31.0(@typescript-eslint/parser@7.18.0(eslint@9.19.0)(typescript@5.7.2))(eslint@9.19.0))(eslint-plugin-n@16.6.2(eslint@9.19.0))(eslint-plugin-promise@6.6.0(eslint@9.19.0))(eslint@9.19.0)(typescript@5.7.2) - eslint-config-prettier: 9.1.0(eslint@9.19.0) - eslint-plugin-import: 2.31.0(@typescript-eslint/parser@7.18.0(eslint@9.19.0)(typescript@5.7.2))(eslint@9.19.0) - eslint-plugin-n: 16.6.2(eslint@9.19.0) - eslint-plugin-prettier: 5.2.1(@types/eslint@9.6.1)(eslint-config-prettier@9.1.0(eslint@9.19.0))(eslint@9.19.0)(prettier@3.4.2) - eslint-plugin-promise: 6.6.0(eslint@9.19.0) - prettier: 3.4.2 - typescript: 5.7.2 - transitivePeerDependencies: - - '@types/eslint' - - eslint-import-resolver-typescript - - eslint-import-resolver-webpack - - supports-color + '@commercelayer/js-auth@6.7.1': {} - '@commercelayer/js-auth@6.7.0': {} - - '@commercelayer/organization-config@2.0.0': + '@commercelayer/organization-config@2.2.0': dependencies: merge-anything: 5.1.7 '@commercelayer/sdk@6.35.0': {} - '@commercelayer/sdk@6.29.2': {} + '@commercelayer/sdk@6.36.0': {} + + '@csstools/color-helpers@5.0.2': {} '@csstools/css-calc@2.1.2(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3)': dependencies: @@ -8882,14 +8877,7 @@ snapshots: dependencies: react: 18.3.1 - '@emotion/use-insertion-effect-with-fallbacks@1.2.0(react@19.0.0)': - dependencies: - react: 19.0.0 - - '@esbuild/aix-ppc64@0.21.5': - optional: true - - '@esbuild/aix-ppc64@0.24.2': + '@esbuild/aix-ppc64@0.25.1': optional: true '@esbuild/android-arm64@0.18.20': @@ -9030,52 +9018,51 @@ snapshots: '@esbuild/win32-x64@0.25.1': optional: true - '@esbuild/win32-x64@0.24.2': - optional: true - - '@eslint-community/eslint-utils@4.4.1(eslint@9.19.0)': + '@eslint-community/eslint-utils@4.4.1(eslint@9.23.0)': dependencies: - eslint: 9.19.0 + eslint: 9.23.0 eslint-visitor-keys: 3.4.3 '@eslint-community/regexpp@4.12.1': {} - '@eslint/config-array@0.19.1': + '@eslint/config-array@0.19.2': dependencies: - '@eslint/object-schema': 2.1.5 + '@eslint/object-schema': 2.1.6 debug: 4.4.0 minimatch: 3.1.2 transitivePeerDependencies: - supports-color - '@eslint/core@0.10.0': + '@eslint/config-helpers@0.2.0': {} + + '@eslint/core@0.12.0': dependencies: '@types/json-schema': 7.0.15 - '@eslint/eslintrc@3.2.0': + '@eslint/eslintrc@3.3.1': dependencies: ajv: 6.12.6 debug: 4.4.0 espree: 10.3.0 globals: 14.0.0 ignore: 5.3.2 - import-fresh: 3.3.0 + import-fresh: 3.3.1 js-yaml: 4.1.0 minimatch: 3.1.2 strip-json-comments: 3.1.1 transitivePeerDependencies: - supports-color - '@eslint/js@9.19.0': {} + '@eslint/js@9.23.0': {} - '@eslint/object-schema@2.1.5': {} + '@eslint/object-schema@2.1.6': {} - '@eslint/plugin-kit@0.2.5': + '@eslint/plugin-kit@0.2.7': dependencies: - '@eslint/core': 0.10.0 + '@eslint/core': 0.12.0 levn: 0.4.1 - '@faker-js/faker@9.4.0': {} + '@faker-js/faker@9.6.0': {} '@fal-works/esbuild-plugin-global-externals@2.1.2': {} @@ -9094,13 +9081,7 @@ snapshots: react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - '@floating-ui/react-dom@2.1.2(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': - dependencies: - '@floating-ui/dom': 1.6.12 - react: 19.0.0 - react-dom: 19.0.0(react@19.0.0) - - '@floating-ui/utils@0.2.8': {} + '@floating-ui/utils@0.2.9': {} '@humanfs/core@0.19.1': {} @@ -9113,21 +9094,21 @@ snapshots: '@humanwhocodes/retry@0.3.1': {} - '@humanwhocodes/retry@0.4.1': {} + '@humanwhocodes/retry@0.4.2': {} '@hutson/parse-repository-url@3.0.2': {} - '@inquirer/confirm@5.1.8(@types/node@22.13.10)': + '@inquirer/confirm@5.1.8(@types/node@22.13.14)': dependencies: - '@inquirer/core': 10.1.9(@types/node@22.13.10) - '@inquirer/type': 3.0.5(@types/node@22.13.10) + '@inquirer/core': 10.1.9(@types/node@22.13.14) + '@inquirer/type': 3.0.5(@types/node@22.13.14) optionalDependencies: - '@types/node': 22.13.10 + '@types/node': 22.13.14 - '@inquirer/core@10.1.9(@types/node@22.13.10)': + '@inquirer/core@10.1.9(@types/node@22.13.14)': dependencies: '@inquirer/figures': 1.0.11 - '@inquirer/type': 3.0.5(@types/node@22.13.10) + '@inquirer/type': 3.0.5(@types/node@22.13.14) ansi-escapes: 4.3.2 cli-width: 4.1.0 mute-stream: 2.0.0 @@ -9135,13 +9116,13 @@ snapshots: wrap-ansi: 6.2.0 yoctocolors-cjs: 2.1.2 optionalDependencies: - '@types/node': 22.13.10 + '@types/node': 22.13.14 '@inquirer/figures@1.0.11': {} - '@inquirer/type@3.0.5(@types/node@22.13.10)': + '@inquirer/type@3.0.5(@types/node@22.13.14)': optionalDependencies: - '@types/node': 22.13.10 + '@types/node': 22.13.14 '@isaacs/cliui@8.0.2': dependencies: @@ -9192,7 +9173,7 @@ snapshots: dependencies: '@types/istanbul-lib-coverage': 2.0.6 '@types/istanbul-reports': 3.0.4 - '@types/node': 22.13.10 + '@types/node': 22.13.14 '@types/yargs': 16.0.9 chalk: 4.1.2 @@ -9201,27 +9182,28 @@ snapshots: '@jest/schemas': 29.6.3 '@types/istanbul-lib-coverage': 2.0.6 '@types/istanbul-reports': 3.0.4 - '@types/node': 22.13.10 + '@types/node': 22.13.14 '@types/yargs': 17.0.33 chalk: 4.1.2 - '@joshwooding/vite-plugin-react-docgen-typescript@0.3.0(typescript@5.8.2)(vite@6.2.2(@types/node@22.13.10)(terser@5.39.0)(yaml@2.7.0))': + '@joshwooding/vite-plugin-react-docgen-typescript@0.3.0(typescript@5.8.2)(vite@6.2.2(@types/node@22.13.14)(terser@5.39.0)(yaml@2.7.0))': dependencies: glob: 7.2.3 glob-promise: 4.2.2(glob@7.2.3) magic-string: 0.27.0 react-docgen-typescript: 2.2.2(typescript@5.8.2) - vite: 6.2.2(@types/node@22.13.10)(terser@5.39.0)(yaml@2.7.0) + vite: 6.2.2(@types/node@22.13.14)(terser@5.39.0)(yaml@2.7.0) optionalDependencies: typescript: 5.8.2 - '@joshwooding/vite-plugin-react-docgen-typescript@0.4.2(typescript@5.7.3)(vite@6.1.0(@types/node@22.12.0)(terser@5.37.0)(yaml@2.6.1))': + '@joshwooding/vite-plugin-react-docgen-typescript@0.5.0(typescript@5.8.2)(vite@6.2.3(@types/node@22.13.14)(terser@5.39.0)(yaml@2.7.0))': dependencies: + glob: 10.4.5 magic-string: 0.27.0 - react-docgen-typescript: 2.2.2(typescript@5.7.3) - vite: 6.1.0(@types/node@22.12.0)(terser@5.37.0)(yaml@2.6.1) + react-docgen-typescript: 2.2.2(typescript@5.8.2) + vite: 6.2.3(@types/node@22.13.14)(terser@5.39.0)(yaml@2.7.0) optionalDependencies: - typescript: 5.7.3 + typescript: 5.8.2 '@jridgewell/gen-mapping@0.3.8': dependencies: @@ -9329,29 +9311,27 @@ snapshots: - supports-color - typescript - '@mdx-js/react@2.3.0(react@18.3.1)': + '@loaderkit/resolve@1.0.4': dependencies: - '@types/mdx': 2.0.13 - '@types/react': 19.0.8 - react: 18.3.1 + '@braidai/lang': 1.1.0 - '@mdx-js/react@2.3.0(react@19.0.0)': + '@mdx-js/react@2.3.0(react@18.3.1)': dependencies: '@types/mdx': 2.0.13 - '@types/react': 19.0.8 - react: 19.0.0 + '@types/react': 18.3.18 + react: 18.3.1 - '@mdx-js/react@3.1.0(@types/react@18.3.17)(react@18.3.1)': + '@mdx-js/react@3.1.0(@types/react@18.3.18)(react@18.3.1)': dependencies: '@types/mdx': 2.0.13 '@types/react': 18.3.18 react: 18.3.1 - '@mdx-js/react@3.1.0(@types/react@19.0.8)(react@18.3.1)': + '@mdx-js/react@3.1.0(@types/react@19.0.12)(react@19.0.0)': dependencies: '@types/mdx': 2.0.13 - '@types/react': 19.0.8 - react: 18.3.1 + '@types/react': 19.0.12 + react: 19.0.0 '@mswjs/interceptors@0.37.3': dependencies: @@ -9641,9 +9621,9 @@ snapshots: '@pkgjs/parseargs@0.11.0': optional: true - '@playwright/test@1.51.0': + '@playwright/test@1.51.1': dependencies: - playwright: 1.51.0 + playwright: 1.51.1 '@radix-ui/number@1.0.1': dependencies: @@ -9655,75 +9635,40 @@ snapshots: '@radix-ui/primitive@1.1.1': {} - '@radix-ui/react-arrow@1.0.3(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-arrow@1.0.3(@types/react-dom@19.0.4(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@babel/runtime': 7.26.7 - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@babel/runtime': 7.26.10 + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@19.0.4(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) optionalDependencies: - '@types/react': 18.3.17 - '@types/react-dom': 19.0.3(@types/react@18.3.17) - - '@radix-ui/react-arrow@1.0.3(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': - dependencies: - '@babel/runtime': 7.26.7 - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - react: 19.0.0 - react-dom: 19.0.0(react@19.0.0) - optionalDependencies: - '@types/react': 19.0.8 - '@types/react-dom': 19.0.3(@types/react@19.0.8) + '@types/react': 18.3.18 + '@types/react-dom': 19.0.4(@types/react@18.3.18) - '@radix-ui/react-collection@1.0.3(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-collection@1.0.3(@types/react-dom@19.0.4(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@babel/runtime': 7.26.7 - '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.3.17)(react@18.3.1) - '@radix-ui/react-context': 1.0.1(@types/react@18.3.17)(react@18.3.1) - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-slot': 1.0.2(@types/react@18.3.17)(react@18.3.1) + '@babel/runtime': 7.26.10 + '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.3.18)(react@18.3.1) + '@radix-ui/react-context': 1.0.1(@types/react@18.3.18)(react@18.3.1) + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@19.0.4(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-slot': 1.0.2(@types/react@18.3.18)(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) optionalDependencies: - '@types/react': 18.3.17 - '@types/react-dom': 19.0.3(@types/react@18.3.17) - - '@radix-ui/react-collection@1.0.3(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': - dependencies: - '@babel/runtime': 7.26.7 - '@radix-ui/react-compose-refs': 1.0.1(@types/react@19.0.8)(react@19.0.0) - '@radix-ui/react-context': 1.0.1(@types/react@19.0.8)(react@19.0.0) - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@radix-ui/react-slot': 1.0.2(@types/react@19.0.8)(react@19.0.0) - react: 19.0.0 - react-dom: 19.0.0(react@19.0.0) - optionalDependencies: - '@types/react': 19.0.8 - '@types/react-dom': 19.0.3(@types/react@19.0.8) + '@types/react': 18.3.18 + '@types/react-dom': 19.0.4(@types/react@18.3.18) - '@radix-ui/react-collection@1.1.1(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-collection@1.1.1(@types/react-dom@19.0.4(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@radix-ui/react-compose-refs': 1.1.1(@types/react@18.3.17)(react@18.3.1) - '@radix-ui/react-context': 1.1.1(@types/react@18.3.17)(react@18.3.1) - '@radix-ui/react-primitive': 2.0.1(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-slot': 1.1.1(@types/react@18.3.17)(react@18.3.1) + '@radix-ui/react-compose-refs': 1.1.1(@types/react@18.3.18)(react@18.3.1) + '@radix-ui/react-context': 1.1.1(@types/react@18.3.18)(react@18.3.1) + '@radix-ui/react-primitive': 2.0.1(@types/react-dom@19.0.4(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-slot': 1.1.1(@types/react@18.3.18)(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) optionalDependencies: - '@types/react': 18.3.17 - '@types/react-dom': 19.0.3(@types/react@18.3.17) - - '@radix-ui/react-collection@1.1.1(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': - dependencies: - '@radix-ui/react-compose-refs': 1.1.1(@types/react@19.0.8)(react@19.0.0) - '@radix-ui/react-context': 1.1.1(@types/react@19.0.8)(react@19.0.0) - '@radix-ui/react-primitive': 2.0.1(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@radix-ui/react-slot': 1.1.1(@types/react@19.0.8)(react@19.0.0) - react: 19.0.0 - react-dom: 19.0.0(react@19.0.0) - optionalDependencies: - '@types/react': 19.0.8 - '@types/react-dom': 19.0.3(@types/react@19.0.8) + '@types/react': 18.3.18 + '@types/react-dom': 19.0.4(@types/react@18.3.18) '@radix-ui/react-compose-refs@1.0.1(@types/react@18.3.18)(react@18.3.1)': dependencies: @@ -9732,104 +9677,51 @@ snapshots: optionalDependencies: '@types/react': 18.3.18 - '@radix-ui/react-compose-refs@1.0.1(@types/react@19.0.8)(react@19.0.0)': - dependencies: - '@babel/runtime': 7.26.7 - react: 19.0.0 - optionalDependencies: - '@types/react': 19.0.8 - - '@radix-ui/react-compose-refs@1.1.1(@types/react@18.3.17)(react@18.3.1)': + '@radix-ui/react-compose-refs@1.1.1(@types/react@18.3.18)(react@18.3.1)': dependencies: react: 18.3.1 optionalDependencies: '@types/react': 18.3.18 - '@radix-ui/react-compose-refs@1.1.1(@types/react@19.0.8)(react@19.0.0)': - dependencies: - react: 19.0.0 - optionalDependencies: - '@types/react': 19.0.8 - - '@radix-ui/react-context@1.0.1(@types/react@18.3.17)(react@18.3.1)': + '@radix-ui/react-context@1.0.1(@types/react@18.3.18)(react@18.3.1)': dependencies: '@babel/runtime': 7.26.10 react: 18.3.1 optionalDependencies: '@types/react': 18.3.18 - '@radix-ui/react-context@1.0.1(@types/react@19.0.8)(react@19.0.0)': - dependencies: - '@babel/runtime': 7.26.7 - react: 19.0.0 - optionalDependencies: - '@types/react': 19.0.8 - - '@radix-ui/react-context@1.1.1(@types/react@18.3.17)(react@18.3.1)': + '@radix-ui/react-context@1.1.1(@types/react@18.3.18)(react@18.3.1)': dependencies: react: 18.3.1 optionalDependencies: '@types/react': 18.3.18 - '@radix-ui/react-context@1.1.1(@types/react@19.0.8)(react@19.0.0)': - dependencies: - react: 19.0.0 - optionalDependencies: - '@types/react': 19.0.8 - - '@radix-ui/react-direction@1.0.1(@types/react@18.3.17)(react@18.3.1)': + '@radix-ui/react-direction@1.0.1(@types/react@18.3.18)(react@18.3.1)': dependencies: '@babel/runtime': 7.26.10 react: 18.3.1 optionalDependencies: '@types/react': 18.3.18 - '@radix-ui/react-direction@1.0.1(@types/react@19.0.8)(react@19.0.0)': - dependencies: - '@babel/runtime': 7.26.7 - react: 19.0.0 - optionalDependencies: - '@types/react': 19.0.8 - - '@radix-ui/react-direction@1.1.0(@types/react@18.3.17)(react@18.3.1)': + '@radix-ui/react-direction@1.1.0(@types/react@18.3.18)(react@18.3.1)': dependencies: react: 18.3.1 optionalDependencies: '@types/react': 18.3.18 - '@radix-ui/react-direction@1.1.0(@types/react@19.0.8)(react@19.0.0)': - dependencies: - react: 19.0.0 - optionalDependencies: - '@types/react': 19.0.8 - - '@radix-ui/react-dismissable-layer@1.0.4(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-dismissable-layer@1.0.4(@types/react-dom@19.0.4(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@babel/runtime': 7.26.10 '@radix-ui/primitive': 1.0.1 - '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.3.17)(react@18.3.1) - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.3.17)(react@18.3.1) - '@radix-ui/react-use-escape-keydown': 1.0.3(@types/react@18.3.17)(react@18.3.1) + '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.3.18)(react@18.3.1) + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@19.0.4(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.3.18)(react@18.3.1) + '@radix-ui/react-use-escape-keydown': 1.0.3(@types/react@18.3.18)(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) optionalDependencies: - '@types/react': 18.3.17 - '@types/react-dom': 19.0.3(@types/react@18.3.17) - - '@radix-ui/react-dismissable-layer@1.0.4(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': - dependencies: - '@babel/runtime': 7.26.7 - '@radix-ui/primitive': 1.0.1 - '@radix-ui/react-compose-refs': 1.0.1(@types/react@19.0.8)(react@19.0.0) - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@19.0.8)(react@19.0.0) - '@radix-ui/react-use-escape-keydown': 1.0.3(@types/react@19.0.8)(react@19.0.0) - react: 19.0.0 - react-dom: 19.0.0(react@19.0.0) - optionalDependencies: - '@types/react': 19.0.8 - '@types/react-dom': 19.0.3(@types/react@19.0.8) + '@types/react': 18.3.18 + '@types/react-dom': 19.0.4(@types/react@18.3.18) '@radix-ui/react-focus-guards@1.0.1(@types/react@18.3.18)(react@18.3.1)': dependencies: @@ -9838,36 +9730,17 @@ snapshots: optionalDependencies: '@types/react': 18.3.18 - '@radix-ui/react-focus-guards@1.0.1(@types/react@19.0.8)(react@19.0.0)': + '@radix-ui/react-focus-scope@1.0.3(@types/react-dom@19.0.4(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@babel/runtime': 7.26.7 - react: 19.0.0 - optionalDependencies: - '@types/react': 19.0.8 - - '@radix-ui/react-focus-scope@1.0.3(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': - dependencies: - '@babel/runtime': 7.26.7 - '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.3.17)(react@18.3.1) - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.3.17)(react@18.3.1) + '@babel/runtime': 7.26.10 + '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.3.18)(react@18.3.1) + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@19.0.4(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.3.18)(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) optionalDependencies: - '@types/react': 18.3.17 - '@types/react-dom': 19.0.3(@types/react@18.3.17) - - '@radix-ui/react-focus-scope@1.0.3(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': - dependencies: - '@babel/runtime': 7.26.7 - '@radix-ui/react-compose-refs': 1.0.1(@types/react@19.0.8)(react@19.0.0) - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@19.0.8)(react@19.0.0) - react: 19.0.0 - react-dom: 19.0.0(react@19.0.0) - optionalDependencies: - '@types/react': 19.0.8 - '@types/react-dom': 19.0.3(@types/react@19.0.8) + '@types/react': 18.3.18 + '@types/react-dom': 19.0.4(@types/react@18.3.18) '@radix-ui/react-id@1.0.1(@types/react@18.3.18)(react@18.3.1)': dependencies: @@ -9877,235 +9750,116 @@ snapshots: optionalDependencies: '@types/react': 18.3.18 - '@radix-ui/react-id@1.0.1(@types/react@19.0.8)(react@19.0.0)': - dependencies: - '@babel/runtime': 7.26.7 - '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@19.0.8)(react@19.0.0) - react: 19.0.0 - optionalDependencies: - '@types/react': 19.0.8 - - '@radix-ui/react-id@1.1.0(@types/react@18.3.17)(react@18.3.1)': + '@radix-ui/react-id@1.1.0(@types/react@18.3.18)(react@18.3.1)': dependencies: '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@18.3.18)(react@18.3.1) react: 18.3.1 optionalDependencies: '@types/react': 18.3.18 - '@radix-ui/react-id@1.1.0(@types/react@19.0.8)(react@19.0.0)': - dependencies: - '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@19.0.8)(react@19.0.0) - react: 19.0.0 - optionalDependencies: - '@types/react': 19.0.8 - - '@radix-ui/react-popper@1.1.2(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-popper@1.1.2(@types/react-dom@19.0.4(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@babel/runtime': 7.26.10 '@floating-ui/react-dom': 2.1.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-arrow': 1.0.3(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.3.17)(react@18.3.1) - '@radix-ui/react-context': 1.0.1(@types/react@18.3.17)(react@18.3.1) - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.3.17)(react@18.3.1) - '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@18.3.17)(react@18.3.1) - '@radix-ui/react-use-rect': 1.0.1(@types/react@18.3.17)(react@18.3.1) - '@radix-ui/react-use-size': 1.0.1(@types/react@18.3.17)(react@18.3.1) + '@radix-ui/react-arrow': 1.0.3(@types/react-dom@19.0.4(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.3.18)(react@18.3.1) + '@radix-ui/react-context': 1.0.1(@types/react@18.3.18)(react@18.3.1) + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@19.0.4(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.3.18)(react@18.3.1) + '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@18.3.18)(react@18.3.1) + '@radix-ui/react-use-rect': 1.0.1(@types/react@18.3.18)(react@18.3.1) + '@radix-ui/react-use-size': 1.0.1(@types/react@18.3.18)(react@18.3.1) '@radix-ui/rect': 1.0.1 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) optionalDependencies: - '@types/react': 18.3.17 - '@types/react-dom': 19.0.3(@types/react@18.3.17) - - '@radix-ui/react-popper@1.1.2(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': - dependencies: - '@babel/runtime': 7.26.7 - '@floating-ui/react-dom': 2.1.2(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@radix-ui/react-arrow': 1.0.3(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@radix-ui/react-compose-refs': 1.0.1(@types/react@19.0.8)(react@19.0.0) - '@radix-ui/react-context': 1.0.1(@types/react@19.0.8)(react@19.0.0) - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@19.0.8)(react@19.0.0) - '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@19.0.8)(react@19.0.0) - '@radix-ui/react-use-rect': 1.0.1(@types/react@19.0.8)(react@19.0.0) - '@radix-ui/react-use-size': 1.0.1(@types/react@19.0.8)(react@19.0.0) - '@radix-ui/rect': 1.0.1 - react: 19.0.0 - react-dom: 19.0.0(react@19.0.0) - optionalDependencies: - '@types/react': 19.0.8 - '@types/react-dom': 19.0.3(@types/react@19.0.8) + '@types/react': 18.3.18 + '@types/react-dom': 19.0.4(@types/react@18.3.18) - '@radix-ui/react-portal@1.0.3(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-portal@1.0.3(@types/react-dom@19.0.4(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@babel/runtime': 7.26.7 - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@babel/runtime': 7.26.10 + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@19.0.4(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) optionalDependencies: - '@types/react': 18.3.17 - '@types/react-dom': 19.0.3(@types/react@18.3.17) - - '@radix-ui/react-portal@1.0.3(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': - dependencies: - '@babel/runtime': 7.26.7 - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - react: 19.0.0 - react-dom: 19.0.0(react@19.0.0) - optionalDependencies: - '@types/react': 19.0.8 - '@types/react-dom': 19.0.3(@types/react@19.0.8) + '@types/react': 18.3.18 + '@types/react-dom': 19.0.4(@types/react@18.3.18) - '@radix-ui/react-primitive@1.0.3(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-primitive@1.0.3(@types/react-dom@19.0.4(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@babel/runtime': 7.26.10 '@radix-ui/react-slot': 1.0.2(@types/react@18.3.18)(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) optionalDependencies: - '@types/react': 18.3.17 - '@types/react-dom': 19.0.3(@types/react@18.3.17) - - '@radix-ui/react-primitive@1.0.3(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': - dependencies: - '@babel/runtime': 7.26.7 - '@radix-ui/react-slot': 1.0.2(@types/react@19.0.8)(react@19.0.0) - react: 19.0.0 - react-dom: 19.0.0(react@19.0.0) - optionalDependencies: - '@types/react': 19.0.8 - '@types/react-dom': 19.0.3(@types/react@19.0.8) + '@types/react': 18.3.18 + '@types/react-dom': 19.0.4(@types/react@18.3.18) - '@radix-ui/react-primitive@2.0.1(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-primitive@2.0.1(@types/react-dom@19.0.4(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@radix-ui/react-slot': 1.1.2(@types/react@18.3.18)(react@18.3.1) + '@radix-ui/react-slot': 1.1.1(@types/react@18.3.18)(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) optionalDependencies: - '@types/react': 18.3.17 - '@types/react-dom': 19.0.3(@types/react@18.3.17) - - '@radix-ui/react-primitive@2.0.1(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': - dependencies: - '@radix-ui/react-slot': 1.1.1(@types/react@19.0.8)(react@19.0.0) - react: 19.0.0 - react-dom: 19.0.0(react@19.0.0) - optionalDependencies: - '@types/react': 19.0.8 - '@types/react-dom': 19.0.3(@types/react@19.0.8) + '@types/react': 18.3.18 + '@types/react-dom': 19.0.4(@types/react@18.3.18) - '@radix-ui/react-roving-focus@1.1.1(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-roving-focus@1.1.1(@types/react-dom@19.0.4(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@radix-ui/primitive': 1.1.1 - '@radix-ui/react-collection': 1.1.1(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-compose-refs': 1.1.1(@types/react@18.3.17)(react@18.3.1) - '@radix-ui/react-context': 1.1.1(@types/react@18.3.17)(react@18.3.1) - '@radix-ui/react-direction': 1.1.0(@types/react@18.3.17)(react@18.3.1) - '@radix-ui/react-id': 1.1.0(@types/react@18.3.17)(react@18.3.1) - '@radix-ui/react-primitive': 2.0.1(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.3.17)(react@18.3.1) - '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@18.3.17)(react@18.3.1) + '@radix-ui/react-collection': 1.1.1(@types/react-dom@19.0.4(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-compose-refs': 1.1.1(@types/react@18.3.18)(react@18.3.1) + '@radix-ui/react-context': 1.1.1(@types/react@18.3.18)(react@18.3.1) + '@radix-ui/react-direction': 1.1.0(@types/react@18.3.18)(react@18.3.1) + '@radix-ui/react-id': 1.1.0(@types/react@18.3.18)(react@18.3.1) + '@radix-ui/react-primitive': 2.0.1(@types/react-dom@19.0.4(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.3.18)(react@18.3.1) + '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@18.3.18)(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) optionalDependencies: - '@types/react': 18.3.17 - '@types/react-dom': 19.0.3(@types/react@18.3.17) - - '@radix-ui/react-roving-focus@1.1.1(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': - dependencies: - '@radix-ui/primitive': 1.1.1 - '@radix-ui/react-collection': 1.1.1(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@radix-ui/react-compose-refs': 1.1.1(@types/react@19.0.8)(react@19.0.0) - '@radix-ui/react-context': 1.1.1(@types/react@19.0.8)(react@19.0.0) - '@radix-ui/react-direction': 1.1.0(@types/react@19.0.8)(react@19.0.0) - '@radix-ui/react-id': 1.1.0(@types/react@19.0.8)(react@19.0.0) - '@radix-ui/react-primitive': 2.0.1(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@19.0.8)(react@19.0.0) - '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@19.0.8)(react@19.0.0) - react: 19.0.0 - react-dom: 19.0.0(react@19.0.0) - optionalDependencies: - '@types/react': 19.0.8 - '@types/react-dom': 19.0.3(@types/react@19.0.8) + '@types/react': 18.3.18 + '@types/react-dom': 19.0.4(@types/react@18.3.18) - '@radix-ui/react-select@1.2.2(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-select@1.2.2(@types/react-dom@19.0.4(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@babel/runtime': 7.26.10 '@radix-ui/number': 1.0.1 '@radix-ui/primitive': 1.0.1 - '@radix-ui/react-collection': 1.0.3(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.3.17)(react@18.3.1) - '@radix-ui/react-context': 1.0.1(@types/react@18.3.17)(react@18.3.1) - '@radix-ui/react-direction': 1.0.1(@types/react@18.3.17)(react@18.3.1) - '@radix-ui/react-dismissable-layer': 1.0.4(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-focus-guards': 1.0.1(@types/react@18.3.17)(react@18.3.1) - '@radix-ui/react-focus-scope': 1.0.3(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-id': 1.0.1(@types/react@18.3.17)(react@18.3.1) - '@radix-ui/react-popper': 1.1.2(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-portal': 1.0.3(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-slot': 1.0.2(@types/react@18.3.17)(react@18.3.1) - '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.3.17)(react@18.3.1) - '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@18.3.17)(react@18.3.1) - '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@18.3.17)(react@18.3.1) - '@radix-ui/react-use-previous': 1.0.1(@types/react@18.3.17)(react@18.3.1) - '@radix-ui/react-visually-hidden': 1.0.3(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-collection': 1.0.3(@types/react-dom@19.0.4(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.3.18)(react@18.3.1) + '@radix-ui/react-context': 1.0.1(@types/react@18.3.18)(react@18.3.1) + '@radix-ui/react-direction': 1.0.1(@types/react@18.3.18)(react@18.3.1) + '@radix-ui/react-dismissable-layer': 1.0.4(@types/react-dom@19.0.4(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-focus-guards': 1.0.1(@types/react@18.3.18)(react@18.3.1) + '@radix-ui/react-focus-scope': 1.0.3(@types/react-dom@19.0.4(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-id': 1.0.1(@types/react@18.3.18)(react@18.3.1) + '@radix-ui/react-popper': 1.1.2(@types/react-dom@19.0.4(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-portal': 1.0.3(@types/react-dom@19.0.4(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@19.0.4(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-slot': 1.0.2(@types/react@18.3.18)(react@18.3.1) + '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.3.18)(react@18.3.1) + '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@18.3.18)(react@18.3.1) + '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@18.3.18)(react@18.3.1) + '@radix-ui/react-use-previous': 1.0.1(@types/react@18.3.18)(react@18.3.1) + '@radix-ui/react-visually-hidden': 1.0.3(@types/react-dom@19.0.4(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) aria-hidden: 1.2.4 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) react-remove-scroll: 2.5.5(@types/react@18.3.18)(react@18.3.1) optionalDependencies: - '@types/react': 18.3.17 - '@types/react-dom': 19.0.3(@types/react@18.3.17) - - '@radix-ui/react-select@1.2.2(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': - dependencies: - '@babel/runtime': 7.26.7 - '@radix-ui/number': 1.0.1 - '@radix-ui/primitive': 1.0.1 - '@radix-ui/react-collection': 1.0.3(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@radix-ui/react-compose-refs': 1.0.1(@types/react@19.0.8)(react@19.0.0) - '@radix-ui/react-context': 1.0.1(@types/react@19.0.8)(react@19.0.0) - '@radix-ui/react-direction': 1.0.1(@types/react@19.0.8)(react@19.0.0) - '@radix-ui/react-dismissable-layer': 1.0.4(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@radix-ui/react-focus-guards': 1.0.1(@types/react@19.0.8)(react@19.0.0) - '@radix-ui/react-focus-scope': 1.0.3(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@radix-ui/react-id': 1.0.1(@types/react@19.0.8)(react@19.0.0) - '@radix-ui/react-popper': 1.1.2(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@radix-ui/react-portal': 1.0.3(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@radix-ui/react-slot': 1.0.2(@types/react@19.0.8)(react@19.0.0) - '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@19.0.8)(react@19.0.0) - '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@19.0.8)(react@19.0.0) - '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@19.0.8)(react@19.0.0) - '@radix-ui/react-use-previous': 1.0.1(@types/react@19.0.8)(react@19.0.0) - '@radix-ui/react-visually-hidden': 1.0.3(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - aria-hidden: 1.2.4 - react: 19.0.0 - react-dom: 19.0.0(react@19.0.0) - react-remove-scroll: 2.5.5(@types/react@19.0.8)(react@19.0.0) - optionalDependencies: - '@types/react': 19.0.8 - '@types/react-dom': 19.0.3(@types/react@19.0.8) + '@types/react': 18.3.18 + '@types/react-dom': 19.0.4(@types/react@18.3.18) - '@radix-ui/react-separator@1.1.1(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-separator@1.1.1(@types/react-dom@19.0.4(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@radix-ui/react-primitive': 2.0.1(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-primitive': 2.0.1(@types/react-dom@19.0.4(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) optionalDependencies: - '@types/react': 18.3.17 - '@types/react-dom': 19.0.3(@types/react@18.3.17) - - '@radix-ui/react-separator@1.1.1(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': - dependencies: - '@radix-ui/react-primitive': 2.0.1(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - react: 19.0.0 - react-dom: 19.0.0(react@19.0.0) - optionalDependencies: - '@types/react': 19.0.8 - '@types/react-dom': 19.0.3(@types/react@19.0.8) + '@types/react': 18.3.18 + '@types/react-dom': 19.0.4(@types/react@18.3.18) '@radix-ui/react-slot@1.0.2(@types/react@18.3.18)(react@18.3.1)': dependencies: @@ -10115,109 +9869,53 @@ snapshots: optionalDependencies: '@types/react': 18.3.18 - '@radix-ui/react-slot@1.0.2(@types/react@19.0.8)(react@19.0.0)': - dependencies: - '@babel/runtime': 7.26.7 - '@radix-ui/react-compose-refs': 1.0.1(@types/react@19.0.8)(react@19.0.0) - react: 19.0.0 - optionalDependencies: - '@types/react': 19.0.8 - - '@radix-ui/react-slot@1.1.1(@types/react@18.3.17)(react@18.3.1)': + '@radix-ui/react-slot@1.1.1(@types/react@18.3.18)(react@18.3.1)': dependencies: '@radix-ui/react-compose-refs': 1.1.1(@types/react@18.3.18)(react@18.3.1) react: 18.3.1 optionalDependencies: '@types/react': 18.3.18 - '@radix-ui/react-slot@1.1.1(@types/react@19.0.8)(react@19.0.0)': - dependencies: - '@radix-ui/react-compose-refs': 1.1.1(@types/react@19.0.8)(react@19.0.0) - react: 19.0.0 - optionalDependencies: - '@types/react': 19.0.8 - - '@radix-ui/react-toggle-group@1.1.1(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-toggle-group@1.1.1(@types/react-dom@19.0.4(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@radix-ui/primitive': 1.1.1 - '@radix-ui/react-context': 1.1.1(@types/react@18.3.17)(react@18.3.1) - '@radix-ui/react-direction': 1.1.0(@types/react@18.3.17)(react@18.3.1) - '@radix-ui/react-primitive': 2.0.1(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-roving-focus': 1.1.1(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-toggle': 1.1.1(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@18.3.17)(react@18.3.1) + '@radix-ui/react-context': 1.1.1(@types/react@18.3.18)(react@18.3.1) + '@radix-ui/react-direction': 1.1.0(@types/react@18.3.18)(react@18.3.1) + '@radix-ui/react-primitive': 2.0.1(@types/react-dom@19.0.4(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-roving-focus': 1.1.1(@types/react-dom@19.0.4(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-toggle': 1.1.1(@types/react-dom@19.0.4(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@18.3.18)(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) optionalDependencies: - '@types/react': 18.3.17 - '@types/react-dom': 19.0.3(@types/react@18.3.17) - - '@radix-ui/react-toggle-group@1.1.1(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': - dependencies: - '@radix-ui/primitive': 1.1.1 - '@radix-ui/react-context': 1.1.1(@types/react@19.0.8)(react@19.0.0) - '@radix-ui/react-direction': 1.1.0(@types/react@19.0.8)(react@19.0.0) - '@radix-ui/react-primitive': 2.0.1(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@radix-ui/react-roving-focus': 1.1.1(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@radix-ui/react-toggle': 1.1.1(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@19.0.8)(react@19.0.0) - react: 19.0.0 - react-dom: 19.0.0(react@19.0.0) - optionalDependencies: - '@types/react': 19.0.8 - '@types/react-dom': 19.0.3(@types/react@19.0.8) + '@types/react': 18.3.18 + '@types/react-dom': 19.0.4(@types/react@18.3.18) - '@radix-ui/react-toggle@1.1.1(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-toggle@1.1.1(@types/react-dom@19.0.4(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@radix-ui/primitive': 1.1.1 - '@radix-ui/react-primitive': 2.0.1(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@18.3.17)(react@18.3.1) + '@radix-ui/react-primitive': 2.0.1(@types/react-dom@19.0.4(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@18.3.18)(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) optionalDependencies: - '@types/react': 18.3.17 - '@types/react-dom': 19.0.3(@types/react@18.3.17) - - '@radix-ui/react-toggle@1.1.1(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': - dependencies: - '@radix-ui/primitive': 1.1.1 - '@radix-ui/react-primitive': 2.0.1(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@19.0.8)(react@19.0.0) - react: 19.0.0 - react-dom: 19.0.0(react@19.0.0) - optionalDependencies: - '@types/react': 19.0.8 - '@types/react-dom': 19.0.3(@types/react@19.0.8) + '@types/react': 18.3.18 + '@types/react-dom': 19.0.4(@types/react@18.3.18) - '@radix-ui/react-toolbar@1.1.1(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-toolbar@1.1.1(@types/react-dom@19.0.4(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@radix-ui/primitive': 1.1.1 - '@radix-ui/react-context': 1.1.1(@types/react@18.3.17)(react@18.3.1) - '@radix-ui/react-direction': 1.1.0(@types/react@18.3.17)(react@18.3.1) - '@radix-ui/react-primitive': 2.0.1(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-roving-focus': 1.1.1(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-separator': 1.1.1(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-toggle-group': 1.1.1(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-context': 1.1.1(@types/react@18.3.18)(react@18.3.1) + '@radix-ui/react-direction': 1.1.0(@types/react@18.3.18)(react@18.3.1) + '@radix-ui/react-primitive': 2.0.1(@types/react-dom@19.0.4(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-roving-focus': 1.1.1(@types/react-dom@19.0.4(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-separator': 1.1.1(@types/react-dom@19.0.4(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-toggle-group': 1.1.1(@types/react-dom@19.0.4(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) optionalDependencies: - '@types/react': 18.3.17 - '@types/react-dom': 19.0.3(@types/react@18.3.17) - - '@radix-ui/react-toolbar@1.1.1(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': - dependencies: - '@radix-ui/primitive': 1.1.1 - '@radix-ui/react-context': 1.1.1(@types/react@19.0.8)(react@19.0.0) - '@radix-ui/react-direction': 1.1.0(@types/react@19.0.8)(react@19.0.0) - '@radix-ui/react-primitive': 2.0.1(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@radix-ui/react-roving-focus': 1.1.1(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@radix-ui/react-separator': 1.1.1(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@radix-ui/react-toggle-group': 1.1.1(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - react: 19.0.0 - react-dom: 19.0.0(react@19.0.0) - optionalDependencies: - '@types/react': 19.0.8 - '@types/react-dom': 19.0.3(@types/react@19.0.8) + '@types/react': 18.3.18 + '@types/react-dom': 19.0.4(@types/react@18.3.18) '@radix-ui/react-use-callback-ref@1.0.1(@types/react@18.3.18)(react@18.3.1)': dependencies: @@ -10226,26 +9924,13 @@ snapshots: optionalDependencies: '@types/react': 18.3.18 - '@radix-ui/react-use-callback-ref@1.0.1(@types/react@19.0.8)(react@19.0.0)': - dependencies: - '@babel/runtime': 7.26.7 - react: 19.0.0 - optionalDependencies: - '@types/react': 19.0.8 - - '@radix-ui/react-use-callback-ref@1.1.0(@types/react@18.3.17)(react@18.3.1)': + '@radix-ui/react-use-callback-ref@1.1.0(@types/react@18.3.18)(react@18.3.1)': dependencies: react: 18.3.1 optionalDependencies: '@types/react': 18.3.18 - '@radix-ui/react-use-callback-ref@1.1.0(@types/react@19.0.8)(react@19.0.0)': - dependencies: - react: 19.0.0 - optionalDependencies: - '@types/react': 19.0.8 - - '@radix-ui/react-use-controllable-state@1.0.1(@types/react@18.3.17)(react@18.3.1)': + '@radix-ui/react-use-controllable-state@1.0.1(@types/react@18.3.18)(react@18.3.1)': dependencies: '@babel/runtime': 7.26.10 '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.3.18)(react@18.3.1) @@ -10253,29 +9938,14 @@ snapshots: optionalDependencies: '@types/react': 18.3.18 - '@radix-ui/react-use-controllable-state@1.0.1(@types/react@19.0.8)(react@19.0.0)': - dependencies: - '@babel/runtime': 7.26.7 - '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@19.0.8)(react@19.0.0) - react: 19.0.0 - optionalDependencies: - '@types/react': 19.0.8 - - '@radix-ui/react-use-controllable-state@1.1.0(@types/react@18.3.17)(react@18.3.1)': + '@radix-ui/react-use-controllable-state@1.1.0(@types/react@18.3.18)(react@18.3.1)': dependencies: '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.3.18)(react@18.3.1) react: 18.3.1 optionalDependencies: '@types/react': 18.3.18 - '@radix-ui/react-use-controllable-state@1.1.0(@types/react@19.0.8)(react@19.0.0)': - dependencies: - '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@19.0.8)(react@19.0.0) - react: 19.0.0 - optionalDependencies: - '@types/react': 19.0.8 - - '@radix-ui/react-use-escape-keydown@1.0.3(@types/react@18.3.17)(react@18.3.1)': + '@radix-ui/react-use-escape-keydown@1.0.3(@types/react@18.3.18)(react@18.3.1)': dependencies: '@babel/runtime': 7.26.10 '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.3.18)(react@18.3.1) @@ -10283,55 +9953,27 @@ snapshots: optionalDependencies: '@types/react': 18.3.18 - '@radix-ui/react-use-escape-keydown@1.0.3(@types/react@19.0.8)(react@19.0.0)': - dependencies: - '@babel/runtime': 7.26.7 - '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@19.0.8)(react@19.0.0) - react: 19.0.0 - optionalDependencies: - '@types/react': 19.0.8 - - '@radix-ui/react-use-layout-effect@1.0.1(@types/react@18.3.17)(react@18.3.1)': + '@radix-ui/react-use-layout-effect@1.0.1(@types/react@18.3.18)(react@18.3.1)': dependencies: '@babel/runtime': 7.26.10 react: 18.3.1 optionalDependencies: '@types/react': 18.3.18 - '@radix-ui/react-use-layout-effect@1.0.1(@types/react@19.0.8)(react@19.0.0)': - dependencies: - '@babel/runtime': 7.26.7 - react: 19.0.0 - optionalDependencies: - '@types/react': 19.0.8 - - '@radix-ui/react-use-layout-effect@1.1.0(@types/react@18.3.17)(react@18.3.1)': + '@radix-ui/react-use-layout-effect@1.1.0(@types/react@18.3.18)(react@18.3.1)': dependencies: react: 18.3.1 optionalDependencies: '@types/react': 18.3.18 - '@radix-ui/react-use-layout-effect@1.1.0(@types/react@19.0.8)(react@19.0.0)': - dependencies: - react: 19.0.0 - optionalDependencies: - '@types/react': 19.0.8 - - '@radix-ui/react-use-previous@1.0.1(@types/react@18.3.17)(react@18.3.1)': + '@radix-ui/react-use-previous@1.0.1(@types/react@18.3.18)(react@18.3.1)': dependencies: '@babel/runtime': 7.26.10 react: 18.3.1 optionalDependencies: '@types/react': 18.3.18 - '@radix-ui/react-use-previous@1.0.1(@types/react@19.0.8)(react@19.0.0)': - dependencies: - '@babel/runtime': 7.26.7 - react: 19.0.0 - optionalDependencies: - '@types/react': 19.0.8 - - '@radix-ui/react-use-rect@1.0.1(@types/react@18.3.17)(react@18.3.1)': + '@radix-ui/react-use-rect@1.0.1(@types/react@18.3.18)(react@18.3.1)': dependencies: '@babel/runtime': 7.26.10 '@radix-ui/rect': 1.0.1 @@ -10339,15 +9981,7 @@ snapshots: optionalDependencies: '@types/react': 18.3.18 - '@radix-ui/react-use-rect@1.0.1(@types/react@19.0.8)(react@19.0.0)': - dependencies: - '@babel/runtime': 7.26.7 - '@radix-ui/rect': 1.0.1 - react: 19.0.0 - optionalDependencies: - '@types/react': 19.0.8 - - '@radix-ui/react-use-size@1.0.1(@types/react@18.3.17)(react@18.3.1)': + '@radix-ui/react-use-size@1.0.1(@types/react@18.3.18)(react@18.3.1)': dependencies: '@babel/runtime': 7.26.10 '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@18.3.18)(react@18.3.1) @@ -10355,33 +9989,15 @@ snapshots: optionalDependencies: '@types/react': 18.3.18 - '@radix-ui/react-use-size@1.0.1(@types/react@19.0.8)(react@19.0.0)': + '@radix-ui/react-visually-hidden@1.0.3(@types/react-dom@19.0.4(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@babel/runtime': 7.26.7 - '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@19.0.8)(react@19.0.0) - react: 19.0.0 - optionalDependencies: - '@types/react': 19.0.8 - - '@radix-ui/react-visually-hidden@1.0.3(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': - dependencies: - '@babel/runtime': 7.26.7 - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@babel/runtime': 7.26.10 + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@19.0.4(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) optionalDependencies: - '@types/react': 18.3.17 - '@types/react-dom': 19.0.3(@types/react@18.3.17) - - '@radix-ui/react-visually-hidden@1.0.3(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': - dependencies: - '@babel/runtime': 7.26.7 - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - react: 19.0.0 - react-dom: 19.0.0(react@19.0.0) - optionalDependencies: - '@types/react': 19.0.8 - '@types/react-dom': 19.0.3(@types/react@19.0.8) + '@types/react': 18.3.18 + '@types/react-dom': 19.0.4(@types/react@18.3.18) '@radix-ui/rect@1.0.1': dependencies: @@ -10491,6 +10107,8 @@ snapshots: '@sinclair/typebox@0.27.8': {} + '@sindresorhus/is@4.6.0': {} + '@storybook/addon-actions@7.6.20': dependencies: '@storybook/core-events': 7.6.20 @@ -10500,13 +10118,13 @@ snapshots: polished: 4.3.1 uuid: 9.0.1 - '@storybook/addon-actions@8.5.3(storybook@8.5.3(prettier@3.4.2))': + '@storybook/addon-actions@8.6.10(storybook@8.6.10(prettier@2.8.8))': dependencies: '@storybook/global': 5.0.0 '@types/uuid': 9.0.8 dequal: 2.0.3 polished: 4.3.1 - storybook: 8.5.3(prettier@3.4.2) + storybook: 8.6.10(prettier@2.8.8) uuid: 9.0.1 '@storybook/addon-backgrounds@7.6.20': @@ -10515,16 +10133,16 @@ snapshots: memoizerific: 1.11.3 ts-dedent: 2.2.0 - '@storybook/addon-backgrounds@8.5.3(storybook@8.5.3(prettier@3.4.2))': + '@storybook/addon-backgrounds@8.6.10(storybook@8.6.10(prettier@2.8.8))': dependencies: '@storybook/global': 5.0.0 memoizerific: 1.11.3 - storybook: 8.5.3(prettier@3.4.2) + storybook: 8.6.10(prettier@2.8.8) ts-dedent: 2.2.0 - '@storybook/addon-controls@7.6.20(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@storybook/addon-controls@7.6.20(@types/react-dom@19.0.4(@types/react@18.3.18))(@types/react@18.3.18)(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@storybook/blocks': 7.6.20(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@storybook/blocks': 7.6.20(@types/react-dom@19.0.4(@types/react@18.3.18))(@types/react@18.3.18)(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) lodash: 4.17.21 ts-dedent: 2.2.0 transitivePeerDependencies: @@ -10535,20 +10153,20 @@ snapshots: - react-dom - supports-color - '@storybook/addon-controls@8.5.3(storybook@8.5.3(prettier@3.4.2))': + '@storybook/addon-controls@8.6.10(storybook@8.6.10(prettier@2.8.8))': dependencies: '@storybook/global': 5.0.0 dequal: 2.0.3 - storybook: 8.5.3(prettier@3.4.2) + storybook: 8.6.10(prettier@2.8.8) ts-dedent: 2.2.0 - '@storybook/addon-docs@7.6.20(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@storybook/addon-docs@7.6.20(@types/react-dom@19.0.4(@types/react@18.3.18))(@types/react@18.3.18)(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@jest/transform': 29.7.0 '@mdx-js/react': 2.3.0(react@18.3.1) - '@storybook/blocks': 7.6.20(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@storybook/blocks': 7.6.20(@types/react-dom@19.0.4(@types/react@18.3.18))(@types/react@18.3.18)(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@storybook/client-logger': 7.6.20 - '@storybook/components': 7.6.20(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@storybook/components': 7.6.20(@types/react-dom@19.0.4(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@storybook/csf-plugin': 7.6.20 '@storybook/csf-tools': 7.6.20 '@storybook/global': 5.0.0 @@ -10571,54 +10189,25 @@ snapshots: - encoding - supports-color - '@storybook/addon-docs@7.6.20(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(encoding@0.1.13)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': + '@storybook/addon-docs@8.6.10(@types/react@19.0.12)(storybook@8.6.10(prettier@2.8.8))': dependencies: - '@jest/transform': 29.7.0 - '@mdx-js/react': 2.3.0(react@19.0.0) - '@storybook/blocks': 7.6.20(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(encoding@0.1.13)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@storybook/client-logger': 7.6.20 - '@storybook/components': 7.6.20(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@storybook/csf-plugin': 7.6.20 - '@storybook/csf-tools': 7.6.20 - '@storybook/global': 5.0.0 - '@storybook/mdx2-csf': 1.1.0 - '@storybook/node-logger': 7.6.20 - '@storybook/postinstall': 7.6.20 - '@storybook/preview-api': 7.6.20 - '@storybook/react-dom-shim': 7.6.20(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@storybook/theming': 7.6.20(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@storybook/types': 7.6.20 - fs-extra: 11.2.0 + '@mdx-js/react': 3.1.0(@types/react@19.0.12)(react@19.0.0) + '@storybook/blocks': 8.6.10(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(storybook@8.6.10(prettier@2.8.8)) + '@storybook/csf-plugin': 8.6.10(storybook@8.6.10(prettier@2.8.8)) + '@storybook/react-dom-shim': 8.6.10(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(storybook@8.6.10(prettier@2.8.8)) react: 19.0.0 react-dom: 19.0.0(react@19.0.0) - remark-external-links: 8.0.0 - remark-slug: 6.1.0 + storybook: 8.6.10(prettier@2.8.8) ts-dedent: 2.2.0 transitivePeerDependencies: - '@types/react' - - '@types/react-dom' - - encoding - - supports-color - '@storybook/addon-docs@8.5.3(@types/react@19.0.8)(storybook@8.5.3(prettier@3.4.2))': - dependencies: - '@mdx-js/react': 3.1.0(@types/react@19.0.8)(react@18.3.1) - '@storybook/blocks': 8.5.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.5.3(prettier@3.4.2)) - '@storybook/csf-plugin': 8.5.3(storybook@8.5.3(prettier@3.4.2)) - '@storybook/react-dom-shim': 8.5.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.5.3(prettier@3.4.2)) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - storybook: 8.5.3(prettier@3.4.2) - ts-dedent: 2.2.0 - transitivePeerDependencies: - - '@types/react' - - '@storybook/addon-essentials@7.6.20(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@storybook/addon-essentials@7.6.20(@types/react-dom@19.0.4(@types/react@18.3.18))(@types/react@18.3.18)(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@storybook/addon-actions': 7.6.20 '@storybook/addon-backgrounds': 7.6.20 - '@storybook/addon-controls': 7.6.20(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@storybook/addon-docs': 7.6.20(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@storybook/addon-controls': 7.6.20(@types/react-dom@19.0.4(@types/react@18.3.18))(@types/react@18.3.18)(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@storybook/addon-docs': 7.6.20(@types/react-dom@19.0.4(@types/react@18.3.18))(@types/react@18.3.18)(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@storybook/addon-highlight': 7.6.20 '@storybook/addon-measure': 7.6.20 '@storybook/addon-outline': 7.6.20 @@ -10637,18 +10226,18 @@ snapshots: - encoding - supports-color - '@storybook/addon-essentials@8.5.3(@types/react@19.0.8)(storybook@8.5.3(prettier@3.4.2))': - dependencies: - '@storybook/addon-actions': 8.5.3(storybook@8.5.3(prettier@3.4.2)) - '@storybook/addon-backgrounds': 8.5.3(storybook@8.5.3(prettier@3.4.2)) - '@storybook/addon-controls': 8.5.3(storybook@8.5.3(prettier@3.4.2)) - '@storybook/addon-docs': 8.5.3(@types/react@19.0.8)(storybook@8.5.3(prettier@3.4.2)) - '@storybook/addon-highlight': 8.5.3(storybook@8.5.3(prettier@3.4.2)) - '@storybook/addon-measure': 8.5.3(storybook@8.5.3(prettier@3.4.2)) - '@storybook/addon-outline': 8.5.3(storybook@8.5.3(prettier@3.4.2)) - '@storybook/addon-toolbars': 8.5.3(storybook@8.5.3(prettier@3.4.2)) - '@storybook/addon-viewport': 8.5.3(storybook@8.5.3(prettier@3.4.2)) - storybook: 8.5.3(prettier@3.4.2) + '@storybook/addon-essentials@8.6.10(@types/react@19.0.12)(storybook@8.6.10(prettier@2.8.8))': + dependencies: + '@storybook/addon-actions': 8.6.10(storybook@8.6.10(prettier@2.8.8)) + '@storybook/addon-backgrounds': 8.6.10(storybook@8.6.10(prettier@2.8.8)) + '@storybook/addon-controls': 8.6.10(storybook@8.6.10(prettier@2.8.8)) + '@storybook/addon-docs': 8.6.10(@types/react@19.0.12)(storybook@8.6.10(prettier@2.8.8)) + '@storybook/addon-highlight': 8.6.10(storybook@8.6.10(prettier@2.8.8)) + '@storybook/addon-measure': 8.6.10(storybook@8.6.10(prettier@2.8.8)) + '@storybook/addon-outline': 8.6.10(storybook@8.6.10(prettier@2.8.8)) + '@storybook/addon-toolbars': 8.6.10(storybook@8.6.10(prettier@2.8.8)) + '@storybook/addon-viewport': 8.6.10(storybook@8.6.10(prettier@2.8.8)) + storybook: 8.6.10(prettier@2.8.8) ts-dedent: 2.2.0 transitivePeerDependencies: - '@types/react' @@ -10657,10 +10246,10 @@ snapshots: dependencies: '@storybook/global': 5.0.0 - '@storybook/addon-highlight@8.5.3(storybook@8.5.3(prettier@3.4.2))': + '@storybook/addon-highlight@8.6.10(storybook@8.6.10(prettier@2.8.8))': dependencies: '@storybook/global': 5.0.0 - storybook: 8.5.3(prettier@3.4.2) + storybook: 8.6.10(prettier@2.8.8) '@storybook/addon-interactions@7.6.20': dependencies: @@ -10670,13 +10259,13 @@ snapshots: polished: 4.3.1 ts-dedent: 2.2.0 - '@storybook/addon-interactions@8.5.3(storybook@8.5.3(prettier@3.4.2))': + '@storybook/addon-interactions@8.6.10(storybook@8.6.10(prettier@2.8.8))': dependencies: '@storybook/global': 5.0.0 - '@storybook/instrumenter': 8.5.3(storybook@8.5.3(prettier@3.4.2)) - '@storybook/test': 8.5.3(storybook@8.5.3(prettier@3.4.2)) + '@storybook/instrumenter': 8.6.10(storybook@8.6.10(prettier@2.8.8)) + '@storybook/test': 8.6.10(storybook@8.6.10(prettier@2.8.8)) polished: 4.3.1 - storybook: 8.5.3(prettier@3.4.2) + storybook: 8.6.10(prettier@2.8.8) ts-dedent: 2.2.0 '@storybook/addon-links@7.6.20(react@18.3.1)': @@ -10687,10 +10276,10 @@ snapshots: optionalDependencies: react: 18.3.1 - '@storybook/addon-links@7.6.20(react@19.0.0)': + '@storybook/addon-links@8.6.10(react@19.0.0)(storybook@8.6.10(prettier@2.8.8))': dependencies: - '@storybook/csf': 0.1.12 '@storybook/global': 5.0.0 + storybook: 8.6.10(prettier@2.8.8) ts-dedent: 2.2.0 optionalDependencies: react: 19.0.0 @@ -10703,10 +10292,10 @@ snapshots: transitivePeerDependencies: - supports-color - '@storybook/addon-mdx-gfm@8.5.3(storybook@8.5.3(prettier@3.4.2))': + '@storybook/addon-mdx-gfm@8.6.10(storybook@8.6.10(prettier@2.8.8))': dependencies: - remark-gfm: 4.0.0 - storybook: 8.5.3(prettier@3.4.2) + remark-gfm: 4.0.1 + storybook: 8.6.10(prettier@2.8.8) ts-dedent: 2.2.0 transitivePeerDependencies: - supports-color @@ -10716,41 +10305,41 @@ snapshots: '@storybook/global': 5.0.0 tiny-invariant: 1.3.3 - '@storybook/addon-measure@8.5.3(storybook@8.5.3(prettier@3.4.2))': + '@storybook/addon-measure@8.6.10(storybook@8.6.10(prettier@2.8.8))': dependencies: '@storybook/global': 5.0.0 - storybook: 8.5.3(prettier@3.4.2) + storybook: 8.6.10(prettier@2.8.8) tiny-invariant: 1.3.3 - '@storybook/addon-onboarding@8.5.3(storybook@8.5.3(prettier@3.4.2))': + '@storybook/addon-onboarding@8.6.10(storybook@8.6.10(prettier@2.8.8))': dependencies: - storybook: 8.5.3(prettier@3.4.2) + storybook: 8.6.10(prettier@2.8.8) '@storybook/addon-outline@7.6.20': dependencies: '@storybook/global': 5.0.0 ts-dedent: 2.2.0 - '@storybook/addon-outline@8.5.3(storybook@8.5.3(prettier@3.4.2))': + '@storybook/addon-outline@8.6.10(storybook@8.6.10(prettier@2.8.8))': dependencies: '@storybook/global': 5.0.0 - storybook: 8.5.3(prettier@3.4.2) + storybook: 8.6.10(prettier@2.8.8) ts-dedent: 2.2.0 '@storybook/addon-toolbars@7.6.20': {} - '@storybook/addon-toolbars@8.5.3(storybook@8.5.3(prettier@3.4.2))': + '@storybook/addon-toolbars@8.6.10(storybook@8.6.10(prettier@2.8.8))': dependencies: - storybook: 8.5.3(prettier@3.4.2) + storybook: 8.6.10(prettier@2.8.8) '@storybook/addon-viewport@7.6.20': dependencies: memoizerific: 1.11.3 - '@storybook/addon-viewport@8.5.3(storybook@8.5.3(prettier@3.4.2))': + '@storybook/addon-viewport@8.6.10(storybook@8.6.10(prettier@2.8.8))': dependencies: memoizerific: 1.11.3 - storybook: 8.5.3(prettier@3.4.2) + storybook: 8.6.10(prettier@2.8.8) '@storybook/addons@7.6.17(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: @@ -10769,11 +10358,11 @@ snapshots: - react - react-dom - '@storybook/blocks@7.6.20(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@storybook/blocks@7.6.20(@types/react-dom@19.0.4(@types/react@18.3.18))(@types/react@18.3.18)(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@storybook/channels': 7.6.20 '@storybook/client-logger': 7.6.20 - '@storybook/components': 7.6.20(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@storybook/components': 7.6.20(@types/react-dom@19.0.4(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@storybook/core-events': 7.6.20 '@storybook/csf': 0.1.13 '@storybook/docs-tools': 7.6.20(encoding@0.1.13) @@ -10802,54 +10391,10 @@ snapshots: - encoding - supports-color - '@storybook/blocks@7.6.20(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(encoding@0.1.13)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': - dependencies: - '@storybook/channels': 7.6.20 - '@storybook/client-logger': 7.6.20 - '@storybook/components': 7.6.20(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@storybook/core-events': 7.6.20 - '@storybook/csf': 0.1.12 - '@storybook/docs-tools': 7.6.20(encoding@0.1.13) - '@storybook/global': 5.0.0 - '@storybook/manager-api': 7.6.20(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@storybook/preview-api': 7.6.20 - '@storybook/theming': 7.6.20(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@storybook/types': 7.6.20 - '@types/lodash': 4.17.14 - color-convert: 2.0.1 - dequal: 2.0.3 - lodash: 4.17.21 - markdown-to-jsx: 7.7.2(react@19.0.0) - memoizerific: 1.11.3 - polished: 4.3.1 - react: 19.0.0 - react-colorful: 5.6.1(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - react-dom: 19.0.0(react@19.0.0) - telejson: 7.2.0 - tocbot: 4.32.2 - ts-dedent: 2.2.0 - util-deprecate: 1.0.2 - transitivePeerDependencies: - - '@types/react' - - '@types/react-dom' - - encoding - - supports-color - - '@storybook/blocks@8.5.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.5.3(prettier@3.4.2))': + '@storybook/blocks@8.6.10(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(storybook@8.6.10(prettier@2.8.8))': dependencies: - '@storybook/csf': 0.1.12 - '@storybook/icons': 1.3.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - storybook: 8.5.3(prettier@3.4.2) - ts-dedent: 2.2.0 - optionalDependencies: - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - - '@storybook/blocks@8.5.3(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(storybook@8.5.3(prettier@3.4.2))': - dependencies: - '@storybook/csf': 0.1.12 '@storybook/icons': 1.3.2(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - storybook: 8.5.3(prettier@3.4.2) + storybook: 8.6.10(prettier@2.8.8) ts-dedent: 2.2.0 optionalDependencies: react: 19.0.0 @@ -10877,7 +10422,7 @@ snapshots: - encoding - supports-color - '@storybook/builder-vite@7.6.20(encoding@0.1.13)(typescript@5.8.2)(vite@6.2.2(@types/node@22.13.10)(terser@5.39.0)(yaml@2.7.0))': + '@storybook/builder-vite@7.6.20(encoding@0.1.13)(typescript@5.8.2)(vite@6.2.2(@types/node@22.13.14)(terser@5.39.0)(yaml@2.7.0))': dependencies: '@storybook/channels': 7.6.20 '@storybook/client-logger': 7.6.20 @@ -10895,20 +10440,20 @@ snapshots: fs-extra: 11.3.0 magic-string: 0.30.17 rollup: 3.29.5 - vite: 6.2.2(@types/node@22.13.10)(terser@5.39.0)(yaml@2.7.0) + vite: 6.2.2(@types/node@22.13.14)(terser@5.39.0)(yaml@2.7.0) optionalDependencies: typescript: 5.8.2 transitivePeerDependencies: - encoding - supports-color - '@storybook/builder-vite@8.5.3(storybook@8.5.3(prettier@3.4.2))(vite@6.1.0(@types/node@22.12.0)(terser@5.37.0)(yaml@2.6.1))': + '@storybook/builder-vite@8.6.10(storybook@8.6.10(prettier@2.8.8))(vite@6.2.3(@types/node@22.13.14)(terser@5.39.0)(yaml@2.7.0))': dependencies: - '@storybook/csf-plugin': 8.5.3(storybook@8.5.3(prettier@3.4.2)) + '@storybook/csf-plugin': 8.6.10(storybook@8.6.10(prettier@2.8.8)) browser-assert: 1.2.1 - storybook: 8.5.3(prettier@3.4.2) + storybook: 8.6.10(prettier@2.8.8) ts-dedent: 2.2.0 - vite: 6.1.0(@types/node@22.12.0)(terser@5.37.0)(yaml@2.6.1) + vite: 6.2.3(@types/node@22.13.14)(terser@5.39.0)(yaml@2.7.0) '@storybook/channels@7.6.17': dependencies: @@ -11004,14 +10549,14 @@ snapshots: jscodeshift: 0.15.2(@babel/preset-env@7.26.9(@babel/core@7.26.10)) lodash: 4.17.21 prettier: 2.8.8 - recast: 0.23.11 + recast: 0.23.9 transitivePeerDependencies: - supports-color - '@storybook/components@7.6.20(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@storybook/components@7.6.20(@types/react-dom@19.0.4(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@radix-ui/react-select': 1.2.2(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-toolbar': 1.1.1(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-select': 1.2.2(@types/react-dom@19.0.4(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-toolbar': 1.1.1(@types/react-dom@19.0.4(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@storybook/client-logger': 7.6.20 '@storybook/csf': 0.1.13 '@storybook/global': 5.0.0 @@ -11026,27 +10571,9 @@ snapshots: - '@types/react' - '@types/react-dom' - '@storybook/components@7.6.20(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': + '@storybook/components@8.6.10(storybook@8.6.10(prettier@2.8.8))': dependencies: - '@radix-ui/react-select': 1.2.2(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@radix-ui/react-toolbar': 1.1.1(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@storybook/client-logger': 7.6.20 - '@storybook/csf': 0.1.12 - '@storybook/global': 5.0.0 - '@storybook/theming': 7.6.20(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@storybook/types': 7.6.20 - memoizerific: 1.11.3 - react: 19.0.0 - react-dom: 19.0.0(react@19.0.0) - use-resize-observer: 9.1.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - util-deprecate: 1.0.2 - transitivePeerDependencies: - - '@types/react' - - '@types/react-dom' - - '@storybook/components@8.5.3(storybook@8.5.3(prettier@3.4.2))': - dependencies: - storybook: 8.5.3(prettier@3.4.2) + storybook: 8.6.10(prettier@2.8.8) '@storybook/core-client@7.6.20': dependencies: @@ -11138,23 +10665,24 @@ snapshots: - supports-color - utf-8-validate - '@storybook/core@8.5.3(prettier@3.4.2)': + '@storybook/core@8.6.10(prettier@2.8.8)(storybook@8.6.10(prettier@2.8.8))': dependencies: - '@storybook/csf': 0.1.12 + '@storybook/theming': 8.6.10(storybook@8.6.10(prettier@2.8.8)) better-opn: 3.0.2 browser-assert: 1.2.1 - esbuild: 0.24.2 - esbuild-register: 3.6.0(esbuild@0.24.2) + esbuild: 0.25.1 + esbuild-register: 3.6.0(esbuild@0.25.1) jsdoc-type-pratt-parser: 4.1.0 process: 0.11.10 recast: 0.23.9 - semver: 7.6.3 + semver: 7.7.1 util: 0.12.5 - ws: 8.18.0 + ws: 8.18.1 optionalDependencies: - prettier: 3.4.2 + prettier: 2.8.8 transitivePeerDependencies: - bufferutil + - storybook - supports-color - utf-8-validate @@ -11165,10 +10693,10 @@ snapshots: transitivePeerDependencies: - supports-color - '@storybook/csf-plugin@8.5.3(storybook@8.5.3(prettier@3.4.2))': + '@storybook/csf-plugin@8.6.10(storybook@8.6.10(prettier@2.8.8))': dependencies: - storybook: 8.5.3(prettier@3.4.2) - unplugin: 1.16.0 + storybook: 8.6.10(prettier@2.8.8) + unplugin: 1.16.1 '@storybook/csf-tools@7.6.20': dependencies: @@ -11179,7 +10707,7 @@ snapshots: '@storybook/csf': 0.1.13 '@storybook/types': 7.6.20 fs-extra: 11.3.0 - recast: 0.23.11 + recast: 0.23.9 ts-dedent: 2.2.0 transitivePeerDependencies: - supports-color @@ -11205,21 +10733,16 @@ snapshots: '@storybook/global@5.0.0': {} - '@storybook/icons@1.3.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': - dependencies: - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - '@storybook/icons@1.3.2(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': dependencies: react: 19.0.0 react-dom: 19.0.0(react@19.0.0) - '@storybook/instrumenter@8.5.3(storybook@8.5.3(prettier@3.4.2))': + '@storybook/instrumenter@8.6.10(storybook@8.6.10(prettier@2.8.8))': dependencies: '@storybook/global': 5.0.0 '@vitest/utils': 2.1.9 - storybook: 8.5.3(prettier@3.4.2) + storybook: 8.6.10(prettier@2.8.8) '@storybook/manager-api@7.6.17(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: @@ -11261,29 +10784,9 @@ snapshots: - react - react-dom - '@storybook/manager-api@7.6.20(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': - dependencies: - '@storybook/channels': 7.6.20 - '@storybook/client-logger': 7.6.20 - '@storybook/core-events': 7.6.20 - '@storybook/csf': 0.1.12 - '@storybook/global': 5.0.0 - '@storybook/router': 7.6.20 - '@storybook/theming': 7.6.20(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@storybook/types': 7.6.20 - dequal: 2.0.3 - lodash: 4.17.21 - memoizerific: 1.11.3 - store2: 2.14.3 - telejson: 7.2.0 - ts-dedent: 2.2.0 - transitivePeerDependencies: - - react - - react-dom - - '@storybook/manager-api@8.5.3(storybook@8.5.3(prettier@3.4.2))': + '@storybook/manager-api@8.6.10(storybook@8.6.10(prettier@2.8.8))': dependencies: - storybook: 8.5.3(prettier@3.4.2) + storybook: 8.6.10(prettier@2.8.8) '@storybook/manager@7.6.20': {} @@ -11331,9 +10834,9 @@ snapshots: ts-dedent: 2.2.0 util-deprecate: 1.0.2 - '@storybook/preview-api@8.5.3(storybook@8.5.3(prettier@3.4.2))': + '@storybook/preview-api@8.6.10(storybook@8.6.10(prettier@2.8.8))': dependencies: - storybook: 8.5.3(prettier@3.4.2) + storybook: 8.6.10(prettier@2.8.8) '@storybook/preview@7.6.20': {} @@ -11342,35 +10845,24 @@ snapshots: react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - '@storybook/react-dom-shim@7.6.20(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': + '@storybook/react-dom-shim@8.6.10(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(storybook@8.6.10(prettier@2.8.8))': dependencies: react: 19.0.0 react-dom: 19.0.0(react@19.0.0) + storybook: 8.6.10(prettier@2.8.8) - '@storybook/react-dom-shim@8.5.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.5.3(prettier@3.4.2))': + '@storybook/react-vite@7.6.20(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rollup@4.35.0)(typescript@5.8.2)(vite@6.2.2(@types/node@22.13.14)(terser@5.39.0)(yaml@2.7.0))': dependencies: - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - storybook: 8.5.3(prettier@3.4.2) - - '@storybook/react-dom-shim@8.5.3(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(storybook@8.5.3(prettier@3.4.2))': - dependencies: - react: 19.0.0 - react-dom: 19.0.0(react@19.0.0) - storybook: 8.5.3(prettier@3.4.2) - - '@storybook/react-vite@7.6.20(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rollup@4.32.0)(typescript@5.7.2)(vite@5.4.11(@types/node@22.12.0)(terser@5.37.0))': - dependencies: - '@joshwooding/vite-plugin-react-docgen-typescript': 0.3.0(typescript@5.8.2)(vite@6.2.2(@types/node@22.13.10)(terser@5.39.0)(yaml@2.7.0)) + '@joshwooding/vite-plugin-react-docgen-typescript': 0.3.0(typescript@5.8.2)(vite@6.2.2(@types/node@22.13.14)(terser@5.39.0)(yaml@2.7.0)) '@rollup/pluginutils': 5.1.4(rollup@4.35.0) - '@storybook/builder-vite': 7.6.20(encoding@0.1.13)(typescript@5.8.2)(vite@6.2.2(@types/node@22.13.10)(terser@5.39.0)(yaml@2.7.0)) + '@storybook/builder-vite': 7.6.20(encoding@0.1.13)(typescript@5.8.2)(vite@6.2.2(@types/node@22.13.14)(terser@5.39.0)(yaml@2.7.0)) '@storybook/react': 7.6.20(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.8.2) - '@vitejs/plugin-react': 3.1.0(vite@6.2.2(@types/node@22.13.10)(terser@5.39.0)(yaml@2.7.0)) + '@vitejs/plugin-react': 3.1.0(vite@6.2.2(@types/node@22.13.14)(terser@5.39.0)(yaml@2.7.0)) magic-string: 0.30.17 react: 18.3.1 - react-docgen: 7.1.1 + react-docgen: 7.1.0 react-dom: 18.3.1(react@18.3.1) - vite: 6.2.2(@types/node@22.13.10)(terser@5.39.0)(yaml@2.7.0) + vite: 6.2.2(@types/node@22.13.14)(terser@5.39.0)(yaml@2.7.0) transitivePeerDependencies: - '@preact/preset-vite' - encoding @@ -11379,29 +10871,29 @@ snapshots: - typescript - vite-plugin-glimmerx - '@storybook/react-vite@8.5.3(@storybook/test@8.5.3(storybook@8.5.3(prettier@3.4.2)))(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(rollup@4.32.0)(storybook@8.5.3(prettier@3.4.2))(typescript@5.7.3)(vite@6.1.0(@types/node@22.12.0)(terser@5.37.0)(yaml@2.6.1))': + '@storybook/react-vite@8.6.10(@storybook/test@8.6.10(storybook@8.6.10(prettier@2.8.8)))(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(rollup@4.35.0)(storybook@8.6.10(prettier@2.8.8))(typescript@5.8.2)(vite@6.2.3(@types/node@22.13.14)(terser@5.39.0)(yaml@2.7.0))': dependencies: - '@joshwooding/vite-plugin-react-docgen-typescript': 0.4.2(typescript@5.7.3)(vite@6.1.0(@types/node@22.12.0)(terser@5.37.0)(yaml@2.6.1)) - '@rollup/pluginutils': 5.1.4(rollup@4.32.0) - '@storybook/builder-vite': 8.5.3(storybook@8.5.3(prettier@3.4.2))(vite@6.1.0(@types/node@22.12.0)(terser@5.37.0)(yaml@2.6.1)) - '@storybook/react': 8.5.3(@storybook/test@8.5.3(storybook@8.5.3(prettier@3.4.2)))(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(storybook@8.5.3(prettier@3.4.2))(typescript@5.7.3) + '@joshwooding/vite-plugin-react-docgen-typescript': 0.5.0(typescript@5.8.2)(vite@6.2.3(@types/node@22.13.14)(terser@5.39.0)(yaml@2.7.0)) + '@rollup/pluginutils': 5.1.4(rollup@4.35.0) + '@storybook/builder-vite': 8.6.10(storybook@8.6.10(prettier@2.8.8))(vite@6.2.3(@types/node@22.13.14)(terser@5.39.0)(yaml@2.7.0)) + '@storybook/react': 8.6.10(@storybook/test@8.6.10(storybook@8.6.10(prettier@2.8.8)))(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(storybook@8.6.10(prettier@2.8.8))(typescript@5.8.2) find-up: 5.0.0 magic-string: 0.30.17 react: 19.0.0 react-docgen: 7.1.0 react-dom: 19.0.0(react@19.0.0) - resolve: 1.22.9 - storybook: 8.5.3(prettier@3.4.2) + resolve: 1.22.10 + storybook: 8.6.10(prettier@2.8.8) tsconfig-paths: 4.2.0 - vite: 6.1.0(@types/node@22.12.0)(terser@5.37.0)(yaml@2.6.1) + vite: 6.2.3(@types/node@22.13.14)(terser@5.39.0)(yaml@2.7.0) optionalDependencies: - '@storybook/test': 8.5.3(storybook@8.5.3(prettier@3.4.2)) + '@storybook/test': 8.6.10(storybook@8.6.10(prettier@2.8.8)) transitivePeerDependencies: - rollup - supports-color - typescript - '@storybook/react@7.6.20(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.7.2)': + '@storybook/react@7.6.20(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.8.2)': dependencies: '@storybook/client-logger': 7.6.20 '@storybook/core-client': 7.6.20 @@ -11432,20 +10924,20 @@ snapshots: - encoding - supports-color - '@storybook/react@8.5.3(@storybook/test@8.5.3(storybook@8.5.3(prettier@3.4.2)))(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(storybook@8.5.3(prettier@3.4.2))(typescript@5.7.3)': + '@storybook/react@8.6.10(@storybook/test@8.6.10(storybook@8.6.10(prettier@2.8.8)))(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(storybook@8.6.10(prettier@2.8.8))(typescript@5.8.2)': dependencies: - '@storybook/components': 8.5.3(storybook@8.5.3(prettier@3.4.2)) + '@storybook/components': 8.6.10(storybook@8.6.10(prettier@2.8.8)) '@storybook/global': 5.0.0 - '@storybook/manager-api': 8.5.3(storybook@8.5.3(prettier@3.4.2)) - '@storybook/preview-api': 8.5.3(storybook@8.5.3(prettier@3.4.2)) - '@storybook/react-dom-shim': 8.5.3(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(storybook@8.5.3(prettier@3.4.2)) - '@storybook/theming': 8.5.3(storybook@8.5.3(prettier@3.4.2)) + '@storybook/manager-api': 8.6.10(storybook@8.6.10(prettier@2.8.8)) + '@storybook/preview-api': 8.6.10(storybook@8.6.10(prettier@2.8.8)) + '@storybook/react-dom-shim': 8.6.10(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(storybook@8.6.10(prettier@2.8.8)) + '@storybook/theming': 8.6.10(storybook@8.6.10(prettier@2.8.8)) react: 19.0.0 react-dom: 19.0.0(react@19.0.0) - storybook: 8.5.3(prettier@3.4.2) + storybook: 8.6.10(prettier@2.8.8) optionalDependencies: - '@storybook/test': 8.5.3(storybook@8.5.3(prettier@3.4.2)) - typescript: 5.7.3 + '@storybook/test': 8.6.10(storybook@8.6.10(prettier@2.8.8)) + typescript: 5.8.2 '@storybook/router@7.6.17': dependencies: @@ -11473,17 +10965,16 @@ snapshots: - encoding - supports-color - '@storybook/test@8.5.3(storybook@8.5.3(prettier@3.4.2))': + '@storybook/test@8.6.10(storybook@8.6.10(prettier@2.8.8))': dependencies: - '@storybook/csf': 0.1.12 '@storybook/global': 5.0.0 - '@storybook/instrumenter': 8.5.3(storybook@8.5.3(prettier@3.4.2)) + '@storybook/instrumenter': 8.6.10(storybook@8.6.10(prettier@2.8.8)) '@testing-library/dom': 10.4.0 '@testing-library/jest-dom': 6.5.0 '@testing-library/user-event': 14.5.2(@testing-library/dom@10.4.0) '@vitest/expect': 2.0.5 '@vitest/spy': 2.0.5 - storybook: 8.5.3(prettier@3.4.2) + storybook: 8.6.10(prettier@2.8.8) '@storybook/testing-library@0.2.2': dependencies: @@ -11509,18 +11000,9 @@ snapshots: react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - '@storybook/theming@7.6.20(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': - dependencies: - '@emotion/use-insertion-effect-with-fallbacks': 1.2.0(react@19.0.0) - '@storybook/client-logger': 7.6.20 - '@storybook/global': 5.0.0 - memoizerific: 1.11.3 - react: 19.0.0 - react-dom: 19.0.0(react@19.0.0) - - '@storybook/theming@8.5.3(storybook@8.5.3(prettier@3.4.2))': + '@storybook/theming@8.6.10(storybook@8.6.10(prettier@2.8.8))': dependencies: - storybook: 8.5.3(prettier@3.4.2) + storybook: 8.6.10(prettier@2.8.8) '@storybook/types@7.6.17': dependencies: @@ -11536,18 +11018,18 @@ snapshots: '@types/express': 4.17.21 file-system-cache: 2.3.0 - '@stripe/react-stripe-js@3.1.1(@stripe/stripe-js@5.6.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': + '@stripe/react-stripe-js@3.5.1(@stripe/stripe-js@6.1.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': dependencies: - '@stripe/stripe-js': 5.6.0 + '@stripe/stripe-js': 6.1.0 prop-types: 15.8.1 react: 19.0.0 react-dom: 19.0.0(react@19.0.0) - '@stripe/stripe-js@5.6.0': {} + '@stripe/stripe-js@6.1.0': {} - '@tanstack/react-table@8.20.6(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': + '@tanstack/react-table@8.21.2(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': dependencies: - '@tanstack/table-core': 8.20.5 + '@tanstack/table-core': 8.21.2 react: 19.0.0 react-dom: 19.0.0(react@19.0.0) @@ -11585,15 +11067,15 @@ snapshots: lodash: 4.17.21 redent: 3.0.0 - '@testing-library/react@16.2.0(@testing-library/dom@10.4.0)(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': + '@testing-library/react@16.2.0(@testing-library/dom@10.4.0)(@types/react-dom@19.0.4(@types/react@19.0.12))(@types/react@19.0.12)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': dependencies: '@babel/runtime': 7.26.10 '@testing-library/dom': 10.4.0 react: 19.0.0 react-dom: 19.0.0(react@19.0.0) optionalDependencies: - '@types/react': 19.0.8 - '@types/react-dom': 19.0.3(@types/react@19.0.8) + '@types/react': 19.0.12 + '@types/react-dom': 19.0.4(@types/react@19.0.12) '@testing-library/user-event@14.5.2(@testing-library/dom@10.4.0)': dependencies: @@ -11614,7 +11096,7 @@ snapshots: dependencies: tslib: 2.8.1 - '@types/applepayjs@14.0.8': {} + '@types/applepayjs@14.0.9': {} '@types/aria-query@5.0.4': {} @@ -11642,22 +11124,22 @@ snapshots: '@types/body-parser@1.19.5': dependencies: '@types/connect': 3.4.38 - '@types/node': 22.13.10 + '@types/node': 22.13.14 - '@types/braintree-web@3.96.16': + '@types/braintree-web@3.96.17': dependencies: '@types/googlepay': 0.7.6 '@types/paypal-checkout-components': 4.0.8 '@types/connect@3.4.38': dependencies: - '@types/node': 22.13.10 + '@types/node': 22.13.14 '@types/cookie@0.6.0': {} '@types/cross-spawn@6.0.6': dependencies: - '@types/node': 22.13.10 + '@types/node': 22.13.14 '@types/debug@4.1.12': dependencies: @@ -11691,7 +11173,7 @@ snapshots: '@types/express-serve-static-core@4.19.6': dependencies: - '@types/node': 22.13.10 + '@types/node': 22.13.14 '@types/qs': 6.9.18 '@types/range-parser': 1.2.7 '@types/send': 0.17.4 @@ -11708,17 +11190,17 @@ snapshots: '@types/glob@7.2.0': dependencies: '@types/minimatch': 5.1.2 - '@types/node': 22.13.10 + '@types/node': 22.13.14 '@types/googlepay@0.7.6': {} '@types/graceful-fs@4.1.9': dependencies: - '@types/node': 22.13.10 + '@types/node': 22.13.14 '@types/http-errors@2.0.4': {} - '@types/iframe-resizer@3.5.13': {} + '@types/iframe-resizer@4.0.0': {} '@types/istanbul-lib-coverage@2.0.6': {} @@ -11760,14 +11242,14 @@ snapshots: '@types/node-fetch@2.6.12': dependencies: - '@types/node': 22.13.10 + '@types/node': 22.13.14 form-data: 4.0.2 '@types/node@18.19.80': dependencies: undici-types: 5.26.5 - '@types/node@22.13.10': + '@types/node@22.13.14': dependencies: undici-types: 6.20.0 @@ -11783,29 +11265,29 @@ snapshots: '@types/range-parser@1.2.7': {} - '@types/react-dom@19.0.3(@types/react@18.3.17)': + '@types/react-dom@19.0.4(@types/react@18.3.18)': dependencies: - '@types/react': 18.3.17 + '@types/react': 18.3.18 optional: true - '@types/react-dom@19.0.3(@types/react@19.0.8)': + '@types/react-dom@19.0.4(@types/react@19.0.12)': dependencies: - '@types/react': 19.0.8 + '@types/react': 19.0.12 '@types/react-test-renderer@19.0.0': dependencies: - '@types/react': 19.0.8 + '@types/react': 19.0.12 '@types/react-window@1.8.8': dependencies: - '@types/react': 19.0.8 + '@types/react': 19.0.12 '@types/react@18.3.18': dependencies: '@types/prop-types': 15.7.14 csstype: 3.1.3 - '@types/react@19.0.8': + '@types/react@19.0.12': dependencies: csstype: 3.1.3 @@ -11816,12 +11298,12 @@ snapshots: '@types/send@0.17.4': dependencies: '@types/mime': 1.3.5 - '@types/node': 22.13.10 + '@types/node': 22.13.14 '@types/serve-static@1.15.7': dependencies: '@types/http-errors': 2.0.4 - '@types/node': 22.13.10 + '@types/node': 22.13.14 '@types/send': 0.17.4 '@types/statuses@2.0.5': {} @@ -11844,249 +11326,154 @@ snapshots: dependencies: '@types/yargs-parser': 21.0.3 - '@typescript-eslint/eslint-plugin@7.18.0(@typescript-eslint/parser@7.18.0(eslint@9.19.0)(typescript@5.7.2))(eslint@9.19.0)(typescript@5.7.2)': - dependencies: - '@eslint-community/regexpp': 4.12.1 - '@typescript-eslint/parser': 7.18.0(eslint@9.19.0)(typescript@5.7.2) - '@typescript-eslint/scope-manager': 7.18.0 - '@typescript-eslint/type-utils': 7.18.0(eslint@9.19.0)(typescript@5.7.2) - '@typescript-eslint/utils': 7.18.0(eslint@9.19.0)(typescript@5.7.2) - '@typescript-eslint/visitor-keys': 7.18.0 - eslint: 9.19.0 - graphemer: 1.4.0 - ignore: 5.3.2 - natural-compare: 1.4.0 - ts-api-utils: 1.4.3(typescript@5.7.2) - optionalDependencies: - typescript: 5.7.2 - transitivePeerDependencies: - - supports-color - - '@typescript-eslint/eslint-plugin@8.23.0(@typescript-eslint/parser@8.23.0(eslint@9.19.0)(typescript@5.7.3))(eslint@9.19.0)(typescript@5.7.3)': + '@typescript-eslint/eslint-plugin@8.28.0(@typescript-eslint/parser@8.28.0(eslint@9.23.0)(typescript@5.8.2))(eslint@9.23.0)(typescript@5.8.2)': dependencies: '@eslint-community/regexpp': 4.12.1 - '@typescript-eslint/parser': 8.23.0(eslint@9.19.0)(typescript@5.7.3) - '@typescript-eslint/scope-manager': 8.23.0 - '@typescript-eslint/type-utils': 8.23.0(eslint@9.19.0)(typescript@5.7.3) - '@typescript-eslint/utils': 8.23.0(eslint@9.19.0)(typescript@5.7.3) - '@typescript-eslint/visitor-keys': 8.23.0 - eslint: 9.19.0 + '@typescript-eslint/parser': 8.28.0(eslint@9.23.0)(typescript@5.8.2) + '@typescript-eslint/scope-manager': 8.28.0 + '@typescript-eslint/type-utils': 8.28.0(eslint@9.23.0)(typescript@5.8.2) + '@typescript-eslint/utils': 8.28.0(eslint@9.23.0)(typescript@5.8.2) + '@typescript-eslint/visitor-keys': 8.28.0 + eslint: 9.23.0 graphemer: 1.4.0 ignore: 5.3.2 natural-compare: 1.4.0 - ts-api-utils: 2.0.1(typescript@5.7.3) - typescript: 5.7.3 - transitivePeerDependencies: - - supports-color - - '@typescript-eslint/parser@6.21.0(eslint@9.19.0)(typescript@5.7.2)': - dependencies: - '@typescript-eslint/scope-manager': 6.21.0 - '@typescript-eslint/types': 6.21.0 - '@typescript-eslint/typescript-estree': 6.21.0(typescript@5.7.2) - '@typescript-eslint/visitor-keys': 6.21.0 - debug: 4.4.0 - eslint: 9.19.0 - optionalDependencies: - typescript: 5.7.2 + ts-api-utils: 2.0.1(typescript@5.8.2) + typescript: 5.8.2 transitivePeerDependencies: - supports-color - '@typescript-eslint/parser@7.18.0(eslint@9.19.0)(typescript@5.7.2)': + '@typescript-eslint/parser@8.28.0(eslint@9.23.0)(typescript@5.8.2)': dependencies: - '@typescript-eslint/scope-manager': 7.18.0 - '@typescript-eslint/types': 7.18.0 - '@typescript-eslint/typescript-estree': 7.18.0(typescript@5.7.2) - '@typescript-eslint/visitor-keys': 7.18.0 + '@typescript-eslint/scope-manager': 8.28.0 + '@typescript-eslint/types': 8.28.0 + '@typescript-eslint/typescript-estree': 8.28.0(typescript@5.8.2) + '@typescript-eslint/visitor-keys': 8.28.0 debug: 4.4.0 - eslint: 9.19.0 - optionalDependencies: - typescript: 5.7.2 - transitivePeerDependencies: - - supports-color - - '@typescript-eslint/parser@8.23.0(eslint@9.19.0)(typescript@5.7.3)': - dependencies: - '@typescript-eslint/scope-manager': 8.23.0 - '@typescript-eslint/types': 8.23.0 - '@typescript-eslint/typescript-estree': 8.23.0(typescript@5.7.3) - '@typescript-eslint/visitor-keys': 8.23.0 - debug: 4.4.0 - eslint: 9.19.0 - typescript: 5.7.3 + eslint: 9.23.0 + typescript: 5.8.2 transitivePeerDependencies: - supports-color - '@typescript-eslint/scope-manager@6.21.0': - dependencies: - '@typescript-eslint/types': 6.21.0 - '@typescript-eslint/visitor-keys': 6.21.0 - - '@typescript-eslint/scope-manager@7.18.0': - dependencies: - '@typescript-eslint/types': 7.18.0 - '@typescript-eslint/visitor-keys': 7.18.0 - '@typescript-eslint/scope-manager@8.23.0': dependencies: '@typescript-eslint/types': 8.23.0 '@typescript-eslint/visitor-keys': 8.23.0 - '@typescript-eslint/type-utils@7.18.0(eslint@9.19.0)(typescript@5.7.2)': + '@typescript-eslint/scope-manager@8.28.0': dependencies: - '@typescript-eslint/typescript-estree': 7.18.0(typescript@5.7.2) - '@typescript-eslint/utils': 7.18.0(eslint@9.19.0)(typescript@5.7.2) - debug: 4.4.0 - eslint: 9.19.0 - ts-api-utils: 1.4.3(typescript@5.7.2) - optionalDependencies: - typescript: 5.7.2 - transitivePeerDependencies: - - supports-color + '@typescript-eslint/types': 8.28.0 + '@typescript-eslint/visitor-keys': 8.28.0 - '@typescript-eslint/type-utils@8.23.0(eslint@9.19.0)(typescript@5.7.3)': + '@typescript-eslint/type-utils@8.28.0(eslint@9.23.0)(typescript@5.8.2)': dependencies: - '@typescript-eslint/typescript-estree': 8.23.0(typescript@5.7.3) - '@typescript-eslint/utils': 8.23.0(eslint@9.19.0)(typescript@5.7.3) + '@typescript-eslint/typescript-estree': 8.28.0(typescript@5.8.2) + '@typescript-eslint/utils': 8.28.0(eslint@9.23.0)(typescript@5.8.2) debug: 4.4.0 - eslint: 9.19.0 - ts-api-utils: 2.0.1(typescript@5.7.3) - typescript: 5.7.3 + eslint: 9.23.0 + ts-api-utils: 2.0.1(typescript@5.8.2) + typescript: 5.8.2 transitivePeerDependencies: - supports-color - '@typescript-eslint/types@6.21.0': {} - - '@typescript-eslint/types@7.18.0': {} - '@typescript-eslint/types@8.23.0': {} - '@typescript-eslint/typescript-estree@6.21.0(typescript@5.7.2)': - dependencies: - '@typescript-eslint/types': 6.21.0 - '@typescript-eslint/visitor-keys': 6.21.0 - debug: 4.4.0 - globby: 11.1.0 - is-glob: 4.0.3 - minimatch: 9.0.3 - semver: 7.6.3 - ts-api-utils: 1.4.3(typescript@5.7.2) - optionalDependencies: - typescript: 5.7.2 - transitivePeerDependencies: - - supports-color + '@typescript-eslint/types@8.28.0': {} - '@typescript-eslint/typescript-estree@7.18.0(typescript@5.7.2)': - dependencies: - '@typescript-eslint/types': 7.18.0 - '@typescript-eslint/visitor-keys': 7.18.0 - debug: 4.4.0 - globby: 11.1.0 - is-glob: 4.0.3 - minimatch: 9.0.5 - semver: 7.6.3 - ts-api-utils: 1.4.3(typescript@5.7.2) - optionalDependencies: - typescript: 5.7.2 - transitivePeerDependencies: - - supports-color - - '@typescript-eslint/typescript-estree@8.23.0(typescript@5.7.3)': + '@typescript-eslint/typescript-estree@8.23.0(typescript@5.8.2)': dependencies: '@typescript-eslint/types': 8.23.0 '@typescript-eslint/visitor-keys': 8.23.0 debug: 4.4.0 - fast-glob: 3.3.2 + fast-glob: 3.3.3 is-glob: 4.0.3 minimatch: 9.0.5 - semver: 7.6.3 - ts-api-utils: 2.0.1(typescript@5.7.3) - typescript: 5.7.3 + semver: 7.7.1 + ts-api-utils: 2.0.1(typescript@5.8.2) + typescript: 5.8.2 transitivePeerDependencies: - supports-color - '@typescript-eslint/utils@7.18.0(eslint@9.19.0)(typescript@5.7.2)': + '@typescript-eslint/typescript-estree@8.28.0(typescript@5.8.2)': dependencies: - '@eslint-community/eslint-utils': 4.4.1(eslint@9.19.0) - '@typescript-eslint/scope-manager': 7.18.0 - '@typescript-eslint/types': 7.18.0 - '@typescript-eslint/typescript-estree': 7.18.0(typescript@5.7.2) - eslint: 9.19.0 + '@typescript-eslint/types': 8.28.0 + '@typescript-eslint/visitor-keys': 8.28.0 + debug: 4.4.0 + fast-glob: 3.3.3 + is-glob: 4.0.3 + minimatch: 9.0.5 + semver: 7.7.1 + ts-api-utils: 2.0.1(typescript@5.8.2) + typescript: 5.8.2 transitivePeerDependencies: - supports-color - - typescript - '@typescript-eslint/utils@8.23.0(eslint@9.19.0)(typescript@5.7.3)': + '@typescript-eslint/utils@8.23.0(eslint@9.23.0)(typescript@5.8.2)': dependencies: - '@eslint-community/eslint-utils': 4.4.1(eslint@9.19.0) + '@eslint-community/eslint-utils': 4.4.1(eslint@9.23.0) '@typescript-eslint/scope-manager': 8.23.0 '@typescript-eslint/types': 8.23.0 - '@typescript-eslint/typescript-estree': 8.23.0(typescript@5.7.3) - eslint: 9.19.0 - typescript: 5.7.3 + '@typescript-eslint/typescript-estree': 8.23.0(typescript@5.8.2) + eslint: 9.23.0 + typescript: 5.8.2 transitivePeerDependencies: - supports-color - '@typescript-eslint/visitor-keys@6.21.0': - dependencies: - '@typescript-eslint/types': 6.21.0 - eslint-visitor-keys: 3.4.3 - - '@typescript-eslint/visitor-keys@7.18.0': + '@typescript-eslint/utils@8.28.0(eslint@9.23.0)(typescript@5.8.2)': dependencies: - '@typescript-eslint/types': 7.18.0 - eslint-visitor-keys: 3.4.3 + '@eslint-community/eslint-utils': 4.4.1(eslint@9.23.0) + '@typescript-eslint/scope-manager': 8.28.0 + '@typescript-eslint/types': 8.28.0 + '@typescript-eslint/typescript-estree': 8.28.0(typescript@5.8.2) + eslint: 9.23.0 + typescript: 5.8.2 + transitivePeerDependencies: + - supports-color '@typescript-eslint/visitor-keys@8.23.0': dependencies: '@typescript-eslint/types': 8.23.0 eslint-visitor-keys: 4.2.0 - '@vitejs/plugin-react@3.1.0(vite@5.4.11(@types/node@22.12.0)(terser@5.37.0))': + '@typescript-eslint/visitor-keys@8.28.0': dependencies: - '@babel/core': 7.26.0 - '@babel/plugin-transform-react-jsx-self': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-transform-react-jsx-source': 7.25.9(@babel/core@7.26.0) - magic-string: 0.27.0 - react-refresh: 0.14.2 - vite: 6.2.2(@types/node@22.13.10)(terser@5.39.0)(yaml@2.7.0) - transitivePeerDependencies: - - supports-color + '@typescript-eslint/types': 8.28.0 + eslint-visitor-keys: 4.2.0 - '@vitejs/plugin-react@4.3.4(vite@6.2.2(@types/node@22.13.10)(terser@5.39.0)(yaml@2.7.0))': + '@vitejs/plugin-react@3.1.0(vite@6.2.2(@types/node@22.13.14)(terser@5.39.0)(yaml@2.7.0))': dependencies: '@babel/core': 7.26.10 '@babel/plugin-transform-react-jsx-self': 7.25.9(@babel/core@7.26.10) '@babel/plugin-transform-react-jsx-source': 7.25.9(@babel/core@7.26.10) - '@types/babel__core': 7.20.5 + magic-string: 0.27.0 react-refresh: 0.14.2 - vite: 6.2.2(@types/node@22.13.10)(terser@5.39.0)(yaml@2.7.0) + vite: 6.2.2(@types/node@22.13.14)(terser@5.39.0)(yaml@2.7.0) transitivePeerDependencies: - supports-color - '@vitejs/plugin-react@4.3.4(vite@6.0.11(@types/node@22.12.0)(terser@5.37.0)(yaml@2.6.1))': + '@vitejs/plugin-react@4.3.4(vite@6.2.2(@types/node@22.13.14)(terser@5.39.0)(yaml@2.7.0))': dependencies: - '@babel/core': 7.26.0 - '@babel/plugin-transform-react-jsx-self': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-transform-react-jsx-source': 7.25.9(@babel/core@7.26.0) + '@babel/core': 7.26.10 + '@babel/plugin-transform-react-jsx-self': 7.25.9(@babel/core@7.26.10) + '@babel/plugin-transform-react-jsx-source': 7.25.9(@babel/core@7.26.10) '@types/babel__core': 7.20.5 react-refresh: 0.14.2 - vite: 6.0.11(@types/node@22.12.0)(terser@5.37.0)(yaml@2.6.1) + vite: 6.2.2(@types/node@22.13.14)(terser@5.39.0)(yaml@2.7.0) transitivePeerDependencies: - supports-color - '@vitejs/plugin-react@4.3.4(vite@6.1.0(@types/node@22.12.0)(terser@5.37.0)(yaml@2.6.1))': + '@vitejs/plugin-react@4.3.4(vite@6.2.3(@types/node@22.13.14)(terser@5.39.0)(yaml@2.7.0))': dependencies: - '@babel/core': 7.26.0 - '@babel/plugin-transform-react-jsx-self': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-transform-react-jsx-source': 7.25.9(@babel/core@7.26.0) + '@babel/core': 7.26.10 + '@babel/plugin-transform-react-jsx-self': 7.25.9(@babel/core@7.26.10) + '@babel/plugin-transform-react-jsx-source': 7.25.9(@babel/core@7.26.10) '@types/babel__core': 7.20.5 react-refresh: 0.14.2 - vite: 6.1.0(@types/node@22.12.0)(terser@5.37.0)(yaml@2.6.1) + vite: 6.2.3(@types/node@22.13.14)(terser@5.39.0)(yaml@2.7.0) transitivePeerDependencies: - supports-color - '@vitest/coverage-v8@3.0.4(vitest@3.0.4(@types/debug@4.1.12)(@types/node@22.12.0)(jsdom@26.0.0)(msw@2.7.0(@types/node@22.12.0)(typescript@5.7.3))(terser@5.37.0)(yaml@2.6.1))': + '@vitest/coverage-v8@3.0.9(vitest@3.0.9(@types/debug@4.1.12)(@types/node@22.13.14)(jsdom@26.0.0)(msw@2.7.3(@types/node@22.13.14)(typescript@5.8.2))(terser@5.39.0)(yaml@2.7.0))': dependencies: '@ampproject/remapping': 2.3.0 '@bcoe/v8-coverage': 1.0.2 @@ -12100,7 +11487,7 @@ snapshots: std-env: 3.8.1 test-exclude: 7.0.1 tinyrainbow: 2.0.0 - vitest: 3.0.8(@types/debug@4.1.12)(@types/node@22.13.10)(jsdom@26.0.0)(msw@2.7.3(@types/node@22.13.10)(typescript@5.8.2))(terser@5.39.0)(yaml@2.7.0) + vitest: 3.0.9(@types/debug@4.1.12)(@types/node@22.13.14)(jsdom@26.0.0)(msw@2.7.3(@types/node@22.13.14)(typescript@5.8.2))(terser@5.39.0)(yaml@2.7.0) transitivePeerDependencies: - supports-color @@ -12108,24 +11495,24 @@ snapshots: dependencies: '@vitest/spy': 2.0.5 '@vitest/utils': 2.0.5 - chai: 5.1.2 + chai: 5.2.0 tinyrainbow: 1.2.0 - '@vitest/expect@3.0.4': + '@vitest/expect@3.0.9': dependencies: - '@vitest/spy': 3.0.8 - '@vitest/utils': 3.0.8 + '@vitest/spy': 3.0.9 + '@vitest/utils': 3.0.9 chai: 5.2.0 tinyrainbow: 2.0.0 - '@vitest/mocker@3.0.8(msw@2.7.3(@types/node@22.13.10)(typescript@5.8.2))(vite@6.2.2(@types/node@22.13.10)(terser@5.39.0)(yaml@2.7.0))': + '@vitest/mocker@3.0.9(msw@2.7.3(@types/node@22.13.14)(typescript@5.8.2))(vite@6.2.3(@types/node@22.13.14)(terser@5.39.0)(yaml@2.7.0))': dependencies: - '@vitest/spy': 3.0.8 + '@vitest/spy': 3.0.9 estree-walker: 3.0.3 magic-string: 0.30.17 optionalDependencies: - msw: 2.7.3(@types/node@22.13.10)(typescript@5.8.2) - vite: 6.2.2(@types/node@22.13.10)(terser@5.39.0)(yaml@2.7.0) + msw: 2.7.3(@types/node@22.13.14)(typescript@5.8.2) + vite: 6.2.3(@types/node@22.13.14)(terser@5.39.0)(yaml@2.7.0) '@vitest/pretty-format@2.0.5': dependencies: @@ -12135,18 +11522,18 @@ snapshots: dependencies: tinyrainbow: 1.2.0 - '@vitest/pretty-format@3.0.4': + '@vitest/pretty-format@3.0.9': dependencies: tinyrainbow: 2.0.0 - '@vitest/runner@3.0.8': + '@vitest/runner@3.0.9': dependencies: - '@vitest/utils': 3.0.8 + '@vitest/utils': 3.0.9 pathe: 2.0.3 - '@vitest/snapshot@3.0.8': + '@vitest/snapshot@3.0.9': dependencies: - '@vitest/pretty-format': 3.0.8 + '@vitest/pretty-format': 3.0.9 magic-string: 0.30.17 pathe: 2.0.3 @@ -12154,7 +11541,7 @@ snapshots: dependencies: tinyspy: 3.0.2 - '@vitest/spy@3.0.4': + '@vitest/spy@3.0.9': dependencies: tinyspy: 3.0.2 @@ -12162,18 +11549,18 @@ snapshots: dependencies: '@vitest/pretty-format': 2.0.5 estree-walker: 3.0.3 - loupe: 3.1.2 + loupe: 3.1.3 tinyrainbow: 1.2.0 '@vitest/utils@2.1.9': dependencies: '@vitest/pretty-format': 2.1.9 - loupe: 3.1.2 + loupe: 3.1.3 tinyrainbow: 1.2.0 - '@vitest/utils@3.0.4': + '@vitest/utils@3.0.9': dependencies: - '@vitest/pretty-format': 3.0.8 + '@vitest/pretty-format': 3.0.9 loupe: 3.1.3 tinyrainbow: 2.0.0 @@ -12299,6 +11686,10 @@ snapshots: dependencies: acorn: 7.4.1 + acorn-jsx@5.3.2(acorn@8.14.1): + dependencies: + acorn: 8.14.1 + acorn-walk@7.2.0: {} acorn@7.4.1: {} @@ -12327,6 +11718,13 @@ snapshots: ajv: 8.17.1 fast-deep-equal: 3.1.3 + ajv@6.12.6: + dependencies: + fast-deep-equal: 3.1.3 + fast-json-stable-stringify: 2.1.0 + json-schema-traverse: 0.4.1 + uri-js: 4.4.1 + ajv@8.17.1: dependencies: fast-deep-equal: 3.1.3 @@ -12340,6 +11738,10 @@ snapshots: dependencies: type-fest: 0.21.3 + ansi-escapes@7.0.0: + dependencies: + environment: 1.1.0 + ansi-regex@5.0.1: {} ansi-regex@6.1.0: {} @@ -12538,7 +11940,7 @@ snapshots: dependencies: fill-range: 7.1.1 - braintree-web@3.116.3: + braintree-web@3.117.1: dependencies: '@braintree/asset-loader': 2.0.2 '@braintree/browser-detection': 2.0.2 @@ -12582,15 +11984,9 @@ snapshots: base64-js: 1.5.1 ieee754: 1.2.1 - builtin-modules@3.3.0: {} - - builtins@5.1.0: - dependencies: - semver: 7.6.3 - - bundle-require@5.1.0(esbuild@0.24.2): + bundle-require@5.1.0(esbuild@0.25.1): dependencies: - esbuild: 0.24.2 + esbuild: 0.25.1 load-tsconfig: 0.2.5 byte-size@8.1.1: {} @@ -12672,6 +12068,10 @@ snapshots: ansi-styles: 4.3.0 supports-color: 7.2.0 + chalk@5.4.1: {} + + char-regex@1.0.2: {} + character-entities@2.0.2: {} chardet@0.7.0: {} @@ -12710,6 +12110,8 @@ snapshots: dependencies: consola: 3.4.0 + cjs-module-lexer@1.4.3: {} + classnames@2.5.1: {} clean-stack@2.2.0: {} @@ -12718,6 +12120,15 @@ snapshots: dependencies: restore-cursor: 3.1.0 + cli-highlight@2.1.11: + dependencies: + chalk: 4.1.2 + highlight.js: 10.7.3 + mz: 2.7.0 + parse5: 5.1.1 + parse5-htmlparser2-tree-adapter: 6.0.1 + yargs: 16.2.0 + cli-spinners@2.6.1: {} cli-spinners@2.9.2: {} @@ -12771,6 +12182,8 @@ snapshots: dependencies: delayed-stream: 1.0.0 + commander@10.0.1: {} + commander@11.1.0: {} commander@2.20.3: {} @@ -12987,6 +12400,8 @@ snapshots: which-collection: 1.0.2 which-typed-array: 1.1.19 + deep-is@0.1.4: {} + default-browser-id@3.0.0: dependencies: bplist-parser: 0.2.0 @@ -13113,6 +12528,8 @@ snapshots: emoji-regex@9.2.2: {} + emojilib@2.4.0: {} + encodeurl@1.0.2: {} encodeurl@2.0.0: {} @@ -13148,6 +12565,8 @@ snapshots: envinfo@7.14.0: {} + environment@1.1.0: {} + err-code@2.0.3: {} error-ex@1.3.2: @@ -13194,10 +12613,10 @@ snapshots: transitivePeerDependencies: - supports-color - esbuild-register@3.6.0(esbuild@0.24.2): + esbuild-register@3.6.0(esbuild@0.25.1): dependencies: debug: 4.4.0 - esbuild: 0.24.2 + esbuild: 0.25.1 transitivePeerDependencies: - supports-color @@ -13260,6 +12679,8 @@ snapshots: escape-string-regexp@1.0.5: {} + escape-string-regexp@4.0.0: {} + escape-string-regexp@5.0.0: {} escodegen@2.1.0: @@ -13270,158 +12691,19 @@ snapshots: optionalDependencies: source-map: 0.6.1 - eslint-compat-utils@0.5.1(eslint@9.19.0): - dependencies: - eslint: 9.19.0 - semver: 7.6.3 - - eslint-config-love@43.1.0(@typescript-eslint/eslint-plugin@7.18.0(@typescript-eslint/parser@7.18.0(eslint@9.19.0)(typescript@5.7.2))(eslint@9.19.0)(typescript@5.7.2))(eslint-plugin-import@2.31.0(@typescript-eslint/parser@7.18.0(eslint@9.19.0)(typescript@5.7.2))(eslint@9.19.0))(eslint-plugin-n@16.6.2(eslint@9.19.0))(eslint-plugin-promise@6.6.0(eslint@9.19.0))(eslint@9.19.0)(typescript@5.7.2): - dependencies: - '@typescript-eslint/eslint-plugin': 7.18.0(@typescript-eslint/parser@7.18.0(eslint@9.19.0)(typescript@5.7.2))(eslint@9.19.0)(typescript@5.7.2) - '@typescript-eslint/parser': 6.21.0(eslint@9.19.0)(typescript@5.7.2) - eslint: 9.19.0 - eslint-config-standard: 17.1.0(eslint-plugin-import@2.31.0(@typescript-eslint/parser@7.18.0(eslint@9.19.0)(typescript@5.7.2))(eslint@9.19.0))(eslint-plugin-n@16.6.2(eslint@9.19.0))(eslint-plugin-promise@6.6.0(eslint@9.19.0))(eslint@9.19.0) - eslint-plugin-import: 2.31.0(@typescript-eslint/parser@7.18.0(eslint@9.19.0)(typescript@5.7.2))(eslint@9.19.0) - eslint-plugin-n: 16.6.2(eslint@9.19.0) - eslint-plugin-promise: 6.6.0(eslint@9.19.0) - typescript: 5.7.2 - transitivePeerDependencies: - - supports-color - - eslint-config-prettier@9.1.0(eslint@9.19.0): - dependencies: - eslint: 9.19.0 - - eslint-config-standard-jsx@11.0.0(eslint-plugin-react@7.37.2(eslint@9.19.0))(eslint@9.19.0): + eslint-plugin-react-hooks@5.2.0(eslint@9.23.0): dependencies: - eslint: 9.19.0 - eslint-plugin-react: 7.37.2(eslint@9.19.0) + eslint: 9.23.0 - eslint-config-standard@17.1.0(eslint-plugin-import@2.31.0(@typescript-eslint/parser@7.18.0(eslint@9.19.0)(typescript@5.7.2))(eslint@9.19.0))(eslint-plugin-n@16.6.2(eslint@9.19.0))(eslint-plugin-promise@6.6.0(eslint@9.19.0))(eslint@9.19.0): + eslint-plugin-react-refresh@0.4.19(eslint@9.23.0): dependencies: - eslint: 9.19.0 - eslint-plugin-import: 2.31.0(@typescript-eslint/parser@7.18.0(eslint@9.19.0)(typescript@5.7.2))(eslint@9.19.0) - eslint-plugin-n: 16.6.2(eslint@9.19.0) - eslint-plugin-promise: 6.6.0(eslint@9.19.0) + eslint: 9.23.0 - eslint-import-resolver-node@0.3.9: + eslint-plugin-storybook@0.12.0(eslint@9.23.0)(typescript@5.8.2): dependencies: - debug: 3.2.7 - is-core-module: 2.16.0 - resolve: 1.22.9 - transitivePeerDependencies: - - supports-color - - eslint-module-utils@2.12.0(@typescript-eslint/parser@7.18.0(eslint@9.19.0)(typescript@5.7.2))(eslint-import-resolver-node@0.3.9)(eslint@9.19.0): - dependencies: - debug: 3.2.7 - optionalDependencies: - '@typescript-eslint/parser': 7.18.0(eslint@9.19.0)(typescript@5.7.2) - eslint: 9.19.0 - eslint-import-resolver-node: 0.3.9 - transitivePeerDependencies: - - supports-color - - eslint-plugin-es-x@7.8.0(eslint@9.19.0): - dependencies: - '@eslint-community/eslint-utils': 4.4.1(eslint@9.19.0) - '@eslint-community/regexpp': 4.12.1 - eslint: 9.19.0 - eslint-compat-utils: 0.5.1(eslint@9.19.0) - - eslint-plugin-import@2.31.0(@typescript-eslint/parser@7.18.0(eslint@9.19.0)(typescript@5.7.2))(eslint@9.19.0): - dependencies: - '@rtsao/scc': 1.1.0 - array-includes: 3.1.8 - array.prototype.findlastindex: 1.2.5 - array.prototype.flat: 1.3.3 - array.prototype.flatmap: 1.3.3 - debug: 3.2.7 - doctrine: 2.1.0 - eslint: 9.19.0 - eslint-import-resolver-node: 0.3.9 - eslint-module-utils: 2.12.0(@typescript-eslint/parser@7.18.0(eslint@9.19.0)(typescript@5.7.2))(eslint-import-resolver-node@0.3.9)(eslint@9.19.0) - hasown: 2.0.2 - is-core-module: 2.16.0 - is-glob: 4.0.3 - minimatch: 3.1.2 - object.fromentries: 2.0.8 - object.groupby: 1.0.3 - object.values: 1.2.0 - semver: 6.3.1 - string.prototype.trimend: 1.0.9 - tsconfig-paths: 3.15.0 - optionalDependencies: - '@typescript-eslint/parser': 7.18.0(eslint@9.19.0)(typescript@5.7.2) - transitivePeerDependencies: - - eslint-import-resolver-typescript - - eslint-import-resolver-webpack - - supports-color - - eslint-plugin-n@16.6.2(eslint@9.19.0): - dependencies: - '@eslint-community/eslint-utils': 4.4.1(eslint@9.19.0) - builtins: 5.1.0 - eslint: 9.19.0 - eslint-plugin-es-x: 7.8.0(eslint@9.19.0) - get-tsconfig: 4.8.1 - globals: 13.24.0 - ignore: 5.3.2 - is-builtin-module: 3.2.1 - is-core-module: 2.16.0 - minimatch: 3.1.2 - resolve: 1.22.9 - semver: 7.6.3 - - eslint-plugin-prettier@5.2.1(@types/eslint@9.6.1)(eslint-config-prettier@9.1.0(eslint@9.19.0))(eslint@9.19.0)(prettier@3.4.2): - dependencies: - eslint: 9.19.0 - prettier: 3.4.2 - prettier-linter-helpers: 1.0.0 - synckit: 0.9.2 - optionalDependencies: - '@types/eslint': 9.6.1 - eslint-config-prettier: 9.1.0(eslint@9.19.0) - - eslint-plugin-promise@6.6.0(eslint@9.19.0): - dependencies: - eslint: 9.19.0 - - eslint-plugin-react-hooks@5.1.0(eslint@9.19.0): - dependencies: - eslint: 9.19.0 - - eslint-plugin-react-refresh@0.4.18(eslint@9.19.0): - dependencies: - eslint: 9.19.0 - - eslint-plugin-react@7.37.2(eslint@9.19.0): - dependencies: - array-includes: 3.1.8 - array.prototype.findlast: 1.2.5 - array.prototype.flatmap: 1.3.3 - array.prototype.tosorted: 1.1.4 - doctrine: 2.1.0 - es-iterator-helpers: 1.2.0 - eslint: 9.19.0 - estraverse: 5.3.0 - hasown: 2.0.2 - jsx-ast-utils: 3.3.5 - minimatch: 3.1.2 - object.entries: 1.1.8 - object.fromentries: 2.0.8 - object.values: 1.2.0 - prop-types: 15.8.1 - resolve: 2.0.0-next.5 - semver: 6.3.1 - string.prototype.matchall: 4.0.11 - string.prototype.repeat: 1.0.0 - - eslint-plugin-storybook@0.11.2(eslint@9.19.0)(typescript@5.7.3): - dependencies: - '@storybook/csf': 0.1.12 - '@typescript-eslint/utils': 8.23.0(eslint@9.19.0)(typescript@5.7.3) - eslint: 9.19.0 + '@storybook/csf': 0.1.13 + '@typescript-eslint/utils': 8.23.0(eslint@9.23.0)(typescript@5.8.2) + eslint: 9.23.0 ts-dedent: 2.2.0 transitivePeerDependencies: - supports-color @@ -13432,7 +12714,7 @@ snapshots: esrecurse: 4.3.0 estraverse: 4.3.0 - eslint-scope@8.2.0: + eslint-scope@8.3.0: dependencies: esrecurse: 4.3.0 estraverse: 5.3.0 @@ -13441,18 +12723,19 @@ snapshots: eslint-visitor-keys@4.2.0: {} - eslint@9.19.0: + eslint@9.23.0: dependencies: - '@eslint-community/eslint-utils': 4.4.1(eslint@9.19.0) + '@eslint-community/eslint-utils': 4.4.1(eslint@9.23.0) '@eslint-community/regexpp': 4.12.1 - '@eslint/config-array': 0.19.1 - '@eslint/core': 0.10.0 - '@eslint/eslintrc': 3.2.0 - '@eslint/js': 9.19.0 - '@eslint/plugin-kit': 0.2.5 + '@eslint/config-array': 0.19.2 + '@eslint/config-helpers': 0.2.0 + '@eslint/core': 0.12.0 + '@eslint/eslintrc': 3.3.1 + '@eslint/js': 9.23.0 + '@eslint/plugin-kit': 0.2.7 '@humanfs/node': 0.16.6 '@humanwhocodes/module-importer': 1.0.1 - '@humanwhocodes/retry': 0.4.1 + '@humanwhocodes/retry': 0.4.2 '@types/estree': 1.0.6 '@types/json-schema': 7.0.15 ajv: 6.12.6 @@ -13460,7 +12743,7 @@ snapshots: cross-spawn: 7.0.6 debug: 4.4.0 escape-string-regexp: 4.0.0 - eslint-scope: 8.2.0 + eslint-scope: 8.3.0 eslint-visitor-keys: 4.2.0 espree: 10.3.0 esquery: 1.6.0 @@ -13482,12 +12765,16 @@ snapshots: espree@10.3.0: dependencies: - acorn: 8.14.0 - acorn-jsx: 5.3.2(acorn@8.14.0) + acorn: 8.14.1 + acorn-jsx: 5.3.2(acorn@8.14.1) eslint-visitor-keys: 4.2.0 esprima@4.0.1: {} + esquery@1.6.0: + dependencies: + estraverse: 5.3.0 + esrecurse@4.3.0: dependencies: estraverse: 5.3.0 @@ -13513,9 +12800,9 @@ snapshots: execa@5.0.0: dependencies: cross-spawn: 7.0.6 - get-stream: 6.0.0 + get-stream: 6.0.1 human-signals: 2.1.0 - is-stream: 2.0.0 + is-stream: 2.0.1 merge-stream: 2.0.0 npm-run-path: 4.0.1 onetime: 5.1.2 @@ -13603,6 +12890,8 @@ snapshots: fast-json-stable-stringify@2.1.0: {} + fast-levenshtein@2.0.6: {} + fast-uri@3.0.6: {} fastq@1.19.1: @@ -13623,10 +12912,16 @@ snapshots: fetch-retry@5.0.6: {} + fflate@0.8.2: {} + figures@3.2.0: dependencies: escape-string-regexp: 1.0.5 + file-entry-cache@8.0.0: + dependencies: + flat-cache: 4.0.1 + file-system-cache@2.3.0: dependencies: fs-extra: 11.1.1 @@ -13694,8 +12989,15 @@ snapshots: locate-path: 7.2.0 path-exists: 5.0.0 + flat-cache@4.0.1: + dependencies: + flatted: 3.3.3 + keyv: 4.5.4 + flat@5.0.2: {} + flatted@3.3.3: {} + flow-parser@0.265.2: {} follow-redirects@1.15.9: {} @@ -13722,12 +13024,12 @@ snapshots: dependencies: '@braintree/uuid': 1.0.1 - frames-react@1.2.2(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(rollup@4.32.0)(typescript@5.7.3): + frames-react@1.2.2(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(rollup@4.35.0)(typescript@5.8.2): dependencies: classnames: 2.5.1 react: 19.0.0 react-dom: 19.0.0(react@19.0.0) - rollup-plugin-typescript2: 0.36.0(rollup@4.32.0)(typescript@5.7.3) + rollup-plugin-typescript2: 0.36.0(rollup@4.35.0)(typescript@5.8.2) tslib: 2.8.1 transitivePeerDependencies: - rollup @@ -13903,18 +13205,9 @@ snapshots: globals@11.12.0: {} - globals@13.24.0: - dependencies: - type-fest: 0.20.2 - globals@14.0.0: {} - globals@15.14.0: {} - - globalthis@1.0.4: - dependencies: - define-properties: 1.2.1 - gopd: 1.2.0 + globals@16.0.0: {} globby@11.1.0: dependencies: @@ -13931,6 +13224,8 @@ snapshots: graceful-fs@4.2.11: {} + graphemer@1.4.0: {} + graphql@16.10.0: {} gunzip-maybe@1.4.2: @@ -13975,6 +13270,8 @@ snapshots: headers-polyfill@4.0.3: {} + highlight.js@10.7.3: {} + hosted-git-info@2.8.9: {} hosted-git-info@4.1.0: @@ -14325,13 +13622,13 @@ snapshots: jake@10.9.2: dependencies: async: 3.2.6 - chalk: 4.1.0 + chalk: 4.1.2 filelist: 1.0.4 minimatch: 3.1.2 jest-diff@29.7.0: dependencies: - chalk: 4.1.0 + chalk: 4.1.2 diff-sequences: 29.6.3 jest-get-type: 29.6.3 pretty-format: 29.7.0 @@ -14342,7 +13639,7 @@ snapshots: dependencies: '@jest/types': 29.6.3 '@types/graceful-fs': 4.1.9 - '@types/node': 22.13.10 + '@types/node': 22.13.14 anymatch: 3.1.3 fb-watchman: 2.0.2 graceful-fs: 4.2.11 @@ -14357,14 +13654,14 @@ snapshots: jest-mock@27.5.1: dependencies: '@jest/types': 27.5.1 - '@types/node': 22.13.10 + '@types/node': 22.13.14 jest-regex-util@29.6.3: {} jest-util@29.7.0: dependencies: '@jest/types': 29.6.3 - '@types/node': 22.13.10 + '@types/node': 22.13.14 chalk: 4.1.2 ci-info: 3.9.0 graceful-fs: 4.2.11 @@ -14372,13 +13669,13 @@ snapshots: jest-worker@27.5.1: dependencies: - '@types/node': 22.13.10 + '@types/node': 22.13.14 merge-stream: 2.0.0 supports-color: 8.1.1 jest-worker@29.7.0: dependencies: - '@types/node': 22.13.10 + '@types/node': 22.13.14 jest-util: 29.7.0 merge-stream: 2.0.0 supports-color: 8.1.1 @@ -14419,7 +13716,7 @@ snapshots: micromatch: 4.0.8 neo-async: 2.6.2 node-dir: 0.1.17 - recast: 0.23.11 + recast: 0.23.9 temp: 0.8.4 write-file-atomic: 2.4.3 optionalDependencies: @@ -14461,14 +13758,20 @@ snapshots: jsesc@3.1.0: {} + json-buffer@3.0.1: {} + json-parse-better-errors@1.0.2: {} json-parse-even-better-errors@2.3.1: {} json-parse-even-better-errors@3.0.2: {} + json-schema-traverse@0.4.1: {} + json-schema-traverse@1.0.0: {} + json-stable-stringify-without-jsonify@1.0.1: {} + json-stringify-nice@1.1.4: {} json-stringify-safe@5.0.1: {} @@ -14491,6 +13794,10 @@ snapshots: jwt-decode@4.0.0: {} + keyv@4.5.4: + dependencies: + json-buffer: 3.0.1 + kind-of@6.0.3: {} kleur@3.0.3: {} @@ -14596,6 +13903,11 @@ snapshots: leven@3.1.0: {} + levn@0.4.1: + dependencies: + prelude-ls: 1.2.1 + type-check: 0.4.0 + libnpmaccess@8.0.6: dependencies: npm-package-arg: 11.0.2 @@ -14757,11 +14069,20 @@ snapshots: dependencies: react: 18.3.1 - markdown-to-jsx@7.7.2(react@19.0.0): + marked-terminal@7.3.0(marked@9.1.6): dependencies: - react: 19.0.0 + ansi-escapes: 7.0.0 + ansi-regex: 6.1.0 + chalk: 5.4.1 + cli-highlight: 2.1.11 + cli-table3: 0.6.5 + marked: 9.1.6 + node-emoji: 2.2.0 + supports-hyperlinks: 3.2.0 - math-intrinsics@1.0.0: {} + marked@9.1.6: {} + + math-intrinsics@1.1.0: {} mdast-util-definitions@4.0.0: dependencies: @@ -14802,7 +14123,7 @@ snapshots: dependencies: '@types/mdast': 4.0.4 '@types/unist': 3.0.3 - decode-named-character-reference: 1.0.2 + decode-named-character-reference: 1.1.0 devlop: 1.1.0 mdast-util-to-string: 4.0.0 micromark: 4.0.1 @@ -15012,7 +14333,7 @@ snapshots: micromark-core-commonmark@2.0.2: dependencies: - decode-named-character-reference: 1.0.2 + decode-named-character-reference: 1.1.0 devlop: 1.1.0 micromark-factory-destination: 2.0.1 micromark-factory-label: 2.0.1 @@ -15266,7 +14587,7 @@ snapshots: micromark-util-decode-string@2.0.1: dependencies: - decode-named-character-reference: 1.0.2 + decode-named-character-reference: 1.1.0 micromark-util-character: 2.1.1 micromark-util-decode-numeric-character-reference: 2.0.2 micromark-util-symbol: 2.0.1 @@ -15355,7 +14676,7 @@ snapshots: dependencies: '@types/debug': 4.1.12 debug: 4.4.0 - decode-named-character-reference: 1.0.2 + decode-named-character-reference: 1.1.0 devlop: 1.1.0 micromark-core-commonmark: 2.0.2 micromark-factory-space: 2.0.1 @@ -15498,13 +14819,13 @@ snapshots: ms@2.1.3: {} - msw@2.7.3(@types/node@22.13.10)(typescript@5.8.2): + msw@2.7.3(@types/node@22.13.14)(typescript@5.8.2): dependencies: '@bundled-es-modules/cookie': 2.0.1 '@bundled-es-modules/statuses': 1.0.1 '@bundled-es-modules/tough-cookie': 0.1.6 - '@inquirer/confirm': 5.1.8(@types/node@22.13.10) - '@mswjs/interceptors': 0.37.6 + '@inquirer/confirm': 5.1.8(@types/node@22.13.14) + '@mswjs/interceptors': 0.37.3 '@open-draft/deferred-promise': 2.2.0 '@open-draft/until': 2.1.0 '@types/cookie': 0.6.0 @@ -15529,7 +14850,7 @@ snapshots: array-differ: 3.0.0 array-union: 2.1.0 arrify: 2.0.1 - minimatch: 3.0.5 + minimatch: 3.1.2 mute-stream@0.0.8: {} @@ -15559,6 +14880,13 @@ snapshots: dependencies: minimatch: 3.1.2 + node-emoji@2.2.0: + dependencies: + '@sindresorhus/is': 4.6.0 + char-regex: 1.0.2 + emojilib: 2.4.0 + skin-tone: 2.0.0 + node-fetch-native@1.6.6: {} node-fetch@2.6.7(encoding@0.1.13): @@ -15674,7 +15002,7 @@ snapshots: '@yarnpkg/parsers': 3.0.2 '@zkochan/js-yaml': 0.0.7 axios: 1.8.3 - chalk: 4.1.0 + chalk: 4.1.2 cli-cursor: 3.1.0 cli-spinners: 2.6.1 cliui: 8.0.1 @@ -15766,12 +15094,21 @@ snapshots: is-docker: 2.2.1 is-wsl: 2.2.0 + optionator@0.9.4: + dependencies: + deep-is: 0.1.4 + fast-levenshtein: 2.0.6 + levn: 0.4.1 + prelude-ls: 1.2.1 + type-check: 0.4.0 + word-wrap: 1.2.5 + ora@5.3.0: dependencies: bl: 4.1.0 - chalk: 4.1.0 + chalk: 4.1.2 cli-cursor: 3.1.0 - cli-spinners: 2.6.1 + cli-spinners: 2.9.2 is-interactive: 1.0.0 log-symbols: 4.1.0 strip-ansi: 6.0.1 @@ -15915,6 +15252,14 @@ snapshots: dependencies: parse-path: 7.0.1 + parse5-htmlparser2-tree-adapter@6.0.1: + dependencies: + parse5: 6.0.1 + + parse5@5.1.1: {} + + parse5@6.0.1: {} + parse5@7.2.1: dependencies: entities: 4.5.0 @@ -15998,11 +15343,11 @@ snapshots: mlly: 1.7.4 pathe: 2.0.3 - playwright-core@1.51.0: {} + playwright-core@1.51.1: {} - playwright@1.51.0: + playwright@1.51.1: dependencies: - playwright-core: 1.51.0 + playwright-core: 1.51.1 optionalDependencies: fsevents: 2.3.2 @@ -16016,12 +15361,12 @@ snapshots: possible-typed-array-names@1.1.0: {} - postcss-load-config@6.0.1(postcss@8.5.1)(yaml@2.6.1): + postcss-load-config@6.0.1(postcss@8.5.3)(yaml@2.7.0): dependencies: lilconfig: 3.1.3 optionalDependencies: - postcss: 8.5.1 - yaml: 2.6.1 + postcss: 8.5.3 + yaml: 2.7.0 postcss-selector-parser@6.1.2: dependencies: @@ -16030,12 +15375,14 @@ snapshots: postcss@8.5.3: dependencies: - nanoid: 3.3.10 + nanoid: 3.3.8 picocolors: 1.1.1 source-map-js: 1.2.1 preact@10.22.1: {} + prelude-ls@1.2.1: {} + prettier@2.8.8: {} pretty-bytes@6.1.1: {} @@ -16184,24 +15531,15 @@ snapshots: react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - react-colorful@5.6.1(react-dom@19.0.0(react@19.0.0))(react@19.0.0): - dependencies: - react: 19.0.0 - react-dom: 19.0.0(react@19.0.0) - react-confetti@6.2.2(react@19.0.0): dependencies: react: 19.0.0 tween-functions: 1.2.0 - react-docgen-typescript@2.2.2(typescript@5.7.2): + react-docgen-typescript@2.2.2(typescript@5.8.2): dependencies: typescript: 5.8.2 - react-docgen-typescript@2.2.2(typescript@5.7.3): - dependencies: - typescript: 5.7.3 - react-docgen@7.1.0: dependencies: '@babel/core': 7.26.10 @@ -16256,15 +15594,7 @@ snapshots: optionalDependencies: '@types/react': 18.3.18 - react-remove-scroll-bar@2.3.8(@types/react@19.0.8)(react@19.0.0): - dependencies: - react: 19.0.0 - react-style-singleton: 2.2.3(@types/react@19.0.8)(react@19.0.0) - tslib: 2.8.1 - optionalDependencies: - '@types/react': 19.0.8 - - react-remove-scroll@2.5.5(@types/react@18.3.17)(react@18.3.1): + react-remove-scroll@2.5.5(@types/react@18.3.18)(react@18.3.1): dependencies: react: 18.3.1 react-remove-scroll-bar: 2.3.8(@types/react@18.3.18)(react@18.3.1) @@ -16275,18 +15605,7 @@ snapshots: optionalDependencies: '@types/react': 18.3.18 - react-remove-scroll@2.5.5(@types/react@19.0.8)(react@19.0.0): - dependencies: - react: 19.0.0 - react-remove-scroll-bar: 2.3.8(@types/react@19.0.8)(react@19.0.0) - react-style-singleton: 2.2.3(@types/react@19.0.8)(react@19.0.0) - tslib: 2.8.1 - use-callback-ref: 1.3.3(@types/react@19.0.8)(react@19.0.0) - use-sidecar: 1.1.3(@types/react@19.0.8)(react@19.0.0) - optionalDependencies: - '@types/react': 19.0.8 - - react-style-singleton@2.2.3(@types/react@18.3.17)(react@18.3.1): + react-style-singleton@2.2.3(@types/react@18.3.18)(react@18.3.1): dependencies: get-nonce: 1.0.1 react: 18.3.1 @@ -16294,14 +15613,6 @@ snapshots: optionalDependencies: '@types/react': 18.3.18 - react-style-singleton@2.2.3(@types/react@19.0.8)(react@19.0.0): - dependencies: - get-nonce: 1.0.1 - react: 19.0.0 - tslib: 2.8.1 - optionalDependencies: - '@types/react': 19.0.8 - react-test-renderer@19.0.0(react@19.0.0): dependencies: react: 19.0.0 @@ -16437,7 +15748,7 @@ snapshots: transitivePeerDependencies: - supports-color - remark-gfm@4.0.0: + remark-gfm@4.0.1: dependencies: '@types/mdast': 4.0.4 mdast-util-gfm: 3.0.0 @@ -16597,12 +15908,6 @@ snapshots: scheduler@0.25.0: {} - schema-utils@3.3.0: - dependencies: - '@types/json-schema': 7.0.15 - ajv: 6.12.6 - ajv-keywords: 3.5.2(ajv@6.12.6) - schema-utils@4.3.0: dependencies: '@types/json-schema': 7.0.15 @@ -16724,6 +16029,10 @@ snapshots: sisteransi@1.0.5: {} + skin-tone@2.0.0: + dependencies: + unicode-emoji-modifier-base: 1.0.0 + slash@3.0.0: {} smart-buffer@4.2.0: {} @@ -16812,11 +16121,11 @@ snapshots: - supports-color - utf-8-validate - storybook@8.5.3(prettier@3.4.2): + storybook@8.6.10(prettier@2.8.8): dependencies: - '@storybook/core': 8.5.3(prettier@3.4.2) + '@storybook/core': 8.6.10(prettier@2.8.8)(storybook@8.6.10(prettier@2.8.8)) optionalDependencies: - prettier: 3.4.2 + prettier: 2.8.8 transitivePeerDependencies: - bufferutil - supports-color @@ -16894,6 +16203,11 @@ snapshots: dependencies: has-flag: 4.0.0 + supports-hyperlinks@3.2.0: + dependencies: + has-flag: 4.0.0 + supports-color: 7.2.0 + supports-preserve-symlinks-flag@1.0.0: {} symbol-tree@3.2.4: {} @@ -16999,7 +16313,7 @@ snapshots: tinyexec@0.3.2: {} - tinyglobby@0.2.10: + tinyglobby@0.2.12: dependencies: fdir: 6.4.3(picomatch@4.0.2) picomatch: 4.0.2 @@ -17051,7 +16365,7 @@ snapshots: dependencies: punycode: 2.3.1 - tr46@5.0.0: + tr46@5.1.0: dependencies: punycode: 2.3.1 @@ -17063,19 +16377,15 @@ snapshots: trough@2.2.0: {} - ts-api-utils@1.4.3(typescript@5.7.2): - dependencies: - typescript: 5.7.2 - - ts-api-utils@2.0.1(typescript@5.7.3): + ts-api-utils@2.0.1(typescript@5.8.2): dependencies: - typescript: 5.7.3 + typescript: 5.8.2 ts-dedent@2.2.0: {} ts-interface-checker@0.1.13: {} - tsc-alias@1.8.10: + tsc-alias@1.8.11: dependencies: chokidar: 3.6.0 commander: 9.5.0 @@ -17098,27 +16408,27 @@ snapshots: tslib@2.8.1: {} - tsup@8.3.6(postcss@8.5.1)(typescript@5.7.3)(yaml@2.6.1): + tsup@8.4.0(postcss@8.5.3)(typescript@5.8.2)(yaml@2.7.0): dependencies: - bundle-require: 5.1.0(esbuild@0.24.2) + bundle-require: 5.1.0(esbuild@0.25.1) cac: 6.7.14 chokidar: 4.0.3 - consola: 3.2.3 + consola: 3.4.0 debug: 4.4.0 - esbuild: 0.24.2 + esbuild: 0.25.1 joycon: 3.1.1 picocolors: 1.1.1 - postcss-load-config: 6.0.1(postcss@8.5.1)(yaml@2.6.1) + postcss-load-config: 6.0.1(postcss@8.5.3)(yaml@2.7.0) resolve-from: 5.0.0 - rollup: 4.32.0 + rollup: 4.35.0 source-map: 0.8.0-beta.0 sucrase: 3.35.0 tinyexec: 0.3.2 - tinyglobby: 0.2.10 + tinyglobby: 0.2.12 tree-kill: 1.2.2 optionalDependencies: - postcss: 8.5.1 - typescript: 5.7.3 + postcss: 8.5.3 + typescript: 5.8.2 transitivePeerDependencies: - jiti - supports-color @@ -17162,18 +16472,20 @@ snapshots: typedarray@0.0.6: {} - typescript-eslint@8.23.0(eslint@9.19.0)(typescript@5.7.3): + typescript-eslint@8.28.0(eslint@9.23.0)(typescript@5.8.2): dependencies: - '@typescript-eslint/eslint-plugin': 8.23.0(@typescript-eslint/parser@8.23.0(eslint@9.19.0)(typescript@5.7.3))(eslint@9.19.0)(typescript@5.7.3) - '@typescript-eslint/parser': 8.23.0(eslint@9.19.0)(typescript@5.7.3) - '@typescript-eslint/utils': 8.23.0(eslint@9.19.0)(typescript@5.7.3) - eslint: 9.19.0 - typescript: 5.7.3 + '@typescript-eslint/eslint-plugin': 8.28.0(@typescript-eslint/parser@8.28.0(eslint@9.23.0)(typescript@5.8.2))(eslint@9.23.0)(typescript@5.8.2) + '@typescript-eslint/parser': 8.28.0(eslint@9.23.0)(typescript@5.8.2) + '@typescript-eslint/utils': 8.28.0(eslint@9.23.0)(typescript@5.8.2) + eslint: 9.23.0 + typescript: 5.8.2 transitivePeerDependencies: - supports-color typescript@4.9.5: {} + typescript@5.6.1-rc: {} + typescript@5.8.2: {} ufo@1.5.4: {} @@ -17187,6 +16499,8 @@ snapshots: unicode-canonical-property-names-ecmascript@2.0.1: {} + unicode-emoji-modifier-base@1.0.0: {} + unicode-match-property-ecmascript@2.0.0: dependencies: unicode-canonical-property-names-ecmascript: 2.0.1 @@ -17302,6 +16616,10 @@ snapshots: escalade: 3.2.0 picocolors: 1.1.1 + uri-js@4.4.1: + dependencies: + punycode: 2.3.1 + url-parse@1.5.10: dependencies: querystringify: 2.2.0 @@ -17314,26 +16632,13 @@ snapshots: optionalDependencies: '@types/react': 18.3.18 - use-callback-ref@1.3.3(@types/react@19.0.8)(react@19.0.0): - dependencies: - react: 19.0.0 - tslib: 2.8.1 - optionalDependencies: - '@types/react': 19.0.8 - use-resize-observer@9.1.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1): dependencies: '@juggle/resize-observer': 3.4.0 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - use-resize-observer@9.1.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0): - dependencies: - '@juggle/resize-observer': 3.4.0 - react: 19.0.0 - react-dom: 19.0.0(react@19.0.0) - - use-sidecar@1.1.3(@types/react@18.3.17)(react@18.3.1): + use-sidecar@1.1.3(@types/react@18.3.18)(react@18.3.1): dependencies: detect-node-es: 1.1.0 react: 18.3.1 @@ -17341,14 +16646,6 @@ snapshots: optionalDependencies: '@types/react': 18.3.18 - use-sidecar@1.1.3(@types/react@19.0.8)(react@19.0.0): - dependencies: - detect-node-es: 1.1.0 - react: 19.0.0 - tslib: 2.8.1 - optionalDependencies: - '@types/react': 19.0.8 - util-deprecate@1.0.2: {} util@0.12.5: @@ -17403,13 +16700,13 @@ snapshots: '@types/unist': 3.0.3 vfile-message: 4.0.2 - vite-node@3.0.4(@types/node@22.12.0)(terser@5.37.0)(yaml@2.6.1): + vite-node@3.0.9(@types/node@22.13.14)(terser@5.39.0)(yaml@2.7.0): dependencies: cac: 6.7.14 debug: 4.4.0 es-module-lexer: 1.6.0 - pathe: 2.0.2 - vite: 6.1.0(@types/node@22.12.0)(terser@5.37.0)(yaml@2.6.1) + pathe: 2.0.3 + vite: 6.2.3(@types/node@22.13.14)(terser@5.39.0)(yaml@2.7.0) transitivePeerDependencies: - '@types/node' - jiti @@ -17424,82 +16721,60 @@ snapshots: - tsx - yaml - vite-tsconfig-paths@5.1.4(typescript@5.8.2)(vite@6.2.2(@types/node@22.13.10)(terser@5.39.0)(yaml@2.7.0)): + vite-tsconfig-paths@5.1.4(typescript@5.8.2)(vite@6.2.2(@types/node@22.13.14)(terser@5.39.0)(yaml@2.7.0)): dependencies: debug: 4.4.0 globrex: 0.1.2 tsconfck: 3.1.5(typescript@5.8.2) optionalDependencies: - vite: 6.2.2(@types/node@22.13.10)(terser@5.39.0)(yaml@2.7.0) - transitivePeerDependencies: - - supports-color - - typescript - - vite@6.2.2(@types/node@22.13.10)(terser@5.39.0)(yaml@2.7.0): - dependencies: - esbuild: 0.25.1 - postcss: 8.5.3 - rollup: 4.35.0 - optionalDependencies: - vite: 6.0.11(@types/node@22.12.0)(terser@5.37.0)(yaml@2.6.1) + vite: 6.2.2(@types/node@22.13.14)(terser@5.39.0)(yaml@2.7.0) transitivePeerDependencies: - supports-color - typescript - vite-tsconfig-paths@5.1.4(typescript@5.7.3)(vite@6.1.0(@types/node@22.12.0)(terser@5.37.0)(yaml@2.6.1)): + vite-tsconfig-paths@5.1.4(typescript@5.8.2)(vite@6.2.3(@types/node@22.13.14)(terser@5.39.0)(yaml@2.7.0)): dependencies: debug: 4.4.0 globrex: 0.1.2 - tsconfck: 3.1.4(typescript@5.7.3) + tsconfck: 3.1.5(typescript@5.8.2) optionalDependencies: - vite: 6.1.0(@types/node@22.12.0)(terser@5.37.0)(yaml@2.6.1) + vite: 6.2.3(@types/node@22.13.14)(terser@5.39.0)(yaml@2.7.0) transitivePeerDependencies: - supports-color - typescript - vite@5.4.11(@types/node@22.12.0)(terser@5.37.0): + vite@6.2.2(@types/node@22.13.14)(terser@5.39.0)(yaml@2.7.0): dependencies: - esbuild: 0.21.5 - postcss: 8.4.49 - rollup: 4.28.1 + esbuild: 0.25.1 + postcss: 8.5.3 + rollup: 4.35.0 optionalDependencies: - '@types/node': 22.12.0 + '@types/node': 22.13.14 fsevents: 2.3.3 terser: 5.39.0 yaml: 2.7.0 - vitest@3.0.8(@types/debug@4.1.12)(@types/node@22.13.10)(jsdom@26.0.0)(msw@2.7.3(@types/node@22.13.10)(typescript@5.8.2))(terser@5.39.0)(yaml@2.7.0): + vite@6.2.3(@types/node@22.13.14)(terser@5.39.0)(yaml@2.7.0): dependencies: - esbuild: 0.24.2 - postcss: 8.5.1 - rollup: 4.32.0 + esbuild: 0.25.1 + postcss: 8.5.3 + rollup: 4.35.0 optionalDependencies: - '@types/node': 22.12.0 + '@types/node': 22.13.14 fsevents: 2.3.3 - terser: 5.37.0 - yaml: 2.6.1 + terser: 5.39.0 + yaml: 2.7.0 - vite@6.1.0(@types/node@22.12.0)(terser@5.37.0)(yaml@2.6.1): + vitest@3.0.9(@types/debug@4.1.12)(@types/node@22.13.14)(jsdom@26.0.0)(msw@2.7.3(@types/node@22.13.14)(typescript@5.8.2))(terser@5.39.0)(yaml@2.7.0): dependencies: - esbuild: 0.24.2 - postcss: 8.5.1 - rollup: 4.32.0 - optionalDependencies: - '@types/node': 22.12.0 - fsevents: 2.3.3 - terser: 5.37.0 - yaml: 2.6.1 - - vitest@3.0.4(@types/debug@4.1.12)(@types/node@22.12.0)(jsdom@26.0.0)(msw@2.7.0(@types/node@22.12.0)(typescript@5.7.3))(terser@5.37.0)(yaml@2.6.1): - dependencies: - '@vitest/expect': 3.0.4 - '@vitest/mocker': 3.0.4(msw@2.7.0(@types/node@22.12.0)(typescript@5.7.3))(vite@6.0.11(@types/node@22.12.0)(terser@5.37.0)(yaml@2.6.1)) - '@vitest/pretty-format': 3.0.4 - '@vitest/runner': 3.0.4 - '@vitest/snapshot': 3.0.4 - '@vitest/spy': 3.0.4 - '@vitest/utils': 3.0.4 - chai: 5.1.2 + '@vitest/expect': 3.0.9 + '@vitest/mocker': 3.0.9(msw@2.7.3(@types/node@22.13.14)(typescript@5.8.2))(vite@6.2.3(@types/node@22.13.14)(terser@5.39.0)(yaml@2.7.0)) + '@vitest/pretty-format': 3.0.9 + '@vitest/runner': 3.0.9 + '@vitest/snapshot': 3.0.9 + '@vitest/spy': 3.0.9 + '@vitest/utils': 3.0.9 + chai: 5.2.0 debug: 4.4.0 expect-type: 1.2.0 magic-string: 0.30.17 @@ -17509,12 +16784,12 @@ snapshots: tinyexec: 0.3.2 tinypool: 1.0.2 tinyrainbow: 2.0.0 - vite: 6.2.2(@types/node@22.13.10)(terser@5.39.0)(yaml@2.7.0) - vite-node: 3.0.8(@types/node@22.13.10)(terser@5.39.0)(yaml@2.7.0) + vite: 6.2.3(@types/node@22.13.14)(terser@5.39.0)(yaml@2.7.0) + vite-node: 3.0.9(@types/node@22.13.14)(terser@5.39.0)(yaml@2.7.0) why-is-node-running: 2.3.0 optionalDependencies: '@types/debug': 4.1.12 - '@types/node': 22.13.10 + '@types/node': 22.13.14 jsdom: 26.0.0 transitivePeerDependencies: - jiti @@ -17653,6 +16928,8 @@ snapshots: dependencies: string-width: 4.2.3 + word-wrap@1.2.5: {} + wordwrap@1.0.0: {} wrap-ansi@6.2.0: From bc93a9e4a95882162e74dba4818846b4c40acb1c Mon Sep 17 00:00:00 2001 From: Alessandro Casazza Date: Thu, 27 Mar 2025 11:14:55 +0100 Subject: [PATCH 06/10] Fix vite types env --- packages/core/extender.ts | 5 +++-- packages/core/vite-env.d.ts | 11 +++++++++++ 2 files changed, 14 insertions(+), 2 deletions(-) create mode 100644 packages/core/vite-env.d.ts diff --git a/packages/core/extender.ts b/packages/core/extender.ts index 3a6f35be..60eac721 100644 --- a/packages/core/extender.ts +++ b/packages/core/extender.ts @@ -4,10 +4,11 @@ import { getAccessToken } from "./src/auth/getAccessToken.js" const clientId = import.meta.env.VITE_SALES_CHANNEL_CLIENT_ID const scope = import.meta.env.VITE_SALES_CHANNEL_SCOPE const domain = import.meta.env.VITE_DOMAIN -let accessToken: ReturnType = undefined +let accessToken: Awaited> | undefined = + undefined export const coreTest = test.extend({ - accessToken: async ({ _ }, use) => { + accessToken: async (_props, use) => { if (accessToken == null) { accessToken = await getAccessToken({ grantType: "client_credentials", diff --git a/packages/core/vite-env.d.ts b/packages/core/vite-env.d.ts new file mode 100644 index 00000000..2745e011 --- /dev/null +++ b/packages/core/vite-env.d.ts @@ -0,0 +1,11 @@ +/// + +interface ImportMetaEnv { + readonly VITE_SALES_CHANNEL_CLIENT_ID: string + readonly VITE_SALES_CHANNEL_SCOPE: string + readonly VITE_DOMAIN: string +} + +interface ImportMeta { + readonly env: ImportMetaEnv +} From 03971c4128a46d0e83d99323fcabc241ce3e03ad Mon Sep 17 00:00:00 2001 From: Alessandro Casazza Date: Tue, 1 Apr 2025 15:24:48 +0200 Subject: [PATCH 07/10] Fix relative path for vitest --- packages/core/extender.ts | 12 ++++- packages/core/src/auth/getAccessToken.spec.ts | 33 +++++++----- packages/core/src/prices/getPrices.spec.ts | 47 +++++++++-------- packages/core/src/prices/getPrices.ts | 4 +- packages/core/src/sdk/index.ts | 2 +- packages/core/src/types/index.ts | 4 +- packages/core/tsconfig.json | 3 +- packages/core/vitest.config.ts | 2 + packages/document/package.json | 52 +++++++++---------- packages/react-components/package.json | 34 ++++++------ pnpm-lock.yaml | 4 +- 11 files changed, 110 insertions(+), 87 deletions(-) diff --git a/packages/core/extender.ts b/packages/core/extender.ts index 60eac721..d58d0fd8 100644 --- a/packages/core/extender.ts +++ b/packages/core/extender.ts @@ -7,8 +7,18 @@ const domain = import.meta.env.VITE_DOMAIN let accessToken: Awaited> | undefined = undefined +export interface CoreTestInterface { + accessToken: Awaited> + config: { + clientId: string + scope: string + domain: string + } +} + export const coreTest = test.extend({ - accessToken: async (_props, use) => { + // biome-ignore lint/correctness/noEmptyPattern: need to object destructure as the first argument + accessToken: async ({}, use) => { if (accessToken == null) { accessToken = await getAccessToken({ grantType: "client_credentials", diff --git a/packages/core/src/auth/getAccessToken.spec.ts b/packages/core/src/auth/getAccessToken.spec.ts index a57d0a39..9e9f1f36 100644 --- a/packages/core/src/auth/getAccessToken.spec.ts +++ b/packages/core/src/auth/getAccessToken.spec.ts @@ -1,6 +1,6 @@ import { authenticate } from "@commercelayer/js-auth" import { describe, expect, vi } from "vitest" -import { coreTest } from "../../extender" +import { type CoreTestInterface, coreTest } from "#extender" import { getAccessToken } from "./getAccessToken" vi.mock("@commercelayer/js-auth", () => ({ @@ -8,12 +8,13 @@ vi.mock("@commercelayer/js-auth", () => ({ })) describe("getAccessToken", () => { - coreTest( + coreTest( "should call authenticate with the correct parameters", async ({ accessToken, config }) => { const token = accessToken?.accessToken const grantType = "client_credentials" const mockToken = { accessToken: token } + // @ts-expect-error mockResolvedValue is not defined authenticate.mockResolvedValue(mockToken) const result = await getAccessToken({ grantType, config }) await expect(authenticate).toHaveBeenCalledWith(grantType, config) @@ -23,16 +24,20 @@ describe("getAccessToken", () => { }, ) - coreTest("should throw an error if authenticate fails", async () => { - const grantType = "client_credentials" - const config = { - clientId: "test-client-id", - clientSecret: "test-client-secret", - } - const mockError = new Error("Authentication failed") - authenticate.mockRejectedValue(mockError) - await expect(getAccessToken({ grantType, config })).rejects.toThrow( - "Authentication failed", - ) - }) + coreTest( + "should throw an error if authenticate fails", + async () => { + const grantType = "client_credentials" + const config = { + clientId: "test-client-id", + clientSecret: "test-client-secret", + } + const mockError = new Error("Authentication failed") + // @ts-expect-error mockResolvedValue is not defined + authenticate.mockRejectedValue(mockError) + await expect(getAccessToken({ grantType, config })).rejects.toThrow( + "Authentication failed", + ) + }, + ) }) diff --git a/packages/core/src/prices/getPrices.spec.ts b/packages/core/src/prices/getPrices.spec.ts index bcef04c2..3570319c 100644 --- a/packages/core/src/prices/getPrices.spec.ts +++ b/packages/core/src/prices/getPrices.spec.ts @@ -1,30 +1,35 @@ import type { QueryFilter } from "@commercelayer/sdk" import { describe, expect } from "vitest" -import { coreTest } from "../../extender.js" +import { type CoreTestInterface, coreTest } from "#extender" import { getPrices } from "./getPrices.js" describe("getPrices", () => { - coreTest("should return a list of prices", async ({ accessToken }) => { - const token = accessToken?.accessToken - const result = await getPrices({ accessToken: token }) - expect(result).toBeDefined() - }) + coreTest( + "should return a list of prices", + async ({ accessToken }) => { + const token = accessToken?.accessToken + const result = await getPrices({ accessToken: token }) + expect(result).toBeDefined() + }, + ) - coreTest("should return a single price", async ({ accessToken }) => { - const token = accessToken?.accessToken - const params: QueryFilter = { - filters: { - sku_code_eq: "DIGITALPRODUCT", - }, - } - - // Call the getPrices function - const result = await getPrices({ accessToken: token, ...params }) - // Assert the expected result - expect(result).toBeDefined() - expect(result.getRecordCount()).toBe(1) - // Add more assertions based on the expected behavior of the getPrices function - }) + coreTest( + "should return a single price", + async ({ accessToken }) => { + const token = accessToken?.accessToken + const params: QueryFilter = { + filters: { + sku_code_eq: "DIGITALPRODUCT", + }, + } + // Call the getPrices function + const result = await getPrices({ accessToken: token, ...params }) + // Assert the expected result + expect(result).toBeDefined() + expect(result.getRecordCount()).toBe(1) + // Add more assertions based on the expected behavior of the getPrices function + }, + ) // Add more test cases for different scenarios }) diff --git a/packages/core/src/prices/getPrices.ts b/packages/core/src/prices/getPrices.ts index 7586f706..bc13fcd9 100644 --- a/packages/core/src/prices/getPrices.ts +++ b/packages/core/src/prices/getPrices.ts @@ -1,6 +1,6 @@ import type { ListResponse, Price, QueryParamsList } from "@commercelayer/sdk" -import { getSdk } from "../sdk/index.js" -import type { RequestConfig } from "../types/index.js" +import { getSdk } from "#sdk" +import type { RequestConfig } from "#types" type GetPricesParams = RequestConfig & QueryParamsList diff --git a/packages/core/src/sdk/index.ts b/packages/core/src/sdk/index.ts index d9caedfc..786e0637 100644 --- a/packages/core/src/sdk/index.ts +++ b/packages/core/src/sdk/index.ts @@ -1,6 +1,6 @@ import sdk, { type CommerceLayerClient } from "@commercelayer/sdk" import { jwtDecode } from "jwt-decode" -import type { Jwt, RequestConfig } from "src/types/index.js" +import type { Jwt, RequestConfig } from "#types" export function getSdk({ accessToken }: RequestConfig): CommerceLayerClient { const organization = jwtDecode(accessToken).organization.slug diff --git a/packages/core/src/types/index.ts b/packages/core/src/types/index.ts index 93bd730f..d23de71e 100644 --- a/packages/core/src/types/index.ts +++ b/packages/core/src/types/index.ts @@ -1,2 +1,2 @@ -export type { RequestConfig } from './base.js' -export type { Jwt } from './jwt.js' +export type { RequestConfig } from "./base" +export type { Jwt } from "./jwt" diff --git a/packages/core/tsconfig.json b/packages/core/tsconfig.json index 9c1f4f07..098e3c6d 100644 --- a/packages/core/tsconfig.json +++ b/packages/core/tsconfig.json @@ -23,7 +23,8 @@ "baseUrl": ".", "paths": { "#sdk": ["src/sdk/index.ts"], - "#types": ["src/types/index.ts"] + "#types": ["src/types/index.ts"], + "#extender": ["extender.ts"] } }, "exclude": ["node_modules", "dist", "coverage", "*.spec.ts"] diff --git a/packages/core/vitest.config.ts b/packages/core/vitest.config.ts index a455d010..3c65cd6d 100644 --- a/packages/core/vitest.config.ts +++ b/packages/core/vitest.config.ts @@ -1,3 +1,4 @@ +import tsconfigPaths from "vite-tsconfig-paths" import { defineConfig } from "vitest/config" export default defineConfig({ @@ -9,4 +10,5 @@ export default defineConfig({ reporter: ["text", "json", "html"], }, }, + plugins: [tsconfigPaths()], }) diff --git a/packages/document/package.json b/packages/document/package.json index f179175e..a15856ef 100644 --- a/packages/document/package.json +++ b/packages/document/package.json @@ -16,33 +16,33 @@ "react-dom": "^19.0.0" }, "devDependencies": { - "@chromatic-com/storybook": "^3.2.4", - "@eslint/js": "^9.19.0", - "@storybook/addon-docs": "^7.6.17", - "@storybook/addon-essentials": "^8.5.3", - "@storybook/addon-interactions": "^8.5.3", - "@storybook/addon-links": "^7.6.17", - "@storybook/addon-mdx-gfm": "^8.5.3", - "@storybook/addon-onboarding": "^8.5.3", - "@storybook/blocks": "^8.5.3", - "@storybook/react": "^8.5.3", - "@storybook/react-vite": "^8.5.3", - "@storybook/test": "^8.5.3", - "@storybook/theming": "^8.5.3", - "@types/react": "^19.0.8", - "@types/react-dom": "^19.0.3", + "@chromatic-com/storybook": "^3.2.6", + "@eslint/js": "^9.23.0", + "@storybook/addon-docs": "^8.6.10", + "@storybook/addon-essentials": "^8.6.10", + "@storybook/addon-interactions": "^8.6.10", + "@storybook/addon-links": "^8.6.10", + "@storybook/addon-mdx-gfm": "^8.6.10", + "@storybook/addon-onboarding": "^8.6.10", + "@storybook/blocks": "^8.6.10", + "@storybook/react": "^8.6.10", + "@storybook/react-vite": "^8.6.10", + "@storybook/test": "^8.6.10", + "@storybook/theming": "^8.6.10", + "@types/react": "^19.0.12", + "@types/react-dom": "^19.0.4", "@vitejs/plugin-react": "^4.3.4", - "eslint": "^9.19.0", - "eslint-plugin-react-hooks": "^5.0.0", - "eslint-plugin-react-refresh": "^0.4.18", - "eslint-plugin-storybook": "^0.11.2", - "globals": "^15.14.0", - "msw": "^2.7.0", - "remark-gfm": "^4.0.0", - "storybook": "^8.5.3", - "typescript": "~5.7.2", - "typescript-eslint": "^8.22.0", - "vite": "^6.1.0", + "eslint": "^9.23.0", + "eslint-plugin-react-hooks": "^5.2.0", + "eslint-plugin-react-refresh": "^0.4.19", + "eslint-plugin-storybook": "^0.12.0", + "globals": "^16.0.0", + "msw": "^2.7.3", + "remark-gfm": "^4.0.1", + "storybook": "^8.6.10", + "typescript": "~5.8.2", + "typescript-eslint": "^8.28.0", + "vite": "^6.2.3", "vite-tsconfig-paths": "^5.1.4" }, "eslintConfig": { diff --git a/packages/react-components/package.json b/packages/react-components/package.json index d4ede5ee..f982e2c6 100644 --- a/packages/react-components/package.json +++ b/packages/react-components/package.json @@ -157,14 +157,14 @@ }, "homepage": "https://github.com/commercelayer/commercelayer-react-components#readme", "dependencies": { - "@adyen/adyen-web": "^6.9.0", + "@adyen/adyen-web": "^6.11.0", "@commercelayer/organization-config": "^2.2.0", - "@commercelayer/sdk": "^6.34.0", - "@stripe/react-stripe-js": "^3.3.0", - "@stripe/stripe-js": "^5.9.2", + "@commercelayer/sdk": "^6.36.0", + "@stripe/react-stripe-js": "^3.5.1", + "@stripe/stripe-js": "^6.1.0", "@tanstack/react-table": "^8.21.2", - "@types/iframe-resizer": "^3.5.13", - "braintree-web": "^3.115.2", + "@types/iframe-resizer": "^4.0.0", + "braintree-web": "^3.117.1", "frames-react": "^1.2.2", "iframe-resizer": "^4.3.6", "jwt-decode": "^4.0.0", @@ -173,31 +173,31 @@ }, "devDependencies": { "@commercelayer/js-auth": "^6.7.1", - "@faker-js/faker": "^9.5.1", - "@playwright/test": "^1.50.1", + "@faker-js/faker": "^9.6.0", + "@playwright/test": "^1.51.1", "@testing-library/dom": "^10.4.0", "@testing-library/react": "^16.2.0", - "@types/braintree-web": "^3.96.16", + "@types/braintree-web": "^3.96.17", "@types/lodash": "^4.17.16", - "@types/node": "^22.13.9", + "@types/node": "^22.13.14", "@types/prop-types": "^15.7.14", - "@types/react": "^19.0.8", + "@types/react": "^19.0.12", "@types/react-test-renderer": "^19.0.0", "@types/react-window": "^1.8.8", "@vitejs/plugin-react": "^4.3.4", - "@vitest/coverage-v8": "^3.0.7", + "@vitest/coverage-v8": "^3.0.9", "jsdom": "^26.0.0", "minimize-js": "^1.4.0", "msw": "^2.7.3", - "react": "^18.3.1", - "react-dom": "^18.3.1", - "react-test-renderer": "^18.3.1", + "react": "^19.0.0", + "react-dom": "^19.0.0", + "react-test-renderer": "^19.0.0", "tsc-alias": "^1.8.11", "tslib": "^2.8.1", "typescript": "^5.8.2", - "vite": "^6.2.0", + "vite": "^6.2.3", "vite-tsconfig-paths": "^5.1.4", - "vitest": "^3.0.7" + "vitest": "^3.0.9" }, "peerDependencies": { "react": ">=18.0.0" diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 0d4206b6..cabb29ae 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -3192,7 +3192,7 @@ packages: resolution: {integrity: sha512-SCCPBJtYLdE8PX/7ZQAs1QAZ8Jqwih+0VBLum1EGqmCCQal+MIUqLCzj3ZUy8ufbC0cAM4LRlSTm7IQJwWT4ug==} engines: {node: ^14.18.0 || >=16.0.0} peerDependencies: - vite: '>=5.1.7' + vite: '>=4.5.2' '@vitest/coverage-v8@3.0.9': resolution: {integrity: sha512-15OACZcBtQ34keIEn19JYTVuMFTlFrClclwWjHo/IRPg/8ELpkgNTl0o7WLP9WO9XGH6+tip9CPYtEOrIDJvBA==} @@ -7650,7 +7650,7 @@ packages: vite-tsconfig-paths@5.1.4: resolution: {integrity: sha512-cYj0LRuLV2c2sMqhqhGpaO3LretdtMn/BVX4cPLanIZuwwrkVl+lK84E/miEXkCHWXuq65rhNN4rXsBcOB3S4w==} peerDependencies: - vite: '>=5.1.7' + vite: '>=4.5.2' peerDependenciesMeta: vite: optional: true From 0de1a66b9f5c7b7f34cb4181425eeadc7c7ae2cf Mon Sep 17 00:00:00 2001 From: Alessandro Casazza Date: Tue, 1 Apr 2025 16:33:28 +0200 Subject: [PATCH 08/10] Remove ts comment --- packages/core/src/auth/getAccessToken.spec.ts | 2 -- 1 file changed, 2 deletions(-) diff --git a/packages/core/src/auth/getAccessToken.spec.ts b/packages/core/src/auth/getAccessToken.spec.ts index 9e9f1f36..efaee5bd 100644 --- a/packages/core/src/auth/getAccessToken.spec.ts +++ b/packages/core/src/auth/getAccessToken.spec.ts @@ -14,7 +14,6 @@ describe("getAccessToken", () => { const token = accessToken?.accessToken const grantType = "client_credentials" const mockToken = { accessToken: token } - // @ts-expect-error mockResolvedValue is not defined authenticate.mockResolvedValue(mockToken) const result = await getAccessToken({ grantType, config }) await expect(authenticate).toHaveBeenCalledWith(grantType, config) @@ -33,7 +32,6 @@ describe("getAccessToken", () => { clientSecret: "test-client-secret", } const mockError = new Error("Authentication failed") - // @ts-expect-error mockResolvedValue is not defined authenticate.mockRejectedValue(mockError) await expect(getAccessToken({ grantType, config })).rejects.toThrow( "Authentication failed", From fe27e1ccd5a83b005386fcbd33d3f5e918efc214 Mon Sep 17 00:00:00 2001 From: Alessandro Casazza Date: Wed, 2 Apr 2025 11:34:49 +0200 Subject: [PATCH 09/10] Add retrievePrice function. Resolve #621 --- .../core/src/prices/retrievePrice.spec.ts | 27 +++++++++++++++++++ packages/core/src/prices/retrievePrice.ts | 23 ++++++++++++++++ 2 files changed, 50 insertions(+) create mode 100644 packages/core/src/prices/retrievePrice.spec.ts create mode 100644 packages/core/src/prices/retrievePrice.ts diff --git a/packages/core/src/prices/retrievePrice.spec.ts b/packages/core/src/prices/retrievePrice.spec.ts new file mode 100644 index 00000000..cb909ce1 --- /dev/null +++ b/packages/core/src/prices/retrievePrice.spec.ts @@ -0,0 +1,27 @@ +import type { QueryFilter } from "@commercelayer/sdk" +import { describe, expect } from "vitest" +import { type CoreTestInterface, coreTest } from "#extender" +import { getPrices } from "./getPrices.js" +import { retrievePrice } from "./retrievePrice.js" + +describe("retrievePrice", () => { + coreTest( + "should return a single price", + async ({ accessToken }) => { + const token = accessToken?.accessToken + const firstPrice = (await getPrices({ accessToken: token })).first() + expect(firstPrice).toBeDefined() + if (!firstPrice) { + throw new Error("No price found") + } + const id = firstPrice?.id + const result = await retrievePrice({ + id: id, + accessToken: token, + }) + expect(result).toBeDefined() + expect(result.id).toBe(id) + expect(result.sku_code).toBe(firstPrice.sku_code) + }, + ) +}) diff --git a/packages/core/src/prices/retrievePrice.ts b/packages/core/src/prices/retrievePrice.ts new file mode 100644 index 00000000..b7ce0786 --- /dev/null +++ b/packages/core/src/prices/retrievePrice.ts @@ -0,0 +1,23 @@ +import type { + ListResponse, + Price, + QueryParamsList, + QueryParamsRetrieve, +} from "@commercelayer/sdk" +import { getSdk } from "#sdk" +import type { RequestConfig } from "#types" + +interface RetrievePrice extends RequestConfig { + id: string +} + +type RetrievePriceParams = RetrievePrice & QueryParamsRetrieve + +export async function retrievePrice({ + accessToken, + id, + ...params +}: RetrievePriceParams): Promise { + const sdk = getSdk({ accessToken }) + return await sdk.prices.retrieve(id, params) +} From e29a3d570b189ee03c4f2c8cca05dfdb357612a6 Mon Sep 17 00:00:00 2001 From: Alessandro Casazza Date: Tue, 22 Apr 2025 17:37:37 +0200 Subject: [PATCH 10/10] Add updatePrice function, and tests, remove package jwt-decode --- package.json | 12 +- packages/core/extender.ts | 34 +- packages/core/package.json | 11 +- packages/core/src/auth/getAccessToken.spec.ts | 33 +- packages/core/src/auth/getAccessToken.ts | 5 +- packages/core/src/prices/getPrices.spec.ts | 48 +- packages/core/src/prices/getPrices.ts | 27 +- .../core/src/prices/retrievePrice.spec.ts | 37 +- packages/core/src/prices/retrievePrice.ts | 22 +- packages/core/src/prices/updatePrice.spec.ts | 39 + packages/core/src/prices/updatePrice.ts | 33 + packages/core/src/sdk/index.ts | 24 +- packages/core/src/types/base.ts | 5 + packages/core/src/types/index.ts | 1 - packages/core/src/types/jwt.ts | 38 - packages/core/tsconfig.json | 1 + packages/core/vite-env.d.ts | 2 + packages/document/package.json | 46 +- pnpm-lock.yaml | 1301 +++++++++++------ 19 files changed, 1097 insertions(+), 622 deletions(-) create mode 100644 packages/core/src/prices/updatePrice.spec.ts create mode 100644 packages/core/src/prices/updatePrice.ts delete mode 100644 packages/core/src/types/jwt.ts diff --git a/package.json b/package.json index 464095d3..95ef0fc0 100644 --- a/package.json +++ b/package.json @@ -22,9 +22,9 @@ "devDependencies": { "@biomejs/biome": "1.9.4", "husky": "^9.1.7", - "lerna": "^8.2.1", - "typescript": "^5.8.2", - "vitest": "^3.0.9" + "lerna": "^8.2.2", + "typescript": "^5.8.3", + "vitest": "^3.1.1" }, "pnpm": { "overrides": { @@ -43,6 +43,10 @@ "micromatch@<4.0.8": ">=4.0.8", "rollup@>=4.0.0 <4.22.4": ">=4.22.4", "cross-spawn@>=7.0.0 <7.0.5": ">=7.0.5" - } + }, + "onlyBuiltDependencies": [ + "msw", + "nx" + ] } } diff --git a/packages/core/extender.ts b/packages/core/extender.ts index d58d0fd8..30006771 100644 --- a/packages/core/extender.ts +++ b/packages/core/extender.ts @@ -2,6 +2,8 @@ import { test } from "vitest" import { getAccessToken } from "./src/auth/getAccessToken.js" const clientId = import.meta.env.VITE_SALES_CHANNEL_CLIENT_ID +const integrationClientId = import.meta.env.VITE_INTEGRATION_CLIENT_ID +const integrationClientSecret = import.meta.env.VITE_INTEGRATION_CLIENT_SECRET const scope = import.meta.env.VITE_SALES_CHANNEL_SCOPE const domain = import.meta.env.VITE_DOMAIN let accessToken: Awaited> | undefined = @@ -11,12 +13,15 @@ export interface CoreTestInterface { accessToken: Awaited> config: { clientId: string - scope: string + scope?: string domain: string } } -export const coreTest = test.extend({ +/** + * This test is used to run integration tests with the sales channel client. + */ +export const coreTest = test.extend({ // biome-ignore lint/correctness/noEmptyPattern: need to object destructure as the first argument accessToken: async ({}, use) => { if (accessToken == null) { @@ -38,3 +43,28 @@ export const coreTest = test.extend({ domain, }, }) + +/** + * This test is used to run integration tests with the integration client. + */ +export const coreIntegrationTest = test.extend({ + // biome-ignore lint/correctness/noEmptyPattern: need to object destructure as the first argument + accessToken: async ({}, use) => { + if (accessToken == null) { + accessToken = await getAccessToken({ + grantType: "client_credentials", + config: { + clientId: integrationClientId, + clientSecret: integrationClientSecret, + domain, + }, + }) + } + use(accessToken) + accessToken = undefined + }, + config: { + clientId: integrationClientId, + domain, + }, +}) diff --git a/packages/core/package.json b/packages/core/package.json index 09d3e787..cb983630 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -32,15 +32,14 @@ "license": "MIT", "devDependencies": { "@arethetypeswrong/cli": "^0.17.4", - "@vitest/coverage-v8": "^3.0.9", + "@vitest/coverage-v8": "^3.1.1", "tsup": "^8.4.0", - "typescript": "^5.8.2", + "typescript": "^5.8.3", "vite-tsconfig-paths": "^5.1.4", - "vitest": "^3.0.9" + "vitest": "^3.1.1" }, "dependencies": { - "@commercelayer/js-auth": "^6.7.1", - "@commercelayer/sdk": "6.36.0", - "jwt-decode": "^4.0.0" + "@commercelayer/js-auth": "^6.7.2", + "@commercelayer/sdk": "6.39.0" } } diff --git a/packages/core/src/auth/getAccessToken.spec.ts b/packages/core/src/auth/getAccessToken.spec.ts index efaee5bd..415c3abb 100644 --- a/packages/core/src/auth/getAccessToken.spec.ts +++ b/packages/core/src/auth/getAccessToken.spec.ts @@ -1,6 +1,6 @@ import { authenticate } from "@commercelayer/js-auth" import { describe, expect, vi } from "vitest" -import { type CoreTestInterface, coreTest } from "#extender" +import { coreTest } from "#extender" import { getAccessToken } from "./getAccessToken" vi.mock("@commercelayer/js-auth", () => ({ @@ -8,12 +8,13 @@ vi.mock("@commercelayer/js-auth", () => ({ })) describe("getAccessToken", () => { - coreTest( + coreTest( "should call authenticate with the correct parameters", async ({ accessToken, config }) => { const token = accessToken?.accessToken const grantType = "client_credentials" const mockToken = { accessToken: token } + // @ts-expect-error No types for this function authenticate.mockResolvedValue(mockToken) const result = await getAccessToken({ grantType, config }) await expect(authenticate).toHaveBeenCalledWith(grantType, config) @@ -23,19 +24,17 @@ describe("getAccessToken", () => { }, ) - coreTest( - "should throw an error if authenticate fails", - async () => { - const grantType = "client_credentials" - const config = { - clientId: "test-client-id", - clientSecret: "test-client-secret", - } - const mockError = new Error("Authentication failed") - authenticate.mockRejectedValue(mockError) - await expect(getAccessToken({ grantType, config })).rejects.toThrow( - "Authentication failed", - ) - }, - ) + coreTest("should throw an error if authenticate fails", async () => { + const grantType = "client_credentials" + const config = { + clientId: "test-client-id", + clientSecret: "test-client-secret", + } + const mockError = new Error("Authentication failed") + // @ts-expect-error No types for this function + authenticate.mockRejectedValue(mockError) + await expect(getAccessToken({ grantType, config })).rejects.toThrow( + "Authentication failed", + ) + }) }) diff --git a/packages/core/src/auth/getAccessToken.ts b/packages/core/src/auth/getAccessToken.ts index 56d91815..97f41bfa 100644 --- a/packages/core/src/auth/getAccessToken.ts +++ b/packages/core/src/auth/getAccessToken.ts @@ -8,9 +8,8 @@ interface AuthenticateProps { /** * Retrieves an access token using the provided grant type and configuration. * - * @param {AuthenticateProps} params - The parameters for authentication. - * @param {string} params.grantType - The type of grant to use for authentication. - * @param {object} params.config - The configuration object for authentication. + * @param {AuthenticateProps['grantType']} grantType - The type of grant to use for authentication. + * @param {AuthenticateProps['config']} config - The configuration object for authentication. * @returns {Promise>} A promise that resolves to the access token. */ export async function getAccessToken({ diff --git a/packages/core/src/prices/getPrices.spec.ts b/packages/core/src/prices/getPrices.spec.ts index 3570319c..ac6369f8 100644 --- a/packages/core/src/prices/getPrices.spec.ts +++ b/packages/core/src/prices/getPrices.spec.ts @@ -1,35 +1,29 @@ -import type { QueryFilter } from "@commercelayer/sdk" +import type { Price, QueryParamsList } from "@commercelayer/sdk" import { describe, expect } from "vitest" -import { type CoreTestInterface, coreTest } from "#extender" +import { coreTest } from "#extender" import { getPrices } from "./getPrices.js" describe("getPrices", () => { - coreTest( - "should return a list of prices", - async ({ accessToken }) => { - const token = accessToken?.accessToken - const result = await getPrices({ accessToken: token }) - expect(result).toBeDefined() - }, - ) + coreTest("should return a list of prices", async ({ accessToken }) => { + const token = accessToken?.accessToken + const result = await getPrices({ accessToken: token }) + expect(result).toBeDefined() + }) - coreTest( - "should return a single price", - async ({ accessToken }) => { - const token = accessToken?.accessToken - const params: QueryFilter = { - filters: { - sku_code_eq: "DIGITALPRODUCT", - }, - } - // Call the getPrices function - const result = await getPrices({ accessToken: token, ...params }) - // Assert the expected result - expect(result).toBeDefined() - expect(result.getRecordCount()).toBe(1) - // Add more assertions based on the expected behavior of the getPrices function - }, - ) + coreTest("should return a single price", async ({ accessToken }) => { + const token = accessToken?.accessToken + const params = { + filters: { + sku_code_eq: "DIGITALPRODUCT", + }, + } satisfies QueryParamsList + // Call the getPrices function + const result = await getPrices({ accessToken: token, params }) + // Assert the expected result + expect(result).toBeDefined() + expect(result.getRecordCount()).toBe(1) + // Add more assertions based on the expected behavior of the getPrices function + }) // Add more test cases for different scenarios }) diff --git a/packages/core/src/prices/getPrices.ts b/packages/core/src/prices/getPrices.ts index bc13fcd9..53d9e737 100644 --- a/packages/core/src/prices/getPrices.ts +++ b/packages/core/src/prices/getPrices.ts @@ -1,13 +1,32 @@ -import type { ListResponse, Price, QueryParamsList } from "@commercelayer/sdk" +import type { + ListResponse, + Price, + QueryParamsList, + ResourcesConfig, +} from "@commercelayer/sdk" import { getSdk } from "#sdk" import type { RequestConfig } from "#types" -type GetPricesParams = RequestConfig & QueryParamsList +interface GetPrices extends RequestConfig { + params?: QueryParamsList + options?: ResourcesConfig +} + +type GetPricesParams = GetPrices +/** + * Get a list of prices + * + * @param {string} accessToken - The access token to use for authentication. + * @param {QueryParamsList} params - Optional query parameters for the request. + * @param {ResourcesConfig} options - Optional request configuration. + * @returns {Promise>} - A promise that resolves to a list of price resources. + */ export async function getPrices({ accessToken, - ...params + params, + options, }: GetPricesParams): Promise> { const sdk = getSdk({ accessToken }) - return await sdk.prices.list(params) + return await sdk.prices.list(params, options) } diff --git a/packages/core/src/prices/retrievePrice.spec.ts b/packages/core/src/prices/retrievePrice.spec.ts index cb909ce1..3d23ac7b 100644 --- a/packages/core/src/prices/retrievePrice.spec.ts +++ b/packages/core/src/prices/retrievePrice.spec.ts @@ -1,27 +1,24 @@ import type { QueryFilter } from "@commercelayer/sdk" import { describe, expect } from "vitest" -import { type CoreTestInterface, coreTest } from "#extender" +import { coreTest } from "#extender" import { getPrices } from "./getPrices.js" import { retrievePrice } from "./retrievePrice.js" describe("retrievePrice", () => { - coreTest( - "should return a single price", - async ({ accessToken }) => { - const token = accessToken?.accessToken - const firstPrice = (await getPrices({ accessToken: token })).first() - expect(firstPrice).toBeDefined() - if (!firstPrice) { - throw new Error("No price found") - } - const id = firstPrice?.id - const result = await retrievePrice({ - id: id, - accessToken: token, - }) - expect(result).toBeDefined() - expect(result.id).toBe(id) - expect(result.sku_code).toBe(firstPrice.sku_code) - }, - ) + coreTest("should return a single price", async ({ accessToken }) => { + const token = accessToken?.accessToken + const firstPrice = (await getPrices({ accessToken: token })).first() + expect(firstPrice).toBeDefined() + if (!firstPrice) { + throw new Error("No price found") + } + const id = firstPrice?.id + const result = await retrievePrice({ + id: id, + accessToken: token, + }) + expect(result).toBeDefined() + expect(result.id).toBe(id) + expect(result.sku_code).toBe(firstPrice.sku_code) + }) }) diff --git a/packages/core/src/prices/retrievePrice.ts b/packages/core/src/prices/retrievePrice.ts index b7ce0786..0167d569 100644 --- a/packages/core/src/prices/retrievePrice.ts +++ b/packages/core/src/prices/retrievePrice.ts @@ -1,23 +1,29 @@ -import type { - ListResponse, - Price, - QueryParamsList, - QueryParamsRetrieve, -} from "@commercelayer/sdk" +import type { Price, QueryParamsRetrieve } from "@commercelayer/sdk" import { getSdk } from "#sdk" import type { RequestConfig } from "#types" interface RetrievePrice extends RequestConfig { id: string + params?: QueryParamsRetrieve } type RetrievePriceParams = RetrievePrice & QueryParamsRetrieve +/** + * Retrieve a price + * + * @param {string} accessToken - The access token to use for authentication. + * @param {string} id - The ID of the price resource to retrieve. + * @param {QueryParamsRetrieve} params - Optional query parameters for the request. + * @param {RequestConfig} options - Optional request configuration. + * @returns {Promise} - The retrieved price resource. + */ export async function retrievePrice({ accessToken, id, - ...params + params, + options, }: RetrievePriceParams): Promise { const sdk = getSdk({ accessToken }) - return await sdk.prices.retrieve(id, params) + return await sdk.prices.retrieve(id, params, options) } diff --git a/packages/core/src/prices/updatePrice.spec.ts b/packages/core/src/prices/updatePrice.spec.ts new file mode 100644 index 00000000..716c18b5 --- /dev/null +++ b/packages/core/src/prices/updatePrice.spec.ts @@ -0,0 +1,39 @@ +import { describe, expect } from "vitest" +import { coreIntegrationTest } from "#extender" +import { getPrices } from "./getPrices" +import { updatePrice } from "./updatePrice" + +describe("updatePrice", () => { + coreIntegrationTest( + "should update a single price", + async ({ accessToken }) => { + const token = accessToken?.accessToken + const firstPrice = (await getPrices({ accessToken: token })).first() + expect(firstPrice).toBeDefined() + if (!firstPrice) { + throw new Error("No price found") + } + const id = firstPrice?.id + const result = await updatePrice({ + accessToken: token, + resource: { + id, + reference: "test-price", + }, + }) + expect(result).toBeDefined() + expect(result.id).toBe(id) + expect(result.reference).toBe("test-price") + const clean = await updatePrice({ + accessToken: token, + resource: { + id, + reference: "", + }, + }) + expect(clean).toBeDefined() + expect(clean.id).toBe(id) + expect(clean.reference).toBe("") + }, + ) +}) diff --git a/packages/core/src/prices/updatePrice.ts b/packages/core/src/prices/updatePrice.ts new file mode 100644 index 00000000..617c4e03 --- /dev/null +++ b/packages/core/src/prices/updatePrice.ts @@ -0,0 +1,33 @@ +import type { + Price, + PriceUpdate, + QueryParamsRetrieve, +} from "@commercelayer/sdk" +import { getSdk } from "#sdk" +import type { RequestConfig } from "#types" + +interface UpdatePrice extends RequestConfig { + resource: PriceUpdate + params?: QueryParamsRetrieve +} + +type UpdatePriceParams = UpdatePrice + +/** + * Update a price + * + * @param {string} accessToken - The access token to use for authentication, must be an integration application. + * @param {PriceUpdate} resource - The price resource to update. + * @param {QueryParamsRetrieve} params - Optional query parameters for the request. + * @param {RequestConfig} options - Optional request configuration. + * @returns {Promise} - The updated price resource. + */ +export async function updatePrice({ + accessToken, + resource, + params, + options, +}: UpdatePriceParams): Promise { + const sdk = getSdk({ accessToken }) + return await sdk.prices.update(resource, params, options) +} diff --git a/packages/core/src/sdk/index.ts b/packages/core/src/sdk/index.ts index 786e0637..2fe821ed 100644 --- a/packages/core/src/sdk/index.ts +++ b/packages/core/src/sdk/index.ts @@ -1,8 +1,24 @@ +import { + type JWTIntegration, + type JWTSalesChannel, + type JWTWebApp, + jwtDecode, +} from "@commercelayer/js-auth" import sdk, { type CommerceLayerClient } from "@commercelayer/sdk" -import { jwtDecode } from "jwt-decode" -import type { Jwt, RequestConfig } from "#types" +import type { RequestConfig } from "#types" +/** + * Get the Commerce Layer SDK instance + * + * @param {string} accessToken - The access token to use for authentication. + * @returns {CommerceLayerClient} - The Commerce Layer SDK instance. + */ export function getSdk({ accessToken }: RequestConfig): CommerceLayerClient { - const organization = jwtDecode(accessToken).organization.slug - return sdk({ accessToken, organization }) + const { payload } = jwtDecode(accessToken) + const { organization } = payload as + | JWTIntegration + | JWTWebApp + | JWTSalesChannel + const slug = organization.slug + return sdk({ accessToken, organization: slug }) } diff --git a/packages/core/src/types/base.ts b/packages/core/src/types/base.ts index bb1cd2e6..d97b408d 100644 --- a/packages/core/src/types/base.ts +++ b/packages/core/src/types/base.ts @@ -1,3 +1,8 @@ +import type { ResourcesConfig } from "@commercelayer/sdk" + export interface RequestConfig { accessToken: string + id?: string + params?: unknown + options?: ResourcesConfig } diff --git a/packages/core/src/types/index.ts b/packages/core/src/types/index.ts index d23de71e..637e47a5 100644 --- a/packages/core/src/types/index.ts +++ b/packages/core/src/types/index.ts @@ -1,2 +1 @@ export type { RequestConfig } from "./base" -export type { Jwt } from "./jwt" diff --git a/packages/core/src/types/jwt.ts b/packages/core/src/types/jwt.ts deleted file mode 100644 index b39a8dc3..00000000 --- a/packages/core/src/types/jwt.ts +++ /dev/null @@ -1,38 +0,0 @@ -export interface Jwt { - organization: Organization - application: Application - market: Market - owner: Owner - scope: string - exp: number - test: boolean - rand: number - iat: number - iss: string -} - -interface Application { - id: string - kind: string - public: boolean -} - -interface Market { - id: string[] - price_list_id: string - stock_location_ids: string[] - geocoder_id: null - allows_external_prices: boolean -} - -interface Organization { - id: string - slug: string - enterprise: boolean - region: string -} - -interface Owner { - id: string - type: string -} diff --git a/packages/core/tsconfig.json b/packages/core/tsconfig.json index 098e3c6d..366986a2 100644 --- a/packages/core/tsconfig.json +++ b/packages/core/tsconfig.json @@ -10,6 +10,7 @@ "isolatedModules": true, "verbatimModuleSyntax": true, "lib": ["es2022"], + "noEmit": true, /* Strictness */ "strict": true, diff --git a/packages/core/vite-env.d.ts b/packages/core/vite-env.d.ts index 2745e011..c16c20fd 100644 --- a/packages/core/vite-env.d.ts +++ b/packages/core/vite-env.d.ts @@ -3,6 +3,8 @@ interface ImportMetaEnv { readonly VITE_SALES_CHANNEL_CLIENT_ID: string readonly VITE_SALES_CHANNEL_SCOPE: string + readonly VITE_INTEGRATION_CLIENT_ID: string + readonly VITE_INTEGRATION_CLIENT_SECRET: string readonly VITE_DOMAIN: string } diff --git a/packages/document/package.json b/packages/document/package.json index a15856ef..8b6d5d5c 100644 --- a/packages/document/package.json +++ b/packages/document/package.json @@ -12,37 +12,37 @@ "build-storybook": "storybook build" }, "dependencies": { - "react": "^19.0.0", - "react-dom": "^19.0.0" + "react": "^19.1.0", + "react-dom": "^19.1.0" }, "devDependencies": { "@chromatic-com/storybook": "^3.2.6", - "@eslint/js": "^9.23.0", - "@storybook/addon-docs": "^8.6.10", - "@storybook/addon-essentials": "^8.6.10", - "@storybook/addon-interactions": "^8.6.10", - "@storybook/addon-links": "^8.6.10", - "@storybook/addon-mdx-gfm": "^8.6.10", - "@storybook/addon-onboarding": "^8.6.10", - "@storybook/blocks": "^8.6.10", - "@storybook/react": "^8.6.10", - "@storybook/react-vite": "^8.6.10", - "@storybook/test": "^8.6.10", - "@storybook/theming": "^8.6.10", - "@types/react": "^19.0.12", - "@types/react-dom": "^19.0.4", - "@vitejs/plugin-react": "^4.3.4", - "eslint": "^9.23.0", + "@eslint/js": "^9.24.0", + "@storybook/addon-docs": "^8.6.12", + "@storybook/addon-essentials": "^8.6.12", + "@storybook/addon-interactions": "^8.6.12", + "@storybook/addon-links": "^8.6.12", + "@storybook/addon-mdx-gfm": "^8.6.12", + "@storybook/addon-onboarding": "^8.6.12", + "@storybook/blocks": "^8.6.12", + "@storybook/react": "^8.6.12", + "@storybook/react-vite": "^8.6.12", + "@storybook/test": "^8.6.12", + "@storybook/theming": "^8.6.12", + "@types/react": "^19.1.2", + "@types/react-dom": "^19.1.2", + "@vitejs/plugin-react": "^4.4.0", + "eslint": "^9.24.0", "eslint-plugin-react-hooks": "^5.2.0", "eslint-plugin-react-refresh": "^0.4.19", "eslint-plugin-storybook": "^0.12.0", "globals": "^16.0.0", - "msw": "^2.7.3", + "msw": "^2.7.4", "remark-gfm": "^4.0.1", - "storybook": "^8.6.10", - "typescript": "~5.8.2", - "typescript-eslint": "^8.28.0", - "vite": "^6.2.3", + "storybook": "^8.6.12", + "typescript": "~5.8.3", + "typescript-eslint": "^8.30.1", + "vite": "^6.3.1", "vite-tsconfig-paths": "^5.1.4" }, "eslintConfig": { diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index cabb29ae..807abf60 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -32,45 +32,42 @@ importers: specifier: ^9.1.7 version: 9.1.7 lerna: - specifier: ^8.2.1 - version: 8.2.1(encoding@0.1.13) + specifier: ^8.2.2 + version: 8.2.2(encoding@0.1.13) typescript: - specifier: ^5.8.2 - version: 5.8.2 + specifier: ^5.8.3 + version: 5.8.3 vitest: - specifier: ^3.0.9 - version: 3.0.9(@types/debug@4.1.12)(@types/node@22.13.14)(jsdom@26.0.0)(msw@2.7.3(@types/node@22.13.14)(typescript@5.8.2))(terser@5.39.0)(yaml@2.7.0) + specifier: ^3.1.1 + version: 3.1.1(@types/debug@4.1.12)(@types/node@22.13.14)(jsdom@26.0.0)(msw@2.7.4(@types/node@22.13.14)(typescript@5.8.3))(terser@5.39.0)(yaml@2.7.0) packages/core: dependencies: '@commercelayer/js-auth': - specifier: ^6.7.1 - version: 6.7.1 + specifier: ^6.7.2 + version: 6.7.2 '@commercelayer/sdk': - specifier: 6.36.0 - version: 6.36.0 - jwt-decode: - specifier: ^4.0.0 - version: 4.0.0 + specifier: 6.39.0 + version: 6.39.0 devDependencies: '@arethetypeswrong/cli': specifier: ^0.17.4 version: 0.17.4 '@vitest/coverage-v8': - specifier: ^3.0.9 - version: 3.0.9(vitest@3.0.9(@types/debug@4.1.12)(@types/node@22.13.14)(jsdom@26.0.0)(msw@2.7.3(@types/node@22.13.14)(typescript@5.8.2))(terser@5.39.0)(yaml@2.7.0)) + specifier: ^3.1.1 + version: 3.1.1(vitest@3.1.1(@types/debug@4.1.12)(@types/node@22.13.14)(jsdom@26.0.0)(msw@2.7.4(@types/node@22.13.14)(typescript@5.8.3))(terser@5.39.0)(yaml@2.7.0)) tsup: specifier: ^8.4.0 - version: 8.4.0(postcss@8.5.3)(typescript@5.8.2)(yaml@2.7.0) + version: 8.4.0(postcss@8.5.3)(typescript@5.8.3)(yaml@2.7.0) typescript: - specifier: ^5.8.2 - version: 5.8.2 + specifier: ^5.8.3 + version: 5.8.3 vite-tsconfig-paths: specifier: ^5.1.4 - version: 5.1.4(typescript@5.8.2)(vite@6.2.3(@types/node@22.13.14)(terser@5.39.0)(yaml@2.7.0)) + version: 5.1.4(typescript@5.8.3)(vite@6.3.1(@types/node@22.13.14)(terser@5.39.0)(yaml@2.7.0)) vitest: - specifier: ^3.0.9 - version: 3.0.9(@types/debug@4.1.12)(@types/node@22.13.14)(jsdom@26.0.0)(msw@2.7.3(@types/node@22.13.14)(typescript@5.8.2))(terser@5.39.0)(yaml@2.7.0) + specifier: ^3.1.1 + version: 3.1.1(@types/debug@4.1.12)(@types/node@22.13.14)(jsdom@26.0.0)(msw@2.7.4(@types/node@22.13.14)(typescript@5.8.3))(terser@5.39.0)(yaml@2.7.0) packages/docs: devDependencies: @@ -97,10 +94,10 @@ importers: version: 7.6.20 '@storybook/addon-docs': specifier: ^7.6.17 - version: 7.6.20(@types/react-dom@19.0.4(@types/react@18.3.18))(@types/react@18.3.18)(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 7.6.20(@types/react-dom@19.1.2(@types/react@18.3.18))(@types/react@18.3.18)(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@storybook/addon-essentials': specifier: ^7.6.17 - version: 7.6.20(@types/react-dom@19.0.4(@types/react@18.3.18))(@types/react@18.3.18)(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 7.6.20(@types/react-dom@19.1.2(@types/react@18.3.18))(@types/react@18.3.18)(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@storybook/addon-interactions': specifier: ^7.6.17 version: 7.6.20 @@ -124,7 +121,7 @@ importers: version: 7.6.17(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@storybook/blocks': specifier: ^7.6.17 - version: 7.6.20(@types/react-dom@19.0.4(@types/react@18.3.18))(@types/react@18.3.18)(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 7.6.20(@types/react-dom@19.1.2(@types/react@18.3.18))(@types/react@18.3.18)(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@storybook/client-api': specifier: ^7.6.17 version: 7.6.17 @@ -198,96 +195,96 @@ importers: packages/document: dependencies: react: - specifier: ^19.0.0 - version: 19.0.0 + specifier: ^19.1.0 + version: 19.1.0 react-dom: - specifier: ^19.0.0 - version: 19.0.0(react@19.0.0) + specifier: ^19.1.0 + version: 19.1.0(react@19.1.0) devDependencies: '@chromatic-com/storybook': specifier: ^3.2.6 - version: 3.2.6(react@19.0.0)(storybook@8.6.10(prettier@2.8.8)) + version: 3.2.6(react@19.1.0)(storybook@8.6.12(prettier@2.8.8)) '@eslint/js': - specifier: ^9.23.0 - version: 9.23.0 + specifier: ^9.24.0 + version: 9.24.0 '@storybook/addon-docs': - specifier: ^8.6.10 - version: 8.6.10(@types/react@19.0.12)(storybook@8.6.10(prettier@2.8.8)) + specifier: ^8.6.12 + version: 8.6.12(@types/react@19.1.2)(storybook@8.6.12(prettier@2.8.8)) '@storybook/addon-essentials': - specifier: ^8.6.10 - version: 8.6.10(@types/react@19.0.12)(storybook@8.6.10(prettier@2.8.8)) + specifier: ^8.6.12 + version: 8.6.12(@types/react@19.1.2)(storybook@8.6.12(prettier@2.8.8)) '@storybook/addon-interactions': - specifier: ^8.6.10 - version: 8.6.10(storybook@8.6.10(prettier@2.8.8)) + specifier: ^8.6.12 + version: 8.6.12(storybook@8.6.12(prettier@2.8.8)) '@storybook/addon-links': - specifier: ^8.6.10 - version: 8.6.10(react@19.0.0)(storybook@8.6.10(prettier@2.8.8)) + specifier: ^8.6.12 + version: 8.6.12(react@19.1.0)(storybook@8.6.12(prettier@2.8.8)) '@storybook/addon-mdx-gfm': - specifier: ^8.6.10 - version: 8.6.10(storybook@8.6.10(prettier@2.8.8)) + specifier: ^8.6.12 + version: 8.6.12(storybook@8.6.12(prettier@2.8.8)) '@storybook/addon-onboarding': - specifier: ^8.6.10 - version: 8.6.10(storybook@8.6.10(prettier@2.8.8)) + specifier: ^8.6.12 + version: 8.6.12(storybook@8.6.12(prettier@2.8.8)) '@storybook/blocks': - specifier: ^8.6.10 - version: 8.6.10(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(storybook@8.6.10(prettier@2.8.8)) + specifier: ^8.6.12 + version: 8.6.12(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(storybook@8.6.12(prettier@2.8.8)) '@storybook/react': - specifier: ^8.6.10 - version: 8.6.10(@storybook/test@8.6.10(storybook@8.6.10(prettier@2.8.8)))(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(storybook@8.6.10(prettier@2.8.8))(typescript@5.8.2) + specifier: ^8.6.12 + version: 8.6.12(@storybook/test@8.6.12(storybook@8.6.12(prettier@2.8.8)))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(storybook@8.6.12(prettier@2.8.8))(typescript@5.8.3) '@storybook/react-vite': - specifier: ^8.6.10 - version: 8.6.10(@storybook/test@8.6.10(storybook@8.6.10(prettier@2.8.8)))(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(rollup@4.35.0)(storybook@8.6.10(prettier@2.8.8))(typescript@5.8.2)(vite@6.2.3(@types/node@22.13.14)(terser@5.39.0)(yaml@2.7.0)) + specifier: ^8.6.12 + version: 8.6.12(@storybook/test@8.6.12(storybook@8.6.12(prettier@2.8.8)))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(rollup@4.35.0)(storybook@8.6.12(prettier@2.8.8))(typescript@5.8.3)(vite@6.3.1(@types/node@22.13.14)(terser@5.39.0)(yaml@2.7.0)) '@storybook/test': - specifier: ^8.6.10 - version: 8.6.10(storybook@8.6.10(prettier@2.8.8)) + specifier: ^8.6.12 + version: 8.6.12(storybook@8.6.12(prettier@2.8.8)) '@storybook/theming': - specifier: ^8.6.10 - version: 8.6.10(storybook@8.6.10(prettier@2.8.8)) + specifier: ^8.6.12 + version: 8.6.12(storybook@8.6.12(prettier@2.8.8)) '@types/react': - specifier: ^19.0.12 - version: 19.0.12 + specifier: ^19.1.2 + version: 19.1.2 '@types/react-dom': - specifier: ^19.0.4 - version: 19.0.4(@types/react@19.0.12) + specifier: ^19.1.2 + version: 19.1.2(@types/react@19.1.2) '@vitejs/plugin-react': - specifier: ^4.3.4 - version: 4.3.4(vite@6.2.3(@types/node@22.13.14)(terser@5.39.0)(yaml@2.7.0)) + specifier: ^4.4.0 + version: 4.4.0(vite@6.3.1(@types/node@22.13.14)(terser@5.39.0)(yaml@2.7.0)) eslint: - specifier: ^9.23.0 - version: 9.23.0 + specifier: ^9.24.0 + version: 9.24.0 eslint-plugin-react-hooks: specifier: ^5.2.0 - version: 5.2.0(eslint@9.23.0) + version: 5.2.0(eslint@9.24.0) eslint-plugin-react-refresh: specifier: ^0.4.19 - version: 0.4.19(eslint@9.23.0) + version: 0.4.19(eslint@9.24.0) eslint-plugin-storybook: specifier: ^0.12.0 - version: 0.12.0(eslint@9.23.0)(typescript@5.8.2) + version: 0.12.0(eslint@9.24.0)(typescript@5.8.3) globals: specifier: ^16.0.0 version: 16.0.0 msw: - specifier: ^2.7.3 - version: 2.7.3(@types/node@22.13.14)(typescript@5.8.2) + specifier: ^2.7.4 + version: 2.7.4(@types/node@22.13.14)(typescript@5.8.3) remark-gfm: specifier: ^4.0.1 version: 4.0.1 storybook: - specifier: ^8.6.10 - version: 8.6.10(prettier@2.8.8) + specifier: ^8.6.12 + version: 8.6.12(prettier@2.8.8) typescript: - specifier: ~5.8.2 - version: 5.8.2 + specifier: ~5.8.3 + version: 5.8.3 typescript-eslint: - specifier: ^8.28.0 - version: 8.28.0(eslint@9.23.0)(typescript@5.8.2) + specifier: ^8.30.1 + version: 8.30.1(eslint@9.24.0)(typescript@5.8.3) vite: - specifier: ^6.2.3 - version: 6.2.3(@types/node@22.13.14)(terser@5.39.0)(yaml@2.7.0) + specifier: ^6.3.1 + version: 6.3.1(@types/node@22.13.14)(terser@5.39.0)(yaml@2.7.0) vite-tsconfig-paths: specifier: ^5.1.4 - version: 5.1.4(typescript@5.8.2)(vite@6.2.3(@types/node@22.13.14)(terser@5.39.0)(yaml@2.7.0)) + version: 5.1.4(typescript@5.8.3)(vite@6.3.1(@types/node@22.13.14)(terser@5.39.0)(yaml@2.7.0)) packages/react-components: dependencies: @@ -345,7 +342,7 @@ importers: version: 10.4.0 '@testing-library/react': specifier: ^16.2.0 - version: 16.2.0(@testing-library/dom@10.4.0)(@types/react-dom@19.0.4(@types/react@19.0.12))(@types/react@19.0.12)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + version: 16.2.0(@testing-library/dom@10.4.0)(@types/react-dom@19.1.2(@types/react@19.0.12))(@types/react@19.0.12)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) '@types/braintree-web': specifier: ^3.96.17 version: 3.96.17 @@ -1102,6 +1099,10 @@ packages: resolution: {integrity: sha512-GOfOGeLKhdjKa1qTq2KTF14rEKYYX7yvUYH1GYc4YuX3d5DNLqwQJK4eJN054GnAYl4YeyimVSqmLhiwC5OfBA==} engines: {node: '>=18.0.0'} + '@commercelayer/js-auth@6.7.2': + resolution: {integrity: sha512-kk4VqN2iEOreXFq76YqTP83KhBs09Z5Ez9nZNlikXWf5DXzkrOfShqqEwq8ezHjSOlqs4xVyxgQzsEdPP35CeQ==} + engines: {node: '>=18.0.0'} + '@commercelayer/organization-config@2.2.0': resolution: {integrity: sha512-v7vfLru0WiqocrPWfldmqhbG6VKYQcdu480SUCU4wTnDcXLVnlKfgaadkNnv+tVVZXh0qke8/uwrkNoi3VY/Bw==} engines: {node: '>=18', pnpm: '>=7'} @@ -1114,6 +1115,10 @@ packages: resolution: {integrity: sha512-qM/8/RwyGA41GoSyMCRO5ZpxUElzc47rHVWX+oeZkmuV0Tad01Q7ZsYY5ZrAEswbICj6jRpFg82B9Wpv3gwsZg==} engines: {node: '>=20'} + '@commercelayer/sdk@6.39.0': + resolution: {integrity: sha512-HzfXTAXvAe8UOd8E0SOokxjS9K/OVZJ+xX12nLxPS5OEPyAz5AnIzSfn9AVYiuii8QWAkVsjFfTq+4JouZzdEA==} + engines: {node: '>=20'} + '@csstools/color-helpers@5.0.2': resolution: {integrity: sha512-JqWH1vsgdGcw2RR6VliXXdA0/59LttzlU8UlRT/iUUsEeWfYq8I+K0yhihEUTTHLRm1EXvpsCx3083EU15ecsA==} engines: {node: '>=18'} @@ -1452,8 +1457,8 @@ packages: resolution: {integrity: sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==} engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} - '@eslint/config-array@0.19.2': - resolution: {integrity: sha512-GNKqxfHG2ySmJOBSHg7LxeUx4xpuCoFjacmlCoYWEbaPXLwvfIjixRI12xCQZeULksQb23uiA8F40w5TojpV7w==} + '@eslint/config-array@0.20.0': + resolution: {integrity: sha512-fxlS1kkIjx8+vy2SjuCB94q3htSNrufYTXubwiBFeaQHbH6Ipi43gFJq2zCMt6PHhImH3Xmr0NksKDvchWlpQQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@eslint/config-helpers@0.2.0': @@ -1468,8 +1473,8 @@ packages: resolution: {integrity: sha512-gtF186CXhIl1p4pJNGZw8Yc6RlshoePRvE0X91oPGb3vZ8pM3qOS9W9NGPat9LziaBV7XrJWGylNQXkGcnM3IQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@eslint/js@9.23.0': - resolution: {integrity: sha512-35MJ8vCPU0ZMxo7zfev2pypqTwWTofFZO6m4KAtdoFhRpLJUpHTZZ+KB3C7Hb1d7bULYwO4lJXGCi5Se+8OMbw==} + '@eslint/js@9.24.0': + resolution: {integrity: sha512-uIY/y3z0uvOGX8cp1C2fiC4+ZmBhp6yZWkojtHL1YEMnRt1Y63HB9TM17proGEmeG7HeUY+UP36F0aknKYTpYA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@eslint/object-schema@2.1.6': @@ -1630,8 +1635,8 @@ packages: '@juggle/resize-observer@3.4.0': resolution: {integrity: sha512-dfLbk+PwWvFzSxwk3n5ySL0hfBog779o8h68wK/7/APo/7cgyWp5jcXockbxdk5kFRkbeXWm4Fbi9FrdN381sA==} - '@lerna/create@8.2.1': - resolution: {integrity: sha512-Cz2u/fwc03D1EE6VFZCLMmI8FIUtGmxHQ3ECeNblsxv9i0YSKWe4Xm18sjO1xltG/K5ByiH8/HMeY9dlyAv22A==} + '@lerna/create@8.2.2': + resolution: {integrity: sha512-1yn1MvWn2Yz0SFgTTQnef2m1YedF7KwqLLVIOrGkgQrkVHzsveAIk1A1RcRa2yyUh+siKI1YcJ7lUZIEt+qQ3Q==} engines: {node: '>=18.0.0'} '@loaderkit/resolve@1.0.4': @@ -2420,26 +2425,26 @@ packages: '@storybook/addon-actions@7.6.20': resolution: {integrity: sha512-c/GkEQ2U9BC/Ew/IMdh+zvsh4N6y6n7Zsn2GIhJgcu9YEAa5aF2a9/pNgEGBMOABH959XE8DAOMERw/5qiLR8g==} - '@storybook/addon-actions@8.6.10': - resolution: {integrity: sha512-g+aC1bFwIwZqxSVjw+BhJJeTmZPBhZT52AO6DUYWF+FZ2N3rjnaVKwT1gZYYhuYw2WtWw2wLivkXcq2L/IBbkg==} + '@storybook/addon-actions@8.6.12': + resolution: {integrity: sha512-B5kfiRvi35oJ0NIo53CGH66H471A3XTzrfaa6SxXEJsgxxSeKScG5YeXcCvLiZfvANRQ7QDsmzPUgg0o3hdMXw==} peerDependencies: - storybook: ^8.6.10 + storybook: ^8.6.12 '@storybook/addon-backgrounds@7.6.20': resolution: {integrity: sha512-a7ukoaXT42vpKsMxkseIeO3GqL0Zst2IxpCTq5dSlXiADrcemSF/8/oNpNW9C4L6F1Zdt+WDtECXslEm017FvQ==} - '@storybook/addon-backgrounds@8.6.10': - resolution: {integrity: sha512-zou/VJSVDacuaQVJV22hbQEZrQBllcoxSw40EgSedqLv1qaVpC7Nz5LY9srl522LeoVEP+AOYKf9K7hLbm0o7w==} + '@storybook/addon-backgrounds@8.6.12': + resolution: {integrity: sha512-lmIAma9BiiCTbJ8YfdZkXjpnAIrOUcgboLkt1f6XJ78vNEMnLNzD9gnh7Tssz1qrqvm34v9daDjIb+ggdiKp3Q==} peerDependencies: - storybook: ^8.6.10 + storybook: ^8.6.12 '@storybook/addon-controls@7.6.20': resolution: {integrity: sha512-06ZT5Ce1sZW52B0s6XuokwjkKO9GqHlTUHvuflvd8wifxKlCmRvNUxjBvwh+ccGJ49ZS73LbMSLFgtmBEkCxbg==} - '@storybook/addon-controls@8.6.10': - resolution: {integrity: sha512-aMw3NCVSq+vWEAp10kbBlbMx+7PIFFdgxMCh7b9N2DUR/5J4KCNFQosa8fAn03Noh2g5jgceqNyY6L4lDIu0Xw==} + '@storybook/addon-controls@8.6.12': + resolution: {integrity: sha512-9VSRPJWQVb9wLp21uvpxDGNctYptyUX0gbvxIWOHMH3R2DslSoq41lsC/oQ4l4zSHVdL+nq8sCTkhBxIsjKqdQ==} peerDependencies: - storybook: ^8.6.10 + storybook: ^8.6.12 '@storybook/addon-docs@7.6.20': resolution: {integrity: sha512-XNfYRhbxH5JP7B9Lh4W06PtMefNXkfpV39Gaoih5HuqngV3eoSL4RikZYOMkvxRGQ738xc6axySU3+JKcP1OZg==} @@ -2447,10 +2452,10 @@ packages: react: ^16.8.0 || ^17.0.0 || ^18.0.0 react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 - '@storybook/addon-docs@8.6.10': - resolution: {integrity: sha512-VnGtzwVaC8NvfhLr8UdIa6n38emU2SaDzfOTbvR1zibiqRmFDbo+kvAGSPOT6oIC5jZleUTLiIz0GzHxLuMxOQ==} + '@storybook/addon-docs@8.6.12': + resolution: {integrity: sha512-kEezQjAf/p3SpDzLABgg4fbT48B6dkT2LiZCKTRmCrJVtuReaAr4R9MMM6Jsph6XjbIj/SvOWf3CMeOPXOs9sg==} peerDependencies: - storybook: ^8.6.10 + storybook: ^8.6.12 '@storybook/addon-essentials@7.6.20': resolution: {integrity: sha512-hCupSOiJDeOxJKZSgH0x5Mb2Xqii6mps21g5hpxac1XjhQtmGflShxi/xOHhK3sNqrbgTSbScfpUP3hUlZO/2Q==} @@ -2458,26 +2463,26 @@ packages: react: ^16.8.0 || ^17.0.0 || ^18.0.0 react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 - '@storybook/addon-essentials@8.6.10': - resolution: {integrity: sha512-8sKfAp3KkEjIHm02JhdazEKHlwO8VQgzAHk2fzHREgf24KqlCyF9BhDM1vG38fGdB+B+l1edZTE5a3NmcvK5Cg==} + '@storybook/addon-essentials@8.6.12': + resolution: {integrity: sha512-Y/7e8KFlttaNfv7q2zoHMPdX6hPXHdsuQMAjYl5NG9HOAJREu4XBy4KZpbcozRe4ApZ78rYsN/MO1EuA+bNMIA==} peerDependencies: - storybook: ^8.6.10 + storybook: ^8.6.12 '@storybook/addon-highlight@7.6.20': resolution: {integrity: sha512-7/x7xFdFyqCki5Dm3uBePldUs9l98/WxJ7rTHQuYqlX7kASwyN5iXPzuhmMRUhlMm/6G6xXtLabIpzwf1sFurA==} - '@storybook/addon-highlight@8.6.10': - resolution: {integrity: sha512-ZKl0yKzs/6xOpeDIiqHhfrJGQYA7jQ6cxO2nUm3zyqOnHZspef38VlqE63VttBq+mKnh9VbemmaTd2mUgQnm2A==} + '@storybook/addon-highlight@8.6.12': + resolution: {integrity: sha512-9FITVxdoycZ+eXuAZL9ElWyML/0fPPn9UgnnAkrU7zkMi+Segq/Tx7y+WWanC5zfWZrXAuG6WTOYEXeWQdm//w==} peerDependencies: - storybook: ^8.6.10 + storybook: ^8.6.12 '@storybook/addon-interactions@7.6.20': resolution: {integrity: sha512-uH+OIxLtvfnnmdN3Uf8MwzfEFYtaqSA6Hir6QNPc643se0RymM8mULN0rzRyvspwd6OagWdtOxsws3aHk02KTA==} - '@storybook/addon-interactions@8.6.10': - resolution: {integrity: sha512-BtuqLJj1L5a8a4RmnX5YjrGhiEfn7LTdQgn2m71F8DnMCwvvYLHQgYUcpjobMld1OZr3IKq4/zCqesaGET++fQ==} + '@storybook/addon-interactions@8.6.12': + resolution: {integrity: sha512-cTAJlTq6uVZBEbtwdXkXoPQ4jHOAGKQnYSezBT4pfNkdjn/FnEeaQhMBDzf14h2wr5OgBnJa6Lmd8LD9ficz4A==} peerDependencies: - storybook: ^8.6.10 + storybook: ^8.6.12 '@storybook/addon-links@7.6.20': resolution: {integrity: sha512-iomSnBD90CA4MinesYiJkFX2kb3P1Psd/a1Y0ghlFEsHD4uMId9iT6sx2s16DYMja0SlPkrbWYnGukqaCjZpRw==} @@ -2487,11 +2492,11 @@ packages: react: optional: true - '@storybook/addon-links@8.6.10': - resolution: {integrity: sha512-t7gRsFbOIAsqxb/5KA/LOywvx8USopqfW1KwLDBrDYaRUwkdiJVOSxjKB1a6cndFmqcGzucdXQx/PMmOQe9dig==} + '@storybook/addon-links@8.6.12': + resolution: {integrity: sha512-AfKujFHoAxhxq4yu+6NwylltS9lf5MPs1eLLXvOlwo3l7Y/c68OdxJ7j68vLQhs9H173WVYjKyjbjFxJWf/YYg==} peerDependencies: react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta - storybook: ^8.6.10 + storybook: ^8.6.12 peerDependenciesMeta: react: optional: true @@ -2499,47 +2504,47 @@ packages: '@storybook/addon-mdx-gfm@7.6.20': resolution: {integrity: sha512-htfiooRdIYIjdKpxFjJAT+b90iatraI7yfmgF8VmpGTPqjyjGDZccUFCaE7op9S2smLZi4zYYGd+fqA5NtykkQ==} - '@storybook/addon-mdx-gfm@8.6.10': - resolution: {integrity: sha512-9Ddu0AZ074O/hgooy2tFPvZqPzCJBQW57gGfCAj9PCvgRoALWsA7s5QHUlicq2r+iIxbKZv6o72ND+7Z9TwA7Q==} + '@storybook/addon-mdx-gfm@8.6.12': + resolution: {integrity: sha512-OKI5+O8xyK8axGPFwkl38NGJ6Rjf7kyhiBPxw5NuHOjOnU/FL4Pw3QmY47TT96TVws27vP3gF5+FX8lj3Dd3rQ==} peerDependencies: - storybook: ^8.6.10 + storybook: ^8.6.12 '@storybook/addon-measure@7.6.20': resolution: {integrity: sha512-i2Iq08bGfI7gZbG6Lb8uF/L287tnaGUR+2KFEmdBjH6+kgjWLiwfpanoPQpy4drm23ar0gUjX+L3Ri03VI5/Xg==} - '@storybook/addon-measure@8.6.10': - resolution: {integrity: sha512-ef5vAum7tMdiTsGsHOIHaLCyN0e3gLU2X4gzNelqH0/x/09C2QQaiOFDIpvbKt6HSjpHJeYcUOGzF7U/o4xVkw==} + '@storybook/addon-measure@8.6.12': + resolution: {integrity: sha512-tACmwqqOvutaQSduw8SMb62wICaT1rWaHtMN3vtWXuxgDPSdJQxLP+wdVyRYMAgpxhLyIO7YRf++Hfha9RHgFg==} peerDependencies: - storybook: ^8.6.10 + storybook: ^8.6.12 - '@storybook/addon-onboarding@8.6.10': - resolution: {integrity: sha512-n4wtlZqYQiigtYCDCRXH1ilmGGv+DG5mggiTLpcLJEh9tZg2dGUptSyGARRF6igYYeiZTdDo8OPvwFUZc5N+vg==} + '@storybook/addon-onboarding@8.6.12': + resolution: {integrity: sha512-/cgxaLy6tr6xO0+QO+qV5rPZS5/c15Daywvg/F03lifLGkMuyn/JDuhu0J5i1LbFsL1RYdf4sjrTOmLXbOT6+Q==} peerDependencies: - storybook: ^8.6.10 + storybook: ^8.6.12 '@storybook/addon-outline@7.6.20': resolution: {integrity: sha512-TdsIQZf/TcDsGoZ1XpO+9nBc4OKqcMIzY4SrI8Wj9dzyFLQ37s08gnZr9POci8AEv62NTUOVavsxcafllkzqDQ==} - '@storybook/addon-outline@8.6.10': - resolution: {integrity: sha512-Z5lQ/q9rULtlD99V1S3ymEU59tJGD2KHEdr4HRUgxo+fkyy7nOZDi88sOupoICBuAVYBIcxLKiMeYrUIwjHqtg==} + '@storybook/addon-outline@8.6.12': + resolution: {integrity: sha512-1ylwm+n1s40S91No0v9T4tCjZORu3GbnjINlyjYTDLLhQHyBQd3nWR1Y1eewU4xH4cW9SnSLcMQFS/82xHqU6A==} peerDependencies: - storybook: ^8.6.10 + storybook: ^8.6.12 '@storybook/addon-toolbars@7.6.20': resolution: {integrity: sha512-5Btg4i8ffWTDHsU72cqxC8nIv9N3E3ObJAc6k0llrmPBG/ybh3jxmRfs8fNm44LlEXaZ5qrK/petsXX3UbpIFg==} - '@storybook/addon-toolbars@8.6.10': - resolution: {integrity: sha512-cHhI+9r/Wt/l+E02V2UvybkmdembqjVUagLNHRIRQSqx0tH762G0OD3JzOC2nqmXMjABY2mUkADORhWERfMPjg==} + '@storybook/addon-toolbars@8.6.12': + resolution: {integrity: sha512-HEcSzo1DyFtIu5/ikVOmh5h85C1IvK9iFKSzBR6ice33zBOaehVJK+Z5f487MOXxPsZ63uvWUytwPyViGInj+g==} peerDependencies: - storybook: ^8.6.10 + storybook: ^8.6.12 '@storybook/addon-viewport@7.6.20': resolution: {integrity: sha512-i8mIw8BjLWAVHEQsOTE6UPuEGQvJDpsu1XZnOCkpfTfPMz73m+3td/PmLG7mMT2wPnLu9IZncKLCKTAZRbt/YQ==} - '@storybook/addon-viewport@8.6.10': - resolution: {integrity: sha512-0ATxfA+bHpTcdTUc83VVJF3XPJqe64Yl1I9UWnx/XG2gzo8avRA44pQe8ETH5Fwr7kAvDMqW6LXAisfsl20wrg==} + '@storybook/addon-viewport@8.6.12': + resolution: {integrity: sha512-EXK2LArAnABsPP0leJKy78L/lbMWow+EIJfytEP5fHaW4EhMR6h7Hzaqzre6U0IMMr/jVFa1ci+m0PJ0eQc2bw==} peerDependencies: - storybook: ^8.6.10 + storybook: ^8.6.12 '@storybook/addons@7.6.17': resolution: {integrity: sha512-Ok18Y698Ccyg++MoUNJNHY0cXUvo8ETFIRLJk1g9ElJ70j6kPgNnzW2pAtZkBNmswHtofZ7pT156cj96k/LgfA==} @@ -2553,12 +2558,12 @@ packages: react: ^16.8.0 || ^17.0.0 || ^18.0.0 react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 - '@storybook/blocks@8.6.10': - resolution: {integrity: sha512-S9XVyN36utNAo78/IHUP1DpCw7vBw5Ef4iO9diF+MLtxP3jJwFXPFkyBSi7AnWig9FH3I8vYI1fh1a4/nk1H4g==} + '@storybook/blocks@8.6.12': + resolution: {integrity: sha512-DohlTq6HM1jDbHYiXL4ZvZ00VkhpUp5uftzj/CZDLY1fYHRjqtaTwWm2/OpceivMA8zDitLcq5atEZN+f+siTg==} peerDependencies: react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 - storybook: ^8.6.10 + storybook: ^8.6.12 peerDependenciesMeta: react: optional: true @@ -2583,10 +2588,10 @@ packages: vite-plugin-glimmerx: optional: true - '@storybook/builder-vite@8.6.10': - resolution: {integrity: sha512-RXT4uflQSgXSHbWG+Z2Im5r7Ji1wj0Lyo6hVJZIBLEbaIbjfvPtP9CXlhK/z1h90cegHTnkYDd01RHwgmlKRrg==} + '@storybook/builder-vite@8.6.12': + resolution: {integrity: sha512-Gju21ud/3Qw4v2vLNaa5SuJECsI9ICNRr2G0UyCCzRvCHg8jpA9lDReu2NqhLDyFIuDG+ZYT38gcaHEUoNQ8KQ==} peerDependencies: - storybook: ^8.6.10 + storybook: ^8.6.12 vite: '>=4.5.2' '@storybook/channels@7.6.17': @@ -2617,8 +2622,8 @@ packages: react: ^16.8.0 || ^17.0.0 || ^18.0.0 react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 - '@storybook/components@8.6.10': - resolution: {integrity: sha512-9TE2aZU+1zjGO4R74jc4Dmx+pFb+9hm1vnlWH+WVfYV1nCSCZOMmMoO2J86PHPkR6RmPjcQJXz4ySdBbYiwKiw==} + '@storybook/components@8.6.12': + resolution: {integrity: sha512-FiaE8xvCdvKC2arYusgtlDNZ77b8ysr8njAYQZwwaIHjy27TbR2tEpLDCmUwSbANNmivtc/xGEiDDwcNppMWlQ==} peerDependencies: storybook: ^8.2.0 || ^8.3.0-0 || ^8.4.0-0 || ^8.5.0-0 || ^8.6.0-0 @@ -2637,8 +2642,8 @@ packages: '@storybook/core-server@7.6.20': resolution: {integrity: sha512-qC5BdbqqwMLTdCwMKZ1Hbc3+3AaxHYWLiJaXL9e8s8nJw89xV8c8l30QpbJOGvcDmsgY6UTtXYaJ96OsTr7MrA==} - '@storybook/core@8.6.10': - resolution: {integrity: sha512-VyhE/9/idPeeObsx+DyD8RR2iEwLJGL9rYz61r+1IrpndIVnlYD+vjxc0Y/1jTG1RvShWzEF2A/vzsJ9PzXqcw==} + '@storybook/core@8.6.12': + resolution: {integrity: sha512-t+ZuDzAlsXKa6tLxNZT81gEAt4GNwsKP/Id2wluhmUWD/lwYW0uum1JiPUuanw8xD6TdakCW/7ULZc7aQUBLCQ==} peerDependencies: prettier: ^2 || ^3 peerDependenciesMeta: @@ -2648,10 +2653,10 @@ packages: '@storybook/csf-plugin@7.6.20': resolution: {integrity: sha512-dzBzq0dN+8WLDp6NxYS4G7BCe8+vDeDRBRjHmM0xb0uJ6xgQViL8SDplYVSGnk3bXE/1WmtvyRzQyTffBnaj9Q==} - '@storybook/csf-plugin@8.6.10': - resolution: {integrity: sha512-yjtFyjEvmmWUG1NzM81/CLI5rOUG311EoPmRnvbNpdzaVug4emC3rX9mR69DsrXfL7kLTDltDH8tjA7wLxpGMA==} + '@storybook/csf-plugin@8.6.12': + resolution: {integrity: sha512-6s8CnP1aoKPb3XtC0jRLUp8M5vTA8RhGAwQDKUsFpCC7g89JR9CaKs9FY2ZSzsNbjR15uASi7b3K8BzeYumYQg==} peerDependencies: - storybook: ^8.6.10 + storybook: ^8.6.12 '@storybook/csf-tools@7.6.20': resolution: {integrity: sha512-rwcwzCsAYh/m/WYcxBiEtLpIW5OH1ingxNdF/rK9mtGWhJxXRDV8acPkFrF8rtFWIVKoOCXu5USJYmc3f2gdYQ==} @@ -2675,10 +2680,10 @@ packages: react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta - '@storybook/instrumenter@8.6.10': - resolution: {integrity: sha512-Hlps6V0lkhFMbgcJQRynVBne51ciG7Xv+YtiDCd0PQtvZu8+vVJr/ebWt3nCwpvkRHooYiud1ScA3K8McyA73w==} + '@storybook/instrumenter@8.6.12': + resolution: {integrity: sha512-VK5fYAF8jMwWP/u3YsmSwKGh+FeSY8WZn78flzRUwirp2Eg1WWjsqPRubAk7yTpcqcC/km9YMF3KbqfzRv2s/A==} peerDependencies: - storybook: ^8.6.10 + storybook: ^8.6.12 '@storybook/manager-api@7.6.17': resolution: {integrity: sha512-IJIV1Yc6yw1dhCY4tReHCfBnUKDqEBnMyHp3mbXpsaHxnxJZrXO45WjRAZIKlQKhl/Ge1CrnznmHRCmYgqmrWg==} @@ -2686,8 +2691,8 @@ packages: '@storybook/manager-api@7.6.20': resolution: {integrity: sha512-gOB3m8hO3gBs9cBoN57T7jU0wNKDh+hi06gLcyd2awARQlAlywnLnr3s1WH5knih6Aq+OpvGBRVKkGLOkaouCQ==} - '@storybook/manager-api@8.6.10': - resolution: {integrity: sha512-roJ2aXqbZfSh9IM4q34U2GpU0CDmUjTKGwAnYOS2SG6rGLPenPflIksW8A52cVFdzGa4eH/KzP2FIg5Zi1KLJQ==} + '@storybook/manager-api@8.6.12': + resolution: {integrity: sha512-O0SpISeJLNTQvhSBOsWzzkCgs8vCjOq1578rwqHlC6jWWm4QmtfdyXqnv7rR1Hk08kQ+Dzqh0uhwHx0nfwy4nQ==} peerDependencies: storybook: ^8.2.0 || ^8.3.0-0 || ^8.4.0-0 || ^8.5.0-0 || ^8.6.0-0 @@ -2714,8 +2719,8 @@ packages: '@storybook/preview-api@7.6.20': resolution: {integrity: sha512-3ic2m9LDZEPwZk02wIhNc3n3rNvbi7VDKn52hDXfAxnL5EYm7yDICAkaWcVaTfblru2zn0EDJt7ROpthscTW5w==} - '@storybook/preview-api@8.6.10': - resolution: {integrity: sha512-8ki1GgiUlcSqZD3Oe42Fy0uW3E7XPpMAyzO+NSnHCKKfNlZgi036Rr+FyGcKwG5lJyubWwNesPGQX5UHigYu4w==} + '@storybook/preview-api@8.6.12': + resolution: {integrity: sha512-84FE3Hrs0AYKHqpDZOwx1S/ffOfxBdL65lhCoeI8GoWwCkzwa9zEP3kvXBo/BnEDO7nAfxvMhjASTZXbKRJh5Q==} peerDependencies: storybook: ^8.2.0 || ^8.3.0-0 || ^8.4.0-0 || ^8.5.0-0 || ^8.6.0-0 @@ -2728,12 +2733,12 @@ packages: react: ^16.8.0 || ^17.0.0 || ^18.0.0 react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 - '@storybook/react-dom-shim@8.6.10': - resolution: {integrity: sha512-r4Q5stsoIlSEvOpOJgyFGPej+t9uuIzGI2ul83XNtiHEBs7xlmUN7qAm+U9cOuNZ7mPOXDKt9nZfUfCP5Ouhyw==} + '@storybook/react-dom-shim@8.6.12': + resolution: {integrity: sha512-51QvoimkBzYs8s3rCYnY5h0cFqLz/Mh0vRcughwYaXckWzDBV8l67WBO5Xf5nBsukCbWyqBVPpEQLww8s7mrLA==} peerDependencies: react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta - storybook: ^8.6.10 + storybook: ^8.6.12 '@storybook/react-vite@7.6.20': resolution: {integrity: sha512-uKuBFyGPZxpfR8vpDU/2OE9v7iTaxwL7ldd7k1swYd1rTSAPacTnEHSMl1R5AjUhkdI7gRmGN9q7qiVfK2XJCA==} @@ -2743,14 +2748,14 @@ packages: react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 vite: '>=4.5.2' - '@storybook/react-vite@8.6.10': - resolution: {integrity: sha512-CyptES7yE1fnZWMN5xk6AFPuchjg4YN8VvBaC0YyveKhfeXlczGwG9nPU28ZY3I+Xzz5g/A6rBvgSRQ88hc/bQ==} + '@storybook/react-vite@8.6.12': + resolution: {integrity: sha512-UA2Kule99oyFgHdhcuhrRwCKyWu/yMbqbl9U7NwowFHNwWWFjVMMir/AmfShb/H1C1DQ3LqOad6/QwJyPLjP8g==} engines: {node: '>=18.0.0'} peerDependencies: - '@storybook/test': 8.6.10 + '@storybook/test': 8.6.12 react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta - storybook: ^8.6.10 + storybook: ^8.6.12 vite: '>=4.5.2' peerDependenciesMeta: '@storybook/test': @@ -2767,14 +2772,14 @@ packages: typescript: optional: true - '@storybook/react@8.6.10': - resolution: {integrity: sha512-QCs5nyXe+G2ZoZ1uspEsnSp7VYLJej5dJ1bSf22rrdHQde641zvC2HZQaba4dqR2YQxRCG9JtCdaQ3UVmnfzzA==} + '@storybook/react@8.6.12': + resolution: {integrity: sha512-NzxlHLA5DkDgZM/dMwTYinuzRs6rsUPmlqP+NIv6YaciQ4NGnTYyOC7R/SqI6HHFm8ZZ5eMYvpfiFmhZ9rU+rQ==} engines: {node: '>=18.0.0'} peerDependencies: - '@storybook/test': 8.6.10 + '@storybook/test': 8.6.12 react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta - storybook: ^8.6.10 + storybook: ^8.6.12 typescript: '>= 4.2.x' peerDependenciesMeta: '@storybook/test': @@ -2791,10 +2796,10 @@ packages: '@storybook/telemetry@7.6.20': resolution: {integrity: sha512-dmAOCWmOscYN6aMbhCMmszQjoycg7tUPRVy2kTaWg6qX10wtMrvEtBV29W4eMvqdsoRj5kcvoNbzRdYcWBUOHQ==} - '@storybook/test@8.6.10': - resolution: {integrity: sha512-eCQueRB0SpwjnXcE5wmUNu2G7Z7nRzzHw+0QW2Yc3DoA5UwmOiuwTseZenQkD019dwvFJ87fHo1xXnDAamX1Tg==} + '@storybook/test@8.6.12': + resolution: {integrity: sha512-0BK1Eg+VD0lNMB1BtxqHE3tP9FdkUmohtvWG7cq6lWvMrbCmAmh3VWai3RMCCDOukPFpjabOr8BBRLVvhNpv2w==} peerDependencies: - storybook: ^8.6.10 + storybook: ^8.6.12 '@storybook/testing-library@0.2.2': resolution: {integrity: sha512-L8sXFJUHmrlyU2BsWWZGuAjv39Jl1uAqUHdxmN42JY15M4+XCMjGlArdCCjDe1wpTSW6USYISA9axjZojgtvnw==} @@ -2812,8 +2817,8 @@ packages: react: ^16.8.0 || ^17.0.0 || ^18.0.0 react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 - '@storybook/theming@8.6.10': - resolution: {integrity: sha512-4E5ArcJ/bhrWtlYzQDbtA3O3pha/Ys0Ja6X4waJQ5UJENzUMdVz6vTLSUHtG5hNRmSqreogxe4Ed88+0JtY7NQ==} + '@storybook/theming@8.6.12': + resolution: {integrity: sha512-6VjZg8HJ2Op7+KV7ihJpYrDnFtd9D1jrQnUS8LckcpuBXrIEbaut5+34ObY8ssQnSqkk2GwIZBBBQYQBCVvkOw==} peerDependencies: storybook: ^8.2.0 || ^8.3.0-0 || ^8.4.0-0 || ^8.5.0-0 || ^8.6.0-0 @@ -3057,8 +3062,8 @@ packages: '@types/range-parser@1.2.7': resolution: {integrity: sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==} - '@types/react-dom@19.0.4': - resolution: {integrity: sha512-4fSQ8vWFkg+TGhePfUzVmat3eC14TXYSsiiDSLI0dVLsrm9gZFABjPy/Qu6TKgl1tq1Bu1yDsuQgY3A3DOjCcg==} + '@types/react-dom@19.1.2': + resolution: {integrity: sha512-XGJkWF41Qq305SKWEILa1O8vzhb3aOo3ogBlSmiqNko/WmRb6QIaweuZCXjKygVDXpzXb5wyxKTSOsmkuqj+Qw==} peerDependencies: '@types/react': ^19.0.0 @@ -3074,6 +3079,9 @@ packages: '@types/react@19.0.12': resolution: {integrity: sha512-V6Ar115dBDrjbtXSrS+/Oruobc+qVbbUxDFC1RSbRqLt5SYvxxyIDrSC85RWml54g+jfNeEMZhEj7wW07ONQhA==} + '@types/react@19.1.2': + resolution: {integrity: sha512-oxLPMytKchWGbnQM9O7D67uPa9paTNxO7jVoNMXgkkErULBPhPARCfkKL9ytcIJJRGjbsVwW4ugJzyFFvm/Tiw==} + '@types/resolve@1.20.6': resolution: {integrity: sha512-A4STmOXPhMUtHH+S6ymgE2GiBSMqf4oTvcQZMcHzokuTLVYzXTB8ttjcgxOVaAp2lGwEdzZ0J+cRbbeevQj1UQ==} @@ -3110,16 +3118,16 @@ packages: '@types/yargs@17.0.33': resolution: {integrity: sha512-WpxBCKWPLr4xSsHgz511rFJAM+wS28w2zEO1QDNY5zM/S8ok70NNfztH0xwhqKyaK0OHCbN98LDAZuy1ctxDkA==} - '@typescript-eslint/eslint-plugin@8.28.0': - resolution: {integrity: sha512-lvFK3TCGAHsItNdWZ/1FkvpzCxTHUVuFrdnOGLMa0GGCFIbCgQWVk3CzCGdA7kM3qGVc+dfW9tr0Z/sHnGDFyg==} + '@typescript-eslint/eslint-plugin@8.30.1': + resolution: {integrity: sha512-v+VWphxMjn+1t48/jO4t950D6KR8JaJuNXzi33Ve6P8sEmPr5k6CEXjdGwT6+LodVnEa91EQCtwjWNUCPweo+Q==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: '@typescript-eslint/parser': ^8.0.0 || ^8.0.0-alpha.0 eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <5.9.0' - '@typescript-eslint/parser@8.28.0': - resolution: {integrity: sha512-LPcw1yHD3ToaDEoljFEfQ9j2xShY367h7FZ1sq5NJT9I3yj4LHer1Xd1yRSOdYy9BpsrxU7R+eoDokChYM53lQ==} + '@typescript-eslint/parser@8.30.1': + resolution: {integrity: sha512-H+vqmWwT5xoNrXqWs/fesmssOW70gxFlgcMlYcBaWNPIEWDgLa4W9nkSPmhuOgLnXq9QYgkZ31fhDyLhleCsAg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 @@ -3129,12 +3137,12 @@ packages: resolution: {integrity: sha512-OGqo7+dXHqI7Hfm+WqkZjKjsiRtFUQHPdGMXzk5mYXhJUedO7e/Y7i8AK3MyLMgZR93TX4bIzYrfyVjLC+0VSw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/scope-manager@8.28.0': - resolution: {integrity: sha512-u2oITX3BJwzWCapoZ/pXw6BCOl8rJP4Ij/3wPoGvY8XwvXflOzd1kLrDUUUAIEdJSFh+ASwdTHqtan9xSg8buw==} + '@typescript-eslint/scope-manager@8.30.1': + resolution: {integrity: sha512-+C0B6ChFXZkuaNDl73FJxRYT0G7ufVPOSQkqkpM/U198wUwUFOtgo1k/QzFh1KjpBitaK7R1tgjVz6o9HmsRPg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/type-utils@8.28.0': - resolution: {integrity: sha512-oRoXu2v0Rsy/VoOGhtWrOKDiIehvI+YNrDk5Oqj40Mwm0Yt01FC/Q7nFqg088d3yAsR1ZcZFVfPCTTFCe/KPwg==} + '@typescript-eslint/type-utils@8.30.1': + resolution: {integrity: sha512-64uBF76bfQiJyHgZISC7vcNz3adqQKIccVoKubyQcOnNcdJBvYOILV1v22Qhsw3tw3VQu5ll8ND6hycgAR5fEA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 @@ -3144,8 +3152,8 @@ packages: resolution: {integrity: sha512-1sK4ILJbCmZOTt9k4vkoulT6/y5CHJ1qUYxqpF1K/DBAd8+ZUL4LlSCxOssuH5m4rUaaN0uS0HlVPvd45zjduQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/types@8.28.0': - resolution: {integrity: sha512-bn4WS1bkKEjx7HqiwG2JNB3YJdC1q6Ue7GyGlwPHyt0TnVq6TtD/hiOdTZt71sq0s7UzqBFXD8t8o2e63tXgwA==} + '@typescript-eslint/types@8.30.1': + resolution: {integrity: sha512-81KawPfkuulyWo5QdyG/LOKbspyyiW+p4vpn4bYO7DM/hZImlVnFwrpCTnmNMOt8CvLRr5ojI9nU1Ekpw4RcEw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@typescript-eslint/typescript-estree@8.23.0': @@ -3154,8 +3162,8 @@ packages: peerDependencies: typescript: '>=4.8.4 <5.8.0' - '@typescript-eslint/typescript-estree@8.28.0': - resolution: {integrity: sha512-H74nHEeBGeklctAVUvmDkxB1mk+PAZ9FiOMPFncdqeRBXxk1lWSYraHw8V12b7aa6Sg9HOBNbGdSHobBPuQSuA==} + '@typescript-eslint/typescript-estree@8.30.1': + resolution: {integrity: sha512-kQQnxymiUy9tTb1F2uep9W6aBiYODgq5EMSk6Nxh4Z+BDUoYUSa029ISs5zTzKBFnexQEh71KqwjKnRz58lusQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '>=4.8.4 <5.9.0' @@ -3167,8 +3175,8 @@ packages: eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <5.8.0' - '@typescript-eslint/utils@8.28.0': - resolution: {integrity: sha512-OELa9hbTYciYITqgurT1u/SzpQVtDLmQMFzy/N8pQE+tefOyCWT79jHsav294aTqV1q1u+VzqDGbuujvRYaeSQ==} + '@typescript-eslint/utils@8.30.1': + resolution: {integrity: sha512-T/8q4R9En2tcEsWPQgB5BQ0XJVOtfARcUvOa8yJP3fh9M/mXraLxZrkCfGb6ChrO/V3W+Xbd04RacUEqk1CFEQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 @@ -3178,8 +3186,8 @@ packages: resolution: {integrity: sha512-oWWhcWDLwDfu++BGTZcmXWqpwtkwb5o7fxUIGksMQQDSdPW9prsSnfIOZMlsj4vBOSrcnjIUZMiIjODgGosFhQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/visitor-keys@8.28.0': - resolution: {integrity: sha512-hbn8SZ8w4u2pRwgQ1GlUrPKE+t2XvcCW5tTRF7j6SMYIuYG37XuzIW44JCZPa36evi0Oy2SnM664BlIaAuQcvg==} + '@typescript-eslint/visitor-keys@8.30.1': + resolution: {integrity: sha512-aEhgas7aJ6vZnNFC7K4/vMGDGyOiqWcYZPpIWrTKuTAlsvDNKy2GFDqh9smL+iq069ZvR0YzEeq0B8NJlLzjFA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@vitejs/plugin-react@3.1.0': @@ -3194,6 +3202,12 @@ packages: peerDependencies: vite: '>=4.5.2' + '@vitejs/plugin-react@4.4.0': + resolution: {integrity: sha512-x/EztcTKVj+TDeANY1WjNeYsvZjZdfWRMP/KXi5Yn8BoTzpa13ZltaQqKfvWYbX8CE10GOHHdC5v86jY9x8i/g==} + engines: {node: ^14.18.0 || >=16.0.0} + peerDependencies: + vite: '>=4.5.2' + '@vitest/coverage-v8@3.0.9': resolution: {integrity: sha512-15OACZcBtQ34keIEn19JYTVuMFTlFrClclwWjHo/IRPg/8ELpkgNTl0o7WLP9WO9XGH6+tip9CPYtEOrIDJvBA==} peerDependencies: @@ -3203,12 +3217,24 @@ packages: '@vitest/browser': optional: true + '@vitest/coverage-v8@3.1.1': + resolution: {integrity: sha512-MgV6D2dhpD6Hp/uroUoAIvFqA8AuvXEFBC2eepG3WFc1pxTfdk1LEqqkWoWhjz+rytoqrnUUCdf6Lzco3iHkLQ==} + peerDependencies: + '@vitest/browser': 3.1.1 + vitest: 3.1.1 + peerDependenciesMeta: + '@vitest/browser': + optional: true + '@vitest/expect@2.0.5': resolution: {integrity: sha512-yHZtwuP7JZivj65Gxoi8upUN2OzHTi3zVfjwdpu2WrvCZPLwsJ2Ey5ILIPccoW23dd/zQBlJ4/dhi7DWNyXCpA==} '@vitest/expect@3.0.9': resolution: {integrity: sha512-5eCqRItYgIML7NNVgJj6TVCmdzE7ZVgJhruW0ziSQV4V7PvLkDL1bBkBdcTs/VuIz0IxPb5da1IDSqc1TR9eig==} + '@vitest/expect@3.1.1': + resolution: {integrity: sha512-q/zjrW9lgynctNbwvFtQkGK9+vvHA5UzVi2V8APrp1C6fG6/MuYYkmlx4FubuqLycCeSdHD5aadWfua/Vr0EUA==} + '@vitest/mocker@3.0.9': resolution: {integrity: sha512-ryERPIBOnvevAkTq+L1lD+DTFBRcjueL9lOUfXsLfwP92h4e+Heb+PjiqS3/OURWPtywfafK0kj++yDFjWUmrA==} peerDependencies: @@ -3220,6 +3246,17 @@ packages: vite: optional: true + '@vitest/mocker@3.1.1': + resolution: {integrity: sha512-bmpJJm7Y7i9BBELlLuuM1J1Q6EQ6K5Ye4wcyOpOMXMcePYKSIYlpcrCm4l/O6ja4VJA5G2aMJiuZkZdnxlC3SA==} + peerDependencies: + msw: ^2.4.9 + vite: '>=5.1.7' + peerDependenciesMeta: + msw: + optional: true + vite: + optional: true + '@vitest/pretty-format@2.0.5': resolution: {integrity: sha512-h8k+1oWHfwTkyTkb9egzwNMfJAEx4veaPSnMeKbVSjp4euqGSbQlm5+6VHwTr7u4FJslVVsUG5nopCaAYdOmSQ==} @@ -3229,18 +3266,30 @@ packages: '@vitest/pretty-format@3.0.9': resolution: {integrity: sha512-OW9F8t2J3AwFEwENg3yMyKWweF7oRJlMyHOMIhO5F3n0+cgQAJZBjNgrF8dLwFTEXl5jUqBLXd9QyyKv8zEcmA==} + '@vitest/pretty-format@3.1.1': + resolution: {integrity: sha512-dg0CIzNx+hMMYfNmSqJlLSXEmnNhMswcn3sXO7Tpldr0LiGmg3eXdLLhwkv2ZqgHb/d5xg5F7ezNFRA1fA13yA==} + '@vitest/runner@3.0.9': resolution: {integrity: sha512-NX9oUXgF9HPfJSwl8tUZCMP1oGx2+Sf+ru6d05QjzQz4OwWg0psEzwY6VexP2tTHWdOkhKHUIZH+fS6nA7jfOw==} + '@vitest/runner@3.1.1': + resolution: {integrity: sha512-X/d46qzJuEDO8ueyjtKfxffiXraPRfmYasoC4i5+mlLEJ10UvPb0XH5M9C3gWuxd7BAQhpK42cJgJtq53YnWVA==} + '@vitest/snapshot@3.0.9': resolution: {integrity: sha512-AiLUiuZ0FuA+/8i19mTYd+re5jqjEc2jZbgJ2up0VY0Ddyyxg/uUtBDpIFAy4uzKaQxOW8gMgBdAJJ2ydhu39A==} + '@vitest/snapshot@3.1.1': + resolution: {integrity: sha512-bByMwaVWe/+1WDf9exFxWWgAixelSdiwo2p33tpqIlM14vW7PRV5ppayVXtfycqze4Qhtwag5sVhX400MLBOOw==} + '@vitest/spy@2.0.5': resolution: {integrity: sha512-c/jdthAhvJdpfVuaexSrnawxZz6pywlTPe84LUB2m/4t3rl2fTo9NFGBG4oWgaD+FTgDDV8hJ/nibT7IfH3JfA==} '@vitest/spy@3.0.9': resolution: {integrity: sha512-/CcK2UDl0aQ2wtkp3YVWldrpLRNCfVcIOFGlVGKO4R5eajsH393Z1yiXLVQ7vWsj26JOEjeZI0x5sm5P4OGUNQ==} + '@vitest/spy@3.1.1': + resolution: {integrity: sha512-+EmrUOOXbKzLkTDwlsc/xrwOlPDXyVk3Z6P6K4oiCndxz7YLpp/0R0UsWVOKT0IXWjjBJuSMk6D27qipaupcvQ==} + '@vitest/utils@2.0.5': resolution: {integrity: sha512-d8HKbqIcya+GR67mkZbrzhS5kKhtp8dQLcmRZLGTscGVg7yImT82cIrhtn2L8+VujWcy6KZweApgNmPsTAO/UQ==} @@ -3250,6 +3299,9 @@ packages: '@vitest/utils@3.0.9': resolution: {integrity: sha512-ilHM5fHhZ89MCp5aAaM9uhfl1c2JdxVxl3McqsdVyVNN6JffnEen8UMCdRTzOhGXNQGo5GNL9QugHrz727Wnng==} + '@vitest/utils@3.1.1': + resolution: {integrity: sha512-1XIjflyaU2k3HMArJ50bwSh3wKWPD6Q47wz/NUSmRV0zNywPc4w79ARjg/i/aNINHwA+mIALhUVqD9/aUvZNgg==} + '@webassemblyjs/ast@1.14.1': resolution: {integrity: sha512-nuBEDgQfm1ccRp/8bCQrx1frohyufl4JlbMMZ4P1wpeOfDhF6FQkxZJ1b/e+PLwr6X1Nhw6OLme5usuBWYBvuQ==} @@ -4338,8 +4390,8 @@ packages: resolution: {integrity: sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - eslint@9.23.0: - resolution: {integrity: sha512-jV7AbNoFPAY1EkFYpLq5bslU9NLNO8xnEeQXwErNibVryjk67wHVmddTBilc5srIttJDBrB0eMHKZBFbSIABCw==} + eslint@9.24.0: + resolution: {integrity: sha512-eh/jxIEJyZrvbWRe4XuVclLPDYSYYYgLy5zXGGxD6j8zjSAxFEzI2fL/8xNq6O2yKqVt+eF2YhV+hxjV6UKXwQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} hasBin: true peerDependencies: @@ -5322,8 +5374,8 @@ packages: resolution: {integrity: sha512-aXpZJRnTkpK6gQ/z4nk+ZBLd/Qdp118cvPruLSIQzQNRhKwEcdXCOzXuF55VDqIiuAaY3UGZ10DJtvZzDcvsxg==} engines: {node: '>=14.0.0'} - lerna@8.2.1: - resolution: {integrity: sha512-Xwjv9/4ixp7fpBWhtvp7dz4NoQT8DEf7hzibHKCgu/8kmZUHeXsTn+TKspHqhI+p4YDmdkDnkg8xmymz73kVOg==} + lerna@8.2.2: + resolution: {integrity: sha512-GkqBELTG4k7rfzAwRok2pKBvhNo046Hfwcj7TuhDah3q58/BBBAqvIFLfqEI5fglnNOs6maMSn6/MWjccQE55A==} engines: {node: '>=18.0.0'} hasBin: true @@ -5912,6 +5964,16 @@ packages: typescript: optional: true + msw@2.7.4: + resolution: {integrity: sha512-A2kuMopOjAjNEYkn0AnB1uj+x7oBjLIunFk7Ud4icEnVWFf6iBekn8oXW4zIwcpfEdWP9sLqyVaHVzneWoGEww==} + engines: {node: '>=18'} + hasBin: true + peerDependencies: + typescript: '>= 4.8.x' + peerDependenciesMeta: + typescript: + optional: true + multimatch@5.0.0: resolution: {integrity: sha512-ypMKuglUrZUD99Tk2bUQ+xNQj43lPEfAeX2o9cTteAmShXy2VHDJpuwu1o0xqoKCt9jLVAvwyFKdLTPXKAfJyA==} engines: {node: '>=10'} @@ -6588,6 +6650,11 @@ packages: peerDependencies: react: ^19.0.0 + react-dom@19.1.0: + resolution: {integrity: sha512-Xs1hdnE+DyKgeHJeJznQmYMIBG3TKIHJJT95Q58nHLSrElKlGQqDTR2HQ9fx5CN/Gk6Vh/kupBTDLU11/nDk/g==} + peerDependencies: + react: ^19.1.0 + react-element-to-jsx-string@15.0.0: resolution: {integrity: sha512-UDg4lXB6BzlobN60P8fHWVPX3Kyw8ORrTeBtClmIlGdkOOE+GYQSFvmEU5iLLpwp/6v42DINwNcwOhOLfQ//FQ==} peerDependencies: @@ -6613,6 +6680,10 @@ packages: resolution: {integrity: sha512-jCvmsr+1IUSMUyzOkRcvnVbX3ZYC6g9TDrDbFuFmRDq7PD4yaGbLKNQL6k2jnArV8hjYxh7hVhAZB6s9HDGpZA==} engines: {node: '>=0.10.0'} + react-refresh@0.17.0: + resolution: {integrity: sha512-z6F7K9bV85EfseRCp2bzrpyQ0Gkw1uLoCel9XBVWPg/TjRj94SkJzUTGfOa4bs7iJvBWtQG0Wq7wnI0syw3EBQ==} + engines: {node: '>=0.10.0'} + react-remove-scroll-bar@2.3.8: resolution: {integrity: sha512-9r+yi9+mgU33AKcj6IbT9oRCO78WriSj6t/cF8DWBZJ9aOGPOTEDvdUDz1FwKim7QXWwmHqtdHnRJfhAxEG46Q==} engines: {node: '>=10'} @@ -6656,6 +6727,10 @@ packages: resolution: {integrity: sha512-V8AVnmPIICiWpGfm6GLzCR/W5FXLchHop40W4nXBmdlEceh16rCN8O8LNWm5bh5XUX91fh7KpA+W0TgMKmgTpQ==} engines: {node: '>=0.10.0'} + react@19.1.0: + resolution: {integrity: sha512-FS+XFBNvn3GTAWq26joslQgWNoFu08F4kl0J4CgdNKADkdSGXQyTCnKteIAJy96Br6YbpEU1LSzV5dYtjMkMDg==} + engines: {node: '>=0.10.0'} + read-cmd-shim@4.0.0: resolution: {integrity: sha512-yILWifhaSEEytfXI76kB9xEEiG1AiozaCJZ83A87ytjRiN+jVibXjedjCRNjoZviinhG+4UkalO3mWTd8u5O0Q==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} @@ -6876,6 +6951,9 @@ packages: scheduler@0.25.0: resolution: {integrity: sha512-xFVuu11jh+xcO7JOAGJNOXld8/TcEHK/4CituBUeUb5hqxJLj9YuemAEuvm9gQ/+pgXYfbQuqAkiYu+u7YEsNA==} + scheduler@0.26.0: + resolution: {integrity: sha512-NlHwttCI/l5gCPR3D1nNXtWABUmBwvZpEQiD4IXSbIDq8BzLIK/7Ir5gTFSGZDUu37K5cMNp0hFtzO38sC7gWA==} + schema-utils@4.3.0: resolution: {integrity: sha512-Gf9qqc58SpCA/xdziiHz35F4GNIWYWZrEshUc/G/r5BnLph6xpKuLeoJoQuj5WfBIx/eQLf+hmVPYHaxJu7V2g==} engines: {node: '>= 10.13.0'} @@ -7054,8 +7132,8 @@ packages: resolution: {integrity: sha512-Wt04pPTO71pwmRmsgkyZhNo4Bvdb/1pBAMsIFb9nQLykEdzzpXjvingxFFvdOG4nIowzwgxD+CLlyRqVJqnATw==} hasBin: true - storybook@8.6.10: - resolution: {integrity: sha512-7LUD9hNllMZZhDJutxgejrpWI89rsBF+p2kCfWoJ9EuBTgRy8bbVQZlG7bE1gf7qLmnabnklsFslTakS2SbKRw==} + storybook@8.6.12: + resolution: {integrity: sha512-Z/nWYEHBTLK1ZBtAWdhxC0l5zf7ioJ7G4+zYqtTdYeb67gTnxNj80gehf8o8QY9L2zA2+eyMRGLC2V5fI7Z3Tw==} hasBin: true peerDependencies: prettier: ^2 || ^3 @@ -7424,8 +7502,8 @@ packages: typedarray@0.0.6: resolution: {integrity: sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==} - typescript-eslint@8.28.0: - resolution: {integrity: sha512-jfZtxJoHm59bvoCMYCe2BM0/baMswRhMmYhy+w6VfcyHrjxZ0OJe0tGasydCpIpA+A/WIJhTyZfb3EtwNC/kHQ==} + typescript-eslint@8.30.1: + resolution: {integrity: sha512-D7lC0kcehVH7Mb26MRQi64LMyRJsj3dToJxM1+JVTl53DQSV5/7oUGWQLcKl1C1KnoVHxMMU2FNQMffr7F3Row==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 @@ -7446,6 +7524,11 @@ packages: engines: {node: '>=14.17'} hasBin: true + typescript@5.8.3: + resolution: {integrity: sha512-p1diW6TqL9L07nNxvRMM7hMMw4c5XOo/1ibL4aAIGmSAt9slTE1Xgw5KWuof2uTOvCg9BY7ZRi+GaF+7sfgPeQ==} + engines: {node: '>=14.17'} + hasBin: true + ufo@1.5.4: resolution: {integrity: sha512-UsUk3byDzKd04EyoZ7U4DOlxQaD14JUKQl6/P7wiX4FNvUfm3XL246n9W5AmqwW5RSFJ27NAuM0iLscAOYUiGQ==} @@ -7647,6 +7730,11 @@ packages: engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0} hasBin: true + vite-node@3.1.1: + resolution: {integrity: sha512-V+IxPAE2FvXpTCHXyNem0M+gWm6J7eRyWPR6vYoG/Gl+IscNOjXzztUhimQgTxaAoUoj40Qqimaa0NLIOOAH4w==} + engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0} + hasBin: true + vite-tsconfig-paths@5.1.4: resolution: {integrity: sha512-cYj0LRuLV2c2sMqhqhGpaO3LretdtMn/BVX4cPLanIZuwwrkVl+lK84E/miEXkCHWXuq65rhNN4rXsBcOB3S4w==} peerDependencies: @@ -7735,6 +7823,46 @@ packages: yaml: optional: true + vite@6.3.1: + resolution: {integrity: sha512-kkzzkqtMESYklo96HKKPE5KKLkC1amlsqt+RjFMlX2AvbRB/0wghap19NdBxxwGZ+h/C6DLCrcEphPIItlGrRQ==} + engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0} + hasBin: true + peerDependencies: + '@types/node': ^18.0.0 || ^20.0.0 || >=22.0.0 + jiti: '>=1.21.0' + less: '*' + lightningcss: ^1.21.0 + sass: '*' + sass-embedded: '*' + stylus: '*' + sugarss: '*' + terser: ^5.16.0 + tsx: ^4.8.1 + yaml: ^2.4.2 + peerDependenciesMeta: + '@types/node': + optional: true + jiti: + optional: true + less: + optional: true + lightningcss: + optional: true + sass: + optional: true + sass-embedded: + optional: true + stylus: + optional: true + sugarss: + optional: true + terser: + optional: true + tsx: + optional: true + yaml: + optional: true + vitest@3.0.9: resolution: {integrity: sha512-BbcFDqNyBlfSpATmTtXOAOj71RNKDDvjBM/uPfnxxVGrG+FSH2RQIwgeEngTaTkuU/h0ScFvf+tRcKfYXzBybQ==} engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0} @@ -7763,6 +7891,34 @@ packages: jsdom: optional: true + vitest@3.1.1: + resolution: {integrity: sha512-kiZc/IYmKICeBAZr9DQ5rT7/6bD9G7uqQEki4fxazi1jdVl2mWGzedtBs5s6llz59yQhVb7FFY2MbHzHCnT79Q==} + engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0} + hasBin: true + peerDependencies: + '@edge-runtime/vm': '*' + '@types/debug': ^4.1.12 + '@types/node': ^18.0.0 || ^20.0.0 || >=22.0.0 + '@vitest/browser': 3.1.1 + '@vitest/ui': 3.1.1 + happy-dom: '*' + jsdom: '*' + peerDependenciesMeta: + '@edge-runtime/vm': + optional: true + '@types/debug': + optional: true + '@types/node': + optional: true + '@vitest/browser': + optional: true + '@vitest/ui': + optional: true + happy-dom: + optional: true + jsdom: + optional: true + w3c-xmlserializer@5.0.0: resolution: {integrity: sha512-o8qghlI8NZHU1lLPrpi2+Uq7abh4GGPpYANlalzWxyWteJOCsr/P+oPBA49TOLu5FTZO4d3F9MnWJfiMo4BkmA==} engines: {node: '>=18'} @@ -8812,13 +8968,13 @@ snapshots: '@types/tough-cookie': 4.0.5 tough-cookie: 4.1.4 - '@chromatic-com/storybook@3.2.6(react@19.0.0)(storybook@8.6.10(prettier@2.8.8))': + '@chromatic-com/storybook@3.2.6(react@19.1.0)(storybook@8.6.12(prettier@2.8.8))': dependencies: chromatic: 11.25.2 filesize: 10.1.6 jsonfile: 6.1.0 - react-confetti: 6.2.2(react@19.0.0) - storybook: 8.6.10(prettier@2.8.8) + react-confetti: 6.2.2(react@19.1.0) + storybook: 8.6.12(prettier@2.8.8) strip-ansi: 7.1.0 transitivePeerDependencies: - '@chromatic-com/cypress' @@ -8830,6 +8986,8 @@ snapshots: '@commercelayer/js-auth@6.7.1': {} + '@commercelayer/js-auth@6.7.2': {} + '@commercelayer/organization-config@2.2.0': dependencies: merge-anything: 5.1.7 @@ -8838,6 +8996,8 @@ snapshots: '@commercelayer/sdk@6.36.0': {} + '@commercelayer/sdk@6.39.0': {} + '@csstools/color-helpers@5.0.2': {} '@csstools/css-calc@2.1.2(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3)': @@ -9018,14 +9178,14 @@ snapshots: '@esbuild/win32-x64@0.25.1': optional: true - '@eslint-community/eslint-utils@4.4.1(eslint@9.23.0)': + '@eslint-community/eslint-utils@4.4.1(eslint@9.24.0)': dependencies: - eslint: 9.23.0 + eslint: 9.24.0 eslint-visitor-keys: 3.4.3 '@eslint-community/regexpp@4.12.1': {} - '@eslint/config-array@0.19.2': + '@eslint/config-array@0.20.0': dependencies: '@eslint/object-schema': 2.1.6 debug: 4.4.0 @@ -9053,7 +9213,7 @@ snapshots: transitivePeerDependencies: - supports-color - '@eslint/js@9.23.0': {} + '@eslint/js@9.24.0': {} '@eslint/object-schema@2.1.6': {} @@ -9196,14 +9356,14 @@ snapshots: optionalDependencies: typescript: 5.8.2 - '@joshwooding/vite-plugin-react-docgen-typescript@0.5.0(typescript@5.8.2)(vite@6.2.3(@types/node@22.13.14)(terser@5.39.0)(yaml@2.7.0))': + '@joshwooding/vite-plugin-react-docgen-typescript@0.5.0(typescript@5.8.3)(vite@6.3.1(@types/node@22.13.14)(terser@5.39.0)(yaml@2.7.0))': dependencies: glob: 10.4.5 magic-string: 0.27.0 - react-docgen-typescript: 2.2.2(typescript@5.8.2) - vite: 6.2.3(@types/node@22.13.14)(terser@5.39.0)(yaml@2.7.0) + react-docgen-typescript: 2.2.2(typescript@5.8.3) + vite: 6.3.1(@types/node@22.13.14)(terser@5.39.0)(yaml@2.7.0) optionalDependencies: - typescript: 5.8.2 + typescript: 5.8.3 '@jridgewell/gen-mapping@0.3.8': dependencies: @@ -9229,7 +9389,7 @@ snapshots: '@juggle/resize-observer@3.4.0': {} - '@lerna/create@8.2.1(encoding@0.1.13)(typescript@5.8.2)': + '@lerna/create@8.2.2(encoding@0.1.13)(typescript@5.8.3)': dependencies: '@npmcli/arborist': 7.5.4 '@npmcli/package-json': 5.2.0 @@ -9247,7 +9407,7 @@ snapshots: console-control-strings: 1.1.0 conventional-changelog-core: 5.0.1 conventional-recommended-bump: 7.0.1 - cosmiconfig: 9.0.0(typescript@5.8.2) + cosmiconfig: 9.0.0(typescript@5.8.3) dedent: 1.5.3 execa: 5.0.0 fs-extra: 11.3.0 @@ -9318,7 +9478,7 @@ snapshots: '@mdx-js/react@2.3.0(react@18.3.1)': dependencies: '@types/mdx': 2.0.13 - '@types/react': 18.3.18 + '@types/react': 19.1.2 react: 18.3.1 '@mdx-js/react@3.1.0(@types/react@18.3.18)(react@18.3.1)': @@ -9327,11 +9487,11 @@ snapshots: '@types/react': 18.3.18 react: 18.3.1 - '@mdx-js/react@3.1.0(@types/react@19.0.12)(react@19.0.0)': + '@mdx-js/react@3.1.0(@types/react@19.1.2)(react@19.1.0)': dependencies: '@types/mdx': 2.0.13 - '@types/react': 19.0.12 - react: 19.0.0 + '@types/react': 19.1.2 + react: 19.1.0 '@mswjs/interceptors@0.37.3': dependencies: @@ -9635,40 +9795,40 @@ snapshots: '@radix-ui/primitive@1.1.1': {} - '@radix-ui/react-arrow@1.0.3(@types/react-dom@19.0.4(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-arrow@1.0.3(@types/react-dom@19.1.2(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@babel/runtime': 7.26.10 - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@19.0.4(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@19.1.2(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) optionalDependencies: '@types/react': 18.3.18 - '@types/react-dom': 19.0.4(@types/react@18.3.18) + '@types/react-dom': 19.1.2(@types/react@18.3.18) - '@radix-ui/react-collection@1.0.3(@types/react-dom@19.0.4(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-collection@1.0.3(@types/react-dom@19.1.2(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@babel/runtime': 7.26.10 '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.3.18)(react@18.3.1) '@radix-ui/react-context': 1.0.1(@types/react@18.3.18)(react@18.3.1) - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@19.0.4(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@19.1.2(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@radix-ui/react-slot': 1.0.2(@types/react@18.3.18)(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) optionalDependencies: '@types/react': 18.3.18 - '@types/react-dom': 19.0.4(@types/react@18.3.18) + '@types/react-dom': 19.1.2(@types/react@18.3.18) - '@radix-ui/react-collection@1.1.1(@types/react-dom@19.0.4(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-collection@1.1.1(@types/react-dom@19.1.2(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@radix-ui/react-compose-refs': 1.1.1(@types/react@18.3.18)(react@18.3.1) '@radix-ui/react-context': 1.1.1(@types/react@18.3.18)(react@18.3.1) - '@radix-ui/react-primitive': 2.0.1(@types/react-dom@19.0.4(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-primitive': 2.0.1(@types/react-dom@19.1.2(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@radix-ui/react-slot': 1.1.1(@types/react@18.3.18)(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) optionalDependencies: '@types/react': 18.3.18 - '@types/react-dom': 19.0.4(@types/react@18.3.18) + '@types/react-dom': 19.1.2(@types/react@18.3.18) '@radix-ui/react-compose-refs@1.0.1(@types/react@18.3.18)(react@18.3.1)': dependencies: @@ -9709,19 +9869,19 @@ snapshots: optionalDependencies: '@types/react': 18.3.18 - '@radix-ui/react-dismissable-layer@1.0.4(@types/react-dom@19.0.4(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-dismissable-layer@1.0.4(@types/react-dom@19.1.2(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@babel/runtime': 7.26.10 '@radix-ui/primitive': 1.0.1 '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.3.18)(react@18.3.1) - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@19.0.4(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@19.1.2(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.3.18)(react@18.3.1) '@radix-ui/react-use-escape-keydown': 1.0.3(@types/react@18.3.18)(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) optionalDependencies: '@types/react': 18.3.18 - '@types/react-dom': 19.0.4(@types/react@18.3.18) + '@types/react-dom': 19.1.2(@types/react@18.3.18) '@radix-ui/react-focus-guards@1.0.1(@types/react@18.3.18)(react@18.3.1)': dependencies: @@ -9730,17 +9890,17 @@ snapshots: optionalDependencies: '@types/react': 18.3.18 - '@radix-ui/react-focus-scope@1.0.3(@types/react-dom@19.0.4(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-focus-scope@1.0.3(@types/react-dom@19.1.2(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@babel/runtime': 7.26.10 '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.3.18)(react@18.3.1) - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@19.0.4(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@19.1.2(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.3.18)(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) optionalDependencies: '@types/react': 18.3.18 - '@types/react-dom': 19.0.4(@types/react@18.3.18) + '@types/react-dom': 19.1.2(@types/react@18.3.18) '@radix-ui/react-id@1.0.1(@types/react@18.3.18)(react@18.3.1)': dependencies: @@ -9757,14 +9917,14 @@ snapshots: optionalDependencies: '@types/react': 18.3.18 - '@radix-ui/react-popper@1.1.2(@types/react-dom@19.0.4(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-popper@1.1.2(@types/react-dom@19.1.2(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@babel/runtime': 7.26.10 '@floating-ui/react-dom': 2.1.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-arrow': 1.0.3(@types/react-dom@19.0.4(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-arrow': 1.0.3(@types/react-dom@19.1.2(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.3.18)(react@18.3.1) '@radix-ui/react-context': 1.0.1(@types/react@18.3.18)(react@18.3.1) - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@19.0.4(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@19.1.2(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.3.18)(react@18.3.1) '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@18.3.18)(react@18.3.1) '@radix-ui/react-use-rect': 1.0.1(@types/react@18.3.18)(react@18.3.1) @@ -9774,19 +9934,19 @@ snapshots: react-dom: 18.3.1(react@18.3.1) optionalDependencies: '@types/react': 18.3.18 - '@types/react-dom': 19.0.4(@types/react@18.3.18) + '@types/react-dom': 19.1.2(@types/react@18.3.18) - '@radix-ui/react-portal@1.0.3(@types/react-dom@19.0.4(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-portal@1.0.3(@types/react-dom@19.1.2(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@babel/runtime': 7.26.10 - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@19.0.4(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@19.1.2(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) optionalDependencies: '@types/react': 18.3.18 - '@types/react-dom': 19.0.4(@types/react@18.3.18) + '@types/react-dom': 19.1.2(@types/react@18.3.18) - '@radix-ui/react-primitive@1.0.3(@types/react-dom@19.0.4(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-primitive@1.0.3(@types/react-dom@19.1.2(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@babel/runtime': 7.26.10 '@radix-ui/react-slot': 1.0.2(@types/react@18.3.18)(react@18.3.1) @@ -9794,72 +9954,72 @@ snapshots: react-dom: 18.3.1(react@18.3.1) optionalDependencies: '@types/react': 18.3.18 - '@types/react-dom': 19.0.4(@types/react@18.3.18) + '@types/react-dom': 19.1.2(@types/react@18.3.18) - '@radix-ui/react-primitive@2.0.1(@types/react-dom@19.0.4(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-primitive@2.0.1(@types/react-dom@19.1.2(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@radix-ui/react-slot': 1.1.1(@types/react@18.3.18)(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) optionalDependencies: '@types/react': 18.3.18 - '@types/react-dom': 19.0.4(@types/react@18.3.18) + '@types/react-dom': 19.1.2(@types/react@18.3.18) - '@radix-ui/react-roving-focus@1.1.1(@types/react-dom@19.0.4(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-roving-focus@1.1.1(@types/react-dom@19.1.2(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@radix-ui/primitive': 1.1.1 - '@radix-ui/react-collection': 1.1.1(@types/react-dom@19.0.4(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-collection': 1.1.1(@types/react-dom@19.1.2(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@radix-ui/react-compose-refs': 1.1.1(@types/react@18.3.18)(react@18.3.1) '@radix-ui/react-context': 1.1.1(@types/react@18.3.18)(react@18.3.1) '@radix-ui/react-direction': 1.1.0(@types/react@18.3.18)(react@18.3.1) '@radix-ui/react-id': 1.1.0(@types/react@18.3.18)(react@18.3.1) - '@radix-ui/react-primitive': 2.0.1(@types/react-dom@19.0.4(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-primitive': 2.0.1(@types/react-dom@19.1.2(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.3.18)(react@18.3.1) '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@18.3.18)(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) optionalDependencies: '@types/react': 18.3.18 - '@types/react-dom': 19.0.4(@types/react@18.3.18) + '@types/react-dom': 19.1.2(@types/react@18.3.18) - '@radix-ui/react-select@1.2.2(@types/react-dom@19.0.4(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-select@1.2.2(@types/react-dom@19.1.2(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@babel/runtime': 7.26.10 '@radix-ui/number': 1.0.1 '@radix-ui/primitive': 1.0.1 - '@radix-ui/react-collection': 1.0.3(@types/react-dom@19.0.4(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-collection': 1.0.3(@types/react-dom@19.1.2(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.3.18)(react@18.3.1) '@radix-ui/react-context': 1.0.1(@types/react@18.3.18)(react@18.3.1) '@radix-ui/react-direction': 1.0.1(@types/react@18.3.18)(react@18.3.1) - '@radix-ui/react-dismissable-layer': 1.0.4(@types/react-dom@19.0.4(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-dismissable-layer': 1.0.4(@types/react-dom@19.1.2(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@radix-ui/react-focus-guards': 1.0.1(@types/react@18.3.18)(react@18.3.1) - '@radix-ui/react-focus-scope': 1.0.3(@types/react-dom@19.0.4(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-focus-scope': 1.0.3(@types/react-dom@19.1.2(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@radix-ui/react-id': 1.0.1(@types/react@18.3.18)(react@18.3.1) - '@radix-ui/react-popper': 1.1.2(@types/react-dom@19.0.4(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-portal': 1.0.3(@types/react-dom@19.0.4(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@19.0.4(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-popper': 1.1.2(@types/react-dom@19.1.2(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-portal': 1.0.3(@types/react-dom@19.1.2(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@19.1.2(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@radix-ui/react-slot': 1.0.2(@types/react@18.3.18)(react@18.3.1) '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.3.18)(react@18.3.1) '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@18.3.18)(react@18.3.1) '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@18.3.18)(react@18.3.1) '@radix-ui/react-use-previous': 1.0.1(@types/react@18.3.18)(react@18.3.1) - '@radix-ui/react-visually-hidden': 1.0.3(@types/react-dom@19.0.4(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-visually-hidden': 1.0.3(@types/react-dom@19.1.2(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) aria-hidden: 1.2.4 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) react-remove-scroll: 2.5.5(@types/react@18.3.18)(react@18.3.1) optionalDependencies: '@types/react': 18.3.18 - '@types/react-dom': 19.0.4(@types/react@18.3.18) + '@types/react-dom': 19.1.2(@types/react@18.3.18) - '@radix-ui/react-separator@1.1.1(@types/react-dom@19.0.4(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-separator@1.1.1(@types/react-dom@19.1.2(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@radix-ui/react-primitive': 2.0.1(@types/react-dom@19.0.4(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-primitive': 2.0.1(@types/react-dom@19.1.2(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) optionalDependencies: '@types/react': 18.3.18 - '@types/react-dom': 19.0.4(@types/react@18.3.18) + '@types/react-dom': 19.1.2(@types/react@18.3.18) '@radix-ui/react-slot@1.0.2(@types/react@18.3.18)(react@18.3.1)': dependencies: @@ -9876,46 +10036,46 @@ snapshots: optionalDependencies: '@types/react': 18.3.18 - '@radix-ui/react-toggle-group@1.1.1(@types/react-dom@19.0.4(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-toggle-group@1.1.1(@types/react-dom@19.1.2(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@radix-ui/primitive': 1.1.1 '@radix-ui/react-context': 1.1.1(@types/react@18.3.18)(react@18.3.1) '@radix-ui/react-direction': 1.1.0(@types/react@18.3.18)(react@18.3.1) - '@radix-ui/react-primitive': 2.0.1(@types/react-dom@19.0.4(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-roving-focus': 1.1.1(@types/react-dom@19.0.4(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-toggle': 1.1.1(@types/react-dom@19.0.4(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-primitive': 2.0.1(@types/react-dom@19.1.2(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-roving-focus': 1.1.1(@types/react-dom@19.1.2(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-toggle': 1.1.1(@types/react-dom@19.1.2(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@18.3.18)(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) optionalDependencies: '@types/react': 18.3.18 - '@types/react-dom': 19.0.4(@types/react@18.3.18) + '@types/react-dom': 19.1.2(@types/react@18.3.18) - '@radix-ui/react-toggle@1.1.1(@types/react-dom@19.0.4(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-toggle@1.1.1(@types/react-dom@19.1.2(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@radix-ui/primitive': 1.1.1 - '@radix-ui/react-primitive': 2.0.1(@types/react-dom@19.0.4(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-primitive': 2.0.1(@types/react-dom@19.1.2(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@18.3.18)(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) optionalDependencies: '@types/react': 18.3.18 - '@types/react-dom': 19.0.4(@types/react@18.3.18) + '@types/react-dom': 19.1.2(@types/react@18.3.18) - '@radix-ui/react-toolbar@1.1.1(@types/react-dom@19.0.4(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-toolbar@1.1.1(@types/react-dom@19.1.2(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@radix-ui/primitive': 1.1.1 '@radix-ui/react-context': 1.1.1(@types/react@18.3.18)(react@18.3.1) '@radix-ui/react-direction': 1.1.0(@types/react@18.3.18)(react@18.3.1) - '@radix-ui/react-primitive': 2.0.1(@types/react-dom@19.0.4(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-roving-focus': 1.1.1(@types/react-dom@19.0.4(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-separator': 1.1.1(@types/react-dom@19.0.4(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-toggle-group': 1.1.1(@types/react-dom@19.0.4(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-primitive': 2.0.1(@types/react-dom@19.1.2(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-roving-focus': 1.1.1(@types/react-dom@19.1.2(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-separator': 1.1.1(@types/react-dom@19.1.2(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-toggle-group': 1.1.1(@types/react-dom@19.1.2(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) optionalDependencies: '@types/react': 18.3.18 - '@types/react-dom': 19.0.4(@types/react@18.3.18) + '@types/react-dom': 19.1.2(@types/react@18.3.18) '@radix-ui/react-use-callback-ref@1.0.1(@types/react@18.3.18)(react@18.3.1)': dependencies: @@ -9989,15 +10149,15 @@ snapshots: optionalDependencies: '@types/react': 18.3.18 - '@radix-ui/react-visually-hidden@1.0.3(@types/react-dom@19.0.4(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-visually-hidden@1.0.3(@types/react-dom@19.1.2(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@babel/runtime': 7.26.10 - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@19.0.4(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@19.1.2(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) optionalDependencies: '@types/react': 18.3.18 - '@types/react-dom': 19.0.4(@types/react@18.3.18) + '@types/react-dom': 19.1.2(@types/react@18.3.18) '@radix-ui/rect@1.0.1': dependencies: @@ -10118,13 +10278,13 @@ snapshots: polished: 4.3.1 uuid: 9.0.1 - '@storybook/addon-actions@8.6.10(storybook@8.6.10(prettier@2.8.8))': + '@storybook/addon-actions@8.6.12(storybook@8.6.12(prettier@2.8.8))': dependencies: '@storybook/global': 5.0.0 '@types/uuid': 9.0.8 dequal: 2.0.3 polished: 4.3.1 - storybook: 8.6.10(prettier@2.8.8) + storybook: 8.6.12(prettier@2.8.8) uuid: 9.0.1 '@storybook/addon-backgrounds@7.6.20': @@ -10133,16 +10293,16 @@ snapshots: memoizerific: 1.11.3 ts-dedent: 2.2.0 - '@storybook/addon-backgrounds@8.6.10(storybook@8.6.10(prettier@2.8.8))': + '@storybook/addon-backgrounds@8.6.12(storybook@8.6.12(prettier@2.8.8))': dependencies: '@storybook/global': 5.0.0 memoizerific: 1.11.3 - storybook: 8.6.10(prettier@2.8.8) + storybook: 8.6.12(prettier@2.8.8) ts-dedent: 2.2.0 - '@storybook/addon-controls@7.6.20(@types/react-dom@19.0.4(@types/react@18.3.18))(@types/react@18.3.18)(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@storybook/addon-controls@7.6.20(@types/react-dom@19.1.2(@types/react@18.3.18))(@types/react@18.3.18)(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@storybook/blocks': 7.6.20(@types/react-dom@19.0.4(@types/react@18.3.18))(@types/react@18.3.18)(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@storybook/blocks': 7.6.20(@types/react-dom@19.1.2(@types/react@18.3.18))(@types/react@18.3.18)(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) lodash: 4.17.21 ts-dedent: 2.2.0 transitivePeerDependencies: @@ -10153,20 +10313,20 @@ snapshots: - react-dom - supports-color - '@storybook/addon-controls@8.6.10(storybook@8.6.10(prettier@2.8.8))': + '@storybook/addon-controls@8.6.12(storybook@8.6.12(prettier@2.8.8))': dependencies: '@storybook/global': 5.0.0 dequal: 2.0.3 - storybook: 8.6.10(prettier@2.8.8) + storybook: 8.6.12(prettier@2.8.8) ts-dedent: 2.2.0 - '@storybook/addon-docs@7.6.20(@types/react-dom@19.0.4(@types/react@18.3.18))(@types/react@18.3.18)(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@storybook/addon-docs@7.6.20(@types/react-dom@19.1.2(@types/react@18.3.18))(@types/react@18.3.18)(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@jest/transform': 29.7.0 '@mdx-js/react': 2.3.0(react@18.3.1) - '@storybook/blocks': 7.6.20(@types/react-dom@19.0.4(@types/react@18.3.18))(@types/react@18.3.18)(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@storybook/blocks': 7.6.20(@types/react-dom@19.1.2(@types/react@18.3.18))(@types/react@18.3.18)(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@storybook/client-logger': 7.6.20 - '@storybook/components': 7.6.20(@types/react-dom@19.0.4(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@storybook/components': 7.6.20(@types/react-dom@19.1.2(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@storybook/csf-plugin': 7.6.20 '@storybook/csf-tools': 7.6.20 '@storybook/global': 5.0.0 @@ -10189,25 +10349,25 @@ snapshots: - encoding - supports-color - '@storybook/addon-docs@8.6.10(@types/react@19.0.12)(storybook@8.6.10(prettier@2.8.8))': + '@storybook/addon-docs@8.6.12(@types/react@19.1.2)(storybook@8.6.12(prettier@2.8.8))': dependencies: - '@mdx-js/react': 3.1.0(@types/react@19.0.12)(react@19.0.0) - '@storybook/blocks': 8.6.10(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(storybook@8.6.10(prettier@2.8.8)) - '@storybook/csf-plugin': 8.6.10(storybook@8.6.10(prettier@2.8.8)) - '@storybook/react-dom-shim': 8.6.10(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(storybook@8.6.10(prettier@2.8.8)) - react: 19.0.0 - react-dom: 19.0.0(react@19.0.0) - storybook: 8.6.10(prettier@2.8.8) + '@mdx-js/react': 3.1.0(@types/react@19.1.2)(react@19.1.0) + '@storybook/blocks': 8.6.12(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(storybook@8.6.12(prettier@2.8.8)) + '@storybook/csf-plugin': 8.6.12(storybook@8.6.12(prettier@2.8.8)) + '@storybook/react-dom-shim': 8.6.12(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(storybook@8.6.12(prettier@2.8.8)) + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + storybook: 8.6.12(prettier@2.8.8) ts-dedent: 2.2.0 transitivePeerDependencies: - '@types/react' - '@storybook/addon-essentials@7.6.20(@types/react-dom@19.0.4(@types/react@18.3.18))(@types/react@18.3.18)(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@storybook/addon-essentials@7.6.20(@types/react-dom@19.1.2(@types/react@18.3.18))(@types/react@18.3.18)(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@storybook/addon-actions': 7.6.20 '@storybook/addon-backgrounds': 7.6.20 - '@storybook/addon-controls': 7.6.20(@types/react-dom@19.0.4(@types/react@18.3.18))(@types/react@18.3.18)(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@storybook/addon-docs': 7.6.20(@types/react-dom@19.0.4(@types/react@18.3.18))(@types/react@18.3.18)(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@storybook/addon-controls': 7.6.20(@types/react-dom@19.1.2(@types/react@18.3.18))(@types/react@18.3.18)(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@storybook/addon-docs': 7.6.20(@types/react-dom@19.1.2(@types/react@18.3.18))(@types/react@18.3.18)(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@storybook/addon-highlight': 7.6.20 '@storybook/addon-measure': 7.6.20 '@storybook/addon-outline': 7.6.20 @@ -10226,18 +10386,18 @@ snapshots: - encoding - supports-color - '@storybook/addon-essentials@8.6.10(@types/react@19.0.12)(storybook@8.6.10(prettier@2.8.8))': - dependencies: - '@storybook/addon-actions': 8.6.10(storybook@8.6.10(prettier@2.8.8)) - '@storybook/addon-backgrounds': 8.6.10(storybook@8.6.10(prettier@2.8.8)) - '@storybook/addon-controls': 8.6.10(storybook@8.6.10(prettier@2.8.8)) - '@storybook/addon-docs': 8.6.10(@types/react@19.0.12)(storybook@8.6.10(prettier@2.8.8)) - '@storybook/addon-highlight': 8.6.10(storybook@8.6.10(prettier@2.8.8)) - '@storybook/addon-measure': 8.6.10(storybook@8.6.10(prettier@2.8.8)) - '@storybook/addon-outline': 8.6.10(storybook@8.6.10(prettier@2.8.8)) - '@storybook/addon-toolbars': 8.6.10(storybook@8.6.10(prettier@2.8.8)) - '@storybook/addon-viewport': 8.6.10(storybook@8.6.10(prettier@2.8.8)) - storybook: 8.6.10(prettier@2.8.8) + '@storybook/addon-essentials@8.6.12(@types/react@19.1.2)(storybook@8.6.12(prettier@2.8.8))': + dependencies: + '@storybook/addon-actions': 8.6.12(storybook@8.6.12(prettier@2.8.8)) + '@storybook/addon-backgrounds': 8.6.12(storybook@8.6.12(prettier@2.8.8)) + '@storybook/addon-controls': 8.6.12(storybook@8.6.12(prettier@2.8.8)) + '@storybook/addon-docs': 8.6.12(@types/react@19.1.2)(storybook@8.6.12(prettier@2.8.8)) + '@storybook/addon-highlight': 8.6.12(storybook@8.6.12(prettier@2.8.8)) + '@storybook/addon-measure': 8.6.12(storybook@8.6.12(prettier@2.8.8)) + '@storybook/addon-outline': 8.6.12(storybook@8.6.12(prettier@2.8.8)) + '@storybook/addon-toolbars': 8.6.12(storybook@8.6.12(prettier@2.8.8)) + '@storybook/addon-viewport': 8.6.12(storybook@8.6.12(prettier@2.8.8)) + storybook: 8.6.12(prettier@2.8.8) ts-dedent: 2.2.0 transitivePeerDependencies: - '@types/react' @@ -10246,10 +10406,10 @@ snapshots: dependencies: '@storybook/global': 5.0.0 - '@storybook/addon-highlight@8.6.10(storybook@8.6.10(prettier@2.8.8))': + '@storybook/addon-highlight@8.6.12(storybook@8.6.12(prettier@2.8.8))': dependencies: '@storybook/global': 5.0.0 - storybook: 8.6.10(prettier@2.8.8) + storybook: 8.6.12(prettier@2.8.8) '@storybook/addon-interactions@7.6.20': dependencies: @@ -10259,13 +10419,13 @@ snapshots: polished: 4.3.1 ts-dedent: 2.2.0 - '@storybook/addon-interactions@8.6.10(storybook@8.6.10(prettier@2.8.8))': + '@storybook/addon-interactions@8.6.12(storybook@8.6.12(prettier@2.8.8))': dependencies: '@storybook/global': 5.0.0 - '@storybook/instrumenter': 8.6.10(storybook@8.6.10(prettier@2.8.8)) - '@storybook/test': 8.6.10(storybook@8.6.10(prettier@2.8.8)) + '@storybook/instrumenter': 8.6.12(storybook@8.6.12(prettier@2.8.8)) + '@storybook/test': 8.6.12(storybook@8.6.12(prettier@2.8.8)) polished: 4.3.1 - storybook: 8.6.10(prettier@2.8.8) + storybook: 8.6.12(prettier@2.8.8) ts-dedent: 2.2.0 '@storybook/addon-links@7.6.20(react@18.3.1)': @@ -10276,13 +10436,13 @@ snapshots: optionalDependencies: react: 18.3.1 - '@storybook/addon-links@8.6.10(react@19.0.0)(storybook@8.6.10(prettier@2.8.8))': + '@storybook/addon-links@8.6.12(react@19.1.0)(storybook@8.6.12(prettier@2.8.8))': dependencies: '@storybook/global': 5.0.0 - storybook: 8.6.10(prettier@2.8.8) + storybook: 8.6.12(prettier@2.8.8) ts-dedent: 2.2.0 optionalDependencies: - react: 19.0.0 + react: 19.1.0 '@storybook/addon-mdx-gfm@7.6.20': dependencies: @@ -10292,10 +10452,10 @@ snapshots: transitivePeerDependencies: - supports-color - '@storybook/addon-mdx-gfm@8.6.10(storybook@8.6.10(prettier@2.8.8))': + '@storybook/addon-mdx-gfm@8.6.12(storybook@8.6.12(prettier@2.8.8))': dependencies: remark-gfm: 4.0.1 - storybook: 8.6.10(prettier@2.8.8) + storybook: 8.6.12(prettier@2.8.8) ts-dedent: 2.2.0 transitivePeerDependencies: - supports-color @@ -10305,41 +10465,41 @@ snapshots: '@storybook/global': 5.0.0 tiny-invariant: 1.3.3 - '@storybook/addon-measure@8.6.10(storybook@8.6.10(prettier@2.8.8))': + '@storybook/addon-measure@8.6.12(storybook@8.6.12(prettier@2.8.8))': dependencies: '@storybook/global': 5.0.0 - storybook: 8.6.10(prettier@2.8.8) + storybook: 8.6.12(prettier@2.8.8) tiny-invariant: 1.3.3 - '@storybook/addon-onboarding@8.6.10(storybook@8.6.10(prettier@2.8.8))': + '@storybook/addon-onboarding@8.6.12(storybook@8.6.12(prettier@2.8.8))': dependencies: - storybook: 8.6.10(prettier@2.8.8) + storybook: 8.6.12(prettier@2.8.8) '@storybook/addon-outline@7.6.20': dependencies: '@storybook/global': 5.0.0 ts-dedent: 2.2.0 - '@storybook/addon-outline@8.6.10(storybook@8.6.10(prettier@2.8.8))': + '@storybook/addon-outline@8.6.12(storybook@8.6.12(prettier@2.8.8))': dependencies: '@storybook/global': 5.0.0 - storybook: 8.6.10(prettier@2.8.8) + storybook: 8.6.12(prettier@2.8.8) ts-dedent: 2.2.0 '@storybook/addon-toolbars@7.6.20': {} - '@storybook/addon-toolbars@8.6.10(storybook@8.6.10(prettier@2.8.8))': + '@storybook/addon-toolbars@8.6.12(storybook@8.6.12(prettier@2.8.8))': dependencies: - storybook: 8.6.10(prettier@2.8.8) + storybook: 8.6.12(prettier@2.8.8) '@storybook/addon-viewport@7.6.20': dependencies: memoizerific: 1.11.3 - '@storybook/addon-viewport@8.6.10(storybook@8.6.10(prettier@2.8.8))': + '@storybook/addon-viewport@8.6.12(storybook@8.6.12(prettier@2.8.8))': dependencies: memoizerific: 1.11.3 - storybook: 8.6.10(prettier@2.8.8) + storybook: 8.6.12(prettier@2.8.8) '@storybook/addons@7.6.17(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: @@ -10358,11 +10518,11 @@ snapshots: - react - react-dom - '@storybook/blocks@7.6.20(@types/react-dom@19.0.4(@types/react@18.3.18))(@types/react@18.3.18)(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@storybook/blocks@7.6.20(@types/react-dom@19.1.2(@types/react@18.3.18))(@types/react@18.3.18)(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@storybook/channels': 7.6.20 '@storybook/client-logger': 7.6.20 - '@storybook/components': 7.6.20(@types/react-dom@19.0.4(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@storybook/components': 7.6.20(@types/react-dom@19.1.2(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@storybook/core-events': 7.6.20 '@storybook/csf': 0.1.13 '@storybook/docs-tools': 7.6.20(encoding@0.1.13) @@ -10391,14 +10551,14 @@ snapshots: - encoding - supports-color - '@storybook/blocks@8.6.10(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(storybook@8.6.10(prettier@2.8.8))': + '@storybook/blocks@8.6.12(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(storybook@8.6.12(prettier@2.8.8))': dependencies: - '@storybook/icons': 1.3.2(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - storybook: 8.6.10(prettier@2.8.8) + '@storybook/icons': 1.3.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + storybook: 8.6.12(prettier@2.8.8) ts-dedent: 2.2.0 optionalDependencies: - react: 19.0.0 - react-dom: 19.0.0(react@19.0.0) + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) '@storybook/builder-manager@7.6.20(encoding@0.1.13)': dependencies: @@ -10447,13 +10607,13 @@ snapshots: - encoding - supports-color - '@storybook/builder-vite@8.6.10(storybook@8.6.10(prettier@2.8.8))(vite@6.2.3(@types/node@22.13.14)(terser@5.39.0)(yaml@2.7.0))': + '@storybook/builder-vite@8.6.12(storybook@8.6.12(prettier@2.8.8))(vite@6.3.1(@types/node@22.13.14)(terser@5.39.0)(yaml@2.7.0))': dependencies: - '@storybook/csf-plugin': 8.6.10(storybook@8.6.10(prettier@2.8.8)) + '@storybook/csf-plugin': 8.6.12(storybook@8.6.12(prettier@2.8.8)) browser-assert: 1.2.1 - storybook: 8.6.10(prettier@2.8.8) + storybook: 8.6.12(prettier@2.8.8) ts-dedent: 2.2.0 - vite: 6.2.3(@types/node@22.13.14)(terser@5.39.0)(yaml@2.7.0) + vite: 6.3.1(@types/node@22.13.14)(terser@5.39.0)(yaml@2.7.0) '@storybook/channels@7.6.17': dependencies: @@ -10553,10 +10713,10 @@ snapshots: transitivePeerDependencies: - supports-color - '@storybook/components@7.6.20(@types/react-dom@19.0.4(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@storybook/components@7.6.20(@types/react-dom@19.1.2(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@radix-ui/react-select': 1.2.2(@types/react-dom@19.0.4(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-toolbar': 1.1.1(@types/react-dom@19.0.4(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-select': 1.2.2(@types/react-dom@19.1.2(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-toolbar': 1.1.1(@types/react-dom@19.1.2(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@storybook/client-logger': 7.6.20 '@storybook/csf': 0.1.13 '@storybook/global': 5.0.0 @@ -10571,9 +10731,9 @@ snapshots: - '@types/react' - '@types/react-dom' - '@storybook/components@8.6.10(storybook@8.6.10(prettier@2.8.8))': + '@storybook/components@8.6.12(storybook@8.6.12(prettier@2.8.8))': dependencies: - storybook: 8.6.10(prettier@2.8.8) + storybook: 8.6.12(prettier@2.8.8) '@storybook/core-client@7.6.20': dependencies: @@ -10665,9 +10825,9 @@ snapshots: - supports-color - utf-8-validate - '@storybook/core@8.6.10(prettier@2.8.8)(storybook@8.6.10(prettier@2.8.8))': + '@storybook/core@8.6.12(prettier@2.8.8)(storybook@8.6.12(prettier@2.8.8))': dependencies: - '@storybook/theming': 8.6.10(storybook@8.6.10(prettier@2.8.8)) + '@storybook/theming': 8.6.12(storybook@8.6.12(prettier@2.8.8)) better-opn: 3.0.2 browser-assert: 1.2.1 esbuild: 0.25.1 @@ -10693,9 +10853,9 @@ snapshots: transitivePeerDependencies: - supports-color - '@storybook/csf-plugin@8.6.10(storybook@8.6.10(prettier@2.8.8))': + '@storybook/csf-plugin@8.6.12(storybook@8.6.12(prettier@2.8.8))': dependencies: - storybook: 8.6.10(prettier@2.8.8) + storybook: 8.6.12(prettier@2.8.8) unplugin: 1.16.1 '@storybook/csf-tools@7.6.20': @@ -10733,16 +10893,16 @@ snapshots: '@storybook/global@5.0.0': {} - '@storybook/icons@1.3.2(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': + '@storybook/icons@1.3.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': dependencies: - react: 19.0.0 - react-dom: 19.0.0(react@19.0.0) + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) - '@storybook/instrumenter@8.6.10(storybook@8.6.10(prettier@2.8.8))': + '@storybook/instrumenter@8.6.12(storybook@8.6.12(prettier@2.8.8))': dependencies: '@storybook/global': 5.0.0 '@vitest/utils': 2.1.9 - storybook: 8.6.10(prettier@2.8.8) + storybook: 8.6.12(prettier@2.8.8) '@storybook/manager-api@7.6.17(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: @@ -10784,9 +10944,9 @@ snapshots: - react - react-dom - '@storybook/manager-api@8.6.10(storybook@8.6.10(prettier@2.8.8))': + '@storybook/manager-api@8.6.12(storybook@8.6.12(prettier@2.8.8))': dependencies: - storybook: 8.6.10(prettier@2.8.8) + storybook: 8.6.12(prettier@2.8.8) '@storybook/manager@7.6.20': {} @@ -10834,9 +10994,9 @@ snapshots: ts-dedent: 2.2.0 util-deprecate: 1.0.2 - '@storybook/preview-api@8.6.10(storybook@8.6.10(prettier@2.8.8))': + '@storybook/preview-api@8.6.12(storybook@8.6.12(prettier@2.8.8))': dependencies: - storybook: 8.6.10(prettier@2.8.8) + storybook: 8.6.12(prettier@2.8.8) '@storybook/preview@7.6.20': {} @@ -10845,11 +11005,11 @@ snapshots: react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - '@storybook/react-dom-shim@8.6.10(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(storybook@8.6.10(prettier@2.8.8))': + '@storybook/react-dom-shim@8.6.12(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(storybook@8.6.12(prettier@2.8.8))': dependencies: - react: 19.0.0 - react-dom: 19.0.0(react@19.0.0) - storybook: 8.6.10(prettier@2.8.8) + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + storybook: 8.6.12(prettier@2.8.8) '@storybook/react-vite@7.6.20(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rollup@4.35.0)(typescript@5.8.2)(vite@6.2.2(@types/node@22.13.14)(terser@5.39.0)(yaml@2.7.0))': dependencies: @@ -10871,23 +11031,23 @@ snapshots: - typescript - vite-plugin-glimmerx - '@storybook/react-vite@8.6.10(@storybook/test@8.6.10(storybook@8.6.10(prettier@2.8.8)))(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(rollup@4.35.0)(storybook@8.6.10(prettier@2.8.8))(typescript@5.8.2)(vite@6.2.3(@types/node@22.13.14)(terser@5.39.0)(yaml@2.7.0))': + '@storybook/react-vite@8.6.12(@storybook/test@8.6.12(storybook@8.6.12(prettier@2.8.8)))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(rollup@4.35.0)(storybook@8.6.12(prettier@2.8.8))(typescript@5.8.3)(vite@6.3.1(@types/node@22.13.14)(terser@5.39.0)(yaml@2.7.0))': dependencies: - '@joshwooding/vite-plugin-react-docgen-typescript': 0.5.0(typescript@5.8.2)(vite@6.2.3(@types/node@22.13.14)(terser@5.39.0)(yaml@2.7.0)) + '@joshwooding/vite-plugin-react-docgen-typescript': 0.5.0(typescript@5.8.3)(vite@6.3.1(@types/node@22.13.14)(terser@5.39.0)(yaml@2.7.0)) '@rollup/pluginutils': 5.1.4(rollup@4.35.0) - '@storybook/builder-vite': 8.6.10(storybook@8.6.10(prettier@2.8.8))(vite@6.2.3(@types/node@22.13.14)(terser@5.39.0)(yaml@2.7.0)) - '@storybook/react': 8.6.10(@storybook/test@8.6.10(storybook@8.6.10(prettier@2.8.8)))(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(storybook@8.6.10(prettier@2.8.8))(typescript@5.8.2) + '@storybook/builder-vite': 8.6.12(storybook@8.6.12(prettier@2.8.8))(vite@6.3.1(@types/node@22.13.14)(terser@5.39.0)(yaml@2.7.0)) + '@storybook/react': 8.6.12(@storybook/test@8.6.12(storybook@8.6.12(prettier@2.8.8)))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(storybook@8.6.12(prettier@2.8.8))(typescript@5.8.3) find-up: 5.0.0 magic-string: 0.30.17 - react: 19.0.0 + react: 19.1.0 react-docgen: 7.1.0 - react-dom: 19.0.0(react@19.0.0) + react-dom: 19.1.0(react@19.1.0) resolve: 1.22.10 - storybook: 8.6.10(prettier@2.8.8) + storybook: 8.6.12(prettier@2.8.8) tsconfig-paths: 4.2.0 - vite: 6.2.3(@types/node@22.13.14)(terser@5.39.0)(yaml@2.7.0) + vite: 6.3.1(@types/node@22.13.14)(terser@5.39.0)(yaml@2.7.0) optionalDependencies: - '@storybook/test': 8.6.10(storybook@8.6.10(prettier@2.8.8)) + '@storybook/test': 8.6.12(storybook@8.6.12(prettier@2.8.8)) transitivePeerDependencies: - rollup - supports-color @@ -10924,20 +11084,20 @@ snapshots: - encoding - supports-color - '@storybook/react@8.6.10(@storybook/test@8.6.10(storybook@8.6.10(prettier@2.8.8)))(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(storybook@8.6.10(prettier@2.8.8))(typescript@5.8.2)': + '@storybook/react@8.6.12(@storybook/test@8.6.12(storybook@8.6.12(prettier@2.8.8)))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(storybook@8.6.12(prettier@2.8.8))(typescript@5.8.3)': dependencies: - '@storybook/components': 8.6.10(storybook@8.6.10(prettier@2.8.8)) + '@storybook/components': 8.6.12(storybook@8.6.12(prettier@2.8.8)) '@storybook/global': 5.0.0 - '@storybook/manager-api': 8.6.10(storybook@8.6.10(prettier@2.8.8)) - '@storybook/preview-api': 8.6.10(storybook@8.6.10(prettier@2.8.8)) - '@storybook/react-dom-shim': 8.6.10(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(storybook@8.6.10(prettier@2.8.8)) - '@storybook/theming': 8.6.10(storybook@8.6.10(prettier@2.8.8)) - react: 19.0.0 - react-dom: 19.0.0(react@19.0.0) - storybook: 8.6.10(prettier@2.8.8) + '@storybook/manager-api': 8.6.12(storybook@8.6.12(prettier@2.8.8)) + '@storybook/preview-api': 8.6.12(storybook@8.6.12(prettier@2.8.8)) + '@storybook/react-dom-shim': 8.6.12(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(storybook@8.6.12(prettier@2.8.8)) + '@storybook/theming': 8.6.12(storybook@8.6.12(prettier@2.8.8)) + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + storybook: 8.6.12(prettier@2.8.8) optionalDependencies: - '@storybook/test': 8.6.10(storybook@8.6.10(prettier@2.8.8)) - typescript: 5.8.2 + '@storybook/test': 8.6.12(storybook@8.6.12(prettier@2.8.8)) + typescript: 5.8.3 '@storybook/router@7.6.17': dependencies: @@ -10965,16 +11125,16 @@ snapshots: - encoding - supports-color - '@storybook/test@8.6.10(storybook@8.6.10(prettier@2.8.8))': + '@storybook/test@8.6.12(storybook@8.6.12(prettier@2.8.8))': dependencies: '@storybook/global': 5.0.0 - '@storybook/instrumenter': 8.6.10(storybook@8.6.10(prettier@2.8.8)) + '@storybook/instrumenter': 8.6.12(storybook@8.6.12(prettier@2.8.8)) '@testing-library/dom': 10.4.0 '@testing-library/jest-dom': 6.5.0 '@testing-library/user-event': 14.5.2(@testing-library/dom@10.4.0) '@vitest/expect': 2.0.5 '@vitest/spy': 2.0.5 - storybook: 8.6.10(prettier@2.8.8) + storybook: 8.6.12(prettier@2.8.8) '@storybook/testing-library@0.2.2': dependencies: @@ -11000,9 +11160,9 @@ snapshots: react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - '@storybook/theming@8.6.10(storybook@8.6.10(prettier@2.8.8))': + '@storybook/theming@8.6.12(storybook@8.6.12(prettier@2.8.8))': dependencies: - storybook: 8.6.10(prettier@2.8.8) + storybook: 8.6.12(prettier@2.8.8) '@storybook/types@7.6.17': dependencies: @@ -11067,7 +11227,7 @@ snapshots: lodash: 4.17.21 redent: 3.0.0 - '@testing-library/react@16.2.0(@testing-library/dom@10.4.0)(@types/react-dom@19.0.4(@types/react@19.0.12))(@types/react@19.0.12)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': + '@testing-library/react@16.2.0(@testing-library/dom@10.4.0)(@types/react-dom@19.1.2(@types/react@19.0.12))(@types/react@19.0.12)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': dependencies: '@babel/runtime': 7.26.10 '@testing-library/dom': 10.4.0 @@ -11075,7 +11235,7 @@ snapshots: react-dom: 19.0.0(react@19.0.0) optionalDependencies: '@types/react': 19.0.12 - '@types/react-dom': 19.0.4(@types/react@19.0.12) + '@types/react-dom': 19.1.2(@types/react@19.0.12) '@testing-library/user-event@14.5.2(@testing-library/dom@10.4.0)': dependencies: @@ -11265,22 +11425,27 @@ snapshots: '@types/range-parser@1.2.7': {} - '@types/react-dom@19.0.4(@types/react@18.3.18)': + '@types/react-dom@19.1.2(@types/react@18.3.18)': dependencies: '@types/react': 18.3.18 optional: true - '@types/react-dom@19.0.4(@types/react@19.0.12)': + '@types/react-dom@19.1.2(@types/react@19.0.12)': dependencies: '@types/react': 19.0.12 + optional: true + + '@types/react-dom@19.1.2(@types/react@19.1.2)': + dependencies: + '@types/react': 19.1.2 '@types/react-test-renderer@19.0.0': dependencies: - '@types/react': 19.0.12 + '@types/react': 19.1.2 '@types/react-window@1.8.8': dependencies: - '@types/react': 19.0.12 + '@types/react': 19.1.2 '@types/react@18.3.18': dependencies: @@ -11291,6 +11456,10 @@ snapshots: dependencies: csstype: 3.1.3 + '@types/react@19.1.2': + dependencies: + csstype: 3.1.3 + '@types/resolve@1.20.6': {} '@types/semver@7.5.8': {} @@ -11326,32 +11495,32 @@ snapshots: dependencies: '@types/yargs-parser': 21.0.3 - '@typescript-eslint/eslint-plugin@8.28.0(@typescript-eslint/parser@8.28.0(eslint@9.23.0)(typescript@5.8.2))(eslint@9.23.0)(typescript@5.8.2)': + '@typescript-eslint/eslint-plugin@8.30.1(@typescript-eslint/parser@8.30.1(eslint@9.24.0)(typescript@5.8.3))(eslint@9.24.0)(typescript@5.8.3)': dependencies: '@eslint-community/regexpp': 4.12.1 - '@typescript-eslint/parser': 8.28.0(eslint@9.23.0)(typescript@5.8.2) - '@typescript-eslint/scope-manager': 8.28.0 - '@typescript-eslint/type-utils': 8.28.0(eslint@9.23.0)(typescript@5.8.2) - '@typescript-eslint/utils': 8.28.0(eslint@9.23.0)(typescript@5.8.2) - '@typescript-eslint/visitor-keys': 8.28.0 - eslint: 9.23.0 + '@typescript-eslint/parser': 8.30.1(eslint@9.24.0)(typescript@5.8.3) + '@typescript-eslint/scope-manager': 8.30.1 + '@typescript-eslint/type-utils': 8.30.1(eslint@9.24.0)(typescript@5.8.3) + '@typescript-eslint/utils': 8.30.1(eslint@9.24.0)(typescript@5.8.3) + '@typescript-eslint/visitor-keys': 8.30.1 + eslint: 9.24.0 graphemer: 1.4.0 ignore: 5.3.2 natural-compare: 1.4.0 - ts-api-utils: 2.0.1(typescript@5.8.2) - typescript: 5.8.2 + ts-api-utils: 2.0.1(typescript@5.8.3) + typescript: 5.8.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/parser@8.28.0(eslint@9.23.0)(typescript@5.8.2)': + '@typescript-eslint/parser@8.30.1(eslint@9.24.0)(typescript@5.8.3)': dependencies: - '@typescript-eslint/scope-manager': 8.28.0 - '@typescript-eslint/types': 8.28.0 - '@typescript-eslint/typescript-estree': 8.28.0(typescript@5.8.2) - '@typescript-eslint/visitor-keys': 8.28.0 + '@typescript-eslint/scope-manager': 8.30.1 + '@typescript-eslint/types': 8.30.1 + '@typescript-eslint/typescript-estree': 8.30.1(typescript@5.8.3) + '@typescript-eslint/visitor-keys': 8.30.1 debug: 4.4.0 - eslint: 9.23.0 - typescript: 5.8.2 + eslint: 9.24.0 + typescript: 5.8.3 transitivePeerDependencies: - supports-color @@ -11360,27 +11529,27 @@ snapshots: '@typescript-eslint/types': 8.23.0 '@typescript-eslint/visitor-keys': 8.23.0 - '@typescript-eslint/scope-manager@8.28.0': + '@typescript-eslint/scope-manager@8.30.1': dependencies: - '@typescript-eslint/types': 8.28.0 - '@typescript-eslint/visitor-keys': 8.28.0 + '@typescript-eslint/types': 8.30.1 + '@typescript-eslint/visitor-keys': 8.30.1 - '@typescript-eslint/type-utils@8.28.0(eslint@9.23.0)(typescript@5.8.2)': + '@typescript-eslint/type-utils@8.30.1(eslint@9.24.0)(typescript@5.8.3)': dependencies: - '@typescript-eslint/typescript-estree': 8.28.0(typescript@5.8.2) - '@typescript-eslint/utils': 8.28.0(eslint@9.23.0)(typescript@5.8.2) + '@typescript-eslint/typescript-estree': 8.30.1(typescript@5.8.3) + '@typescript-eslint/utils': 8.30.1(eslint@9.24.0)(typescript@5.8.3) debug: 4.4.0 - eslint: 9.23.0 - ts-api-utils: 2.0.1(typescript@5.8.2) - typescript: 5.8.2 + eslint: 9.24.0 + ts-api-utils: 2.0.1(typescript@5.8.3) + typescript: 5.8.3 transitivePeerDependencies: - supports-color '@typescript-eslint/types@8.23.0': {} - '@typescript-eslint/types@8.28.0': {} + '@typescript-eslint/types@8.30.1': {} - '@typescript-eslint/typescript-estree@8.23.0(typescript@5.8.2)': + '@typescript-eslint/typescript-estree@8.23.0(typescript@5.8.3)': dependencies: '@typescript-eslint/types': 8.23.0 '@typescript-eslint/visitor-keys': 8.23.0 @@ -11389,44 +11558,44 @@ snapshots: is-glob: 4.0.3 minimatch: 9.0.5 semver: 7.7.1 - ts-api-utils: 2.0.1(typescript@5.8.2) - typescript: 5.8.2 + ts-api-utils: 2.0.1(typescript@5.8.3) + typescript: 5.8.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/typescript-estree@8.28.0(typescript@5.8.2)': + '@typescript-eslint/typescript-estree@8.30.1(typescript@5.8.3)': dependencies: - '@typescript-eslint/types': 8.28.0 - '@typescript-eslint/visitor-keys': 8.28.0 + '@typescript-eslint/types': 8.30.1 + '@typescript-eslint/visitor-keys': 8.30.1 debug: 4.4.0 fast-glob: 3.3.3 is-glob: 4.0.3 minimatch: 9.0.5 semver: 7.7.1 - ts-api-utils: 2.0.1(typescript@5.8.2) - typescript: 5.8.2 + ts-api-utils: 2.0.1(typescript@5.8.3) + typescript: 5.8.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/utils@8.23.0(eslint@9.23.0)(typescript@5.8.2)': + '@typescript-eslint/utils@8.23.0(eslint@9.24.0)(typescript@5.8.3)': dependencies: - '@eslint-community/eslint-utils': 4.4.1(eslint@9.23.0) + '@eslint-community/eslint-utils': 4.4.1(eslint@9.24.0) '@typescript-eslint/scope-manager': 8.23.0 '@typescript-eslint/types': 8.23.0 - '@typescript-eslint/typescript-estree': 8.23.0(typescript@5.8.2) - eslint: 9.23.0 - typescript: 5.8.2 + '@typescript-eslint/typescript-estree': 8.23.0(typescript@5.8.3) + eslint: 9.24.0 + typescript: 5.8.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/utils@8.28.0(eslint@9.23.0)(typescript@5.8.2)': + '@typescript-eslint/utils@8.30.1(eslint@9.24.0)(typescript@5.8.3)': dependencies: - '@eslint-community/eslint-utils': 4.4.1(eslint@9.23.0) - '@typescript-eslint/scope-manager': 8.28.0 - '@typescript-eslint/types': 8.28.0 - '@typescript-eslint/typescript-estree': 8.28.0(typescript@5.8.2) - eslint: 9.23.0 - typescript: 5.8.2 + '@eslint-community/eslint-utils': 4.4.1(eslint@9.24.0) + '@typescript-eslint/scope-manager': 8.30.1 + '@typescript-eslint/types': 8.30.1 + '@typescript-eslint/typescript-estree': 8.30.1(typescript@5.8.3) + eslint: 9.24.0 + typescript: 5.8.3 transitivePeerDependencies: - supports-color @@ -11435,9 +11604,9 @@ snapshots: '@typescript-eslint/types': 8.23.0 eslint-visitor-keys: 4.2.0 - '@typescript-eslint/visitor-keys@8.28.0': + '@typescript-eslint/visitor-keys@8.30.1': dependencies: - '@typescript-eslint/types': 8.28.0 + '@typescript-eslint/types': 8.30.1 eslint-visitor-keys: 4.2.0 '@vitejs/plugin-react@3.1.0(vite@6.2.2(@types/node@22.13.14)(terser@5.39.0)(yaml@2.7.0))': @@ -11473,6 +11642,17 @@ snapshots: transitivePeerDependencies: - supports-color + '@vitejs/plugin-react@4.4.0(vite@6.3.1(@types/node@22.13.14)(terser@5.39.0)(yaml@2.7.0))': + dependencies: + '@babel/core': 7.26.10 + '@babel/plugin-transform-react-jsx-self': 7.25.9(@babel/core@7.26.10) + '@babel/plugin-transform-react-jsx-source': 7.25.9(@babel/core@7.26.10) + '@types/babel__core': 7.20.5 + react-refresh: 0.17.0 + vite: 6.3.1(@types/node@22.13.14)(terser@5.39.0)(yaml@2.7.0) + transitivePeerDependencies: + - supports-color + '@vitest/coverage-v8@3.0.9(vitest@3.0.9(@types/debug@4.1.12)(@types/node@22.13.14)(jsdom@26.0.0)(msw@2.7.3(@types/node@22.13.14)(typescript@5.8.2))(terser@5.39.0)(yaml@2.7.0))': dependencies: '@ampproject/remapping': 2.3.0 @@ -11491,6 +11671,24 @@ snapshots: transitivePeerDependencies: - supports-color + '@vitest/coverage-v8@3.1.1(vitest@3.1.1(@types/debug@4.1.12)(@types/node@22.13.14)(jsdom@26.0.0)(msw@2.7.4(@types/node@22.13.14)(typescript@5.8.3))(terser@5.39.0)(yaml@2.7.0))': + dependencies: + '@ampproject/remapping': 2.3.0 + '@bcoe/v8-coverage': 1.0.2 + debug: 4.4.0 + istanbul-lib-coverage: 3.2.2 + istanbul-lib-report: 3.0.1 + istanbul-lib-source-maps: 5.0.6 + istanbul-reports: 3.1.7 + magic-string: 0.30.17 + magicast: 0.3.5 + std-env: 3.8.1 + test-exclude: 7.0.1 + tinyrainbow: 2.0.0 + vitest: 3.1.1(@types/debug@4.1.12)(@types/node@22.13.14)(jsdom@26.0.0)(msw@2.7.4(@types/node@22.13.14)(typescript@5.8.3))(terser@5.39.0)(yaml@2.7.0) + transitivePeerDependencies: + - supports-color + '@vitest/expect@2.0.5': dependencies: '@vitest/spy': 2.0.5 @@ -11505,14 +11703,30 @@ snapshots: chai: 5.2.0 tinyrainbow: 2.0.0 - '@vitest/mocker@3.0.9(msw@2.7.3(@types/node@22.13.14)(typescript@5.8.2))(vite@6.2.3(@types/node@22.13.14)(terser@5.39.0)(yaml@2.7.0))': + '@vitest/expect@3.1.1': + dependencies: + '@vitest/spy': 3.1.1 + '@vitest/utils': 3.1.1 + chai: 5.2.0 + tinyrainbow: 2.0.0 + + '@vitest/mocker@3.0.9(msw@2.7.3(@types/node@22.13.14)(typescript@5.8.2))(vite@6.3.1(@types/node@22.13.14)(terser@5.39.0)(yaml@2.7.0))': dependencies: '@vitest/spy': 3.0.9 estree-walker: 3.0.3 magic-string: 0.30.17 optionalDependencies: msw: 2.7.3(@types/node@22.13.14)(typescript@5.8.2) - vite: 6.2.3(@types/node@22.13.14)(terser@5.39.0)(yaml@2.7.0) + vite: 6.3.1(@types/node@22.13.14)(terser@5.39.0)(yaml@2.7.0) + + '@vitest/mocker@3.1.1(msw@2.7.4(@types/node@22.13.14)(typescript@5.8.3))(vite@6.3.1(@types/node@22.13.14)(terser@5.39.0)(yaml@2.7.0))': + dependencies: + '@vitest/spy': 3.1.1 + estree-walker: 3.0.3 + magic-string: 0.30.17 + optionalDependencies: + msw: 2.7.4(@types/node@22.13.14)(typescript@5.8.3) + vite: 6.3.1(@types/node@22.13.14)(terser@5.39.0)(yaml@2.7.0) '@vitest/pretty-format@2.0.5': dependencies: @@ -11526,17 +11740,32 @@ snapshots: dependencies: tinyrainbow: 2.0.0 + '@vitest/pretty-format@3.1.1': + dependencies: + tinyrainbow: 2.0.0 + '@vitest/runner@3.0.9': dependencies: '@vitest/utils': 3.0.9 pathe: 2.0.3 + '@vitest/runner@3.1.1': + dependencies: + '@vitest/utils': 3.1.1 + pathe: 2.0.3 + '@vitest/snapshot@3.0.9': dependencies: '@vitest/pretty-format': 3.0.9 magic-string: 0.30.17 pathe: 2.0.3 + '@vitest/snapshot@3.1.1': + dependencies: + '@vitest/pretty-format': 3.1.1 + magic-string: 0.30.17 + pathe: 2.0.3 + '@vitest/spy@2.0.5': dependencies: tinyspy: 3.0.2 @@ -11545,6 +11774,10 @@ snapshots: dependencies: tinyspy: 3.0.2 + '@vitest/spy@3.1.1': + dependencies: + tinyspy: 3.0.2 + '@vitest/utils@2.0.5': dependencies: '@vitest/pretty-format': 2.0.5 @@ -11564,6 +11797,12 @@ snapshots: loupe: 3.1.3 tinyrainbow: 2.0.0 + '@vitest/utils@3.1.1': + dependencies: + '@vitest/pretty-format': 3.1.1 + loupe: 3.1.3 + tinyrainbow: 2.0.0 + '@webassemblyjs/ast@1.14.1': dependencies: '@webassemblyjs/helper-numbers': 1.13.2 @@ -12315,14 +12554,14 @@ snapshots: core-util-is@1.0.3: {} - cosmiconfig@9.0.0(typescript@5.8.2): + cosmiconfig@9.0.0(typescript@5.8.3): dependencies: env-paths: 2.2.1 import-fresh: 3.3.1 js-yaml: 4.1.0 parse-json: 5.2.0 optionalDependencies: - typescript: 5.8.2 + typescript: 5.8.3 credit-card-type@10.0.2: {} @@ -12691,19 +12930,19 @@ snapshots: optionalDependencies: source-map: 0.6.1 - eslint-plugin-react-hooks@5.2.0(eslint@9.23.0): + eslint-plugin-react-hooks@5.2.0(eslint@9.24.0): dependencies: - eslint: 9.23.0 + eslint: 9.24.0 - eslint-plugin-react-refresh@0.4.19(eslint@9.23.0): + eslint-plugin-react-refresh@0.4.19(eslint@9.24.0): dependencies: - eslint: 9.23.0 + eslint: 9.24.0 - eslint-plugin-storybook@0.12.0(eslint@9.23.0)(typescript@5.8.2): + eslint-plugin-storybook@0.12.0(eslint@9.24.0)(typescript@5.8.3): dependencies: '@storybook/csf': 0.1.13 - '@typescript-eslint/utils': 8.23.0(eslint@9.23.0)(typescript@5.8.2) - eslint: 9.23.0 + '@typescript-eslint/utils': 8.23.0(eslint@9.24.0)(typescript@5.8.3) + eslint: 9.24.0 ts-dedent: 2.2.0 transitivePeerDependencies: - supports-color @@ -12723,15 +12962,15 @@ snapshots: eslint-visitor-keys@4.2.0: {} - eslint@9.23.0: + eslint@9.24.0: dependencies: - '@eslint-community/eslint-utils': 4.4.1(eslint@9.23.0) + '@eslint-community/eslint-utils': 4.4.1(eslint@9.24.0) '@eslint-community/regexpp': 4.12.1 - '@eslint/config-array': 0.19.2 + '@eslint/config-array': 0.20.0 '@eslint/config-helpers': 0.2.0 '@eslint/core': 0.12.0 '@eslint/eslintrc': 3.3.1 - '@eslint/js': 9.23.0 + '@eslint/js': 9.24.0 '@eslint/plugin-kit': 0.2.7 '@humanfs/node': 0.16.6 '@humanwhocodes/module-importer': 1.0.1 @@ -13810,9 +14049,9 @@ snapshots: dotenv: 16.4.7 dotenv-expand: 10.0.0 - lerna@8.2.1(encoding@0.1.13): + lerna@8.2.2(encoding@0.1.13): dependencies: - '@lerna/create': 8.2.1(encoding@0.1.13)(typescript@5.8.2) + '@lerna/create': 8.2.2(encoding@0.1.13)(typescript@5.8.3) '@npmcli/arborist': 7.5.4 '@npmcli/package-json': 5.2.0 '@npmcli/run-script': 8.1.0 @@ -13830,7 +14069,7 @@ snapshots: conventional-changelog-angular: 7.0.0 conventional-changelog-core: 5.0.1 conventional-recommended-bump: 7.0.1 - cosmiconfig: 9.0.0(typescript@5.8.2) + cosmiconfig: 9.0.0(typescript@5.8.3) dedent: 1.5.3 envinfo: 7.13.0 execa: 5.0.0 @@ -13882,7 +14121,7 @@ snapshots: strong-log-transformer: 2.1.0 tar: 6.2.1 temp-dir: 1.0.0 - typescript: 5.8.2 + typescript: 5.8.3 upath: 2.0.1 uuid: 10.0.0 validate-npm-package-license: 3.0.4 @@ -14844,6 +15083,31 @@ snapshots: transitivePeerDependencies: - '@types/node' + msw@2.7.4(@types/node@22.13.14)(typescript@5.8.3): + dependencies: + '@bundled-es-modules/cookie': 2.0.1 + '@bundled-es-modules/statuses': 1.0.1 + '@bundled-es-modules/tough-cookie': 0.1.6 + '@inquirer/confirm': 5.1.8(@types/node@22.13.14) + '@mswjs/interceptors': 0.37.3 + '@open-draft/deferred-promise': 2.2.0 + '@open-draft/until': 2.1.0 + '@types/cookie': 0.6.0 + '@types/statuses': 2.0.5 + graphql: 16.10.0 + headers-polyfill: 4.0.3 + is-node-process: 1.2.0 + outvariant: 1.4.3 + path-to-regexp: 6.3.0 + picocolors: 1.1.1 + strict-event-emitter: 0.5.1 + type-fest: 4.37.0 + yargs: 17.7.2 + optionalDependencies: + typescript: 5.8.3 + transitivePeerDependencies: + - '@types/node' + multimatch@5.0.0: dependencies: '@types/minimatch': 3.0.5 @@ -15531,15 +15795,19 @@ snapshots: react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - react-confetti@6.2.2(react@19.0.0): + react-confetti@6.2.2(react@19.1.0): dependencies: - react: 19.0.0 + react: 19.1.0 tween-functions: 1.2.0 react-docgen-typescript@2.2.2(typescript@5.8.2): dependencies: typescript: 5.8.2 + react-docgen-typescript@2.2.2(typescript@5.8.3): + dependencies: + typescript: 5.8.3 + react-docgen@7.1.0: dependencies: '@babel/core': 7.26.10 @@ -15566,6 +15834,11 @@ snapshots: react: 19.0.0 scheduler: 0.25.0 + react-dom@19.1.0(react@19.1.0): + dependencies: + react: 19.1.0 + scheduler: 0.26.0 + react-element-to-jsx-string@15.0.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1): dependencies: '@base2/pretty-print-object': 1.0.1 @@ -15586,6 +15859,8 @@ snapshots: react-refresh@0.14.2: {} + react-refresh@0.17.0: {} + react-remove-scroll-bar@2.3.8(@types/react@18.3.18)(react@18.3.1): dependencies: react: 18.3.1 @@ -15625,6 +15900,8 @@ snapshots: react@19.0.0: {} + react@19.1.0: {} + read-cmd-shim@4.0.0: {} read-package-json-fast@3.0.2: @@ -15908,6 +16185,8 @@ snapshots: scheduler@0.25.0: {} + scheduler@0.26.0: {} + schema-utils@4.3.0: dependencies: '@types/json-schema': 7.0.15 @@ -16121,9 +16400,9 @@ snapshots: - supports-color - utf-8-validate - storybook@8.6.10(prettier@2.8.8): + storybook@8.6.12(prettier@2.8.8): dependencies: - '@storybook/core': 8.6.10(prettier@2.8.8)(storybook@8.6.10(prettier@2.8.8)) + '@storybook/core': 8.6.12(prettier@2.8.8)(storybook@8.6.12(prettier@2.8.8)) optionalDependencies: prettier: 2.8.8 transitivePeerDependencies: @@ -16377,9 +16656,9 @@ snapshots: trough@2.2.0: {} - ts-api-utils@2.0.1(typescript@5.8.2): + ts-api-utils@2.0.1(typescript@5.8.3): dependencies: - typescript: 5.8.2 + typescript: 5.8.3 ts-dedent@2.2.0: {} @@ -16398,6 +16677,10 @@ snapshots: optionalDependencies: typescript: 5.8.2 + tsconfck@3.1.5(typescript@5.8.3): + optionalDependencies: + typescript: 5.8.3 + tsconfig-paths@4.2.0: dependencies: json5: 2.2.3 @@ -16408,7 +16691,7 @@ snapshots: tslib@2.8.1: {} - tsup@8.4.0(postcss@8.5.3)(typescript@5.8.2)(yaml@2.7.0): + tsup@8.4.0(postcss@8.5.3)(typescript@5.8.3)(yaml@2.7.0): dependencies: bundle-require: 5.1.0(esbuild@0.25.1) cac: 6.7.14 @@ -16428,7 +16711,7 @@ snapshots: tree-kill: 1.2.2 optionalDependencies: postcss: 8.5.3 - typescript: 5.8.2 + typescript: 5.8.3 transitivePeerDependencies: - jiti - supports-color @@ -16472,13 +16755,13 @@ snapshots: typedarray@0.0.6: {} - typescript-eslint@8.28.0(eslint@9.23.0)(typescript@5.8.2): + typescript-eslint@8.30.1(eslint@9.24.0)(typescript@5.8.3): dependencies: - '@typescript-eslint/eslint-plugin': 8.28.0(@typescript-eslint/parser@8.28.0(eslint@9.23.0)(typescript@5.8.2))(eslint@9.23.0)(typescript@5.8.2) - '@typescript-eslint/parser': 8.28.0(eslint@9.23.0)(typescript@5.8.2) - '@typescript-eslint/utils': 8.28.0(eslint@9.23.0)(typescript@5.8.2) - eslint: 9.23.0 - typescript: 5.8.2 + '@typescript-eslint/eslint-plugin': 8.30.1(@typescript-eslint/parser@8.30.1(eslint@9.24.0)(typescript@5.8.3))(eslint@9.24.0)(typescript@5.8.3) + '@typescript-eslint/parser': 8.30.1(eslint@9.24.0)(typescript@5.8.3) + '@typescript-eslint/utils': 8.30.1(eslint@9.24.0)(typescript@5.8.3) + eslint: 9.24.0 + typescript: 5.8.3 transitivePeerDependencies: - supports-color @@ -16488,6 +16771,8 @@ snapshots: typescript@5.8.2: {} + typescript@5.8.3: {} + ufo@1.5.4: {} uglify-js@3.19.3: @@ -16706,7 +16991,28 @@ snapshots: debug: 4.4.0 es-module-lexer: 1.6.0 pathe: 2.0.3 - vite: 6.2.3(@types/node@22.13.14)(terser@5.39.0)(yaml@2.7.0) + vite: 6.3.1(@types/node@22.13.14)(terser@5.39.0)(yaml@2.7.0) + transitivePeerDependencies: + - '@types/node' + - jiti + - less + - lightningcss + - sass + - sass-embedded + - stylus + - sugarss + - supports-color + - terser + - tsx + - yaml + + vite-node@3.1.1(@types/node@22.13.14)(terser@5.39.0)(yaml@2.7.0): + dependencies: + cac: 6.7.14 + debug: 4.4.0 + es-module-lexer: 1.6.0 + pathe: 2.0.3 + vite: 6.3.1(@types/node@22.13.14)(terser@5.39.0)(yaml@2.7.0) transitivePeerDependencies: - '@types/node' - jiti @@ -16743,6 +17049,17 @@ snapshots: - supports-color - typescript + vite-tsconfig-paths@5.1.4(typescript@5.8.3)(vite@6.3.1(@types/node@22.13.14)(terser@5.39.0)(yaml@2.7.0)): + dependencies: + debug: 4.4.0 + globrex: 0.1.2 + tsconfck: 3.1.5(typescript@5.8.3) + optionalDependencies: + vite: 6.3.1(@types/node@22.13.14)(terser@5.39.0)(yaml@2.7.0) + transitivePeerDependencies: + - supports-color + - typescript + vite@6.2.2(@types/node@22.13.14)(terser@5.39.0)(yaml@2.7.0): dependencies: esbuild: 0.25.1 @@ -16765,10 +17082,24 @@ snapshots: terser: 5.39.0 yaml: 2.7.0 + vite@6.3.1(@types/node@22.13.14)(terser@5.39.0)(yaml@2.7.0): + dependencies: + esbuild: 0.25.1 + fdir: 6.4.3(picomatch@4.0.2) + picomatch: 4.0.2 + postcss: 8.5.3 + rollup: 4.35.0 + tinyglobby: 0.2.12 + optionalDependencies: + '@types/node': 22.13.14 + fsevents: 2.3.3 + terser: 5.39.0 + yaml: 2.7.0 + vitest@3.0.9(@types/debug@4.1.12)(@types/node@22.13.14)(jsdom@26.0.0)(msw@2.7.3(@types/node@22.13.14)(typescript@5.8.2))(terser@5.39.0)(yaml@2.7.0): dependencies: '@vitest/expect': 3.0.9 - '@vitest/mocker': 3.0.9(msw@2.7.3(@types/node@22.13.14)(typescript@5.8.2))(vite@6.2.3(@types/node@22.13.14)(terser@5.39.0)(yaml@2.7.0)) + '@vitest/mocker': 3.0.9(msw@2.7.3(@types/node@22.13.14)(typescript@5.8.2))(vite@6.3.1(@types/node@22.13.14)(terser@5.39.0)(yaml@2.7.0)) '@vitest/pretty-format': 3.0.9 '@vitest/runner': 3.0.9 '@vitest/snapshot': 3.0.9 @@ -16784,7 +17115,7 @@ snapshots: tinyexec: 0.3.2 tinypool: 1.0.2 tinyrainbow: 2.0.0 - vite: 6.2.3(@types/node@22.13.14)(terser@5.39.0)(yaml@2.7.0) + vite: 6.3.1(@types/node@22.13.14)(terser@5.39.0)(yaml@2.7.0) vite-node: 3.0.9(@types/node@22.13.14)(terser@5.39.0)(yaml@2.7.0) why-is-node-running: 2.3.0 optionalDependencies: @@ -16805,6 +17136,46 @@ snapshots: - tsx - yaml + vitest@3.1.1(@types/debug@4.1.12)(@types/node@22.13.14)(jsdom@26.0.0)(msw@2.7.4(@types/node@22.13.14)(typescript@5.8.3))(terser@5.39.0)(yaml@2.7.0): + dependencies: + '@vitest/expect': 3.1.1 + '@vitest/mocker': 3.1.1(msw@2.7.4(@types/node@22.13.14)(typescript@5.8.3))(vite@6.3.1(@types/node@22.13.14)(terser@5.39.0)(yaml@2.7.0)) + '@vitest/pretty-format': 3.1.1 + '@vitest/runner': 3.1.1 + '@vitest/snapshot': 3.1.1 + '@vitest/spy': 3.1.1 + '@vitest/utils': 3.1.1 + chai: 5.2.0 + debug: 4.4.0 + expect-type: 1.2.0 + magic-string: 0.30.17 + pathe: 2.0.3 + std-env: 3.8.1 + tinybench: 2.9.0 + tinyexec: 0.3.2 + tinypool: 1.0.2 + tinyrainbow: 2.0.0 + vite: 6.3.1(@types/node@22.13.14)(terser@5.39.0)(yaml@2.7.0) + vite-node: 3.1.1(@types/node@22.13.14)(terser@5.39.0)(yaml@2.7.0) + why-is-node-running: 2.3.0 + optionalDependencies: + '@types/debug': 4.1.12 + '@types/node': 22.13.14 + jsdom: 26.0.0 + transitivePeerDependencies: + - jiti + - less + - lightningcss + - msw + - sass + - sass-embedded + - stylus + - sugarss + - supports-color + - terser + - tsx + - yaml + w3c-xmlserializer@5.0.0: dependencies: xml-name-validator: 5.0.0