From fcd2b24b89777e26c26575dfe78dd3482017dbed Mon Sep 17 00:00:00 2001 From: Kyle Gach <kyle.gach@gmail.com> Date: Wed, 18 Dec 2024 11:25:13 -0700 Subject: [PATCH 01/34] Docs fixes found during 8.5 QA - Add `configDir` option to example configs - Move coverage exclusion config under Set up heading - Add `**/.storybook/**` --- docs/_snippets/vitest-plugin-vitest-config.md | 6 +++ .../vitest-plugin-vitest-workspace.md | 6 +++ docs/writing-tests/test-addon.mdx | 13 +++-- docs/writing-tests/test-coverage.mdx | 49 +++++++++---------- 4 files changed, 45 insertions(+), 29 deletions(-) diff --git a/docs/_snippets/vitest-plugin-vitest-config.md b/docs/_snippets/vitest-plugin-vitest-config.md index b3f271a6e636..6ce11fcef545 100644 --- a/docs/_snippets/vitest-plugin-vitest-config.md +++ b/docs/_snippets/vitest-plugin-vitest-config.md @@ -11,6 +11,8 @@ export default mergeConfig( defineConfig({ plugins: [ storybookTest({ + // The location of your Storybook config, main.js|ts + configDir: './.storybook', // This should match your package.json script to run Storybook // The --ci flag will skip prompts and not open a browser storybookScript: 'yarn storybook --ci', @@ -44,6 +46,8 @@ export default mergeConfig( defineConfig({ plugins: [ storybookTest({ + // The location of your Storybook config, main.js|ts + configDir: './.storybook', // This should match your package.json script to run Storybook // The --ci flag will skip prompts and not open a browser storybookScript: 'yarn storybook --ci', @@ -78,6 +82,8 @@ export default mergeConfig( defineConfig({ plugins: [ storybookTest({ + // The location of your Storybook config, main.js|ts + configDir: './.storybook', // This should match your package.json script to run Storybook // The --ci flag will skip prompts and not open a browser storybookScript: 'yarn storybook --ci', diff --git a/docs/_snippets/vitest-plugin-vitest-workspace.md b/docs/_snippets/vitest-plugin-vitest-workspace.md index 46b5a3e22edd..bce2c89ce97a 100644 --- a/docs/_snippets/vitest-plugin-vitest-workspace.md +++ b/docs/_snippets/vitest-plugin-vitest-workspace.md @@ -12,6 +12,8 @@ export default defineWorkspace([ extends: './vite.config.ts', plugins: [ storybookTest({ + // The location of your Storybook config, main.js|ts + configDir: './.storybook', // This should match your package.json script to run Storybook // The --ci flag will skip prompts and not open a browser storybookScript: 'yarn storybook --ci', @@ -49,6 +51,8 @@ export default defineWorkspace([ extends: './vite.config.ts', plugins: [ storybookTest({ + // The location of your Storybook config, main.js|ts + configDir: './.storybook', // This should match your package.json script to run Storybook // The --ci flag will skip prompts and not open a browser storybookScript: 'yarn storybook --ci', @@ -87,6 +91,8 @@ export default defineWorkspace([ extends: './vite.config.ts', plugins: [ storybookTest({ + // The location of your Storybook config, main.js|ts + configDir: './.storybook', // This should match your package.json script to run Storybook // The --ci flag will skip prompts and not open a browser storybookScript: 'yarn storybook --ci', diff --git a/docs/writing-tests/test-addon.mdx b/docs/writing-tests/test-addon.mdx index 351aa557428a..2fe39d7b8b83 100644 --- a/docs/writing-tests/test-addon.mdx +++ b/docs/writing-tests/test-addon.mdx @@ -96,7 +96,9 @@ Some Storybook frameworks require additional setup to enable the framework's fea viteConfig, defineConfig({ plugins: [ - storybookTest(), + storybookTest({ + // ... + }), storybookNextJsPlugin(), // đ Apply the framework plugin here ], // ... @@ -119,7 +121,9 @@ Some Storybook frameworks require additional setup to enable the framework's fea viteConfig, defineConfig({ plugins: [ - storybookTest(), + storybookTest({ + // ... + }), storybookVuePlugin(), // đ Apply the framework plugin here ], // ... @@ -142,7 +146,9 @@ Some Storybook frameworks require additional setup to enable the framework's fea viteConfig, defineConfig({ plugins: [ - storybookTest(), + storybookTest({ + // ... + }), storybookSveltekitPlugin(), // đ Apply the framework plugin here ], // ... @@ -313,6 +319,7 @@ export default defineWorkspace([ { plugins: [ storybookTest({ + // ... storybookScript: 'yarn storybook --ci', storybookUrl: process.env.SB_URL }), diff --git a/docs/writing-tests/test-coverage.mdx b/docs/writing-tests/test-coverage.mdx index 1b62f752dfbd..857d70dcae5e 100644 --- a/docs/writing-tests/test-coverage.mdx +++ b/docs/writing-tests/test-coverage.mdx @@ -34,6 +34,29 @@ Before coverage can be calculated, you may need to install a support package cor {/* prettier-ignore-end */} +Additionally (until Vitest 3.0.0 is released), the generated coverage report will include the stories files themselves and output from your built Storybook application. This is misleading and they should be excluded. To do this, you can add the following to your Vitest config: + +```ts title="vitest.config.ts" +import { coverageConfigDefaults, defineConfig } from 'vitest/config'; + +export default defineConfig({ + // ... + test: { + coverage: { + // đ Add this + exclude: [ + ...coverageConfigDefaults.exclude, + '**/.storybook/**', + // đ This pattern must align with the `stories` property of your `.storybook/main.ts` config + '**/*.stories.*', + // đ This pattern must align with the output directory of `storybook build` + '**/storybook-static/**', + ], + } + } +}) +``` + ### Usage Because coverage is built into the Test addon, you can use it everywhere you run your tests. @@ -188,32 +211,6 @@ When calculating coverage in the Storybook UI, the following options are always - `reporter` - `reportsDirectory` -### Troubleshooting - -#### Excluding stories from the coverage report - -Until Vitest 3.0.0 is released, the generated coverage report will include the stories files themselves and output from your built Storybook application. This is misleading and they should be excluded. To do this, you can add the following to your Vitest config: - -```ts title="vitest.config.ts" -import { coverageConfigDefaults, defineConfig } from 'vitest/config'; - -export default defineConfig({ - // ... - test: { - coverage: { - // đ Add this - exclude: [ - ...coverageConfigDefaults.exclude, - // This pattern must align with the `stories` property of your `.storybook/main.ts` config - '**/*.stories.*', - // This pattern must align with the output directory of `storybook build` - 'storybook-static/**', - ], - } - } -}) -``` - </If> ## With the coverage addon From 8cbd0caaab3eeb1a7403d516a31eb457710f59ad Mon Sep 17 00:00:00 2001 From: Kyle Gach <kyle.gach@gmail.com> Date: Wed, 18 Dec 2024 20:58:26 -0700 Subject: [PATCH 02/34] Correct `viteFinal` guidance --- .../vitest-plugin-vitest-config-alias.md | 31 ------------------- docs/writing-tests/test-addon.mdx | 12 ++----- 2 files changed, 2 insertions(+), 41 deletions(-) delete mode 100644 docs/_snippets/vitest-plugin-vitest-config-alias.md diff --git a/docs/_snippets/vitest-plugin-vitest-config-alias.md b/docs/_snippets/vitest-plugin-vitest-config-alias.md deleted file mode 100644 index ac1f59857c72..000000000000 --- a/docs/_snippets/vitest-plugin-vitest-config-alias.md +++ /dev/null @@ -1,31 +0,0 @@ -```js filename=".storybook/main.js" renderer="common" tabTitle="Before" -import { mergeConfig } from 'vite'; - -export default { - // ... - viteFinal: async (viteConfig) => { - return mergeConfig(viteConfig, { - resolve: { - alias: { - '@components': '/src/components', - // ... - }, - }, - }); - }, -}; -``` - -```js filename="vitest.config.ts" renderer="common" tabTitle="After" -import { defineConfig } from 'vitest/config'; - -export default defineConfig({ - // ... - resolve: { - alias: { - '@components': '/src/components', - // ... - }, - }, -}); -``` diff --git a/docs/writing-tests/test-addon.mdx b/docs/writing-tests/test-addon.mdx index 2fe39d7b8b83..4b340203f378 100644 --- a/docs/writing-tests/test-addon.mdx +++ b/docs/writing-tests/test-addon.mdx @@ -434,17 +434,9 @@ If your stories use assets in the public directory and you're not using the defa ### How do I apply custom Vite configuration? -If you have custom operations defined in [`viteFinal`](../api/main-config/main-config-vite-final.mdx) in your `.storybook/main.js|ts` file, you will need to translate those into the Vitest configuration. This is because the plugin does not use the Storybook Vite configuration. +Your Storybook project's Vite configuration (in [`viteFinal`](../api/main-config/main-config-vite-final.mdx) in your `.storybook/main.js|ts` file) is automatically applied to your Vitest configuration, with one exception: the plugins. -For example, to recreate an alias in Storybook's Vite configuration, you would need to apply that alias in the Vitest configuration: - -{/* prettier-ignore-start */} - -<CodeSnippets path="vitest-plugin-vitest-config-alias.md" /> - -{/* prettier-ignore-end */} - -The above example places the Vite configuration in a Vitest configuration file. You can also place it in a Vitest workspace file, if that is how your project is configured. +If you are running any plugins in `viteFinal`, you will likely also need to run those in the Vitest configuration. ### How do I isolate Storybook tests from others? From eaaa59b080437d626247a2d6141a25be549937d6 Mon Sep 17 00:00:00 2001 From: Kyle Gach <kyle.gach@gmail.com> Date: Mon, 23 Dec 2024 11:30:37 -0600 Subject: [PATCH 03/34] Add MSW version requirement --- docs/writing-tests/test-addon.mdx | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docs/writing-tests/test-addon.mdx b/docs/writing-tests/test-addon.mdx index 4b340203f378..27dfb004ff5f 100644 --- a/docs/writing-tests/test-addon.mdx +++ b/docs/writing-tests/test-addon.mdx @@ -41,6 +41,8 @@ Before installing, make sure your project meets the following requirements: - A Storybook framework that uses Vite (e.g. [`vue3-vite`](../get-started/frameworks/vue3-vite.mdx), [`react-vite`](../get-started/frameworks/react-vite.mdx), ['sveltekit`](../get-started/frameworks/sveltekit.mdx), etc.), or the [Storybook Next.js framework with Vite](../get-started/frameworks/nextjs.mdx#with-vite) - Vitest âĨ 2.1 - If you're not yet using Vitest, it will be installed and configured for you when you install the addon +- (optional) MSW âĨ 2.0 + - If MSW is installed, it must be v2.0.0 or later to not conflict with Vitest's dependency <If renderer="react"> <Callout variant="info" icon="âšī¸"> From 68140850830f03cd5d8e95cbea711ef8bc46d612 Mon Sep 17 00:00:00 2001 From: Valentin Palkovic <valentin@chromatic.com> Date: Tue, 24 Dec 2024 10:55:09 +0100 Subject: [PATCH 04/34] UI: Fix overlapping shadow of testing module on scrollbar --- code/core/src/manager/components/sidebar/SidebarBottom.tsx | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/code/core/src/manager/components/sidebar/SidebarBottom.tsx b/code/core/src/manager/components/sidebar/SidebarBottom.tsx index 38efdae4f682..00730fa36e5c 100644 --- a/code/core/src/manager/components/sidebar/SidebarBottom.tsx +++ b/code/core/src/manager/components/sidebar/SidebarBottom.tsx @@ -56,12 +56,14 @@ const Content = styled.div(({ theme }) => ({ bottom: 0, left: 0, right: 0, - padding: 12, + padding: '12px 0', + margin: '0 12px', display: 'flex', flexDirection: 'column', gap: 12, color: theme.color.defaultText, fontSize: theme.typography.size.s1, + overflow: 'hidden', '&:empty': { display: 'none', From 50a61c5d252706ada425a5aa5cfbd0acf5b8e275 Mon Sep 17 00:00:00 2001 From: Kyle Gach <kyle.gach@gmail.com> Date: Fri, 27 Dec 2024 15:13:05 -0600 Subject: [PATCH 05/34] Add webpack-to-vite migration guidance --- docs/_snippets/webpack-final-to-vite-final.md | 83 +++++++++++++++++++ docs/builders/vite.mdx | 14 ++++ docs/get-started/frameworks/nextjs.mdx | 2 + 3 files changed, 99 insertions(+) create mode 100644 docs/_snippets/webpack-final-to-vite-final.md diff --git a/docs/_snippets/webpack-final-to-vite-final.md b/docs/_snippets/webpack-final-to-vite-final.md new file mode 100644 index 000000000000..df83bc4fa7c5 --- /dev/null +++ b/docs/_snippets/webpack-final-to-vite-final.md @@ -0,0 +1,83 @@ +```js filename=".storybook/main.js" renderer="common" language="js" tabTitle="With Webpack" +export default { + // Replace your-framework with the framework you are using (e.g., react-webpack5, nextjs, angular) + framework: '@storybook/your-framework', + stories: ['../src/**/*.mdx', '../stories/**/*.stories.@(js|jsx|mjs|ts|tsx)'], + async webpackFinal(config) { + storybookBaseConfig.module?.rules?.push({ + test: /\.(graphql|gql)$/, + include: [path.resolve('./lib/emails')], + exclude: /node_modules/, + loader: 'graphql-tag/loader', + }); + storybookBaseConfig.module?.rules?.push({ + test: /\.(graphql|gql)$/, + include: [path.resolve('./lib/schema')], + exclude: /node_modules/, + loader: 'raw-loader', + }); + + return config; + }, +}; +``` + +```js filename=".storybook/main.js" renderer="common" language="js" tabTitle="With Vite" +export default { + // Replace your-framework with the framework you are using (e.g., react-vite, vue3-vite) + framework: '@storybook/your-framework', + stories: ['../src/**/*.mdx', '../stories/**/*.stories.@(js|jsx|mjs|ts|tsx)'], + async viteFinal(config) { + return { + ...config, + plugins: [...(config.plugins ?? []), graphql()], + }; + }, +}; +``` + +```ts filename=".storybook/main.ts" renderer="common" language="ts" tabTitle="With Webpack" +// Replace your-framework with the framework you are using (e.g., react-webpack5, nextjs, angular) +import type { StorybookConfig } from '@storybook/your-framework'; + +const config: StorybookConfig = { + framework: '@storybook/your-framework', + stories: ['../src/**/*.mdx', '../stories/**/*.stories.@(js|jsx|mjs|ts|tsx)'], + async webpackFinal(config) { + storybookBaseConfig.module?.rules?.push({ + test: /\.(graphql|gql)$/, + include: [path.resolve('./lib/emails')], + exclude: /node_modules/, + loader: 'graphql-tag/loader', + }); + storybookBaseConfig.module?.rules?.push({ + test: /\.(graphql|gql)$/, + include: [path.resolve('./lib/schema')], + exclude: /node_modules/, + loader: 'raw-loader', + }); + + return config; + }, +}; + +export default config; +``` + +```ts filename=".storybook/main.ts" renderer="common" language="ts" tabTitle="With Vite" +// Replace your-framework with the framework you are using (e.g., react-vite, vue3-vite) +import type { StorybookConfig } from '@storybook/your-framework'; + +const config: StorybookConfig = { + framework: '@storybook/your-framework', + stories: ['../src/**/*.mdx', '../stories/**/*.stories.@(js|jsx|mjs|ts|tsx)'], + async viteFinal(config) { + return { + ...config, + plugins: [...(config.plugins ?? []), graphql()], + }; + }, +}; + +export default config; +``` diff --git a/docs/builders/vite.mdx b/docs/builders/vite.mdx index 8f226e4f5844..99c411dac1e1 100644 --- a/docs/builders/vite.mdx +++ b/docs/builders/vite.mdx @@ -82,6 +82,20 @@ If you need, you can also configure Storybook's Vite builder using TypeScript. R ## Troubleshooting +### Migrating from Webpack + +Vite generally handles more use cases out of the box than Webpack. For example, loading styles just works for most projects. So, when migrating a Webpack-based project to Vite, you may find that you don't need all of your previous configuration. + +We recommend starting with no Storybook-specific Vite configuration and only adding what you determine your project actually requires. + +For reference, here is a Webpack configuration to handle loading graphql queries and its equivalent, using a plugin, in Vite: + +{/* prettier-ignore-start */} + +<CodeSnippets path="webpack-final-to-vite-final.md" /> + +{/* prettier-ignore-end */} + ### Working directory not being detected By default, the Vite builder enables Vite's [`server.fs.strict`](https://vitejs.dev/config/#server-fs-strict) option for increased security, defining the project's `root` to Storybook's configuration directory. diff --git a/docs/get-started/frameworks/nextjs.mdx b/docs/get-started/frameworks/nextjs.mdx index 14e2c3e55294..62b2c5b7ff88 100644 --- a/docs/get-started/frameworks/nextjs.mdx +++ b/docs/get-started/frameworks/nextjs.mdx @@ -108,6 +108,8 @@ Storybook for Next.js is a [framework](../../contribute/framework.mdx) that make <Callout variant="info"> If your Storybook configuration contains custom Webpack operations in [`webpackFinal`](../../api/main-config/main-config-webpack-final.mdx), you will likely need to create equivalents in [`viteFinal`](../../api/main-config/main-config-vite-final.mdx). + + For more information, see the [Vite builder documentation](../../builders/vite.mdx#migrating-from-webpack). </Callout> Finally, if you were using Storybook plugins to integrate with Next.js, those are no longer necessary when using this framework and can be removed: From 0f5424c016122bfd31a450fc93ba31f4880ad976 Mon Sep 17 00:00:00 2001 From: jonniebigodes <joaocontadesenvolvimento@gmail.com> Date: Sat, 28 Dec 2024 20:37:25 +0000 Subject: [PATCH 06/34] Docs: A11y minor fixes --- .../storybook-addon-a11y-component-config.md | 60 ++++++++++++ .../storybook-addon-a11y-global-config.md | 12 ++- .../storybook-addon-a11y-story-config.md | 96 ++++++++++++++++--- docs/writing-tests/accessibility-testing.mdx | 2 +- 4 files changed, 156 insertions(+), 14 deletions(-) diff --git a/docs/_snippets/storybook-addon-a11y-component-config.md b/docs/_snippets/storybook-addon-a11y-component-config.md index 5d84203b21c8..97f1d07c1eeb 100644 --- a/docs/_snippets/storybook-addon-a11y-component-config.md +++ b/docs/_snippets/storybook-addon-a11y-component-config.md @@ -23,6 +23,11 @@ const meta: Meta<MyComponent> = { }, ], }, + /* + * Axe's options parameter + * See https://github.com/dequelabs/axe-core/blob/develop/doc/API.md#options-parameter + * to learn more about the available options. + */ options: {}, }, }, @@ -62,6 +67,11 @@ export default meta; }, ], }, + /* + * Axe's options parameter + * See https://github.com/dequelabs/axe-core/blob/develop/doc/API.md#options-parameter + * to learn more about the available options. + */ options: {} }, }, @@ -97,6 +107,11 @@ export default { }, ], }, + /* + * Axe's options parameter + * See https://github.com/dequelabs/axe-core/blob/develop/doc/API.md#options-parameter + * to learn more about the available options. + */ options: {}, }, }, @@ -131,6 +146,11 @@ export default { }, ], }, + /* + * Axe's options parameter + * See https://github.com/dequelabs/axe-core/blob/develop/doc/API.md#options-parameter + * to learn more about the available options. + */ options: {}, }, }, @@ -168,6 +188,11 @@ export default { }, ], }, + /* + * Axe's options parameter + * See https://github.com/dequelabs/axe-core/blob/develop/doc/API.md#options-parameter + * to learn more about the available options. + */ options: {}, }, }, @@ -205,6 +230,11 @@ const meta = { }, ], }, + /* + * Axe's options parameter + * See https://github.com/dequelabs/axe-core/blob/develop/doc/API.md#options-parameter + * to learn more about the available options. + */ options: {}, }, }, @@ -244,6 +274,11 @@ const meta = { }, ], }, + /* + * Axe's options parameter + * See https://github.com/dequelabs/axe-core/blob/develop/doc/API.md#options-parameter + * to learn more about the available options. + */ options: {}, }, }, @@ -283,6 +318,11 @@ export default meta; }, ], }, + /* + * Axe's options parameter + * See https://github.com/dequelabs/axe-core/blob/develop/doc/API.md#options-parameter + * to learn more about the available options. + */ options: {}, }, }, @@ -320,6 +360,11 @@ const meta: Meta<typeof MyComponent> = { }, ], }, + /* + * Axe's options parameter + * See https://github.com/dequelabs/axe-core/blob/develop/doc/API.md#options-parameter + * to learn more about the available options. + */ options: {}, }, }, @@ -359,6 +404,11 @@ const meta: Meta<typeof MyComponent> = { }, ], }, + /* + * Axe's options parameter + * See https://github.com/dequelabs/axe-core/blob/develop/doc/API.md#options-parameter + * to learn more about the available options. + */ options: {}, }, }, @@ -393,6 +443,11 @@ export default { }, ], }, + /* + * Axe's options parameter + * See https://github.com/dequelabs/axe-core/blob/develop/doc/API.md#options-parameter + * to learn more about the available options. + */ options: {}, }, }, @@ -427,6 +482,11 @@ const meta: Meta = { }, ], }, + /* + * Axe's options parameter + * See https://github.com/dequelabs/axe-core/blob/develop/doc/API.md#options-parameter + * to learn more about the available options. + */ options: {}, }, }, diff --git a/docs/_snippets/storybook-addon-a11y-global-config.md b/docs/_snippets/storybook-addon-a11y-global-config.md index bd508791adc4..cbd7fb07bcc9 100644 --- a/docs/_snippets/storybook-addon-a11y-global-config.md +++ b/docs/_snippets/storybook-addon-a11y-global-config.md @@ -18,7 +18,11 @@ export default { }, ], }, - // Axe's options parameter + /* + * Axe's options parameter + * See https://github.com/dequelabs/axe-core/blob/develop/doc/API.md#options-parameter + * to learn more about the available options. + */ options: {}, }, }, @@ -54,7 +58,11 @@ const preview: Preview = { }, ], }, - // Axe's options parameter + /* + * Axe's options parameter + * See https://github.com/dequelabs/axe-core/blob/develop/doc/API.md#options-parameter + * to learn more about the available options. + */ options: {}, }, }, diff --git a/docs/_snippets/storybook-addon-a11y-story-config.md b/docs/_snippets/storybook-addon-a11y-story-config.md index b20c4f3b4359..ce8adce07f7c 100644 --- a/docs/_snippets/storybook-addon-a11y-story-config.md +++ b/docs/_snippets/storybook-addon-a11y-story-config.md @@ -28,7 +28,11 @@ export const ExampleStory: Story = { }, ], }, - // Axe's options parameter + /* + * Axe's options parameter + * See https://github.com/dequelabs/axe-core/blob/develop/doc/API.md#options-parameter + * to learn more about the available options. + */ options: {}, }, }, @@ -66,7 +70,11 @@ export const ExampleStory = { }, ], }, - // Axe's options parameter + /* + * Axe's options parameter + * See https://github.com/dequelabs/axe-core/blob/develop/doc/API.md#options-parameter + * to learn more about the available options. + */ options: {}, }, }, @@ -109,7 +117,11 @@ export const ExampleStory: Story = { }, ], }, - // Axe's options parameter + /* + * Axe's options parameter + * See https://github.com/dequelabs/axe-core/blob/develop/doc/API.md#options-parameter + * to learn more about the available options. + */ options: {}, }, }, @@ -152,7 +164,11 @@ export const ExampleStory: Story = { }, ], }, - // Axe's options parameter + /* + * Axe's options parameter + * See https://github.com/dequelabs/axe-core/blob/develop/doc/API.md#options-parameter + * to learn more about the available options. + */ options: {}, }, }, @@ -195,7 +211,17 @@ export const ExampleStory: Story = { }, ], }, + /* + * Axe's options parameter + * See https://github.com/dequelabs/axe-core/blob/develop/doc/API.md#options-parameter + * to learn more about the available options. + */ options: {}, + }, + }} + globals={{ + a11y: { + // Optional flag to prevent the automatic check manual: true, }, }} @@ -227,7 +253,17 @@ export const ExampleStory = { }, ], }, + /* + * Axe's options parameter + * See https://github.com/dequelabs/axe-core/blob/develop/doc/API.md#options-parameter + * to learn more about the available options. + */ options: {}, + }, + }, + globals: { + a11y: { + // Optional flag to prevent the automatic check manual: true, }, }, @@ -264,6 +300,11 @@ export const ExampleStory = { }, ], }, + /* + * Axe's options parameter + * See https://github.com/dequelabs/axe-core/blob/develop/doc/API.md#options-parameter + * to learn more about the available options. + */ options: {}, }, }} @@ -306,7 +347,11 @@ export const ExampleStory: Story = { }, ], }, - // Axe's options parameter + /* + * Axe's options parameter + * See https://github.com/dequelabs/axe-core/blob/develop/doc/API.md#options-parameter + * to learn more about the available options. + */ options: {}, }, }, @@ -349,6 +394,11 @@ export const ExampleStory: Story = { }, ], }, + /* + * Axe's options parameter + * See https://github.com/dequelabs/axe-core/blob/develop/doc/API.md#options-parameter + * to learn more about the available options. + */ options: {}, }, }} @@ -391,7 +441,11 @@ export const ExampleStory: Story = { }, ], }, - // Axe's options parameter + /* + * Axe's options parameter + * See https://github.com/dequelabs/axe-core/blob/develop/doc/API.md#options-parameter + * to learn more about the available options. + */ options: {}, }, }, @@ -429,7 +483,11 @@ export const ExampleStory = { }, ], }, - // Axe's options parameter + /* + * Axe's options parameter + * See https://github.com/dequelabs/axe-core/blob/develop/doc/API.md#options-parameter + * to learn more about the available options. + */ options: {}, }, }, @@ -472,7 +530,11 @@ export const ExampleStory = { }, ], }, - // Axe's options parameter + /* + * Axe's options parameter + * See https://github.com/dequelabs/axe-core/blob/develop/doc/API.md#options-parameter + * to learn more about the available options. + */ options: {}, }, }, @@ -515,7 +577,11 @@ export const ExampleStory = { }, ], }, - // Axe's options parameter + /* + * Axe's options parameter + * See https://github.com/dequelabs/axe-core/blob/develop/doc/API.md#options-parameter + * to learn more about the available options. + */ options: {}, }, }, @@ -551,7 +617,11 @@ export const ExampleStory = { }, ], }, - // Axe's options parameter + /* + * Axe's options parameter + * See https://github.com/dequelabs/axe-core/blob/develop/doc/API.md#options-parameter + * to learn more about the available options. + */ options: {}, }, }, @@ -592,7 +662,11 @@ export const ExampleStory: Story = { }, ], }, - // Axe's options parameter + /* + * Axe's options parameter + * See https://github.com/dequelabs/axe-core/blob/develop/doc/API.md#options-parameter + * to learn more about the available options. + */ options: {}, }, }, diff --git a/docs/writing-tests/accessibility-testing.mdx b/docs/writing-tests/accessibility-testing.mdx index 48ce67a1b4a7..0de09e6ceced 100644 --- a/docs/writing-tests/accessibility-testing.mdx +++ b/docs/writing-tests/accessibility-testing.mdx @@ -53,7 +53,7 @@ Cycling through both stories, you will see that the `Inaccessible` story contain ### Configure -Out of the box, Storybook's accessibility addon includes a set of accessibility rules that cover most issues. You can also fine-tune the [addon configuration](https://github.com/storybookjs/storybook/tree/next/code/addons/a11y#parameters) or override [Axe's ruleset](https://github.com/storybookjs/storybook/tree/next/code/addons/a11y#handling-failing-rules) to best suit your needs. +Out of the box, Storybook's accessibility addon includes a set of accessibility rules that cover most issues. You can also fine-tune the addon configuration or override [Axe's ruleset](https://github.com/dequelabs/axe-core/blob/develop/doc/API.md#api-name-axeconfigure) to best suit your needs. #### Global a11y configuration From ac11562b3eec2f3647aafebf644de50d38c10266 Mon Sep 17 00:00:00 2001 From: jonniebigodes <joaocontadesenvolvimento@gmail.com> Date: Sat, 28 Dec 2024 20:56:38 +0000 Subject: [PATCH 07/34] Removes the outdated addon screenshot --- code/addons/a11y/docs/screenshot.png | Bin 179567 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 code/addons/a11y/docs/screenshot.png diff --git a/code/addons/a11y/docs/screenshot.png b/code/addons/a11y/docs/screenshot.png deleted file mode 100644 index eb11bbed0f571f430ce7a9ba408d8c2ff33fdfa5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 179567 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Ξ|MvI%vo6K%&Hd{aW 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 HScm-&y{|f# From f2560a6f63e2937355517250a448c14261413557 Mon Sep 17 00:00:00 2001 From: Norbert de Langen <ndelangen@me.com> Date: Thu, 2 Jan 2025 10:23:10 +0100 Subject: [PATCH 08/34] move @types/node to devDeps consistently --- code/builders/builder-webpack5/package.json | 2 +- code/frameworks/angular/package.json | 2 +- .../experimental-nextjs-vite/package.json | 2 +- code/frameworks/html-webpack5/package.json | 4 +- code/frameworks/nextjs/package.json | 2 +- code/frameworks/preact-webpack5/package.json | 4 +- code/frameworks/react-webpack5/package.json | 4 +- code/frameworks/server-webpack5/package.json | 4 +- code/frameworks/vue3-webpack5/package.json | 4 +- .../web-components-webpack5/package.json | 4 +- code/lib/core-webpack/package.json | 2 +- code/presets/html-webpack/package.json | 2 +- code/presets/preact-webpack/package.json | 4 +- code/presets/react-webpack/package.json | 2 +- code/presets/server-webpack/package.json | 2 +- code/presets/vue3-webpack/package.json | 2 +- code/renderers/react/package.json | 2 +- code/yarn.lock | 376 +----------------- scripts/package.json | 4 +- 19 files changed, 44 insertions(+), 384 deletions(-) diff --git a/code/builders/builder-webpack5/package.json b/code/builders/builder-webpack5/package.json index 3fa79a85bcdd..31ece7b41f06 100644 --- a/code/builders/builder-webpack5/package.json +++ b/code/builders/builder-webpack5/package.json @@ -64,7 +64,6 @@ }, "dependencies": { "@storybook/core-webpack": "workspace:*", - "@types/node": "^22.0.0", "@types/semver": "^7.3.4", "browser-assert": "^1.2.1", "case-sensitive-paths-webpack-plugin": "^2.4.0", @@ -90,6 +89,7 @@ "webpack-virtual-modules": "^0.6.0" }, "devDependencies": { + "@types/node": "^22.0.0", "@types/pretty-hrtime": "^1.0.0", "@types/terser-webpack-plugin": "^5.2.0", "@types/webpack-hot-middleware": "^2.25.6", diff --git a/code/frameworks/angular/package.json b/code/frameworks/angular/package.json index 2c24b9c2fd5c..6440967566d3 100644 --- a/code/frameworks/angular/package.json +++ b/code/frameworks/angular/package.json @@ -44,7 +44,6 @@ "@storybook/manager-api": "workspace:*", "@storybook/preview-api": "workspace:*", "@storybook/theming": "workspace:*", - "@types/node": "^22.0.0", "@types/react": "^18.0.37", "@types/react-dom": "^18.0.11", "@types/semver": "^7.3.4", @@ -73,6 +72,7 @@ "@angular/platform-browser": "^17.3.0", "@angular/platform-browser-dynamic": "^17.3.0", "@types/cross-spawn": "^6.0.2", + "@types/node": "^22.0.0", "@types/tmp": "^0.2.3", "cross-spawn": "^7.0.3", "tmp": "^0.2.1", diff --git a/code/frameworks/experimental-nextjs-vite/package.json b/code/frameworks/experimental-nextjs-vite/package.json index 56e1028156b8..9d2a5011c71a 100644 --- a/code/frameworks/experimental-nextjs-vite/package.json +++ b/code/frameworks/experimental-nextjs-vite/package.json @@ -103,7 +103,7 @@ "vite-plugin-storybook-nextjs": "^1.1.0" }, "devDependencies": { - "@types/node": "^18.0.0", + "@types/node": "^22.0.0", "next": "^15.0.3", "typescript": "^5.3.2" }, diff --git a/code/frameworks/html-webpack5/package.json b/code/frameworks/html-webpack5/package.json index 01697940c9a6..7a67d3b1f2c9 100644 --- a/code/frameworks/html-webpack5/package.json +++ b/code/frameworks/html-webpack5/package.json @@ -50,10 +50,10 @@ "@storybook/builder-webpack5": "workspace:*", "@storybook/global": "^5.0.0", "@storybook/html": "workspace:*", - "@storybook/preset-html-webpack": "workspace:*", - "@types/node": "^22.0.0" + "@storybook/preset-html-webpack": "workspace:*" }, "devDependencies": { + "@types/node": "^22.0.0", "typescript": "^5.3.2" }, "peerDependencies": { diff --git a/code/frameworks/nextjs/package.json b/code/frameworks/nextjs/package.json index 60c96f86533e..6ff8ca763277 100644 --- a/code/frameworks/nextjs/package.json +++ b/code/frameworks/nextjs/package.json @@ -148,7 +148,6 @@ "@storybook/preset-react-webpack": "workspace:*", "@storybook/react": "workspace:*", "@storybook/test": "workspace:*", - "@types/node": "^22.0.0", "@types/semver": "^7.3.4", "babel-loader": "^9.1.3", "css-loader": "^6.7.3", @@ -175,6 +174,7 @@ "@types/babel__plugin-transform-runtime": "^7", "@types/babel__preset-env": "^7", "@types/loader-utils": "^2.0.5", + "@types/node": "^22.0.0", "@types/react-refresh": "^0", "next": "^15.0.3", "typescript": "^5.3.2", diff --git a/code/frameworks/preact-webpack5/package.json b/code/frameworks/preact-webpack5/package.json index 94004e0a1995..a4b1238d50c2 100644 --- a/code/frameworks/preact-webpack5/package.json +++ b/code/frameworks/preact-webpack5/package.json @@ -49,10 +49,10 @@ "dependencies": { "@storybook/builder-webpack5": "workspace:*", "@storybook/preact": "workspace:*", - "@storybook/preset-preact-webpack": "workspace:*", - "@types/node": "^22.0.0" + "@storybook/preset-preact-webpack": "workspace:*" }, "devDependencies": { + "@types/node": "^22.0.0", "preact": "^10.5.13", "typescript": "^5.3.2" }, diff --git a/code/frameworks/react-webpack5/package.json b/code/frameworks/react-webpack5/package.json index 348e86f1869d..3a5173eab887 100644 --- a/code/frameworks/react-webpack5/package.json +++ b/code/frameworks/react-webpack5/package.json @@ -49,7 +49,9 @@ "dependencies": { "@storybook/builder-webpack5": "workspace:*", "@storybook/preset-react-webpack": "workspace:*", - "@storybook/react": "workspace:*", + "@storybook/react": "workspace:*" + }, + "devDependencies": { "@types/node": "^22.0.0" }, "peerDependencies": { diff --git a/code/frameworks/server-webpack5/package.json b/code/frameworks/server-webpack5/package.json index 0afcd8816f1e..ca1c7ca224ce 100644 --- a/code/frameworks/server-webpack5/package.json +++ b/code/frameworks/server-webpack5/package.json @@ -49,10 +49,10 @@ "dependencies": { "@storybook/builder-webpack5": "workspace:*", "@storybook/preset-server-webpack": "workspace:*", - "@storybook/server": "workspace:*", - "@types/node": "^22.0.0" + "@storybook/server": "workspace:*" }, "devDependencies": { + "@types/node": "^22.0.0", "typescript": "^5.3.2" }, "peerDependencies": { diff --git a/code/frameworks/vue3-webpack5/package.json b/code/frameworks/vue3-webpack5/package.json index 0c338bb459c7..7790cd71220b 100644 --- a/code/frameworks/vue3-webpack5/package.json +++ b/code/frameworks/vue3-webpack5/package.json @@ -49,10 +49,10 @@ "dependencies": { "@storybook/builder-webpack5": "workspace:*", "@storybook/preset-vue3-webpack": "workspace:*", - "@storybook/vue3": "workspace:*", - "@types/node": "^22.0.0" + "@storybook/vue3": "workspace:*" }, "devDependencies": { + "@types/node": "^22.0.0", "@vue/compiler-sfc": "3.0.0", "typescript": "^5.3.2", "vue": "3.0.0" diff --git a/code/frameworks/web-components-webpack5/package.json b/code/frameworks/web-components-webpack5/package.json index a4e754fac9ca..8573e26fcdc9 100644 --- a/code/frameworks/web-components-webpack5/package.json +++ b/code/frameworks/web-components-webpack5/package.json @@ -51,10 +51,10 @@ }, "dependencies": { "@storybook/builder-webpack5": "workspace:*", - "@storybook/web-components": "workspace:*", - "@types/node": "^22.0.0" + "@storybook/web-components": "workspace:*" }, "devDependencies": { + "@types/node": "^22.0.0", "lit": "2.3.1", "typescript": "^5.3.2" }, diff --git a/code/lib/core-webpack/package.json b/code/lib/core-webpack/package.json index 59a734780e40..12c9479ee629 100644 --- a/code/lib/core-webpack/package.json +++ b/code/lib/core-webpack/package.json @@ -44,10 +44,10 @@ "prep": "jiti ../../../scripts/prepare/bundle.ts" }, "dependencies": { - "@types/node": "^22.0.0", "ts-dedent": "^2.0.0" }, "devDependencies": { + "@types/node": "^22.0.0", "slash": "^5.1.0", "typescript": "^5.3.2", "webpack": "5" diff --git a/code/presets/html-webpack/package.json b/code/presets/html-webpack/package.json index 618f5f5ae818..08d4b3b0b219 100644 --- a/code/presets/html-webpack/package.json +++ b/code/presets/html-webpack/package.json @@ -50,11 +50,11 @@ }, "dependencies": { "@storybook/core-webpack": "workspace:*", - "@types/node": "^22.0.0", "html-loader": "^3.1.0", "webpack": "5" }, "devDependencies": { + "@types/node": "^22.0.0", "typescript": "^5.3.2" }, "peerDependencies": { diff --git a/code/presets/preact-webpack/package.json b/code/presets/preact-webpack/package.json index f014c0de59c1..3c6f81849306 100644 --- a/code/presets/preact-webpack/package.json +++ b/code/presets/preact-webpack/package.json @@ -49,10 +49,10 @@ "prep": "jiti ../../../scripts/prepare/bundle.ts" }, "dependencies": { - "@storybook/core-webpack": "workspace:*", - "@types/node": "^22.0.0" + "@storybook/core-webpack": "workspace:*" }, "devDependencies": { + "@types/node": "^22.0.0", "preact": "^10.5.13", "typescript": "^5.3.2" }, diff --git a/code/presets/react-webpack/package.json b/code/presets/react-webpack/package.json index d69d3679d901..f4823db4e0f4 100644 --- a/code/presets/react-webpack/package.json +++ b/code/presets/react-webpack/package.json @@ -67,7 +67,6 @@ "@storybook/core-webpack": "workspace:*", "@storybook/react": "workspace:*", "@storybook/react-docgen-typescript-plugin": "1.0.6--canary.9.0c3f3b7.0", - "@types/node": "^22.0.0", "@types/semver": "^7.3.4", "find-up": "^5.0.0", "magic-string": "^0.30.5", @@ -78,6 +77,7 @@ "webpack": "5" }, "devDependencies": { + "@types/node": "^22.0.0", "typescript": "^5.3.2" }, "peerDependencies": { diff --git a/code/presets/server-webpack/package.json b/code/presets/server-webpack/package.json index 7103faba76bc..22039000df7a 100644 --- a/code/presets/server-webpack/package.json +++ b/code/presets/server-webpack/package.json @@ -57,12 +57,12 @@ "@storybook/core-webpack": "workspace:*", "@storybook/global": "^5.0.0", "@storybook/server": "workspace:*", - "@types/node": "^22.0.0", "safe-identifier": "^0.4.1", "ts-dedent": "^2.0.0", "yaml-loader": "^0.8.0" }, "devDependencies": { + "@types/node": "^22.0.0", "typescript": "^5.3.2", "yaml": "^2.3.1" }, diff --git a/code/presets/vue3-webpack/package.json b/code/presets/vue3-webpack/package.json index 90e3d499df39..60c5149e1574 100644 --- a/code/presets/vue3-webpack/package.json +++ b/code/presets/vue3-webpack/package.json @@ -60,7 +60,6 @@ }, "dependencies": { "@storybook/core-webpack": "workspace:*", - "@types/node": "^22.0.0", "ts-loader": "^9.2.8", "vue-docgen-api": "^4.75.1", "vue-docgen-loader": "^1.5.1", @@ -68,6 +67,7 @@ "webpack": "5" }, "devDependencies": { + "@types/node": "^22.0.0", "@vue/compiler-sfc": "^3.2.33", "typescript": "^5.3.2", "vue": "^3.2.33" diff --git a/code/renderers/react/package.json b/code/renderers/react/package.json index a9c31f243679..da17393e4e93 100644 --- a/code/renderers/react/package.json +++ b/code/renderers/react/package.json @@ -74,7 +74,6 @@ "@types/babel-plugin-react-docgen": "^4", "@types/escodegen": "^0.0.6", "@types/estree": "^0.0.51", - "@types/node": "^22.0.0", "@types/semver": "^7.3.4", "acorn": "^7.4.1", "acorn-jsx": "^5.3.1", @@ -93,6 +92,7 @@ }, "peerDependencies": { "@storybook/test": "workspace:*", + "@types/node": "^22.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": "workspace:^", diff --git a/code/yarn.lock b/code/yarn.lock index 13e798756fd5..3b8af3baaf3f 100644 --- a/code/yarn.lock +++ b/code/yarn.lock @@ -378,16 +378,6 @@ __metadata: languageName: node linkType: hard -"@babel/code-frame@npm:^7.24.7": - version: 7.24.7 - resolution: "@babel/code-frame@npm:7.24.7" - dependencies: - "@babel/highlight": "npm:^7.24.7" - picocolors: "npm:^1.0.0" - checksum: 10c0/ab0af539473a9f5aeaac7047e377cb4f4edd255a81d84a76058595f8540784cc3fbe8acf73f1e073981104562490aabfb23008cd66dc677a456a4ed5390fdde6 - languageName: node - linkType: hard - "@babel/compat-data@npm:^7.22.6, @babel/compat-data@npm:^7.23.5, @babel/compat-data@npm:^7.24.4, @babel/compat-data@npm:^7.25.9": version: 7.26.2 resolution: "@babel/compat-data@npm:7.26.2" @@ -395,13 +385,6 @@ __metadata: languageName: node linkType: hard -"@babel/compat-data@npm:^7.25.2": - version: 7.25.2 - resolution: "@babel/compat-data@npm:7.25.2" - checksum: 10c0/5bf1f14d6e5f0d37c19543e99209ff4a94bb97915e1ce01e5334a144aa08cd56b6e62ece8135dac77e126723d63d4d4b96fc603a12c43b88c28f4b5e070270c5 - languageName: node - linkType: hard - "@babel/core@npm:7.23.9": version: 7.23.9 resolution: "@babel/core@npm:7.23.9" @@ -448,30 +431,7 @@ __metadata: languageName: node linkType: hard -"@babel/core@npm:^7.12.0, @babel/core@npm:^7.12.3, @babel/core@npm:^7.13.16, @babel/core@npm:^7.18.9, @babel/core@npm:^7.23.0, @babel/core@npm:^7.23.2, @babel/core@npm:^7.23.9, @babel/core@npm:^7.24.4, @babel/core@npm:^7.3.4, @babel/core@npm:^7.7.5": - version: 7.25.2 - resolution: "@babel/core@npm:7.25.2" - dependencies: - "@ampproject/remapping": "npm:^2.2.0" - "@babel/code-frame": "npm:^7.24.7" - "@babel/generator": "npm:^7.25.0" - "@babel/helper-compilation-targets": "npm:^7.25.2" - "@babel/helper-module-transforms": "npm:^7.25.2" - "@babel/helpers": "npm:^7.25.0" - "@babel/parser": "npm:^7.25.0" - "@babel/template": "npm:^7.25.0" - "@babel/traverse": "npm:^7.25.2" - "@babel/types": "npm:^7.25.2" - convert-source-map: "npm:^2.0.0" - debug: "npm:^4.1.0" - gensync: "npm:^1.0.0-beta.2" - json5: "npm:^2.2.3" - semver: "npm:^6.3.1" - checksum: 10c0/a425fa40e73cb72b6464063a57c478bc2de9dbcc19c280f1b55a3d88b35d572e87e8594e7d7b4880331addb6faef641bbeb701b91b41b8806cd4deae5d74f401 - languageName: node - linkType: hard - -"@babel/core@npm:^7.25.2": +"@babel/core@npm:^7.12.0, @babel/core@npm:^7.12.3, @babel/core@npm:^7.13.16, @babel/core@npm:^7.18.9, @babel/core@npm:^7.23.0, @babel/core@npm:^7.23.2, @babel/core@npm:^7.23.9, @babel/core@npm:^7.24.4, @babel/core@npm:^7.25.2, @babel/core@npm:^7.3.4, @babel/core@npm:^7.7.5": version: 7.26.0 resolution: "@babel/core@npm:7.26.0" dependencies: @@ -530,18 +490,6 @@ __metadata: languageName: node linkType: hard -"@babel/generator@npm:^7.25.0": - version: 7.25.0 - resolution: "@babel/generator@npm:7.25.0" - dependencies: - "@babel/types": "npm:^7.25.0" - "@jridgewell/gen-mapping": "npm:^0.3.5" - "@jridgewell/trace-mapping": "npm:^0.3.25" - jsesc: "npm:^2.5.1" - checksum: 10c0/d0e2dfcdc8bdbb5dded34b705ceebf2e0bc1b06795a1530e64fb6a3ccf313c189db7f60c1616effae48114e1a25adc75855bc4496f3779a396b3377bae718ce7 - languageName: node - linkType: hard - "@babel/helper-annotate-as-pure@npm:7.22.5": version: 7.22.5 resolution: "@babel/helper-annotate-as-pure@npm:7.22.5" @@ -583,19 +531,6 @@ __metadata: languageName: node linkType: hard -"@babel/helper-compilation-targets@npm:^7.25.2": - version: 7.25.2 - resolution: "@babel/helper-compilation-targets@npm:7.25.2" - dependencies: - "@babel/compat-data": "npm:^7.25.2" - "@babel/helper-validator-option": "npm:^7.24.8" - browserslist: "npm:^4.23.1" - lru-cache: "npm:^5.1.1" - semver: "npm:^6.3.1" - checksum: 10c0/de10e986b5322c9f807350467dc845ec59df9e596a5926a3b5edbb4710d8e3b8009d4396690e70b88c3844fe8ec4042d61436dd4b92d1f5f75655cf43ab07e99 - languageName: node - linkType: hard - "@babel/helper-create-class-features-plugin@npm:^7.18.6, @babel/helper-create-class-features-plugin@npm:^7.21.0, @babel/helper-create-class-features-plugin@npm:^7.24.0, @babel/helper-create-class-features-plugin@npm:^7.24.7": version: 7.24.7 resolution: "@babel/helper-create-class-features-plugin@npm:7.24.7" @@ -696,17 +631,7 @@ __metadata: languageName: node linkType: hard -"@babel/helper-module-imports@npm:^7.16.7, @babel/helper-module-imports@npm:^7.22.15, @babel/helper-module-imports@npm:^7.24.3, @babel/helper-module-imports@npm:^7.24.7, @babel/helper-module-imports@npm:^7.8.3": - version: 7.24.7 - resolution: "@babel/helper-module-imports@npm:7.24.7" - dependencies: - "@babel/traverse": "npm:^7.24.7" - "@babel/types": "npm:^7.24.7" - checksum: 10c0/97c57db6c3eeaea31564286e328a9fb52b0313c5cfcc7eee4bc226aebcf0418ea5b6fe78673c0e4a774512ec6c86e309d0f326e99d2b37bfc16a25a032498af0 - languageName: node - linkType: hard - -"@babel/helper-module-imports@npm:^7.25.9": +"@babel/helper-module-imports@npm:^7.16.7, @babel/helper-module-imports@npm:^7.22.15, @babel/helper-module-imports@npm:^7.24.3, @babel/helper-module-imports@npm:^7.24.7, @babel/helper-module-imports@npm:^7.25.9, @babel/helper-module-imports@npm:^7.8.3": version: 7.25.9 resolution: "@babel/helper-module-imports@npm:7.25.9" dependencies: @@ -729,20 +654,6 @@ __metadata: languageName: node linkType: hard -"@babel/helper-module-transforms@npm:^7.25.2": - version: 7.25.2 - resolution: "@babel/helper-module-transforms@npm:7.25.2" - dependencies: - "@babel/helper-module-imports": "npm:^7.24.7" - "@babel/helper-simple-access": "npm:^7.24.7" - "@babel/helper-validator-identifier": "npm:^7.24.7" - "@babel/traverse": "npm:^7.25.2" - peerDependencies: - "@babel/core": ^7.0.0 - checksum: 10c0/adaa15970ace0aee5934b5a633789b5795b6229c6a9cf3e09a7e80aa33e478675eee807006a862aa9aa517935d81f88a6db8a9f5936e3a2a40ec75f8062bc329 - languageName: node - linkType: hard - "@babel/helper-optimise-call-expression@npm:^7.24.7": version: 7.24.7 resolution: "@babel/helper-optimise-call-expression@npm:7.24.7" @@ -752,14 +663,7 @@ __metadata: languageName: node linkType: hard -"@babel/helper-plugin-utils@npm:^7.0.0, @babel/helper-plugin-utils@npm:^7.10.4, @babel/helper-plugin-utils@npm:^7.12.13, @babel/helper-plugin-utils@npm:^7.14.5, @babel/helper-plugin-utils@npm:^7.18.6, @babel/helper-plugin-utils@npm:^7.20.2, @babel/helper-plugin-utils@npm:^7.22.5, @babel/helper-plugin-utils@npm:^7.24.0, @babel/helper-plugin-utils@npm:^7.24.7, @babel/helper-plugin-utils@npm:^7.8.0, @babel/helper-plugin-utils@npm:^7.8.3": - version: 7.24.7 - resolution: "@babel/helper-plugin-utils@npm:7.24.7" - checksum: 10c0/c3d38cd9b3520757bb4a279255cc3f956fc0ac1c193964bd0816ebd5c86e30710be8e35252227e0c9d9e0f4f56d9b5f916537f2bc588084b0988b4787a967d31 - languageName: node - linkType: hard - -"@babel/helper-plugin-utils@npm:^7.25.9": +"@babel/helper-plugin-utils@npm:^7.0.0, @babel/helper-plugin-utils@npm:^7.10.4, @babel/helper-plugin-utils@npm:^7.12.13, @babel/helper-plugin-utils@npm:^7.14.5, @babel/helper-plugin-utils@npm:^7.18.6, @babel/helper-plugin-utils@npm:^7.20.2, @babel/helper-plugin-utils@npm:^7.22.5, @babel/helper-plugin-utils@npm:^7.24.0, @babel/helper-plugin-utils@npm:^7.24.7, @babel/helper-plugin-utils@npm:^7.25.9, @babel/helper-plugin-utils@npm:^7.8.0, @babel/helper-plugin-utils@npm:^7.8.3": version: 7.25.9 resolution: "@babel/helper-plugin-utils@npm:7.25.9" checksum: 10c0/483066a1ba36ff16c0116cd24f93de05de746a603a777cd695ac7a1b034928a65a4ecb35f255761ca56626435d7abdb73219eba196f9aa83b6c3c3169325599d @@ -830,13 +734,6 @@ __metadata: languageName: node linkType: hard -"@babel/helper-string-parser@npm:^7.24.8": - version: 7.24.8 - resolution: "@babel/helper-string-parser@npm:7.24.8" - checksum: 10c0/6361f72076c17fabf305e252bf6d580106429014b3ab3c1f5c4eb3e6d465536ea6b670cc0e9a637a77a9ad40454d3e41361a2909e70e305116a23d68ce094c08 - languageName: node - linkType: hard - "@babel/helper-string-parser@npm:^7.25.9": version: 7.25.9 resolution: "@babel/helper-string-parser@npm:7.25.9" @@ -858,13 +755,6 @@ __metadata: languageName: node linkType: hard -"@babel/helper-validator-option@npm:^7.24.8": - version: 7.24.8 - resolution: "@babel/helper-validator-option@npm:7.24.8" - checksum: 10c0/73db93a34ae89201351288bee7623eed81a54000779462a986105b54ffe82069e764afd15171a428b82e7c7a9b5fec10b5d5603b216317a414062edf5c67a21f - languageName: node - linkType: hard - "@babel/helper-wrap-function@npm:^7.24.7": version: 7.24.7 resolution: "@babel/helper-wrap-function@npm:7.24.7" @@ -887,28 +777,6 @@ __metadata: languageName: node linkType: hard -"@babel/helpers@npm:^7.25.0": - version: 7.25.0 - resolution: "@babel/helpers@npm:7.25.0" - dependencies: - "@babel/template": "npm:^7.25.0" - "@babel/types": "npm:^7.25.0" - checksum: 10c0/b7fe007fc4194268abf70aa3810365085e290e6528dcb9fbbf7a765d43c74b6369ce0f99c5ccd2d44c413853099daa449c9a0123f0b212ac8d18643f2e8174b8 - languageName: node - linkType: hard - -"@babel/highlight@npm:^7.24.7": - version: 7.24.7 - resolution: "@babel/highlight@npm:7.24.7" - dependencies: - "@babel/helper-validator-identifier": "npm:^7.24.7" - chalk: "npm:^2.4.2" - js-tokens: "npm:^4.0.0" - picocolors: "npm:^1.0.0" - checksum: 10c0/674334c571d2bb9d1c89bdd87566383f59231e16bcdcf5bb7835babdf03c9ae585ca0887a7b25bdf78f303984af028df52831c7989fecebb5101cc132da9393a - languageName: node - linkType: hard - "@babel/parser@npm:^7.1.0, @babel/parser@npm:^7.11.5, @babel/parser@npm:^7.13.16, @babel/parser@npm:^7.14.7, @babel/parser@npm:^7.20.5, @babel/parser@npm:^7.20.7, @babel/parser@npm:^7.22.5, @babel/parser@npm:^7.23.0, @babel/parser@npm:^7.23.5, @babel/parser@npm:^7.23.6, @babel/parser@npm:^7.23.9, @babel/parser@npm:^7.24.0, @babel/parser@npm:^7.24.4, @babel/parser@npm:^7.24.7, @babel/parser@npm:^7.25.9, @babel/parser@npm:^7.26.0, @babel/parser@npm:^7.26.2, @babel/parser@npm:^7.4.5, @babel/parser@npm:^7.6.0, @babel/parser@npm:^7.9.6": version: 7.26.2 resolution: "@babel/parser@npm:7.26.2" @@ -920,17 +788,6 @@ __metadata: languageName: node linkType: hard -"@babel/parser@npm:^7.25.0, @babel/parser@npm:^7.25.3": - version: 7.25.3 - resolution: "@babel/parser@npm:7.25.3" - dependencies: - "@babel/types": "npm:^7.25.2" - bin: - parser: ./bin/babel-parser.js - checksum: 10c0/874b01349aedb805d6694f867a752fdc7469778fad76aca4548d2cc6ce96087c3ba5fb917a6f8d05d2d1a74aae309b5f50f1a4dba035f5a2c9fcfe6e106d2c4e - languageName: node - linkType: hard - "@babel/plugin-bugfix-firefox-class-in-computed-class-key@npm:^7.24.4": version: 7.24.4 resolution: "@babel/plugin-bugfix-firefox-class-in-computed-class-key@npm:7.24.4" @@ -2390,17 +2247,6 @@ __metadata: languageName: node linkType: hard -"@babel/template@npm:^7.25.0": - version: 7.25.0 - resolution: "@babel/template@npm:7.25.0" - dependencies: - "@babel/code-frame": "npm:^7.24.7" - "@babel/parser": "npm:^7.25.0" - "@babel/types": "npm:^7.25.0" - checksum: 10c0/4e31afd873215744c016e02b04f43b9fa23205d6d0766fb2e93eb4091c60c1b88897936adb895fb04e3c23de98dfdcbe31bc98daaa1a4e0133f78bb948e1209b - languageName: node - linkType: hard - "@babel/traverse@npm:7.23.2": version: 7.23.2 resolution: "@babel/traverse@npm:7.23.2" @@ -2434,21 +2280,6 @@ __metadata: languageName: node linkType: hard -"@babel/traverse@npm:^7.25.2": - version: 7.25.3 - resolution: "@babel/traverse@npm:7.25.3" - dependencies: - "@babel/code-frame": "npm:^7.24.7" - "@babel/generator": "npm:^7.25.0" - "@babel/parser": "npm:^7.25.3" - "@babel/template": "npm:^7.25.0" - "@babel/types": "npm:^7.25.2" - debug: "npm:^4.3.1" - globals: "npm:^11.1.0" - checksum: 10c0/4c8a1966fa90b53a783a4afd2fcdaa6ab1a912e6621dca9fcc6633e80ccb9491620e88caf73b537da4e16cefd537b548c87d7087868d5b0066414dea375c0e9b - languageName: node - linkType: hard - "@babel/types@npm:7.17.0": version: 7.17.0 resolution: "@babel/types@npm:7.17.0" @@ -2469,17 +2300,6 @@ __metadata: languageName: node linkType: hard -"@babel/types@npm:^7.25.0, @babel/types@npm:^7.25.2": - version: 7.25.2 - resolution: "@babel/types@npm:7.25.2" - dependencies: - "@babel/helper-string-parser": "npm:^7.24.8" - "@babel/helper-validator-identifier": "npm:^7.24.7" - to-fast-properties: "npm:^2.0.0" - checksum: 10c0/e489435856be239f8cc1120c90a197e4c2865385121908e5edb7223cfdff3768cba18f489adfe0c26955d9e7bbb1fb10625bc2517505908ceb0af848989bd864 - languageName: node - linkType: hard - "@base2/pretty-print-object@npm:1.0.1": version: 1.0.1 resolution: "@base2/pretty-print-object@npm:1.0.1" @@ -3039,20 +2859,13 @@ __metadata: languageName: node linkType: hard -"@eslint-community/regexpp@npm:^4.10.0": +"@eslint-community/regexpp@npm:^4.10.0, @eslint-community/regexpp@npm:^4.5.1, @eslint-community/regexpp@npm:^4.6.1": version: 4.12.1 resolution: "@eslint-community/regexpp@npm:4.12.1" checksum: 10c0/a03d98c246bcb9109aec2c08e4d10c8d010256538dcb3f56610191607214523d4fb1b00aa81df830b6dffb74c5fa0be03642513a289c567949d3e550ca11cdf6 languageName: node linkType: hard -"@eslint-community/regexpp@npm:^4.5.1, @eslint-community/regexpp@npm:^4.6.1": - version: 4.10.0 - resolution: "@eslint-community/regexpp@npm:4.10.0" - checksum: 10c0/c5f60ef1f1ea7649fa7af0e80a5a79f64b55a8a8fa5086de4727eb4c86c652aedee407a9c143b8995d2c0b2d75c1222bec9ba5d73dbfc1f314550554f0979ef4 - languageName: node - linkType: hard - "@eslint/eslintrc@npm:^1.0.5": version: 1.4.1 resolution: "@eslint/eslintrc@npm:1.4.1" @@ -4820,20 +4633,13 @@ __metadata: languageName: node linkType: hard -"@polka/url@npm:^1.0.0-next.21": +"@polka/url@npm:^1.0.0-next.21, @polka/url@npm:^1.0.0-next.24": version: 1.0.0-next.28 resolution: "@polka/url@npm:1.0.0-next.28" checksum: 10c0/acc5ea62597e4da2fb42dbee02749d07f102ae7d6d2c966bf7e423c79cd65d1621da305af567e6e7c232f3b565e242d1ec932cbb3dcc0db1508d02e9a2cafa2e languageName: node linkType: hard -"@polka/url@npm:^1.0.0-next.24": - version: 1.0.0-next.25 - resolution: "@polka/url@npm:1.0.0-next.25" - checksum: 10c0/ef61f0a0fe94bb6e1143fc5b9d5a12e6ca9dbd2c57843ebf81db432c21b9f1005c09e8a1ef8b6d5ddfa42146ca65b640feb2d353bd0d3546da46ba59e48a5349 - languageName: node - linkType: hard - "@popperjs/core@npm:^2.11.5, @popperjs/core@npm:^2.6.0": version: 2.11.8 resolution: "@popperjs/core@npm:2.11.8" @@ -6463,7 +6269,7 @@ __metadata: "@storybook/react": "workspace:*" "@storybook/react-vite": "workspace:*" "@storybook/test": "workspace:*" - "@types/node": "npm:^18.0.0" + "@types/node": "npm:^22.0.0" next: "npm:^15.0.3" sharp: "npm:^0.33.3" styled-jsx: "npm:5.1.6" @@ -6537,7 +6343,7 @@ __metadata: languageName: unknown linkType: soft -"@storybook/icons@npm:^1.2.12": +"@storybook/icons@npm:^1.2.12, @storybook/icons@npm:^1.2.5": version: 1.2.12 resolution: "@storybook/icons@npm:1.2.12" peerDependencies: @@ -6547,16 +6353,6 @@ __metadata: languageName: node linkType: hard -"@storybook/icons@npm:^1.2.5": - version: 1.2.10 - resolution: "@storybook/icons@npm:1.2.10" - peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 - react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 - checksum: 10c0/aadde2efd5c471b78096f29a6393db111ee95174cab94ade0d2859d476262f080aa8ffb414f82932afd81d5c57bed813193a04e92086962bde2224774dac9060 - languageName: node - linkType: hard - "@storybook/instrumenter@workspace:*, @storybook/instrumenter@workspace:lib/instrumenter": version: 0.0.0-use.local resolution: "@storybook/instrumenter@workspace:lib/instrumenter" @@ -6996,7 +6792,6 @@ __metadata: "@types/babel-plugin-react-docgen": "npm:^4" "@types/escodegen": "npm:^0.0.6" "@types/estree": "npm:^0.0.51" - "@types/node": "npm:^22.0.0" "@types/semver": "npm:^7.3.4" acorn: "npm:^7.4.1" acorn-jsx: "npm:^5.3.1" @@ -7014,6 +6809,7 @@ __metadata: type-fest: "npm:~2.19" peerDependencies: "@storybook/test": "workspace:*" + "@types/node": ^22.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: "workspace:^" @@ -7530,7 +7326,7 @@ __metadata: languageName: node linkType: hard -"@swc/helpers@npm:0.5.13": +"@swc/helpers@npm:0.5.13, @swc/helpers@npm:~0.5.0": version: 0.5.13 resolution: "@swc/helpers@npm:0.5.13" dependencies: @@ -7539,15 +7335,6 @@ __metadata: languageName: node linkType: hard -"@swc/helpers@npm:~0.5.0": - version: 0.5.6 - resolution: "@swc/helpers@npm:0.5.6" - dependencies: - tslib: "npm:^2.4.0" - checksum: 10c0/ae43e2130b0c47a8c5dc51148925604707ee7801fef90674f71d2266a98b272c8f16145931fc7d51daf6795c4f3a86ccecd472e94a7ea562e0db7c333447d9e6 - languageName: node - linkType: hard - "@tanstack/react-virtual@npm:^3.3.0": version: 3.3.0 resolution: "@tanstack/react-virtual@npm:3.3.0" @@ -8175,20 +7962,13 @@ __metadata: languageName: node linkType: hard -"@types/istanbul-lib-coverage@npm:*": +"@types/istanbul-lib-coverage@npm:*, @types/istanbul-lib-coverage@npm:^2.0.1": version: 2.0.6 resolution: "@types/istanbul-lib-coverage@npm:2.0.6" checksum: 10c0/3948088654f3eeb45363f1db158354fb013b362dba2a5c2c18c559484d5eb9f6fd85b23d66c0a7c2fcfab7308d0a585b14dadaca6cc8bf89ebfdc7f8f5102fb7 languageName: node linkType: hard -"@types/istanbul-lib-coverage@npm:^2.0.1": - version: 2.0.4 - resolution: "@types/istanbul-lib-coverage@npm:2.0.4" - checksum: 10c0/af5f6b64e788331ed3f7b2e2613cb6ca659c58b8500be94bbda8c995ad3da9216c006f1cfe6f66b321c39392b1bda18b16e63cef090a77d24a00b4bd5ba3b018 - languageName: node - linkType: hard - "@types/istanbul-lib-report@npm:^3.0.3": version: 3.0.3 resolution: "@types/istanbul-lib-report@npm:3.0.3" @@ -10725,14 +10505,7 @@ __metadata: languageName: node linkType: hard -"axe-core@npm:^4.2.0": - version: 4.8.2 - resolution: "axe-core@npm:4.8.2" - checksum: 10c0/ad9e1125ba226bbc73d442996d8b9b35fed9af8bcfa995831e29c3d6b8ddb0d16bc7d18c66c5a685211296ee99fe966ae4d59051ca6fbef2a7ee7408322b9dbe - languageName: node - linkType: hard - -"axe-core@npm:^4.4.2": +"axe-core@npm:^4.2.0, axe-core@npm:^4.4.2": version: 4.10.2 resolution: "axe-core@npm:4.10.2" checksum: 10c0/0e20169077de96946a547fce0df39d9aeebe0077f9d3eeff4896518b96fde857f80b98f0d4279274a7178791744dd5a54bb4f322de45b4f561ffa2586ff9a09d @@ -11592,20 +11365,6 @@ __metadata: languageName: node linkType: hard -"browserslist@npm:^4.23.1": - version: 4.23.3 - resolution: "browserslist@npm:4.23.3" - dependencies: - caniuse-lite: "npm:^1.0.30001646" - electron-to-chromium: "npm:^1.5.4" - node-releases: "npm:^2.0.18" - update-browserslist-db: "npm:^1.1.0" - bin: - browserslist: cli.js - checksum: 10c0/3063bfdf812815346447f4796c8f04601bf5d62003374305fd323c2a463e42776475bcc5309264e39bcf9a8605851e53560695991a623be988138b3ff8c66642 - languageName: node - linkType: hard - "buffer-crc32@npm:^0.2.5": version: 0.2.13 resolution: "buffer-crc32@npm:0.2.13" @@ -11866,13 +11625,6 @@ __metadata: languageName: node linkType: hard -"caniuse-lite@npm:^1.0.30001646": - version: 1.0.30001650 - resolution: "caniuse-lite@npm:1.0.30001650" - checksum: 10c0/81d271517f452321d4274d514dcbf4d57fc7ca6d2f82d4e273a850fc6d92d334d97bbec8359ce2237c7f2d128729037b82ca506c7213511dc8380b8ec24d9d45 - languageName: node - linkType: hard - "case-sensitive-paths-webpack-plugin@npm:^2.4.0": version: 2.4.0 resolution: "case-sensitive-paths-webpack-plugin@npm:2.4.0" @@ -11907,7 +11659,7 @@ __metadata: languageName: node linkType: hard -"chalk@npm:^2.0.0, chalk@npm:^2.3.0, chalk@npm:^2.4.2": +"chalk@npm:^2.0.0, chalk@npm:^2.3.0": version: 2.4.2 resolution: "chalk@npm:2.4.2" dependencies: @@ -13808,14 +13560,7 @@ __metadata: languageName: node linkType: hard -"dotenv@npm:^16.0.0": - version: 16.3.1 - resolution: "dotenv@npm:16.3.1" - checksum: 10c0/b95ff1bbe624ead85a3cd70dbd827e8e06d5f05f716f2d0cbc476532d54c7c9469c3bc4dd93ea519f6ad711cb522c00ac9a62b6eb340d5affae8008facc3fbd7 - languageName: node - linkType: hard - -"dotenv@npm:^16.4.5, dotenv@npm:~16.4.5": +"dotenv@npm:^16.0.0, dotenv@npm:^16.4.5, dotenv@npm:~16.4.5": version: 16.4.7 resolution: "dotenv@npm:16.4.7" checksum: 10c0/be9f597e36a8daf834452daa1f4cc30e5375a5968f98f46d89b16b983c567398a330580c88395069a77473943c06b877d1ca25b4afafcdd6d4adb549e8293462 @@ -13927,13 +13672,6 @@ __metadata: languageName: node linkType: hard -"electron-to-chromium@npm:^1.5.4": - version: 1.5.5 - resolution: "electron-to-chromium@npm:1.5.5" - checksum: 10c0/6e5e12f729a74a78d9a7386ea32039262cb8a2f4611ab346da1f162c270d0569194c72169042080a1017220835ed30ee2d77ca5ba13c1acaa5fa0d373fbc0ad5 - languageName: node - linkType: hard - "electron-to-chromium@npm:^1.5.41": version: 1.5.50 resolution: "electron-to-chromium@npm:1.5.50" @@ -14608,13 +14346,6 @@ __metadata: languageName: node linkType: hard -"escalade@npm:^3.1.2": - version: 3.1.2 - resolution: "escalade@npm:3.1.2" - checksum: 10c0/6b4adafecd0682f3aa1cd1106b8fff30e492c7015b178bc81b2d2f75106dabea6c6d6e8508fc491bd58e597c74abb0e8e2368f943ecb9393d4162e3c2f3cf287 - languageName: node - linkType: hard - "escape-html@npm:~1.0.3": version: 1.0.3 resolution: "escape-html@npm:1.0.3" @@ -19937,16 +19668,7 @@ __metadata: languageName: node linkType: hard -"magic-string@npm:^0.30.0, magic-string@npm:^0.30.11, magic-string@npm:^0.30.5": - version: 0.30.11 - resolution: "magic-string@npm:0.30.11" - dependencies: - "@jridgewell/sourcemap-codec": "npm:^1.5.0" - checksum: 10c0/b9eb370773d0bd90ca11a848753409d8e5309b1ad56d2a1aa49d6649da710a6d2fe7237ad1a643c5a5d3800de2b9946ed9690acdfc00e6cc1aeafff3ab1752c4 - languageName: node - linkType: hard - -"magic-string@npm:^0.30.12": +"magic-string@npm:^0.30.0, magic-string@npm:^0.30.11, magic-string@npm:^0.30.12, magic-string@npm:^0.30.5": version: 0.30.12 resolution: "magic-string@npm:0.30.12" dependencies: @@ -27323,7 +27045,7 @@ __metadata: languageName: node linkType: hard -"svelte@npm:^5.0.0, svelte@npm:^5.0.5": +"svelte@npm:^5.0.0, svelte@npm:^5.0.0-next.268, svelte@npm:^5.0.5": version: 5.0.5 resolution: "svelte@npm:5.0.5" dependencies: @@ -27344,27 +27066,6 @@ __metadata: languageName: node linkType: hard -"svelte@npm:^5.0.0-next.268": - version: 5.0.0-next.268 - resolution: "svelte@npm:5.0.0-next.268" - dependencies: - "@ampproject/remapping": "npm:^2.3.0" - "@jridgewell/sourcemap-codec": "npm:^1.5.0" - "@types/estree": "npm:^1.0.5" - acorn: "npm:^8.12.1" - acorn-typescript: "npm:^1.4.13" - aria-query: "npm:^5.3.1" - axobject-query: "npm:^4.1.0" - esm-env: "npm:^1.0.0" - esrap: "npm:^1.2.2" - is-reference: "npm:^3.0.2" - locate-character: "npm:^3.0.0" - magic-string: "npm:^0.30.11" - zimmerframe: "npm:^1.1.2" - checksum: 10c0/74a954cffe2a70259a1d1d2a834e9615d3f393429ac8cc1e15bfdc66b8bbe5dc449a8289370631b29023bca51aa451d1906f570b3761de4c235ea731913ee1b2 - languageName: node - linkType: hard - "sveltedoc-parser@npm:^4.2.1": version: 4.3.1 resolution: "sveltedoc-parser@npm:4.3.1" @@ -28176,17 +27877,7 @@ __metadata: languageName: node linkType: hard -"typescript@npm:^5.3.2": - version: 5.4.5 - resolution: "typescript@npm:5.4.5" - bin: - tsc: bin/tsc - tsserver: bin/tsserver - checksum: 10c0/2954022ada340fd3d6a9e2b8e534f65d57c92d5f3989a263754a78aba549f7e6529acc1921913560a4b816c46dce7df4a4d29f9f11a3dc0d4213bb76d043251e - languageName: node - linkType: hard - -"typescript@npm:~5.6.2": +"typescript@npm:^5.3.2, typescript@npm:~5.6.2": version: 5.6.3 resolution: "typescript@npm:5.6.3" bin: @@ -28216,17 +27907,7 @@ __metadata: languageName: node linkType: hard -"typescript@patch:typescript@npm%3A^5.3.2#optional!builtin<compat/typescript>": - version: 5.4.5 - resolution: "typescript@patch:typescript@npm%3A5.4.5#optional!builtin<compat/typescript>::version=5.4.5&hash=5adc0c" - bin: - tsc: bin/tsc - tsserver: bin/tsserver - checksum: 10c0/db2ad2a16ca829f50427eeb1da155e7a45e598eec7b086d8b4e8ba44e5a235f758e606d681c66992230d3fc3b8995865e5fd0b22a2c95486d0b3200f83072ec9 - languageName: node - linkType: hard - -"typescript@patch:typescript@npm%3A~5.6.2#optional!builtin<compat/typescript>": +"typescript@patch:typescript@npm%3A^5.3.2#optional!builtin<compat/typescript>, typescript@patch:typescript@npm%3A~5.6.2#optional!builtin<compat/typescript>": version: 5.6.3 resolution: "typescript@patch:typescript@npm%3A5.6.3#optional!builtin<compat/typescript>::version=5.6.3&hash=b45daf" bin: @@ -28712,20 +28393,6 @@ __metadata: languageName: node linkType: hard -"update-browserslist-db@npm:^1.1.0": - version: 1.1.0 - resolution: "update-browserslist-db@npm:1.1.0" - dependencies: - escalade: "npm:^3.1.2" - picocolors: "npm:^1.0.1" - peerDependencies: - browserslist: ">= 4.21.0" - bin: - update-browserslist-db: cli.js - checksum: 10c0/a7452de47785842736fb71547651c5bbe5b4dc1e3722ccf48a704b7b34e4dcf633991eaa8e4a6a517ffb738b3252eede3773bef673ef9021baa26b056d63a5b9 - languageName: node - linkType: hard - "update-browserslist-db@npm:^1.1.1": version: 1.1.1 resolution: "update-browserslist-db@npm:1.1.1" @@ -30213,14 +29880,7 @@ __metadata: languageName: node linkType: hard -"yaml@npm:^2.0.0, yaml@npm:^2.3.1": - version: 2.3.4 - resolution: "yaml@npm:2.3.4" - checksum: 10c0/cf03b68f8fef5e8516b0f0b54edaf2459f1648317fc6210391cf606d247e678b449382f4bd01f77392538429e306c7cba8ff46ff6b37cac4de9a76aff33bd9e1 - languageName: node - linkType: hard - -"yaml@npm:^2.6.0": +"yaml@npm:^2.0.0, yaml@npm:^2.3.1, yaml@npm:^2.6.0": version: 2.6.1 resolution: "yaml@npm:2.6.1" bin: diff --git a/scripts/package.json b/scripts/package.json index b02d6abc9bba..5c2270e10e6a 100644 --- a/scripts/package.json +++ b/scripts/package.json @@ -133,6 +133,7 @@ "glob": "^10.4.5", "http-server": "^14.1.1", "husky": "^4.3.7", + "jiti": "^1.21.6", "json5": "^2.2.3", "junit-xml": "^1.2.0", "knip": "^5.30.1", @@ -188,9 +189,6 @@ "yaml": "^2.4.5", "zod": "^3.23.8" }, - "devDependencies": { - "jiti": "^1.21.6" - }, "optionalDependencies": { "@verdaccio/types": "^10.8.0", "verdaccio": "^5.31.1", From e9a7adba21e19f286c35033830a50fe5db7acdfa Mon Sep 17 00:00:00 2001 From: Norbert de Langen <ndelangen@me.com> Date: Thu, 2 Jan 2025 11:26:36 +0100 Subject: [PATCH 09/34] fix incorrect move of dep to peerDep --- code/renderers/react/package.json | 2 +- code/yarn.lock | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/code/renderers/react/package.json b/code/renderers/react/package.json index 34ec0fe3b08a..e863f283dc37 100644 --- a/code/renderers/react/package.json +++ b/code/renderers/react/package.json @@ -74,6 +74,7 @@ "@types/babel-plugin-react-docgen": "^4", "@types/escodegen": "^0.0.6", "@types/estree": "^0.0.51", + "@types/node": "^22.0.0", "@types/semver": "^7.3.4", "acorn": "^7.4.1", "acorn-jsx": "^5.3.1", @@ -92,7 +93,6 @@ }, "peerDependencies": { "@storybook/test": "workspace:*", - "@types/node": "^22.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": "workspace:^", diff --git a/code/yarn.lock b/code/yarn.lock index 3b8af3baaf3f..7bfe0ba8b5e5 100644 --- a/code/yarn.lock +++ b/code/yarn.lock @@ -6792,6 +6792,7 @@ __metadata: "@types/babel-plugin-react-docgen": "npm:^4" "@types/escodegen": "npm:^0.0.6" "@types/estree": "npm:^0.0.51" + "@types/node": "npm:^22.0.0" "@types/semver": "npm:^7.3.4" acorn: "npm:^7.4.1" acorn-jsx: "npm:^5.3.1" @@ -6809,7 +6810,6 @@ __metadata: type-fest: "npm:~2.19" peerDependencies: "@storybook/test": "workspace:*" - "@types/node": ^22.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: "workspace:^" From 0556bd244459896470d1e7782242ff105feb9a75 Mon Sep 17 00:00:00 2001 From: Kyle Gach <kyle.gach@gmail.com> Date: Thu, 2 Jan 2025 10:15:48 -0700 Subject: [PATCH 10/34] Fix mistakes in #30103 --- docs/_snippets/webpack-final-to-vite-final.md | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/docs/_snippets/webpack-final-to-vite-final.md b/docs/_snippets/webpack-final-to-vite-final.md index df83bc4fa7c5..93b63cadd977 100644 --- a/docs/_snippets/webpack-final-to-vite-final.md +++ b/docs/_snippets/webpack-final-to-vite-final.md @@ -4,13 +4,13 @@ export default { framework: '@storybook/your-framework', stories: ['../src/**/*.mdx', '../stories/**/*.stories.@(js|jsx|mjs|ts|tsx)'], async webpackFinal(config) { - storybookBaseConfig.module?.rules?.push({ + config.module?.rules?.push({ test: /\.(graphql|gql)$/, include: [path.resolve('./lib/emails')], exclude: /node_modules/, loader: 'graphql-tag/loader', }); - storybookBaseConfig.module?.rules?.push({ + config.module?.rules?.push({ test: /\.(graphql|gql)$/, include: [path.resolve('./lib/schema')], exclude: /node_modules/, @@ -23,6 +23,8 @@ export default { ``` ```js filename=".storybook/main.js" renderer="common" language="js" tabTitle="With Vite" +import graphql from 'vite-plugin-graphql-loader'; + export default { // Replace your-framework with the framework you are using (e.g., react-vite, vue3-vite) framework: '@storybook/your-framework', @@ -44,13 +46,13 @@ const config: StorybookConfig = { framework: '@storybook/your-framework', stories: ['../src/**/*.mdx', '../stories/**/*.stories.@(js|jsx|mjs|ts|tsx)'], async webpackFinal(config) { - storybookBaseConfig.module?.rules?.push({ + config.module?.rules?.push({ test: /\.(graphql|gql)$/, include: [path.resolve('./lib/emails')], exclude: /node_modules/, loader: 'graphql-tag/loader', }); - storybookBaseConfig.module?.rules?.push({ + config.module?.rules?.push({ test: /\.(graphql|gql)$/, include: [path.resolve('./lib/schema')], exclude: /node_modules/, @@ -67,6 +69,7 @@ export default config; ```ts filename=".storybook/main.ts" renderer="common" language="ts" tabTitle="With Vite" // Replace your-framework with the framework you are using (e.g., react-vite, vue3-vite) import type { StorybookConfig } from '@storybook/your-framework'; +import graphql from 'vite-plugin-graphql-loader'; const config: StorybookConfig = { framework: '@storybook/your-framework', From acb6a30a1f91d5ac6ef1c9a5412864b2b768583c Mon Sep 17 00:00:00 2001 From: Norbert de Langen <ndelangen@me.com> Date: Fri, 3 Jan 2025 09:48:00 +0100 Subject: [PATCH 11/34] add ts-ignore --- code/addons/test/src/components/TestProviderRender.tsx | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/code/addons/test/src/components/TestProviderRender.tsx b/code/addons/test/src/components/TestProviderRender.tsx index ab8e61fadf0d..a43168fef11e 100644 --- a/code/addons/test/src/components/TestProviderRender.tsx +++ b/code/addons/test/src/components/TestProviderRender.tsx @@ -355,7 +355,8 @@ export const TestProviderRender: FC< icon={ state.crashed ? ( <TestStatusIcon status="critical" aria-label="status: crashed" /> - ) : status === 'unknown' ? ( + ) : // @ts-expect-error: TODO: Fix types + status === 'unknown' ? ( <TestStatusIcon status="unknown" aria-label="status: unknown" /> ) : ( <TestStatusIcon status={statusMap[status]} aria-label={`status: ${status}`} /> From 2183c2d0c1ab6712dff1ebeeb028768c4af165d5 Mon Sep 17 00:00:00 2001 From: Norbert de Langen <ndelangen@me.com> Date: Fri, 3 Jan 2025 10:23:21 +0100 Subject: [PATCH 12/34] bump `vue-tsc` to v2, see https://github.com/vuejs/language-tools/issues/4484 --- code/yarn.lock | 201 ++++++++++++++++++++++++------------------------- 1 file changed, 100 insertions(+), 101 deletions(-) diff --git a/code/yarn.lock b/code/yarn.lock index 7bfe0ba8b5e5..a36028c2bb19 100644 --- a/code/yarn.lock +++ b/code/yarn.lock @@ -777,14 +777,14 @@ __metadata: languageName: node linkType: hard -"@babel/parser@npm:^7.1.0, @babel/parser@npm:^7.11.5, @babel/parser@npm:^7.13.16, @babel/parser@npm:^7.14.7, @babel/parser@npm:^7.20.5, @babel/parser@npm:^7.20.7, @babel/parser@npm:^7.22.5, @babel/parser@npm:^7.23.0, @babel/parser@npm:^7.23.5, @babel/parser@npm:^7.23.6, @babel/parser@npm:^7.23.9, @babel/parser@npm:^7.24.0, @babel/parser@npm:^7.24.4, @babel/parser@npm:^7.24.7, @babel/parser@npm:^7.25.9, @babel/parser@npm:^7.26.0, @babel/parser@npm:^7.26.2, @babel/parser@npm:^7.4.5, @babel/parser@npm:^7.6.0, @babel/parser@npm:^7.9.6": - version: 7.26.2 - resolution: "@babel/parser@npm:7.26.2" +"@babel/parser@npm:^7.1.0, @babel/parser@npm:^7.11.5, @babel/parser@npm:^7.13.16, @babel/parser@npm:^7.14.7, @babel/parser@npm:^7.20.5, @babel/parser@npm:^7.20.7, @babel/parser@npm:^7.22.5, @babel/parser@npm:^7.23.0, @babel/parser@npm:^7.23.5, @babel/parser@npm:^7.23.6, @babel/parser@npm:^7.23.9, @babel/parser@npm:^7.24.0, @babel/parser@npm:^7.24.4, @babel/parser@npm:^7.24.7, @babel/parser@npm:^7.25.3, @babel/parser@npm:^7.25.9, @babel/parser@npm:^7.26.0, @babel/parser@npm:^7.26.2, @babel/parser@npm:^7.4.5, @babel/parser@npm:^7.6.0, @babel/parser@npm:^7.9.6": + version: 7.26.3 + resolution: "@babel/parser@npm:7.26.3" dependencies: - "@babel/types": "npm:^7.26.0" + "@babel/types": "npm:^7.26.3" bin: parser: ./bin/babel-parser.js - checksum: 10c0/751a743087b3a9172a7599f1421830d44c38f065ef781588d2bfb1c98f9b461719a226feb13c868d7a284783eee120c88ea522593118f2668f46ebfb1105c4d7 + checksum: 10c0/48f736374e61cfd10ddbf7b80678514ae1f16d0e88bc793d2b505d73d9b987ea786fc8c2f7ee8f8b8c467df062030eb07fd0eb2168f0f541ca1f542775852cad languageName: node linkType: hard @@ -2290,13 +2290,13 @@ __metadata: languageName: node linkType: hard -"@babel/types@npm:^7.0.0, @babel/types@npm:^7.11.5, @babel/types@npm:^7.17.0, @babel/types@npm:^7.18.9, @babel/types@npm:^7.2.0, @babel/types@npm:^7.20.7, @babel/types@npm:^7.22.5, @babel/types@npm:^7.23.0, @babel/types@npm:^7.23.4, @babel/types@npm:^7.23.6, @babel/types@npm:^7.23.9, @babel/types@npm:^7.24.0, @babel/types@npm:^7.24.7, @babel/types@npm:^7.25.9, @babel/types@npm:^7.26.0, @babel/types@npm:^7.4.4, @babel/types@npm:^7.6.1, @babel/types@npm:^7.7.2, @babel/types@npm:^7.9.6": - version: 7.26.0 - resolution: "@babel/types@npm:7.26.0" +"@babel/types@npm:^7.0.0, @babel/types@npm:^7.11.5, @babel/types@npm:^7.17.0, @babel/types@npm:^7.18.9, @babel/types@npm:^7.2.0, @babel/types@npm:^7.20.7, @babel/types@npm:^7.22.5, @babel/types@npm:^7.23.0, @babel/types@npm:^7.23.4, @babel/types@npm:^7.23.6, @babel/types@npm:^7.23.9, @babel/types@npm:^7.24.0, @babel/types@npm:^7.24.7, @babel/types@npm:^7.25.9, @babel/types@npm:^7.26.0, @babel/types@npm:^7.26.3, @babel/types@npm:^7.4.4, @babel/types@npm:^7.6.1, @babel/types@npm:^7.7.2, @babel/types@npm:^7.9.6": + version: 7.26.3 + resolution: "@babel/types@npm:7.26.3" dependencies: "@babel/helper-string-parser": "npm:^7.25.9" "@babel/helper-validator-identifier": "npm:^7.25.9" - checksum: 10c0/b694f41ad1597127e16024d766c33a641508aad037abd08d0d1f73af753e1119fa03b4a107d04b5f92cc19c095a594660547ae9bead1db2299212d644b0a5cb8 + checksum: 10c0/966c5242c5e55c8704bf7a7418e7be2703a0afa4d19a8480999d5a4ef13d095dd60686615fe5983cb7593b4b06ba3a7de8d6ca501c1d78bdd233a10d90be787b languageName: node linkType: hard @@ -9077,15 +9077,6 @@ __metadata: languageName: node linkType: hard -"@volar/language-core@npm:1.10.1, @volar/language-core@npm:~1.10.0": - version: 1.10.1 - resolution: "@volar/language-core@npm:1.10.1" - dependencies: - "@volar/source-map": "npm:1.10.1" - checksum: 10c0/cc4e6b07801cc48b68d9bfb4899703afc0b1d0d0a765d952df98ae63d3109555dd2d882aab8970d599521300d50aa109c82f869a590ddd8f94106b3daf0503f8 - languageName: node - linkType: hard - "@volar/language-core@npm:2.2.2, @volar/language-core@npm:~2.2.2": version: 2.2.2 resolution: "@volar/language-core@npm:2.2.2" @@ -9095,12 +9086,12 @@ __metadata: languageName: node linkType: hard -"@volar/source-map@npm:1.10.1, @volar/source-map@npm:~1.10.0": - version: 1.10.1 - resolution: "@volar/source-map@npm:1.10.1" +"@volar/language-core@npm:2.4.11, @volar/language-core@npm:~2.4.11": + version: 2.4.11 + resolution: "@volar/language-core@npm:2.4.11" dependencies: - muggle-string: "npm:^0.3.1" - checksum: 10c0/9bfc96528d802959d19d07148238cf1b7f7ba7bf05a8cf78339dd1edfb0e755d88005057673c7a807aea74b234a63067fa433a81841b9b9bc1d6e741674f6e40 + "@volar/source-map": "npm:2.4.11" + checksum: 10c0/ccc5de0c28b4186dc99ff9856b2ac2318ee1818480af3ca406f3c09d42b19b6df8698b525f6cf0fed368332fc76659cd4433fb38e6a55a85c7cefc97d665ccf8 languageName: node linkType: hard @@ -9113,12 +9104,10 @@ __metadata: languageName: node linkType: hard -"@volar/typescript@npm:~1.10.0": - version: 1.10.1 - resolution: "@volar/typescript@npm:1.10.1" - dependencies: - "@volar/language-core": "npm:1.10.1" - checksum: 10c0/daad1018ac7f9d5b45416ca8f1cabec1448c020669bcc3ad9873c277ed467b1e8a2c5849f272888cfaca5e93683f1fd67cc5532fcd1e7a5f0c3a74ad2d595ffe +"@volar/source-map@npm:2.4.11": + version: 2.4.11 + resolution: "@volar/source-map@npm:2.4.11" + checksum: 10c0/8e5badf9f67d669679c48fe32258e082d823523ca2807438d38c0aac6c52b84d43580c8921b559fc5a27c0c7457ffcba569e60de7a597851690dec04ed77c5fc languageName: node linkType: hard @@ -9132,6 +9121,17 @@ __metadata: languageName: node linkType: hard +"@volar/typescript@npm:~2.4.11": + version: 2.4.11 + resolution: "@volar/typescript@npm:2.4.11" + dependencies: + "@volar/language-core": "npm:2.4.11" + path-browserify: "npm:^1.0.1" + vscode-uri: "npm:^3.0.8" + checksum: 10c0/bca9bda9c8c95fd06672b834d1804810fdad496e15ee8e2099f76de74fa529d835f342afb6b976e6e3bc4599a3bbbfd007a842694fe1300cf6286783b827f917 + languageName: node + linkType: hard + "@vue/compiler-core@npm:3.0.0": version: 3.0.0 resolution: "@vue/compiler-core@npm:3.0.0" @@ -9157,19 +9157,6 @@ __metadata: languageName: node linkType: hard -"@vue/compiler-core@npm:3.4.27, @vue/compiler-core@npm:^3.0.0": - version: 3.4.27 - resolution: "@vue/compiler-core@npm:3.4.27" - dependencies: - "@babel/parser": "npm:^7.24.4" - "@vue/shared": "npm:3.4.27" - entities: "npm:^4.5.0" - estree-walker: "npm:^2.0.2" - source-map-js: "npm:^1.2.0" - checksum: 10c0/fbc9a4a6c467fa47609df3337c1b2012a55e3b07adbffc45a31435237ec1169d0a4ece22f3538607364427b779ce04154b86a0e8dd40d3bd4aa03358d4db136d - languageName: node - linkType: hard - "@vue/compiler-core@npm:3.4.5": version: 3.4.5 resolution: "@vue/compiler-core@npm:3.4.5" @@ -9183,6 +9170,19 @@ __metadata: languageName: node linkType: hard +"@vue/compiler-core@npm:3.5.13, @vue/compiler-core@npm:^3.0.0": + version: 3.5.13 + resolution: "@vue/compiler-core@npm:3.5.13" + dependencies: + "@babel/parser": "npm:^7.25.3" + "@vue/shared": "npm:3.5.13" + entities: "npm:^4.5.0" + estree-walker: "npm:^2.0.2" + source-map-js: "npm:^1.2.0" + checksum: 10c0/b89f3e3ca92c3177ae449ada1480df13d99b5b3b2cdcf3202fd37dc30f294a1db1f473209f8bae9233e2d338632219d39b2bfa6941d158cea55255e4b0b30f90 + languageName: node + linkType: hard + "@vue/compiler-dom@npm:3.0.0": version: 3.0.0 resolution: "@vue/compiler-dom@npm:3.0.0" @@ -9213,13 +9213,13 @@ __metadata: languageName: node linkType: hard -"@vue/compiler-dom@npm:^3.2.0, @vue/compiler-dom@npm:^3.3.0, @vue/compiler-dom@npm:^3.4.0": - version: 3.4.27 - resolution: "@vue/compiler-dom@npm:3.4.27" +"@vue/compiler-dom@npm:^3.2.0, @vue/compiler-dom@npm:^3.4.0, @vue/compiler-dom@npm:^3.5.0": + version: 3.5.13 + resolution: "@vue/compiler-dom@npm:3.5.13" dependencies: - "@vue/compiler-core": "npm:3.4.27" - "@vue/shared": "npm:3.4.27" - checksum: 10c0/ceb8aef314b6b7df1ab6cd3c7c1290e5b60363a6092bbffc3ee6aca42f6f5247a070b0dcbe71530751e840d01beec00a6268e3663abcf4a6ac297a32bfb90e49 + "@vue/compiler-core": "npm:3.5.13" + "@vue/shared": "npm:3.5.13" + checksum: 10c0/8f424a71883c9ef4abdd125d2be8d12dd8cf94ba56089245c88734b1f87c65e10597816070ba2ea0a297a2f66dc579f39275a9a53ef5664c143a12409612cd72 languageName: node linkType: hard @@ -9314,24 +9314,13 @@ __metadata: languageName: node linkType: hard -"@vue/language-core@npm:1.8.15": - version: 1.8.15 - resolution: "@vue/language-core@npm:1.8.15" +"@vue/compiler-vue2@npm:^2.7.16": + version: 2.7.16 + resolution: "@vue/compiler-vue2@npm:2.7.16" dependencies: - "@volar/language-core": "npm:~1.10.0" - "@volar/source-map": "npm:~1.10.0" - "@vue/compiler-dom": "npm:^3.3.0" - "@vue/reactivity": "npm:^3.3.0" - "@vue/shared": "npm:^3.3.0" - minimatch: "npm:^9.0.0" - muggle-string: "npm:^0.3.1" - vue-template-compiler: "npm:^2.7.14" - peerDependencies: - typescript: "*" - peerDependenciesMeta: - typescript: - optional: true - checksum: 10c0/05ec3d660bd26cf05d17e722d1117324e1309360f0be4998c82ccac22689e31a332660086ece6b3f4f43660dfb94d1905eea0aa329b88b2f5afea944b01153e0 + de-indent: "npm:^1.0.2" + he: "npm:^1.2.0" + checksum: 10c0/c76c3fad770b9a7da40b314116cc9da173da20e5fd68785c8ed8dd8a87d02f239545fa296e16552e040ec86b47bfb18283b39447b250c2e76e479bd6ae475bb3 languageName: node linkType: hard @@ -9355,6 +9344,27 @@ __metadata: languageName: node linkType: hard +"@vue/language-core@npm:2.2.0": + version: 2.2.0 + resolution: "@vue/language-core@npm:2.2.0" + dependencies: + "@volar/language-core": "npm:~2.4.11" + "@vue/compiler-dom": "npm:^3.5.0" + "@vue/compiler-vue2": "npm:^2.7.16" + "@vue/shared": "npm:^3.5.0" + alien-signals: "npm:^0.4.9" + minimatch: "npm:^9.0.3" + muggle-string: "npm:^0.4.1" + path-browserify: "npm:^1.0.1" + peerDependencies: + typescript: "*" + peerDependenciesMeta: + typescript: + optional: true + checksum: 10c0/1c44cc4067266bbc825af358a867aed455963a08c160cd9df9a47571fd917a87d9de9bdea6149877e0c8309a6cf39f263e7cf2fbadeceba47a5a158f392151b2 + languageName: node + linkType: hard + "@vue/reactivity-transform@npm:3.3.11": version: 3.3.11 resolution: "@vue/reactivity-transform@npm:3.3.11" @@ -9377,7 +9387,7 @@ __metadata: languageName: node linkType: hard -"@vue/reactivity@npm:3.3.11, @vue/reactivity@npm:^3.3.0": +"@vue/reactivity@npm:3.3.11": version: 3.3.11 resolution: "@vue/reactivity@npm:3.3.11" dependencies: @@ -9454,13 +9464,6 @@ __metadata: languageName: node linkType: hard -"@vue/shared@npm:3.4.27, @vue/shared@npm:^3.3.0, @vue/shared@npm:^3.4.0": - version: 3.4.27 - resolution: "@vue/shared@npm:3.4.27" - checksum: 10c0/4a21918858270bcc654bb94b3429d9acbe95af097ea3063e192b36bd502dc896ca47778fa74a863b01f677ec271b189eb90f8b372943c10e52725a6bdc7f6cd5 - languageName: node - linkType: hard - "@vue/shared@npm:3.4.5": version: 3.4.5 resolution: "@vue/shared@npm:3.4.5" @@ -9468,6 +9471,13 @@ __metadata: languageName: node linkType: hard +"@vue/shared@npm:3.5.13, @vue/shared@npm:^3.4.0, @vue/shared@npm:^3.5.0": + version: 3.5.13 + resolution: "@vue/shared@npm:3.5.13" + checksum: 10c0/2c940ef907116f1c2583ca1d7733984e5705983ab07054c4e72f1d95eb0f7bdf4d01efbdaee1776c2008f79595963f44e98fced057f5957d86d57b70028f5025 + languageName: node + linkType: hard + "@vue/test-utils@npm:^2.4.1": version: 2.4.1 resolution: "@vue/test-utils@npm:2.4.1" @@ -9484,16 +9494,6 @@ __metadata: languageName: node linkType: hard -"@vue/typescript@npm:1.8.15": - version: 1.8.15 - resolution: "@vue/typescript@npm:1.8.15" - dependencies: - "@volar/typescript": "npm:~1.10.0" - "@vue/language-core": "npm:1.8.15" - checksum: 10c0/c68808d29da93e616cd30bd4dc84aad0bb3d245d45537adc74244cc0fe93cb797e4bbdbdf2a4841b6bce088e6ef1bc70fa279fd2e1aabb794c42d908d8e46087 - languageName: node - linkType: hard - "@webassemblyjs/ast@npm:1.11.6, @webassemblyjs/ast@npm:^1.11.5": version: 1.11.6 resolution: "@webassemblyjs/ast@npm:1.11.6" @@ -9922,6 +9922,13 @@ __metadata: languageName: node linkType: hard +"alien-signals@npm:^0.4.9": + version: 0.4.12 + resolution: "alien-signals@npm:0.4.12" + checksum: 10c0/858c07fc66d4d6bb58062d7fb4d64a327b86592bae37ed5fd90ea28314a04109cca005b3cc63abe8bfd035f3d16e05d0e61611955a50f2f0c667c11cf204381a + languageName: node + linkType: hard + "amd-name-resolver@npm:^1.3.1": version: 1.3.1 resolution: "amd-name-resolver@npm:1.3.1" @@ -21347,14 +21354,7 @@ __metadata: languageName: node linkType: hard -"muggle-string@npm:^0.3.1": - version: 0.3.1 - resolution: "muggle-string@npm:0.3.1" - checksum: 10c0/489b0575fa76e30914393915a36638590052409fca2206a6bef0fb0ad7b181c1cbf99761191bfd16fe402c6f5a3164897965422fa32ef20ada1b44024ba46ab6 - languageName: node - linkType: hard - -"muggle-string@npm:^0.4.0": +"muggle-string@npm:^0.4.0, muggle-string@npm:^0.4.1": version: 0.4.1 resolution: "muggle-string@npm:0.4.1" checksum: 10c0/e914b63e24cd23f97e18376ec47e4ba3aa24365e4776212b666add2e47bb158003212980d732c49abf3719568900af7861873844a6e2d3a7ca7e86952c0e99e9 @@ -25739,7 +25739,7 @@ __metadata: languageName: node linkType: hard -"semver@npm:^7.0.0, semver@npm:^7.1.1, semver@npm:^7.2.1, semver@npm:^7.3.4, semver@npm:^7.3.5, semver@npm:^7.3.7, semver@npm:^7.3.8, semver@npm:^7.5.3, semver@npm:^7.5.4, semver@npm:^7.6.0, semver@npm:^7.6.2, semver@npm:^7.6.3": +"semver@npm:^7.0.0, semver@npm:^7.1.1, semver@npm:^7.2.1, semver@npm:^7.3.4, semver@npm:^7.3.5, semver@npm:^7.3.7, semver@npm:^7.5.3, semver@npm:^7.5.4, semver@npm:^7.6.0, semver@npm:^7.6.2, semver@npm:^7.6.3": version: 7.6.3 resolution: "semver@npm:7.6.3" bin: @@ -29034,7 +29034,7 @@ __metadata: languageName: node linkType: hard -"vscode-uri@npm:^3.0.3": +"vscode-uri@npm:^3.0.3, vscode-uri@npm:^3.0.8": version: 3.0.8 resolution: "vscode-uri@npm:3.0.8" checksum: 10c0/f7f217f526bf109589969fe6e66b71e70b937de1385a1d7bb577ca3ee7c5e820d3856a86e9ff2fa9b7a0bc56a3dd8c3a9a557d3fedd7df414bc618d5e6b567f9 @@ -29149,17 +29149,16 @@ __metadata: linkType: hard "vue-tsc@npm:latest": - version: 1.8.15 - resolution: "vue-tsc@npm:1.8.15" + version: 2.2.0 + resolution: "vue-tsc@npm:2.2.0" dependencies: - "@vue/language-core": "npm:1.8.15" - "@vue/typescript": "npm:1.8.15" - semver: "npm:^7.3.8" + "@volar/typescript": "npm:~2.4.11" + "@vue/language-core": "npm:2.2.0" peerDependencies: - typescript: "*" + typescript: ">=5.0.0" bin: - vue-tsc: bin/vue-tsc.js - checksum: 10c0/18092627141afcef9515701ea85beae564bc31258358d3b0eb7a3ae5167559ac56d8e218a0490661bae91a4f496d1351f9431074820473206dda9d0c50998216 + vue-tsc: ./bin/vue-tsc.js + checksum: 10c0/7258db27efd689402cf66631e5425fceb032526b0647c5188080a5ddbb02040eaaeafc1685270d281c6f05f9230344351343be5494a78b517173df2c6c0e4796 languageName: node linkType: hard From 60c06af4fab598b2aa2393d272ddf19df781a8c0 Mon Sep 17 00:00:00 2001 From: Daniel Williams <dannyhyunsoowilliams@gmail.com> Date: Sat, 4 Jan 2025 20:17:57 +0000 Subject: [PATCH 13/34] fix: add extra babel plugin to handle node modules --- .../react-native-web-vite/package.json | 2 + .../react-native-web-vite/src/preset.ts | 42 +- code/yarn.lock | 947 +++++++++++++++++- 3 files changed, 986 insertions(+), 5 deletions(-) diff --git a/code/frameworks/react-native-web-vite/package.json b/code/frameworks/react-native-web-vite/package.json index 62852daf4eaf..ca83dd74e1fb 100644 --- a/code/frameworks/react-native-web-vite/package.json +++ b/code/frameworks/react-native-web-vite/package.json @@ -59,6 +59,8 @@ "@storybook/react": "workspace:*", "@storybook/react-vite": "workspace:*", "@vitejs/plugin-react": "^4.3.2", + "babel-preset-expo": "^12.0.4", + "vite-plugin-babel": "^1.3.0", "vite-tsconfig-paths": "^5.1.4" }, "devDependencies": { diff --git a/code/frameworks/react-native-web-vite/src/preset.ts b/code/frameworks/react-native-web-vite/src/preset.ts index 44e847171dda..f8a827e037ed 100644 --- a/code/frameworks/react-native-web-vite/src/preset.ts +++ b/code/frameworks/react-native-web-vite/src/preset.ts @@ -3,6 +3,7 @@ import { viteFinal as reactViteFinal } from '@storybook/react-vite/preset'; import { esbuildFlowPlugin, flowPlugin } from '@bunchtogether/vite-plugin-flow'; import react from '@vitejs/plugin-react'; import type { InlineConfig, PluginOption } from 'vite'; +import babel from 'vite-plugin-babel'; import tsconfigPaths from 'vite-tsconfig-paths'; import type { FrameworkOptions, StorybookConfig } from './types'; @@ -19,6 +20,8 @@ export function reactNativeWeb(): PluginOption { _WORKLET: false, __DEV__: `${env.mode === 'development'}`, 'process.env.NODE_ENV': JSON.stringify(process.env.NODE_ENV || env.mode), + // this is for the expo preset + 'process.env.EXPO_OS': JSON.stringify('web'), }, optimizeDeps: { include: [], @@ -77,12 +80,47 @@ export const viteFinal: StorybookConfig['viteFinal'] = async (config, options) = exclude: [/node_modules\/(?!react-native|@react-native)/], }), react({ + jsxRuntime: 'automatic', + ...pluginReactOptions, babel: { + ...pluginReactOptions.babel, babelrc: false, configFile: false, + plugins: ['react-native-web', ...(pluginReactOptions.babel?.plugins || [])], + }, + }), + + // we need to add this extra babel config because the react plugin doesn't allow + // for transpiling node_modules. However we keep the react plugin to get the fast refresh + // and other benefits + babel({ + include: pluginReactOptions.include + ? pluginReactOptions.include + : [/node_modules\/(react-native|@react-native)/], + // gesture handler is already transpiled + exclude: pluginReactOptions.exclude + ? pluginReactOptions.exclude + : [/node_modules\/(react-native-gesture-handler)/], + babelConfig: { + ...pluginReactOptions.babel, + babelrc: false, + configFile: false, + presets: [ + [ + 'babel-preset-expo', + { + ...(pluginReactOptions.jsxImportSource + ? { jsxImportSource: pluginReactOptions.jsxImportSource } + : {}), + ...(pluginReactOptions.jsxRuntime + ? { jsxRuntime: pluginReactOptions.jsxRuntime } + : {}), + }, + ], + ...(pluginReactOptions.babel?.presets || []), + ], + plugins: ['react-native-web', ...(pluginReactOptions.babel?.plugins || [])], }, - jsxRuntime: 'automatic', - ...pluginReactOptions, }) ); diff --git a/code/yarn.lock b/code/yarn.lock index a36028c2bb19..97b0e56c6f5a 100644 --- a/code/yarn.lock +++ b/code/yarn.lock @@ -508,6 +508,15 @@ __metadata: languageName: node linkType: hard +"@babel/helper-annotate-as-pure@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/helper-annotate-as-pure@npm:7.25.9" + dependencies: + "@babel/types": "npm:^7.25.9" + checksum: 10c0/095b6ba50489d797733abebc4596a81918316a99e3632755c9f02508882912b00c2ae5e468532a25a5c2108d109ddbe9b7da78333ee7cc13817fc50c00cf06fe + languageName: node + linkType: hard + "@babel/helper-builder-binary-assignment-operator-visitor@npm:^7.24.7": version: 7.24.7 resolution: "@babel/helper-builder-binary-assignment-operator-visitor@npm:7.24.7" @@ -550,6 +559,23 @@ __metadata: languageName: node linkType: hard +"@babel/helper-create-class-features-plugin@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/helper-create-class-features-plugin@npm:7.25.9" + dependencies: + "@babel/helper-annotate-as-pure": "npm:^7.25.9" + "@babel/helper-member-expression-to-functions": "npm:^7.25.9" + "@babel/helper-optimise-call-expression": "npm:^7.25.9" + "@babel/helper-replace-supers": "npm:^7.25.9" + "@babel/helper-skip-transparent-expression-wrappers": "npm:^7.25.9" + "@babel/traverse": "npm:^7.25.9" + semver: "npm:^6.3.1" + peerDependencies: + "@babel/core": ^7.0.0 + checksum: 10c0/b2bdd39f38056a76b9ba00ec5b209dd84f5c5ebd998d0f4033cf0e73d5f2c357fbb49d1ce52db77a2709fb29ee22321f84a5734dc9914849bdfee9ad12ce8caf + languageName: node + linkType: hard + "@babel/helper-create-regexp-features-plugin@npm:^7.18.6, @babel/helper-create-regexp-features-plugin@npm:^7.24.7": version: 7.24.7 resolution: "@babel/helper-create-regexp-features-plugin@npm:7.24.7" @@ -563,6 +589,19 @@ __metadata: languageName: node linkType: hard +"@babel/helper-create-regexp-features-plugin@npm:^7.25.9": + version: 7.26.3 + resolution: "@babel/helper-create-regexp-features-plugin@npm:7.26.3" + dependencies: + "@babel/helper-annotate-as-pure": "npm:^7.25.9" + regexpu-core: "npm:^6.2.0" + semver: "npm:^6.3.1" + peerDependencies: + "@babel/core": ^7.0.0 + checksum: 10c0/266f30b99af621559467ed67634cb653408a9262930c0627c3d17691a9d477329fb4dabe4b1785cbf0490e892513d247836674271842d6a8da49fd0afae7d435 + languageName: node + linkType: hard + "@babel/helper-define-polyfill-provider@npm:^0.5.0": version: 0.5.0 resolution: "@babel/helper-define-polyfill-provider@npm:0.5.0" @@ -631,6 +670,16 @@ __metadata: languageName: node linkType: hard +"@babel/helper-member-expression-to-functions@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/helper-member-expression-to-functions@npm:7.25.9" + dependencies: + "@babel/traverse": "npm:^7.25.9" + "@babel/types": "npm:^7.25.9" + checksum: 10c0/e08c7616f111e1fb56f398365e78858e26e466d4ac46dff25921adc5ccae9b232f66e952a2f4162bbe336627ba336c7fd9eca4835b6548935973d3380d77eaff + languageName: node + linkType: hard + "@babel/helper-module-imports@npm:^7.16.7, @babel/helper-module-imports@npm:^7.22.15, @babel/helper-module-imports@npm:^7.24.3, @babel/helper-module-imports@npm:^7.24.7, @babel/helper-module-imports@npm:^7.25.9, @babel/helper-module-imports@npm:^7.8.3": version: 7.25.9 resolution: "@babel/helper-module-imports@npm:7.25.9" @@ -663,6 +712,15 @@ __metadata: languageName: node linkType: hard +"@babel/helper-optimise-call-expression@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/helper-optimise-call-expression@npm:7.25.9" + dependencies: + "@babel/types": "npm:^7.25.9" + checksum: 10c0/90203e6607edeadd2a154940803fd616c0ed92c1013d6774c4b8eb491f1a5a3448b68faae6268141caa5c456e55e3ee49a4ed2bd7ddaf2365daea321c435914c + languageName: node + linkType: hard + "@babel/helper-plugin-utils@npm:^7.0.0, @babel/helper-plugin-utils@npm:^7.10.4, @babel/helper-plugin-utils@npm:^7.12.13, @babel/helper-plugin-utils@npm:^7.14.5, @babel/helper-plugin-utils@npm:^7.18.6, @babel/helper-plugin-utils@npm:^7.20.2, @babel/helper-plugin-utils@npm:^7.22.5, @babel/helper-plugin-utils@npm:^7.24.0, @babel/helper-plugin-utils@npm:^7.24.7, @babel/helper-plugin-utils@npm:^7.25.9, @babel/helper-plugin-utils@npm:^7.8.0, @babel/helper-plugin-utils@npm:^7.8.3": version: 7.25.9 resolution: "@babel/helper-plugin-utils@npm:7.25.9" @@ -683,6 +741,19 @@ __metadata: languageName: node linkType: hard +"@babel/helper-remap-async-to-generator@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/helper-remap-async-to-generator@npm:7.25.9" + dependencies: + "@babel/helper-annotate-as-pure": "npm:^7.25.9" + "@babel/helper-wrap-function": "npm:^7.25.9" + "@babel/traverse": "npm:^7.25.9" + peerDependencies: + "@babel/core": ^7.0.0 + checksum: 10c0/6798b562f2788210980f29c5ee96056d90dc73458c88af5bd32f9c82e28e01975588aa2a57bb866c35556bd9b76bac937e824ee63ba472b6430224b91b4879e9 + languageName: node + linkType: hard + "@babel/helper-replace-supers@npm:^7.24.7": version: 7.24.7 resolution: "@babel/helper-replace-supers@npm:7.24.7" @@ -696,6 +767,19 @@ __metadata: languageName: node linkType: hard +"@babel/helper-replace-supers@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/helper-replace-supers@npm:7.25.9" + dependencies: + "@babel/helper-member-expression-to-functions": "npm:^7.25.9" + "@babel/helper-optimise-call-expression": "npm:^7.25.9" + "@babel/traverse": "npm:^7.25.9" + peerDependencies: + "@babel/core": ^7.0.0 + checksum: 10c0/0b40d7d2925bd3ba4223b3519e2e4d2456d471ad69aa458f1c1d1783c80b522c61f8237d3a52afc9e47c7174129bbba650df06393a6787d5722f2ec7f223c3f4 + languageName: node + linkType: hard + "@babel/helper-simple-access@npm:^7.24.7": version: 7.24.7 resolution: "@babel/helper-simple-access@npm:7.24.7" @@ -716,6 +800,16 @@ __metadata: languageName: node linkType: hard +"@babel/helper-skip-transparent-expression-wrappers@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/helper-skip-transparent-expression-wrappers@npm:7.25.9" + dependencies: + "@babel/traverse": "npm:^7.25.9" + "@babel/types": "npm:^7.25.9" + checksum: 10c0/09ace0c6156961624ac9524329ce7f45350bab94bbe24335cbe0da7dfaa1448e658771831983cb83fe91cf6635b15d0a3cab57c03b92657480bfb49fb56dd184 + languageName: node + linkType: hard + "@babel/helper-split-export-declaration@npm:7.22.6": version: 7.22.6 resolution: "@babel/helper-split-export-declaration@npm:7.22.6" @@ -767,6 +861,17 @@ __metadata: languageName: node linkType: hard +"@babel/helper-wrap-function@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/helper-wrap-function@npm:7.25.9" + dependencies: + "@babel/template": "npm:^7.25.9" + "@babel/traverse": "npm:^7.25.9" + "@babel/types": "npm:^7.25.9" + checksum: 10c0/b6627d83291e7b80df020f8ee2890c52b8d49272962cac0114ef90f189889c90f1027985873d1b5261a4e986e109b2754292dc112392f0b1fcbfc91cc08bd003 + languageName: node + linkType: hard + "@babel/helpers@npm:^7.23.9, @babel/helpers@npm:^7.24.0, @babel/helpers@npm:^7.26.0": version: 7.26.0 resolution: "@babel/helpers@npm:7.26.0" @@ -848,6 +953,19 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-proposal-decorators@npm:^7.12.9": + version: 7.25.9 + resolution: "@babel/plugin-proposal-decorators@npm:7.25.9" + dependencies: + "@babel/helper-create-class-features-plugin": "npm:^7.25.9" + "@babel/helper-plugin-utils": "npm:^7.25.9" + "@babel/plugin-syntax-decorators": "npm:^7.25.9" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10c0/d7d54644f50a60c47090d70121905ca76534bd7a837c03d25e163ca6ae384b48ef6dcfb125a99f12b3ce7e78e074a33f6fa8c4531c1a46aa31274153f587b05e + languageName: node + linkType: hard + "@babel/plugin-proposal-decorators@npm:^7.13.5, @babel/plugin-proposal-decorators@npm:^7.22.7": version: 7.24.0 resolution: "@babel/plugin-proposal-decorators@npm:7.24.0" @@ -861,6 +979,17 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-proposal-export-default-from@npm:^7.24.7": + version: 7.25.9 + resolution: "@babel/plugin-proposal-export-default-from@npm:7.25.9" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.25.9" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10c0/6d7ca2d8179d97c38cbcc327129c70103b95797a048c6d244fa8f3eb35b8aebc8122957dc25f20d9923fe6e75f16e2a4d649f1d80a63a9fed2d8b9eda85bd650 + languageName: node + linkType: hard + "@babel/plugin-proposal-nullish-coalescing-operator@npm:^7.13.8": version: 7.18.6 resolution: "@babel/plugin-proposal-nullish-coalescing-operator@npm:7.18.6" @@ -976,6 +1105,17 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-syntax-decorators@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/plugin-syntax-decorators@npm:7.25.9" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.25.9" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10c0/47e44a7d61b76dac4f18fd61edc186012e084eb8f1fe253c483b0fe90b73366b4ebd2b0b03728e000fd1fdedc8af3aa6e93246caf97183a8d9d42a0eb57ecfcc + languageName: node + linkType: hard + "@babel/plugin-syntax-dynamic-import@npm:^7.8.3": version: 7.8.3 resolution: "@babel/plugin-syntax-dynamic-import@npm:7.8.3" @@ -987,6 +1127,17 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-syntax-export-default-from@npm:^7.24.7": + version: 7.25.9 + resolution: "@babel/plugin-syntax-export-default-from@npm:7.25.9" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.25.9" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10c0/10267af3a2bed893acb17b1e1e5e6a3aafcdcb202d54ac295bfa95ac11c66336a9c36cc73b4adc2b10a41a8ecc0c3390808ab16a99c24a76f8c74313ba32be63 + languageName: node + linkType: hard + "@babel/plugin-syntax-export-namespace-from@npm:^7.8.3": version: 7.8.3 resolution: "@babel/plugin-syntax-export-namespace-from@npm:7.8.3" @@ -998,6 +1149,17 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-syntax-flow@npm:^7.12.1, @babel/plugin-syntax-flow@npm:^7.25.9": + version: 7.26.0 + resolution: "@babel/plugin-syntax-flow@npm:7.26.0" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.25.9" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10c0/3d5cc1627a67af8be9df8cfe246869f18e7e9e2592f4b6f1c4bcd9bbe4ad27102784a25b31ebdbed23499ecb6fc23aaf7891ccf5ac3f432fd26a27123d1e242b + languageName: node + linkType: hard + "@babel/plugin-syntax-flow@npm:^7.22.5": version: 7.22.5 resolution: "@babel/plugin-syntax-flow@npm:7.22.5" @@ -1064,6 +1226,17 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-syntax-jsx@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/plugin-syntax-jsx@npm:7.25.9" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.25.9" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10c0/d56597aff4df39d3decda50193b6dfbe596ca53f437ff2934622ce19a743bf7f43492d3fb3308b0289f5cee2b825d99ceb56526a2b9e7b68bf04901546c5618c + languageName: node + linkType: hard + "@babel/plugin-syntax-logical-assignment-operators@npm:^7.10.4": version: 7.10.4 resolution: "@babel/plugin-syntax-logical-assignment-operators@npm:7.10.4" @@ -1163,6 +1336,17 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-syntax-typescript@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/plugin-syntax-typescript@npm:7.25.9" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.25.9" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10c0/5192ebe11bd46aea68b7a60fd9555465c59af7e279e71126788e59121b86e00b505816685ab4782abe159232b0f73854e804b54449820b0d950b397ee158caa2 + languageName: node + linkType: hard + "@babel/plugin-syntax-unicode-sets-regex@npm:^7.18.6": version: 7.18.6 resolution: "@babel/plugin-syntax-unicode-sets-regex@npm:7.18.6" @@ -1186,6 +1370,17 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-transform-arrow-functions@npm:^7.24.7": + version: 7.25.9 + resolution: "@babel/plugin-transform-arrow-functions@npm:7.25.9" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.25.9" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10c0/851fef9f58be60a80f46cc0ce1e46a6f7346a6f9d50fa9e0fa79d46ec205320069d0cc157db213e2bea88ef5b7d9bd7618bb83f0b1996a836e2426c3a3a1f622 + languageName: node + linkType: hard + "@babel/plugin-transform-async-generator-functions@npm:7.23.9": version: 7.23.9 resolution: "@babel/plugin-transform-async-generator-functions@npm:7.23.9" @@ -1214,6 +1409,19 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-transform-async-generator-functions@npm:^7.25.4": + version: 7.25.9 + resolution: "@babel/plugin-transform-async-generator-functions@npm:7.25.9" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.25.9" + "@babel/helper-remap-async-to-generator": "npm:^7.25.9" + "@babel/traverse": "npm:^7.25.9" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10c0/e3fcb9fc3d6ab6cbd4fcd956b48c17b5e92fe177553df266ffcd2b2c1f2f758b893e51b638e77ed867941e0436487d2b8b505908d615c41799241699b520dec6 + languageName: node + linkType: hard + "@babel/plugin-transform-async-to-generator@npm:7.23.3": version: 7.23.3 resolution: "@babel/plugin-transform-async-to-generator@npm:7.23.3" @@ -1240,6 +1448,19 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-transform-async-to-generator@npm:^7.24.7": + version: 7.25.9 + resolution: "@babel/plugin-transform-async-to-generator@npm:7.25.9" + dependencies: + "@babel/helper-module-imports": "npm:^7.25.9" + "@babel/helper-plugin-utils": "npm:^7.25.9" + "@babel/helper-remap-async-to-generator": "npm:^7.25.9" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10c0/c443d9e462ddef733ae56360064f32fc800105803d892e4ff32d7d6a6922b3765fa97b9ddc9f7f1d3f9d8c2d95721d85bef9dbf507804214c6cf6466b105c168 + languageName: node + linkType: hard + "@babel/plugin-transform-block-scoped-functions@npm:^7.23.3, @babel/plugin-transform-block-scoped-functions@npm:^7.24.1": version: 7.24.7 resolution: "@babel/plugin-transform-block-scoped-functions@npm:7.24.7" @@ -1262,6 +1483,17 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-transform-block-scoping@npm:^7.25.0": + version: 7.25.9 + resolution: "@babel/plugin-transform-block-scoping@npm:7.25.9" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.25.9" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10c0/a76e30becb6c75b4d87a2cd53556fddb7c88ddd56bfadb965287fd944810ac159aa8eb5705366fc37336041f63154ed9fab3862fb10482a45bf5ede63fd55fda + languageName: node + linkType: hard + "@babel/plugin-transform-class-properties@npm:^7.22.5, @babel/plugin-transform-class-properties@npm:^7.23.3, @babel/plugin-transform-class-properties@npm:^7.24.1": version: 7.24.7 resolution: "@babel/plugin-transform-class-properties@npm:7.24.7" @@ -1274,6 +1506,18 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-transform-class-properties@npm:^7.25.4": + version: 7.25.9 + resolution: "@babel/plugin-transform-class-properties@npm:7.25.9" + dependencies: + "@babel/helper-create-class-features-plugin": "npm:^7.25.9" + "@babel/helper-plugin-utils": "npm:^7.25.9" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10c0/f0603b6bd34d8ba62c03fc0572cb8bbc75874d097ac20cc7c5379e001081210a84dba1749e7123fca43b978382f605bb9973c99caf2c5b4c492d5c0a4a441150 + languageName: node + linkType: hard + "@babel/plugin-transform-class-static-block@npm:^7.23.4, @babel/plugin-transform-class-static-block@npm:^7.24.4": version: 7.24.7 resolution: "@babel/plugin-transform-class-static-block@npm:7.24.7" @@ -1305,6 +1549,22 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-transform-classes@npm:^7.25.4": + version: 7.25.9 + resolution: "@babel/plugin-transform-classes@npm:7.25.9" + dependencies: + "@babel/helper-annotate-as-pure": "npm:^7.25.9" + "@babel/helper-compilation-targets": "npm:^7.25.9" + "@babel/helper-plugin-utils": "npm:^7.25.9" + "@babel/helper-replace-supers": "npm:^7.25.9" + "@babel/traverse": "npm:^7.25.9" + globals: "npm:^11.1.0" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10c0/02742ea7cd25be286c982e672619effca528d7a931626a6f3d6cea11852951b7ee973276127eaf6418ac0e18c4d749a16b520709c707e86a67012bd23ff2927d + languageName: node + linkType: hard + "@babel/plugin-transform-computed-properties@npm:^7.23.3, @babel/plugin-transform-computed-properties@npm:^7.24.1": version: 7.24.7 resolution: "@babel/plugin-transform-computed-properties@npm:7.24.7" @@ -1317,6 +1577,18 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-transform-computed-properties@npm:^7.24.7": + version: 7.25.9 + resolution: "@babel/plugin-transform-computed-properties@npm:7.25.9" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.25.9" + "@babel/template": "npm:^7.25.9" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10c0/948c0ae3ce0ba2375241d122a9bc7cda4a7ac8110bd8a62cd804bc46a5fdb7a7a42c7799c4cd972e14e0a579d2bd0999b92e53177b73f240bb0d4b09972c758b + languageName: node + linkType: hard + "@babel/plugin-transform-destructuring@npm:^7.23.3, @babel/plugin-transform-destructuring@npm:^7.24.1": version: 7.24.7 resolution: "@babel/plugin-transform-destructuring@npm:7.24.7" @@ -1328,6 +1600,17 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-transform-destructuring@npm:^7.24.8": + version: 7.25.9 + resolution: "@babel/plugin-transform-destructuring@npm:7.25.9" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.25.9" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10c0/7beec5fda665d108f69d5023aa7c298a1e566b973dd41290faa18aeea70f6f571295c1ece0a058f3ceb6c6c96de76de7cd34f5a227fbf09a1b8d8a735d28ca49 + languageName: node + linkType: hard + "@babel/plugin-transform-dotall-regex@npm:^7.23.3, @babel/plugin-transform-dotall-regex@npm:^7.24.1": version: 7.24.7 resolution: "@babel/plugin-transform-dotall-regex@npm:7.24.7" @@ -1375,6 +1658,17 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-transform-export-namespace-from@npm:^7.22.11": + version: 7.25.9 + resolution: "@babel/plugin-transform-export-namespace-from@npm:7.25.9" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.25.9" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10c0/f291ea2ec5f36de9028a00cbd5b32f08af281b8183bf047200ff001f4cb260be56f156b2449f42149448a4a033bd6e86a3a7f06d0c2825532eb0ae6b03058dfb + languageName: node + linkType: hard + "@babel/plugin-transform-export-namespace-from@npm:^7.23.4, @babel/plugin-transform-export-namespace-from@npm:^7.24.1": version: 7.24.7 resolution: "@babel/plugin-transform-export-namespace-from@npm:7.24.7" @@ -1399,6 +1693,18 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-transform-flow-strip-types@npm:^7.25.2": + version: 7.25.9 + resolution: "@babel/plugin-transform-flow-strip-types@npm:7.25.9" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.25.9" + "@babel/plugin-syntax-flow": "npm:^7.25.9" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10c0/d4b79769a5b8bfc1a0766ed2158417e7efa53cdb5776161f641a642019c0822a1288f2ccd36c16a4bca77c64ccf1bab7e36aa1419adc417606acc6eddc126339 + languageName: node + linkType: hard + "@babel/plugin-transform-for-of@npm:^7.23.6, @babel/plugin-transform-for-of@npm:^7.24.1": version: 7.24.7 resolution: "@babel/plugin-transform-for-of@npm:7.24.7" @@ -1411,6 +1717,18 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-transform-for-of@npm:^7.24.7": + version: 7.25.9 + resolution: "@babel/plugin-transform-for-of@npm:7.25.9" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.25.9" + "@babel/helper-skip-transparent-expression-wrappers": "npm:^7.25.9" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10c0/bf11abc71934a1f369f39cd7a33cf3d4dc5673026a53f70b7c1238c4fcc44e68b3ca1bdbe3db2076f60defb6ffe117cbe10b90f3e1a613b551d88f7c4e693bbe + languageName: node + linkType: hard + "@babel/plugin-transform-function-name@npm:^7.23.3, @babel/plugin-transform-function-name@npm:^7.24.1": version: 7.24.7 resolution: "@babel/plugin-transform-function-name@npm:7.24.7" @@ -1424,6 +1742,19 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-transform-function-name@npm:^7.25.1": + version: 7.25.9 + resolution: "@babel/plugin-transform-function-name@npm:7.25.9" + dependencies: + "@babel/helper-compilation-targets": "npm:^7.25.9" + "@babel/helper-plugin-utils": "npm:^7.25.9" + "@babel/traverse": "npm:^7.25.9" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10c0/8e67fbd1dd367927b8b6afdf0a6e7cb3a3fd70766c52f700ca77428b6d536f6c9d7ec643e7762d64b23093233765c66bffa40e31aabe6492682879bcb45423e1 + languageName: node + linkType: hard + "@babel/plugin-transform-json-strings@npm:^7.23.4, @babel/plugin-transform-json-strings@npm:^7.24.1": version: 7.24.7 resolution: "@babel/plugin-transform-json-strings@npm:7.24.7" @@ -1447,6 +1778,17 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-transform-literals@npm:^7.25.2": + version: 7.25.9 + resolution: "@babel/plugin-transform-literals@npm:7.25.9" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.25.9" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10c0/00b14e9c14cf1e871c1f3781bf6334cac339c360404afd6aba63d2f6aca9270854d59a2b40abff1c4c90d4ffdca614440842d3043316c2f0ceb155fdf7726b3b + languageName: node + linkType: hard + "@babel/plugin-transform-logical-assignment-operators@npm:^7.23.4, @babel/plugin-transform-logical-assignment-operators@npm:^7.24.1": version: 7.24.7 resolution: "@babel/plugin-transform-logical-assignment-operators@npm:7.24.7" @@ -1459,6 +1801,17 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-transform-logical-assignment-operators@npm:^7.24.7": + version: 7.25.9 + resolution: "@babel/plugin-transform-logical-assignment-operators@npm:7.25.9" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.25.9" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10c0/6e2051e10b2d6452980fc4bdef9da17c0d6ca48f81b8529e8804b031950e4fff7c74a7eb3de4a2b6ad22ffb631d0b67005425d232cce6e2b29ce861c78ed04f5 + languageName: node + linkType: hard + "@babel/plugin-transform-member-expression-literals@npm:^7.23.3, @babel/plugin-transform-member-expression-literals@npm:^7.24.1": version: 7.24.7 resolution: "@babel/plugin-transform-member-expression-literals@npm:7.24.7" @@ -1495,6 +1848,18 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-transform-modules-commonjs@npm:^7.24.8": + version: 7.26.3 + resolution: "@babel/plugin-transform-modules-commonjs@npm:7.26.3" + dependencies: + "@babel/helper-module-transforms": "npm:^7.26.0" + "@babel/helper-plugin-utils": "npm:^7.25.9" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10c0/82e59708f19f36da29531a64a7a94eabbf6ff46a615e0f5d9b49f3f59e8ef10e2bac607d749091508d3fa655146c9e5647c3ffeca781060cdabedb4c7a33c6f2 + languageName: node + linkType: hard + "@babel/plugin-transform-modules-systemjs@npm:^7.23.9, @babel/plugin-transform-modules-systemjs@npm:^7.24.1": version: 7.24.7 resolution: "@babel/plugin-transform-modules-systemjs@npm:7.24.7" @@ -1533,6 +1898,18 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-transform-named-capturing-groups-regex@npm:^7.24.7": + version: 7.25.9 + resolution: "@babel/plugin-transform-named-capturing-groups-regex@npm:7.25.9" + dependencies: + "@babel/helper-create-regexp-features-plugin": "npm:^7.25.9" + "@babel/helper-plugin-utils": "npm:^7.25.9" + peerDependencies: + "@babel/core": ^7.0.0 + checksum: 10c0/32b14fda5c885d1706863f8af2ee6c703d39264355b57482d3a24fce7f6afbd4c7a0896e501c0806ed2b0759beb621bf7f3f7de1fbbc82026039a98d961e78ef + languageName: node + linkType: hard + "@babel/plugin-transform-new-target@npm:^7.23.3, @babel/plugin-transform-new-target@npm:^7.24.1": version: 7.24.7 resolution: "@babel/plugin-transform-new-target@npm:7.24.7" @@ -1556,6 +1933,17 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-transform-nullish-coalescing-operator@npm:^7.24.7": + version: 7.25.9 + resolution: "@babel/plugin-transform-nullish-coalescing-operator@npm:7.25.9" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.25.9" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10c0/eb623db5be078a1c974afe7c7797b0309ba2ea9e9237c0b6831ade0f56d8248bb4ab3432ab34495ff8c877ec2fe412ff779d1e9b3c2b8139da18e1753d950bc3 + languageName: node + linkType: hard + "@babel/plugin-transform-numeric-separator@npm:^7.23.4, @babel/plugin-transform-numeric-separator@npm:^7.24.1": version: 7.24.7 resolution: "@babel/plugin-transform-numeric-separator@npm:7.24.7" @@ -1568,6 +1956,17 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-transform-numeric-separator@npm:^7.24.7": + version: 7.25.9 + resolution: "@babel/plugin-transform-numeric-separator@npm:7.25.9" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.25.9" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10c0/ad63ad341977844b6f9535fcca15ca0d6d6ad112ed9cc509d4f6b75e9bf4b1b1a96a0bcb1986421a601505d34025373608b5f76d420d924b4e21f86b1a1f2749 + languageName: node + linkType: hard + "@babel/plugin-transform-object-assign@npm:^7.8.3": version: 7.22.5 resolution: "@babel/plugin-transform-object-assign@npm:7.22.5" @@ -1579,6 +1978,19 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-transform-object-rest-spread@npm:^7.12.13, @babel/plugin-transform-object-rest-spread@npm:^7.24.7": + version: 7.25.9 + resolution: "@babel/plugin-transform-object-rest-spread@npm:7.25.9" + dependencies: + "@babel/helper-compilation-targets": "npm:^7.25.9" + "@babel/helper-plugin-utils": "npm:^7.25.9" + "@babel/plugin-transform-parameters": "npm:^7.25.9" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10c0/02077d8abd83bf6a48ff0b59e98d7561407cf75b591cffd3fdc5dc5e9a13dec1c847a7a690983762a3afecddb244831e897e0515c293e7c653b262c30cd614af + languageName: node + linkType: hard + "@babel/plugin-transform-object-rest-spread@npm:^7.24.0, @babel/plugin-transform-object-rest-spread@npm:^7.24.1": version: 7.24.7 resolution: "@babel/plugin-transform-object-rest-spread@npm:7.24.7" @@ -1617,6 +2029,17 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-transform-optional-catch-binding@npm:^7.24.7": + version: 7.25.9 + resolution: "@babel/plugin-transform-optional-catch-binding@npm:7.25.9" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.25.9" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10c0/722fd5ee12ab905309d4e84421584fce4b6d9e6b639b06afb20b23fa809e6ab251e908a8d5e8b14d066a28186b8ef8f58d69fd6eca9ce1b9ef7af08333378f6c + languageName: node + linkType: hard + "@babel/plugin-transform-optional-chaining@npm:^7.23.0, @babel/plugin-transform-optional-chaining@npm:^7.23.4, @babel/plugin-transform-optional-chaining@npm:^7.24.1, @babel/plugin-transform-optional-chaining@npm:^7.24.7": version: 7.24.7 resolution: "@babel/plugin-transform-optional-chaining@npm:7.24.7" @@ -1630,6 +2053,29 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-transform-optional-chaining@npm:^7.24.8": + version: 7.25.9 + resolution: "@babel/plugin-transform-optional-chaining@npm:7.25.9" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.25.9" + "@babel/helper-skip-transparent-expression-wrappers": "npm:^7.25.9" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10c0/041ad2beae5affb8e68a0bcb6882a2dadb758db3c629a0e012f57488ab43a822ac1ea17a29db8ef36560a28262a5dfa4dbbbf06ed6e431db55abe024b7cd3961 + languageName: node + linkType: hard + +"@babel/plugin-transform-parameters@npm:^7.22.15, @babel/plugin-transform-parameters@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/plugin-transform-parameters@npm:7.25.9" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.25.9" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10c0/aecb446754b9e09d6b6fa95fd09e7cf682f8aaeed1d972874ba24c0a30a7e803ad5f014bb1fffc7bfeed22f93c0d200947407894ea59bf7687816f2f464f8df3 + languageName: node + linkType: hard + "@babel/plugin-transform-parameters@npm:^7.23.3, @babel/plugin-transform-parameters@npm:^7.24.1, @babel/plugin-transform-parameters@npm:^7.24.7": version: 7.24.7 resolution: "@babel/plugin-transform-parameters@npm:7.24.7" @@ -1653,6 +2099,18 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-transform-private-methods@npm:^7.24.7": + version: 7.25.9 + resolution: "@babel/plugin-transform-private-methods@npm:7.25.9" + dependencies: + "@babel/helper-create-class-features-plugin": "npm:^7.25.9" + "@babel/helper-plugin-utils": "npm:^7.25.9" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10c0/64bd71de93d39daefa3e6c878d6f2fd238ed7d4ecfb13b0e771ddbbc131487def3ceb405b62b534a5cbb5043046b504e1b189b0a45229cc75af979a9fbcaa7bd + languageName: node + linkType: hard + "@babel/plugin-transform-private-property-in-object@npm:^7.23.4, @babel/plugin-transform-private-property-in-object@npm:^7.24.1": version: 7.24.7 resolution: "@babel/plugin-transform-private-property-in-object@npm:7.24.7" @@ -1667,6 +2125,19 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-transform-private-property-in-object@npm:^7.24.7": + version: 7.25.9 + resolution: "@babel/plugin-transform-private-property-in-object@npm:7.25.9" + dependencies: + "@babel/helper-annotate-as-pure": "npm:^7.25.9" + "@babel/helper-create-class-features-plugin": "npm:^7.25.9" + "@babel/helper-plugin-utils": "npm:^7.25.9" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10c0/d4965de19d9f204e692cc74dbc39f0bb469e5f29df96dd4457ea23c5e5596fba9d5af76eaa96f9d48a9fc20ec5f12a94c679285e36b8373406868ea228109e27 + languageName: node + linkType: hard + "@babel/plugin-transform-property-literals@npm:^7.23.3, @babel/plugin-transform-property-literals@npm:^7.24.1": version: 7.24.7 resolution: "@babel/plugin-transform-property-literals@npm:7.24.7" @@ -1689,6 +2160,17 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-transform-react-display-name@npm:^7.24.7, @babel/plugin-transform-react-display-name@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/plugin-transform-react-display-name@npm:7.25.9" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.25.9" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10c0/63a0f962d64e71baf87c212755419e25c637d2d95ea6fdc067df26b91e606ae186442ae815b99a577eca9bf5404d9577ecad218a3cf42d0e9e286ca7b003a992 + languageName: node + linkType: hard + "@babel/plugin-transform-react-jsx-development@npm:^7.22.5": version: 7.22.5 resolution: "@babel/plugin-transform-react-jsx-development@npm:7.22.5" @@ -1700,6 +2182,17 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-transform-react-jsx-development@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/plugin-transform-react-jsx-development@npm:7.25.9" + dependencies: + "@babel/plugin-transform-react-jsx": "npm:^7.25.9" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10c0/c0b92ff9eb029620abf320ff74aae182cea87524723d740fb48a4373d0d16bddf5edbe1116e7ba341332a5337e55c2ceaee8b8cad5549e78af7f4b3cfe77debb + languageName: node + linkType: hard + "@babel/plugin-transform-react-jsx-self@npm:^7.24.7": version: 7.25.9 resolution: "@babel/plugin-transform-react-jsx-self@npm:7.25.9" @@ -1737,6 +2230,21 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-transform-react-jsx@npm:^7.25.2, @babel/plugin-transform-react-jsx@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/plugin-transform-react-jsx@npm:7.25.9" + dependencies: + "@babel/helper-annotate-as-pure": "npm:^7.25.9" + "@babel/helper-module-imports": "npm:^7.25.9" + "@babel/helper-plugin-utils": "npm:^7.25.9" + "@babel/plugin-syntax-jsx": "npm:^7.25.9" + "@babel/types": "npm:^7.25.9" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10c0/5c9947e8ed141f7606f54da3e05eea1074950c5b8354c39df69cb7f43cb5a83c6c9d7973b24bc3d89341c8611f8ad50830a98ab10d117d850e6bdd8febdce221 + languageName: node + linkType: hard + "@babel/plugin-transform-react-pure-annotations@npm:^7.24.1": version: 7.24.1 resolution: "@babel/plugin-transform-react-pure-annotations@npm:7.24.1" @@ -1749,6 +2257,18 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-transform-react-pure-annotations@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/plugin-transform-react-pure-annotations@npm:7.25.9" + dependencies: + "@babel/helper-annotate-as-pure": "npm:^7.25.9" + "@babel/helper-plugin-utils": "npm:^7.25.9" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10c0/7c8eac04644ad19dcd71bb8e949b0ae22b9e548fa4a58e545d3d0342f647fb89db7f8789a7c5b8074d478ce6d3d581eaf47dd4b36027e16fd68211c383839abc + languageName: node + linkType: hard + "@babel/plugin-transform-regenerator@npm:^7.23.3, @babel/plugin-transform-regenerator@npm:^7.24.1": version: 7.24.7 resolution: "@babel/plugin-transform-regenerator@npm:7.24.7" @@ -1761,6 +2281,18 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-transform-regenerator@npm:^7.24.7": + version: 7.25.9 + resolution: "@babel/plugin-transform-regenerator@npm:7.25.9" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.25.9" + regenerator-transform: "npm:^0.15.2" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10c0/eef3ffc19f7d291b863635f32b896ad7f87806d9219a0d3404a470219abcfc5b43aabecd691026c48e875b965760d9c16abee25e6447272233f30cd07f453ec7 + languageName: node + linkType: hard + "@babel/plugin-transform-reserved-words@npm:^7.23.3, @babel/plugin-transform-reserved-words@npm:^7.24.1": version: 7.24.7 resolution: "@babel/plugin-transform-reserved-words@npm:7.24.7" @@ -1804,6 +2336,22 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-transform-runtime@npm:^7.24.7": + version: 7.25.9 + resolution: "@babel/plugin-transform-runtime@npm:7.25.9" + dependencies: + "@babel/helper-module-imports": "npm:^7.25.9" + "@babel/helper-plugin-utils": "npm:^7.25.9" + babel-plugin-polyfill-corejs2: "npm:^0.4.10" + babel-plugin-polyfill-corejs3: "npm:^0.10.6" + babel-plugin-polyfill-regenerator: "npm:^0.6.1" + semver: "npm:^6.3.1" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10c0/888a4998ba0a2313de347954c9a8dfeccbff0633c69d33aee385b8878eba2b429dbfb00c3cc04f6bca454b9be8afa01ebbd73defb7fbbb6e2d3086205c07758b + languageName: node + linkType: hard + "@babel/plugin-transform-shorthand-properties@npm:^7.23.3, @babel/plugin-transform-shorthand-properties@npm:^7.24.1": version: 7.24.7 resolution: "@babel/plugin-transform-shorthand-properties@npm:7.24.7" @@ -1815,6 +2363,17 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-transform-shorthand-properties@npm:^7.24.7": + version: 7.25.9 + resolution: "@babel/plugin-transform-shorthand-properties@npm:7.25.9" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.25.9" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10c0/05a20d45f0fb62567644c507ccd4e379c1a74dacf887d2b2cac70247415e3f6d7d3bf4850c8b336053144715fedb6200fc38f7130c4b76c94eec9b9c0c2a8e9b + languageName: node + linkType: hard + "@babel/plugin-transform-spread@npm:^7.23.3, @babel/plugin-transform-spread@npm:^7.24.1": version: 7.24.7 resolution: "@babel/plugin-transform-spread@npm:7.24.7" @@ -1827,6 +2386,18 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-transform-spread@npm:^7.24.7": + version: 7.25.9 + resolution: "@babel/plugin-transform-spread@npm:7.25.9" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.25.9" + "@babel/helper-skip-transparent-expression-wrappers": "npm:^7.25.9" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10c0/996c8fed238efc30e0664f9f58bd7ec8c148f4659f84425f68923a094fe891245711d26eb10d1f815f50c124434e076e860dbe9662240844d1b77cd09907dcdf + languageName: node + linkType: hard + "@babel/plugin-transform-sticky-regex@npm:^7.23.3, @babel/plugin-transform-sticky-regex@npm:^7.24.1": version: 7.24.7 resolution: "@babel/plugin-transform-sticky-regex@npm:7.24.7" @@ -1838,6 +2409,17 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-transform-sticky-regex@npm:^7.24.7": + version: 7.25.9 + resolution: "@babel/plugin-transform-sticky-regex@npm:7.25.9" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.25.9" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10c0/e9612b0615dab4c4fba1c560769616a9bd7b9226c73191ef84b6c3ee185c8b719b4f887cdd8336a0a13400ce606ab4a0d33bc8fa6b4fcdb53e2896d07f2568f6 + languageName: node + linkType: hard + "@babel/plugin-transform-template-literals@npm:^7.23.3, @babel/plugin-transform-template-literals@npm:^7.24.1": version: 7.24.7 resolution: "@babel/plugin-transform-template-literals@npm:7.24.7" @@ -1874,6 +2456,21 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-transform-typescript@npm:^7.25.2": + version: 7.26.3 + resolution: "@babel/plugin-transform-typescript@npm:7.26.3" + dependencies: + "@babel/helper-annotate-as-pure": "npm:^7.25.9" + "@babel/helper-create-class-features-plugin": "npm:^7.25.9" + "@babel/helper-plugin-utils": "npm:^7.25.9" + "@babel/helper-skip-transparent-expression-wrappers": "npm:^7.25.9" + "@babel/plugin-syntax-typescript": "npm:^7.25.9" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10c0/0a0509ec56666fab5b557d573254665956a377916fc1e7cee309c0711d11257338ba7ee678db03603a3985d2c6c0b210b788fb6b9616d8fc0595469e39089a8f + languageName: node + linkType: hard + "@babel/plugin-transform-unicode-escapes@npm:^7.23.3, @babel/plugin-transform-unicode-escapes@npm:^7.24.1": version: 7.24.7 resolution: "@babel/plugin-transform-unicode-escapes@npm:7.24.7" @@ -1909,6 +2506,18 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-transform-unicode-regex@npm:^7.24.7": + version: 7.25.9 + resolution: "@babel/plugin-transform-unicode-regex@npm:7.25.9" + dependencies: + "@babel/helper-create-regexp-features-plugin": "npm:^7.25.9" + "@babel/helper-plugin-utils": "npm:^7.25.9" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10c0/448004f978279e726af26acd54f63f9002c9e2582ecd70d1c5c4436f6de490fcd817afb60016d11c52f5ef17dbaac2590e8cc7bfaf4e91b58c452cf188c7920f + languageName: node + linkType: hard + "@babel/plugin-transform-unicode-sets-regex@npm:^7.23.3, @babel/plugin-transform-unicode-sets-regex@npm:^7.24.1": version: 7.24.7 resolution: "@babel/plugin-transform-unicode-sets-regex@npm:7.24.7" @@ -2138,6 +2747,22 @@ __metadata: languageName: node linkType: hard +"@babel/preset-react@npm:^7.22.15": + version: 7.26.3 + resolution: "@babel/preset-react@npm:7.26.3" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.25.9" + "@babel/helper-validator-option": "npm:^7.25.9" + "@babel/plugin-transform-react-display-name": "npm:^7.25.9" + "@babel/plugin-transform-react-jsx": "npm:^7.25.9" + "@babel/plugin-transform-react-jsx-development": "npm:^7.25.9" + "@babel/plugin-transform-react-pure-annotations": "npm:^7.25.9" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10c0/b470dcba11032ef6c832066f4af5c75052eaed49feb0f445227231ef1b5c42aacd6e216988c0bd469fd5728cd27b6b059ca307c9ecaa80c6bb5da4bf1c833e12 + languageName: node + linkType: hard + "@babel/preset-react@npm:^7.24.1": version: 7.24.1 resolution: "@babel/preset-react@npm:7.24.1" @@ -2236,7 +2861,7 @@ __metadata: languageName: node linkType: hard -"@babel/template@npm:^7.23.9, @babel/template@npm:^7.24.0, @babel/template@npm:^7.24.7, @babel/template@npm:^7.25.9": +"@babel/template@npm:^7.23.9, @babel/template@npm:^7.24.0, @babel/template@npm:^7.24.7, @babel/template@npm:^7.25.0, @babel/template@npm:^7.25.9": version: 7.25.9 resolution: "@babel/template@npm:7.25.9" dependencies: @@ -5095,6 +5720,88 @@ __metadata: languageName: node linkType: hard +"@react-native/babel-plugin-codegen@npm:0.76.5": + version: 0.76.5 + resolution: "@react-native/babel-plugin-codegen@npm:0.76.5" + dependencies: + "@react-native/codegen": "npm:0.76.5" + checksum: 10c0/f853d7b4f0114a5443128af4813ea473542db4470e55f2962b94578c587c47347745e4b23819dec147d4b3926a0eecf36389ce01af286923436cb859a7b4a481 + languageName: node + linkType: hard + +"@react-native/babel-preset@npm:0.76.5": + version: 0.76.5 + resolution: "@react-native/babel-preset@npm:0.76.5" + dependencies: + "@babel/core": "npm:^7.25.2" + "@babel/plugin-proposal-export-default-from": "npm:^7.24.7" + "@babel/plugin-syntax-dynamic-import": "npm:^7.8.3" + "@babel/plugin-syntax-export-default-from": "npm:^7.24.7" + "@babel/plugin-syntax-nullish-coalescing-operator": "npm:^7.8.3" + "@babel/plugin-syntax-optional-chaining": "npm:^7.8.3" + "@babel/plugin-transform-arrow-functions": "npm:^7.24.7" + "@babel/plugin-transform-async-generator-functions": "npm:^7.25.4" + "@babel/plugin-transform-async-to-generator": "npm:^7.24.7" + "@babel/plugin-transform-block-scoping": "npm:^7.25.0" + "@babel/plugin-transform-class-properties": "npm:^7.25.4" + "@babel/plugin-transform-classes": "npm:^7.25.4" + "@babel/plugin-transform-computed-properties": "npm:^7.24.7" + "@babel/plugin-transform-destructuring": "npm:^7.24.8" + "@babel/plugin-transform-flow-strip-types": "npm:^7.25.2" + "@babel/plugin-transform-for-of": "npm:^7.24.7" + "@babel/plugin-transform-function-name": "npm:^7.25.1" + "@babel/plugin-transform-literals": "npm:^7.25.2" + "@babel/plugin-transform-logical-assignment-operators": "npm:^7.24.7" + "@babel/plugin-transform-modules-commonjs": "npm:^7.24.8" + "@babel/plugin-transform-named-capturing-groups-regex": "npm:^7.24.7" + "@babel/plugin-transform-nullish-coalescing-operator": "npm:^7.24.7" + "@babel/plugin-transform-numeric-separator": "npm:^7.24.7" + "@babel/plugin-transform-object-rest-spread": "npm:^7.24.7" + "@babel/plugin-transform-optional-catch-binding": "npm:^7.24.7" + "@babel/plugin-transform-optional-chaining": "npm:^7.24.8" + "@babel/plugin-transform-parameters": "npm:^7.24.7" + "@babel/plugin-transform-private-methods": "npm:^7.24.7" + "@babel/plugin-transform-private-property-in-object": "npm:^7.24.7" + "@babel/plugin-transform-react-display-name": "npm:^7.24.7" + "@babel/plugin-transform-react-jsx": "npm:^7.25.2" + "@babel/plugin-transform-react-jsx-self": "npm:^7.24.7" + "@babel/plugin-transform-react-jsx-source": "npm:^7.24.7" + "@babel/plugin-transform-regenerator": "npm:^7.24.7" + "@babel/plugin-transform-runtime": "npm:^7.24.7" + "@babel/plugin-transform-shorthand-properties": "npm:^7.24.7" + "@babel/plugin-transform-spread": "npm:^7.24.7" + "@babel/plugin-transform-sticky-regex": "npm:^7.24.7" + "@babel/plugin-transform-typescript": "npm:^7.25.2" + "@babel/plugin-transform-unicode-regex": "npm:^7.24.7" + "@babel/template": "npm:^7.25.0" + "@react-native/babel-plugin-codegen": "npm:0.76.5" + babel-plugin-syntax-hermes-parser: "npm:^0.25.1" + babel-plugin-transform-flow-enums: "npm:^0.0.2" + react-refresh: "npm:^0.14.0" + peerDependencies: + "@babel/core": "*" + checksum: 10c0/06fced0a8b804b66991b846048f99bdb0c510a84ff859d9dadeab5a51cc96313694a9c9ca0e3b304f12aa620f482cd6cc69e319f2b7fa500a1bd91a2d0e833ba + languageName: node + linkType: hard + +"@react-native/codegen@npm:0.76.5": + version: 0.76.5 + resolution: "@react-native/codegen@npm:0.76.5" + dependencies: + "@babel/parser": "npm:^7.25.3" + glob: "npm:^7.1.1" + hermes-parser: "npm:0.23.1" + invariant: "npm:^2.2.4" + jscodeshift: "npm:^0.14.0" + mkdirp: "npm:^0.5.1" + nullthrows: "npm:^1.1.1" + yargs: "npm:^17.6.2" + peerDependencies: + "@babel/preset-env": ^7.1.6 + checksum: 10c0/e4c160b0100bf0c44a6a621e1cf14fa50203671350a22da6d87d86af8427d24bc836ed6e8b6958438695655d2bea3bec19058587286e027c5f68477ca267067b + languageName: node + linkType: hard + "@rollup/pluginutils@npm:^5.0.2, @rollup/pluginutils@npm:^5.1.0": version: 5.1.0 resolution: "@rollup/pluginutils@npm:5.1.0" @@ -6719,7 +7426,9 @@ __metadata: "@storybook/react-vite": "workspace:*" "@types/node": "npm:^22.0.0" "@vitejs/plugin-react": "npm:^4.3.2" + babel-preset-expo: "npm:^12.0.4" typescript: "npm:^5.3.2" + vite-plugin-babel: "npm:^1.3.0" vite-tsconfig-paths: "npm:^5.1.4" peerDependencies: react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta @@ -10385,6 +11094,15 @@ __metadata: languageName: node linkType: hard +"ast-types@npm:0.15.2": + version: 0.15.2 + resolution: "ast-types@npm:0.15.2" + dependencies: + tslib: "npm:^2.0.1" + checksum: 10c0/5b26e3656e9e8d1db8c8d14971d0cb88ca0138aacce72171cb4cd4555fc8dc53c07e821c568e57fe147366931708fefd25cb9d7e880d42ce9cb569947844c962 + languageName: node + linkType: hard + "ast-types@npm:^0.16.1": version: 0.16.1 resolution: "ast-types@npm:0.16.1" @@ -10693,6 +11411,18 @@ __metadata: languageName: node linkType: hard +"babel-plugin-polyfill-corejs3@npm:^0.10.6": + version: 0.10.6 + resolution: "babel-plugin-polyfill-corejs3@npm:0.10.6" + dependencies: + "@babel/helper-define-polyfill-provider": "npm:^0.6.2" + core-js-compat: "npm:^3.38.0" + peerDependencies: + "@babel/core": ^7.4.0 || ^8.0.0-0 <8.0.0 + checksum: 10c0/3a69220471b07722c2ae6537310bf26b772514e12b601398082965459c838be70a0ca70b0662f0737070654ff6207673391221d48599abb4a2b27765206d9f79 + languageName: node + linkType: hard + "babel-plugin-polyfill-corejs3@npm:^0.9.0": version: 0.9.0 resolution: "babel-plugin-polyfill-corejs3@npm:0.9.0" @@ -10738,6 +11468,31 @@ __metadata: languageName: node linkType: hard +"babel-plugin-react-native-web@npm:~0.19.13": + version: 0.19.13 + resolution: "babel-plugin-react-native-web@npm:0.19.13" + checksum: 10c0/0710db342063182163d58febfb01ef510c9460f0500f9faaf47603d06dda37554f216e6123a099a343eb2067c2dfb43c9d4ca573a9d659662ca429048db11af4 + languageName: node + linkType: hard + +"babel-plugin-syntax-hermes-parser@npm:^0.25.1": + version: 0.25.1 + resolution: "babel-plugin-syntax-hermes-parser@npm:0.25.1" + dependencies: + hermes-parser: "npm:0.25.1" + checksum: 10c0/8f4a0cb65056162b2d4c64d0ccd4d2fdeac8218e83e0338e92564ead659fd9b9351277ed2a10e958d0d8dc4c60591d5b1a40aa425bf0cbf67224e9767c557abf + languageName: node + linkType: hard + +"babel-plugin-transform-flow-enums@npm:^0.0.2": + version: 0.0.2 + resolution: "babel-plugin-transform-flow-enums@npm:0.0.2" + dependencies: + "@babel/plugin-syntax-flow": "npm:^7.12.1" + checksum: 10c0/aa9d022d8d4be0e7c4f1ff7e5308fe7e0ff4d6f9099449913e3a11c1e81916623a8f36432da180a9aa3f53ea534dca4401fe33d6528f043f40357cfa790ee778 + languageName: node + linkType: hard + "babel-plugin-transform-typescript-metadata@npm:^0.3.1": version: 0.3.2 resolution: "babel-plugin-transform-typescript-metadata@npm:0.3.2" @@ -10747,6 +11502,31 @@ __metadata: languageName: node linkType: hard +"babel-preset-expo@npm:^12.0.4": + version: 12.0.4 + resolution: "babel-preset-expo@npm:12.0.4" + dependencies: + "@babel/plugin-proposal-decorators": "npm:^7.12.9" + "@babel/plugin-transform-export-namespace-from": "npm:^7.22.11" + "@babel/plugin-transform-object-rest-spread": "npm:^7.12.13" + "@babel/plugin-transform-parameters": "npm:^7.22.15" + "@babel/preset-react": "npm:^7.22.15" + "@babel/preset-typescript": "npm:^7.23.0" + "@react-native/babel-preset": "npm:0.76.5" + babel-plugin-react-native-web: "npm:~0.19.13" + react-refresh: "npm:^0.14.2" + peerDependencies: + babel-plugin-react-compiler: ^19.0.0-beta-9ee70a1-20241017 + react-compiler-runtime: ^19.0.0-beta-8a03594-20241020 + peerDependenciesMeta: + babel-plugin-react-compiler: + optional: true + react-compiler-runtime: + optional: true + checksum: 10c0/5fac764b42fb23f62ed0143d82bb76ed077b13f44f920041da48d9313eaf6308eaeab155da782611a50af9fc3af862caf5067768dd4dc1361fd001d3d461c7f9 + languageName: node + linkType: hard + "babel-walk@npm:3.0.0-canary-5": version: 3.0.0-canary-5 resolution: "babel-walk@npm:3.0.0-canary-5" @@ -11372,6 +12152,20 @@ __metadata: languageName: node linkType: hard +"browserslist@npm:^4.24.2": + version: 4.24.3 + resolution: "browserslist@npm:4.24.3" + dependencies: + caniuse-lite: "npm:^1.0.30001688" + electron-to-chromium: "npm:^1.5.73" + node-releases: "npm:^2.0.19" + update-browserslist-db: "npm:^1.1.1" + bin: + browserslist: cli.js + checksum: 10c0/bab261ef7b6e1656a719a9fa31240ae7ce4d5ba68e479f6b11e348d819346ab4c0ff6f4821f43adcc9c193a734b186775a83b37979e70a69d182965909fe569a + languageName: node + linkType: hard + "buffer-crc32@npm:^0.2.5": version: 0.2.13 resolution: "buffer-crc32@npm:0.2.13" @@ -11632,6 +12426,13 @@ __metadata: languageName: node linkType: hard +"caniuse-lite@npm:^1.0.30001688": + version: 1.0.30001690 + resolution: "caniuse-lite@npm:1.0.30001690" + checksum: 10c0/646bd469032afa90400a84dec30a2b00a6eda62c03ead358117e3f884cda8aacec02ec058a6dbee5eaf9714f83e483b9b0eb4fb42febb8076569f5ca40f1d347 + languageName: node + linkType: hard + "case-sensitive-paths-webpack-plugin@npm:^2.4.0": version: 2.4.0 resolution: "case-sensitive-paths-webpack-plugin@npm:2.4.0" @@ -12489,6 +13290,15 @@ __metadata: languageName: node linkType: hard +"core-js-compat@npm:^3.38.0": + version: 3.39.0 + resolution: "core-js-compat@npm:3.39.0" + dependencies: + browserslist: "npm:^4.24.2" + checksum: 10c0/880579a3dab235e3b6350f1e324269c600753b48e891ea859331618d5051e68b7a95db6a03ad2f3cc7df4397318c25a5bc7740562ad39e94f56568638d09d414 + languageName: node + linkType: hard + "core-js-pure@npm:^3.23.3": version: 3.33.0 resolution: "core-js-pure@npm:3.33.0" @@ -13686,6 +14496,13 @@ __metadata: languageName: node linkType: hard +"electron-to-chromium@npm:^1.5.73": + version: 1.5.76 + resolution: "electron-to-chromium@npm:1.5.76" + checksum: 10c0/5a977be9fd5810769a7b4eae0e4b41b6beca65f2b3f3b7442819f6c93366d767d183cfbf408714f944a9bf3aa304f8c9ab9d0cdfd8e878ab8f2cbb61f8b22acd + languageName: node + linkType: hard + "elliptic@npm:^6.5.3, elliptic@npm:^6.5.4": version: 6.5.4 resolution: "elliptic@npm:6.5.4" @@ -16448,7 +17265,7 @@ __metadata: languageName: node linkType: hard -"glob@npm:^7.1.2, glob@npm:^7.1.3, glob@npm:^7.1.4": +"glob@npm:^7.1.1, glob@npm:^7.1.2, glob@npm:^7.1.3, glob@npm:^7.1.4": version: 7.2.3 resolution: "glob@npm:7.2.3" dependencies: @@ -16978,6 +17795,13 @@ __metadata: languageName: node linkType: hard +"hermes-estree@npm:0.23.1": + version: 0.23.1 + resolution: "hermes-estree@npm:0.23.1" + checksum: 10c0/59ca9f3980419fcf511a172f0ee9960d86c8ba44ea8bc13d3bd0b6208e9540db1a0a9e46b0e797151f11b0e8e33b2bf850907aef4a5c9ac42c53809cefefc405 + languageName: node + linkType: hard + "hermes-estree@npm:0.25.1": version: 0.25.1 resolution: "hermes-estree@npm:0.25.1" @@ -16985,6 +17809,15 @@ __metadata: languageName: node linkType: hard +"hermes-parser@npm:0.23.1": + version: 0.23.1 + resolution: "hermes-parser@npm:0.23.1" + dependencies: + hermes-estree: "npm:0.23.1" + checksum: 10c0/56907e6136d2297543922dd9f8ee27378ef010c11dc1e0b4a0866faab2c527613b0edcda5e1ebc0daa0ca1ae6528734dfc479e18267aabe4dce0c7198217fd97 + languageName: node + linkType: hard + "hermes-parser@npm:0.25.1": version: 0.25.1 resolution: "hermes-parser@npm:0.25.1" @@ -18666,6 +19499,37 @@ __metadata: languageName: node linkType: hard +"jscodeshift@npm:^0.14.0": + version: 0.14.0 + resolution: "jscodeshift@npm:0.14.0" + dependencies: + "@babel/core": "npm:^7.13.16" + "@babel/parser": "npm:^7.13.16" + "@babel/plugin-proposal-class-properties": "npm:^7.13.0" + "@babel/plugin-proposal-nullish-coalescing-operator": "npm:^7.13.8" + "@babel/plugin-proposal-optional-chaining": "npm:^7.13.12" + "@babel/plugin-transform-modules-commonjs": "npm:^7.13.8" + "@babel/preset-flow": "npm:^7.13.13" + "@babel/preset-typescript": "npm:^7.13.0" + "@babel/register": "npm:^7.13.16" + babel-core: "npm:^7.0.0-bridge.0" + chalk: "npm:^4.1.2" + flow-parser: "npm:0.*" + graceful-fs: "npm:^4.2.4" + micromatch: "npm:^4.0.4" + neo-async: "npm:^2.5.0" + node-dir: "npm:^0.1.17" + recast: "npm:^0.21.0" + temp: "npm:^0.8.4" + write-file-atomic: "npm:^2.3.0" + peerDependencies: + "@babel/preset-env": ^7.1.6 + bin: + jscodeshift: bin/jscodeshift.js + checksum: 10c0/dab63bdb4b7e67d79634fcd3f5dc8b227146e9f68aa88700bc49c5a45b6339d05bd934a98aa53d29abd04f81237d010e7e037799471b2aab66ec7b9a7d752786 + languageName: node + linkType: hard + "jscodeshift@npm:^0.15.1": version: 0.15.1 resolution: "jscodeshift@npm:0.15.1" @@ -18717,7 +19581,7 @@ __metadata: languageName: node linkType: hard -"jsesc@npm:^3.0.2": +"jsesc@npm:^3.0.2, jsesc@npm:~3.0.2": version: 3.0.2 resolution: "jsesc@npm:3.0.2" bin: @@ -21708,6 +22572,13 @@ __metadata: languageName: node linkType: hard +"node-releases@npm:^2.0.19": + version: 2.0.19 + resolution: "node-releases@npm:2.0.19" + checksum: 10c0/52a0dbd25ccf545892670d1551690fe0facb6a471e15f2cfa1b20142a5b255b3aa254af5f59d6ecb69c2bec7390bc643c43aa63b13bf5e64b6075952e716b1aa + languageName: node + linkType: hard + "nopt@npm:^6.0.0": version: 6.0.0 resolution: "nopt@npm:6.0.0" @@ -21908,6 +22779,13 @@ __metadata: languageName: node linkType: hard +"nullthrows@npm:^1.1.1": + version: 1.1.1 + resolution: "nullthrows@npm:1.1.1" + checksum: 10c0/56f34bd7c3dcb3bd23481a277fa22918120459d3e9d95ca72976c72e9cac33a97483f0b95fc420e2eb546b9fe6db398273aba9a938650cdb8c98ee8f159dcb30 + languageName: node + linkType: hard + "nx@npm:20.2.2": version: 20.2.2 resolution: "nx@npm:20.2.2" @@ -24492,6 +25370,18 @@ __metadata: languageName: node linkType: hard +"recast@npm:^0.21.0": + version: 0.21.5 + resolution: "recast@npm:0.21.5" + dependencies: + ast-types: "npm:0.15.2" + esprima: "npm:~4.0.0" + source-map: "npm:~0.6.1" + tslib: "npm:^2.0.1" + checksum: 10c0/a45168c82195f24fa2c70293a624fece0069a2e8e8adb637f9963777735f81cb3bb62e55172db677ec3573b08b2daaf1eddd85b74da6fe0bd37c9b15eeaf94b4 + languageName: node + linkType: hard + "recast@npm:^0.23.1, recast@npm:^0.23.3, recast@npm:^0.23.5": version: 0.23.5 resolution: "recast@npm:0.23.5" @@ -24557,6 +25447,15 @@ __metadata: languageName: node linkType: hard +"regenerate-unicode-properties@npm:^10.2.0": + version: 10.2.0 + resolution: "regenerate-unicode-properties@npm:10.2.0" + dependencies: + regenerate: "npm:^1.4.2" + checksum: 10c0/5510785eeaf56bbfdf4e663d6753f125c08d2a372d4107bc1b756b7bf142e2ed80c2733a8b54e68fb309ba37690e66a0362699b0e21d5c1f0255dea1b00e6460 + languageName: node + linkType: hard + "regenerate@npm:^1.4.2": version: 1.4.2 resolution: "regenerate@npm:1.4.2" @@ -24644,6 +25543,38 @@ __metadata: languageName: node linkType: hard +"regexpu-core@npm:^6.2.0": + version: 6.2.0 + resolution: "regexpu-core@npm:6.2.0" + dependencies: + regenerate: "npm:^1.4.2" + regenerate-unicode-properties: "npm:^10.2.0" + regjsgen: "npm:^0.8.0" + regjsparser: "npm:^0.12.0" + unicode-match-property-ecmascript: "npm:^2.0.0" + unicode-match-property-value-ecmascript: "npm:^2.1.0" + checksum: 10c0/bbcb83a854bf96ce4005ee4e4618b71c889cda72674ce6092432f0039b47890c2d0dfeb9057d08d440999d9ea03879ebbb7f26ca005ccf94390e55c348859b98 + languageName: node + linkType: hard + +"regjsgen@npm:^0.8.0": + version: 0.8.0 + resolution: "regjsgen@npm:0.8.0" + checksum: 10c0/44f526c4fdbf0b29286101a282189e4dbb303f4013cf3fea058668d96d113b9180d3d03d1e13f6d4cbde38b7728bf951aecd9dc199938c080093a9a6f0d7a6bd + languageName: node + linkType: hard + +"regjsparser@npm:^0.12.0": + version: 0.12.0 + resolution: "regjsparser@npm:0.12.0" + dependencies: + jsesc: "npm:~3.0.2" + bin: + regjsparser: bin/parser + checksum: 10c0/99d3e4e10c8c7732eb7aa843b8da2fd8b647fe144d3711b480e4647dc3bff4b1e96691ccf17f3ace24aa866a50b064236177cb25e6e4fbbb18285d99edaed83b + languageName: node + linkType: hard + "regjsparser@npm:^0.9.1": version: 0.9.1 resolution: "regjsparser@npm:0.9.1" @@ -28762,6 +29693,16 @@ __metadata: languageName: node linkType: hard +"vite-plugin-babel@npm:^1.3.0": + version: 1.3.0 + resolution: "vite-plugin-babel@npm:1.3.0" + peerDependencies: + "@babel/core": ^7.0.0 + vite: ^2.7.0 || ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 + checksum: 10c0/1613c45ee220ffbad18aeacbbe395d4d346cbe7c971c7469b0cd96df422bd9d617821a40bacf3b6ea3e7c4ded43e6ccdfd17ec3c0899fee2835f56e8971c6b57 + languageName: node + linkType: hard + "vite-plugin-inspect@npm:^0.8.5": version: 0.8.5 resolution: "vite-plugin-inspect@npm:0.8.5" From 9149ae8795669bc9d0f6d38e3b68de1b09812c0a Mon Sep 17 00:00:00 2001 From: Daniel Williams <dannyhyunsoowilliams@gmail.com> Date: Sat, 4 Jan 2025 20:19:06 +0000 Subject: [PATCH 14/34] fix: comment --- code/frameworks/react-native-web-vite/src/preset.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/code/frameworks/react-native-web-vite/src/preset.ts b/code/frameworks/react-native-web-vite/src/preset.ts index f8a827e037ed..83a461964a60 100644 --- a/code/frameworks/react-native-web-vite/src/preset.ts +++ b/code/frameworks/react-native-web-vite/src/preset.ts @@ -107,6 +107,7 @@ export const viteFinal: StorybookConfig['viteFinal'] = async (config, options) = configFile: false, presets: [ [ + // using this preset is what makes reanimated work with this setup (one of the plugins in there probably) 'babel-preset-expo', { ...(pluginReactOptions.jsxImportSource From 7f181a04a38858c00259bc7384c891198672c855 Mon Sep 17 00:00:00 2001 From: Daniel Williams <dannyhyunsoowilliams@gmail.com> Date: Sat, 4 Jan 2025 20:22:09 +0000 Subject: [PATCH 15/34] fix: add dependency --- code/frameworks/react-native-web-vite/package.json | 1 + code/frameworks/react-native-web-vite/src/preset.ts | 2 ++ 2 files changed, 3 insertions(+) diff --git a/code/frameworks/react-native-web-vite/package.json b/code/frameworks/react-native-web-vite/package.json index ca83dd74e1fb..3fb8134776d9 100644 --- a/code/frameworks/react-native-web-vite/package.json +++ b/code/frameworks/react-native-web-vite/package.json @@ -59,6 +59,7 @@ "@storybook/react": "workspace:*", "@storybook/react-vite": "workspace:*", "@vitejs/plugin-react": "^4.3.2", + "babel-plugin-react-native-web": "^0.19.13", "babel-preset-expo": "^12.0.4", "vite-plugin-babel": "^1.3.0", "vite-tsconfig-paths": "^5.1.4" diff --git a/code/frameworks/react-native-web-vite/src/preset.ts b/code/frameworks/react-native-web-vite/src/preset.ts index 83a461964a60..30d5f2de974e 100644 --- a/code/frameworks/react-native-web-vite/src/preset.ts +++ b/code/frameworks/react-native-web-vite/src/preset.ts @@ -86,6 +86,7 @@ export const viteFinal: StorybookConfig['viteFinal'] = async (config, options) = ...pluginReactOptions.babel, babelrc: false, configFile: false, + // babel-plugin-react-native-web adds optimizations for react native web prod builds plugins: ['react-native-web', ...(pluginReactOptions.babel?.plugins || [])], }, }), @@ -120,6 +121,7 @@ export const viteFinal: StorybookConfig['viteFinal'] = async (config, options) = ], ...(pluginReactOptions.babel?.presets || []), ], + // babel-plugin-react-native-web adds optimizations for react native web prod builds plugins: ['react-native-web', ...(pluginReactOptions.babel?.plugins || [])], }, }) From 30ddce60c6ebad93eac5998dc68ad3d27239b678 Mon Sep 17 00:00:00 2001 From: Daniel Williams <dannyhyunsoowilliams@gmail.com> Date: Sat, 4 Jan 2025 23:25:28 +0000 Subject: [PATCH 16/34] fix: lock --- code/yarn.lock | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/code/yarn.lock b/code/yarn.lock index 97b0e56c6f5a..e73a10f8e95d 100644 --- a/code/yarn.lock +++ b/code/yarn.lock @@ -7426,6 +7426,7 @@ __metadata: "@storybook/react-vite": "workspace:*" "@types/node": "npm:^22.0.0" "@vitejs/plugin-react": "npm:^4.3.2" + babel-plugin-react-native-web: "npm:^0.19.13" babel-preset-expo: "npm:^12.0.4" typescript: "npm:^5.3.2" vite-plugin-babel: "npm:^1.3.0" @@ -11468,7 +11469,7 @@ __metadata: languageName: node linkType: hard -"babel-plugin-react-native-web@npm:~0.19.13": +"babel-plugin-react-native-web@npm:^0.19.13, babel-plugin-react-native-web@npm:~0.19.13": version: 0.19.13 resolution: "babel-plugin-react-native-web@npm:0.19.13" checksum: 10c0/0710db342063182163d58febfb01ef510c9460f0500f9faaf47603d06dda37554f216e6123a099a343eb2067c2dfb43c9d4ca573a9d659662ca429048db11af4 From 1fd15097c3c4b08b41de6b8ec4ad51a04c20451d Mon Sep 17 00:00:00 2001 From: Daniel Williams <dannyhyunsoowilliams@gmail.com> Date: Sun, 5 Jan 2025 13:15:35 +0000 Subject: [PATCH 17/34] fix: remove expo preset and reduce to just the important plugins --- .../react-native-web-vite/package.json | 4 +- .../react-native-web-vite/src/preset.ts | 41 +- code/yarn.lock | 880 +----------------- 3 files changed, 48 insertions(+), 877 deletions(-) diff --git a/code/frameworks/react-native-web-vite/package.json b/code/frameworks/react-native-web-vite/package.json index 3fb8134776d9..8dcdf6decac3 100644 --- a/code/frameworks/react-native-web-vite/package.json +++ b/code/frameworks/react-native-web-vite/package.json @@ -53,14 +53,14 @@ "prep": "jiti ../../../scripts/prepare/bundle.ts" }, "dependencies": { + "@babel/plugin-transform-modules-commonjs": "^7.26.3", + "@babel/preset-react": "^7.26.3", "@bunchtogether/vite-plugin-flow": "^1.0.2", "@joshwooding/vite-plugin-react-docgen-typescript": "0.4.2", "@storybook/builder-vite": "workspace:*", "@storybook/react": "workspace:*", "@storybook/react-vite": "workspace:*", "@vitejs/plugin-react": "^4.3.2", - "babel-plugin-react-native-web": "^0.19.13", - "babel-preset-expo": "^12.0.4", "vite-plugin-babel": "^1.3.0", "vite-tsconfig-paths": "^5.1.4" }, diff --git a/code/frameworks/react-native-web-vite/src/preset.ts b/code/frameworks/react-native-web-vite/src/preset.ts index 30d5f2de974e..2f49f97c9617 100644 --- a/code/frameworks/react-native-web-vite/src/preset.ts +++ b/code/frameworks/react-native-web-vite/src/preset.ts @@ -70,6 +70,8 @@ export const viteFinal: StorybookConfig['viteFinal'] = async (config, options) = const { pluginReactOptions = {} } = await options.presets.apply<FrameworkOptions>('frameworkOptions'); + const isDevelopment = options.configType !== 'PRODUCTION'; + const reactConfig = await reactViteFinal(config, options); const { plugins = [] } = reactConfig; @@ -80,14 +82,12 @@ export const viteFinal: StorybookConfig['viteFinal'] = async (config, options) = exclude: [/node_modules\/(?!react-native|@react-native)/], }), react({ - jsxRuntime: 'automatic', ...pluginReactOptions, + jsxRuntime: pluginReactOptions.jsxRuntime || 'automatic', babel: { - ...pluginReactOptions.babel, babelrc: false, configFile: false, - // babel-plugin-react-native-web adds optimizations for react native web prod builds - plugins: ['react-native-web', ...(pluginReactOptions.babel?.plugins || [])], + ...pluginReactOptions.babel, }, }), @@ -95,34 +95,37 @@ export const viteFinal: StorybookConfig['viteFinal'] = async (config, options) = // for transpiling node_modules. However we keep the react plugin to get the fast refresh // and other benefits babel({ - include: pluginReactOptions.include - ? pluginReactOptions.include - : [/node_modules\/(react-native|@react-native)/], + include: pluginReactOptions.include || [/node_modules\/(react-native|@react-native)/], // gesture handler is already transpiled - exclude: pluginReactOptions.exclude - ? pluginReactOptions.exclude - : [/node_modules\/(react-native-gesture-handler)/], + exclude: pluginReactOptions.exclude, babelConfig: { ...pluginReactOptions.babel, babelrc: false, configFile: false, presets: [ [ - // using this preset is what makes reanimated work with this setup (one of the plugins in there probably) - 'babel-preset-expo', + require('@babel/preset-react'), { - ...(pluginReactOptions.jsxImportSource - ? { jsxImportSource: pluginReactOptions.jsxImportSource } - : {}), - ...(pluginReactOptions.jsxRuntime - ? { jsxRuntime: pluginReactOptions.jsxRuntime } - : {}), + development: isDevelopment, + jsxRuntime: pluginReactOptions.jsxRuntime || 'automatic', + jsxImportSource: pluginReactOptions.jsxImportSource || 'react', }, ], ...(pluginReactOptions.babel?.presets || []), ], // babel-plugin-react-native-web adds optimizations for react native web prod builds - plugins: ['react-native-web', ...(pluginReactOptions.babel?.plugins || [])], + plugins: [ + [ + // this is a fix for reanimated not working in production + require('@babel/plugin-transform-modules-commonjs'), + { + strict: false, + strictMode: false, // prevent "use strict" injections + allowTopLevelThis: true, // dont rewrite global `this` -> `undefined` + }, + ], + ...(pluginReactOptions.babel?.plugins || []), + ], }, }) ); diff --git a/code/yarn.lock b/code/yarn.lock index e73a10f8e95d..0e87b9201c52 100644 --- a/code/yarn.lock +++ b/code/yarn.lock @@ -559,23 +559,6 @@ __metadata: languageName: node linkType: hard -"@babel/helper-create-class-features-plugin@npm:^7.25.9": - version: 7.25.9 - resolution: "@babel/helper-create-class-features-plugin@npm:7.25.9" - dependencies: - "@babel/helper-annotate-as-pure": "npm:^7.25.9" - "@babel/helper-member-expression-to-functions": "npm:^7.25.9" - "@babel/helper-optimise-call-expression": "npm:^7.25.9" - "@babel/helper-replace-supers": "npm:^7.25.9" - "@babel/helper-skip-transparent-expression-wrappers": "npm:^7.25.9" - "@babel/traverse": "npm:^7.25.9" - semver: "npm:^6.3.1" - peerDependencies: - "@babel/core": ^7.0.0 - checksum: 10c0/b2bdd39f38056a76b9ba00ec5b209dd84f5c5ebd998d0f4033cf0e73d5f2c357fbb49d1ce52db77a2709fb29ee22321f84a5734dc9914849bdfee9ad12ce8caf - languageName: node - linkType: hard - "@babel/helper-create-regexp-features-plugin@npm:^7.18.6, @babel/helper-create-regexp-features-plugin@npm:^7.24.7": version: 7.24.7 resolution: "@babel/helper-create-regexp-features-plugin@npm:7.24.7" @@ -589,19 +572,6 @@ __metadata: languageName: node linkType: hard -"@babel/helper-create-regexp-features-plugin@npm:^7.25.9": - version: 7.26.3 - resolution: "@babel/helper-create-regexp-features-plugin@npm:7.26.3" - dependencies: - "@babel/helper-annotate-as-pure": "npm:^7.25.9" - regexpu-core: "npm:^6.2.0" - semver: "npm:^6.3.1" - peerDependencies: - "@babel/core": ^7.0.0 - checksum: 10c0/266f30b99af621559467ed67634cb653408a9262930c0627c3d17691a9d477329fb4dabe4b1785cbf0490e892513d247836674271842d6a8da49fd0afae7d435 - languageName: node - linkType: hard - "@babel/helper-define-polyfill-provider@npm:^0.5.0": version: 0.5.0 resolution: "@babel/helper-define-polyfill-provider@npm:0.5.0" @@ -670,16 +640,6 @@ __metadata: languageName: node linkType: hard -"@babel/helper-member-expression-to-functions@npm:^7.25.9": - version: 7.25.9 - resolution: "@babel/helper-member-expression-to-functions@npm:7.25.9" - dependencies: - "@babel/traverse": "npm:^7.25.9" - "@babel/types": "npm:^7.25.9" - checksum: 10c0/e08c7616f111e1fb56f398365e78858e26e466d4ac46dff25921adc5ccae9b232f66e952a2f4162bbe336627ba336c7fd9eca4835b6548935973d3380d77eaff - languageName: node - linkType: hard - "@babel/helper-module-imports@npm:^7.16.7, @babel/helper-module-imports@npm:^7.22.15, @babel/helper-module-imports@npm:^7.24.3, @babel/helper-module-imports@npm:^7.24.7, @babel/helper-module-imports@npm:^7.25.9, @babel/helper-module-imports@npm:^7.8.3": version: 7.25.9 resolution: "@babel/helper-module-imports@npm:7.25.9" @@ -712,15 +672,6 @@ __metadata: languageName: node linkType: hard -"@babel/helper-optimise-call-expression@npm:^7.25.9": - version: 7.25.9 - resolution: "@babel/helper-optimise-call-expression@npm:7.25.9" - dependencies: - "@babel/types": "npm:^7.25.9" - checksum: 10c0/90203e6607edeadd2a154940803fd616c0ed92c1013d6774c4b8eb491f1a5a3448b68faae6268141caa5c456e55e3ee49a4ed2bd7ddaf2365daea321c435914c - languageName: node - linkType: hard - "@babel/helper-plugin-utils@npm:^7.0.0, @babel/helper-plugin-utils@npm:^7.10.4, @babel/helper-plugin-utils@npm:^7.12.13, @babel/helper-plugin-utils@npm:^7.14.5, @babel/helper-plugin-utils@npm:^7.18.6, @babel/helper-plugin-utils@npm:^7.20.2, @babel/helper-plugin-utils@npm:^7.22.5, @babel/helper-plugin-utils@npm:^7.24.0, @babel/helper-plugin-utils@npm:^7.24.7, @babel/helper-plugin-utils@npm:^7.25.9, @babel/helper-plugin-utils@npm:^7.8.0, @babel/helper-plugin-utils@npm:^7.8.3": version: 7.25.9 resolution: "@babel/helper-plugin-utils@npm:7.25.9" @@ -741,19 +692,6 @@ __metadata: languageName: node linkType: hard -"@babel/helper-remap-async-to-generator@npm:^7.25.9": - version: 7.25.9 - resolution: "@babel/helper-remap-async-to-generator@npm:7.25.9" - dependencies: - "@babel/helper-annotate-as-pure": "npm:^7.25.9" - "@babel/helper-wrap-function": "npm:^7.25.9" - "@babel/traverse": "npm:^7.25.9" - peerDependencies: - "@babel/core": ^7.0.0 - checksum: 10c0/6798b562f2788210980f29c5ee96056d90dc73458c88af5bd32f9c82e28e01975588aa2a57bb866c35556bd9b76bac937e824ee63ba472b6430224b91b4879e9 - languageName: node - linkType: hard - "@babel/helper-replace-supers@npm:^7.24.7": version: 7.24.7 resolution: "@babel/helper-replace-supers@npm:7.24.7" @@ -767,19 +705,6 @@ __metadata: languageName: node linkType: hard -"@babel/helper-replace-supers@npm:^7.25.9": - version: 7.25.9 - resolution: "@babel/helper-replace-supers@npm:7.25.9" - dependencies: - "@babel/helper-member-expression-to-functions": "npm:^7.25.9" - "@babel/helper-optimise-call-expression": "npm:^7.25.9" - "@babel/traverse": "npm:^7.25.9" - peerDependencies: - "@babel/core": ^7.0.0 - checksum: 10c0/0b40d7d2925bd3ba4223b3519e2e4d2456d471ad69aa458f1c1d1783c80b522c61f8237d3a52afc9e47c7174129bbba650df06393a6787d5722f2ec7f223c3f4 - languageName: node - linkType: hard - "@babel/helper-simple-access@npm:^7.24.7": version: 7.24.7 resolution: "@babel/helper-simple-access@npm:7.24.7" @@ -800,16 +725,6 @@ __metadata: languageName: node linkType: hard -"@babel/helper-skip-transparent-expression-wrappers@npm:^7.25.9": - version: 7.25.9 - resolution: "@babel/helper-skip-transparent-expression-wrappers@npm:7.25.9" - dependencies: - "@babel/traverse": "npm:^7.25.9" - "@babel/types": "npm:^7.25.9" - checksum: 10c0/09ace0c6156961624ac9524329ce7f45350bab94bbe24335cbe0da7dfaa1448e658771831983cb83fe91cf6635b15d0a3cab57c03b92657480bfb49fb56dd184 - languageName: node - linkType: hard - "@babel/helper-split-export-declaration@npm:7.22.6": version: 7.22.6 resolution: "@babel/helper-split-export-declaration@npm:7.22.6" @@ -861,17 +776,6 @@ __metadata: languageName: node linkType: hard -"@babel/helper-wrap-function@npm:^7.25.9": - version: 7.25.9 - resolution: "@babel/helper-wrap-function@npm:7.25.9" - dependencies: - "@babel/template": "npm:^7.25.9" - "@babel/traverse": "npm:^7.25.9" - "@babel/types": "npm:^7.25.9" - checksum: 10c0/b6627d83291e7b80df020f8ee2890c52b8d49272962cac0114ef90f189889c90f1027985873d1b5261a4e986e109b2754292dc112392f0b1fcbfc91cc08bd003 - languageName: node - linkType: hard - "@babel/helpers@npm:^7.23.9, @babel/helpers@npm:^7.24.0, @babel/helpers@npm:^7.26.0": version: 7.26.0 resolution: "@babel/helpers@npm:7.26.0" @@ -953,19 +857,6 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-proposal-decorators@npm:^7.12.9": - version: 7.25.9 - resolution: "@babel/plugin-proposal-decorators@npm:7.25.9" - dependencies: - "@babel/helper-create-class-features-plugin": "npm:^7.25.9" - "@babel/helper-plugin-utils": "npm:^7.25.9" - "@babel/plugin-syntax-decorators": "npm:^7.25.9" - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 10c0/d7d54644f50a60c47090d70121905ca76534bd7a837c03d25e163ca6ae384b48ef6dcfb125a99f12b3ce7e78e074a33f6fa8c4531c1a46aa31274153f587b05e - languageName: node - linkType: hard - "@babel/plugin-proposal-decorators@npm:^7.13.5, @babel/plugin-proposal-decorators@npm:^7.22.7": version: 7.24.0 resolution: "@babel/plugin-proposal-decorators@npm:7.24.0" @@ -979,17 +870,6 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-proposal-export-default-from@npm:^7.24.7": - version: 7.25.9 - resolution: "@babel/plugin-proposal-export-default-from@npm:7.25.9" - dependencies: - "@babel/helper-plugin-utils": "npm:^7.25.9" - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 10c0/6d7ca2d8179d97c38cbcc327129c70103b95797a048c6d244fa8f3eb35b8aebc8122957dc25f20d9923fe6e75f16e2a4d649f1d80a63a9fed2d8b9eda85bd650 - languageName: node - linkType: hard - "@babel/plugin-proposal-nullish-coalescing-operator@npm:^7.13.8": version: 7.18.6 resolution: "@babel/plugin-proposal-nullish-coalescing-operator@npm:7.18.6" @@ -1105,17 +985,6 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-syntax-decorators@npm:^7.25.9": - version: 7.25.9 - resolution: "@babel/plugin-syntax-decorators@npm:7.25.9" - dependencies: - "@babel/helper-plugin-utils": "npm:^7.25.9" - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 10c0/47e44a7d61b76dac4f18fd61edc186012e084eb8f1fe253c483b0fe90b73366b4ebd2b0b03728e000fd1fdedc8af3aa6e93246caf97183a8d9d42a0eb57ecfcc - languageName: node - linkType: hard - "@babel/plugin-syntax-dynamic-import@npm:^7.8.3": version: 7.8.3 resolution: "@babel/plugin-syntax-dynamic-import@npm:7.8.3" @@ -1127,17 +996,6 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-syntax-export-default-from@npm:^7.24.7": - version: 7.25.9 - resolution: "@babel/plugin-syntax-export-default-from@npm:7.25.9" - dependencies: - "@babel/helper-plugin-utils": "npm:^7.25.9" - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 10c0/10267af3a2bed893acb17b1e1e5e6a3aafcdcb202d54ac295bfa95ac11c66336a9c36cc73b4adc2b10a41a8ecc0c3390808ab16a99c24a76f8c74313ba32be63 - languageName: node - linkType: hard - "@babel/plugin-syntax-export-namespace-from@npm:^7.8.3": version: 7.8.3 resolution: "@babel/plugin-syntax-export-namespace-from@npm:7.8.3" @@ -1149,17 +1007,6 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-syntax-flow@npm:^7.12.1, @babel/plugin-syntax-flow@npm:^7.25.9": - version: 7.26.0 - resolution: "@babel/plugin-syntax-flow@npm:7.26.0" - dependencies: - "@babel/helper-plugin-utils": "npm:^7.25.9" - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 10c0/3d5cc1627a67af8be9df8cfe246869f18e7e9e2592f4b6f1c4bcd9bbe4ad27102784a25b31ebdbed23499ecb6fc23aaf7891ccf5ac3f432fd26a27123d1e242b - languageName: node - linkType: hard - "@babel/plugin-syntax-flow@npm:^7.22.5": version: 7.22.5 resolution: "@babel/plugin-syntax-flow@npm:7.22.5" @@ -1336,17 +1183,6 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-syntax-typescript@npm:^7.25.9": - version: 7.25.9 - resolution: "@babel/plugin-syntax-typescript@npm:7.25.9" - dependencies: - "@babel/helper-plugin-utils": "npm:^7.25.9" - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 10c0/5192ebe11bd46aea68b7a60fd9555465c59af7e279e71126788e59121b86e00b505816685ab4782abe159232b0f73854e804b54449820b0d950b397ee158caa2 - languageName: node - linkType: hard - "@babel/plugin-syntax-unicode-sets-regex@npm:^7.18.6": version: 7.18.6 resolution: "@babel/plugin-syntax-unicode-sets-regex@npm:7.18.6" @@ -1370,17 +1206,6 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-arrow-functions@npm:^7.24.7": - version: 7.25.9 - resolution: "@babel/plugin-transform-arrow-functions@npm:7.25.9" - dependencies: - "@babel/helper-plugin-utils": "npm:^7.25.9" - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 10c0/851fef9f58be60a80f46cc0ce1e46a6f7346a6f9d50fa9e0fa79d46ec205320069d0cc157db213e2bea88ef5b7d9bd7618bb83f0b1996a836e2426c3a3a1f622 - languageName: node - linkType: hard - "@babel/plugin-transform-async-generator-functions@npm:7.23.9": version: 7.23.9 resolution: "@babel/plugin-transform-async-generator-functions@npm:7.23.9" @@ -1409,19 +1234,6 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-async-generator-functions@npm:^7.25.4": - version: 7.25.9 - resolution: "@babel/plugin-transform-async-generator-functions@npm:7.25.9" - dependencies: - "@babel/helper-plugin-utils": "npm:^7.25.9" - "@babel/helper-remap-async-to-generator": "npm:^7.25.9" - "@babel/traverse": "npm:^7.25.9" - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 10c0/e3fcb9fc3d6ab6cbd4fcd956b48c17b5e92fe177553df266ffcd2b2c1f2f758b893e51b638e77ed867941e0436487d2b8b505908d615c41799241699b520dec6 - languageName: node - linkType: hard - "@babel/plugin-transform-async-to-generator@npm:7.23.3": version: 7.23.3 resolution: "@babel/plugin-transform-async-to-generator@npm:7.23.3" @@ -1448,19 +1260,6 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-async-to-generator@npm:^7.24.7": - version: 7.25.9 - resolution: "@babel/plugin-transform-async-to-generator@npm:7.25.9" - dependencies: - "@babel/helper-module-imports": "npm:^7.25.9" - "@babel/helper-plugin-utils": "npm:^7.25.9" - "@babel/helper-remap-async-to-generator": "npm:^7.25.9" - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 10c0/c443d9e462ddef733ae56360064f32fc800105803d892e4ff32d7d6a6922b3765fa97b9ddc9f7f1d3f9d8c2d95721d85bef9dbf507804214c6cf6466b105c168 - languageName: node - linkType: hard - "@babel/plugin-transform-block-scoped-functions@npm:^7.23.3, @babel/plugin-transform-block-scoped-functions@npm:^7.24.1": version: 7.24.7 resolution: "@babel/plugin-transform-block-scoped-functions@npm:7.24.7" @@ -1483,17 +1282,6 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-block-scoping@npm:^7.25.0": - version: 7.25.9 - resolution: "@babel/plugin-transform-block-scoping@npm:7.25.9" - dependencies: - "@babel/helper-plugin-utils": "npm:^7.25.9" - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 10c0/a76e30becb6c75b4d87a2cd53556fddb7c88ddd56bfadb965287fd944810ac159aa8eb5705366fc37336041f63154ed9fab3862fb10482a45bf5ede63fd55fda - languageName: node - linkType: hard - "@babel/plugin-transform-class-properties@npm:^7.22.5, @babel/plugin-transform-class-properties@npm:^7.23.3, @babel/plugin-transform-class-properties@npm:^7.24.1": version: 7.24.7 resolution: "@babel/plugin-transform-class-properties@npm:7.24.7" @@ -1506,18 +1294,6 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-class-properties@npm:^7.25.4": - version: 7.25.9 - resolution: "@babel/plugin-transform-class-properties@npm:7.25.9" - dependencies: - "@babel/helper-create-class-features-plugin": "npm:^7.25.9" - "@babel/helper-plugin-utils": "npm:^7.25.9" - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 10c0/f0603b6bd34d8ba62c03fc0572cb8bbc75874d097ac20cc7c5379e001081210a84dba1749e7123fca43b978382f605bb9973c99caf2c5b4c492d5c0a4a441150 - languageName: node - linkType: hard - "@babel/plugin-transform-class-static-block@npm:^7.23.4, @babel/plugin-transform-class-static-block@npm:^7.24.4": version: 7.24.7 resolution: "@babel/plugin-transform-class-static-block@npm:7.24.7" @@ -1549,22 +1325,6 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-classes@npm:^7.25.4": - version: 7.25.9 - resolution: "@babel/plugin-transform-classes@npm:7.25.9" - dependencies: - "@babel/helper-annotate-as-pure": "npm:^7.25.9" - "@babel/helper-compilation-targets": "npm:^7.25.9" - "@babel/helper-plugin-utils": "npm:^7.25.9" - "@babel/helper-replace-supers": "npm:^7.25.9" - "@babel/traverse": "npm:^7.25.9" - globals: "npm:^11.1.0" - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 10c0/02742ea7cd25be286c982e672619effca528d7a931626a6f3d6cea11852951b7ee973276127eaf6418ac0e18c4d749a16b520709c707e86a67012bd23ff2927d - languageName: node - linkType: hard - "@babel/plugin-transform-computed-properties@npm:^7.23.3, @babel/plugin-transform-computed-properties@npm:^7.24.1": version: 7.24.7 resolution: "@babel/plugin-transform-computed-properties@npm:7.24.7" @@ -1577,18 +1337,6 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-computed-properties@npm:^7.24.7": - version: 7.25.9 - resolution: "@babel/plugin-transform-computed-properties@npm:7.25.9" - dependencies: - "@babel/helper-plugin-utils": "npm:^7.25.9" - "@babel/template": "npm:^7.25.9" - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 10c0/948c0ae3ce0ba2375241d122a9bc7cda4a7ac8110bd8a62cd804bc46a5fdb7a7a42c7799c4cd972e14e0a579d2bd0999b92e53177b73f240bb0d4b09972c758b - languageName: node - linkType: hard - "@babel/plugin-transform-destructuring@npm:^7.23.3, @babel/plugin-transform-destructuring@npm:^7.24.1": version: 7.24.7 resolution: "@babel/plugin-transform-destructuring@npm:7.24.7" @@ -1600,17 +1348,6 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-destructuring@npm:^7.24.8": - version: 7.25.9 - resolution: "@babel/plugin-transform-destructuring@npm:7.25.9" - dependencies: - "@babel/helper-plugin-utils": "npm:^7.25.9" - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 10c0/7beec5fda665d108f69d5023aa7c298a1e566b973dd41290faa18aeea70f6f571295c1ece0a058f3ceb6c6c96de76de7cd34f5a227fbf09a1b8d8a735d28ca49 - languageName: node - linkType: hard - "@babel/plugin-transform-dotall-regex@npm:^7.23.3, @babel/plugin-transform-dotall-regex@npm:^7.24.1": version: 7.24.7 resolution: "@babel/plugin-transform-dotall-regex@npm:7.24.7" @@ -1658,17 +1395,6 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-export-namespace-from@npm:^7.22.11": - version: 7.25.9 - resolution: "@babel/plugin-transform-export-namespace-from@npm:7.25.9" - dependencies: - "@babel/helper-plugin-utils": "npm:^7.25.9" - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 10c0/f291ea2ec5f36de9028a00cbd5b32f08af281b8183bf047200ff001f4cb260be56f156b2449f42149448a4a033bd6e86a3a7f06d0c2825532eb0ae6b03058dfb - languageName: node - linkType: hard - "@babel/plugin-transform-export-namespace-from@npm:^7.23.4, @babel/plugin-transform-export-namespace-from@npm:^7.24.1": version: 7.24.7 resolution: "@babel/plugin-transform-export-namespace-from@npm:7.24.7" @@ -1693,18 +1419,6 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-flow-strip-types@npm:^7.25.2": - version: 7.25.9 - resolution: "@babel/plugin-transform-flow-strip-types@npm:7.25.9" - dependencies: - "@babel/helper-plugin-utils": "npm:^7.25.9" - "@babel/plugin-syntax-flow": "npm:^7.25.9" - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 10c0/d4b79769a5b8bfc1a0766ed2158417e7efa53cdb5776161f641a642019c0822a1288f2ccd36c16a4bca77c64ccf1bab7e36aa1419adc417606acc6eddc126339 - languageName: node - linkType: hard - "@babel/plugin-transform-for-of@npm:^7.23.6, @babel/plugin-transform-for-of@npm:^7.24.1": version: 7.24.7 resolution: "@babel/plugin-transform-for-of@npm:7.24.7" @@ -1717,18 +1431,6 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-for-of@npm:^7.24.7": - version: 7.25.9 - resolution: "@babel/plugin-transform-for-of@npm:7.25.9" - dependencies: - "@babel/helper-plugin-utils": "npm:^7.25.9" - "@babel/helper-skip-transparent-expression-wrappers": "npm:^7.25.9" - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 10c0/bf11abc71934a1f369f39cd7a33cf3d4dc5673026a53f70b7c1238c4fcc44e68b3ca1bdbe3db2076f60defb6ffe117cbe10b90f3e1a613b551d88f7c4e693bbe - languageName: node - linkType: hard - "@babel/plugin-transform-function-name@npm:^7.23.3, @babel/plugin-transform-function-name@npm:^7.24.1": version: 7.24.7 resolution: "@babel/plugin-transform-function-name@npm:7.24.7" @@ -1742,19 +1444,6 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-function-name@npm:^7.25.1": - version: 7.25.9 - resolution: "@babel/plugin-transform-function-name@npm:7.25.9" - dependencies: - "@babel/helper-compilation-targets": "npm:^7.25.9" - "@babel/helper-plugin-utils": "npm:^7.25.9" - "@babel/traverse": "npm:^7.25.9" - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 10c0/8e67fbd1dd367927b8b6afdf0a6e7cb3a3fd70766c52f700ca77428b6d536f6c9d7ec643e7762d64b23093233765c66bffa40e31aabe6492682879bcb45423e1 - languageName: node - linkType: hard - "@babel/plugin-transform-json-strings@npm:^7.23.4, @babel/plugin-transform-json-strings@npm:^7.24.1": version: 7.24.7 resolution: "@babel/plugin-transform-json-strings@npm:7.24.7" @@ -1778,17 +1467,6 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-literals@npm:^7.25.2": - version: 7.25.9 - resolution: "@babel/plugin-transform-literals@npm:7.25.9" - dependencies: - "@babel/helper-plugin-utils": "npm:^7.25.9" - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 10c0/00b14e9c14cf1e871c1f3781bf6334cac339c360404afd6aba63d2f6aca9270854d59a2b40abff1c4c90d4ffdca614440842d3043316c2f0ceb155fdf7726b3b - languageName: node - linkType: hard - "@babel/plugin-transform-logical-assignment-operators@npm:^7.23.4, @babel/plugin-transform-logical-assignment-operators@npm:^7.24.1": version: 7.24.7 resolution: "@babel/plugin-transform-logical-assignment-operators@npm:7.24.7" @@ -1801,17 +1479,6 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-logical-assignment-operators@npm:^7.24.7": - version: 7.25.9 - resolution: "@babel/plugin-transform-logical-assignment-operators@npm:7.25.9" - dependencies: - "@babel/helper-plugin-utils": "npm:^7.25.9" - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 10c0/6e2051e10b2d6452980fc4bdef9da17c0d6ca48f81b8529e8804b031950e4fff7c74a7eb3de4a2b6ad22ffb631d0b67005425d232cce6e2b29ce861c78ed04f5 - languageName: node - linkType: hard - "@babel/plugin-transform-member-expression-literals@npm:^7.23.3, @babel/plugin-transform-member-expression-literals@npm:^7.24.1": version: 7.24.7 resolution: "@babel/plugin-transform-member-expression-literals@npm:7.24.7" @@ -1848,7 +1515,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-modules-commonjs@npm:^7.24.8": +"@babel/plugin-transform-modules-commonjs@npm:^7.26.3": version: 7.26.3 resolution: "@babel/plugin-transform-modules-commonjs@npm:7.26.3" dependencies: @@ -1898,18 +1565,6 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-named-capturing-groups-regex@npm:^7.24.7": - version: 7.25.9 - resolution: "@babel/plugin-transform-named-capturing-groups-regex@npm:7.25.9" - dependencies: - "@babel/helper-create-regexp-features-plugin": "npm:^7.25.9" - "@babel/helper-plugin-utils": "npm:^7.25.9" - peerDependencies: - "@babel/core": ^7.0.0 - checksum: 10c0/32b14fda5c885d1706863f8af2ee6c703d39264355b57482d3a24fce7f6afbd4c7a0896e501c0806ed2b0759beb621bf7f3f7de1fbbc82026039a98d961e78ef - languageName: node - linkType: hard - "@babel/plugin-transform-new-target@npm:^7.23.3, @babel/plugin-transform-new-target@npm:^7.24.1": version: 7.24.7 resolution: "@babel/plugin-transform-new-target@npm:7.24.7" @@ -1933,17 +1588,6 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-nullish-coalescing-operator@npm:^7.24.7": - version: 7.25.9 - resolution: "@babel/plugin-transform-nullish-coalescing-operator@npm:7.25.9" - dependencies: - "@babel/helper-plugin-utils": "npm:^7.25.9" - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 10c0/eb623db5be078a1c974afe7c7797b0309ba2ea9e9237c0b6831ade0f56d8248bb4ab3432ab34495ff8c877ec2fe412ff779d1e9b3c2b8139da18e1753d950bc3 - languageName: node - linkType: hard - "@babel/plugin-transform-numeric-separator@npm:^7.23.4, @babel/plugin-transform-numeric-separator@npm:^7.24.1": version: 7.24.7 resolution: "@babel/plugin-transform-numeric-separator@npm:7.24.7" @@ -1956,17 +1600,6 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-numeric-separator@npm:^7.24.7": - version: 7.25.9 - resolution: "@babel/plugin-transform-numeric-separator@npm:7.25.9" - dependencies: - "@babel/helper-plugin-utils": "npm:^7.25.9" - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 10c0/ad63ad341977844b6f9535fcca15ca0d6d6ad112ed9cc509d4f6b75e9bf4b1b1a96a0bcb1986421a601505d34025373608b5f76d420d924b4e21f86b1a1f2749 - languageName: node - linkType: hard - "@babel/plugin-transform-object-assign@npm:^7.8.3": version: 7.22.5 resolution: "@babel/plugin-transform-object-assign@npm:7.22.5" @@ -1978,19 +1611,6 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-object-rest-spread@npm:^7.12.13, @babel/plugin-transform-object-rest-spread@npm:^7.24.7": - version: 7.25.9 - resolution: "@babel/plugin-transform-object-rest-spread@npm:7.25.9" - dependencies: - "@babel/helper-compilation-targets": "npm:^7.25.9" - "@babel/helper-plugin-utils": "npm:^7.25.9" - "@babel/plugin-transform-parameters": "npm:^7.25.9" - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 10c0/02077d8abd83bf6a48ff0b59e98d7561407cf75b591cffd3fdc5dc5e9a13dec1c847a7a690983762a3afecddb244831e897e0515c293e7c653b262c30cd614af - languageName: node - linkType: hard - "@babel/plugin-transform-object-rest-spread@npm:^7.24.0, @babel/plugin-transform-object-rest-spread@npm:^7.24.1": version: 7.24.7 resolution: "@babel/plugin-transform-object-rest-spread@npm:7.24.7" @@ -2029,17 +1649,6 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-optional-catch-binding@npm:^7.24.7": - version: 7.25.9 - resolution: "@babel/plugin-transform-optional-catch-binding@npm:7.25.9" - dependencies: - "@babel/helper-plugin-utils": "npm:^7.25.9" - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 10c0/722fd5ee12ab905309d4e84421584fce4b6d9e6b639b06afb20b23fa809e6ab251e908a8d5e8b14d066a28186b8ef8f58d69fd6eca9ce1b9ef7af08333378f6c - languageName: node - linkType: hard - "@babel/plugin-transform-optional-chaining@npm:^7.23.0, @babel/plugin-transform-optional-chaining@npm:^7.23.4, @babel/plugin-transform-optional-chaining@npm:^7.24.1, @babel/plugin-transform-optional-chaining@npm:^7.24.7": version: 7.24.7 resolution: "@babel/plugin-transform-optional-chaining@npm:7.24.7" @@ -2053,29 +1662,6 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-optional-chaining@npm:^7.24.8": - version: 7.25.9 - resolution: "@babel/plugin-transform-optional-chaining@npm:7.25.9" - dependencies: - "@babel/helper-plugin-utils": "npm:^7.25.9" - "@babel/helper-skip-transparent-expression-wrappers": "npm:^7.25.9" - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 10c0/041ad2beae5affb8e68a0bcb6882a2dadb758db3c629a0e012f57488ab43a822ac1ea17a29db8ef36560a28262a5dfa4dbbbf06ed6e431db55abe024b7cd3961 - languageName: node - linkType: hard - -"@babel/plugin-transform-parameters@npm:^7.22.15, @babel/plugin-transform-parameters@npm:^7.25.9": - version: 7.25.9 - resolution: "@babel/plugin-transform-parameters@npm:7.25.9" - dependencies: - "@babel/helper-plugin-utils": "npm:^7.25.9" - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 10c0/aecb446754b9e09d6b6fa95fd09e7cf682f8aaeed1d972874ba24c0a30a7e803ad5f014bb1fffc7bfeed22f93c0d200947407894ea59bf7687816f2f464f8df3 - languageName: node - linkType: hard - "@babel/plugin-transform-parameters@npm:^7.23.3, @babel/plugin-transform-parameters@npm:^7.24.1, @babel/plugin-transform-parameters@npm:^7.24.7": version: 7.24.7 resolution: "@babel/plugin-transform-parameters@npm:7.24.7" @@ -2099,18 +1685,6 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-private-methods@npm:^7.24.7": - version: 7.25.9 - resolution: "@babel/plugin-transform-private-methods@npm:7.25.9" - dependencies: - "@babel/helper-create-class-features-plugin": "npm:^7.25.9" - "@babel/helper-plugin-utils": "npm:^7.25.9" - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 10c0/64bd71de93d39daefa3e6c878d6f2fd238ed7d4ecfb13b0e771ddbbc131487def3ceb405b62b534a5cbb5043046b504e1b189b0a45229cc75af979a9fbcaa7bd - languageName: node - linkType: hard - "@babel/plugin-transform-private-property-in-object@npm:^7.23.4, @babel/plugin-transform-private-property-in-object@npm:^7.24.1": version: 7.24.7 resolution: "@babel/plugin-transform-private-property-in-object@npm:7.24.7" @@ -2125,19 +1699,6 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-private-property-in-object@npm:^7.24.7": - version: 7.25.9 - resolution: "@babel/plugin-transform-private-property-in-object@npm:7.25.9" - dependencies: - "@babel/helper-annotate-as-pure": "npm:^7.25.9" - "@babel/helper-create-class-features-plugin": "npm:^7.25.9" - "@babel/helper-plugin-utils": "npm:^7.25.9" - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 10c0/d4965de19d9f204e692cc74dbc39f0bb469e5f29df96dd4457ea23c5e5596fba9d5af76eaa96f9d48a9fc20ec5f12a94c679285e36b8373406868ea228109e27 - languageName: node - linkType: hard - "@babel/plugin-transform-property-literals@npm:^7.23.3, @babel/plugin-transform-property-literals@npm:^7.24.1": version: 7.24.7 resolution: "@babel/plugin-transform-property-literals@npm:7.24.7" @@ -2160,7 +1721,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-react-display-name@npm:^7.24.7, @babel/plugin-transform-react-display-name@npm:^7.25.9": +"@babel/plugin-transform-react-display-name@npm:^7.25.9": version: 7.25.9 resolution: "@babel/plugin-transform-react-display-name@npm:7.25.9" dependencies: @@ -2230,7 +1791,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-react-jsx@npm:^7.25.2, @babel/plugin-transform-react-jsx@npm:^7.25.9": +"@babel/plugin-transform-react-jsx@npm:^7.25.9": version: 7.25.9 resolution: "@babel/plugin-transform-react-jsx@npm:7.25.9" dependencies: @@ -2281,18 +1842,6 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-regenerator@npm:^7.24.7": - version: 7.25.9 - resolution: "@babel/plugin-transform-regenerator@npm:7.25.9" - dependencies: - "@babel/helper-plugin-utils": "npm:^7.25.9" - regenerator-transform: "npm:^0.15.2" - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 10c0/eef3ffc19f7d291b863635f32b896ad7f87806d9219a0d3404a470219abcfc5b43aabecd691026c48e875b965760d9c16abee25e6447272233f30cd07f453ec7 - languageName: node - linkType: hard - "@babel/plugin-transform-reserved-words@npm:^7.23.3, @babel/plugin-transform-reserved-words@npm:^7.24.1": version: 7.24.7 resolution: "@babel/plugin-transform-reserved-words@npm:7.24.7" @@ -2336,22 +1885,6 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-runtime@npm:^7.24.7": - version: 7.25.9 - resolution: "@babel/plugin-transform-runtime@npm:7.25.9" - dependencies: - "@babel/helper-module-imports": "npm:^7.25.9" - "@babel/helper-plugin-utils": "npm:^7.25.9" - babel-plugin-polyfill-corejs2: "npm:^0.4.10" - babel-plugin-polyfill-corejs3: "npm:^0.10.6" - babel-plugin-polyfill-regenerator: "npm:^0.6.1" - semver: "npm:^6.3.1" - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 10c0/888a4998ba0a2313de347954c9a8dfeccbff0633c69d33aee385b8878eba2b429dbfb00c3cc04f6bca454b9be8afa01ebbd73defb7fbbb6e2d3086205c07758b - languageName: node - linkType: hard - "@babel/plugin-transform-shorthand-properties@npm:^7.23.3, @babel/plugin-transform-shorthand-properties@npm:^7.24.1": version: 7.24.7 resolution: "@babel/plugin-transform-shorthand-properties@npm:7.24.7" @@ -2363,17 +1896,6 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-shorthand-properties@npm:^7.24.7": - version: 7.25.9 - resolution: "@babel/plugin-transform-shorthand-properties@npm:7.25.9" - dependencies: - "@babel/helper-plugin-utils": "npm:^7.25.9" - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 10c0/05a20d45f0fb62567644c507ccd4e379c1a74dacf887d2b2cac70247415e3f6d7d3bf4850c8b336053144715fedb6200fc38f7130c4b76c94eec9b9c0c2a8e9b - languageName: node - linkType: hard - "@babel/plugin-transform-spread@npm:^7.23.3, @babel/plugin-transform-spread@npm:^7.24.1": version: 7.24.7 resolution: "@babel/plugin-transform-spread@npm:7.24.7" @@ -2386,18 +1908,6 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-spread@npm:^7.24.7": - version: 7.25.9 - resolution: "@babel/plugin-transform-spread@npm:7.25.9" - dependencies: - "@babel/helper-plugin-utils": "npm:^7.25.9" - "@babel/helper-skip-transparent-expression-wrappers": "npm:^7.25.9" - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 10c0/996c8fed238efc30e0664f9f58bd7ec8c148f4659f84425f68923a094fe891245711d26eb10d1f815f50c124434e076e860dbe9662240844d1b77cd09907dcdf - languageName: node - linkType: hard - "@babel/plugin-transform-sticky-regex@npm:^7.23.3, @babel/plugin-transform-sticky-regex@npm:^7.24.1": version: 7.24.7 resolution: "@babel/plugin-transform-sticky-regex@npm:7.24.7" @@ -2409,17 +1919,6 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-sticky-regex@npm:^7.24.7": - version: 7.25.9 - resolution: "@babel/plugin-transform-sticky-regex@npm:7.25.9" - dependencies: - "@babel/helper-plugin-utils": "npm:^7.25.9" - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 10c0/e9612b0615dab4c4fba1c560769616a9bd7b9226c73191ef84b6c3ee185c8b719b4f887cdd8336a0a13400ce606ab4a0d33bc8fa6b4fcdb53e2896d07f2568f6 - languageName: node - linkType: hard - "@babel/plugin-transform-template-literals@npm:^7.23.3, @babel/plugin-transform-template-literals@npm:^7.24.1": version: 7.24.7 resolution: "@babel/plugin-transform-template-literals@npm:7.24.7" @@ -2456,21 +1955,6 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-typescript@npm:^7.25.2": - version: 7.26.3 - resolution: "@babel/plugin-transform-typescript@npm:7.26.3" - dependencies: - "@babel/helper-annotate-as-pure": "npm:^7.25.9" - "@babel/helper-create-class-features-plugin": "npm:^7.25.9" - "@babel/helper-plugin-utils": "npm:^7.25.9" - "@babel/helper-skip-transparent-expression-wrappers": "npm:^7.25.9" - "@babel/plugin-syntax-typescript": "npm:^7.25.9" - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 10c0/0a0509ec56666fab5b557d573254665956a377916fc1e7cee309c0711d11257338ba7ee678db03603a3985d2c6c0b210b788fb6b9616d8fc0595469e39089a8f - languageName: node - linkType: hard - "@babel/plugin-transform-unicode-escapes@npm:^7.23.3, @babel/plugin-transform-unicode-escapes@npm:^7.24.1": version: 7.24.7 resolution: "@babel/plugin-transform-unicode-escapes@npm:7.24.7" @@ -2506,18 +1990,6 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-unicode-regex@npm:^7.24.7": - version: 7.25.9 - resolution: "@babel/plugin-transform-unicode-regex@npm:7.25.9" - dependencies: - "@babel/helper-create-regexp-features-plugin": "npm:^7.25.9" - "@babel/helper-plugin-utils": "npm:^7.25.9" - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 10c0/448004f978279e726af26acd54f63f9002c9e2582ecd70d1c5c4436f6de490fcd817afb60016d11c52f5ef17dbaac2590e8cc7bfaf4e91b58c452cf188c7920f - languageName: node - linkType: hard - "@babel/plugin-transform-unicode-sets-regex@npm:^7.23.3, @babel/plugin-transform-unicode-sets-regex@npm:^7.24.1": version: 7.24.7 resolution: "@babel/plugin-transform-unicode-sets-regex@npm:7.24.7" @@ -2747,22 +2219,6 @@ __metadata: languageName: node linkType: hard -"@babel/preset-react@npm:^7.22.15": - version: 7.26.3 - resolution: "@babel/preset-react@npm:7.26.3" - dependencies: - "@babel/helper-plugin-utils": "npm:^7.25.9" - "@babel/helper-validator-option": "npm:^7.25.9" - "@babel/plugin-transform-react-display-name": "npm:^7.25.9" - "@babel/plugin-transform-react-jsx": "npm:^7.25.9" - "@babel/plugin-transform-react-jsx-development": "npm:^7.25.9" - "@babel/plugin-transform-react-pure-annotations": "npm:^7.25.9" - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 10c0/b470dcba11032ef6c832066f4af5c75052eaed49feb0f445227231ef1b5c42aacd6e216988c0bd469fd5728cd27b6b059ca307c9ecaa80c6bb5da4bf1c833e12 - languageName: node - linkType: hard - "@babel/preset-react@npm:^7.24.1": version: 7.24.1 resolution: "@babel/preset-react@npm:7.24.1" @@ -2779,6 +2235,22 @@ __metadata: languageName: node linkType: hard +"@babel/preset-react@npm:^7.26.3": + version: 7.26.3 + resolution: "@babel/preset-react@npm:7.26.3" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.25.9" + "@babel/helper-validator-option": "npm:^7.25.9" + "@babel/plugin-transform-react-display-name": "npm:^7.25.9" + "@babel/plugin-transform-react-jsx": "npm:^7.25.9" + "@babel/plugin-transform-react-jsx-development": "npm:^7.25.9" + "@babel/plugin-transform-react-pure-annotations": "npm:^7.25.9" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10c0/b470dcba11032ef6c832066f4af5c75052eaed49feb0f445227231ef1b5c42aacd6e216988c0bd469fd5728cd27b6b059ca307c9ecaa80c6bb5da4bf1c833e12 + languageName: node + linkType: hard + "@babel/preset-typescript@npm:^7.13.0, @babel/preset-typescript@npm:^7.22.5, @babel/preset-typescript@npm:^7.23.0, @babel/preset-typescript@npm:^7.24.1": version: 7.24.1 resolution: "@babel/preset-typescript@npm:7.24.1" @@ -2861,7 +2333,7 @@ __metadata: languageName: node linkType: hard -"@babel/template@npm:^7.23.9, @babel/template@npm:^7.24.0, @babel/template@npm:^7.24.7, @babel/template@npm:^7.25.0, @babel/template@npm:^7.25.9": +"@babel/template@npm:^7.23.9, @babel/template@npm:^7.24.0, @babel/template@npm:^7.24.7, @babel/template@npm:^7.25.9": version: 7.25.9 resolution: "@babel/template@npm:7.25.9" dependencies: @@ -5720,88 +5192,6 @@ __metadata: languageName: node linkType: hard -"@react-native/babel-plugin-codegen@npm:0.76.5": - version: 0.76.5 - resolution: "@react-native/babel-plugin-codegen@npm:0.76.5" - dependencies: - "@react-native/codegen": "npm:0.76.5" - checksum: 10c0/f853d7b4f0114a5443128af4813ea473542db4470e55f2962b94578c587c47347745e4b23819dec147d4b3926a0eecf36389ce01af286923436cb859a7b4a481 - languageName: node - linkType: hard - -"@react-native/babel-preset@npm:0.76.5": - version: 0.76.5 - resolution: "@react-native/babel-preset@npm:0.76.5" - dependencies: - "@babel/core": "npm:^7.25.2" - "@babel/plugin-proposal-export-default-from": "npm:^7.24.7" - "@babel/plugin-syntax-dynamic-import": "npm:^7.8.3" - "@babel/plugin-syntax-export-default-from": "npm:^7.24.7" - "@babel/plugin-syntax-nullish-coalescing-operator": "npm:^7.8.3" - "@babel/plugin-syntax-optional-chaining": "npm:^7.8.3" - "@babel/plugin-transform-arrow-functions": "npm:^7.24.7" - "@babel/plugin-transform-async-generator-functions": "npm:^7.25.4" - "@babel/plugin-transform-async-to-generator": "npm:^7.24.7" - "@babel/plugin-transform-block-scoping": "npm:^7.25.0" - "@babel/plugin-transform-class-properties": "npm:^7.25.4" - "@babel/plugin-transform-classes": "npm:^7.25.4" - "@babel/plugin-transform-computed-properties": "npm:^7.24.7" - "@babel/plugin-transform-destructuring": "npm:^7.24.8" - "@babel/plugin-transform-flow-strip-types": "npm:^7.25.2" - "@babel/plugin-transform-for-of": "npm:^7.24.7" - "@babel/plugin-transform-function-name": "npm:^7.25.1" - "@babel/plugin-transform-literals": "npm:^7.25.2" - "@babel/plugin-transform-logical-assignment-operators": "npm:^7.24.7" - "@babel/plugin-transform-modules-commonjs": "npm:^7.24.8" - "@babel/plugin-transform-named-capturing-groups-regex": "npm:^7.24.7" - "@babel/plugin-transform-nullish-coalescing-operator": "npm:^7.24.7" - "@babel/plugin-transform-numeric-separator": "npm:^7.24.7" - "@babel/plugin-transform-object-rest-spread": "npm:^7.24.7" - "@babel/plugin-transform-optional-catch-binding": "npm:^7.24.7" - "@babel/plugin-transform-optional-chaining": "npm:^7.24.8" - "@babel/plugin-transform-parameters": "npm:^7.24.7" - "@babel/plugin-transform-private-methods": "npm:^7.24.7" - "@babel/plugin-transform-private-property-in-object": "npm:^7.24.7" - "@babel/plugin-transform-react-display-name": "npm:^7.24.7" - "@babel/plugin-transform-react-jsx": "npm:^7.25.2" - "@babel/plugin-transform-react-jsx-self": "npm:^7.24.7" - "@babel/plugin-transform-react-jsx-source": "npm:^7.24.7" - "@babel/plugin-transform-regenerator": "npm:^7.24.7" - "@babel/plugin-transform-runtime": "npm:^7.24.7" - "@babel/plugin-transform-shorthand-properties": "npm:^7.24.7" - "@babel/plugin-transform-spread": "npm:^7.24.7" - "@babel/plugin-transform-sticky-regex": "npm:^7.24.7" - "@babel/plugin-transform-typescript": "npm:^7.25.2" - "@babel/plugin-transform-unicode-regex": "npm:^7.24.7" - "@babel/template": "npm:^7.25.0" - "@react-native/babel-plugin-codegen": "npm:0.76.5" - babel-plugin-syntax-hermes-parser: "npm:^0.25.1" - babel-plugin-transform-flow-enums: "npm:^0.0.2" - react-refresh: "npm:^0.14.0" - peerDependencies: - "@babel/core": "*" - checksum: 10c0/06fced0a8b804b66991b846048f99bdb0c510a84ff859d9dadeab5a51cc96313694a9c9ca0e3b304f12aa620f482cd6cc69e319f2b7fa500a1bd91a2d0e833ba - languageName: node - linkType: hard - -"@react-native/codegen@npm:0.76.5": - version: 0.76.5 - resolution: "@react-native/codegen@npm:0.76.5" - dependencies: - "@babel/parser": "npm:^7.25.3" - glob: "npm:^7.1.1" - hermes-parser: "npm:0.23.1" - invariant: "npm:^2.2.4" - jscodeshift: "npm:^0.14.0" - mkdirp: "npm:^0.5.1" - nullthrows: "npm:^1.1.1" - yargs: "npm:^17.6.2" - peerDependencies: - "@babel/preset-env": ^7.1.6 - checksum: 10c0/e4c160b0100bf0c44a6a621e1cf14fa50203671350a22da6d87d86af8427d24bc836ed6e8b6958438695655d2bea3bec19058587286e027c5f68477ca267067b - languageName: node - linkType: hard - "@rollup/pluginutils@npm:^5.0.2, @rollup/pluginutils@npm:^5.1.0": version: 5.1.0 resolution: "@rollup/pluginutils@npm:5.1.0" @@ -7419,6 +6809,8 @@ __metadata: version: 0.0.0-use.local resolution: "@storybook/react-native-web-vite@workspace:frameworks/react-native-web-vite" dependencies: + "@babel/plugin-transform-modules-commonjs": "npm:^7.26.3" + "@babel/preset-react": "npm:^7.26.3" "@bunchtogether/vite-plugin-flow": "npm:^1.0.2" "@joshwooding/vite-plugin-react-docgen-typescript": "npm:0.4.2" "@storybook/builder-vite": "workspace:*" @@ -7426,8 +6818,6 @@ __metadata: "@storybook/react-vite": "workspace:*" "@types/node": "npm:^22.0.0" "@vitejs/plugin-react": "npm:^4.3.2" - babel-plugin-react-native-web: "npm:^0.19.13" - babel-preset-expo: "npm:^12.0.4" typescript: "npm:^5.3.2" vite-plugin-babel: "npm:^1.3.0" vite-tsconfig-paths: "npm:^5.1.4" @@ -11095,15 +10485,6 @@ __metadata: languageName: node linkType: hard -"ast-types@npm:0.15.2": - version: 0.15.2 - resolution: "ast-types@npm:0.15.2" - dependencies: - tslib: "npm:^2.0.1" - checksum: 10c0/5b26e3656e9e8d1db8c8d14971d0cb88ca0138aacce72171cb4cd4555fc8dc53c07e821c568e57fe147366931708fefd25cb9d7e880d42ce9cb569947844c962 - languageName: node - linkType: hard - "ast-types@npm:^0.16.1": version: 0.16.1 resolution: "ast-types@npm:0.16.1" @@ -11412,18 +10793,6 @@ __metadata: languageName: node linkType: hard -"babel-plugin-polyfill-corejs3@npm:^0.10.6": - version: 0.10.6 - resolution: "babel-plugin-polyfill-corejs3@npm:0.10.6" - dependencies: - "@babel/helper-define-polyfill-provider": "npm:^0.6.2" - core-js-compat: "npm:^3.38.0" - peerDependencies: - "@babel/core": ^7.4.0 || ^8.0.0-0 <8.0.0 - checksum: 10c0/3a69220471b07722c2ae6537310bf26b772514e12b601398082965459c838be70a0ca70b0662f0737070654ff6207673391221d48599abb4a2b27765206d9f79 - languageName: node - linkType: hard - "babel-plugin-polyfill-corejs3@npm:^0.9.0": version: 0.9.0 resolution: "babel-plugin-polyfill-corejs3@npm:0.9.0" @@ -11469,31 +10838,6 @@ __metadata: languageName: node linkType: hard -"babel-plugin-react-native-web@npm:^0.19.13, babel-plugin-react-native-web@npm:~0.19.13": - version: 0.19.13 - resolution: "babel-plugin-react-native-web@npm:0.19.13" - checksum: 10c0/0710db342063182163d58febfb01ef510c9460f0500f9faaf47603d06dda37554f216e6123a099a343eb2067c2dfb43c9d4ca573a9d659662ca429048db11af4 - languageName: node - linkType: hard - -"babel-plugin-syntax-hermes-parser@npm:^0.25.1": - version: 0.25.1 - resolution: "babel-plugin-syntax-hermes-parser@npm:0.25.1" - dependencies: - hermes-parser: "npm:0.25.1" - checksum: 10c0/8f4a0cb65056162b2d4c64d0ccd4d2fdeac8218e83e0338e92564ead659fd9b9351277ed2a10e958d0d8dc4c60591d5b1a40aa425bf0cbf67224e9767c557abf - languageName: node - linkType: hard - -"babel-plugin-transform-flow-enums@npm:^0.0.2": - version: 0.0.2 - resolution: "babel-plugin-transform-flow-enums@npm:0.0.2" - dependencies: - "@babel/plugin-syntax-flow": "npm:^7.12.1" - checksum: 10c0/aa9d022d8d4be0e7c4f1ff7e5308fe7e0ff4d6f9099449913e3a11c1e81916623a8f36432da180a9aa3f53ea534dca4401fe33d6528f043f40357cfa790ee778 - languageName: node - linkType: hard - "babel-plugin-transform-typescript-metadata@npm:^0.3.1": version: 0.3.2 resolution: "babel-plugin-transform-typescript-metadata@npm:0.3.2" @@ -11503,31 +10847,6 @@ __metadata: languageName: node linkType: hard -"babel-preset-expo@npm:^12.0.4": - version: 12.0.4 - resolution: "babel-preset-expo@npm:12.0.4" - dependencies: - "@babel/plugin-proposal-decorators": "npm:^7.12.9" - "@babel/plugin-transform-export-namespace-from": "npm:^7.22.11" - "@babel/plugin-transform-object-rest-spread": "npm:^7.12.13" - "@babel/plugin-transform-parameters": "npm:^7.22.15" - "@babel/preset-react": "npm:^7.22.15" - "@babel/preset-typescript": "npm:^7.23.0" - "@react-native/babel-preset": "npm:0.76.5" - babel-plugin-react-native-web: "npm:~0.19.13" - react-refresh: "npm:^0.14.2" - peerDependencies: - babel-plugin-react-compiler: ^19.0.0-beta-9ee70a1-20241017 - react-compiler-runtime: ^19.0.0-beta-8a03594-20241020 - peerDependenciesMeta: - babel-plugin-react-compiler: - optional: true - react-compiler-runtime: - optional: true - checksum: 10c0/5fac764b42fb23f62ed0143d82bb76ed077b13f44f920041da48d9313eaf6308eaeab155da782611a50af9fc3af862caf5067768dd4dc1361fd001d3d461c7f9 - languageName: node - linkType: hard - "babel-walk@npm:3.0.0-canary-5": version: 3.0.0-canary-5 resolution: "babel-walk@npm:3.0.0-canary-5" @@ -12153,20 +11472,6 @@ __metadata: languageName: node linkType: hard -"browserslist@npm:^4.24.2": - version: 4.24.3 - resolution: "browserslist@npm:4.24.3" - dependencies: - caniuse-lite: "npm:^1.0.30001688" - electron-to-chromium: "npm:^1.5.73" - node-releases: "npm:^2.0.19" - update-browserslist-db: "npm:^1.1.1" - bin: - browserslist: cli.js - checksum: 10c0/bab261ef7b6e1656a719a9fa31240ae7ce4d5ba68e479f6b11e348d819346ab4c0ff6f4821f43adcc9c193a734b186775a83b37979e70a69d182965909fe569a - languageName: node - linkType: hard - "buffer-crc32@npm:^0.2.5": version: 0.2.13 resolution: "buffer-crc32@npm:0.2.13" @@ -12427,13 +11732,6 @@ __metadata: languageName: node linkType: hard -"caniuse-lite@npm:^1.0.30001688": - version: 1.0.30001690 - resolution: "caniuse-lite@npm:1.0.30001690" - checksum: 10c0/646bd469032afa90400a84dec30a2b00a6eda62c03ead358117e3f884cda8aacec02ec058a6dbee5eaf9714f83e483b9b0eb4fb42febb8076569f5ca40f1d347 - languageName: node - linkType: hard - "case-sensitive-paths-webpack-plugin@npm:^2.4.0": version: 2.4.0 resolution: "case-sensitive-paths-webpack-plugin@npm:2.4.0" @@ -13291,15 +12589,6 @@ __metadata: languageName: node linkType: hard -"core-js-compat@npm:^3.38.0": - version: 3.39.0 - resolution: "core-js-compat@npm:3.39.0" - dependencies: - browserslist: "npm:^4.24.2" - checksum: 10c0/880579a3dab235e3b6350f1e324269c600753b48e891ea859331618d5051e68b7a95db6a03ad2f3cc7df4397318c25a5bc7740562ad39e94f56568638d09d414 - languageName: node - linkType: hard - "core-js-pure@npm:^3.23.3": version: 3.33.0 resolution: "core-js-pure@npm:3.33.0" @@ -14497,13 +13786,6 @@ __metadata: languageName: node linkType: hard -"electron-to-chromium@npm:^1.5.73": - version: 1.5.76 - resolution: "electron-to-chromium@npm:1.5.76" - checksum: 10c0/5a977be9fd5810769a7b4eae0e4b41b6beca65f2b3f3b7442819f6c93366d767d183cfbf408714f944a9bf3aa304f8c9ab9d0cdfd8e878ab8f2cbb61f8b22acd - languageName: node - linkType: hard - "elliptic@npm:^6.5.3, elliptic@npm:^6.5.4": version: 6.5.4 resolution: "elliptic@npm:6.5.4" @@ -17266,7 +16548,7 @@ __metadata: languageName: node linkType: hard -"glob@npm:^7.1.1, glob@npm:^7.1.2, glob@npm:^7.1.3, glob@npm:^7.1.4": +"glob@npm:^7.1.2, glob@npm:^7.1.3, glob@npm:^7.1.4": version: 7.2.3 resolution: "glob@npm:7.2.3" dependencies: @@ -17796,13 +17078,6 @@ __metadata: languageName: node linkType: hard -"hermes-estree@npm:0.23.1": - version: 0.23.1 - resolution: "hermes-estree@npm:0.23.1" - checksum: 10c0/59ca9f3980419fcf511a172f0ee9960d86c8ba44ea8bc13d3bd0b6208e9540db1a0a9e46b0e797151f11b0e8e33b2bf850907aef4a5c9ac42c53809cefefc405 - languageName: node - linkType: hard - "hermes-estree@npm:0.25.1": version: 0.25.1 resolution: "hermes-estree@npm:0.25.1" @@ -17810,15 +17085,6 @@ __metadata: languageName: node linkType: hard -"hermes-parser@npm:0.23.1": - version: 0.23.1 - resolution: "hermes-parser@npm:0.23.1" - dependencies: - hermes-estree: "npm:0.23.1" - checksum: 10c0/56907e6136d2297543922dd9f8ee27378ef010c11dc1e0b4a0866faab2c527613b0edcda5e1ebc0daa0ca1ae6528734dfc479e18267aabe4dce0c7198217fd97 - languageName: node - linkType: hard - "hermes-parser@npm:0.25.1": version: 0.25.1 resolution: "hermes-parser@npm:0.25.1" @@ -19500,37 +18766,6 @@ __metadata: languageName: node linkType: hard -"jscodeshift@npm:^0.14.0": - version: 0.14.0 - resolution: "jscodeshift@npm:0.14.0" - dependencies: - "@babel/core": "npm:^7.13.16" - "@babel/parser": "npm:^7.13.16" - "@babel/plugin-proposal-class-properties": "npm:^7.13.0" - "@babel/plugin-proposal-nullish-coalescing-operator": "npm:^7.13.8" - "@babel/plugin-proposal-optional-chaining": "npm:^7.13.12" - "@babel/plugin-transform-modules-commonjs": "npm:^7.13.8" - "@babel/preset-flow": "npm:^7.13.13" - "@babel/preset-typescript": "npm:^7.13.0" - "@babel/register": "npm:^7.13.16" - babel-core: "npm:^7.0.0-bridge.0" - chalk: "npm:^4.1.2" - flow-parser: "npm:0.*" - graceful-fs: "npm:^4.2.4" - micromatch: "npm:^4.0.4" - neo-async: "npm:^2.5.0" - node-dir: "npm:^0.1.17" - recast: "npm:^0.21.0" - temp: "npm:^0.8.4" - write-file-atomic: "npm:^2.3.0" - peerDependencies: - "@babel/preset-env": ^7.1.6 - bin: - jscodeshift: bin/jscodeshift.js - checksum: 10c0/dab63bdb4b7e67d79634fcd3f5dc8b227146e9f68aa88700bc49c5a45b6339d05bd934a98aa53d29abd04f81237d010e7e037799471b2aab66ec7b9a7d752786 - languageName: node - linkType: hard - "jscodeshift@npm:^0.15.1": version: 0.15.1 resolution: "jscodeshift@npm:0.15.1" @@ -19582,7 +18817,7 @@ __metadata: languageName: node linkType: hard -"jsesc@npm:^3.0.2, jsesc@npm:~3.0.2": +"jsesc@npm:^3.0.2": version: 3.0.2 resolution: "jsesc@npm:3.0.2" bin: @@ -22573,13 +21808,6 @@ __metadata: languageName: node linkType: hard -"node-releases@npm:^2.0.19": - version: 2.0.19 - resolution: "node-releases@npm:2.0.19" - checksum: 10c0/52a0dbd25ccf545892670d1551690fe0facb6a471e15f2cfa1b20142a5b255b3aa254af5f59d6ecb69c2bec7390bc643c43aa63b13bf5e64b6075952e716b1aa - languageName: node - linkType: hard - "nopt@npm:^6.0.0": version: 6.0.0 resolution: "nopt@npm:6.0.0" @@ -22780,13 +22008,6 @@ __metadata: languageName: node linkType: hard -"nullthrows@npm:^1.1.1": - version: 1.1.1 - resolution: "nullthrows@npm:1.1.1" - checksum: 10c0/56f34bd7c3dcb3bd23481a277fa22918120459d3e9d95ca72976c72e9cac33a97483f0b95fc420e2eb546b9fe6db398273aba9a938650cdb8c98ee8f159dcb30 - languageName: node - linkType: hard - "nx@npm:20.2.2": version: 20.2.2 resolution: "nx@npm:20.2.2" @@ -25371,18 +24592,6 @@ __metadata: languageName: node linkType: hard -"recast@npm:^0.21.0": - version: 0.21.5 - resolution: "recast@npm:0.21.5" - dependencies: - ast-types: "npm:0.15.2" - esprima: "npm:~4.0.0" - source-map: "npm:~0.6.1" - tslib: "npm:^2.0.1" - checksum: 10c0/a45168c82195f24fa2c70293a624fece0069a2e8e8adb637f9963777735f81cb3bb62e55172db677ec3573b08b2daaf1eddd85b74da6fe0bd37c9b15eeaf94b4 - languageName: node - linkType: hard - "recast@npm:^0.23.1, recast@npm:^0.23.3, recast@npm:^0.23.5": version: 0.23.5 resolution: "recast@npm:0.23.5" @@ -25448,15 +24657,6 @@ __metadata: languageName: node linkType: hard -"regenerate-unicode-properties@npm:^10.2.0": - version: 10.2.0 - resolution: "regenerate-unicode-properties@npm:10.2.0" - dependencies: - regenerate: "npm:^1.4.2" - checksum: 10c0/5510785eeaf56bbfdf4e663d6753f125c08d2a372d4107bc1b756b7bf142e2ed80c2733a8b54e68fb309ba37690e66a0362699b0e21d5c1f0255dea1b00e6460 - languageName: node - linkType: hard - "regenerate@npm:^1.4.2": version: 1.4.2 resolution: "regenerate@npm:1.4.2" @@ -25544,38 +24744,6 @@ __metadata: languageName: node linkType: hard -"regexpu-core@npm:^6.2.0": - version: 6.2.0 - resolution: "regexpu-core@npm:6.2.0" - dependencies: - regenerate: "npm:^1.4.2" - regenerate-unicode-properties: "npm:^10.2.0" - regjsgen: "npm:^0.8.0" - regjsparser: "npm:^0.12.0" - unicode-match-property-ecmascript: "npm:^2.0.0" - unicode-match-property-value-ecmascript: "npm:^2.1.0" - checksum: 10c0/bbcb83a854bf96ce4005ee4e4618b71c889cda72674ce6092432f0039b47890c2d0dfeb9057d08d440999d9ea03879ebbb7f26ca005ccf94390e55c348859b98 - languageName: node - linkType: hard - -"regjsgen@npm:^0.8.0": - version: 0.8.0 - resolution: "regjsgen@npm:0.8.0" - checksum: 10c0/44f526c4fdbf0b29286101a282189e4dbb303f4013cf3fea058668d96d113b9180d3d03d1e13f6d4cbde38b7728bf951aecd9dc199938c080093a9a6f0d7a6bd - languageName: node - linkType: hard - -"regjsparser@npm:^0.12.0": - version: 0.12.0 - resolution: "regjsparser@npm:0.12.0" - dependencies: - jsesc: "npm:~3.0.2" - bin: - regjsparser: bin/parser - checksum: 10c0/99d3e4e10c8c7732eb7aa843b8da2fd8b647fe144d3711b480e4647dc3bff4b1e96691ccf17f3ace24aa866a50b064236177cb25e6e4fbbb18285d99edaed83b - languageName: node - linkType: hard - "regjsparser@npm:^0.9.1": version: 0.9.1 resolution: "regjsparser@npm:0.9.1" From cb64e89b19ebffdbf6d30c2fa0a637aaf26f5b51 Mon Sep 17 00:00:00 2001 From: Daniel Williams <dannyhyunsoowilliams@gmail.com> Date: Sun, 5 Jan 2025 13:17:02 +0000 Subject: [PATCH 18/34] fix: comments --- code/frameworks/react-native-web-vite/src/preset.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/code/frameworks/react-native-web-vite/src/preset.ts b/code/frameworks/react-native-web-vite/src/preset.ts index 2f49f97c9617..3e6a4e5c3331 100644 --- a/code/frameworks/react-native-web-vite/src/preset.ts +++ b/code/frameworks/react-native-web-vite/src/preset.ts @@ -96,7 +96,6 @@ export const viteFinal: StorybookConfig['viteFinal'] = async (config, options) = // and other benefits babel({ include: pluginReactOptions.include || [/node_modules\/(react-native|@react-native)/], - // gesture handler is already transpiled exclude: pluginReactOptions.exclude, babelConfig: { ...pluginReactOptions.babel, @@ -104,6 +103,7 @@ export const viteFinal: StorybookConfig['viteFinal'] = async (config, options) = configFile: false, presets: [ [ + // we use require instead of just the name to resolve the version of the plugin in our package.json require('@babel/preset-react'), { development: isDevelopment, @@ -113,10 +113,10 @@ export const viteFinal: StorybookConfig['viteFinal'] = async (config, options) = ], ...(pluginReactOptions.babel?.presets || []), ], - // babel-plugin-react-native-web adds optimizations for react native web prod builds plugins: [ [ // this is a fix for reanimated not working in production + // we use require instead of just the name to resolve the version of the plugin in our package.json require('@babel/plugin-transform-modules-commonjs'), { strict: false, From d28b7becf7cbcd2c57d5501208f96189377c4f45 Mon Sep 17 00:00:00 2001 From: Daniel Williams <dannyhyunsoowilliams@gmail.com> Date: Sun, 5 Jan 2025 13:19:05 +0000 Subject: [PATCH 19/34] fix: remove uneeded expo os env --- code/frameworks/react-native-web-vite/src/preset.ts | 2 -- 1 file changed, 2 deletions(-) diff --git a/code/frameworks/react-native-web-vite/src/preset.ts b/code/frameworks/react-native-web-vite/src/preset.ts index 3e6a4e5c3331..8636c9813f57 100644 --- a/code/frameworks/react-native-web-vite/src/preset.ts +++ b/code/frameworks/react-native-web-vite/src/preset.ts @@ -20,8 +20,6 @@ export function reactNativeWeb(): PluginOption { _WORKLET: false, __DEV__: `${env.mode === 'development'}`, 'process.env.NODE_ENV': JSON.stringify(process.env.NODE_ENV || env.mode), - // this is for the expo preset - 'process.env.EXPO_OS': JSON.stringify('web'), }, optimizeDeps: { include: [], From f3fdb8ac4d8ab091eab5b0952a757f1021d462da Mon Sep 17 00:00:00 2001 From: Daniel Williams <dannyhyunsoowilliams@gmail.com> Date: Sun, 5 Jan 2025 13:33:59 +0000 Subject: [PATCH 20/34] fix: remove require thing for now --- code/frameworks/react-native-web-vite/src/preset.ts | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/code/frameworks/react-native-web-vite/src/preset.ts b/code/frameworks/react-native-web-vite/src/preset.ts index 8636c9813f57..7648ad28208a 100644 --- a/code/frameworks/react-native-web-vite/src/preset.ts +++ b/code/frameworks/react-native-web-vite/src/preset.ts @@ -101,8 +101,7 @@ export const viteFinal: StorybookConfig['viteFinal'] = async (config, options) = configFile: false, presets: [ [ - // we use require instead of just the name to resolve the version of the plugin in our package.json - require('@babel/preset-react'), + '@babel/preset-react', { development: isDevelopment, jsxRuntime: pluginReactOptions.jsxRuntime || 'automatic', @@ -114,8 +113,7 @@ export const viteFinal: StorybookConfig['viteFinal'] = async (config, options) = plugins: [ [ // this is a fix for reanimated not working in production - // we use require instead of just the name to resolve the version of the plugin in our package.json - require('@babel/plugin-transform-modules-commonjs'), + '@babel/plugin-transform-modules-commonjs', { strict: false, strictMode: false, // prevent "use strict" injections From 90ef8692498098a0035b1eda0bc18359d4f1a600 Mon Sep 17 00:00:00 2001 From: Daniel Williams <dannyhyunsoowilliams@gmail.com> Date: Sun, 5 Jan 2025 13:35:42 +0000 Subject: [PATCH 21/34] better comments --- code/frameworks/react-native-web-vite/src/preset.ts | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/code/frameworks/react-native-web-vite/src/preset.ts b/code/frameworks/react-native-web-vite/src/preset.ts index 7648ad28208a..db87fa75885f 100644 --- a/code/frameworks/react-native-web-vite/src/preset.ts +++ b/code/frameworks/react-native-web-vite/src/preset.ts @@ -76,6 +76,8 @@ export const viteFinal: StorybookConfig['viteFinal'] = async (config, options) = plugins.unshift( tsconfigPaths(), + + // fix for react native packages shipping with flow types untranspiled flowPlugin({ exclude: [/node_modules\/(?!react-native|@react-native)/], }), @@ -90,8 +92,8 @@ export const viteFinal: StorybookConfig['viteFinal'] = async (config, options) = }), // we need to add this extra babel config because the react plugin doesn't allow - // for transpiling node_modules. However we keep the react plugin to get the fast refresh - // and other benefits + // for transpiling node_modules. We need this because many react native packages are untranspiled. + // However we keep the react plugin to get the fast refresh and the other stuff its doing babel({ include: pluginReactOptions.include || [/node_modules\/(react-native|@react-native)/], exclude: pluginReactOptions.exclude, @@ -131,6 +133,7 @@ export const viteFinal: StorybookConfig['viteFinal'] = async (config, options) = return mergeConfig(reactConfig, { optimizeDeps: { esbuildOptions: { + // fix for react native packages shipping with flow types untranspiled plugins: [esbuildFlowPlugin(new RegExp(/\.(flow|jsx?)$/), (_path: string) => 'jsx')], }, }, From 7794b8ec7a872f8bfd0c6738a198c08a158053e8 Mon Sep 17 00:00:00 2001 From: Daniel Williams <dannyhyunsoowilliams@gmail.com> Date: Sun, 5 Jan 2025 14:01:51 +0000 Subject: [PATCH 22/34] split up config for the babel plugin --- .../react-native-web-vite/src/preset.ts | 17 +++++++++-------- .../react-native-web-vite/src/types.ts | 5 +++++ 2 files changed, 14 insertions(+), 8 deletions(-) diff --git a/code/frameworks/react-native-web-vite/src/preset.ts b/code/frameworks/react-native-web-vite/src/preset.ts index db87fa75885f..53e2b1e12bba 100644 --- a/code/frameworks/react-native-web-vite/src/preset.ts +++ b/code/frameworks/react-native-web-vite/src/preset.ts @@ -65,7 +65,7 @@ export function reactNativeWeb(): PluginOption { export const viteFinal: StorybookConfig['viteFinal'] = async (config, options) => { const { mergeConfig } = await import('vite'); - const { pluginReactOptions = {} } = + const { pluginReactOptions = {}, pluginBabelOptions = {} } = await options.presets.apply<FrameworkOptions>('frameworkOptions'); const isDevelopment = options.configType !== 'PRODUCTION'; @@ -95,10 +95,11 @@ export const viteFinal: StorybookConfig['viteFinal'] = async (config, options) = // for transpiling node_modules. We need this because many react native packages are untranspiled. // However we keep the react plugin to get the fast refresh and the other stuff its doing babel({ - include: pluginReactOptions.include || [/node_modules\/(react-native|@react-native)/], - exclude: pluginReactOptions.exclude, + ...pluginBabelOptions, + include: pluginBabelOptions.include || [/node_modules\/(react-native|@react-native)/], + exclude: pluginBabelOptions.exclude, babelConfig: { - ...pluginReactOptions.babel, + ...pluginBabelOptions.babelConfig, babelrc: false, configFile: false, presets: [ @@ -106,11 +107,11 @@ export const viteFinal: StorybookConfig['viteFinal'] = async (config, options) = '@babel/preset-react', { development: isDevelopment, - jsxRuntime: pluginReactOptions.jsxRuntime || 'automatic', - jsxImportSource: pluginReactOptions.jsxImportSource || 'react', + jsxRuntime: pluginBabelOptions.jsxRuntime || 'automatic', + jsxImportSource: pluginBabelOptions.jsxImportSource || 'react', }, ], - ...(pluginReactOptions.babel?.presets || []), + ...(pluginBabelOptions.babelConfig?.presets || []), ], plugins: [ [ @@ -122,7 +123,7 @@ export const viteFinal: StorybookConfig['viteFinal'] = async (config, options) = allowTopLevelThis: true, // dont rewrite global `this` -> `undefined` }, ], - ...(pluginReactOptions.babel?.plugins || []), + ...(pluginBabelOptions.babelConfig?.plugins || []), ], }, }) diff --git a/code/frameworks/react-native-web-vite/src/types.ts b/code/frameworks/react-native-web-vite/src/types.ts index c82c79771a1b..bbe3effea032 100644 --- a/code/frameworks/react-native-web-vite/src/types.ts +++ b/code/frameworks/react-native-web-vite/src/types.ts @@ -6,9 +6,14 @@ import type { } from '@storybook/react-vite'; import type { BabelOptions, Options as ReactOptions } from '@vitejs/plugin-react'; +import type { BabelPluginOptions } from 'vite-plugin-babel'; export type FrameworkOptions = FrameworkOptionsBase & { pluginReactOptions?: Omit<ReactOptions, 'babel'> & { babel?: BabelOptions }; + pluginBabelOptions?: BabelPluginOptions & { + jsxRuntime?: 'automatic' | 'classic'; + jsxImportSource?: string; + }; }; type FrameworkName = CompatibleString<'@storybook/react-native-web-vite'>; From 2db17816f8a026660929b183862c1eaa3afda512 Mon Sep 17 00:00:00 2001 From: Daniel Williams <dannyhyunsoowilliams@gmail.com> Date: Sun, 5 Jan 2025 14:24:23 +0000 Subject: [PATCH 23/34] fix: preset react options and make them an object --- code/frameworks/react-native-web-vite/src/preset.ts | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/code/frameworks/react-native-web-vite/src/preset.ts b/code/frameworks/react-native-web-vite/src/preset.ts index 53e2b1e12bba..40e275b5bbb1 100644 --- a/code/frameworks/react-native-web-vite/src/preset.ts +++ b/code/frameworks/react-native-web-vite/src/preset.ts @@ -92,7 +92,8 @@ export const viteFinal: StorybookConfig['viteFinal'] = async (config, options) = }), // we need to add this extra babel config because the react plugin doesn't allow - // for transpiling node_modules. We need this because many react native packages are untranspiled. + // for transpiling node_modules. We need this because many react native packages are un-transpiled. + // see this pr for more context: https://github.com/vitejs/vite-plugin-react/pull/306 // However we keep the react plugin to get the fast refresh and the other stuff its doing babel({ ...pluginBabelOptions, @@ -107,8 +108,8 @@ export const viteFinal: StorybookConfig['viteFinal'] = async (config, options) = '@babel/preset-react', { development: isDevelopment, - jsxRuntime: pluginBabelOptions.jsxRuntime || 'automatic', - jsxImportSource: pluginBabelOptions.jsxImportSource || 'react', + runtime: 'automatic', + ...(pluginBabelOptions.presetReact || {}), }, ], ...(pluginBabelOptions.babelConfig?.presets || []), From 30f73684fba26148e28618a71744d6c70c0a5279 Mon Sep 17 00:00:00 2001 From: Daniel Williams <dannyhyunsoowilliams@gmail.com> Date: Sun, 5 Jan 2025 14:24:41 +0000 Subject: [PATCH 24/34] fix: oops types --- code/frameworks/react-native-web-vite/src/types.ts | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/code/frameworks/react-native-web-vite/src/types.ts b/code/frameworks/react-native-web-vite/src/types.ts index bbe3effea032..5558722e03d7 100644 --- a/code/frameworks/react-native-web-vite/src/types.ts +++ b/code/frameworks/react-native-web-vite/src/types.ts @@ -11,8 +11,11 @@ import type { BabelPluginOptions } from 'vite-plugin-babel'; export type FrameworkOptions = FrameworkOptionsBase & { pluginReactOptions?: Omit<ReactOptions, 'babel'> & { babel?: BabelOptions }; pluginBabelOptions?: BabelPluginOptions & { - jsxRuntime?: 'automatic' | 'classic'; - jsxImportSource?: string; + presetReact?: { + [key: string]: any; + runtime?: 'automatic' | 'classic'; + importSource?: string; + }; }; }; From b0aac2af7746575025a57014282a6f2a5f1ae82f Mon Sep 17 00:00:00 2001 From: Daniel Williams <dannyhyunsoowilliams@gmail.com> Date: Sun, 5 Jan 2025 14:41:53 +0000 Subject: [PATCH 25/34] fix: dont run vite config migraiton for rnw --- .../cli-storybook/src/automigrate/fixes/vite-config-file.ts | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/code/lib/cli-storybook/src/automigrate/fixes/vite-config-file.ts b/code/lib/cli-storybook/src/automigrate/fixes/vite-config-file.ts index 84201fd64852..4d1389c41e7d 100644 --- a/code/lib/cli-storybook/src/automigrate/fixes/vite-config-file.ts +++ b/code/lib/cli-storybook/src/automigrate/fixes/vite-config-file.ts @@ -42,6 +42,12 @@ export const viteConfigFile = { return null; } const frameworkName = frameworkPackages[frameworkPackageName]; + + if (frameworkName === 'react-native-web-vite') { + // we don't expect a vite config file for this framework + return null; + } + const isUsingViteBuilder = mainConfig.core?.builder === 'vite' || frameworkPackageName?.includes('vite') || From 45e96d34219f3202000aaacdb81f9cc284e03dcd Mon Sep 17 00:00:00 2001 From: Daniel Williams <dannyhyunsoowilliams@gmail.com> Date: Sun, 5 Jan 2025 15:22:43 +0000 Subject: [PATCH 26/34] test: test for react-native-web-vite exception --- .../fixes/vite-config-file.test.ts | 48 +++++++++++++++++++ 1 file changed, 48 insertions(+) create mode 100644 code/lib/cli-storybook/src/automigrate/fixes/vite-config-file.test.ts diff --git a/code/lib/cli-storybook/src/automigrate/fixes/vite-config-file.test.ts b/code/lib/cli-storybook/src/automigrate/fixes/vite-config-file.test.ts new file mode 100644 index 000000000000..377e754e6b9b --- /dev/null +++ b/code/lib/cli-storybook/src/automigrate/fixes/vite-config-file.test.ts @@ -0,0 +1,48 @@ +import { describe, expect, it } from 'vitest'; + +import type { StorybookConfig } from 'storybook/internal/types'; + +import { viteConfigFile } from './vite-config-file'; + +const check = async ({ + packageManager, + main: mainConfig, + storybookVersion = '8.0.0', +}: { + packageManager: any; + main: Partial<StorybookConfig> & Record<string, unknown>; + storybookVersion?: string; +}) => { + return viteConfigFile.check({ + packageManager, + configDir: '', + mainConfig: mainConfig as any, + storybookVersion, + }); +}; + +describe('no-ops', () => { + it('skips when react-native-web-vite', async () => { + await expect( + check({ + packageManager: {}, + main: { + framework: '@storybook/react-native-web-vite', + }, + }) + ).resolves.toBeFalsy(); + }); +}); + +describe('continue', () => { + it('executes for vite framework', async () => { + await expect( + check({ + packageManager: {}, + main: { + framework: '@storybook/react-vite', + }, + }) + ).resolves.toBeTruthy(); + }); +}); From 2adf23d1f84527c9c72b6c57890d31d7ec33326f Mon Sep 17 00:00:00 2001 From: Valentin Palkovic <valentin@chromatic.com> Date: Mon, 6 Jan 2025 12:36:47 +0100 Subject: [PATCH 27/34] Manager: Optimize getPanels function with memoization --- code/core/src/manager/container/Panel.tsx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/code/core/src/manager/container/Panel.tsx b/code/core/src/manager/container/Panel.tsx index f8cc2877cef0..25292bd50769 100644 --- a/code/core/src/manager/container/Panel.tsx +++ b/code/core/src/manager/container/Panel.tsx @@ -16,7 +16,7 @@ const createPanelActions = memoize(1)((api) => ({ togglePosition: () => api.togglePanelPosition(), })); -const getPanels = (api: API) => { +const getPanels = memoize(1)((api: API) => { const allPanels = api.getElements(Addon_TypesEnum.PANEL); const story = api.getCurrentStoryData(); @@ -42,7 +42,7 @@ const getPanels = (api: API) => { }); return filteredPanels; -}; +}); const mapper = ({ state, api }: Combo) => ({ panels: getPanels(api), From cc60f03f38221b8cbcc64096fad0b95307bca87f Mon Sep 17 00:00:00 2001 From: Valentin Palkovic <valentin@chromatic.com> Date: Mon, 6 Jan 2025 12:16:12 +0100 Subject: [PATCH 28/34] React: Force act running always in sequence --- code/renderers/react/src/renderToCanvas.tsx | 35 ++++++++++++++++++--- 1 file changed, 31 insertions(+), 4 deletions(-) diff --git a/code/renderers/react/src/renderToCanvas.tsx b/code/renderers/react/src/renderToCanvas.tsx index 4ae1acbb7fe9..006d39e8134a 100644 --- a/code/renderers/react/src/renderToCanvas.tsx +++ b/code/renderers/react/src/renderToCanvas.tsx @@ -45,6 +45,23 @@ class ErrorBoundary extends ReactComponent<{ const Wrapper = FRAMEWORK_OPTIONS?.strictMode ? StrictMode : Fragment; +const actQueue: (() => Promise<void>)[] = []; +let isActing = false; + +const processActQueue = async () => { + if (isActing || actQueue.length === 0) { + return; + } + + isActing = true; + const actTask = actQueue.shift(); + if (actTask) { + await actTask(); + } + isActing = false; + processActQueue(); +}; + export async function renderToCanvas( { storyContext, @@ -81,12 +98,22 @@ export async function renderToCanvas( unmountElement(canvasElement); } - await act(async () => { - await renderElement(element, canvasElement, storyContext?.parameters?.react?.rootOptions); + await new Promise<void>((resolve, reject) => { + try { + actQueue.push(async () => { + await act(async () => { + await renderElement(element, canvasElement, storyContext?.parameters?.react?.rootOptions); + resolve(); + }); + }); + processActQueue(); + } catch (e) { + reject(e); + } }); - return async () => { - await act(() => { + return () => { + act(() => { unmountElement(canvasElement); }); }; From 103267b9cf3766be180704191255c8fc6473ba69 Mon Sep 17 00:00:00 2001 From: Kyle Gach <kyle.gach@gmail.com> Date: Mon, 6 Jan 2025 07:24:01 -0700 Subject: [PATCH 29/34] Rename `a11ytest` tag to `a11y-test` --- docs/_snippets/addon-a11y-meta-tag.md | 76 +++++++++---------- .../storybook-test-addon-disable-tests.md | 72 +++++++++--------- docs/writing-tests/accessibility-testing.mdx | 6 +- 3 files changed, 77 insertions(+), 77 deletions(-) diff --git a/docs/_snippets/addon-a11y-meta-tag.md b/docs/_snippets/addon-a11y-meta-tag.md index 3ef18124964e..58de99af555f 100644 --- a/docs/_snippets/addon-a11y-meta-tag.md +++ b/docs/_snippets/addon-a11y-meta-tag.md @@ -5,8 +5,8 @@ import { Button } from './button.component'; const meta: Meta<Button> = { component: Button, - // đ Re-apply the a11ytest tag for this component's stories - tags: ['a11ytest'], + // đ Re-apply the a11y-test tag for this component's stories + tags: ['a11y-test'], }; export default meta; @@ -14,8 +14,8 @@ export default meta; ```js filename="Button.stories.js" renderer="html" language="js" export default { - // đ Re-apply the a11ytest tag for this component's stories - tags: ['a11ytest'], + // đ Re-apply the a11y-test tag for this component's stories + tags: ['a11y-test'], }; ``` @@ -24,8 +24,8 @@ import { Button } from './Button'; export default { component: Button, - // đ Re-apply the a11ytest tag for this component's stories - tags: ['a11ytest'], + // đ Re-apply the a11y-test tag for this component's stories + tags: ['a11y-test'], }; ``` @@ -37,8 +37,8 @@ import { Button } from './Button'; const meta = { component: Button, - // đ Re-apply the a11ytest tag for this component's stories - tags: ['a11ytest'], + // đ Re-apply the a11y-test tag for this component's stories + tags: ['a11y-test'], } satisfies Meta<typeof Button>; export default meta; @@ -52,8 +52,8 @@ import { Button } from './Button'; const meta: Meta<typeof Button> = { component: Button, - // đ Re-apply the a11ytest tag for this component's stories - tags: ['a11ytest'], + // đ Re-apply the a11y-test tag for this component's stories + tags: ['a11y-test'], }; export default meta; @@ -64,8 +64,8 @@ import { Button } from './Button'; export default { component: Button, - // đ Re-apply the a11ytest tag for this component's stories - tags: ['a11ytest'], + // đ Re-apply the a11y-test tag for this component's stories + tags: ['a11y-test'], }; ``` @@ -76,8 +76,8 @@ import { Button } from './Button'; const meta = { component: Button, - // đ Re-apply the a11ytest tag for this component's stories - tags: ['a11ytest'], + // đ Re-apply the a11y-test tag for this component's stories + tags: ['a11y-test'], } satisfies Meta<typeof Button>; export default meta; @@ -90,8 +90,8 @@ import { Button } from './Button'; const meta: Meta<typeof Button> = { component: Button, - // đ Re-apply the a11ytest tag for this component's stories - tags: ['a11ytest'], + // đ Re-apply the a11y-test tag for this component's stories + tags: ['a11y-test'], }; export default meta; @@ -105,8 +105,8 @@ export default meta; const { Story } = defineMeta({ component: Button, - // đ Re-apply the a11ytest tag for this component's stories - tags: ['a11ytest'], + // đ Re-apply the a11y-test tag for this component's stories + tags: ['a11y-test'], }); </script> ``` @@ -116,8 +116,8 @@ import Button from './Button.svelte'; export default { component: Button, - // đ Re-apply the a11ytest tag for this component's stories - tags: ['a11ytest'], + // đ Re-apply the a11y-test tag for this component's stories + tags: ['a11y-test'], }; ``` @@ -129,8 +129,8 @@ export default { const { Story } = defineMeta({ component: Button, - // đ Re-apply the a11ytest tag for this component's stories - tags: ['a11ytest'], + // đ Re-apply the a11y-test tag for this component's stories + tags: ['a11y-test'], }); </script> ``` @@ -142,8 +142,8 @@ import Button from './Button.svelte'; const meta = { component: Button, - // đ Re-apply the a11ytest tag for this component's stories - tags: ['a11ytest'], + // đ Re-apply the a11y-test tag for this component's stories + tags: ['a11y-test'], } satisfies Meta<typeof Button>; export default meta; @@ -157,8 +157,8 @@ export default meta; const { Story } = defineMeta({ component: Button, - // đ Re-apply the a11ytest tag for this component's stories - tags: ['a11ytest'], + // đ Re-apply the a11y-test tag for this component's stories + tags: ['a11y-test'], }); </script> ``` @@ -170,8 +170,8 @@ import Button from './Button.svelte'; const meta: Meta<typeof Button> = { component: Button, - // đ Re-apply the a11ytest tag for this component's stories - tags: ['a11ytest'], + // đ Re-apply the a11y-test tag for this component's stories + tags: ['a11y-test'], }; export default meta; @@ -182,8 +182,8 @@ import Button from './Button.vue'; export default { component: Button, - // đ Re-apply the a11ytest tag for this component's stories - tags: ['a11ytest'], + // đ Re-apply the a11y-test tag for this component's stories + tags: ['a11y-test'], }; ``` @@ -194,8 +194,8 @@ import Button from './Button.vue'; const meta = { component: Button, - // đ Re-apply the a11ytest tag for this component's stories - tags: ['a11ytest'], + // đ Re-apply the a11y-test tag for this component's stories + tags: ['a11y-test'], } satisfies Meta<typeof Button>; export default meta; @@ -208,8 +208,8 @@ import Button from './Button.vue'; const meta: Meta<typeof Button> = { component: Button, - // đ Re-apply the a11ytest tag for this component's stories - tags: ['a11ytest'], + // đ Re-apply the a11y-test tag for this component's stories + tags: ['a11y-test'], }; export default meta; @@ -218,8 +218,8 @@ export default meta; ```js filename="Button.stories.js" renderer="web-components" language="js" export default { component: 'demo-button', - // đ Re-apply the a11ytest tag for this component's stories - tags: ['a11ytest'], + // đ Re-apply the a11y-test tag for this component's stories + tags: ['a11y-test'], }; ``` @@ -228,8 +228,8 @@ import type { Meta, StoryObj } from '@storybook/web-components'; const meta: Meta = { component: 'demo-button', - // đ Re-apply the a11ytest tag for this component's stories - tags: ['a11ytest'], + // đ Re-apply the a11y-test tag for this component's stories + tags: ['a11y-test'], }; export default meta; diff --git a/docs/_snippets/storybook-test-addon-disable-tests.md b/docs/_snippets/storybook-test-addon-disable-tests.md index 6f004039dc60..b5bedea25acf 100644 --- a/docs/_snippets/storybook-test-addon-disable-tests.md +++ b/docs/_snippets/storybook-test-addon-disable-tests.md @@ -7,9 +7,9 @@ const meta: Meta<typeof Button> = { component: Button, /* * Enable accessibility checks for all stories in this component - * This is only necessary if you have set the `!a11ytest` tag in your preview file, otherwise `a11ytest` is enabled by default + * This is only necessary if you have set the `!a11y-test` tag in your preview file, otherwise `a11y-test` is enabled by default */ - tags: ['a11ytest'], + tags: ['a11y-test'], }; export default meta; @@ -24,7 +24,7 @@ export const Accessible: Story = { export const Inaccessible: Story = { // Turn off accessibility tests for this story using the tag's configuration option - tags: ['!a11ytest'], + tags: ['!a11y-test'], args: { ...Accessible.args, backgroundColor: 'red', @@ -39,9 +39,9 @@ export default { component: Button, /* * Enable accessibility checks for all stories in this component - * This is only necessary if you have set the `!a11ytest` tag in your preview file, otherwise `a11ytest` is enabled by default + * This is only necessary if you have set the `!a11y-test` tag in your preview file, otherwise `a11y-test` is enabled by default */ - tags: ['a11ytest'], + tags: ['a11y-test'], }; export const Accessible = { @@ -53,7 +53,7 @@ export const Accessible = { export const Inaccessible = { // Turn off accessibility tests for this story using the tag's configuration option - tags: ['!a11ytest'], + tags: ['!a11y-test'], args: { ...Accessible.args, backgroundColor: 'red', @@ -70,9 +70,9 @@ const meta = { component: Button, /* * Enable accessibility checks for all stories in this component - * This is only necessary if you have set the `!a11ytest` tag in your preview file, otherwise `a11ytest` is enabled by default + * This is only necessary if you have set the `!a11y-test` tag in your preview file, otherwise `a11y-test` is enabled by default */ - tags: ['a11ytest'], + tags: ['a11y-test'], } satisfies Meta<typeof Button>; export default meta; @@ -87,7 +87,7 @@ export const Accessible: Story = { export const Inaccessible: Story = { // Turn off accessibility tests for this story using the tag's configuration option - tags: ['!a11ytest'], + tags: ['!a11y-test'], args: { ...Accessible.args, backgroundColor: 'red', @@ -103,11 +103,11 @@ export const Inaccessible: Story = { /* * Enable accessibility checks for all stories in this component - * This is only necessary if you have set the `!a11ytest` tag in your preview file, otherwise `a11ytest` is enabled by default + * This is only necessary if you have set the `!a11y-test` tag in your preview file, otherwise `a11y-test` is enabled by default */ const { Story } = defineMeta({ component: Button, - tags: ['a11ytest'], + tags: ['a11y-test'], }); const AccessibleArgs = { @@ -121,7 +121,7 @@ export const Inaccessible: Story = { <!-- Turn off accessibility tests for this story using the tag's configuration option --> <Story name="Inaccessible" - tags={['!a11ytest']} + tags={['!a11y-test']} args={{ ...AccessibleArgs, backgroundColor: 'red', @@ -136,9 +136,9 @@ export default { component: Button, /* * Enable accessibility checks for all stories in this component - * This is only necessary if you have set the `!a11ytest` tag in your preview file, otherwise `a11ytest` is enabled by default + * This is only necessary if you have set the `!a11y-test` tag in your preview file, otherwise `a11y-test` is enabled by default */ - tags: ['a11ytest'], + tags: ['a11y-test'], }; export const Accessible = { @@ -150,7 +150,7 @@ export const Accessible = { export const Inaccessible = { // Turn off accessibility tests for this story using the tag's configuration option - tags: ['!a11ytest'], + tags: ['!a11y-test'], args: { ...Accessible.args, backgroundColor: 'red', @@ -166,11 +166,11 @@ export const Inaccessible = { /* * Enable accessibility checks for all stories in this component - * This is only necessary if you have set the `!a11ytest` tag in your preview file, otherwise `a11ytest` is enabled by default + * This is only necessary if you have set the `!a11y-test` tag in your preview file, otherwise `a11y-test` is enabled by default */ const { Story } = defineMeta({ component: Button, - tags: ['a11ytest'], + tags: ['a11y-test'], }); const AccessibleArgs = { @@ -184,7 +184,7 @@ export const Inaccessible = { <!-- Turn off accessibility tests for this story using the tag's configuration option --> <Story name="Inaccessible" - tags={['!a11ytest']} + tags={['!a11y-test']} args={{ ...AccessibleArgs, backgroundColor: 'red', @@ -201,9 +201,9 @@ const meta = { component: Button, /* * Enable accessibility checks for all stories in this component - * This is only necessary if you have set the `!a11ytest` tag in your preview file, otherwise `a11ytest` is enabled by default + * This is only necessary if you have set the `!a11y-test` tag in your preview file, otherwise `a11y-test` is enabled by default */ - tags: ['a11ytest'], + tags: ['a11y-test'], } satisfies Meta<typeof Button>; export default meta; @@ -218,7 +218,7 @@ export const Accessible: Story = { export const Inaccessible: Story = { // Turn off accessibility tests for this story using the tag's configuration option - tags: ['!a11ytest'], + tags: ['!a11y-test'], args: { ...Accessible.args, backgroundColor: 'red', @@ -234,11 +234,11 @@ export const Inaccessible: Story = { /* * Enable accessibility checks for all stories in this component - * This is only necessary if you have set the `!a11ytest` tag in your preview file, otherwise `a11ytest` is enabled by default + * This is only necessary if you have set the `!a11y-test` tag in your preview file, otherwise `a11y-test` is enabled by default */ const { Story } = defineMeta({ component: Button, - tags: ['a11ytest'], + tags: ['a11y-test'], }); const AccessibleArgs = { @@ -252,7 +252,7 @@ export const Inaccessible: Story = { <!-- Turn off accessibility tests for this story using the tag's configuration option --> <Story name="Inaccessible" - tags={['!a11ytest']} + tags={['!a11y-test']} args={{ ...AccessibleArgs, backgroundColor: 'red', @@ -269,9 +269,9 @@ const meta: Meta<typeof Button> = { component: Button, /* * Enable accessibility checks for all stories in this component - * This is only necessary if you have set the `!a11ytest` tag in your preview file, otherwise `a11ytest` is enabled by default + * This is only necessary if you have set the `!a11y-test` tag in your preview file, otherwise `a11y-test` is enabled by default */ - tags: ['a11ytest'], + tags: ['a11y-test'], }; export default meta; @@ -286,7 +286,7 @@ export const Accessible: Story = { export const Inaccessible: Story = { // Turn off accessibility tests for this story using the tag's configuration option - tags: ['!a11ytest'], + tags: ['!a11y-test'], args: { ...Accessible.args, backgroundColor: 'red', @@ -301,9 +301,9 @@ export default { component: Button, /* * Enable accessibility checks for all stories in this component - * This is only necessary if you have set the `!a11ytest` tag in your preview file, otherwise `a11ytest` is enabled by default + * This is only necessary if you have set the `!a11y-test` tag in your preview file, otherwise `a11y-test` is enabled by default */ - tags: ['a11ytest'], + tags: ['a11y-test'], }; export const Accessible = { @@ -315,7 +315,7 @@ export const Accessible = { export const Inaccessible = { // Turn off accessibility tests for this story using the tag's configuration option - tags: ['!a11ytest'], + tags: ['!a11y-test'], args: { ...Accessible.args, backgroundColor: 'red', @@ -332,9 +332,9 @@ const meta = { component: Button, /* * Enable accessibility checks for all stories in this component - * This is only necessary if you have set the `!a11ytest` tag in your preview file, otherwise `a11ytest` is enabled by default + * This is only necessary if you have set the `!a11y-test` tag in your preview file, otherwise `a11y-test` is enabled by default */ - tags: ['a11ytest'], + tags: ['a11y-test'], } satisfies Meta<typeof Button>; export default meta; @@ -349,7 +349,7 @@ export const Accessible: Story = { export const Inaccessible: Story = { // Turn off accessibility tests for this story using the tag's configuration option - tags: ['!a11ytest'], + tags: ['!a11y-test'], args: { ...Accessible.args, backgroundColor: 'red', @@ -366,9 +366,9 @@ const meta: Meta<typeof Button> = { component: Button, /* * Enable accessibility checks for all stories in this component - * This is only necessary if you have set the `!a11ytest` tag in your preview file, otherwise `a11ytest` is enabled by default + * This is only necessary if you have set the `!a11y-test` tag in your preview file, otherwise `a11y-test` is enabled by default */ - tags: ['a11ytest'], + tags: ['a11y-test'], }; export default meta; @@ -383,7 +383,7 @@ export const Accessible: Story = { export const Inaccessible: Story = { // Turn off accessibility tests for this story using the tag's configuration option - tags: ['!a11ytest'], + tags: ['!a11y-test'], args: { ...Accessible.args, backgroundColor: 'red', diff --git a/docs/writing-tests/accessibility-testing.mdx b/docs/writing-tests/accessibility-testing.mdx index 0de09e6ceced..be454941e5b2 100644 --- a/docs/writing-tests/accessibility-testing.mdx +++ b/docs/writing-tests/accessibility-testing.mdx @@ -132,7 +132,7 @@ If you enabled the addon and you're manually upgrading to Storybook 8.5 or later ### Configure accessibility tests with the test addon -Like the Test addon, the accessibility addon also supports [tags](../writing-stories/tags.mdx) to filter the tests you want to run. By default, the addon applies the `a11ytest` tag to all stories. If you need to exclude a story from being accessibility tested, you can remove that tag by applying the `!a11ytest` tag to the story. This also works at the project (in `.storybook/preview.js|ts`) or component level (default export in the story file). +Like the Test addon, the accessibility addon also supports [tags](../writing-stories/tags.mdx) to filter the tests you want to run. By default, the addon applies the `a11y-test` tag to all stories. If you need to exclude a story from being accessibility tested, you can remove that tag by applying the `!a11y-test` tag to the story. This also works at the project (in `.storybook/preview.js|ts`) or component level (default export in the story file). You can use tags to progressively work toward a more accessible UI by enabling accessibility tests for a subset of stories and gradually increasing the coverage. For example, a typical workflow might look like this: @@ -146,8 +146,8 @@ You can use tags to progressively work toward a more accessible UI by enabling a const preview: Preview = { // ... - // đ Temporarily remove the a11ytest tag from all stories - tags: ['!a11ytest'], + // đ Temporarily remove the a11y-test tag from all stories + tags: ['!a11y-test'], }; export default preview; From 5f976fc95566ef2157efc1d687e3fbe7833aed39 Mon Sep 17 00:00:00 2001 From: Valentin Palkovic <valentin@chromatic.com> Date: Tue, 7 Jan 2025 11:48:05 +0100 Subject: [PATCH 30/34] refactor: streamline promise handling in renderToCanvas function --- code/renderers/react/src/renderToCanvas.tsx | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/code/renderers/react/src/renderToCanvas.tsx b/code/renderers/react/src/renderToCanvas.tsx index 006d39e8134a..2b40f3f47dd2 100644 --- a/code/renderers/react/src/renderToCanvas.tsx +++ b/code/renderers/react/src/renderToCanvas.tsx @@ -98,18 +98,18 @@ export async function renderToCanvas( unmountElement(canvasElement); } - await new Promise<void>((resolve, reject) => { - try { - actQueue.push(async () => { + await new Promise<void>(async (resolve, reject) => { + actQueue.push(async () => { + try { await act(async () => { await renderElement(element, canvasElement, storyContext?.parameters?.react?.rootOptions); - resolve(); }); - }); - processActQueue(); - } catch (e) { - reject(e); - } + resolve(); + } catch (e) { + reject(e); + } + }); + processActQueue(); }); return () => { From 313972068b965cb181927cf802c8d3766be6576b Mon Sep 17 00:00:00 2001 From: Valentin Palkovic <valentin@chromatic.com> Date: Tue, 7 Jan 2025 12:01:05 +0100 Subject: [PATCH 31/34] Fix tests --- code/renderers/react/src/__test__/portable-stories.test.tsx | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/code/renderers/react/src/__test__/portable-stories.test.tsx b/code/renderers/react/src/__test__/portable-stories.test.tsx index 85f33c9a714a..fcb278628b7b 100644 --- a/code/renderers/react/src/__test__/portable-stories.test.tsx +++ b/code/renderers/react/src/__test__/portable-stories.test.tsx @@ -67,7 +67,7 @@ describe('renders', () => { }); it('should throw error when rendering a component with a render error', async () => { - await expect(() => ThrowsError.run()).rejects.toThrowError('Error in render'); + await expect(ThrowsError.run()).rejects.toThrowError('Error in render'); }); it('should render component mounted in play function', async () => { @@ -77,8 +77,8 @@ describe('renders', () => { expect(screen.getByTestId('loaded-data').textContent).toEqual('loaded data'); }); - it('should throw an error in play function', () => { - expect(() => MountInPlayFunctionThrow.run()).rejects.toThrowError('Error thrown in play'); + it('should throw an error in play function', async () => { + await expect(MountInPlayFunctionThrow.run()).rejects.toThrowError('Error thrown in play'); }); it('should call and compose loaders data', async () => { From b066e5621900a4625bc3722a9af04d1d3f2f1233 Mon Sep 17 00:00:00 2001 From: Valentin Palkovic <valentin@chromatic.com> Date: Tue, 7 Jan 2025 12:06:28 +0100 Subject: [PATCH 32/34] refactor: change return type of renderToCanvas cleanup function to async --- code/renderers/react/src/renderToCanvas.tsx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/code/renderers/react/src/renderToCanvas.tsx b/code/renderers/react/src/renderToCanvas.tsx index 2b40f3f47dd2..57c1086cee1b 100644 --- a/code/renderers/react/src/renderToCanvas.tsx +++ b/code/renderers/react/src/renderToCanvas.tsx @@ -112,8 +112,8 @@ export async function renderToCanvas( processActQueue(); }); - return () => { - act(() => { + return async () => { + await act(() => { unmountElement(canvasElement); }); }; From c4542a27b518711a67c2c6a9a6ab743298b0dc6a Mon Sep 17 00:00:00 2001 From: Jeppe Reinhold <jeppe@reinhold.is> Date: Tue, 7 Jan 2025 13:50:37 +0100 Subject: [PATCH 33/34] always use process.cwd() for paths in importFn() --- .../src/codegen-importfn-script.test.ts | 13 +++++++------ .../builder-vite/src/codegen-importfn-script.ts | 6 +++--- code/builders/builder-vite/src/vite-config.ts | 6 +++--- code/core/src/types/modules/core-common.ts | 1 - 4 files changed, 13 insertions(+), 13 deletions(-) diff --git a/code/builders/builder-vite/src/codegen-importfn-script.test.ts b/code/builders/builder-vite/src/codegen-importfn-script.test.ts index 4d3ce5bcb79a..da0e15c2154d 100644 --- a/code/builders/builder-vite/src/codegen-importfn-script.test.ts +++ b/code/builders/builder-vite/src/codegen-importfn-script.test.ts @@ -1,13 +1,14 @@ -import { beforeEach, describe, expect, it, vi } from 'vitest'; +import { describe, expect, it, vi } from 'vitest'; import { toImportFn } from './codegen-importfn-script'; describe('toImportFn', () => { it('should correctly map story paths to import functions for absolute paths on Linux', async () => { - const root = '/absolute/path'; + vi.spyOn(process, 'cwd').mockReturnValue('/absolute/path'); + const stories = ['/absolute/path/to/story1.js', '/absolute/path/to/story2.js']; - const result = await toImportFn(root, stories); + const result = await toImportFn(stories); expect(result).toMatchInlineSnapshot(` "const importers = { @@ -22,10 +23,10 @@ describe('toImportFn', () => { }); it('should correctly map story paths to import functions for absolute paths on Windows', async () => { - const root = 'C:\\absolute\\path'; + vi.spyOn(process, 'cwd').mockReturnValue('C:\\absolute\\path'); const stories = ['C:\\absolute\\path\\to\\story1.js', 'C:\\absolute\\path\\to\\story2.js']; - const result = await toImportFn(root, stories); + const result = await toImportFn(stories); expect(result).toMatchInlineSnapshot(` "const importers = { @@ -43,7 +44,7 @@ describe('toImportFn', () => { const root = '/absolute/path'; const stories: string[] = []; - const result = await toImportFn(root, stories); + const result = await toImportFn(stories); expect(result).toMatchInlineSnapshot(` "const importers = {}; diff --git a/code/builders/builder-vite/src/codegen-importfn-script.ts b/code/builders/builder-vite/src/codegen-importfn-script.ts index 4b118ad9cc51..dc485c88f74d 100644 --- a/code/builders/builder-vite/src/codegen-importfn-script.ts +++ b/code/builders/builder-vite/src/codegen-importfn-script.ts @@ -29,9 +29,9 @@ function toImportPath(relativePath: string) { * * @param stories An array of absolute story paths. */ -export async function toImportFn(root: string, stories: string[]) { +export async function toImportFn(stories: string[]) { const objectEntries = stories.map((file) => { - const relativePath = relative(root, file); + const relativePath = relative(process.cwd(), file); return [toImportPath(relativePath), genDynamicImport(normalize(file))] as [string, string]; }); @@ -51,5 +51,5 @@ export async function generateImportFnScriptCode(options: Options): Promise<stri // We can then call toImportFn to create a function that can be used to load each story dynamically. // eslint-disable-next-line @typescript-eslint/return-await - return await toImportFn(options.projectRoot || process.cwd(), stories); + return await toImportFn(stories); } diff --git a/code/builders/builder-vite/src/vite-config.ts b/code/builders/builder-vite/src/vite-config.ts index de8f12ed8822..8983dfc137b3 100644 --- a/code/builders/builder-vite/src/vite-config.ts +++ b/code/builders/builder-vite/src/vite-config.ts @@ -53,18 +53,18 @@ export async function commonConfig( const { viteConfigPath } = await getBuilderOptions<BuilderOptions>(options); - options.projectRoot = options.projectRoot || resolve(options.configDir, '..'); + const projectRoot = resolve(options.configDir, '..'); // I destructure away the `build` property from the user's config object // I do this because I can contain config that breaks storybook, such as we had in a lit project. // If the user needs to configure the `build` they need to do so in the viteFinal function in main.js. const { config: { build: buildProperty = undefined, ...userConfig } = {} } = - (await loadConfigFromFile(configEnv, viteConfigPath, options.projectRoot)) ?? {}; + (await loadConfigFromFile(configEnv, viteConfigPath, projectRoot)) ?? {}; const sbConfig: InlineConfig = { configFile: false, cacheDir: resolvePathInStorybookCache('sb-vite', options.cacheKey), - root: options.projectRoot, + root: projectRoot, // Allow storybook deployed as subfolder. See https://github.com/storybookjs/builder-vite/issues/238 base: './', plugins: await pluginConfig(options), diff --git a/code/core/src/types/modules/core-common.ts b/code/core/src/types/modules/core-common.ts index 2b4624a0564b..08d9be50e64f 100644 --- a/code/core/src/types/modules/core-common.ts +++ b/code/core/src/types/modules/core-common.ts @@ -195,7 +195,6 @@ export interface BuilderOptions { ignorePreview?: boolean; cache?: FileSystemCache; configDir: string; - projectRoot?: string; docsMode?: boolean; features?: StorybookConfigRaw['features']; versionCheck?: VersionCheck; From ca427745b65897b82b8a65f5fcd9afdbcdf70fda Mon Sep 17 00:00:00 2001 From: storybook-bot <32066757+storybook-bot@users.noreply.github.com> Date: Tue, 7 Jan 2025 16:26:32 +0000 Subject: [PATCH 34/34] Write changelog for 8.5.0-beta.8 [skip ci] --- CHANGELOG.prerelease.md | 10 ++++++++++ code/package.json | 3 ++- docs/versions/next.json | 2 +- 3 files changed, 13 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.prerelease.md b/CHANGELOG.prerelease.md index cfca4a3569c0..a91d0dfb9a79 100644 --- a/CHANGELOG.prerelease.md +++ b/CHANGELOG.prerelease.md @@ -1,3 +1,13 @@ +## 8.5.0-beta.8 + +- Automigrations: Skip vite config file migration for react native web - [#30190](https://github.com/storybookjs/storybook/pull/30190), thanks @dannyhw! +- Maintenance: Move `@types/node` to `devDeps` consistently - [#30163](https://github.com/storybookjs/storybook/pull/30163), thanks @ndelangen! +- Manager: Optimize getPanels function with memoization - [#30192](https://github.com/storybookjs/storybook/pull/30192), thanks @valentinpalkovic! +- RNW-Vite: Fix reanimated support with babel plugin for node_modules - [#30188](https://github.com/storybookjs/storybook/pull/30188), thanks @dannyhw! +- React: Force act running always in sequence - [#30191](https://github.com/storybookjs/storybook/pull/30191), thanks @valentinpalkovic! +- UI: Fix overlapping shadow of testing module on scrollbar - [#30132](https://github.com/storybookjs/storybook/pull/30132), thanks @valentinpalkovic! +- Vite: Fix wrong import paths when configDir is not in project root - [#30206](https://github.com/storybookjs/storybook/pull/30206), thanks @JReinhold! + ## 8.5.0-beta.7 - Addon Test: Context menu updates - [#30107](https://github.com/storybookjs/storybook/pull/30107), thanks @ghengeveld! diff --git a/code/package.json b/code/package.json index 095188241d45..5acbf397ce35 100644 --- a/code/package.json +++ b/code/package.json @@ -294,5 +294,6 @@ "Dependency Upgrades" ] ] - } + }, + "deferredNextVersion": "8.5.0-beta.8" } diff --git a/docs/versions/next.json b/docs/versions/next.json index 7f572d8e4010..a280f33b712b 100644 --- a/docs/versions/next.json +++ b/docs/versions/next.json @@ -1 +1 @@ -{"version":"8.5.0-beta.7","info":{"plain":"- Addon Test: Context menu updates - [#30107](https://github.com/storybookjs/storybook/pull/30107), thanks @ghengeveld!\n- Storysource Addon: Fix source-loader prettier imports - [#29669](https://github.com/storybookjs/storybook/pull/29669), thanks @slax57!\n- Vue: Extend sourceDecorator to support v-bind and nested keys in slots - [#28787](https://github.com/storybookjs/storybook/pull/28787), thanks @JoCa96!"}} +{"version":"8.5.0-beta.8","info":{"plain":"- Automigrations: Skip vite config file migration for react native web - [#30190](https://github.com/storybookjs/storybook/pull/30190), thanks @dannyhw!\n- Maintenance: Move `@types/node` to `devDeps` consistently - [#30163](https://github.com/storybookjs/storybook/pull/30163), thanks @ndelangen!\n- Manager: Optimize getPanels function with memoization - [#30192](https://github.com/storybookjs/storybook/pull/30192), thanks @valentinpalkovic!\n- RNW-Vite: Fix reanimated support with babel plugin for node_modules - [#30188](https://github.com/storybookjs/storybook/pull/30188), thanks @dannyhw!\n- React: Force act running always in sequence - [#30191](https://github.com/storybookjs/storybook/pull/30191), thanks @valentinpalkovic!\n- UI: Fix overlapping shadow of testing module on scrollbar - [#30132](https://github.com/storybookjs/storybook/pull/30132), thanks @valentinpalkovic!\n- Vite: Fix wrong import paths when configDir is not in project root - [#30206](https://github.com/storybookjs/storybook/pull/30206), thanks @JReinhold!"}}