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: () => (
+
+
+
+
+
+
+
+
+ ),
+ // 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 (
+//
+//
+//
+// )
+// }
+
+// return
+// }
+
+// export const withLocale: Decorator = (Story, context) => {
+// const locale = "en-US"
+// return (
+//
+//
+//
+// )
+// }
+
+// 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 @@
+
+
+
+
+
+
+ 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 00000000..77e678b5
Binary files /dev/null and b/packages/document/public/app-logo.png differ
diff --git a/packages/document/public/mockServiceWorker.js b/packages/document/public/mockServiceWorker.js
new file mode 100644
index 00000000..87e0f31b
--- /dev/null
+++ b/packages/document/public/mockServiceWorker.js
@@ -0,0 +1,303 @@
+/* eslint-disable */
+/* tslint:disable */
+
+/**
+ * Mock Service Worker (1.2.1).
+ * @see https://github.com/mswjs/msw
+ * - Please do NOT modify this file.
+ * - Please do NOT serve this file on production.
+ */
+
+const INTEGRITY_CHECKSUM = '3d6b9f06410d179a7f7404d4bf4c3c70'
+const activeClientIds = new Set()
+
+self.addEventListener('install', function () {
+ self.skipWaiting()
+})
+
+self.addEventListener('activate', function (event) {
+ event.waitUntil(self.clients.claim())
+})
+
+self.addEventListener('message', async function (event) {
+ const clientId = event.source.id
+
+ if (!clientId || !self.clients) {
+ return
+ }
+
+ const client = await self.clients.get(clientId)
+
+ if (!client) {
+ return
+ }
+
+ const allClients = await self.clients.matchAll({
+ type: 'window',
+ })
+
+ switch (event.data) {
+ case 'KEEPALIVE_REQUEST': {
+ sendToClient(client, {
+ type: 'KEEPALIVE_RESPONSE',
+ })
+ break
+ }
+
+ case 'INTEGRITY_CHECK_REQUEST': {
+ sendToClient(client, {
+ type: 'INTEGRITY_CHECK_RESPONSE',
+ payload: INTEGRITY_CHECKSUM,
+ })
+ break
+ }
+
+ case 'MOCK_ACTIVATE': {
+ activeClientIds.add(clientId)
+
+ sendToClient(client, {
+ type: 'MOCKING_ENABLED',
+ payload: true,
+ })
+ break
+ }
+
+ case 'MOCK_DEACTIVATE': {
+ activeClientIds.delete(clientId)
+ break
+ }
+
+ case 'CLIENT_CLOSED': {
+ activeClientIds.delete(clientId)
+
+ const remainingClients = allClients.filter((client) => {
+ 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 00000000..57c9193b
Binary files /dev/null and b/packages/document/public/welcome-hero.png differ
diff --git a/packages/document/src/App.css b/packages/document/src/App.css
new file mode 100644
index 00000000..b9d355df
--- /dev/null
+++ b/packages/document/src/App.css
@@ -0,0 +1,42 @@
+#root {
+ max-width: 1280px;
+ margin: 0 auto;
+ padding: 2rem;
+ text-align: center;
+}
+
+.logo {
+ height: 6em;
+ padding: 1.5em;
+ will-change: filter;
+ transition: filter 300ms;
+}
+.logo:hover {
+ filter: drop-shadow(0 0 2em #646cffaa);
+}
+.logo.react:hover {
+ filter: drop-shadow(0 0 2em #61dafbaa);
+}
+
+@keyframes logo-spin {
+ from {
+ transform: rotate(0deg);
+ }
+ to {
+ transform: rotate(360deg);
+ }
+}
+
+@media (prefers-reduced-motion: no-preference) {
+ a:nth-of-type(2) .logo {
+ animation: logo-spin infinite 20s linear;
+ }
+}
+
+.card {
+ padding: 2em;
+}
+
+.read-the-docs {
+ color: #888;
+}
diff --git a/packages/document/src/App.tsx b/packages/document/src/App.tsx
new file mode 100644
index 00000000..3d7ded3f
--- /dev/null
+++ b/packages/document/src/App.tsx
@@ -0,0 +1,35 @@
+import { useState } from 'react'
+import reactLogo from './assets/react.svg'
+import viteLogo from '/vite.svg'
+import './App.css'
+
+function App() {
+ const [count, setCount] = useState(0)
+
+ return (
+ <>
+
+ 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';
+
+
+
+
+
+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 817a084e..0d753925 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)
@@ -79,7 +79,7 @@ importers:
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.17.0)(react@18.3.1)(typescript@5.7.2)
+ 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.3.1
version: 6.7.0
@@ -97,10 +97,10 @@ importers:
version: 7.6.20
'@storybook/addon-docs':
specifier: ^7.6.17
- version: 7.6.20(@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.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.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.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
@@ -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@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.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
@@ -195,6 +195,100 @@ importers:
specifier: ^4.3.1
version: 4.3.2(typescript@5.7.2)(vite@5.4.11(@types/node@22.12.0)(terser@5.37.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':
@@ -251,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
@@ -318,6 +412,9 @@ importers:
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==}
@@ -992,6 +1089,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'}
@@ -1509,16 +1612,12 @@ packages:
resolution: {integrity: sha512-gFHJ+xBOo4G3WRlR1e/3G8A6/KZAH6zcE/hkLRCZTi/B9avAG365QhFA8uOGzTMqgTghpn7/fSnscW++dpMSAw==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
- '@eslint/core@0.9.1':
- resolution: {integrity: sha512-GuUdqkyyzQI5RMIWkHhvTWLCyLo1jNK3vzkSyaExH5kHPDHcuL2VOpHjmMY+y3+NC69qAKToBqldTBgYeLSr9Q==}
- 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.17.0':
- resolution: {integrity: sha512-Sxc4hqcs1kTu0iID3kcZDW3JHq2a77HO9P8CP6YEA/FpH3Ll8UXE2r/86Rz9YJLKme39S9vU5OWNjC6Xl0Cr3w==}
+ '@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':
@@ -1635,6 +1734,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'}
@@ -2549,30 +2657,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:
@@ -2584,18 +2727,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==}
@@ -2608,6 +2781,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==}
@@ -2626,6 +2811,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==}
@@ -2654,6 +2845,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==}
@@ -2669,9 +2865,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==}
@@ -2687,12 +2896,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==}
@@ -2716,6 +2942,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==}
@@ -2725,6 +2956,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'}
@@ -2733,6 +2971,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'}
@@ -2744,6 +2995,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==}
@@ -2753,6 +3019,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.
@@ -2769,6 +3040,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==}
@@ -2805,6 +3081,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'}
@@ -2954,6 +3234,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==}
@@ -2999,6 +3282,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==}
@@ -3032,6 +3320,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==}
@@ -3055,6 +3346,14 @@ packages:
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}
@@ -3075,6 +3374,13 @@ packages:
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}
@@ -3083,6 +3389,10 @@ packages:
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}
@@ -3093,6 +3403,13 @@ packages:
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}
@@ -3101,6 +3418,10 @@ packages:
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}
@@ -3119,12 +3440,25 @@ packages:
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}
@@ -3133,6 +3467,10 @@ packages:
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}
@@ -3154,6 +3492,9 @@ packages:
'@vitest/browser':
optional: true
+ '@vitest/expect@2.0.5':
+ resolution: {integrity: sha512-yHZtwuP7JZivj65Gxoi8upUN2OzHTi3zVfjwdpu2WrvCZPLwsJ2Ey5ILIPccoW23dd/zQBlJ4/dhi7DWNyXCpA==}
+
'@vitest/expect@3.0.4':
resolution: {integrity: sha512-Nm5kJmYw6P2BxhJPkO3eKKhGYKRsnqJqf+r0yOGRKpEP+bSCBDsjXgiu1/5QFrnPMEgzfC38ZEjvCFgaNBC0Eg==}
@@ -3168,6 +3509,12 @@ packages:
vite:
optional: true
+ '@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==}
@@ -3177,9 +3524,18 @@ packages:
'@vitest/snapshot@3.0.4':
resolution: {integrity: sha512-+p5knMLwIk7lTQkM3NonZ9zBewzVp9EVkVpvNta0/PlFWpiqLaRcF4+33L1it3uRUCh0BGLOaXPPGEjNKfWb4w==}
+ '@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/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==}
@@ -3643,6 +3999,10 @@ packages:
resolution: {integrity: sha512-aGtmf24DW6MLHHG5gCx4zaI3uBq3KRtxeVs0DjFH6Z0rDNbsvTxFASFvdj79pxjxZ8/5u3PIiN3IwEIQkiiuPw==}
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'}
@@ -3676,6 +4036,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'}
@@ -3899,6 +4271,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'}
@@ -4057,6 +4432,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}
@@ -4080,6 +4458,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'}
@@ -4364,12 +4745,29 @@ packages:
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'}
@@ -4386,8 +4784,8 @@ packages:
resolution: {integrity: sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
- eslint@9.17.0:
- resolution: {integrity: sha512-evtlNcpJg+cZLcnVKwsai8fExnqjGPicK7gnUtlNuzu+Fv9bI0aLpND5T44VLQtoMEnI57LoXO9XAkIXwohKrA==}
+ eslint@9.19.0:
+ resolution: {integrity: sha512-ug92j0LepKlbbEv6hD911THhoRHmbdXt2gX+VDABAW/Ir7D3nqKdv5Pf5vtlyY6HQMTEP2skXY43ueqTCWssEA==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
hasBin: true
peerDependencies:
@@ -4529,6 +4927,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'}
@@ -4789,6 +5191,10 @@ packages:
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'}
@@ -5317,6 +5723,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'}
@@ -5586,39 +5996,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'}
@@ -5651,87 +6094,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'}
@@ -6554,6 +7081,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:
@@ -6730,9 +7263,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'}
@@ -7045,6 +7587,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==}
@@ -7249,6 +7800,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'}
@@ -7325,6 +7880,12 @@ packages:
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'}
@@ -7382,6 +7943,9 @@ 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'}
@@ -7445,6 +8009,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'}
@@ -7497,6 +8068,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}
@@ -7515,21 +8089,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==}
@@ -7632,9 +8218,15 @@ 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==}
+ 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}
@@ -7727,16 +8319,56 @@ packages:
yaml:
optional: true
- vitest@3.0.4:
- resolution: {integrity: sha512-6XG8oTKy2gnJIFTHP6LD7ExFeNLxiTkK3CfMvT7IfR8IN+BYICCf0lXUQmX7i7JoxUP8QmeP4mTnWXgflu4yjw==}
+ 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:
- '@edge-runtime/vm': '*'
- '@types/debug': ^4.1.12
'@types/node': ^18.0.0 || ^20.0.0 || >=22.0.0
- '@vitest/browser': 3.0.4
- '@vitest/ui': 3.0.4
+ 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:
+ '@edge-runtime/vm': '*'
+ '@types/debug': ^4.1.12
+ '@types/node': ^18.0.0 || ^20.0.0 || >=22.0.0
+ '@vitest/browser': 3.0.4
+ '@vitest/ui': 3.0.4
happy-dom: '*'
jsdom: '*'
peerDependenciesMeta:
@@ -7977,6 +8609,8 @@ packages:
snapshots:
+ '@adobe/css-tools@4.4.1': {}
+
'@adyen/adyen-web@6.8.0':
dependencies:
'@adyen/bento-design-tokens': 1.10.0
@@ -8797,17 +9431,30 @@ 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/eslint-config-ts-react@1.4.5(@types/eslint@9.6.1)(eslint@9.17.0)(react@18.3.1)(typescript@5.7.2)':
+ '@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.17.0)(typescript@5.7.2)
- '@typescript-eslint/eslint-plugin': 7.18.0(@typescript-eslint/parser@7.18.0(eslint@9.17.0)(typescript@5.7.2))(eslint@9.17.0)(typescript@5.7.2)
- '@typescript-eslint/parser': 7.18.0(eslint@9.17.0)(typescript@5.7.2)
- eslint: 9.17.0
- eslint-config-standard-jsx: 11.0.0(eslint-plugin-react@7.37.2(eslint@9.17.0))(eslint@9.17.0)
- eslint-plugin-react: 7.37.2(eslint@9.17.0)
+ '@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:
@@ -8816,17 +9463,17 @@ snapshots:
- eslint-import-resolver-webpack
- supports-color
- '@commercelayer/eslint-config-ts@1.4.5(@types/eslint@9.6.1)(eslint@9.17.0)(typescript@5.7.2)':
- dependencies:
- '@typescript-eslint/eslint-plugin': 7.18.0(@typescript-eslint/parser@7.18.0(eslint@9.17.0)(typescript@5.7.2))(eslint@9.17.0)(typescript@5.7.2)
- '@typescript-eslint/parser': 7.18.0(eslint@9.17.0)(typescript@5.7.2)
- eslint: 9.17.0
- eslint-config-love: 43.1.0(@typescript-eslint/eslint-plugin@7.18.0(@typescript-eslint/parser@7.18.0(eslint@9.17.0)(typescript@5.7.2))(eslint@9.17.0)(typescript@5.7.2))(eslint-plugin-import@2.31.0(@typescript-eslint/parser@7.18.0(eslint@9.17.0)(typescript@5.7.2))(eslint@9.17.0))(eslint-plugin-n@16.6.2(eslint@9.17.0))(eslint-plugin-promise@6.6.0(eslint@9.17.0))(eslint@9.17.0)(typescript@5.7.2)
- eslint-config-prettier: 9.1.0(eslint@9.17.0)
- eslint-plugin-import: 2.31.0(@typescript-eslint/parser@7.18.0(eslint@9.17.0)(typescript@5.7.2))(eslint@9.17.0)
- eslint-plugin-n: 16.6.2(eslint@9.17.0)
- eslint-plugin-prettier: 5.2.1(@types/eslint@9.6.1)(eslint-config-prettier@9.1.0(eslint@9.17.0))(eslint@9.17.0)(prettier@3.4.2)
- eslint-plugin-promise: 6.6.0(eslint@9.17.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:
@@ -8884,6 +9531,10 @@ 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
@@ -9094,9 +9745,9 @@ snapshots:
'@esbuild/win32-x64@0.24.2':
optional: true
- '@eslint-community/eslint-utils@4.4.1(eslint@9.17.0)':
+ '@eslint-community/eslint-utils@4.4.1(eslint@9.19.0)':
dependencies:
- eslint: 9.17.0
+ eslint: 9.19.0
eslint-visitor-keys: 3.4.3
'@eslint-community/regexpp@4.12.1': {}
@@ -9113,10 +9764,6 @@ snapshots:
dependencies:
'@types/json-schema': 7.0.15
- '@eslint/core@0.9.1':
- dependencies:
- '@types/json-schema': 7.0.15
-
'@eslint/eslintrc@3.2.0':
dependencies:
ajv: 6.12.6
@@ -9131,7 +9778,7 @@ snapshots:
transitivePeerDependencies:
- supports-color
- '@eslint/js@9.17.0': {}
+ '@eslint/js@9.19.0': {}
'@eslint/object-schema@2.1.5': {}
@@ -9159,6 +9806,12 @@ 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': {}
'@humanfs/core@0.19.1': {}
@@ -9274,6 +9927,14 @@ snapshots:
optionalDependencies:
typescript: 5.7.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
@@ -9384,15 +10045,27 @@ snapshots:
'@mdx-js/react@2.3.0(react@18.3.1)':
dependencies:
'@types/mdx': 2.0.13
- '@types/react': 18.3.17
+ '@types/react': 19.0.8
react: 18.3.1
+ '@mdx-js/react@2.3.0(react@19.0.0)':
+ dependencies:
+ '@types/mdx': 2.0.13
+ '@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.17
react: 18.3.1
+ '@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
@@ -9715,37 +10388,75 @@ snapshots:
'@radix-ui/primitive@1.1.1': {}
- '@radix-ui/react-arrow@1.0.3(@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.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@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)
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)
- '@radix-ui/react-collection@1.0.3(@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.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@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)
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)
- '@radix-ui/react-collection@1.1.1(@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.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@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.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.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.17)(react@18.3.1)':
dependencies:
@@ -9754,12 +10465,25 @@ snapshots:
optionalDependencies:
'@types/react': 18.3.17
+ '@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.17
+ '@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.7
@@ -9767,12 +10491,25 @@ snapshots:
optionalDependencies:
'@types/react': 18.3.17
+ '@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.17
+ '@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.7
@@ -9780,24 +10517,52 @@ snapshots:
optionalDependencies:
'@types/react': 18.3.17
+ '@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.17
- '@radix-ui/react-dismissable-layer@1.0.4(@types/react@18.3.17)(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.7
'@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@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-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.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.17)(react@18.3.1)':
dependencies:
@@ -9806,16 +10571,36 @@ snapshots:
optionalDependencies:
'@types/react': 18.3.17
- '@radix-ui/react-focus-scope@1.0.3(@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@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-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@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-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.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.17)(react@18.3.1)':
dependencies:
@@ -9825,6 +10610,14 @@ snapshots:
optionalDependencies:
'@types/react': 18.3.17
+ '@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.17)(react@18.3.1)
@@ -9832,14 +10625,21 @@ snapshots:
optionalDependencies:
'@types/react': 18.3.17
- '@radix-ui/react-popper@1.1.2(@types/react@18.3.17)(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.7
'@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.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.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@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-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)
@@ -9849,17 +10649,48 @@ snapshots:
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)
- '@radix-ui/react-portal@1.0.3(@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)':
dependencies:
'@babel/runtime': 7.26.7
- '@radix-ui/react-primitive': 1.0.3(@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)
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)
- '@radix-ui/react-primitive@1.0.3(@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)':
dependencies:
'@babel/runtime': 7.26.7
'@radix-ui/react-slot': 1.0.2(@types/react@18.3.17)(react@18.3.1)
@@ -9867,67 +10698,147 @@ snapshots:
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)
- '@radix-ui/react-primitive@2.0.1(@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.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.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.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.1(@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)':
dependencies:
'@radix-ui/primitive': 1.1.1
- '@radix-ui/react-collection': 1.1.1(@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.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@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.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.17
+ '@types/react-dom': 19.0.3(@types/react@18.3.17)
- '@radix-ui/react-select@1.2.2(@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@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.7
'@radix-ui/number': 1.0.1
'@radix-ui/primitive': 1.0.1
- '@radix-ui/react-collection': 1.0.3(@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.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@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.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@18.3.17)(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.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@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@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@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.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@18.3.17)(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.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.17)(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)
- '@radix-ui/react-separator@1.1.1(@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)':
dependencies:
- '@radix-ui/react-primitive': 2.0.1(@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.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.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.17)(react@18.3.1)':
dependencies:
@@ -9937,6 +10848,14 @@ snapshots:
optionalDependencies:
'@types/react': 18.3.17
+ '@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.17)(react@18.3.1)
@@ -9944,43 +10863,94 @@ snapshots:
optionalDependencies:
'@types/react': 18.3.17
- '@radix-ui/react-toggle-group@1.1.1(@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@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.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@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@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@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.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.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.1(@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)':
dependencies:
'@radix-ui/primitive': 1.1.1
- '@radix-ui/react-primitive': 2.0.1(@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.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.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)
- '@radix-ui/react-toolbar@1.1.1(@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)':
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@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@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@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@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.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.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.17)(react@18.3.1)':
dependencies:
@@ -9989,20 +10959,41 @@ snapshots:
optionalDependencies:
'@types/react': 18.3.17
+ '@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.17
- '@radix-ui/react-use-controllable-state@1.0.1(@types/react@18.3.17)(react@18.3.1)':
+ '@radix-ui/react-use-callback-ref@1.1.0(@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@18.3.17)(react@18.3.1)
+ 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.7
+ '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.3.17)(react@18.3.1)
react: 18.3.1
optionalDependencies:
'@types/react': 18.3.17
+ '@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.17)(react@18.3.1)
@@ -10010,6 +11001,13 @@ snapshots:
optionalDependencies:
'@types/react': 18.3.17
+ '@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.7
@@ -10018,6 +11016,14 @@ snapshots:
optionalDependencies:
'@types/react': 18.3.17
+ '@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.7
@@ -10025,12 +11031,25 @@ snapshots:
optionalDependencies:
'@types/react': 18.3.17
+ '@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.17
+ '@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.7
@@ -10038,6 +11057,13 @@ snapshots:
optionalDependencies:
'@types/react': 18.3.17
+ '@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.7
@@ -10046,6 +11072,14 @@ snapshots:
optionalDependencies:
'@types/react': 18.3.17
+ '@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.7
@@ -10054,14 +11088,33 @@ snapshots:
optionalDependencies:
'@types/react': 18.3.17
- '@radix-ui/react-visually-hidden@1.0.3(@types/react@18.3.17)(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.7
- '@radix-ui/react-primitive': 1.0.3(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@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.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:
@@ -10239,15 +11292,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.17)(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.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.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:
@@ -10258,13 +11327,20 @@ snapshots:
- react-dom
- supports-color
- '@storybook/addon-docs@7.6.20(@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@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.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.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.17)(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
@@ -10287,12 +11363,54 @@ snapshots:
- encoding
- supports-color
- '@storybook/addon-essentials@7.6.20(@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@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.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@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.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
@@ -10311,10 +11429,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
@@ -10323,6 +11462,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.12
@@ -10331,6 +11479,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
@@ -10339,22 +11495,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)
@@ -10372,11 +11561,11 @@ snapshots:
- react
- react-dom
- '@storybook/blocks@7.6.20(@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.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.17)(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.12
'@storybook/docs-tools': 7.6.20(encoding@0.1.13)
@@ -10405,6 +11594,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
@@ -10452,6 +11694,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
@@ -10550,10 +11800,10 @@ snapshots:
transitivePeerDependencies:
- supports-color
- '@storybook/components@7.6.20(@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.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.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
- '@radix-ui/react-toolbar': 1.1.1(@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.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.12
'@storybook/global': 5.0.0
@@ -10568,6 +11818,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
@@ -10658,6 +11930,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
@@ -10665,6 +11957,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.3
@@ -10700,6 +11997,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
@@ -10740,6 +12053,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': {}
@@ -10786,6 +12123,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)':
@@ -10793,6 +12134,23 @@ 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)':
+ 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.7.2)(vite@5.4.11(@types/node@22.12.0)(terser@5.37.0))
@@ -10813,6 +12171,28 @@ 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))':
+ 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.7.2)':
dependencies:
'@storybook/client-logger': 7.6.20
@@ -10844,6 +12224,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
@@ -10870,6 +12265,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
@@ -10894,6 +12301,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
@@ -10947,7 +12367,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.7
'@testing-library/dom': 10.4.0
@@ -10955,6 +12385,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.5.2(@testing-library/dom@9.3.4)':
dependencies:
@@ -11101,6 +12536,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': {}
@@ -11138,6 +12577,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
@@ -11176,6 +12624,8 @@ snapshots:
'@types/unist@2.0.11': {}
+ '@types/unist@3.0.3': {}
+
'@types/uuid@9.0.8': {}
'@types/yargs-parser@21.0.3': {}
@@ -11188,15 +12638,15 @@ snapshots:
dependencies:
'@types/yargs-parser': 21.0.3
- '@typescript-eslint/eslint-plugin@7.18.0(@typescript-eslint/parser@7.18.0(eslint@9.17.0)(typescript@5.7.2))(eslint@9.17.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)':
dependencies:
'@eslint-community/regexpp': 4.12.1
- '@typescript-eslint/parser': 7.18.0(eslint@9.17.0)(typescript@5.7.2)
+ '@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.17.0)(typescript@5.7.2)
- '@typescript-eslint/utils': 7.18.0(eslint@9.17.0)(typescript@5.7.2)
+ '@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.17.0
+ eslint: 9.19.0
graphemer: 1.4.0
ignore: 5.3.2
natural-compare: 1.4.0
@@ -11206,32 +12656,61 @@ snapshots:
transitivePeerDependencies:
- supports-color
- '@typescript-eslint/parser@6.21.0(eslint@9.17.0)(typescript@5.7.2)':
+ '@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.17.0
+ eslint: 9.19.0
optionalDependencies:
typescript: 5.7.2
transitivePeerDependencies:
- supports-color
- '@typescript-eslint/parser@7.18.0(eslint@9.17.0)(typescript@5.7.2)':
+ '@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.17.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
@@ -11242,22 +12721,40 @@ snapshots:
'@typescript-eslint/types': 7.18.0
'@typescript-eslint/visitor-keys': 7.18.0
- '@typescript-eslint/type-utils@7.18.0(eslint@9.17.0)(typescript@5.7.2)':
+ '@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.17.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.17.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
@@ -11288,17 +12785,42 @@ snapshots:
transitivePeerDependencies:
- supports-color
- '@typescript-eslint/utils@7.18.0(eslint@9.17.0)(typescript@5.7.2)':
+ '@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.17.0)
+ '@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.17.0
+ 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
@@ -11309,6 +12831,11 @@ snapshots:
'@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
@@ -11342,6 +12869,17 @@ snapshots:
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
@@ -11360,6 +12898,13 @@ snapshots:
transitivePeerDependencies:
- supports-color
+ '@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.4
@@ -11376,6 +12921,14 @@ snapshots:
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@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
@@ -11391,10 +12944,27 @@ snapshots:
magic-string: 0.30.17
pathe: 2.0.2
+ '@vitest/spy@2.0.5':
+ dependencies:
+ tinyspy: 3.0.2
+
'@vitest/spy@3.0.4':
dependencies:
tinyspy: 3.0.2
+ '@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.4
@@ -11955,6 +13525,11 @@ snapshots:
loupe: 3.1.2
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
@@ -11991,6 +13566,8 @@ snapshots:
chownr@2.0.0: {}
+ chromatic@11.25.2: {}
+
chrome-trace-event@1.0.4: {}
ci-info@3.9.0: {}
@@ -12212,6 +13789,8 @@ snapshots:
crypto-random-string@2.0.0: {}
+ css.escape@1.5.1: {}
+
cssesc@3.0.0: {}
cssstyle@4.2.1:
@@ -12363,6 +13942,10 @@ snapshots:
transitivePeerDependencies:
- supports-color
+ devlop@1.1.0:
+ dependencies:
+ dequal: 2.0.3
+
diff-sequences@29.6.3: {}
diff@5.2.0: {}
@@ -12381,6 +13964,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
@@ -12581,6 +14166,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
@@ -12678,39 +14270,39 @@ snapshots:
optionalDependencies:
source-map: 0.6.1
- eslint-compat-utils@0.5.1(eslint@9.17.0):
+ eslint-compat-utils@0.5.1(eslint@9.19.0):
dependencies:
- eslint: 9.17.0
+ 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.17.0)(typescript@5.7.2))(eslint@9.17.0)(typescript@5.7.2))(eslint-plugin-import@2.31.0(@typescript-eslint/parser@7.18.0(eslint@9.17.0)(typescript@5.7.2))(eslint@9.17.0))(eslint-plugin-n@16.6.2(eslint@9.17.0))(eslint-plugin-promise@6.6.0(eslint@9.17.0))(eslint@9.17.0)(typescript@5.7.2):
+ 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.17.0)(typescript@5.7.2))(eslint@9.17.0)(typescript@5.7.2)
- '@typescript-eslint/parser': 6.21.0(eslint@9.17.0)(typescript@5.7.2)
- eslint: 9.17.0
- eslint-config-standard: 17.1.0(eslint-plugin-import@2.31.0(@typescript-eslint/parser@7.18.0(eslint@9.17.0)(typescript@5.7.2))(eslint@9.17.0))(eslint-plugin-n@16.6.2(eslint@9.17.0))(eslint-plugin-promise@6.6.0(eslint@9.17.0))(eslint@9.17.0)
- eslint-plugin-import: 2.31.0(@typescript-eslint/parser@7.18.0(eslint@9.17.0)(typescript@5.7.2))(eslint@9.17.0)
- eslint-plugin-n: 16.6.2(eslint@9.17.0)
- eslint-plugin-promise: 6.6.0(eslint@9.17.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)
+ '@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.17.0):
+ eslint-config-prettier@9.1.0(eslint@9.19.0):
dependencies:
- eslint: 9.17.0
+ eslint: 9.19.0
- eslint-config-standard-jsx@11.0.0(eslint-plugin-react@7.37.2(eslint@9.17.0))(eslint@9.17.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.17.0
- eslint-plugin-react: 7.37.2(eslint@9.17.0)
+ 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.17.0)(typescript@5.7.2))(eslint@9.17.0))(eslint-plugin-n@16.6.2(eslint@9.17.0))(eslint-plugin-promise@6.6.0(eslint@9.17.0))(eslint@9.17.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.17.0
- eslint-plugin-import: 2.31.0(@typescript-eslint/parser@7.18.0(eslint@9.17.0)(typescript@5.7.2))(eslint@9.17.0)
- eslint-plugin-n: 16.6.2(eslint@9.17.0)
- eslint-plugin-promise: 6.6.0(eslint@9.17.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)
eslint-import-resolver-node@0.3.9:
dependencies:
@@ -12720,24 +14312,24 @@ snapshots:
transitivePeerDependencies:
- supports-color
- eslint-module-utils@2.12.0(@typescript-eslint/parser@7.18.0(eslint@9.17.0)(typescript@5.7.2))(eslint-import-resolver-node@0.3.9)(eslint@9.17.0):
+ 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.17.0)(typescript@5.7.2)
- eslint: 9.17.0
+ '@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.17.0):
+ eslint-plugin-es-x@7.8.0(eslint@9.19.0):
dependencies:
- '@eslint-community/eslint-utils': 4.4.1(eslint@9.17.0)
+ '@eslint-community/eslint-utils': 4.4.1(eslint@9.19.0)
'@eslint-community/regexpp': 4.12.1
- eslint: 9.17.0
- eslint-compat-utils: 0.5.1(eslint@9.17.0)
+ 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.17.0)(typescript@5.7.2))(eslint@9.17.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
@@ -12746,9 +14338,9 @@ snapshots:
array.prototype.flatmap: 1.3.3
debug: 3.2.7
doctrine: 2.1.0
- eslint: 9.17.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.17.0)(typescript@5.7.2))(eslint-import-resolver-node@0.3.9)(eslint@9.17.0)
+ 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
@@ -12760,18 +14352,18 @@ snapshots:
string.prototype.trimend: 1.0.9
tsconfig-paths: 3.15.0
optionalDependencies:
- '@typescript-eslint/parser': 7.18.0(eslint@9.17.0)(typescript@5.7.2)
+ '@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.17.0):
+ eslint-plugin-n@16.6.2(eslint@9.19.0):
dependencies:
- '@eslint-community/eslint-utils': 4.4.1(eslint@9.17.0)
+ '@eslint-community/eslint-utils': 4.4.1(eslint@9.19.0)
builtins: 5.1.0
- eslint: 9.17.0
- eslint-plugin-es-x: 7.8.0(eslint@9.17.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
@@ -12781,21 +14373,29 @@ snapshots:
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.17.0))(eslint@9.17.0)(prettier@3.4.2):
+ 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.17.0
+ 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.17.0)
+ 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-promise@6.6.0(eslint@9.17.0):
+ eslint-plugin-react-hooks@5.1.0(eslint@9.19.0):
dependencies:
- eslint: 9.17.0
+ eslint: 9.19.0
- eslint-plugin-react@7.37.2(eslint@9.17.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
@@ -12803,7 +14403,7 @@ snapshots:
array.prototype.tosorted: 1.1.4
doctrine: 2.1.0
es-iterator-helpers: 1.2.0
- eslint: 9.17.0
+ eslint: 9.19.0
estraverse: 5.3.0
hasown: 2.0.2
jsx-ast-utils: 3.3.5
@@ -12817,6 +14417,16 @@ snapshots:
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
@@ -12831,14 +14441,14 @@ snapshots:
eslint-visitor-keys@4.2.0: {}
- eslint@9.17.0:
+ eslint@9.19.0:
dependencies:
- '@eslint-community/eslint-utils': 4.4.1(eslint@9.17.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.9.1
+ '@eslint/core': 0.10.0
'@eslint/eslintrc': 3.2.0
- '@eslint/js': 9.17.0
+ '@eslint/js': 9.19.0
'@eslint/plugin-kit': 0.2.5
'@humanfs/node': 0.16.6
'@humanwhocodes/module-importer': 1.0.1
@@ -13050,6 +14660,8 @@ snapshots:
dependencies:
minimatch: 5.1.6
+ filesize@10.1.6: {}
+
fill-range@7.1.1:
dependencies:
to-regex-range: 5.0.1
@@ -13341,6 +14953,8 @@ snapshots:
globals@14.0.0: {}
+ globals@15.14.0: {}
+
globalthis@1.0.4:
dependencies:
define-properties: 1.2.1
@@ -13895,6 +15509,8 @@ snapshots:
transitivePeerDependencies:
- supports-color
+ jsdoc-type-pratt-parser@4.1.0: {}
+
jsdom@26.0.0:
dependencies:
cssstyle: 4.2.1
@@ -14250,6 +15866,10 @@ snapshots:
dependencies:
react: 18.3.1
+ 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:
@@ -14263,6 +15883,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
@@ -14280,6 +15907,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
@@ -14287,17 +15931,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
@@ -14307,11 +15977,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
@@ -14324,11 +16013,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
@@ -14340,12 +16046,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:
@@ -14397,6 +16119,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
@@ -14404,6 +16145,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
@@ -14415,6 +16163,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
@@ -14424,6 +16183,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
@@ -14432,10 +16200,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
@@ -14444,6 +16224,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
@@ -14455,12 +16243,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
@@ -14468,11 +16273,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
@@ -14480,6 +16297,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
@@ -14487,30 +16311,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.0.2
@@ -14518,24 +16373,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
@@ -14543,10 +16423,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
@@ -14569,6 +16460,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
@@ -15458,10 +17371,24 @@ 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):
dependencies:
typescript: 5.7.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.0
@@ -15516,6 +17443,14 @@ snapshots:
optionalDependencies:
'@types/react': 18.3.17
+ 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
@@ -15527,6 +17462,17 @@ snapshots:
optionalDependencies:
'@types/react': 18.3.17
+ 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
@@ -15535,6 +17481,14 @@ snapshots:
optionalDependencies:
'@types/react': 18.3.17
+ 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
@@ -15679,12 +17633,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: {}
@@ -16067,6 +18047,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: {}
@@ -16301,6 +18291,8 @@ snapshots:
tinypool@1.0.2: {}
+ tinyrainbow@1.2.0: {}
+
tinyrainbow@2.0.0: {}
tinyspy@3.0.2: {}
@@ -16360,6 +18352,10 @@ snapshots:
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: {}
@@ -16433,6 +18429,8 @@ snapshots:
transitivePeerDependencies:
- supports-color
+ tween-functions@1.2.0: {}
+
type-check@0.4.0:
dependencies:
prelude-ls: 1.2.1
@@ -16495,6 +18493,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.7.2: {}
@@ -16538,6 +18546,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
@@ -16556,10 +18574,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
@@ -16570,6 +18596,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
@@ -16582,6 +18613,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: {}
@@ -16621,12 +18658,25 @@ snapshots:
optionalDependencies:
'@types/react': 18.3.17
+ 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):
dependencies:
detect-node-es: 1.1.0
@@ -16635,6 +18685,14 @@ snapshots:
optionalDependencies:
'@types/react': 18.3.17
+ 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:
@@ -16672,6 +18730,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
@@ -16679,13 +18742,18 @@ snapshots:
unist-util-stringify-position: 3.0.3
vfile-message: 3.1.4
+ 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.2
- vite: 6.0.11(@types/node@22.12.0)(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)
transitivePeerDependencies:
- '@types/node'
- jiti
@@ -16722,6 +18790,17 @@ snapshots:
- 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
@@ -16743,6 +18822,17 @@ snapshots:
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