diff --git a/site/.storybook/preview.jsx b/site/.storybook/preview.tsx similarity index 59% rename from site/.storybook/preview.jsx rename to site/.storybook/preview.tsx index 8a33560a2f18b..6871898a54c32 100644 --- a/site/.storybook/preview.jsx +++ b/site/.storybook/preview.tsx @@ -1,21 +1,3 @@ -// @ts-check -/** - * @file Defines the main configuration file for all of our Storybook tests. - * This file must be a JSX/JS file, but we can at least add some type safety via - * the ts-check directive. - * @see {@link https://storybook.js.org/docs/configure#configure-story-rendering} - * - * @typedef {import("react").ReactElement} ReactElement - * @typedef {import("react").PropsWithChildren} PropsWithChildren - * @typedef {import("react").FC} FC - * - * @typedef {import("@storybook/react-vite").StoryContext} StoryContext - * @typedef {import("@storybook/react-vite").Preview} Preview - * - * @typedef {(Story: FC, Context: StoryContext) => React.JSX.Element} Decorator A - * Storybook decorator function used to inject baseline data dependencies into - * our React components during testing. - */ import "../src/index.css"; import { ThemeProvider as EmotionThemeProvider } from "@emotion/react"; import CssBaseline from "@mui/material/CssBaseline"; @@ -31,15 +13,12 @@ import { HelmetProvider } from "react-helmet-async"; import { QueryClient, QueryClientProvider } from "react-query"; import { withRouter } from "storybook-addon-remix-react-router"; import "theme/globalFonts"; +import type { Decorator, Loader, Parameters } from "@storybook/react-vite"; import themes from "../src/theme"; DecoratorHelpers.initializeThemeState(Object.keys(themes), "dark"); -/** @type {readonly Decorator[]} */ -export const decorators = [withRouter, withQuery, withHelmet, withTheme]; - -/** @type {Preview["parameters"]} */ -export const parameters = { +export const parameters: Parameters = { options: { storySort: { method: "alphabetical", @@ -83,33 +62,15 @@ export const parameters = { }, }; -/** - * There's a mismatch on the React Helmet return type that causes issues when - * mounting the component in JS files only. Have to do type assertion, which is - * especially ugly in JSDoc - */ -const SafeHelmetProvider = /** @type {FC} */ ( - /** @type {unknown} */ (HelmetProvider) -); - -/** @type {Decorator} */ -function withHelmet(Story) { +const withHelmet: Decorator = (Story) => { return ( - + - + ); -} - -/** - * This JSX file isn't part of the main project, so it doesn't get to use the - * ambient types defined in `storybook.d.ts` to provide extra type-safety. - * Extracting main key to avoid typos. - */ -const queryParametersKey = "queries"; +}; -/** @type {Decorator} */ -function withQuery(Story, { parameters }) { +const withQuery: Decorator = (Story, { parameters }) => { const queryClient = new QueryClient({ defaultOptions: { queries: { @@ -119,8 +80,8 @@ function withQuery(Story, { parameters }) { }, }); - if (parameters[queryParametersKey]) { - for (const query of parameters[queryParametersKey]) { + if (parameters.queries) { + for (const query of parameters.queries) { queryClient.setQueryData(query.key, query.data); } } @@ -130,10 +91,9 @@ function withQuery(Story, { parameters }) { ); -} +}; -/** @type {Decorator} */ -function withTheme(Story, context) { +const withTheme: Decorator = (Story, context) => { const selectedTheme = DecoratorHelpers.pluckThemeFromContext(context); const { themeOverride } = DecoratorHelpers.useThemeParameters(); const selected = themeOverride || selectedTheme || "dark"; @@ -156,7 +116,14 @@ function withTheme(Story, context) { ); -} +}; + +export const decorators: Decorator[] = [ + withRouter, + withQuery, + withHelmet, + withTheme, +]; // Try to fix storybook rendering fonts inconsistently // https://www.chromatic.com/docs/font-loading/#solution-c-check-fonts-have-loaded-in-a-loader @@ -164,4 +131,5 @@ const fontLoader = async () => ({ fonts: await document.fonts.ready, }); -export const loaders = isChromatic() && document.fonts ? [fontLoader] : []; +export const loaders: Loader[] = + isChromatic() && document.fonts ? [fontLoader] : []; diff --git a/site/package.json b/site/package.json index e6239d8627b08..bb061511e1619 100644 --- a/site/package.json +++ b/site/package.json @@ -126,13 +126,13 @@ }, "devDependencies": { "@biomejs/biome": "2.2.0", - "@chromatic-com/storybook": "4.0.1", + "@chromatic-com/storybook": "4.1.0", "@octokit/types": "12.3.0", "@playwright/test": "1.47.0", - "@storybook/addon-docs": "9.0.17", - "@storybook/addon-links": "9.0.17", - "@storybook/addon-themes": "9.0.17", - "@storybook/react-vite": "9.0.17", + "@storybook/addon-docs": "9.1.2", + "@storybook/addon-links": "9.1.2", + "@storybook/addon-themes": "9.1.2", + "@storybook/react-vite": "9.1.2", "@swc/core": "1.3.38", "@swc/jest": "0.2.37", "@tailwindcss/typography": "0.5.16", @@ -177,7 +177,7 @@ "rollup-plugin-visualizer": "5.14.0", "rxjs": "7.8.1", "ssh2": "1.16.0", - "storybook": "9.0.17", + "storybook": "9.1.2", "storybook-addon-remix-react-router": "5.0.0", "tailwindcss": "3.4.17", "ts-proto": "1.164.0", diff --git a/site/pnpm-lock.yaml b/site/pnpm-lock.yaml index f1ed9cc8e8825..99ef8ac44af6d 100644 --- a/site/pnpm-lock.yaml +++ b/site/pnpm-lock.yaml @@ -286,8 +286,8 @@ importers: specifier: 2.2.0 version: 2.2.0 '@chromatic-com/storybook': - specifier: 4.0.1 - version: 4.0.1(storybook@9.0.17(@testing-library/dom@10.4.0)(prettier@3.4.1)) + specifier: 4.1.0 + version: 4.1.0(storybook@9.1.2(@testing-library/dom@10.4.0)(msw@2.4.8(typescript@5.6.3))(prettier@3.4.1)(vite@6.3.5(@types/node@20.17.16)(jiti@2.4.2)(yaml@2.7.0))) '@octokit/types': specifier: 12.3.0 version: 12.3.0 @@ -295,17 +295,17 @@ importers: specifier: 1.47.0 version: 1.47.0 '@storybook/addon-docs': - specifier: 9.0.17 - version: 9.0.17(@types/react@18.3.12)(storybook@9.0.17(@testing-library/dom@10.4.0)(prettier@3.4.1)) + specifier: 9.1.2 + version: 9.1.2(@types/react@18.3.12)(storybook@9.1.2(@testing-library/dom@10.4.0)(msw@2.4.8(typescript@5.6.3))(prettier@3.4.1)(vite@6.3.5(@types/node@20.17.16)(jiti@2.4.2)(yaml@2.7.0))) '@storybook/addon-links': - specifier: 9.0.17 - version: 9.0.17(react@18.3.1)(storybook@9.0.17(@testing-library/dom@10.4.0)(prettier@3.4.1)) + specifier: 9.1.2 + version: 9.1.2(react@18.3.1)(storybook@9.1.2(@testing-library/dom@10.4.0)(msw@2.4.8(typescript@5.6.3))(prettier@3.4.1)(vite@6.3.5(@types/node@20.17.16)(jiti@2.4.2)(yaml@2.7.0))) '@storybook/addon-themes': - specifier: 9.0.17 - version: 9.0.17(storybook@9.0.17(@testing-library/dom@10.4.0)(prettier@3.4.1)) + specifier: 9.1.2 + version: 9.1.2(storybook@9.1.2(@testing-library/dom@10.4.0)(msw@2.4.8(typescript@5.6.3))(prettier@3.4.1)(vite@6.3.5(@types/node@20.17.16)(jiti@2.4.2)(yaml@2.7.0))) '@storybook/react-vite': - specifier: 9.0.17 - version: 9.0.17(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rollup@4.40.1)(storybook@9.0.17(@testing-library/dom@10.4.0)(prettier@3.4.1))(typescript@5.6.3)(vite@6.3.5(@types/node@20.17.16)(jiti@2.4.2)(yaml@2.7.0)) + specifier: 9.1.2 + version: 9.1.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rollup@4.40.1)(storybook@9.1.2(@testing-library/dom@10.4.0)(msw@2.4.8(typescript@5.6.3))(prettier@3.4.1)(vite@6.3.5(@types/node@20.17.16)(jiti@2.4.2)(yaml@2.7.0)))(typescript@5.6.3)(vite@6.3.5(@types/node@20.17.16)(jiti@2.4.2)(yaml@2.7.0)) '@swc/core': specifier: 1.3.38 version: 1.3.38 @@ -439,11 +439,11 @@ importers: specifier: 1.16.0 version: 1.16.0 storybook: - specifier: 9.0.17 - version: 9.0.17(@testing-library/dom@10.4.0)(prettier@3.4.1) + specifier: 9.1.2 + version: 9.1.2(@testing-library/dom@10.4.0)(msw@2.4.8(typescript@5.6.3))(prettier@3.4.1)(vite@6.3.5(@types/node@20.17.16)(jiti@2.4.2)(yaml@2.7.0)) storybook-addon-remix-react-router: specifier: 5.0.0 - version: 5.0.0(react-dom@18.3.1(react@18.3.1))(react-router@7.8.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1)(storybook@9.0.17(@testing-library/dom@10.4.0)(prettier@3.4.1)) + version: 5.0.0(react-dom@18.3.1(react@18.3.1))(react-router@7.8.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1)(storybook@9.1.2(@testing-library/dom@10.4.0)(msw@2.4.8(typescript@5.6.3))(prettier@3.4.1)(vite@6.3.5(@types/node@20.17.16)(jiti@2.4.2)(yaml@2.7.0))) tailwindcss: specifier: 3.4.17 version: 3.4.17(ts-node@10.9.2(@swc/core@1.3.38)(@types/node@20.17.16)(typescript@5.6.3)) @@ -800,11 +800,11 @@ packages: '@bundled-es-modules/tough-cookie@0.1.6': resolution: {integrity: sha512-dvMHbL464C0zI+Yqxbz6kZ5TOEp7GLW+pry/RWndAR8MJQAXZ2rPmIs8tziTZjeIyhSNZgZbCePtfSbdWqStJw==, tarball: https://registry.npmjs.org/@bundled-es-modules/tough-cookie/-/tough-cookie-0.1.6.tgz} - '@chromatic-com/storybook@4.0.1': - resolution: {integrity: sha512-GQXe5lyZl3yLewLJQyFXEpOp2h+mfN2bPrzYaOFNCJjO4Js9deKbRHTOSaiP2FRwZqDLdQwy2+SEGeXPZ94yYw==, tarball: https://registry.npmjs.org/@chromatic-com/storybook/-/storybook-4.0.1.tgz} + '@chromatic-com/storybook@4.1.0': + resolution: {integrity: sha512-B9XesFX5lQUdP81/QBTtkiYOFqEsJwQpzkZlcYPm2n/L1S/8ZabSPbz6NoY8hOJTXWZ2p7grygUlxyGy+gAvfQ==, tarball: https://registry.npmjs.org/@chromatic-com/storybook/-/storybook-4.1.0.tgz} engines: {node: '>=20.0.0', yarn: '>=1.22.18'} peerDependencies: - storybook: ^0.0.0-0 || ^9.0.0 || ^9.1.0-0 + storybook: ^0.0.0-0 || ^9.0.0 || ^9.1.0-0 || ^9.2.0-0 '@cspotcode/source-map-support@0.8.1': resolution: {integrity: sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==, tarball: https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz} @@ -2156,69 +2156,69 @@ packages: '@sinonjs/fake-timers@10.3.0': resolution: {integrity: sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA==, tarball: https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-10.3.0.tgz} - '@storybook/addon-docs@9.0.17': - resolution: {integrity: sha512-LOX/kKgQGnyulrqZHsvf77+ZoH/nSUaplGr5hvZglW/U6ak6fO9seJyXAzVKEnC6p+F8n02kFBZbi3s+znQhSg==, tarball: https://registry.npmjs.org/@storybook/addon-docs/-/addon-docs-9.0.17.tgz} + '@storybook/addon-docs@9.1.2': + resolution: {integrity: sha512-U3eHJ8lQFfEZ/OcgdKkUBbW2Y2tpAsHfy8lQOBgs5Pgj9biHEJcUmq+drOS/sJhle673eoBcUFmspXulI4KP1w==, tarball: https://registry.npmjs.org/@storybook/addon-docs/-/addon-docs-9.1.2.tgz} peerDependencies: - storybook: ^9.0.17 + storybook: ^9.1.2 - '@storybook/addon-links@9.0.17': - resolution: {integrity: sha512-c4hYojq0O6n5fD8MS+Ss1njR3qs88LLlO3LLaRD4bxsIgn8WFNjgG5677M7m8WjzTgWSxFWN0KAra2kaDZ8Jlg==, tarball: https://registry.npmjs.org/@storybook/addon-links/-/addon-links-9.0.17.tgz} + '@storybook/addon-links@9.1.2': + resolution: {integrity: sha512-drAWdhn5cRo5WcaORoCYfJ6tgTAw1m+ZJb1ICyNtTU6i/0nErV8jJjt7AziUcUIyzaGVJAkAMNC3+R4uDPSFDA==, tarball: https://registry.npmjs.org/@storybook/addon-links/-/addon-links-9.1.2.tgz} peerDependencies: react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta - storybook: ^9.0.17 + storybook: ^9.1.2 peerDependenciesMeta: react: optional: true - '@storybook/addon-themes@9.0.17': - resolution: {integrity: sha512-qQCoWig+wPVVuiibk8AuUUH/hS9hbLFt2IdjpiCIObAjStqSQMosr/1b95FcxppBCEa8uTltEkGdxQPdpdVZEQ==, tarball: https://registry.npmjs.org/@storybook/addon-themes/-/addon-themes-9.0.17.tgz} + '@storybook/addon-themes@9.1.2': + resolution: {integrity: sha512-dpWCx0IpKKFGEuOe2u8cUD2ShWMaE6Keh0zkM1gP8jx5gL8lLv9uhRHaZcQamwnG3BgnnKFgArODNxewsRSFfA==, tarball: https://registry.npmjs.org/@storybook/addon-themes/-/addon-themes-9.1.2.tgz} peerDependencies: - storybook: ^9.0.17 + storybook: ^9.1.2 - '@storybook/builder-vite@9.0.17': - resolution: {integrity: sha512-lyuvgGhb0NaVk1tdB4xwzky6+YXQfxlxfNQqENYZ9uYQZdPfErMa4ZTXVQTV+CQHAa2NL+p/dG2JPAeu39e9UA==, tarball: https://registry.npmjs.org/@storybook/builder-vite/-/builder-vite-9.0.17.tgz} + '@storybook/builder-vite@9.1.2': + resolution: {integrity: sha512-5Y7e5wnSzFxCGP63UNRRZVoxHe1znU4dYXazJBobAlEcUPBk7A0sH2716tA6bS4oz92oG9tgvn1g996hRrw4ow==, tarball: https://registry.npmjs.org/@storybook/builder-vite/-/builder-vite-9.1.2.tgz} peerDependencies: - storybook: ^9.0.17 + storybook: ^9.1.2 vite: ^5.0.0 || ^6.0.0 || ^7.0.0 - '@storybook/csf-plugin@9.0.17': - resolution: {integrity: sha512-6Q4eo1ObrLlsnB6bIt6T8+45XAb4to2pQGNrI7QPkLQRLrZinrJcNbLY7AGkyIoCOEsEbq08n09/nClQUbu8HA==, tarball: https://registry.npmjs.org/@storybook/csf-plugin/-/csf-plugin-9.0.17.tgz} + '@storybook/csf-plugin@9.1.2': + resolution: {integrity: sha512-bfMh6r+RieBLPWtqqYN70le2uTE4JzOYPMYSCagHykUti3uM/1vRFaZNkZtUsRy5GwEzE5jLdDXioG1lOEeT2Q==, tarball: https://registry.npmjs.org/@storybook/csf-plugin/-/csf-plugin-9.1.2.tgz} peerDependencies: - storybook: ^9.0.17 + storybook: ^9.1.2 '@storybook/global@5.0.0': resolution: {integrity: sha512-FcOqPAXACP0I3oJ/ws6/rrPT9WGhu915Cg8D02a9YxLo0DE9zI+a9A5gRGvmQ09fiWPukqI8ZAEoQEdWUKMQdQ==, tarball: https://registry.npmjs.org/@storybook/global/-/global-5.0.0.tgz} - '@storybook/icons@1.2.12': - resolution: {integrity: sha512-UxgyK5W3/UV4VrI3dl6ajGfHM4aOqMAkFLWe2KibeQudLf6NJpDrDMSHwZj+3iKC4jFU7dkKbbtH2h/al4sW3Q==, tarball: https://registry.npmjs.org/@storybook/icons/-/icons-1.2.12.tgz} + '@storybook/icons@1.4.0': + resolution: {integrity: sha512-Td73IeJxOyalzvjQL+JXx72jlIYHgs+REaHiREOqfpo3A2AYYG71AUbcv+lg7mEDIweKVCxsMQ0UKo634c8XeA==, tarball: https://registry.npmjs.org/@storybook/icons/-/icons-1.4.0.tgz} engines: {node: '>=14.0.0'} peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 - react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 + 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/react-dom-shim@9.0.17': - resolution: {integrity: sha512-ak/x/m6MDDxdE6rCDymTltaiQF3oiKrPHSwfM+YPgQR6MVmzTTs4+qaPfeev7FZEHq23IkfDMTmSTTJtX7Vs9A==, tarball: https://registry.npmjs.org/@storybook/react-dom-shim/-/react-dom-shim-9.0.17.tgz} + '@storybook/react-dom-shim@9.1.2': + resolution: {integrity: sha512-nw7BLAHCJswPZGsuL0Gs2AvFUWriusCTgPBmcHppSw/AqvT4XRFRDE+5q3j04/XKuZBrAA2sC4L+HuC0uzEChQ==, tarball: https://registry.npmjs.org/@storybook/react-dom-shim/-/react-dom-shim-9.1.2.tgz} 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: ^9.0.17 + storybook: ^9.1.2 - '@storybook/react-vite@9.0.17': - resolution: {integrity: sha512-wx1yKScni4ifOC/ccqpnnpceQbyF2xto+jHGsyua+M4UUCQdS2NYPDR8JFWp1YvBhVt2cQiD6SAltVGM9QLGnQ==, tarball: https://registry.npmjs.org/@storybook/react-vite/-/react-vite-9.0.17.tgz} + '@storybook/react-vite@9.1.2': + resolution: {integrity: sha512-dv3CBjOzmMoSyIotMtdmsBRjB25i19OjFP0IZqauLeUoVm6QddILW7JRcZVLrzhATyBEn+sEAdWQ4j79Z11HAg==, tarball: https://registry.npmjs.org/@storybook/react-vite/-/react-vite-9.1.2.tgz} engines: {node: '>=20.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: ^9.0.17 + storybook: ^9.1.2 vite: ^5.0.0 || ^6.0.0 || ^7.0.0 - '@storybook/react@9.0.17': - resolution: {integrity: sha512-wssao+uXg72OHtEJdQmmQJGdX90x/aU/6avoP3fgVgepWdZXVgciS9mnqHjKRF/vP+vPOlNQcJjojF/zTtq5qg==, tarball: https://registry.npmjs.org/@storybook/react/-/react-9.0.17.tgz} + '@storybook/react@9.1.2': + resolution: {integrity: sha512-VVXu1HrhDExj/yj+heFYc8cgIzBruXy1UYT3LW0WiJyadgzYz3J41l/Lf/j2FCppyxwlXb19Uv51plb1F1C77w==, tarball: https://registry.npmjs.org/@storybook/react/-/react-9.1.2.tgz} engines: {node: '>=20.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: ^9.0.17 + storybook: ^9.1.2 typescript: '>= 4.9.x' peerDependenciesMeta: typescript: @@ -2645,6 +2645,17 @@ packages: '@vitest/expect@3.2.4': resolution: {integrity: sha512-Io0yyORnB6sikFlt8QW5K7slY4OjqNX9jmJQ02QDda8lyM6B5oNgVWoSoKPac8/kgnCUzuHQKrSLtu/uOqqrig==, tarball: https://registry.npmjs.org/@vitest/expect/-/expect-3.2.4.tgz} + '@vitest/mocker@3.2.4': + resolution: {integrity: sha512-46ryTE9RZO/rfDd7pEqFl7etuyzekzEhUbTW3BvmeO/BcCMEgq59BKhek3dXDWgAj4oMK6OZi+vRr1wPW6qjEQ==, tarball: https://registry.npmjs.org/@vitest/mocker/-/mocker-3.2.4.tgz} + peerDependencies: + msw: ^2.4.9 + vite: ^5.0.0 || ^6.0.0 || ^7.0.0-0 + peerDependenciesMeta: + msw: + optional: true + vite: + optional: true + '@vitest/pretty-format@3.2.4': resolution: {integrity: sha512-IVNZik8IVRJRTr9fxlitMKeJeXFFFN0JaB9PHPGQ8NKQbGpfjlTx9zO4RefN8gp7eqjNy8nyK3NZmBzOPeIxtA==, tarball: https://registry.npmjs.org/@vitest/pretty-format/-/pretty-format-3.2.4.tgz} @@ -3558,6 +3569,9 @@ packages: estree-walker@2.0.2: resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==, tarball: https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz} + estree-walker@3.0.3: + resolution: {integrity: sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==, tarball: https://registry.npmjs.org/estree-walker/-/estree-walker-3.0.3.tgz} + esutils@2.0.3: resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==, tarball: https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz} engines: {node: '>=0.10.0'} @@ -4438,9 +4452,6 @@ packages: resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==, tarball: https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz} hasBin: true - loupe@3.1.3: - resolution: {integrity: sha512-kkIp7XSkP78ZxJEsSxW3712C6teJVoeHHwgo9zJ380de7IYyJ2ISlxojcH2pC5OFLewESmnRi/+XCDIEEVyoug==, tarball: https://registry.npmjs.org/loupe/-/loupe-3.1.3.tgz} - loupe@3.2.0: resolution: {integrity: sha512-2NCfZcT5VGVNX9mSZIxLRkEAegDGBpuQZBy13desuHeVORmBDyAET4TkJr4SjqQy3A8JDofMN6LpkK8Xcm/dlw==, tarball: https://registry.npmjs.org/loupe/-/loupe-3.2.0.tgz} @@ -4466,9 +4477,8 @@ packages: resolution: {integrity: sha512-h5bgJWpxJNswbU7qCrV0tIKQCaS3blPDrqKWx+QxzuzL1zGUzij9XCWLrSLsJPu5t+eWA/ycetzYAO5IOMcWAQ==, tarball: https://registry.npmjs.org/lz-string/-/lz-string-1.5.0.tgz} hasBin: true - magic-string@0.30.5: - resolution: {integrity: sha512-7xlpfBaQaP/T6Vh8MO/EqXSW5En6INHEvEXQiuff7Gku0PWjU3uf6w/j9o7O+SpB5fOAkrI5HeoNgwjEO0pFsA==, tarball: https://registry.npmjs.org/magic-string/-/magic-string-0.30.5.tgz} - engines: {node: '>=12'} + magic-string@0.30.17: + resolution: {integrity: sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA==, tarball: https://registry.npmjs.org/magic-string/-/magic-string-0.30.17.tgz} make-dir@4.0.0: resolution: {integrity: sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==, tarball: https://registry.npmjs.org/make-dir/-/make-dir-4.0.0.tgz} @@ -5602,8 +5612,8 @@ packages: react-dom: optional: true - storybook@9.0.17: - resolution: {integrity: sha512-O+9jgJ+Trlq9VGD1uY4OBLKQWHHDKM/A/pA8vMW6PVehhGHNvpzcIC1bngr6mL5gGHZP2nBv+9XG8pTMcggMmg==, tarball: https://registry.npmjs.org/storybook/-/storybook-9.0.17.tgz} + storybook@9.1.2: + resolution: {integrity: sha512-TYcq7WmgfVCAQge/KueGkVlM/+g33sQcmbATlC3X6y/g2FEeSSLGrb6E6d3iemht8oio+aY6ld3YOdAnMwx45Q==, tarball: https://registry.npmjs.org/storybook/-/storybook-9.1.2.tgz} hasBin: true peerDependencies: prettier: ^2 || ^3 @@ -6669,13 +6679,13 @@ snapshots: '@types/tough-cookie': 4.0.5 tough-cookie: 4.1.4 - '@chromatic-com/storybook@4.0.1(storybook@9.0.17(@testing-library/dom@10.4.0)(prettier@3.4.1))': + '@chromatic-com/storybook@4.1.0(storybook@9.1.2(@testing-library/dom@10.4.0)(msw@2.4.8(typescript@5.6.3))(prettier@3.4.1)(vite@6.3.5(@types/node@20.17.16)(jiti@2.4.2)(yaml@2.7.0)))': dependencies: '@neoconfetti/react': 1.0.0 chromatic: 12.2.0 filesize: 10.1.2 jsonfile: 6.1.0 - storybook: 9.0.17(@testing-library/dom@10.4.0)(prettier@3.4.1) + storybook: 9.1.2(@testing-library/dom@10.4.0)(msw@2.4.8(typescript@5.6.3))(prettier@3.4.1)(vite@6.3.5(@types/node@20.17.16)(jiti@2.4.2)(yaml@2.7.0)) strip-ansi: 7.1.0 transitivePeerDependencies: - '@chromatic-com/cypress' @@ -7183,7 +7193,7 @@ snapshots: '@joshwooding/vite-plugin-react-docgen-typescript@0.6.1(typescript@5.6.3)(vite@6.3.5(@types/node@20.17.16)(jiti@2.4.2)(yaml@2.7.0))': dependencies: glob: 10.4.5 - magic-string: 0.30.5 + magic-string: 0.30.17 react-docgen-typescript: 2.2.2(typescript@5.6.3) vite: 6.3.5(@types/node@20.17.16)(jiti@2.4.2)(yaml@2.7.0) optionalDependencies: @@ -8080,69 +8090,69 @@ snapshots: dependencies: '@sinonjs/commons': 3.0.0 - '@storybook/addon-docs@9.0.17(@types/react@18.3.12)(storybook@9.0.17(@testing-library/dom@10.4.0)(prettier@3.4.1))': + '@storybook/addon-docs@9.1.2(@types/react@18.3.12)(storybook@9.1.2(@testing-library/dom@10.4.0)(msw@2.4.8(typescript@5.6.3))(prettier@3.4.1)(vite@6.3.5(@types/node@20.17.16)(jiti@2.4.2)(yaml@2.7.0)))': dependencies: '@mdx-js/react': 3.0.1(@types/react@18.3.12)(react@18.3.1) - '@storybook/csf-plugin': 9.0.17(storybook@9.0.17(@testing-library/dom@10.4.0)(prettier@3.4.1)) - '@storybook/icons': 1.2.12(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@storybook/react-dom-shim': 9.0.17(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@9.0.17(@testing-library/dom@10.4.0)(prettier@3.4.1)) + '@storybook/csf-plugin': 9.1.2(storybook@9.1.2(@testing-library/dom@10.4.0)(msw@2.4.8(typescript@5.6.3))(prettier@3.4.1)(vite@6.3.5(@types/node@20.17.16)(jiti@2.4.2)(yaml@2.7.0))) + '@storybook/icons': 1.4.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@storybook/react-dom-shim': 9.1.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@9.1.2(@testing-library/dom@10.4.0)(msw@2.4.8(typescript@5.6.3))(prettier@3.4.1)(vite@6.3.5(@types/node@20.17.16)(jiti@2.4.2)(yaml@2.7.0))) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - storybook: 9.0.17(@testing-library/dom@10.4.0)(prettier@3.4.1) + storybook: 9.1.2(@testing-library/dom@10.4.0)(msw@2.4.8(typescript@5.6.3))(prettier@3.4.1)(vite@6.3.5(@types/node@20.17.16)(jiti@2.4.2)(yaml@2.7.0)) ts-dedent: 2.2.0 transitivePeerDependencies: - '@types/react' - '@storybook/addon-links@9.0.17(react@18.3.1)(storybook@9.0.17(@testing-library/dom@10.4.0)(prettier@3.4.1))': + '@storybook/addon-links@9.1.2(react@18.3.1)(storybook@9.1.2(@testing-library/dom@10.4.0)(msw@2.4.8(typescript@5.6.3))(prettier@3.4.1)(vite@6.3.5(@types/node@20.17.16)(jiti@2.4.2)(yaml@2.7.0)))': dependencies: '@storybook/global': 5.0.0 - storybook: 9.0.17(@testing-library/dom@10.4.0)(prettier@3.4.1) + storybook: 9.1.2(@testing-library/dom@10.4.0)(msw@2.4.8(typescript@5.6.3))(prettier@3.4.1)(vite@6.3.5(@types/node@20.17.16)(jiti@2.4.2)(yaml@2.7.0)) optionalDependencies: react: 18.3.1 - '@storybook/addon-themes@9.0.17(storybook@9.0.17(@testing-library/dom@10.4.0)(prettier@3.4.1))': + '@storybook/addon-themes@9.1.2(storybook@9.1.2(@testing-library/dom@10.4.0)(msw@2.4.8(typescript@5.6.3))(prettier@3.4.1)(vite@6.3.5(@types/node@20.17.16)(jiti@2.4.2)(yaml@2.7.0)))': dependencies: - storybook: 9.0.17(@testing-library/dom@10.4.0)(prettier@3.4.1) + storybook: 9.1.2(@testing-library/dom@10.4.0)(msw@2.4.8(typescript@5.6.3))(prettier@3.4.1)(vite@6.3.5(@types/node@20.17.16)(jiti@2.4.2)(yaml@2.7.0)) ts-dedent: 2.2.0 - '@storybook/builder-vite@9.0.17(storybook@9.0.17(@testing-library/dom@10.4.0)(prettier@3.4.1))(vite@6.3.5(@types/node@20.17.16)(jiti@2.4.2)(yaml@2.7.0))': + '@storybook/builder-vite@9.1.2(storybook@9.1.2(@testing-library/dom@10.4.0)(msw@2.4.8(typescript@5.6.3))(prettier@3.4.1)(vite@6.3.5(@types/node@20.17.16)(jiti@2.4.2)(yaml@2.7.0)))(vite@6.3.5(@types/node@20.17.16)(jiti@2.4.2)(yaml@2.7.0))': dependencies: - '@storybook/csf-plugin': 9.0.17(storybook@9.0.17(@testing-library/dom@10.4.0)(prettier@3.4.1)) - storybook: 9.0.17(@testing-library/dom@10.4.0)(prettier@3.4.1) + '@storybook/csf-plugin': 9.1.2(storybook@9.1.2(@testing-library/dom@10.4.0)(msw@2.4.8(typescript@5.6.3))(prettier@3.4.1)(vite@6.3.5(@types/node@20.17.16)(jiti@2.4.2)(yaml@2.7.0))) + storybook: 9.1.2(@testing-library/dom@10.4.0)(msw@2.4.8(typescript@5.6.3))(prettier@3.4.1)(vite@6.3.5(@types/node@20.17.16)(jiti@2.4.2)(yaml@2.7.0)) ts-dedent: 2.2.0 vite: 6.3.5(@types/node@20.17.16)(jiti@2.4.2)(yaml@2.7.0) - '@storybook/csf-plugin@9.0.17(storybook@9.0.17(@testing-library/dom@10.4.0)(prettier@3.4.1))': + '@storybook/csf-plugin@9.1.2(storybook@9.1.2(@testing-library/dom@10.4.0)(msw@2.4.8(typescript@5.6.3))(prettier@3.4.1)(vite@6.3.5(@types/node@20.17.16)(jiti@2.4.2)(yaml@2.7.0)))': dependencies: - storybook: 9.0.17(@testing-library/dom@10.4.0)(prettier@3.4.1) + storybook: 9.1.2(@testing-library/dom@10.4.0)(msw@2.4.8(typescript@5.6.3))(prettier@3.4.1)(vite@6.3.5(@types/node@20.17.16)(jiti@2.4.2)(yaml@2.7.0)) unplugin: 1.5.0 '@storybook/global@5.0.0': {} - '@storybook/icons@1.2.12(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@storybook/icons@1.4.0(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/react-dom-shim@9.0.17(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@9.0.17(@testing-library/dom@10.4.0)(prettier@3.4.1))': + '@storybook/react-dom-shim@9.1.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@9.1.2(@testing-library/dom@10.4.0)(msw@2.4.8(typescript@5.6.3))(prettier@3.4.1)(vite@6.3.5(@types/node@20.17.16)(jiti@2.4.2)(yaml@2.7.0)))': dependencies: react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - storybook: 9.0.17(@testing-library/dom@10.4.0)(prettier@3.4.1) + storybook: 9.1.2(@testing-library/dom@10.4.0)(msw@2.4.8(typescript@5.6.3))(prettier@3.4.1)(vite@6.3.5(@types/node@20.17.16)(jiti@2.4.2)(yaml@2.7.0)) - '@storybook/react-vite@9.0.17(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rollup@4.40.1)(storybook@9.0.17(@testing-library/dom@10.4.0)(prettier@3.4.1))(typescript@5.6.3)(vite@6.3.5(@types/node@20.17.16)(jiti@2.4.2)(yaml@2.7.0))': + '@storybook/react-vite@9.1.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rollup@4.40.1)(storybook@9.1.2(@testing-library/dom@10.4.0)(msw@2.4.8(typescript@5.6.3))(prettier@3.4.1)(vite@6.3.5(@types/node@20.17.16)(jiti@2.4.2)(yaml@2.7.0)))(typescript@5.6.3)(vite@6.3.5(@types/node@20.17.16)(jiti@2.4.2)(yaml@2.7.0))': dependencies: '@joshwooding/vite-plugin-react-docgen-typescript': 0.6.1(typescript@5.6.3)(vite@6.3.5(@types/node@20.17.16)(jiti@2.4.2)(yaml@2.7.0)) '@rollup/pluginutils': 5.0.5(rollup@4.40.1) - '@storybook/builder-vite': 9.0.17(storybook@9.0.17(@testing-library/dom@10.4.0)(prettier@3.4.1))(vite@6.3.5(@types/node@20.17.16)(jiti@2.4.2)(yaml@2.7.0)) - '@storybook/react': 9.0.17(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@9.0.17(@testing-library/dom@10.4.0)(prettier@3.4.1))(typescript@5.6.3) + '@storybook/builder-vite': 9.1.2(storybook@9.1.2(@testing-library/dom@10.4.0)(msw@2.4.8(typescript@5.6.3))(prettier@3.4.1)(vite@6.3.5(@types/node@20.17.16)(jiti@2.4.2)(yaml@2.7.0)))(vite@6.3.5(@types/node@20.17.16)(jiti@2.4.2)(yaml@2.7.0)) + '@storybook/react': 9.1.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@9.1.2(@testing-library/dom@10.4.0)(msw@2.4.8(typescript@5.6.3))(prettier@3.4.1)(vite@6.3.5(@types/node@20.17.16)(jiti@2.4.2)(yaml@2.7.0)))(typescript@5.6.3) find-up: 7.0.0 - magic-string: 0.30.5 + magic-string: 0.30.17 react: 18.3.1 react-docgen: 8.0.0 react-dom: 18.3.1(react@18.3.1) resolve: 1.22.10 - storybook: 9.0.17(@testing-library/dom@10.4.0)(prettier@3.4.1) + storybook: 9.1.2(@testing-library/dom@10.4.0)(msw@2.4.8(typescript@5.6.3))(prettier@3.4.1)(vite@6.3.5(@types/node@20.17.16)(jiti@2.4.2)(yaml@2.7.0)) tsconfig-paths: 4.2.0 vite: 6.3.5(@types/node@20.17.16)(jiti@2.4.2)(yaml@2.7.0) transitivePeerDependencies: @@ -8150,13 +8160,13 @@ snapshots: - supports-color - typescript - '@storybook/react@9.0.17(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@9.0.17(@testing-library/dom@10.4.0)(prettier@3.4.1))(typescript@5.6.3)': + '@storybook/react@9.1.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@9.1.2(@testing-library/dom@10.4.0)(msw@2.4.8(typescript@5.6.3))(prettier@3.4.1)(vite@6.3.5(@types/node@20.17.16)(jiti@2.4.2)(yaml@2.7.0)))(typescript@5.6.3)': dependencies: '@storybook/global': 5.0.0 - '@storybook/react-dom-shim': 9.0.17(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@9.0.17(@testing-library/dom@10.4.0)(prettier@3.4.1)) + '@storybook/react-dom-shim': 9.1.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@9.1.2(@testing-library/dom@10.4.0)(msw@2.4.8(typescript@5.6.3))(prettier@3.4.1)(vite@6.3.5(@types/node@20.17.16)(jiti@2.4.2)(yaml@2.7.0))) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - storybook: 9.0.17(@testing-library/dom@10.4.0)(prettier@3.4.1) + storybook: 9.1.2(@testing-library/dom@10.4.0)(msw@2.4.8(typescript@5.6.3))(prettier@3.4.1)(vite@6.3.5(@types/node@20.17.16)(jiti@2.4.2)(yaml@2.7.0)) optionalDependencies: typescript: 5.6.3 @@ -8605,6 +8615,15 @@ snapshots: chai: 5.2.1 tinyrainbow: 2.0.0 + '@vitest/mocker@3.2.4(msw@2.4.8(typescript@5.6.3))(vite@6.3.5(@types/node@20.17.16)(jiti@2.4.2)(yaml@2.7.0))': + dependencies: + '@vitest/spy': 3.2.4 + estree-walker: 3.0.3 + magic-string: 0.30.17 + optionalDependencies: + msw: 2.4.8(typescript@5.6.3) + vite: 6.3.5(@types/node@20.17.16)(jiti@2.4.2)(yaml@2.7.0) + '@vitest/pretty-format@3.2.4': dependencies: tinyrainbow: 2.0.0 @@ -8964,7 +8983,7 @@ snapshots: assertion-error: 2.0.1 check-error: 2.1.1 deep-eql: 5.0.2 - loupe: 3.1.3 + loupe: 3.2.0 pathval: 2.0.0 chalk@2.4.2: @@ -9564,6 +9583,10 @@ snapshots: estree-walker@2.0.2: {} + estree-walker@3.0.3: + dependencies: + '@types/estree': 1.0.7 + esutils@2.0.3: {} etag@1.8.1: {} @@ -10730,8 +10753,6 @@ snapshots: dependencies: js-tokens: 4.0.0 - loupe@3.1.3: {} - loupe@3.2.0: {} lowlight@1.20.0: @@ -10753,7 +10774,7 @@ snapshots: lz-string@1.5.0: {} - magic-string@0.30.5: + magic-string@0.30.17: dependencies: '@jridgewell/sourcemap-codec': 1.5.0 @@ -12251,23 +12272,24 @@ snapshots: dependencies: internal-slot: 1.0.6 - storybook-addon-remix-react-router@5.0.0(react-dom@18.3.1(react@18.3.1))(react-router@7.8.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1)(storybook@9.0.17(@testing-library/dom@10.4.0)(prettier@3.4.1)): + storybook-addon-remix-react-router@5.0.0(react-dom@18.3.1(react@18.3.1))(react-router@7.8.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1)(storybook@9.1.2(@testing-library/dom@10.4.0)(msw@2.4.8(typescript@5.6.3))(prettier@3.4.1)(vite@6.3.5(@types/node@20.17.16)(jiti@2.4.2)(yaml@2.7.0))): dependencies: '@mjackson/form-data-parser': 0.4.0 compare-versions: 6.1.0 react-inspector: 6.0.2(react@18.3.1) react-router: 7.8.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - storybook: 9.0.17(@testing-library/dom@10.4.0)(prettier@3.4.1) + storybook: 9.1.2(@testing-library/dom@10.4.0)(msw@2.4.8(typescript@5.6.3))(prettier@3.4.1)(vite@6.3.5(@types/node@20.17.16)(jiti@2.4.2)(yaml@2.7.0)) optionalDependencies: react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - storybook@9.0.17(@testing-library/dom@10.4.0)(prettier@3.4.1): + storybook@9.1.2(@testing-library/dom@10.4.0)(msw@2.4.8(typescript@5.6.3))(prettier@3.4.1)(vite@6.3.5(@types/node@20.17.16)(jiti@2.4.2)(yaml@2.7.0)): dependencies: '@storybook/global': 5.0.0 '@testing-library/jest-dom': 6.6.3 '@testing-library/user-event': 14.6.1(@testing-library/dom@10.4.0) '@vitest/expect': 3.2.4 + '@vitest/mocker': 3.2.4(msw@2.4.8(typescript@5.6.3))(vite@6.3.5(@types/node@20.17.16)(jiti@2.4.2)(yaml@2.7.0)) '@vitest/spy': 3.2.4 better-opn: 3.0.2 esbuild: 0.25.3 @@ -12280,8 +12302,10 @@ snapshots: transitivePeerDependencies: - '@testing-library/dom' - bufferutil + - msw - supports-color - utf-8-validate + - vite strict-event-emitter@0.5.1: {}