diff --git a/.vscode/settings.json b/.vscode/settings.json
index 153d5a3d72b0..64101684328f 100644
--- a/.vscode/settings.json
+++ b/.vscode/settings.json
@@ -18,8 +18,8 @@
"editor.codeActionsOnSave": {
"source.fixAll.eslint": "explicit"
},
- "editor.tabSize": 2,
"editor.formatOnSave": true,
+ "editor.tabSize": 2,
"eslint.format.enable": true,
"eslint.options": {
"cache": true,
@@ -49,7 +49,15 @@
"files.associations": {
"*.js": "javascriptreact"
},
+ "javascript.preferences.importModuleSpecifier": "relative",
+ "javascript.preferences.quoteStyle": "single",
+ "js/ts.implicitProjectConfig.target": "ESNext",
"prettier.ignorePath": "./code/.prettierignore",
- "typescript.tsdk": "./code/node_modules/typescript/lib",
- "storyExplorer.storybookConfigDir": "./code/ui/.storybook"
+ "storyExplorer.storybookConfigDir": "./code/.storybook",
+ "typescript.format.enable": false,
+ "typescript.preferences.importModuleSpecifier": "relative",
+ "typescript.preferences.preferTypeOnlyAutoImports": true,
+ "typescript.preferences.quoteStyle": "single",
+ "typescript.preferGoToSourceDefinition": true,
+ "typescript.tsdk": "./code/node_modules/typescript/lib"
}
\ No newline at end of file
diff --git a/CHANGELOG.md b/CHANGELOG.md
index c7e5c4888745..f2a07504e271 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,91 @@
+## 8.2.1
+
+- CPC: Fix type generation - [#28507](https://github.com/storybookjs/storybook/pull/28507), thanks @ndelangen!
+- Types: Update type signatures of objects and functions - [#28503](https://github.com/storybookjs/storybook/pull/28503), thanks @valentinpalkovic!
+
+## 8.2.0
+
+Hold onto your hats! Storybook 8.2 has dropped, packed with a treasure trove of new features and bug fixes:
+
+- 🪝 New test hook `beforeAll`
+- 🕹️ Enhanced `play` function
+- 📦 Portable stories that let you use your stories in other testing tools
+- 🎁 Consolidated dependency to bring you better performance in a smaller package
+- ✨ Brand new onboarding experience to get you up to speed quicker
+- 💯 Hundreds more improvements
+
+
+List of all updates
+
+- Addon Controls: Fix saving on Windows - [#28485](https://github.com/storybookjs/storybook/pull/28485), thanks @ghengeveld!
+- Addon Interactions: Use unique keys when rendering array nodes in panel - [#28423](https://github.com/storybookjs/storybook/pull/28423), thanks @yannbf!
+- Addon Onboarding: Add icons for dev/test/doc to the splash screen - [#28389](https://github.com/storybookjs/storybook/pull/28389), thanks @ghengeveld!
+- Addon Onboarding: New design and flow based on Save from Controls - [#28327](https://github.com/storybookjs/storybook/pull/28327), thanks @ghengeveld!
+- Addon Onboarding: Trigger onboarding during init for Vue and Angular projects - [#28482](https://github.com/storybookjs/storybook/pull/28482), thanks @ghengeveld!
+- Addon-A11y: Fix property default assignment - [#27224](https://github.com/storybookjs/storybook/pull/27224), thanks @valentinpalkovic!
+- Angular: Allow format configuration of custom source preview - [#28305](https://github.com/storybookjs/storybook/pull/28305), thanks @64BitAsura!
+- Angular: Allow outputPath object syntax - [#28144](https://github.com/storybookjs/storybook/pull/28144), thanks @valentinpalkovic!
+- Angular: Cleanup types - [#27189](https://github.com/storybookjs/storybook/pull/27189), thanks @valentinpalkovic!
+- Angular: Fix enableProdMode setting - [#28415](https://github.com/storybookjs/storybook/pull/28415), thanks @valentinpalkovic!
+- Angular: Fix wrong detection of standalone components - [#27353](https://github.com/storybookjs/storybook/pull/27353), thanks @dario-baumberger!
+- Angular: Introduce preserveSymlink builder option - [#28145](https://github.com/storybookjs/storybook/pull/28145), thanks @valentinpalkovic!
+- Angular: Update outputPath default value in angular-cli-webpack.js - [#28418](https://github.com/storybookjs/storybook/pull/28418), thanks @valentinpalkovic!
+- Babel: Ensure story files not transpiled earlier than ES2017 - [#28469](https://github.com/storybookjs/storybook/pull/28469), thanks @kasperpeulen!
+- Blocks: Fix reference to storybook core - [#28422](https://github.com/storybookjs/storybook/pull/28422), thanks @yannbf!
+- Blocks: Prebundle `tocbot` - [#28318](https://github.com/storybookjs/storybook/pull/28318), thanks @shilman!
+- Build: Change require/import order, so that import has higher prio if both are specified - [#27730](https://github.com/storybookjs/storybook/pull/27730), thanks @kasperpeulen!
+- Build: Ignore ts stories in cra/default-js sandbox - [#28354](https://github.com/storybookjs/storybook/pull/28354), thanks @valentinpalkovic!
+- CLI: Add `--no-dev` option to `init` - [#26918](https://github.com/storybookjs/storybook/pull/26918), thanks @fastfrwrd!
+- CLI: Add optional `--dev` and `--no-dev` options to `storybook init` CLI - [#26918](https://github.com/storybookjs/storybook/pull/26918), thanks @fastfrwrd!
+- CLI: Add support for Nuxt to project init - [#26884](https://github.com/storybookjs/storybook/pull/26884), thanks @tobiasdiez!
+- CLI: Fix CLI always asking all automigrations - [#28238](https://github.com/storybookjs/storybook/pull/28238), thanks @ndelangen!
+- CLI: Improve error message when fetching CLI version - [#28289](https://github.com/storybookjs/storybook/pull/28289), thanks @yannbf!
+- CLI: Include `@storybook/addon-svelte-csf` when initializing new projects - [#27070](https://github.com/storybookjs/storybook/pull/27070), thanks @benmccann!
+- CLI: Prebundle get-npm-tarball-url and @ndelangen/get-tarball - [#28481](https://github.com/storybookjs/storybook/pull/28481), thanks @ndelangen!
+- Config: Apply JavaScript-only story glob extensions for JavaScript projects - [#28338](https://github.com/storybookjs/storybook/pull/28338), thanks @valentinpalkovic!
+- Controls: Fix date picker control validation and assignment - [#26695](https://github.com/storybookjs/storybook/pull/26695), thanks @leeovictor!
+- Controls: Fix grouped Radio controls to have the same name - [#23374](https://github.com/storybookjs/storybook/pull/23374), thanks @srapilly!
+- Controls: Throttling makes Color control lagging - [#22615](https://github.com/storybookjs/storybook/pull/22615), thanks @gitstart!
+- Core: Add context as a property of the context (self-referencing) - [#28353](https://github.com/storybookjs/storybook/pull/28353), thanks @kasperpeulen!
+- Core: Add support for `beforeAll` hook - [#28255](https://github.com/storybookjs/storybook/pull/28255), thanks @ghengeveld!
+- Core: Fix startup hang caused by watchStorySpecifiers - [#27016](https://github.com/storybookjs/storybook/pull/27016), thanks @heyimalex!
+- Core: Make sure StorybookError message shows up in browser console and interactions panel - [#28464](https://github.com/storybookjs/storybook/pull/28464), thanks @kasperpeulen!
+- Core: Migrate from `pkg-dir` to `fd-package-json` - [#28270](https://github.com/storybookjs/storybook/pull/28270), thanks @43081j!
+- Core: Refactor phases to run in order `loading` -> `rendering` -> `playing` - [#28431](https://github.com/storybookjs/storybook/pull/28431), thanks @kasperpeulen!
+- Core: Remove more `.stories.mdx` handling - [#25973](https://github.com/storybookjs/storybook/pull/25973), thanks @JReinhold!
+- Core: Remove util dependency - [#28191](https://github.com/storybookjs/storybook/pull/28191), thanks @43081j!
+- CPC: Add `CJS` for `core/components` - [#28440](https://github.com/storybookjs/storybook/pull/28440), thanks @ndelangen!
+- CPC: Core Package Consolidation - [#27039](https://github.com/storybookjs/storybook/pull/27039), thanks @ndelangen!
+- CSF: Automatically extract componentPath - [#24396](https://github.com/storybookjs/storybook/pull/24396), thanks @shilman!
+- CSF: Rename `preview.js` `globals` to `initialGlobals` - [#27517](https://github.com/storybookjs/storybook/pull/27517), thanks @shilman!
+- Dependencies: Allow esbuild version 0.21.x - [#28245](https://github.com/storybookjs/storybook/pull/28245), thanks @edoardocavazza!
+- Dependency: bump `markdown-to-jsx` to v7.4.5 - [#26694](https://github.com/storybookjs/storybook/pull/26694), thanks @xyy94813!
+- Dependency: Bump Express.js - [#26680](https://github.com/storybookjs/storybook/pull/26680), thanks @valentinpalkovic!
+- Dependency: Remove node-fetch - [#28160](https://github.com/storybookjs/storybook/pull/28160), thanks @yk-kd!
+- Dependency: Upgrade `webpack-virtual-modules` to 0.6.0 - [#27102](https://github.com/storybookjs/storybook/pull/27102), thanks @fyodorovandrei!
+- Deps: Migrate from `read-pkg-up` to `fd-package-json` - [#28272](https://github.com/storybookjs/storybook/pull/28272), thanks @43081j!
+- Docs-tools: Replace `doctrine` with `jsdoc-type-pratt-parser` - [#26305](https://github.com/storybookjs/storybook/pull/26305), thanks @43081j!
+- Docs: Filter mount stories from `Stories` block, error when referenced in MDX - [#28434](https://github.com/storybookjs/storybook/pull/28434), thanks @kasperpeulen!
+- Docs: Fix `Typeset` Doc block `fontSizes` type - [#26475](https://github.com/storybookjs/storybook/pull/26475), thanks @noranda!
+- Index: Fix MDX to override project-level autodocs - [#28461](https://github.com/storybookjs/storybook/pull/28461), thanks @shilman!
+- Indexer: Improve locating stories with specials chars in path - [#22110](https://github.com/storybookjs/storybook/pull/22110), thanks @jankoritak!
+- Next: Set default targets for next babel config - [#28443](https://github.com/storybookjs/storybook/pull/28443), thanks @kasperpeulen!
+- Next.js: Set `env.bugfixes` in SWC so destructuring is never transpiled - [#28363](https://github.com/storybookjs/storybook/pull/28363), thanks @kasperpeulen!
+- React: Export ButtonProps and HeaderProps in CLI templates - [#28487](https://github.com/storybookjs/storybook/pull/28487), thanks @valentinpalkovic!
+- SWC: Set default targets for swc that align with our esbuild targets - [#28435](https://github.com/storybookjs/storybook/pull/28435), thanks @kasperpeulen!
+- Telemetry: Stop prompting about crash reports in CI - [#28433](https://github.com/storybookjs/storybook/pull/28433), thanks @yannbf!
+- Test: Add args to `mount` in react, svelte, and vue renderers - [#28385](https://github.com/storybookjs/storybook/pull/28385), thanks @kasperpeulen!
+- Test: Add mount property to the story context - [#28383](https://github.com/storybookjs/storybook/pull/28383), thanks @kasperpeulen!
+- Test: Enhance the context with canvas when the test package is used - [#28368](https://github.com/storybookjs/storybook/pull/28368), thanks @kasperpeulen!
+- Test: Improve MountMustBeDestructuredError error message - [#28468](https://github.com/storybookjs/storybook/pull/28468), thanks @kasperpeulen!
+- Test: Reactive spies preserve the this instance - [#28445](https://github.com/storybookjs/storybook/pull/28445), thanks @kasperpeulen!
+- Types: Fix type implementation for `CompatibleString` - [#27180](https://github.com/storybookjs/storybook/pull/27180), thanks @sni-J!
+- Vite: Fix asset warning by externalizing sb-common-assets font - [#27110](https://github.com/storybookjs/storybook/pull/27110), thanks @valentinpalkovic!
+- Vue3: Enable new hydration mismatch compile time flag - [#27192](https://github.com/storybookjs/storybook/pull/27192), thanks @Cherry!
+- Webpack5/Vite: Fix sourcemaps - [#27171](https://github.com/storybookjs/storybook/pull/27171), thanks @valentinpalkovic!
+
+
+
## 8.1.11
- Telemetry: Detect Node version - [#28299](https://github.com/storybookjs/storybook/pull/28299), thanks @yannbf!
@@ -80,102 +168,101 @@ Storybook 8.1 is here with a tone of new features and bug fixes:
List of all updates
- - Addon-actions: Fix falsy args printing as object - 22163 - [#26917](https://github.com/storybookjs/storybook/pull/26917), thanks @Fatcat560!
- - Addon-docs: Fix MDX compilation with `@vitejs/plugin-react-swc` and plugins - [#26837](https://github.com/storybookjs/storybook/pull/26837), thanks @JReinhold!
- - Addon-docs: Fix `providerImportSource` extension - [#26868](https://github.com/storybookjs/storybook/pull/26868), thanks @bashmish!
- - Addon-docs: Fix `react-dom/server` imports breaking stories and docs - [#26557](https://github.com/storybookjs/storybook/pull/26557), thanks @JReinhold!
- - Addon-docs: Support Stencil based display names in source snippets - [#26592](https://github.com/storybookjs/storybook/pull/26592), thanks @yannbf!
- - Addon-docs: Fix `[Object object]` displayName in some JSX components - [#26566](https://github.com/storybookjs/storybook/pull/26566), thanks @yannbf!
- - Angular: Add type support for Angular\'s input signals - [#26413](https://github.com/storybookjs/storybook/pull/26413), thanks @valentinpalkovic!
- - Angular: Add type support for Angular\'s output signals - [#26546](https://github.com/storybookjs/storybook/pull/26546), thanks @valentinpalkovic!
- - API: Add API access to sidebar renderLabel - [#27099](https://github.com/storybookjs/storybook/pull/27099), thanks @shilman!
- - Args: Add possibility to mark controls as read-only - [#26577](https://github.com/storybookjs/storybook/pull/26577), thanks @valentinpalkovic!
- - Automigrations: Fix name of VTA addon - [#26816](https://github.com/storybookjs/storybook/pull/26816), thanks @valentinpalkovic!
- - Automigrations: Add migration note about new react-docgen default - [#26620](https://github.com/storybookjs/storybook/pull/26620), thanks @valentinpalkovic!
- - Automigrations: Fix missing support for mts vite config - [#26441](https://github.com/storybookjs/storybook/pull/26441), thanks @drik98!
- - Automigrations: Improve react-docgen automigration prompt - [#27106](https://github.com/storybookjs/storybook/pull/27106), thanks @valentinpalkovic!
- - Blocks: Add `of` prop to `Subtitle` - [#22552](https://github.com/storybookjs/storybook/pull/22552), thanks @joaonunomota!
- - Blocks: Add `of` prop to `Title` - [#23728](https://github.com/storybookjs/storybook/pull/23728), thanks @Sidnioulz!
- - CLI: Add --config-dir flag to add command - [#26771](https://github.com/storybookjs/storybook/pull/26771), thanks @eric-blue!
- - CLI: Add --config-dir flag to migrate command - [#26721](https://github.com/storybookjs/storybook/pull/26721), thanks @yannbf!
- - CLI: Add main.js `docs.autodocs` automigration - [#27089](https://github.com/storybookjs/storybook/pull/27089), thanks @shilman!
- - CLI: Add Visual Tests addon install auto-migration when upgrading to 8.0.x - [#26766](https://github.com/storybookjs/storybook/pull/26766), thanks @ndelangen!
- - CLI: Automigrate improve upgrade storybook related packages - [#26497](https://github.com/storybookjs/storybook/pull/26497), thanks @ndelangen!
- - CLI: Automigrations copy edits - [#26342](https://github.com/storybookjs/storybook/pull/26342), thanks @joevaugh4n!
- - CLI: Fix eslint configuration for string `extends` - [#27097](https://github.com/storybookjs/storybook/pull/27097), thanks @shilman!
- - CLI: Improve Yarn berry error parsing - [#26616](https://github.com/storybookjs/storybook/pull/26616), thanks @yannbf!
- - CLI: Improve `vite-config-file.ts` - [#26375](https://github.com/storybookjs/storybook/pull/26375), thanks @joevaugh4n!
- - CLI: Instruct the correct auto-migration command - [#26515](https://github.com/storybookjs/storybook/pull/26515), thanks @ndelangen!
- - CLI: Introduce package manager fallback for initializing Storybook in an empty directory with yarn1 - [#26500](https://github.com/storybookjs/storybook/pull/26500), thanks @valentinpalkovic!
- - CLI: Throw an error when running upgrade command in incorrect cwd - [#26585](https://github.com/storybookjs/storybook/pull/26585), thanks @yannbf!
- - Codemods: Escape filename given as argument - [#26430](https://github.com/storybookjs/storybook/pull/26430), thanks @YukiKitagata!
- - Controls: Add Channels API to search for files in the project root - [#26726](https://github.com/storybookjs/storybook/pull/26726), thanks @valentinpalkovic!
- - Controls: Added server channel to create a new story - [#26769](https://github.com/storybookjs/storybook/pull/26769), thanks @valentinpalkovic!
- - Controls: Add UI to create new story files - [#26875](https://github.com/storybookjs/storybook/pull/26875), thanks @valentinpalkovic!
- - Controls: Fix crashing when docgen extraction partially fails - [#26862](https://github.com/storybookjs/storybook/pull/26862), thanks @yannbf!
- - Controls: Fix disable condition in ArgControl component - [#26567](https://github.com/storybookjs/storybook/pull/26567), thanks @valentinpalkovic!
- - Controls: Fix number controls do not reset - [#26372](https://github.com/storybookjs/storybook/pull/26372), thanks @jiyiru!
- - Core: Add `duration` and `onClick` support to Notification API and improve Notification UI - [#26696](https://github.com/storybookjs/storybook/pull/26696), thanks @ghengeveld!
- - Core: Drop unneeded `UPDATE_STORY_ARGS` which was for SSv6 - [#25993](https://github.com/storybookjs/storybook/pull/25993), thanks @tmeasday!
- - Core: Ensure that simultaneous onStoriesChanged don\'t clobber each other - [#26882](https://github.com/storybookjs/storybook/pull/26882), thanks @tmeasday!
- - Core: Fix filters not being applied in WebKit - [#26949](https://github.com/storybookjs/storybook/pull/26949), thanks @JReinhold!
- - Core: Fix preloading too early - [#26442](https://github.com/storybookjs/storybook/pull/26442), thanks @ndelangen!
- - Core: Implement file formatter - [#26809](https://github.com/storybookjs/storybook/pull/26809), thanks @valentinpalkovic!
- - Core: Optimize clearNotification - [#26415](https://github.com/storybookjs/storybook/pull/26415), thanks @ndelangen!
- - Core: Save from controls - [#26827](https://github.com/storybookjs/storybook/pull/26827), thanks @ndelangen!
- - CSF: Allow default export without title or component attributes - [#26516](https://github.com/storybookjs/storybook/pull/26516), thanks @kasperpeulen!
- - CSF: Fix typings for control and other properties of argTypes - [#26824](https://github.com/storybookjs/storybook/pull/26824), thanks @kasperpeulen!
- - CSF: Make sure loaders/decorators can be used as array - [#26514](https://github.com/storybookjs/storybook/pull/26514), thanks @kasperpeulen!
- - Dependencies: Upgrade @storybook/csf to 0.1.5 - [#26958](https://github.com/storybookjs/storybook/pull/26958), thanks @Cherry!
- - Dependencies: Upgrade `@joshwooding/vite-plugin-react-docgen-typescript` to `0.3.1` - [#26673](https://github.com/storybookjs/storybook/pull/26673), thanks @joshwooding!
- - Dependencies: Upgrade `ejs` to `3.1.10` - [#27054](https://github.com/storybookjs/storybook/pull/27054), thanks @RiuSalvi!
- - Dependencies: Bump es-module-lexer - [#26737](https://github.com/storybookjs/storybook/pull/26737), thanks @valentinpalkovic!
- - Dependencies: Update globby dependency - [#26733](https://github.com/storybookjs/storybook/pull/26733), thanks @valentinpalkovic!
- - Dependencies: Update postcss-loader in Next.js framework - [#26707](https://github.com/storybookjs/storybook/pull/26707), thanks @valentinpalkovic!
- - Doc Tools: Signature Type Error Handling - [#26774](https://github.com/storybookjs/storybook/pull/26774), thanks @ethriel3695!
- - Indexer: Escape special characters in storyImport regex - [#22545](https://github.com/storybookjs/storybook/pull/22545), thanks @VojGin!
- - Maintenance: Fix performance regressions - [#26411](https://github.com/storybookjs/storybook/pull/26411), thanks @kasperpeulen!
- - MDX: Do not transform `http://` links - [#26488](https://github.com/storybookjs/storybook/pull/26488), thanks @JReinhold!
- - Next.js: Fix Compatibility with
-
## 8.0.10
- MDX: Don't transform `http://` links - [#26488](https://github.com/storybookjs/storybook/pull/26488), thanks @JReinhold!
@@ -245,7 +332,7 @@ Storybook 8.1 is here with a tone of new features and bug fixes:
- Controls: Fix type summary when table.type unset - [#26283](https://github.com/storybookjs/storybook/pull/26283), thanks @shilman!
- Core: Fix addon bundling script - [#26145](https://github.com/storybookjs/storybook/pull/26145), thanks @ndelangen!
- Core: Fix fail to load `main.ts` error message - [#26035](https://github.com/storybookjs/storybook/pull/26035), thanks @ndelangen!
-- Maintenance: Fix performance regressions - [#26411](https://github.com/storybookjs/storybook/pull/26411), thanks @kasperpeulen!
+- Maintenance: Fix performance regressions - [#26411](https://github.com/storybookjs/storybook/pull/26411), thanks @kasperpeulen!
## 8.0.0
diff --git a/CHANGELOG.prerelease.md b/CHANGELOG.prerelease.md
index 55d108d033b5..1fa61452d5e9 100644
--- a/CHANGELOG.prerelease.md
+++ b/CHANGELOG.prerelease.md
@@ -1,3 +1,11 @@
+## 8.3.0-alpha.0
+
+
+## 8.2.0-beta.3
+
+- Addon Controls: Fix saving on Windows - [#28485](https://github.com/storybookjs/storybook/pull/28485), thanks @ghengeveld!
+- React: Export ButtonProps and HeaderProps in CLI templates - [#28487](https://github.com/storybookjs/storybook/pull/28487), thanks @valentinpalkovic!
+
## 8.2.0-beta.2
- Addon Onboarding: Trigger onboarding during init for Vue and Angular projects - [#28482](https://github.com/storybookjs/storybook/pull/28482), thanks @ghengeveld!
diff --git a/MAINTAINERS.md b/MAINTAINERS.md
index e7640a31d10e..650a3c0a17a9 100644
--- a/MAINTAINERS.md
+++ b/MAINTAINERS.md
@@ -10,12 +10,12 @@ This document outlines some of the processes that the maintainers should adhere
| label name | purpose |
| ------------------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------- |
| accessibility | Issue, bug, or pull request related to accessibility |
-| addon:(name) | Issue, bug, or pull request related to Storybook addons (e.g., [Controls](/docs/essentials/controls.md)) |
+| addon:(name) | Issue, bug, or pull request related to Storybook addons (e.g., [Controls](/docs/essentials/controls.mdx)) |
| app:(name) | Issue, bug, or pull request related to Storybook's supported frameworks (e.g., React) |
-| api:(name) | Issue, bug, or pull request related to Storybook's API (e.g.,[makeDecorator](/docs/addons/addons-api.md#makeDecorator-API)) |
-| args | Issue, bug, or pull request related to Storybook's [args](/docs/writing-stories/args.md) |
+| api:(name) | Issue, bug, or pull request related to Storybook's API (e.g.,[makeDecorator](/docs/addons/addons-api.mdx#makeDecorator-API)) |
+| args | Issue, bug, or pull request related to Storybook's [args](/docs/writing-stories/args.mdx) |
| babel/webpack | Issue, bug, or pull request related to Storybook's build system (e.g., Webpack or Babel), for Webpack 5 issues see below |
-| block:(name) | Issue or bug within a certain surface are of Storybook (e.g., [argsTable](/docs/writing-docs/doc-block-argstable.md)) |
+| block:(name) | Issue or bug within a certain surface are of Storybook (e.g., [argTypes](/docs/api/doc-blocks/doc-block-argtypes.mdx)) |
| BREAKING CHANGE | Issue or pull request that introduces a breaking change within Storybook's ecosystem. |
| BREAKING PRERELASE | Breaking, but only for prerelease users (not relative to the stable release) |
| build-storybook | Issue, bug, or pull request related to Storybook's production build |
@@ -24,12 +24,12 @@ This document outlines some of the processes that the maintainers should adhere
| cli | Issue, bug, or pull request that affects the Storybook's CLI |
| compatibility with other tools | Issue, bug, or pull request between Storybook and other tools (e.g., [Nuxt](https://nuxtjs.org/)) |
| components | Issue, bug, or pull request related to Storybook's internal components |
-| composition | Issue, bug, or pull request related to Storybook [Composition](/docs/sharing/storybook-composition.md) |
-| configuration | Issue, bug, or pull request related to Storybook [configuration](/docs/configure/index.md) |
+| composition | Issue, bug, or pull request related to Storybook [Composition](/docs/sharing/storybook-composition.mdx) |
+| configuration | Issue, bug, or pull request related to Storybook [configuration](/docs/configure/index.mdx) |
| core | Issue, bug, or pull request related to Storybook's Core |
| cra | Issue, bug, or pull request that affects Storybook's compatibility with Create React APP ([CRA](https://create-react-app.dev/docs/getting-started/)) |
-| CSF | Issue, bug, or pull request related to Storybook's [Component Story Format (CSF)](/docs/api/csf.md) |
-| decorators | Issue, bug, or pull related to Storybook's [Decorators](/docs/writing-stories/decorators.md) |
+| CSF | Issue, bug, or pull request related to Storybook's [Component Story Format (CSF)](/docs/api/csf.mdx) |
+| decorators | Issue, bug, or pull related to Storybook's [Decorators](/docs/writing-stories/decorators.mdx) |
| dependencies | Issue, bug, or pull request that related to upstream dependencies |
| discussion | Issue currently being discussed between the maintainers and community |
| do not merge | Pull request that will introduce regressions and will not be merged |
@@ -68,7 +68,7 @@ This document outlines some of the processes that the maintainers should adhere
| security | Issue, bug, or pull request that addresses security with Storybook |
| small | Issue or pull request that requires a small amount of work to be done |
| source-loader | Issue, bug, or pull request related to code display within Storybook's stories |
-| theming | Issue, bug, or pull request related to Storybook customization (e.g., [theming](/docs/configure/theming.md)) |
+| theming | Issue, bug, or pull request related to Storybook customization (e.g., [theming](/docs/configure/user-interface/theming.mdx)) |
| todo | Issue or pull request currently being worked on |
| typescript | Issue, bug, or pull request related to TypeScript |
| ui | Issue, bug, or pull request related to Storybook's UI |
diff --git a/code/.eslintrc.js b/code/.eslintrc.js
index cb18114a6a94..efb47a4e193f 100644
--- a/code/.eslintrc.js
+++ b/code/.eslintrc.js
@@ -208,6 +208,13 @@ module.exports = {
'local-rules/no-uncategorized-errors': 'warn',
},
},
+ {
+ files: ['**/*.ts', '!**/*.test.*', '!**/*.spec.*'],
+ excludedFiles: ['**/*.test.*'],
+ rules: {
+ 'local-rules/storybook-monorepo-imports': 'error',
+ },
+ },
{
files: ['./core/src/preview-errors.ts'],
excludedFiles: ['**/*.test.*'],
diff --git a/code/addons/a11y/package.json b/code/addons/a11y/package.json
index ea465a851dc2..ebaea076514c 100644
--- a/code/addons/a11y/package.json
+++ b/code/addons/a11y/package.json
@@ -1,6 +1,6 @@
{
"name": "@storybook/addon-a11y",
- "version": "8.2.0-beta.2",
+ "version": "8.3.0-alpha.0",
"description": "Test component compliance with web accessibility standards",
"keywords": [
"a11y",
diff --git a/code/addons/a11y/tsconfig.json b/code/addons/a11y/tsconfig.json
index 1dc5a72190bd..73a65ef2ef6e 100644
--- a/code/addons/a11y/tsconfig.json
+++ b/code/addons/a11y/tsconfig.json
@@ -1,8 +1,5 @@
{
"extends": "../../tsconfig.json",
- "compilerOptions": {
- "skipLibCheck": true,
- "strict": true
- },
+ "compilerOptions": {},
"include": ["src/**/*"]
}
diff --git a/code/addons/actions/package.json b/code/addons/actions/package.json
index f19862ff69f5..dc1cc04c3558 100644
--- a/code/addons/actions/package.json
+++ b/code/addons/actions/package.json
@@ -1,6 +1,6 @@
{
"name": "@storybook/addon-actions",
- "version": "8.2.0-beta.2",
+ "version": "8.3.0-alpha.0",
"description": "Get UI feedback when an action is performed on an interactive element",
"keywords": [
"storybook",
diff --git a/code/addons/actions/src/containers/ActionLogger/index.tsx b/code/addons/actions/src/containers/ActionLogger/index.tsx
index 3da9cbe52e77..ff9e50302633 100644
--- a/code/addons/actions/src/containers/ActionLogger/index.tsx
+++ b/code/addons/actions/src/containers/ActionLogger/index.tsx
@@ -26,7 +26,6 @@ const safeDeepEqual = (a: any, b: any): boolean => {
};
export default class ActionLogger extends Component {
- // @ts-expect-error Unused, possibly remove, leaving, because it could be accessed even though it is private
private mounted: boolean;
constructor(props: ActionLoggerProps) {
diff --git a/code/addons/actions/tsconfig.json b/code/addons/actions/tsconfig.json
index a4429176e35f..73a65ef2ef6e 100644
--- a/code/addons/actions/tsconfig.json
+++ b/code/addons/actions/tsconfig.json
@@ -1,7 +1,5 @@
{
"extends": "../../tsconfig.json",
- "compilerOptions": {
- "strict": true
- },
+ "compilerOptions": {},
"include": ["src/**/*"]
}
diff --git a/code/addons/backgrounds/package.json b/code/addons/backgrounds/package.json
index b1d50a643ca6..7199d6d903cb 100644
--- a/code/addons/backgrounds/package.json
+++ b/code/addons/backgrounds/package.json
@@ -1,6 +1,6 @@
{
"name": "@storybook/addon-backgrounds",
- "version": "8.2.0-beta.2",
+ "version": "8.3.0-alpha.0",
"description": "Switch backgrounds to view components in different settings",
"keywords": [
"addon",
diff --git a/code/addons/backgrounds/tsconfig.json b/code/addons/backgrounds/tsconfig.json
index b5a2f9a70918..73a65ef2ef6e 100644
--- a/code/addons/backgrounds/tsconfig.json
+++ b/code/addons/backgrounds/tsconfig.json
@@ -1,7 +1,5 @@
{
"extends": "../../tsconfig.json",
- "include": ["src/**/*"],
- "compilerOptions": {
- "strict": true
- }
+ "compilerOptions": {},
+ "include": ["src/**/*"]
}
diff --git a/code/addons/controls/package.json b/code/addons/controls/package.json
index 8c3a7fde2c5c..8d2460f22c6b 100644
--- a/code/addons/controls/package.json
+++ b/code/addons/controls/package.json
@@ -1,6 +1,6 @@
{
"name": "@storybook/addon-controls",
- "version": "8.2.0-beta.2",
+ "version": "8.3.0-alpha.0",
"description": "Interact with component inputs dynamically in the Storybook UI",
"keywords": [
"addon",
diff --git a/code/addons/controls/tsconfig.json b/code/addons/controls/tsconfig.json
index a4429176e35f..73a65ef2ef6e 100644
--- a/code/addons/controls/tsconfig.json
+++ b/code/addons/controls/tsconfig.json
@@ -1,7 +1,5 @@
{
"extends": "../../tsconfig.json",
- "compilerOptions": {
- "strict": true
- },
+ "compilerOptions": {},
"include": ["src/**/*"]
}
diff --git a/code/addons/docs/package.json b/code/addons/docs/package.json
index 3b06145728f4..8edc0d1a8063 100644
--- a/code/addons/docs/package.json
+++ b/code/addons/docs/package.json
@@ -1,6 +1,6 @@
{
"name": "@storybook/addon-docs",
- "version": "8.2.0-beta.2",
+ "version": "8.3.0-alpha.0",
"description": "Document component usage and properties in Markdown",
"keywords": [
"addon",
diff --git a/code/addons/docs/tsconfig.json b/code/addons/docs/tsconfig.json
index 1dc5a72190bd..73a65ef2ef6e 100644
--- a/code/addons/docs/tsconfig.json
+++ b/code/addons/docs/tsconfig.json
@@ -1,8 +1,5 @@
{
"extends": "../../tsconfig.json",
- "compilerOptions": {
- "skipLibCheck": true,
- "strict": true
- },
+ "compilerOptions": {},
"include": ["src/**/*"]
}
diff --git a/code/addons/essentials/package.json b/code/addons/essentials/package.json
index 27f55754433d..d4ddbcff684d 100644
--- a/code/addons/essentials/package.json
+++ b/code/addons/essentials/package.json
@@ -1,6 +1,6 @@
{
"name": "@storybook/addon-essentials",
- "version": "8.2.0-beta.2",
+ "version": "8.3.0-alpha.0",
"description": "Curated addons to bring out the best of Storybook",
"keywords": [
"addon",
diff --git a/code/addons/essentials/tsconfig.json b/code/addons/essentials/tsconfig.json
index a4429176e35f..73a65ef2ef6e 100644
--- a/code/addons/essentials/tsconfig.json
+++ b/code/addons/essentials/tsconfig.json
@@ -1,7 +1,5 @@
{
"extends": "../../tsconfig.json",
- "compilerOptions": {
- "strict": true
- },
+ "compilerOptions": {},
"include": ["src/**/*"]
}
diff --git a/code/addons/gfm/package.json b/code/addons/gfm/package.json
index 63e247e9973d..dd4ff4c3d8ee 100644
--- a/code/addons/gfm/package.json
+++ b/code/addons/gfm/package.json
@@ -1,6 +1,6 @@
{
"name": "@storybook/addon-mdx-gfm",
- "version": "8.2.0-beta.2",
+ "version": "8.3.0-alpha.0",
"description": "GitHub Flavored Markdown in Storybook",
"keywords": [
"addon",
diff --git a/code/addons/gfm/tsconfig.json b/code/addons/gfm/tsconfig.json
index 1dc5a72190bd..73a65ef2ef6e 100644
--- a/code/addons/gfm/tsconfig.json
+++ b/code/addons/gfm/tsconfig.json
@@ -1,8 +1,5 @@
{
"extends": "../../tsconfig.json",
- "compilerOptions": {
- "skipLibCheck": true,
- "strict": true
- },
+ "compilerOptions": {},
"include": ["src/**/*"]
}
diff --git a/code/addons/highlight/package.json b/code/addons/highlight/package.json
index 0350fb6e9ec8..39c938c555c1 100644
--- a/code/addons/highlight/package.json
+++ b/code/addons/highlight/package.json
@@ -1,6 +1,6 @@
{
"name": "@storybook/addon-highlight",
- "version": "8.2.0-beta.2",
+ "version": "8.3.0-alpha.0",
"description": "Highlight DOM nodes within your stories",
"keywords": [
"storybook-addons",
diff --git a/code/addons/highlight/tsconfig.json b/code/addons/highlight/tsconfig.json
index e0354bb7bcc7..73a65ef2ef6e 100644
--- a/code/addons/highlight/tsconfig.json
+++ b/code/addons/highlight/tsconfig.json
@@ -1,8 +1,5 @@
{
"extends": "../../tsconfig.json",
- "compilerOptions": {
- "types": ["webpack-env"],
- "strict": true
- },
+ "compilerOptions": {},
"include": ["src/**/*"]
}
diff --git a/code/addons/interactions/package.json b/code/addons/interactions/package.json
index cc39cea5b0c5..380f82dae2f8 100644
--- a/code/addons/interactions/package.json
+++ b/code/addons/interactions/package.json
@@ -1,6 +1,6 @@
{
"name": "@storybook/addon-interactions",
- "version": "8.2.0-beta.2",
+ "version": "8.3.0-alpha.0",
"description": "Automate, test and debug user interactions",
"keywords": [
"storybook-addons",
@@ -55,6 +55,7 @@
"dependencies": {
"@storybook/global": "^5.0.0",
"@storybook/instrumenter": "workspace:*",
+ "@storybook/test": "workspace:*",
"polished": "^4.2.2",
"ts-dedent": "^2.2.0"
},
diff --git a/code/addons/interactions/tsconfig.json b/code/addons/interactions/tsconfig.json
index a6f65038a17b..a7d41e8a79b5 100644
--- a/code/addons/interactions/tsconfig.json
+++ b/code/addons/interactions/tsconfig.json
@@ -1,7 +1,6 @@
{
"extends": "../../tsconfig.json",
"compilerOptions": {
- "skipLibCheck": true,
"strict": false
},
"include": ["src/**/*"]
diff --git a/code/addons/jest/package.json b/code/addons/jest/package.json
index 5444d4048557..ee2c153f25cc 100644
--- a/code/addons/jest/package.json
+++ b/code/addons/jest/package.json
@@ -1,6 +1,6 @@
{
"name": "@storybook/addon-jest",
- "version": "8.2.0-beta.2",
+ "version": "8.3.0-alpha.0",
"description": "React storybook addon that show component jest report",
"keywords": [
"addon",
diff --git a/code/addons/jest/tsconfig.json b/code/addons/jest/tsconfig.json
index a4429176e35f..73a65ef2ef6e 100644
--- a/code/addons/jest/tsconfig.json
+++ b/code/addons/jest/tsconfig.json
@@ -1,7 +1,5 @@
{
"extends": "../../tsconfig.json",
- "compilerOptions": {
- "strict": true
- },
+ "compilerOptions": {},
"include": ["src/**/*"]
}
diff --git a/code/addons/links/package.json b/code/addons/links/package.json
index 1203240ea4a7..ffdc2edc3b0b 100644
--- a/code/addons/links/package.json
+++ b/code/addons/links/package.json
@@ -1,6 +1,6 @@
{
"name": "@storybook/addon-links",
- "version": "8.2.0-beta.2",
+ "version": "8.3.0-alpha.0",
"description": "Link stories together to build demos and prototypes with your UI components",
"keywords": [
"addon",
diff --git a/code/addons/links/tsconfig.json b/code/addons/links/tsconfig.json
index 5b3f3a56a68d..73a65ef2ef6e 100644
--- a/code/addons/links/tsconfig.json
+++ b/code/addons/links/tsconfig.json
@@ -1,8 +1,5 @@
{
"extends": "../../tsconfig.json",
- "compilerOptions": {
- "strict": true,
- "skipLibCheck": true
- },
+ "compilerOptions": {},
"include": ["src/**/*"]
}
diff --git a/code/addons/measure/package.json b/code/addons/measure/package.json
index bc37e8c5da08..b31b31e8b2ee 100644
--- a/code/addons/measure/package.json
+++ b/code/addons/measure/package.json
@@ -1,6 +1,6 @@
{
"name": "@storybook/addon-measure",
- "version": "8.2.0-beta.2",
+ "version": "8.3.0-alpha.0",
"description": "Inspect layouts by visualizing the box model",
"keywords": [
"storybook-addons",
diff --git a/code/addons/measure/tsconfig.json b/code/addons/measure/tsconfig.json
index b5a2f9a70918..73a65ef2ef6e 100644
--- a/code/addons/measure/tsconfig.json
+++ b/code/addons/measure/tsconfig.json
@@ -1,7 +1,5 @@
{
"extends": "../../tsconfig.json",
- "include": ["src/**/*"],
- "compilerOptions": {
- "strict": true
- }
+ "compilerOptions": {},
+ "include": ["src/**/*"]
}
diff --git a/code/addons/onboarding/package.json b/code/addons/onboarding/package.json
index fbce01abc7c3..bb22179dbc1a 100644
--- a/code/addons/onboarding/package.json
+++ b/code/addons/onboarding/package.json
@@ -1,6 +1,6 @@
{
"name": "@storybook/addon-onboarding",
- "version": "8.2.0-beta.2",
+ "version": "8.3.0-alpha.0",
"description": "Storybook Addon Onboarding - Introduces a new onboarding experience",
"keywords": [
"storybook-addons",
diff --git a/code/addons/onboarding/tsconfig.json b/code/addons/onboarding/tsconfig.json
index a4429176e35f..73a65ef2ef6e 100644
--- a/code/addons/onboarding/tsconfig.json
+++ b/code/addons/onboarding/tsconfig.json
@@ -1,7 +1,5 @@
{
"extends": "../../tsconfig.json",
- "compilerOptions": {
- "strict": true
- },
+ "compilerOptions": {},
"include": ["src/**/*"]
}
diff --git a/code/addons/outline/package.json b/code/addons/outline/package.json
index b087bbcfe6d5..c5d87b4333c5 100644
--- a/code/addons/outline/package.json
+++ b/code/addons/outline/package.json
@@ -1,6 +1,6 @@
{
"name": "@storybook/addon-outline",
- "version": "8.2.0-beta.2",
+ "version": "8.3.0-alpha.0",
"description": "Outline all elements with CSS to help with layout placement and alignment",
"keywords": [
"storybook-addons",
diff --git a/code/addons/outline/tsconfig.json b/code/addons/outline/tsconfig.json
index b5a2f9a70918..73a65ef2ef6e 100644
--- a/code/addons/outline/tsconfig.json
+++ b/code/addons/outline/tsconfig.json
@@ -1,7 +1,5 @@
{
"extends": "../../tsconfig.json",
- "include": ["src/**/*"],
- "compilerOptions": {
- "strict": true
- }
+ "compilerOptions": {},
+ "include": ["src/**/*"]
}
diff --git a/code/addons/storysource/package.json b/code/addons/storysource/package.json
index 5afda9a7e455..a5ad958fa003 100644
--- a/code/addons/storysource/package.json
+++ b/code/addons/storysource/package.json
@@ -1,6 +1,6 @@
{
"name": "@storybook/addon-storysource",
- "version": "8.2.0-beta.2",
+ "version": "8.3.0-alpha.0",
"description": "View a story’s source code to see how it works and paste into your app",
"keywords": [
"addon",
diff --git a/code/addons/storysource/tsconfig.json b/code/addons/storysource/tsconfig.json
index 1dc5a72190bd..73a65ef2ef6e 100644
--- a/code/addons/storysource/tsconfig.json
+++ b/code/addons/storysource/tsconfig.json
@@ -1,8 +1,5 @@
{
"extends": "../../tsconfig.json",
- "compilerOptions": {
- "skipLibCheck": true,
- "strict": true
- },
+ "compilerOptions": {},
"include": ["src/**/*"]
}
diff --git a/code/addons/themes/package.json b/code/addons/themes/package.json
index b91367e218b6..20776833b488 100644
--- a/code/addons/themes/package.json
+++ b/code/addons/themes/package.json
@@ -1,6 +1,6 @@
{
"name": "@storybook/addon-themes",
- "version": "8.2.0-beta.2",
+ "version": "8.3.0-alpha.0",
"description": "Switch between multiple themes for you components in Storybook",
"keywords": [
"css",
diff --git a/code/addons/themes/tsconfig.json b/code/addons/themes/tsconfig.json
index b5a2f9a70918..73a65ef2ef6e 100644
--- a/code/addons/themes/tsconfig.json
+++ b/code/addons/themes/tsconfig.json
@@ -1,7 +1,5 @@
{
"extends": "../../tsconfig.json",
- "include": ["src/**/*"],
- "compilerOptions": {
- "strict": true
- }
+ "compilerOptions": {},
+ "include": ["src/**/*"]
}
diff --git a/code/addons/toolbars/package.json b/code/addons/toolbars/package.json
index 5d2f191295b1..614745a5f46d 100644
--- a/code/addons/toolbars/package.json
+++ b/code/addons/toolbars/package.json
@@ -1,6 +1,6 @@
{
"name": "@storybook/addon-toolbars",
- "version": "8.2.0-beta.2",
+ "version": "8.3.0-alpha.0",
"description": "Create your own toolbar items that control story rendering",
"keywords": [
"addon",
diff --git a/code/addons/toolbars/tsconfig.json b/code/addons/toolbars/tsconfig.json
index a4429176e35f..73a65ef2ef6e 100644
--- a/code/addons/toolbars/tsconfig.json
+++ b/code/addons/toolbars/tsconfig.json
@@ -1,7 +1,5 @@
{
"extends": "../../tsconfig.json",
- "compilerOptions": {
- "strict": true
- },
+ "compilerOptions": {},
"include": ["src/**/*"]
}
diff --git a/code/addons/viewport/package.json b/code/addons/viewport/package.json
index 2643a03b20af..32b29f79e6a1 100644
--- a/code/addons/viewport/package.json
+++ b/code/addons/viewport/package.json
@@ -1,6 +1,6 @@
{
"name": "@storybook/addon-viewport",
- "version": "8.2.0-beta.2",
+ "version": "8.3.0-alpha.0",
"description": "Build responsive components by adjusting Storybook’s viewport size and orientation",
"keywords": [
"addon",
diff --git a/code/addons/viewport/tsconfig.json b/code/addons/viewport/tsconfig.json
index b5a2f9a70918..73a65ef2ef6e 100644
--- a/code/addons/viewport/tsconfig.json
+++ b/code/addons/viewport/tsconfig.json
@@ -1,7 +1,5 @@
{
"extends": "../../tsconfig.json",
- "include": ["src/**/*"],
- "compilerOptions": {
- "strict": true
- }
+ "compilerOptions": {},
+ "include": ["src/**/*"]
}
diff --git a/code/builders/builder-vite/package.json b/code/builders/builder-vite/package.json
index 892e88d98e3e..9db90a1648ae 100644
--- a/code/builders/builder-vite/package.json
+++ b/code/builders/builder-vite/package.json
@@ -1,6 +1,6 @@
{
"name": "@storybook/builder-vite",
- "version": "8.2.0-beta.2",
+ "version": "8.3.0-alpha.0",
"description": "A plugin to run and build Storybooks with Vite",
"homepage": "https://github.com/storybookjs/storybook/tree/next/code/builders/builder-vite/#readme",
"bugs": {
diff --git a/code/builders/builder-vite/tsconfig.json b/code/builders/builder-vite/tsconfig.json
index d3576aa8f726..73a65ef2ef6e 100644
--- a/code/builders/builder-vite/tsconfig.json
+++ b/code/builders/builder-vite/tsconfig.json
@@ -1,9 +1,5 @@
{
"extends": "../../tsconfig.json",
- "compilerOptions": {
- "strict": true,
- "resolveJsonModule": true,
- "skipLibCheck": true
- },
+ "compilerOptions": {},
"include": ["src/**/*"]
}
diff --git a/code/builders/builder-webpack5/package.json b/code/builders/builder-webpack5/package.json
index 3aa8e154be0b..f6c854d55ed4 100644
--- a/code/builders/builder-webpack5/package.json
+++ b/code/builders/builder-webpack5/package.json
@@ -1,6 +1,6 @@
{
"name": "@storybook/builder-webpack5",
- "version": "8.2.0-beta.2",
+ "version": "8.3.0-alpha.0",
"description": "Storybook framework-agnostic API",
"keywords": [
"storybook"
diff --git a/code/builders/builder-webpack5/tsconfig.json b/code/builders/builder-webpack5/tsconfig.json
index 5b3f3a56a68d..73a65ef2ef6e 100644
--- a/code/builders/builder-webpack5/tsconfig.json
+++ b/code/builders/builder-webpack5/tsconfig.json
@@ -1,8 +1,5 @@
{
"extends": "../../tsconfig.json",
- "compilerOptions": {
- "strict": true,
- "skipLibCheck": true
- },
+ "compilerOptions": {},
"include": ["src/**/*"]
}
diff --git a/code/core/README.md b/code/core/README.md
index 431b588c5d0a..52502f70be72 100644
--- a/code/core/README.md
+++ b/code/core/README.md
@@ -24,3 +24,28 @@ import { addons } from 'storybook/internal/manager-api';
```
Importing from `@storybook/core` is explicitly NOT supported; it WILL break in a future version of storybook, very likely in a non-major version bump.
+
+# For maintainers
+
+## When to use `@storybook/core`
+
+In the following packages you should import from `@storybook/core` (and ONLY from `@storybook/core`):
+
+- `@storybook/core`
+- `@storybook/codemod`
+
+To prevent cyclical dependencies, these packages cannot depend on the `storybook` package.
+
+## When to use `storybook/internal`
+
+In every other package you should import from `storybook/internal` (and ONLY from `storybook/internal`).
+
+The heuristic is simple:
+
+> If you see a peerDependency on `storybook` in the `package.json` of the package you are working on, you should import from `storybook/internal`.
+
+## The 1 exception: the `storybook` package itself
+
+The sole exception is the `storybook` package itself.
+
+Obviously, the `storybook` package cannot depend on itself, so it must import from `@storybook/core`.
diff --git a/code/core/package.json b/code/core/package.json
index 5e26b4d6c173..49a46f20a7d4 100644
--- a/code/core/package.json
+++ b/code/core/package.json
@@ -1,6 +1,6 @@
{
"name": "@storybook/core",
- "version": "8.2.0-beta.2",
+ "version": "8.3.0-alpha.0",
"description": "Storybook framework-agnostic API",
"keywords": [
"storybook"
@@ -249,7 +249,7 @@
"@types/express": "^4.17.21",
"@types/node": "^18.0.0",
"browser-assert": "^1.2.1",
- "esbuild": "^0.18.0 || ^0.19.0 || ^0.20.0 || ^0.21.0",
+ "esbuild": "^0.18.0 || ^0.19.0 || ^0.20.0 || ^0.21.0 || ^0.22.0 || ^0.23.0",
"esbuild-register": "^3.5.0",
"express": "^4.19.2",
"process": "^0.11.10",
@@ -327,7 +327,7 @@
"diff": "^5.2.0",
"downshift": "^9.0.4",
"ejs": "^3.1.10",
- "esbuild": "^0.18.0 || ^0.19.0 || ^0.20.0",
+ "esbuild": "^0.18.0 || ^0.19.0 || ^0.20.0 || ^0.21.0 || ^0.22.0 || ^0.23.0",
"esbuild-plugin-alias": "^0.2.1",
"execa": "^8.0.1",
"express": "^4.19.2",
diff --git a/code/core/scripts/check.ts b/code/core/scripts/check.ts
index b44f2c4febff..ca51bcf847f5 100644
--- a/code/core/scripts/check.ts
+++ b/code/core/scripts/check.ts
@@ -1,6 +1,6 @@
import { getTSFilesAndConfig, getTSProgramAndHost, getTSDiagnostics } from './helpers/typescript';
-const tsconfigPath = 'tsconfig.check.json';
+const tsconfigPath = 'tsconfig.json';
const { options, fileNames } = getTSFilesAndConfig(tsconfigPath);
const { program, host } = getTSProgramAndHost(fileNames, options);
diff --git a/code/core/scripts/dts.ts b/code/core/scripts/dts.ts
index cd4848e0a0d6..932a2ae228e5 100644
--- a/code/core/scripts/dts.ts
+++ b/code/core/scripts/dts.ts
@@ -43,7 +43,7 @@ await Promise.all(
await dts(
i.file,
[...external, ...i.externals],
- join(import.meta.dirname, '..', 'tsconfig.build.json')
+ join(import.meta.dirname, '..', 'tsconfig.json')
);
})
);
diff --git a/code/core/src/common/js-package-manager/Yarn2Proxy.ts b/code/core/src/common/js-package-manager/Yarn2Proxy.ts
index acd1b9bbfcdf..0f824262df21 100644
--- a/code/core/src/common/js-package-manager/Yarn2Proxy.ts
+++ b/code/core/src/common/js-package-manager/Yarn2Proxy.ts
@@ -38,7 +38,6 @@ const CRITICAL_YARN2_ERROR_CODES = {
YN0083: 'AUTOMERGE_GIT_ERROR',
};
-// @ts-expect-error If we want a code to be parsed, we move from the list below to the list above
// Keep the codes here, they might be helpful in the future
const YARN2_ERROR_CODES = {
...CRITICAL_YARN2_ERROR_CODES,
diff --git a/code/core/src/common/versions.ts b/code/core/src/common/versions.ts
index 358c0ef60a48..44bb49ad6e5c 100644
--- a/code/core/src/common/versions.ts
+++ b/code/core/src/common/versions.ts
@@ -1,84 +1,84 @@
// auto generated file, do not edit
export default {
- '@storybook/addon-a11y': '8.2.0-beta.2',
- '@storybook/addon-actions': '8.2.0-beta.2',
- '@storybook/addon-backgrounds': '8.2.0-beta.2',
- '@storybook/addon-controls': '8.2.0-beta.2',
- '@storybook/addon-docs': '8.2.0-beta.2',
- '@storybook/addon-essentials': '8.2.0-beta.2',
- '@storybook/addon-mdx-gfm': '8.2.0-beta.2',
- '@storybook/addon-highlight': '8.2.0-beta.2',
- '@storybook/addon-interactions': '8.2.0-beta.2',
- '@storybook/addon-jest': '8.2.0-beta.2',
- '@storybook/addon-links': '8.2.0-beta.2',
- '@storybook/addon-measure': '8.2.0-beta.2',
- '@storybook/addon-onboarding': '8.2.0-beta.2',
- '@storybook/addon-outline': '8.2.0-beta.2',
- '@storybook/addon-storysource': '8.2.0-beta.2',
- '@storybook/addon-themes': '8.2.0-beta.2',
- '@storybook/addon-toolbars': '8.2.0-beta.2',
- '@storybook/addon-viewport': '8.2.0-beta.2',
- '@storybook/builder-vite': '8.2.0-beta.2',
- '@storybook/builder-webpack5': '8.2.0-beta.2',
- '@storybook/core': '8.2.0-beta.2',
- '@storybook/builder-manager': '8.2.0-beta.2',
- '@storybook/channels': '8.2.0-beta.2',
- '@storybook/client-logger': '8.2.0-beta.2',
- '@storybook/components': '8.2.0-beta.2',
- '@storybook/core-common': '8.2.0-beta.2',
- '@storybook/core-events': '8.2.0-beta.2',
- '@storybook/core-server': '8.2.0-beta.2',
- '@storybook/csf-tools': '8.2.0-beta.2',
- '@storybook/docs-tools': '8.2.0-beta.2',
- '@storybook/manager': '8.2.0-beta.2',
- '@storybook/manager-api': '8.2.0-beta.2',
- '@storybook/node-logger': '8.2.0-beta.2',
- '@storybook/preview': '8.2.0-beta.2',
- '@storybook/preview-api': '8.2.0-beta.2',
- '@storybook/router': '8.2.0-beta.2',
- '@storybook/telemetry': '8.2.0-beta.2',
- '@storybook/theming': '8.2.0-beta.2',
- '@storybook/types': '8.2.0-beta.2',
- '@storybook/angular': '8.2.0-beta.2',
- '@storybook/ember': '8.2.0-beta.2',
- '@storybook/html-vite': '8.2.0-beta.2',
- '@storybook/html-webpack5': '8.2.0-beta.2',
- '@storybook/nextjs': '8.2.0-beta.2',
- '@storybook/preact-vite': '8.2.0-beta.2',
- '@storybook/preact-webpack5': '8.2.0-beta.2',
- '@storybook/react-vite': '8.2.0-beta.2',
- '@storybook/react-webpack5': '8.2.0-beta.2',
- '@storybook/server-webpack5': '8.2.0-beta.2',
- '@storybook/svelte-vite': '8.2.0-beta.2',
- '@storybook/svelte-webpack5': '8.2.0-beta.2',
- '@storybook/sveltekit': '8.2.0-beta.2',
- '@storybook/vue3-vite': '8.2.0-beta.2',
- '@storybook/vue3-webpack5': '8.2.0-beta.2',
- '@storybook/web-components-vite': '8.2.0-beta.2',
- '@storybook/web-components-webpack5': '8.2.0-beta.2',
- '@storybook/blocks': '8.2.0-beta.2',
- storybook: '8.2.0-beta.2',
- sb: '8.2.0-beta.2',
- '@storybook/cli': '8.2.0-beta.2',
- '@storybook/codemod': '8.2.0-beta.2',
- '@storybook/core-webpack': '8.2.0-beta.2',
- '@storybook/csf-plugin': '8.2.0-beta.2',
- '@storybook/instrumenter': '8.2.0-beta.2',
- '@storybook/react-dom-shim': '8.2.0-beta.2',
- '@storybook/source-loader': '8.2.0-beta.2',
- '@storybook/test': '8.2.0-beta.2',
- '@storybook/preset-create-react-app': '8.2.0-beta.2',
- '@storybook/preset-html-webpack': '8.2.0-beta.2',
- '@storybook/preset-preact-webpack': '8.2.0-beta.2',
- '@storybook/preset-react-webpack': '8.2.0-beta.2',
- '@storybook/preset-server-webpack': '8.2.0-beta.2',
- '@storybook/preset-svelte-webpack': '8.2.0-beta.2',
- '@storybook/preset-vue3-webpack': '8.2.0-beta.2',
- '@storybook/html': '8.2.0-beta.2',
- '@storybook/preact': '8.2.0-beta.2',
- '@storybook/react': '8.2.0-beta.2',
- '@storybook/server': '8.2.0-beta.2',
- '@storybook/svelte': '8.2.0-beta.2',
- '@storybook/vue3': '8.2.0-beta.2',
- '@storybook/web-components': '8.2.0-beta.2',
+ '@storybook/addon-a11y': '8.3.0-alpha.0',
+ '@storybook/addon-actions': '8.3.0-alpha.0',
+ '@storybook/addon-backgrounds': '8.3.0-alpha.0',
+ '@storybook/addon-controls': '8.3.0-alpha.0',
+ '@storybook/addon-docs': '8.3.0-alpha.0',
+ '@storybook/addon-essentials': '8.3.0-alpha.0',
+ '@storybook/addon-mdx-gfm': '8.3.0-alpha.0',
+ '@storybook/addon-highlight': '8.3.0-alpha.0',
+ '@storybook/addon-interactions': '8.3.0-alpha.0',
+ '@storybook/addon-jest': '8.3.0-alpha.0',
+ '@storybook/addon-links': '8.3.0-alpha.0',
+ '@storybook/addon-measure': '8.3.0-alpha.0',
+ '@storybook/addon-onboarding': '8.3.0-alpha.0',
+ '@storybook/addon-outline': '8.3.0-alpha.0',
+ '@storybook/addon-storysource': '8.3.0-alpha.0',
+ '@storybook/addon-themes': '8.3.0-alpha.0',
+ '@storybook/addon-toolbars': '8.3.0-alpha.0',
+ '@storybook/addon-viewport': '8.3.0-alpha.0',
+ '@storybook/builder-vite': '8.3.0-alpha.0',
+ '@storybook/builder-webpack5': '8.3.0-alpha.0',
+ '@storybook/core': '8.3.0-alpha.0',
+ '@storybook/builder-manager': '8.3.0-alpha.0',
+ '@storybook/channels': '8.3.0-alpha.0',
+ '@storybook/client-logger': '8.3.0-alpha.0',
+ '@storybook/components': '8.3.0-alpha.0',
+ '@storybook/core-common': '8.3.0-alpha.0',
+ '@storybook/core-events': '8.3.0-alpha.0',
+ '@storybook/core-server': '8.3.0-alpha.0',
+ '@storybook/csf-tools': '8.3.0-alpha.0',
+ '@storybook/docs-tools': '8.3.0-alpha.0',
+ '@storybook/manager': '8.3.0-alpha.0',
+ '@storybook/manager-api': '8.3.0-alpha.0',
+ '@storybook/node-logger': '8.3.0-alpha.0',
+ '@storybook/preview': '8.3.0-alpha.0',
+ '@storybook/preview-api': '8.3.0-alpha.0',
+ '@storybook/router': '8.3.0-alpha.0',
+ '@storybook/telemetry': '8.3.0-alpha.0',
+ '@storybook/theming': '8.3.0-alpha.0',
+ '@storybook/types': '8.3.0-alpha.0',
+ '@storybook/angular': '8.3.0-alpha.0',
+ '@storybook/ember': '8.3.0-alpha.0',
+ '@storybook/html-vite': '8.3.0-alpha.0',
+ '@storybook/html-webpack5': '8.3.0-alpha.0',
+ '@storybook/nextjs': '8.3.0-alpha.0',
+ '@storybook/preact-vite': '8.3.0-alpha.0',
+ '@storybook/preact-webpack5': '8.3.0-alpha.0',
+ '@storybook/react-vite': '8.3.0-alpha.0',
+ '@storybook/react-webpack5': '8.3.0-alpha.0',
+ '@storybook/server-webpack5': '8.3.0-alpha.0',
+ '@storybook/svelte-vite': '8.3.0-alpha.0',
+ '@storybook/svelte-webpack5': '8.3.0-alpha.0',
+ '@storybook/sveltekit': '8.3.0-alpha.0',
+ '@storybook/vue3-vite': '8.3.0-alpha.0',
+ '@storybook/vue3-webpack5': '8.3.0-alpha.0',
+ '@storybook/web-components-vite': '8.3.0-alpha.0',
+ '@storybook/web-components-webpack5': '8.3.0-alpha.0',
+ '@storybook/blocks': '8.3.0-alpha.0',
+ storybook: '8.3.0-alpha.0',
+ sb: '8.3.0-alpha.0',
+ '@storybook/cli': '8.3.0-alpha.0',
+ '@storybook/codemod': '8.3.0-alpha.0',
+ '@storybook/core-webpack': '8.3.0-alpha.0',
+ '@storybook/csf-plugin': '8.3.0-alpha.0',
+ '@storybook/instrumenter': '8.3.0-alpha.0',
+ '@storybook/react-dom-shim': '8.3.0-alpha.0',
+ '@storybook/source-loader': '8.3.0-alpha.0',
+ '@storybook/test': '8.3.0-alpha.0',
+ '@storybook/preset-create-react-app': '8.3.0-alpha.0',
+ '@storybook/preset-html-webpack': '8.3.0-alpha.0',
+ '@storybook/preset-preact-webpack': '8.3.0-alpha.0',
+ '@storybook/preset-react-webpack': '8.3.0-alpha.0',
+ '@storybook/preset-server-webpack': '8.3.0-alpha.0',
+ '@storybook/preset-svelte-webpack': '8.3.0-alpha.0',
+ '@storybook/preset-vue3-webpack': '8.3.0-alpha.0',
+ '@storybook/html': '8.3.0-alpha.0',
+ '@storybook/preact': '8.3.0-alpha.0',
+ '@storybook/react': '8.3.0-alpha.0',
+ '@storybook/server': '8.3.0-alpha.0',
+ '@storybook/svelte': '8.3.0-alpha.0',
+ '@storybook/vue3': '8.3.0-alpha.0',
+ '@storybook/web-components': '8.3.0-alpha.0',
};
diff --git a/code/core/src/docs-tools/shared.ts b/code/core/src/docs-tools/shared.ts
index ca34c29c6e5e..178bf46ca387 100644
--- a/code/core/src/docs-tools/shared.ts
+++ b/code/core/src/docs-tools/shared.ts
@@ -1,4 +1,4 @@
-export const ADDON_ID = '@storybook/core/docs';
+export const ADDON_ID = 'storybook/docs';
export const PANEL_ID = `${ADDON_ID}/panel`;
export const PARAM_KEY = `docs`;
diff --git a/code/core/src/manager-api/lib/stories.ts b/code/core/src/manager-api/lib/stories.ts
index c5d2823c5649..52366345ca08 100644
--- a/code/core/src/manager-api/lib/stories.ts
+++ b/code/core/src/manager-api/lib/stories.ts
@@ -218,6 +218,10 @@ export const transformStoryIndexToStoriesHash = (
const parent = idx > 0 && list[idx - 1];
const id = sanitize(parent ? `${parent}-${name}` : name!);
+ if (name.trim() === '') {
+ throw new Error(dedent`Invalid title ${title} ending in slash.`);
+ }
+
if (parent === id) {
throw new Error(
dedent`
diff --git a/code/core/src/manager-api/tests/layout.test.ts b/code/core/src/manager-api/tests/layout.test.ts
index ab31a75502ab..a9ced49e1ac3 100644
--- a/code/core/src/manager-api/tests/layout.test.ts
+++ b/code/core/src/manager-api/tests/layout.test.ts
@@ -471,14 +471,14 @@ describe('layout API', () => {
});
it('should set selectedPanel initially', () => {
- const panelName = '@storybook/core/a11y/panel';
+ const panelName = 'storybook/a11y/panel';
layoutApi.setOptions({ selectedPanel: panelName });
expect(getLastSetStateArgs()[0].selectedPanel).toEqual(panelName);
});
it('should change selectedPanel if it is defined in the options and is different', () => {
- const panelName = '@storybook/core/a11y/panel';
+ const panelName = 'storybook/a11y/panel';
layoutApi.setOptions({});
layoutApi.setOptions({ selectedPanel: panelName });
diff --git a/code/core/src/manager-api/version.ts b/code/core/src/manager-api/version.ts
index 80f948b19326..2010c80e09ee 100644
--- a/code/core/src/manager-api/version.ts
+++ b/code/core/src/manager-api/version.ts
@@ -1 +1 @@
-export const version = '8.2.0-beta.2';
+export const version = '8.3.0-alpha.0';
diff --git a/code/core/src/manager/components/notifications/NotificationItem.tsx b/code/core/src/manager/components/notifications/NotificationItem.tsx
index b4450acafdc7..f912828783a2 100644
--- a/code/core/src/manager/components/notifications/NotificationItem.tsx
+++ b/code/core/src/manager/components/notifications/NotificationItem.tsx
@@ -59,7 +59,7 @@ const Notification = styled.div<{ duration?: number }>(
}
);
-const NotificationWithInteractiveStates = styled(Notification)(() => ({
+const NotificationWithInteractiveStates = styled(Notification)({
cursor: 'pointer',
border: 'none',
outline: 'none',
@@ -80,7 +80,7 @@ const NotificationWithInteractiveStates = styled(Notification)(() => ({
boxShadow:
'rgba(2,156,253,1) 0 0 0 1px inset, 0 1px 3px 0 rgba(30,167,253,0.5), 0 2px 5px 0 rgba(0,0,0,0.05), 0 5px 15px 0 rgba(0,0,0,0.1)',
},
-}));
+});
const NotificationButton = NotificationWithInteractiveStates.withComponent('div');
const NotificationLink = NotificationWithInteractiveStates.withComponent(Link);
diff --git a/code/core/src/manager/components/sidebar/Heading.stories.tsx b/code/core/src/manager/components/sidebar/Heading.stories.tsx
index ca14fdfa148a..067b6207112e 100644
--- a/code/core/src/manager/components/sidebar/Heading.stories.tsx
+++ b/code/core/src/manager/components/sidebar/Heading.stories.tsx
@@ -1,11 +1,10 @@
-/* eslint-disable storybook/use-storybook-testing-library */
// @TODO: use addon-interactions and remove the rule disable above
import React from 'react';
import type { Meta, StoryObj, StoryFn } from '@storybook/react';
import { ThemeProvider, useTheme } from '@storybook/core/theming';
import type { Theme } from '@storybook/core/theming';
import { action } from '@storybook/addon-actions';
-import { screen } from '@testing-library/dom';
+import { screen } from '@storybook/test';
import { Heading } from './Heading';
diff --git a/code/core/src/manager/components/sidebar/RefIndicator.tsx b/code/core/src/manager/components/sidebar/RefIndicator.tsx
index fe4687c52702..6fca6687effe 100644
--- a/code/core/src/manager/components/sidebar/RefIndicator.tsx
+++ b/code/core/src/manager/components/sidebar/RefIndicator.tsx
@@ -15,6 +15,7 @@ import {
GlobeIcon,
LightningIcon,
LockIcon,
+ MarkupIcon,
TimeIcon,
} from '@storybook/icons';
import type { RefType } from './types';
@@ -186,7 +187,10 @@ export const RefIndicator = React.memo(
)}
{state === 'ready' && (
-
+ <>
+
+ {ref.sourceUrl && }
+ >
)}
{state === 'auth' && }
{ref.type === 'auto-inject' && state !== 'error' && (
@@ -254,6 +258,21 @@ const ReadyMessage: FC<{
);
};
+const SourceCodeMessage: FC<{
+ url?: string;
+}> = ({ url }) => {
+ const theme = useTheme();
+
+ return (
+
+
+
+ View source code
+
+
+ );
+};
+
const LoginRequiredMessage: FC = ({ loginUrl, id }) => {
const theme = useTheme();
const open = useCallback((e) => {
diff --git a/code/core/src/manager/components/sidebar/Refs.stories.tsx b/code/core/src/manager/components/sidebar/Refs.stories.tsx
index de76b65e8a55..9018d5208df0 100644
--- a/code/core/src/manager/components/sidebar/Refs.stories.tsx
+++ b/code/core/src/manager/components/sidebar/Refs.stories.tsx
@@ -133,6 +133,16 @@ const refs: Record = {
},
previewInitialized: true,
},
+ withSourceCode: {
+ id: 'sourceCode',
+ title: 'This has source code',
+ url: 'https://example.com',
+ sourceUrl: 'https://github.com/storybookjs/storybook',
+ previewInitialized: false,
+ type: 'lazy',
+ // @ts-expect-error (invalid input)
+ index,
+ },
};
export const Optimized = () => (
@@ -235,3 +245,14 @@ export const Long = () => (
setHighlighted={() => {}}
/>
);
+
+export const WithSourceCode = () => (
+ [ {}}
+ />
+);
diff --git a/code/core/src/manager/components/sidebar/SearchResults.tsx b/code/core/src/manager/components/sidebar/SearchResults.tsx
index 80d5c43bba79..0259bd2a92e9 100644
--- a/code/core/src/manager/components/sidebar/SearchResults.tsx
+++ b/code/core/src/manager/components/sidebar/SearchResults.tsx
@@ -53,10 +53,10 @@ const IconWrapper = styled.div({
marginTop: 2,
});
-const ResultRowContent = styled.div(() => ({
+const ResultRowContent = styled.div({
display: 'flex',
flexDirection: 'column',
-}));
+});
const NoResults = styled.div(({ theme }) => ({
marginTop: 20,
diff --git a/code/core/src/manager/globals-runtime.ts b/code/core/src/manager/globals-runtime.ts
index 8488b61d7462..011cb0f60fdf 100644
--- a/code/core/src/manager/globals-runtime.ts
+++ b/code/core/src/manager/globals-runtime.ts
@@ -20,9 +20,12 @@ global.sendTelemetryError = (error) => {
// handle all uncaught errors at the root of the application and log to telemetry
global.addEventListener('error', (args) => {
+ // @ts-expect-error (not Event)
const error = args.error || args;
global.sendTelemetryError(error);
});
+
+// @ts-expect-error (not Event)
global.addEventListener('unhandledrejection', ({ reason }) => {
global.sendTelemetryError(reason);
});
diff --git a/code/core/src/preview-errors.ts b/code/core/src/preview-errors.ts
index eddc355ce3b6..31341bb6132c 100644
--- a/code/core/src/preview-errors.ts
+++ b/code/core/src/preview-errors.ts
@@ -210,27 +210,23 @@ export class StoryStoreAccessedBeforeInitializationError extends StorybookError
export class MountMustBeDestructuredError extends StorybookError {
constructor(public data: { playFunction: string }) {
- const transpiled =
- /function\s*\*|regeneratorRuntime|asyncToGenerator|_ref|param|_0|__async/.test(
- data.playFunction
- );
-
super({
category: Category.PREVIEW_API,
code: 12,
message: dedent`
- To use mount in the play function, you must use object destructuring, e.g. play: ({ mount }) => {}.
-
- ${
- !transpiled
- ? ''
- : dedent`
- It seems that your builder is configured to transpile destructuring.
- To use the mount prop of the story context, you must configure your builder to transpile to no earlier than ES2017.
- `
- }
- More info: https://storybook.js.org/docs/writing-tests/interaction-testing#run-code-before-each-test
+ To use mount in the play function, you must satisfy the following two requirements:
+
+ 1. You *must* destructure the mount property from the \`context\` (the argument passed to your play function).
+ This makes sure that Storybook does not start rendering the story before the play function begins.
+
+ 2. Your Storybook framework or builder must be configured to transpile to ES2017 or newer.
+ This is because destructuring statements and async/await usages are otherwise transpiled away,
+ which prevents Storybook from recognizing your usage of \`mount\`.
+
+ Note that Angular is not supported. As async/await is transpiled to support the zone.js polyfill.
+
+ More info: https://storybook.js.org/docs/writing-tests/interaction-testing#run-code-before-the-component-gets-rendered
Received the following play function:
${data.playFunction}`,
diff --git a/code/core/src/types/modules/api.ts b/code/core/src/types/modules/api.ts
index 4ebfa1e103ce..86ba7bbd02dd 100644
--- a/code/core/src/types/modules/api.ts
+++ b/code/core/src/types/modules/api.ts
@@ -179,6 +179,7 @@ export interface API_ComposedRef extends API_LoadedRefData {
versions?: API_Versions;
loginUrl?: string;
version?: string;
+ sourceUrl?: string;
/** DO NOT USE THIS */
internal_index?: StoryIndex;
}
@@ -195,6 +196,7 @@ export type API_ComposedRefUpdate = Partial<
| 'version'
| 'indexError'
| 'previewInitialized'
+ | 'sourceUrl'
| 'internal_index'
>
>;
diff --git a/code/core/tsconfig.build.json b/code/core/tsconfig.build.json
deleted file mode 100644
index 6ba36add8129..000000000000
--- a/code/core/tsconfig.build.json
+++ /dev/null
@@ -1,14 +0,0 @@
-{
- "extends": "../tsconfig.json",
- "compilerOptions": {
- "skipLibCheck": true,
- "strict": true,
- "skipDefaultLibCheck": true,
- "moduleResolution": "Bundler",
- "resolveJsonModule": true,
- "rootDir": ".",
- "target": "ES2022",
- "module": "ES2022"
- },
- "include": ["src/**/*"]
-}
diff --git a/code/core/tsconfig.check.json b/code/core/tsconfig.check.json
deleted file mode 100644
index 91a2ee6744ba..000000000000
--- a/code/core/tsconfig.check.json
+++ /dev/null
@@ -1,13 +0,0 @@
-{
- "extends": "../tsconfig.json",
- "compilerOptions": {
- "skipLibCheck": true,
- "strict": true,
- "skipDefaultLibCheck": true,
- "moduleResolution": "Bundler",
- "resolveJsonModule": true,
- "target": "ES2022",
- "module": "ES2022"
- },
- "include": ["src/**/*", "*.d.ts"]
-}
diff --git a/code/core/tsconfig.json b/code/core/tsconfig.json
index abdc7834b511..2dcc611b29a4 100644
--- a/code/core/tsconfig.json
+++ b/code/core/tsconfig.json
@@ -1,12 +1,7 @@
{
"extends": "../tsconfig.json",
"compilerOptions": {
- "skipLibCheck": true,
- "strict": true,
- "skipDefaultLibCheck": true,
- "moduleResolution": "Bundler",
"resolveJsonModule": true,
- "target": "ES2022",
"module": "ES2022"
},
"include": ["src/**/*", "scripts/**/*", "*.d.ts"]
diff --git a/code/deprecated/builder-manager/package.json b/code/deprecated/builder-manager/package.json
index cc41ae275029..c23a94632c3d 100644
--- a/code/deprecated/builder-manager/package.json
+++ b/code/deprecated/builder-manager/package.json
@@ -1,6 +1,6 @@
{
"name": "@storybook/builder-manager",
- "version": "8.2.0-beta.2",
+ "version": "8.3.0-alpha.0",
"description": "Storybook manager builder",
"keywords": [
"storybook"
diff --git a/code/deprecated/channels/package.json b/code/deprecated/channels/package.json
index 9dc4e8225f0d..5e355be150c0 100644
--- a/code/deprecated/channels/package.json
+++ b/code/deprecated/channels/package.json
@@ -1,6 +1,6 @@
{
"name": "@storybook/channels",
- "version": "8.2.0-beta.2",
+ "version": "8.3.0-alpha.0",
"description": "",
"keywords": [
"storybook"
diff --git a/code/deprecated/client-logger/package.json b/code/deprecated/client-logger/package.json
index 1c5b713f2157..3ee33658fc74 100644
--- a/code/deprecated/client-logger/package.json
+++ b/code/deprecated/client-logger/package.json
@@ -1,6 +1,6 @@
{
"name": "@storybook/client-logger",
- "version": "8.2.0-beta.2",
+ "version": "8.3.0-alpha.0",
"description": "",
"keywords": [
"storybook"
diff --git a/code/deprecated/components/package.json b/code/deprecated/components/package.json
index 91ca7e3a428e..b072d5bd9955 100644
--- a/code/deprecated/components/package.json
+++ b/code/deprecated/components/package.json
@@ -1,6 +1,6 @@
{
"name": "@storybook/components",
- "version": "8.2.0-beta.2",
+ "version": "8.3.0-alpha.0",
"description": "Core Storybook Components",
"keywords": [
"storybook"
diff --git a/code/deprecated/core-common/package.json b/code/deprecated/core-common/package.json
index 335731c2397e..5da58e0d0c0d 100644
--- a/code/deprecated/core-common/package.json
+++ b/code/deprecated/core-common/package.json
@@ -1,6 +1,6 @@
{
"name": "@storybook/core-common",
- "version": "8.2.0-beta.2",
+ "version": "8.3.0-alpha.0",
"description": "Storybook framework-agnostic API",
"keywords": [
"storybook"
diff --git a/code/deprecated/core-events/package.json b/code/deprecated/core-events/package.json
index 0509503b83fa..b99a130b55d5 100644
--- a/code/deprecated/core-events/package.json
+++ b/code/deprecated/core-events/package.json
@@ -1,6 +1,6 @@
{
"name": "@storybook/core-events",
- "version": "8.2.0-beta.2",
+ "version": "8.3.0-alpha.0",
"description": "Event names used in storybook core",
"keywords": [
"storybook"
diff --git a/code/deprecated/core-server/package.json b/code/deprecated/core-server/package.json
index 11e30486a83d..5837d5034869 100644
--- a/code/deprecated/core-server/package.json
+++ b/code/deprecated/core-server/package.json
@@ -1,6 +1,6 @@
{
"name": "@storybook/core-server",
- "version": "8.2.0-beta.2",
+ "version": "8.3.0-alpha.0",
"description": "Storybook framework-agnostic API",
"keywords": [
"storybook"
diff --git a/code/deprecated/csf-tools/package.json b/code/deprecated/csf-tools/package.json
index babe521607f4..29bfaee4b142 100644
--- a/code/deprecated/csf-tools/package.json
+++ b/code/deprecated/csf-tools/package.json
@@ -1,6 +1,6 @@
{
"name": "@storybook/csf-tools",
- "version": "8.2.0-beta.2",
+ "version": "8.3.0-alpha.0",
"description": "Parse and manipulate CSF and Storybook config files",
"keywords": [
"storybook"
diff --git a/code/deprecated/docs-tools/package.json b/code/deprecated/docs-tools/package.json
index 52219b02eb44..289105b22848 100644
--- a/code/deprecated/docs-tools/package.json
+++ b/code/deprecated/docs-tools/package.json
@@ -1,6 +1,6 @@
{
"name": "@storybook/docs-tools",
- "version": "8.2.0-beta.2",
+ "version": "8.3.0-alpha.0",
"description": "Shared utility functions for frameworks to implement docs",
"keywords": [
"storybook"
@@ -23,11 +23,13 @@
"exports": {
".": {
"types": "./shim.d.ts",
+ "import": "./shim.mjs",
"require": "./shim.js"
},
"./package.json": "./package.json"
},
"main": "./shim.js",
+ "module": "./shim.mjs",
"types": "./shim.d.ts",
"files": [
"README.md",
diff --git a/code/deprecated/docs-tools/shim.mjs b/code/deprecated/docs-tools/shim.mjs
new file mode 100644
index 000000000000..a6a642d3273f
--- /dev/null
+++ b/code/deprecated/docs-tools/shim.mjs
@@ -0,0 +1 @@
+export * from 'storybook/internal/docs-tools';
diff --git a/code/deprecated/manager-api/package.json b/code/deprecated/manager-api/package.json
index fb0890a902d9..028caf13d0b6 100644
--- a/code/deprecated/manager-api/package.json
+++ b/code/deprecated/manager-api/package.json
@@ -1,6 +1,6 @@
{
"name": "@storybook/manager-api",
- "version": "8.2.0-beta.2",
+ "version": "8.3.0-alpha.0",
"description": "Core Storybook Manager API & Context",
"keywords": [
"storybook"
diff --git a/code/deprecated/manager/package.json b/code/deprecated/manager/package.json
index 53b9103b305f..a52d06df9842 100644
--- a/code/deprecated/manager/package.json
+++ b/code/deprecated/manager/package.json
@@ -1,6 +1,6 @@
{
"name": "@storybook/manager",
- "version": "8.2.0-beta.2",
+ "version": "8.3.0-alpha.0",
"description": "Core Storybook UI",
"keywords": [
"storybook"
diff --git a/code/deprecated/node-logger/package.json b/code/deprecated/node-logger/package.json
index 0e6a8227ecf7..1daca1180932 100644
--- a/code/deprecated/node-logger/package.json
+++ b/code/deprecated/node-logger/package.json
@@ -1,6 +1,6 @@
{
"name": "@storybook/node-logger",
- "version": "8.2.0-beta.2",
+ "version": "8.3.0-alpha.0",
"description": "",
"keywords": [
"storybook"
@@ -23,11 +23,13 @@
"exports": {
".": {
"types": "./shim.d.ts",
+ "module": "./shim.mjs",
"require": "./shim.js"
},
"./package.json": "./package.json"
},
"main": "./shim.js",
+ "module": "./shim.mjs",
"types": "./shim.d.ts",
"files": [
"README.md",
diff --git a/code/deprecated/node-logger/shim.mjs b/code/deprecated/node-logger/shim.mjs
new file mode 100644
index 000000000000..1c35c8624ddf
--- /dev/null
+++ b/code/deprecated/node-logger/shim.mjs
@@ -0,0 +1 @@
+export * from 'storybook/internal/node-logger';
diff --git a/code/deprecated/preview-api/package.json b/code/deprecated/preview-api/package.json
index 2c345a786040..f2744ff9215d 100644
--- a/code/deprecated/preview-api/package.json
+++ b/code/deprecated/preview-api/package.json
@@ -1,6 +1,6 @@
{
"name": "@storybook/preview-api",
- "version": "8.2.0-beta.2",
+ "version": "8.3.0-alpha.0",
"description": "",
"keywords": [
"storybook"
diff --git a/code/deprecated/preview/package.json b/code/deprecated/preview/package.json
index f6bcd63f6d7d..b19e7fd1a362 100644
--- a/code/deprecated/preview/package.json
+++ b/code/deprecated/preview/package.json
@@ -1,6 +1,6 @@
{
"name": "@storybook/preview",
- "version": "8.2.0-beta.2",
+ "version": "8.3.0-alpha.0",
"description": "",
"keywords": [
"storybook"
diff --git a/code/deprecated/router/package.json b/code/deprecated/router/package.json
index 988b06c199e8..c5569f52f46e 100644
--- a/code/deprecated/router/package.json
+++ b/code/deprecated/router/package.json
@@ -1,6 +1,6 @@
{
"name": "@storybook/router",
- "version": "8.2.0-beta.2",
+ "version": "8.3.0-alpha.0",
"description": "Core Storybook Router",
"keywords": [
"storybook"
diff --git a/code/deprecated/telemetry/package.json b/code/deprecated/telemetry/package.json
index bc02fa4e702f..b8552ca62b66 100644
--- a/code/deprecated/telemetry/package.json
+++ b/code/deprecated/telemetry/package.json
@@ -1,6 +1,6 @@
{
"name": "@storybook/telemetry",
- "version": "8.2.0-beta.2",
+ "version": "8.3.0-alpha.0",
"description": "Telemetry logging for crash reports and usage statistics",
"keywords": [
"storybook"
diff --git a/code/deprecated/theming/package.json b/code/deprecated/theming/package.json
index d17a910b31ee..3d79a749fb7e 100644
--- a/code/deprecated/theming/package.json
+++ b/code/deprecated/theming/package.json
@@ -1,6 +1,6 @@
{
"name": "@storybook/theming",
- "version": "8.2.0-beta.2",
+ "version": "8.3.0-alpha.0",
"description": "Core Storybook Components",
"keywords": [
"storybook"
diff --git a/code/deprecated/types/package.json b/code/deprecated/types/package.json
index 47081a038b37..52b9096ee28b 100644
--- a/code/deprecated/types/package.json
+++ b/code/deprecated/types/package.json
@@ -1,6 +1,6 @@
{
"name": "@storybook/types",
- "version": "8.2.0-beta.2",
+ "version": "8.3.0-alpha.0",
"description": "Core Storybook TS Types",
"keywords": [
"storybook"
diff --git a/code/frameworks/angular/package.json b/code/frameworks/angular/package.json
index 2e5249715e95..120fa1d8bb20 100644
--- a/code/frameworks/angular/package.json
+++ b/code/frameworks/angular/package.json
@@ -1,6 +1,6 @@
{
"name": "@storybook/angular",
- "version": "8.2.0-beta.2",
+ "version": "8.3.0-alpha.0",
"description": "Storybook for Angular: Develop Angular components in isolation with hot reloading.",
"keywords": [
"storybook",
diff --git a/code/frameworks/angular/tsconfig.build.json b/code/frameworks/angular/tsconfig.build.json
index 75efd9abab35..56df86958588 100644
--- a/code/frameworks/angular/tsconfig.build.json
+++ b/code/frameworks/angular/tsconfig.build.json
@@ -16,7 +16,11 @@
"pretty": true,
"noErrorTruncation": true,
"listEmittedFiles": false,
- "noUnusedLocals": false
+ "noUnusedLocals": false,
+ "baseUrl": ".",
+ "paths": {
+ "storybook/internal/*": ["../../lib/cli/core/*"]
+ }
},
"include": ["src/**/*", "src/**/*.json"]
}
diff --git a/code/frameworks/ember/package.json b/code/frameworks/ember/package.json
index b9ec53e127f8..dde834c496d5 100644
--- a/code/frameworks/ember/package.json
+++ b/code/frameworks/ember/package.json
@@ -1,6 +1,6 @@
{
"name": "@storybook/ember",
- "version": "8.2.0-beta.2",
+ "version": "8.3.0-alpha.0",
"description": "Storybook for Ember: Develop Ember Component in isolation with Hot Reloading.",
"homepage": "https://github.com/storybookjs/storybook/tree/next/code/frameworks/ember",
"bugs": {
diff --git a/code/frameworks/ember/tsconfig.json b/code/frameworks/ember/tsconfig.json
index 77832da6336d..73a65ef2ef6e 100644
--- a/code/frameworks/ember/tsconfig.json
+++ b/code/frameworks/ember/tsconfig.json
@@ -1,8 +1,5 @@
{
"extends": "../../tsconfig.json",
- "compilerOptions": {
- "strict": true,
- "resolveJsonModule": true
- },
+ "compilerOptions": {},
"include": ["src/**/*"]
}
diff --git a/code/frameworks/html-vite/package.json b/code/frameworks/html-vite/package.json
index 73434579e135..bbfe01fb992e 100644
--- a/code/frameworks/html-vite/package.json
+++ b/code/frameworks/html-vite/package.json
@@ -1,6 +1,6 @@
{
"name": "@storybook/html-vite",
- "version": "8.2.0-beta.2",
+ "version": "8.3.0-alpha.0",
"description": "Storybook for HTML and Vite: Develop HTML in isolation with Hot Reloading.",
"keywords": [
"storybook"
diff --git a/code/frameworks/html-vite/tsconfig.json b/code/frameworks/html-vite/tsconfig.json
index 145cb7320607..18f9fd1b95b3 100644
--- a/code/frameworks/html-vite/tsconfig.json
+++ b/code/frameworks/html-vite/tsconfig.json
@@ -1,11 +1,12 @@
{
- "extends": "../../tsconfig.json",
"compilerOptions": {
- "rootDir": "./src",
- "types": ["node"],
- "resolveJsonModule": true,
- "strict": true
+ "baseUrl": ".",
+ "paths": {
+ "storybook/internal/*": ["../../lib/cli/core/*"]
+ },
+ "rootDir": "./src"
},
- "include": ["src/**/*"],
- "exclude": ["src/**/*.test.*", "src/**/__testfixtures__/**"]
+ "exclude": ["src/**/*.test.*", "src/**/__testfixtures__/**"],
+ "extends": "../../tsconfig.json",
+ "include": ["src/**/*"]
}
diff --git a/code/frameworks/html-webpack5/package.json b/code/frameworks/html-webpack5/package.json
index 678c995b10ed..19433e8b8f07 100644
--- a/code/frameworks/html-webpack5/package.json
+++ b/code/frameworks/html-webpack5/package.json
@@ -1,6 +1,6 @@
{
"name": "@storybook/html-webpack5",
- "version": "8.2.0-beta.2",
+ "version": "8.3.0-alpha.0",
"description": "Storybook for HTML: View HTML snippets in isolation with Hot Reloading.",
"keywords": [
"storybook"
diff --git a/code/frameworks/html-webpack5/tsconfig.json b/code/frameworks/html-webpack5/tsconfig.json
index a4429176e35f..73a65ef2ef6e 100644
--- a/code/frameworks/html-webpack5/tsconfig.json
+++ b/code/frameworks/html-webpack5/tsconfig.json
@@ -1,7 +1,5 @@
{
"extends": "../../tsconfig.json",
- "compilerOptions": {
- "strict": true
- },
+ "compilerOptions": {},
"include": ["src/**/*"]
}
diff --git a/code/frameworks/nextjs/package.json b/code/frameworks/nextjs/package.json
index b8710183fb6f..0818278761e1 100644
--- a/code/frameworks/nextjs/package.json
+++ b/code/frameworks/nextjs/package.json
@@ -1,6 +1,6 @@
{
"name": "@storybook/nextjs",
- "version": "8.2.0-beta.2",
+ "version": "8.3.0-alpha.0",
"description": "Storybook for Next.js",
"keywords": [
"storybook",
diff --git a/code/frameworks/nextjs/src/portable-stories.ts b/code/frameworks/nextjs/src/portable-stories.ts
index 52aacbb592bc..bc00b0ba9f18 100644
--- a/code/frameworks/nextjs/src/portable-stories.ts
+++ b/code/frameworks/nextjs/src/portable-stories.ts
@@ -11,6 +11,7 @@ import type {
Store_CSFExports,
StoriesWithPartialProps,
NamedOrDefaultProjectAnnotations,
+ ComposedStoryFn,
} from 'storybook/internal/types';
// ! ATTENTION: This needs to be a relative import so it gets prebundled. This is to avoid ESM issues in Nextjs + Jest setups
@@ -80,7 +81,7 @@ export function composeStory(
componentAnnotations: Meta,
projectAnnotations?: ProjectAnnotations,
exportsName?: string
-) {
+): ComposedStoryFn> {
return originalComposeStory(
story as StoryAnnotationsOrFn,
componentAnnotations,
diff --git a/code/frameworks/nextjs/tsconfig.json b/code/frameworks/nextjs/tsconfig.json
index 26be65113f88..3b01f80f2c32 100644
--- a/code/frameworks/nextjs/tsconfig.json
+++ b/code/frameworks/nextjs/tsconfig.json
@@ -1,9 +1,5 @@
{
"extends": "../../tsconfig.json",
- "compilerOptions": {
- "strict": true,
- "resolveJsonModule": true,
- "skipLibCheck": true
- },
+ "compilerOptions": {},
"include": ["src/**/*", "template/**/*"]
}
diff --git a/code/frameworks/preact-vite/package.json b/code/frameworks/preact-vite/package.json
index 30f1842851e2..d7344558a421 100644
--- a/code/frameworks/preact-vite/package.json
+++ b/code/frameworks/preact-vite/package.json
@@ -1,6 +1,6 @@
{
"name": "@storybook/preact-vite",
- "version": "8.2.0-beta.2",
+ "version": "8.3.0-alpha.0",
"description": "Storybook for Preact and Vite: Develop Preact components in isolation with Hot Reloading.",
"keywords": [
"storybook"
diff --git a/code/frameworks/preact-vite/tsconfig.json b/code/frameworks/preact-vite/tsconfig.json
index 4f493067c0f5..e342f997283b 100644
--- a/code/frameworks/preact-vite/tsconfig.json
+++ b/code/frameworks/preact-vite/tsconfig.json
@@ -1,12 +1,13 @@
{
- "extends": "../../tsconfig.json",
"compilerOptions": {
- "rootDir": "./src",
- "types": ["node"],
- "resolveJsonModule": true,
+ "baseUrl": ".",
"jsx": "react-jsx",
"jsxImportSource": "preact",
- "strict": true
+ "paths": {
+ "storybook/internal/*": ["../../lib/cli/core/*"]
+ },
+ "rootDir": "./src"
},
+ "extends": "../../tsconfig.json",
"include": ["src/**/*"]
}
diff --git a/code/frameworks/preact-webpack5/package.json b/code/frameworks/preact-webpack5/package.json
index 3e6e62015cb0..413179dc6fd1 100644
--- a/code/frameworks/preact-webpack5/package.json
+++ b/code/frameworks/preact-webpack5/package.json
@@ -1,6 +1,6 @@
{
"name": "@storybook/preact-webpack5",
- "version": "8.2.0-beta.2",
+ "version": "8.3.0-alpha.0",
"description": "Storybook for Preact: Develop Preact Component in isolation.",
"keywords": [
"storybook"
diff --git a/code/frameworks/preact-webpack5/tsconfig.json b/code/frameworks/preact-webpack5/tsconfig.json
index 77832da6336d..73a65ef2ef6e 100644
--- a/code/frameworks/preact-webpack5/tsconfig.json
+++ b/code/frameworks/preact-webpack5/tsconfig.json
@@ -1,8 +1,5 @@
{
"extends": "../../tsconfig.json",
- "compilerOptions": {
- "strict": true,
- "resolveJsonModule": true
- },
+ "compilerOptions": {},
"include": ["src/**/*"]
}
diff --git a/code/frameworks/react-vite/package.json b/code/frameworks/react-vite/package.json
index dabbf0dd958f..320b99cb3005 100644
--- a/code/frameworks/react-vite/package.json
+++ b/code/frameworks/react-vite/package.json
@@ -1,6 +1,6 @@
{
"name": "@storybook/react-vite",
- "version": "8.2.0-beta.2",
+ "version": "8.3.0-alpha.0",
"description": "Storybook for React and Vite: Develop React components in isolation with Hot Reloading.",
"keywords": [
"storybook"
diff --git a/code/frameworks/react-vite/tsconfig.json b/code/frameworks/react-vite/tsconfig.json
index 3bfb79fdded7..c749496d9a6e 100644
--- a/code/frameworks/react-vite/tsconfig.json
+++ b/code/frameworks/react-vite/tsconfig.json
@@ -1,10 +1,11 @@
{
- "extends": "../../tsconfig.json",
"compilerOptions": {
- "rootDir": "./src",
- "types": ["node"],
- "resolveJsonModule": true,
- "strict": true
+ "baseUrl": ".",
+ "paths": {
+ "storybook/internal/*": ["../../lib/cli/core/*"]
+ },
+ "rootDir": "./src"
},
+ "extends": "../../tsconfig.json",
"include": ["src/**/*"]
}
diff --git a/code/frameworks/react-webpack5/package.json b/code/frameworks/react-webpack5/package.json
index cc88e468315c..9be13bf40f80 100644
--- a/code/frameworks/react-webpack5/package.json
+++ b/code/frameworks/react-webpack5/package.json
@@ -1,6 +1,6 @@
{
"name": "@storybook/react-webpack5",
- "version": "8.2.0-beta.2",
+ "version": "8.3.0-alpha.0",
"description": "Storybook for React: Develop React Component in isolation with Hot Reloading.",
"keywords": [
"storybook"
diff --git a/code/frameworks/react-webpack5/tsconfig.json b/code/frameworks/react-webpack5/tsconfig.json
index 77832da6336d..73a65ef2ef6e 100644
--- a/code/frameworks/react-webpack5/tsconfig.json
+++ b/code/frameworks/react-webpack5/tsconfig.json
@@ -1,8 +1,5 @@
{
"extends": "../../tsconfig.json",
- "compilerOptions": {
- "strict": true,
- "resolveJsonModule": true
- },
+ "compilerOptions": {},
"include": ["src/**/*"]
}
diff --git a/code/frameworks/server-webpack5/package.json b/code/frameworks/server-webpack5/package.json
index 200881e17316..20c7176ad11c 100644
--- a/code/frameworks/server-webpack5/package.json
+++ b/code/frameworks/server-webpack5/package.json
@@ -1,6 +1,6 @@
{
"name": "@storybook/server-webpack5",
- "version": "8.2.0-beta.2",
+ "version": "8.3.0-alpha.0",
"description": "Storybook for Server: View HTML snippets from a server in isolation with Hot Reloading.",
"keywords": [
"storybook"
diff --git a/code/frameworks/server-webpack5/tsconfig.json b/code/frameworks/server-webpack5/tsconfig.json
index a4429176e35f..73a65ef2ef6e 100644
--- a/code/frameworks/server-webpack5/tsconfig.json
+++ b/code/frameworks/server-webpack5/tsconfig.json
@@ -1,7 +1,5 @@
{
"extends": "../../tsconfig.json",
- "compilerOptions": {
- "strict": true
- },
+ "compilerOptions": {},
"include": ["src/**/*"]
}
diff --git a/code/frameworks/svelte-vite/package.json b/code/frameworks/svelte-vite/package.json
index 68fee31afdd8..7382460efc65 100644
--- a/code/frameworks/svelte-vite/package.json
+++ b/code/frameworks/svelte-vite/package.json
@@ -1,6 +1,6 @@
{
"name": "@storybook/svelte-vite",
- "version": "8.2.0-beta.2",
+ "version": "8.3.0-alpha.0",
"description": "Storybook for Svelte and Vite: Develop Svelte components in isolation with Hot Reloading.",
"keywords": [
"storybook"
diff --git a/code/frameworks/svelte-vite/tsconfig.json b/code/frameworks/svelte-vite/tsconfig.json
index 3bfb79fdded7..c749496d9a6e 100644
--- a/code/frameworks/svelte-vite/tsconfig.json
+++ b/code/frameworks/svelte-vite/tsconfig.json
@@ -1,10 +1,11 @@
{
- "extends": "../../tsconfig.json",
"compilerOptions": {
- "rootDir": "./src",
- "types": ["node"],
- "resolveJsonModule": true,
- "strict": true
+ "baseUrl": ".",
+ "paths": {
+ "storybook/internal/*": ["../../lib/cli/core/*"]
+ },
+ "rootDir": "./src"
},
+ "extends": "../../tsconfig.json",
"include": ["src/**/*"]
}
diff --git a/code/frameworks/svelte-webpack5/package.json b/code/frameworks/svelte-webpack5/package.json
index c06f9f94c402..a26b09f0e119 100644
--- a/code/frameworks/svelte-webpack5/package.json
+++ b/code/frameworks/svelte-webpack5/package.json
@@ -1,6 +1,6 @@
{
"name": "@storybook/svelte-webpack5",
- "version": "8.2.0-beta.2",
+ "version": "8.3.0-alpha.0",
"description": "Storybook for Svelte: Develop Svelte Component in isolation with Hot Reloading.",
"keywords": [
"storybook"
diff --git a/code/frameworks/svelte-webpack5/tsconfig.json b/code/frameworks/svelte-webpack5/tsconfig.json
index 77832da6336d..73a65ef2ef6e 100644
--- a/code/frameworks/svelte-webpack5/tsconfig.json
+++ b/code/frameworks/svelte-webpack5/tsconfig.json
@@ -1,8 +1,5 @@
{
"extends": "../../tsconfig.json",
- "compilerOptions": {
- "strict": true,
- "resolveJsonModule": true
- },
+ "compilerOptions": {},
"include": ["src/**/*"]
}
diff --git a/code/frameworks/sveltekit/package.json b/code/frameworks/sveltekit/package.json
index 671eecb5519b..07428f493a0d 100644
--- a/code/frameworks/sveltekit/package.json
+++ b/code/frameworks/sveltekit/package.json
@@ -1,6 +1,6 @@
{
"name": "@storybook/sveltekit",
- "version": "8.2.0-beta.2",
+ "version": "8.3.0-alpha.0",
"description": "Storybook for SvelteKit",
"keywords": [
"storybook",
diff --git a/code/frameworks/sveltekit/tsconfig.json b/code/frameworks/sveltekit/tsconfig.json
index 3bfb79fdded7..c749496d9a6e 100644
--- a/code/frameworks/sveltekit/tsconfig.json
+++ b/code/frameworks/sveltekit/tsconfig.json
@@ -1,10 +1,11 @@
{
- "extends": "../../tsconfig.json",
"compilerOptions": {
- "rootDir": "./src",
- "types": ["node"],
- "resolveJsonModule": true,
- "strict": true
+ "baseUrl": ".",
+ "paths": {
+ "storybook/internal/*": ["../../lib/cli/core/*"]
+ },
+ "rootDir": "./src"
},
+ "extends": "../../tsconfig.json",
"include": ["src/**/*"]
}
diff --git a/code/frameworks/vue3-vite/package.json b/code/frameworks/vue3-vite/package.json
index b37eee373ea7..f9361e7b775b 100644
--- a/code/frameworks/vue3-vite/package.json
+++ b/code/frameworks/vue3-vite/package.json
@@ -1,6 +1,6 @@
{
"name": "@storybook/vue3-vite",
- "version": "8.2.0-beta.2",
+ "version": "8.3.0-alpha.0",
"description": "Storybook for Vue3 and Vite: Develop Vue3 components in isolation with Hot Reloading.",
"keywords": [
"storybook"
diff --git a/code/frameworks/vue3-vite/tsconfig.json b/code/frameworks/vue3-vite/tsconfig.json
index bbd5d9a38f99..c749496d9a6e 100644
--- a/code/frameworks/vue3-vite/tsconfig.json
+++ b/code/frameworks/vue3-vite/tsconfig.json
@@ -1,11 +1,11 @@
{
- "extends": "../../tsconfig.json",
"compilerOptions": {
- "rootDir": "./src",
- "types": ["node"],
- "skipLibCheck": true,
- "resolveJsonModule": true,
- "strict": true
+ "baseUrl": ".",
+ "paths": {
+ "storybook/internal/*": ["../../lib/cli/core/*"]
+ },
+ "rootDir": "./src"
},
+ "extends": "../../tsconfig.json",
"include": ["src/**/*"]
}
diff --git a/code/frameworks/vue3-webpack5/package.json b/code/frameworks/vue3-webpack5/package.json
index fcbb3f0d9f1f..41e17adba7a3 100644
--- a/code/frameworks/vue3-webpack5/package.json
+++ b/code/frameworks/vue3-webpack5/package.json
@@ -1,6 +1,6 @@
{
"name": "@storybook/vue3-webpack5",
- "version": "8.2.0-beta.2",
+ "version": "8.3.0-alpha.0",
"description": "Storybook for Vue 3: Develop Vue 3 Components in isolation with Hot Reloading.",
"keywords": [
"storybook"
diff --git a/code/frameworks/vue3-webpack5/tsconfig.json b/code/frameworks/vue3-webpack5/tsconfig.json
index a7475d986d4d..73a65ef2ef6e 100644
--- a/code/frameworks/vue3-webpack5/tsconfig.json
+++ b/code/frameworks/vue3-webpack5/tsconfig.json
@@ -1,9 +1,5 @@
{
"extends": "../../tsconfig.json",
- "compilerOptions": {
- "resolveJsonModule": true,
- "skipLibCheck": true,
- "strict": true
- },
+ "compilerOptions": {},
"include": ["src/**/*"]
}
diff --git a/code/frameworks/web-components-vite/package.json b/code/frameworks/web-components-vite/package.json
index 635f28d2ed6e..a18fc4d66d45 100644
--- a/code/frameworks/web-components-vite/package.json
+++ b/code/frameworks/web-components-vite/package.json
@@ -1,6 +1,6 @@
{
"name": "@storybook/web-components-vite",
- "version": "8.2.0-beta.2",
+ "version": "8.3.0-alpha.0",
"description": "Storybook for web-components and Vite: Develop Web Components in isolation with Hot Reloading.",
"keywords": [
"storybook"
diff --git a/code/frameworks/web-components-vite/tsconfig.json b/code/frameworks/web-components-vite/tsconfig.json
index 3bfb79fdded7..c749496d9a6e 100644
--- a/code/frameworks/web-components-vite/tsconfig.json
+++ b/code/frameworks/web-components-vite/tsconfig.json
@@ -1,10 +1,11 @@
{
- "extends": "../../tsconfig.json",
"compilerOptions": {
- "rootDir": "./src",
- "types": ["node"],
- "resolveJsonModule": true,
- "strict": true
+ "baseUrl": ".",
+ "paths": {
+ "storybook/internal/*": ["../../lib/cli/core/*"]
+ },
+ "rootDir": "./src"
},
+ "extends": "../../tsconfig.json",
"include": ["src/**/*"]
}
diff --git a/code/frameworks/web-components-webpack5/package.json b/code/frameworks/web-components-webpack5/package.json
index 403bb58782af..7a3d01a09011 100644
--- a/code/frameworks/web-components-webpack5/package.json
+++ b/code/frameworks/web-components-webpack5/package.json
@@ -1,6 +1,6 @@
{
"name": "@storybook/web-components-webpack5",
- "version": "8.2.0-beta.2",
+ "version": "8.3.0-alpha.0",
"description": "Storybook for web-components: View web components snippets in isolation with Hot Reloading.",
"keywords": [
"lit",
diff --git a/code/frameworks/web-components-webpack5/tsconfig.json b/code/frameworks/web-components-webpack5/tsconfig.json
index a4429176e35f..73a65ef2ef6e 100644
--- a/code/frameworks/web-components-webpack5/tsconfig.json
+++ b/code/frameworks/web-components-webpack5/tsconfig.json
@@ -1,7 +1,5 @@
{
"extends": "../../tsconfig.json",
- "compilerOptions": {
- "strict": true
- },
+ "compilerOptions": {},
"include": ["src/**/*"]
}
diff --git a/code/lib/blocks/package.json b/code/lib/blocks/package.json
index bf6dc2aa69f6..f6a998875bec 100644
--- a/code/lib/blocks/package.json
+++ b/code/lib/blocks/package.json
@@ -1,6 +1,6 @@
{
"name": "@storybook/blocks",
- "version": "8.2.0-beta.2",
+ "version": "8.3.0-alpha.0",
"description": "Storybook Doc Blocks",
"keywords": [
"storybook"
@@ -61,6 +61,7 @@
},
"devDependencies": {
"@storybook/addon-actions": "workspace:*",
+ "@storybook/react": "workspace:*",
"@storybook/test": "workspace:*",
"@types/color-convert": "^2.0.0",
"tocbot": "^4.20.1"
diff --git a/code/lib/blocks/src/controls/Number.tsx b/code/lib/blocks/src/controls/Number.tsx
index fd330406e6e4..9d75a80e8282 100644
--- a/code/lib/blocks/src/controls/Number.tsx
+++ b/code/lib/blocks/src/controls/Number.tsx
@@ -62,7 +62,9 @@ export const NumberControl: FC = ({
const htmlElRef = useRef(null);
useEffect(() => {
- if (forceVisible && htmlElRef.current) htmlElRef.current.select();
+ if (forceVisible && htmlElRef.current) {
+ htmlElRef.current.select();
+ }
}, [forceVisible]);
useEffect(() => {
diff --git a/code/lib/blocks/src/controls/Object.tsx b/code/lib/blocks/src/controls/Object.tsx
index f6fda6ed8b42..1a1cc0a33c9a 100644
--- a/code/lib/blocks/src/controls/Object.tsx
+++ b/code/lib/blocks/src/controls/Object.tsx
@@ -249,12 +249,15 @@ export const ObjectControl: FC = ({ name, value, onChange, argType
const data = useMemo(() => value && cloneDeep(value), [value]);
const hasData = data !== null && data !== undefined;
const [showRaw, setShowRaw] = useState(!hasData);
+
const [parseError, setParseError] = useState(null);
const readonly = !!argType?.table?.readonly;
const updateRaw: (raw: string) => void = useCallback(
(raw) => {
try {
- if (raw) onChange(JSON.parse(raw));
+ if (raw) {
+ onChange(JSON.parse(raw));
+ }
setParseError(undefined);
} catch (e) {
setParseError(e);
@@ -271,7 +274,9 @@ export const ObjectControl: FC = ({ name, value, onChange, argType
const htmlElRef = useRef(null);
useEffect(() => {
- if (forceVisible && htmlElRef.current) htmlElRef.current.select();
+ if (forceVisible && htmlElRef.current) {
+ htmlElRef.current.select();
+ }
}, [forceVisible]);
if (!hasData) {
diff --git a/code/lib/blocks/tsconfig.json b/code/lib/blocks/tsconfig.json
index 061b6a531157..9dad87f67d86 100644
--- a/code/lib/blocks/tsconfig.json
+++ b/code/lib/blocks/tsconfig.json
@@ -1,10 +1,12 @@
{
- "extends": "../../tsconfig.json",
"compilerOptions": {
+ "baseUrl": ".",
"module": "esnext",
- "skipLibCheck": true,
- "rootDir": "./src",
+ "paths": {
+ "storybook/internal/*": ["../../lib/cli/core/*"]
+ },
"strict": false
},
+ "extends": "../../tsconfig.json",
"include": ["src/**/*"]
}
diff --git a/code/lib/cli-sb/package.json b/code/lib/cli-sb/package.json
index c71659909608..1f8b0cda1a5f 100644
--- a/code/lib/cli-sb/package.json
+++ b/code/lib/cli-sb/package.json
@@ -1,6 +1,6 @@
{
"name": "sb",
- "version": "8.2.0-beta.2",
+ "version": "8.3.0-alpha.0",
"description": "Storybook CLI",
"keywords": [
"storybook"
diff --git a/code/lib/cli-storybook/package.json b/code/lib/cli-storybook/package.json
index a9e25b616f8a..4f28285772e4 100644
--- a/code/lib/cli-storybook/package.json
+++ b/code/lib/cli-storybook/package.json
@@ -1,6 +1,6 @@
{
"name": "@storybook/cli",
- "version": "8.2.0-beta.2",
+ "version": "8.3.0-alpha.0",
"description": "Storybook CLI",
"keywords": [
"storybook"
diff --git a/code/lib/cli/package.json b/code/lib/cli/package.json
index ebe41c5cdf77..3b7f10bf0838 100644
--- a/code/lib/cli/package.json
+++ b/code/lib/cli/package.json
@@ -1,6 +1,6 @@
{
"name": "storybook",
- "version": "8.2.0-beta.2",
+ "version": "8.3.0-alpha.0",
"description": "Storybook's CLI - install, dev, build, upgrade, and more",
"keywords": [
"cli",
diff --git a/code/lib/cli/tsconfig.json b/code/lib/cli/tsconfig.json
index 9c5db279ca2d..2831f7bb6d03 100644
--- a/code/lib/cli/tsconfig.json
+++ b/code/lib/cli/tsconfig.json
@@ -1,11 +1,5 @@
{
+ "compilerOptions": {},
"extends": "../../tsconfig.json",
- "compilerOptions": {
- "types": ["node"],
- "strict": true,
- "skipLibCheck": true,
- "resolveJsonModule": true,
- "noEmit": true
- },
"include": ["src/**/*"]
}
diff --git a/code/lib/codemod/package.json b/code/lib/codemod/package.json
index 72996f7acfcb..6e55584c100d 100644
--- a/code/lib/codemod/package.json
+++ b/code/lib/codemod/package.json
@@ -1,6 +1,6 @@
{
"name": "@storybook/codemod",
- "version": "8.2.0-beta.2",
+ "version": "8.3.0-alpha.0",
"description": "A collection of codemod scripts written with JSCodeshift",
"keywords": [
"storybook"
@@ -70,7 +70,7 @@
},
"devDependencies": {
"@types/jscodeshift": "^0.11.10",
- "ansi-regex": "^5.0.1",
+ "ansi-regex": "^6.0.1",
"mdast-util-mdx-jsx": "^3.0.0",
"mdast-util-mdxjs-esm": "^2.0.1",
"remark": "^15.0.1",
diff --git a/code/lib/codemod/tsconfig.json b/code/lib/codemod/tsconfig.json
index 77d9af2cd661..b2a5d2c2ee19 100644
--- a/code/lib/codemod/tsconfig.json
+++ b/code/lib/codemod/tsconfig.json
@@ -1,10 +1,9 @@
{
"extends": "../../tsconfig.json",
"compilerOptions": {
- "skipLibCheck": true,
"allowJs": true,
- "strict": true
+ "strict": false
},
- "include": ["src/**/*"],
- "exclude": ["node_modules", "__testfixtures__", "__tests__"]
+ "exclude": ["node_modules", "__testfixtures__", "__tests__"],
+ "include": ["src/**/*"]
}
diff --git a/code/lib/core-webpack/package.json b/code/lib/core-webpack/package.json
index 81b06e01256d..1e95304dbf0f 100644
--- a/code/lib/core-webpack/package.json
+++ b/code/lib/core-webpack/package.json
@@ -1,6 +1,6 @@
{
"name": "@storybook/core-webpack",
- "version": "8.2.0-beta.2",
+ "version": "8.3.0-alpha.0",
"description": "Storybook framework-agnostic API",
"keywords": [
"storybook"
diff --git a/code/lib/core-webpack/tsconfig.json b/code/lib/core-webpack/tsconfig.json
index a4429176e35f..73a65ef2ef6e 100644
--- a/code/lib/core-webpack/tsconfig.json
+++ b/code/lib/core-webpack/tsconfig.json
@@ -1,7 +1,5 @@
{
"extends": "../../tsconfig.json",
- "compilerOptions": {
- "strict": true
- },
+ "compilerOptions": {},
"include": ["src/**/*"]
}
diff --git a/code/lib/csf-plugin/package.json b/code/lib/csf-plugin/package.json
index dde4fbd1392f..447d677386e5 100644
--- a/code/lib/csf-plugin/package.json
+++ b/code/lib/csf-plugin/package.json
@@ -1,6 +1,6 @@
{
"name": "@storybook/csf-plugin",
- "version": "8.2.0-beta.2",
+ "version": "8.3.0-alpha.0",
"description": "Enrich CSF files via static analysis",
"keywords": [
"storybook"
diff --git a/code/lib/csf-plugin/tsconfig.json b/code/lib/csf-plugin/tsconfig.json
index 5b3f3a56a68d..73a65ef2ef6e 100644
--- a/code/lib/csf-plugin/tsconfig.json
+++ b/code/lib/csf-plugin/tsconfig.json
@@ -1,8 +1,5 @@
{
"extends": "../../tsconfig.json",
- "compilerOptions": {
- "strict": true,
- "skipLibCheck": true
- },
+ "compilerOptions": {},
"include": ["src/**/*"]
}
diff --git a/code/lib/instrumenter/package.json b/code/lib/instrumenter/package.json
index 2f414081d00c..ba29f5151f1c 100644
--- a/code/lib/instrumenter/package.json
+++ b/code/lib/instrumenter/package.json
@@ -1,6 +1,6 @@
{
"name": "@storybook/instrumenter",
- "version": "8.2.0-beta.2",
+ "version": "8.3.0-alpha.0",
"description": "",
"keywords": [
"storybook"
diff --git a/code/lib/instrumenter/tsconfig.json b/code/lib/instrumenter/tsconfig.json
index b5a2f9a70918..73a65ef2ef6e 100644
--- a/code/lib/instrumenter/tsconfig.json
+++ b/code/lib/instrumenter/tsconfig.json
@@ -1,7 +1,5 @@
{
"extends": "../../tsconfig.json",
- "include": ["src/**/*"],
- "compilerOptions": {
- "strict": true
- }
+ "compilerOptions": {},
+ "include": ["src/**/*"]
}
diff --git a/code/lib/react-dom-shim/package.json b/code/lib/react-dom-shim/package.json
index e0c558a889f1..29af1e282b9a 100644
--- a/code/lib/react-dom-shim/package.json
+++ b/code/lib/react-dom-shim/package.json
@@ -1,6 +1,6 @@
{
"name": "@storybook/react-dom-shim",
- "version": "8.2.0-beta.2",
+ "version": "8.3.0-alpha.0",
"description": "",
"keywords": [
"storybook"
diff --git a/code/lib/react-dom-shim/tsconfig.json b/code/lib/react-dom-shim/tsconfig.json
index 7378641b0d33..73a65ef2ef6e 100644
--- a/code/lib/react-dom-shim/tsconfig.json
+++ b/code/lib/react-dom-shim/tsconfig.json
@@ -1,8 +1,5 @@
{
"extends": "../../tsconfig.json",
- "compilerOptions": {
- "strict": true,
- "types": ["node"]
- },
+ "compilerOptions": {},
"include": ["src/**/*"]
}
diff --git a/code/lib/source-loader/package.json b/code/lib/source-loader/package.json
index 4bd048fb91b3..3e052e22090b 100644
--- a/code/lib/source-loader/package.json
+++ b/code/lib/source-loader/package.json
@@ -1,6 +1,6 @@
{
"name": "@storybook/source-loader",
- "version": "8.2.0-beta.2",
+ "version": "8.3.0-alpha.0",
"description": "Source loader",
"keywords": [
"lib",
diff --git a/code/lib/source-loader/tsconfig.json b/code/lib/source-loader/tsconfig.json
index b5a2f9a70918..73a65ef2ef6e 100644
--- a/code/lib/source-loader/tsconfig.json
+++ b/code/lib/source-loader/tsconfig.json
@@ -1,7 +1,5 @@
{
"extends": "../../tsconfig.json",
- "include": ["src/**/*"],
- "compilerOptions": {
- "strict": true
- }
+ "compilerOptions": {},
+ "include": ["src/**/*"]
}
diff --git a/code/lib/test/package.json b/code/lib/test/package.json
index 16754b8f1847..ec3ed55f79cd 100644
--- a/code/lib/test/package.json
+++ b/code/lib/test/package.json
@@ -1,6 +1,6 @@
{
"name": "@storybook/test",
- "version": "8.2.0-beta.2",
+ "version": "8.3.0-alpha.0",
"description": "",
"keywords": [
"storybook"
diff --git a/code/lib/test/tsconfig.json b/code/lib/test/tsconfig.json
index 52d43eaaa9b9..73a65ef2ef6e 100644
--- a/code/lib/test/tsconfig.json
+++ b/code/lib/test/tsconfig.json
@@ -1,4 +1,5 @@
{
"extends": "../../tsconfig.json",
+ "compilerOptions": {},
"include": ["src/**/*"]
}
diff --git a/code/package.json b/code/package.json
index 4397f4939560..2a6bbac1a387 100644
--- a/code/package.json
+++ b/code/package.json
@@ -1,6 +1,6 @@
{
"name": "@storybook/root",
- "version": "8.2.0-beta.2",
+ "version": "8.3.0-alpha.0",
"private": true,
"description": "Storybook root",
"homepage": "https://storybook.js.org/",
@@ -79,14 +79,14 @@
"@testing-library/jest-dom/aria-query": "5.1.3",
"@types/node": "^18.0.0",
"@vitest/expect": "patch:@vitest/expect@npm%3A1.6.0#~/.yarn/patches/@vitest-expect-npm-1.6.0-0e382f8212.patch",
- "esbuild": "^0.21.5",
+ "esbuild": "^0.23.0",
"playwright": "1.36.0",
"playwright-core": "1.36.0",
"serialize-javascript": "^3.1.0",
"type-fest": "~2.19"
},
"dependencies": {
- "@chromatic-com/storybook": "^1.3.2",
+ "@chromatic-com/storybook": "^1.6.1",
"@happy-dom/global-registrator": "^14.12.0",
"@nx/eslint": "18.0.6",
"@nx/vite": "18.0.6",
@@ -175,9 +175,9 @@
"@vitejs/plugin-react": "^3.0.1",
"@vitest/coverage-v8": "^1.2.2",
"cross-env": "^7.0.3",
- "danger": "^11.2.6",
- "esbuild": "^0.18.0 || ^0.19.0 || ^0.20.0 || ^0.21.0",
- "esbuild-loader": "^3.0.0",
+ "danger": "^12.3.3",
+ "esbuild": "^0.18.0 || ^0.19.0 || ^0.20.0 || ^0.21.0 || ^0.22.0 || ^0.23.0",
+ "esbuild-loader": "^4.2.0",
"esbuild-plugin-alias": "^0.2.1",
"eslint": "^8.56.0",
"eslint-import-resolver-typescript": "^3.6.1",
diff --git a/code/presets/create-react-app/package.json b/code/presets/create-react-app/package.json
index 5b74760249c3..2241500c2450 100644
--- a/code/presets/create-react-app/package.json
+++ b/code/presets/create-react-app/package.json
@@ -1,6 +1,6 @@
{
"name": "@storybook/preset-create-react-app",
- "version": "8.2.0-beta.2",
+ "version": "8.3.0-alpha.0",
"description": "Storybook for Create React App preset",
"keywords": [
"storybook"
diff --git a/code/presets/create-react-app/tsconfig.json b/code/presets/create-react-app/tsconfig.json
index a4429176e35f..73a65ef2ef6e 100644
--- a/code/presets/create-react-app/tsconfig.json
+++ b/code/presets/create-react-app/tsconfig.json
@@ -1,7 +1,5 @@
{
"extends": "../../tsconfig.json",
- "compilerOptions": {
- "strict": true
- },
+ "compilerOptions": {},
"include": ["src/**/*"]
}
diff --git a/code/presets/html-webpack/package.json b/code/presets/html-webpack/package.json
index f42d97a18e8a..704f6d59d308 100644
--- a/code/presets/html-webpack/package.json
+++ b/code/presets/html-webpack/package.json
@@ -1,6 +1,6 @@
{
"name": "@storybook/preset-html-webpack",
- "version": "8.2.0-beta.2",
+ "version": "8.3.0-alpha.0",
"description": "Storybook for HTML: View HTML snippets in isolation with Hot Reloading.",
"keywords": [
"storybook"
diff --git a/code/presets/html-webpack/tsconfig.json b/code/presets/html-webpack/tsconfig.json
index a4429176e35f..73a65ef2ef6e 100644
--- a/code/presets/html-webpack/tsconfig.json
+++ b/code/presets/html-webpack/tsconfig.json
@@ -1,7 +1,5 @@
{
"extends": "../../tsconfig.json",
- "compilerOptions": {
- "strict": true
- },
+ "compilerOptions": {},
"include": ["src/**/*"]
}
diff --git a/code/presets/preact-webpack/package.json b/code/presets/preact-webpack/package.json
index 0fc3e52e10e3..6a1e0a280a15 100644
--- a/code/presets/preact-webpack/package.json
+++ b/code/presets/preact-webpack/package.json
@@ -1,6 +1,6 @@
{
"name": "@storybook/preset-preact-webpack",
- "version": "8.2.0-beta.2",
+ "version": "8.3.0-alpha.0",
"description": "Storybook for Preact: Develop Preact Component in isolation.",
"keywords": [
"storybook"
diff --git a/code/presets/preact-webpack/tsconfig.json b/code/presets/preact-webpack/tsconfig.json
index 77832da6336d..73a65ef2ef6e 100644
--- a/code/presets/preact-webpack/tsconfig.json
+++ b/code/presets/preact-webpack/tsconfig.json
@@ -1,8 +1,5 @@
{
"extends": "../../tsconfig.json",
- "compilerOptions": {
- "strict": true,
- "resolveJsonModule": true
- },
+ "compilerOptions": {},
"include": ["src/**/*"]
}
diff --git a/code/presets/react-webpack/package.json b/code/presets/react-webpack/package.json
index 83dec5962471..771b67e795c7 100644
--- a/code/presets/react-webpack/package.json
+++ b/code/presets/react-webpack/package.json
@@ -1,6 +1,6 @@
{
"name": "@storybook/preset-react-webpack",
- "version": "8.2.0-beta.2",
+ "version": "8.3.0-alpha.0",
"description": "Storybook for React: Develop React Component in isolation with Hot Reloading",
"keywords": [
"storybook"
diff --git a/code/presets/react-webpack/tsconfig.json b/code/presets/react-webpack/tsconfig.json
index 77832da6336d..73a65ef2ef6e 100644
--- a/code/presets/react-webpack/tsconfig.json
+++ b/code/presets/react-webpack/tsconfig.json
@@ -1,8 +1,5 @@
{
"extends": "../../tsconfig.json",
- "compilerOptions": {
- "strict": true,
- "resolveJsonModule": true
- },
+ "compilerOptions": {},
"include": ["src/**/*"]
}
diff --git a/code/presets/server-webpack/package.json b/code/presets/server-webpack/package.json
index b42cf992f373..b516d0b928bf 100644
--- a/code/presets/server-webpack/package.json
+++ b/code/presets/server-webpack/package.json
@@ -1,6 +1,6 @@
{
"name": "@storybook/preset-server-webpack",
- "version": "8.2.0-beta.2",
+ "version": "8.3.0-alpha.0",
"description": "Storybook for Server: View HTML snippets from a server in isolation with Hot Reloading.",
"keywords": [
"storybook"
diff --git a/code/presets/server-webpack/tsconfig.json b/code/presets/server-webpack/tsconfig.json
index a4429176e35f..73a65ef2ef6e 100644
--- a/code/presets/server-webpack/tsconfig.json
+++ b/code/presets/server-webpack/tsconfig.json
@@ -1,7 +1,5 @@
{
"extends": "../../tsconfig.json",
- "compilerOptions": {
- "strict": true
- },
+ "compilerOptions": {},
"include": ["src/**/*"]
}
diff --git a/code/presets/svelte-webpack/package.json b/code/presets/svelte-webpack/package.json
index b5636fed5ee3..a2e60dd2a774 100644
--- a/code/presets/svelte-webpack/package.json
+++ b/code/presets/svelte-webpack/package.json
@@ -1,6 +1,6 @@
{
"name": "@storybook/preset-svelte-webpack",
- "version": "8.2.0-beta.2",
+ "version": "8.3.0-alpha.0",
"description": "Storybook for Svelte: Develop Svelte Component in isolation with Hot Reloading.",
"keywords": [
"storybook"
diff --git a/code/presets/svelte-webpack/tsconfig.json b/code/presets/svelte-webpack/tsconfig.json
index 77832da6336d..73a65ef2ef6e 100644
--- a/code/presets/svelte-webpack/tsconfig.json
+++ b/code/presets/svelte-webpack/tsconfig.json
@@ -1,8 +1,5 @@
{
"extends": "../../tsconfig.json",
- "compilerOptions": {
- "strict": true,
- "resolveJsonModule": true
- },
+ "compilerOptions": {},
"include": ["src/**/*"]
}
diff --git a/code/presets/vue3-webpack/package.json b/code/presets/vue3-webpack/package.json
index 566fb484428f..b122128b6ee6 100644
--- a/code/presets/vue3-webpack/package.json
+++ b/code/presets/vue3-webpack/package.json
@@ -1,6 +1,6 @@
{
"name": "@storybook/preset-vue3-webpack",
- "version": "8.2.0-beta.2",
+ "version": "8.3.0-alpha.0",
"description": "Storybook for Vue 3: Develop Vue 3 Components in isolation with Hot Reloading.",
"keywords": [
"storybook"
@@ -62,7 +62,7 @@
"@storybook/core-webpack": "workspace:*",
"@types/node": "^18.0.0",
"ts-loader": "^9.2.8",
- "vue-docgen-api": "^4.46.0",
+ "vue-docgen-api": "^4.75.1",
"vue-docgen-loader": "^1.5.1",
"vue-loader": "^16.0.0",
"webpack": "5"
diff --git a/code/presets/vue3-webpack/tsconfig.json b/code/presets/vue3-webpack/tsconfig.json
index a7475d986d4d..73a65ef2ef6e 100644
--- a/code/presets/vue3-webpack/tsconfig.json
+++ b/code/presets/vue3-webpack/tsconfig.json
@@ -1,9 +1,5 @@
{
"extends": "../../tsconfig.json",
- "compilerOptions": {
- "resolveJsonModule": true,
- "skipLibCheck": true,
- "strict": true
- },
+ "compilerOptions": {},
"include": ["src/**/*"]
}
diff --git a/code/renderers/html/package.json b/code/renderers/html/package.json
index 0b16a553eea3..c2d343158949 100644
--- a/code/renderers/html/package.json
+++ b/code/renderers/html/package.json
@@ -1,6 +1,6 @@
{
"name": "@storybook/html",
- "version": "8.2.0-beta.2",
+ "version": "8.3.0-alpha.0",
"description": "Storybook HTML renderer",
"keywords": [
"storybook"
diff --git a/code/renderers/html/tsconfig.json b/code/renderers/html/tsconfig.json
index daa7b13b26b2..3b01f80f2c32 100644
--- a/code/renderers/html/tsconfig.json
+++ b/code/renderers/html/tsconfig.json
@@ -1,7 +1,5 @@
{
"extends": "../../tsconfig.json",
- "compilerOptions": {
- "strict": true
- },
+ "compilerOptions": {},
"include": ["src/**/*", "template/**/*"]
}
diff --git a/code/renderers/preact/package.json b/code/renderers/preact/package.json
index 0d01c70e7bfb..a0b2eaab393c 100644
--- a/code/renderers/preact/package.json
+++ b/code/renderers/preact/package.json
@@ -1,6 +1,6 @@
{
"name": "@storybook/preact",
- "version": "8.2.0-beta.2",
+ "version": "8.3.0-alpha.0",
"description": "Storybook Preact renderer",
"keywords": [
"storybook"
diff --git a/code/renderers/preact/tsconfig.json b/code/renderers/preact/tsconfig.json
index bd6414b1a14d..3b01f80f2c32 100644
--- a/code/renderers/preact/tsconfig.json
+++ b/code/renderers/preact/tsconfig.json
@@ -1,8 +1,5 @@
{
"extends": "../../tsconfig.json",
- "compilerOptions": {
- "strict": true,
- "resolveJsonModule": true
- },
+ "compilerOptions": {},
"include": ["src/**/*", "template/**/*"]
}
diff --git a/code/renderers/react/package.json b/code/renderers/react/package.json
index 7b219a292727..a6d18e19fe71 100644
--- a/code/renderers/react/package.json
+++ b/code/renderers/react/package.json
@@ -1,6 +1,6 @@
{
"name": "@storybook/react",
- "version": "8.2.0-beta.2",
+ "version": "8.3.0-alpha.0",
"description": "Storybook React renderer",
"keywords": [
"storybook"
@@ -83,7 +83,6 @@
"util-deprecate": "^1.0.2"
},
"devDependencies": {
- "@storybook/blocks": "workspace:*",
"@storybook/test": "workspace:*",
"@types/babel-plugin-react-docgen": "^4",
"@types/semver": "^7.3.4",
diff --git a/code/renderers/react/src/docs/extractArgTypes.ts b/code/renderers/react/src/docs/extractArgTypes.ts
index c7cac4c96a81..efa23a7df28c 100644
--- a/code/renderers/react/src/docs/extractArgTypes.ts
+++ b/code/renderers/react/src/docs/extractArgTypes.ts
@@ -2,7 +2,7 @@ import type { StrictArgTypes } from 'storybook/internal/types';
import type { PropDef, ArgTypesExtractor } from 'storybook/internal/docs-tools';
import { extractProps } from './extractProps';
-export const extractArgTypes: ArgTypesExtractor = (component) => {
+export const extractArgTypes: ArgTypesExtractor = (component): StrictArgTypes | null => {
if (component) {
const { rows } = extractProps(component);
if (rows) {
diff --git a/code/renderers/react/src/entry-preview-docs.ts b/code/renderers/react/src/entry-preview-docs.ts
index 5bdcd7f2c40f..ad3146a94fe5 100644
--- a/code/renderers/react/src/entry-preview-docs.ts
+++ b/code/renderers/react/src/entry-preview-docs.ts
@@ -1,11 +1,20 @@
import type { ArgTypesEnhancer, DecoratorFunction } from 'storybook/internal/types';
+import type { ArgTypesExtractor } from 'storybook/internal/docs-tools';
import { extractComponentDescription, enhanceArgTypes } from 'storybook/internal/docs-tools';
import { extractArgTypes } from './docs/extractArgTypes';
import { jsxDecorator } from './docs/jsxDecorator';
import type { ReactRenderer } from './types';
-export const parameters = {
+export const parameters: {
+ docs: {
+ story: {
+ inline: boolean;
+ };
+ extractArgTypes: ArgTypesExtractor;
+ extractComponentDescription: (component?: any) => string;
+ };
+} = {
docs: {
story: { inline: true },
extractArgTypes,
diff --git a/code/renderers/react/src/portable-stories.tsx b/code/renderers/react/src/portable-stories.tsx
index e562d68963d4..b8058deb4571 100644
--- a/code/renderers/react/src/portable-stories.tsx
+++ b/code/renderers/react/src/portable-stories.tsx
@@ -10,6 +10,7 @@ import type {
Store_CSFExports,
StoriesWithPartialProps,
ProjectAnnotations,
+ ComposedStoryFn,
} from 'storybook/internal/types';
import * as reactProjectAnnotations from './entry-preview';
@@ -85,7 +86,7 @@ export function composeStory(
componentAnnotations: Meta,
projectAnnotations?: ProjectAnnotations,
exportsName?: string
-) {
+): ComposedStoryFn> {
return originalComposeStory(
story as StoryAnnotationsOrFn,
componentAnnotations,
diff --git a/code/renderers/react/template/stories/docgen-components/8428-js-static-prop-types/docgen.snapshot b/code/renderers/react/template/stories/docgen-components/8428-js-static-prop-types/docgen.snapshot
index 2fb12d5579e7..516d6a99d828 100644
--- a/code/renderers/react/template/stories/docgen-components/8428-js-static-prop-types/docgen.snapshot
+++ b/code/renderers/react/template/stories/docgen-components/8428-js-static-prop-types/docgen.snapshot
@@ -1,4 +1,4 @@
-function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
+function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
import React from 'react';
diff --git a/code/renderers/react/template/stories/docgen-components/9556-ts-react-default-exports/docgen.snapshot b/code/renderers/react/template/stories/docgen-components/9556-ts-react-default-exports/docgen.snapshot
index deeed4ffa007..96720e8f4df7 100644
--- a/code/renderers/react/template/stories/docgen-components/9556-ts-react-default-exports/docgen.snapshot
+++ b/code/renderers/react/template/stories/docgen-components/9556-ts-react-default-exports/docgen.snapshot
@@ -1,4 +1,4 @@
-function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
+function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
import React from 'react';
export const Button = ({
isDisabled = false,
diff --git a/code/renderers/react/template/stories/docgen-components/ts-function-component-inline-defaults/input.tsx b/code/renderers/react/template/stories/docgen-components/ts-function-component-inline-defaults/input.tsx
index 06b5b62edfdc..c6a4855a20fd 100644
--- a/code/renderers/react/template/stories/docgen-components/ts-function-component-inline-defaults/input.tsx
+++ b/code/renderers/react/template/stories/docgen-components/ts-function-component-inline-defaults/input.tsx
@@ -1,5 +1,7 @@
import React from 'react';
+// eslint-disable-next-line @typescript-eslint/ban-ts-comment
+// @ts-ignore-error (importing a js file)
import { imported } from '../imported';
const local = 'local-value';
diff --git a/code/renderers/react/template/stories/docgen-components/ts-function-component/input.tsx b/code/renderers/react/template/stories/docgen-components/ts-function-component/input.tsx
index 193c2e2c71ae..8b983e7e37b1 100644
--- a/code/renderers/react/template/stories/docgen-components/ts-function-component/input.tsx
+++ b/code/renderers/react/template/stories/docgen-components/ts-function-component/input.tsx
@@ -1,5 +1,7 @@
import React from 'react';
+// eslint-disable-next-line @typescript-eslint/ban-ts-comment
+// @ts-ignore (js import not supported in TS)
import { imported } from '../imported';
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
// @ts-ignore (css import not supported in TS)
diff --git a/code/renderers/react/tsconfig.json b/code/renderers/react/tsconfig.json
index 357b84b3ab23..945f5ece5318 100644
--- a/code/renderers/react/tsconfig.json
+++ b/code/renderers/react/tsconfig.json
@@ -1,10 +1,11 @@
{
"extends": "../../tsconfig.json",
"compilerOptions": {
- "strict": true,
- "skipLibCheck": true,
- "resolveJsonModule": true,
- "allowJs": true
+ "baseUrl": ".",
+ "paths": {
+ "@storybook/react": ["./src"],
+ "@storybook/blocks": ["../../lib/blocks/src"]
+ }
},
"include": ["src/**/*", "template/**/*"]
}
diff --git a/code/renderers/server/package.json b/code/renderers/server/package.json
index 46e7de8ce131..6de70a27ee24 100644
--- a/code/renderers/server/package.json
+++ b/code/renderers/server/package.json
@@ -1,6 +1,6 @@
{
"name": "@storybook/server",
- "version": "8.2.0-beta.2",
+ "version": "8.3.0-alpha.0",
"description": "Storybook Server renderer",
"keywords": [
"storybook"
diff --git a/code/renderers/server/tsconfig.json b/code/renderers/server/tsconfig.json
index e5b6521be93e..3b01f80f2c32 100644
--- a/code/renderers/server/tsconfig.json
+++ b/code/renderers/server/tsconfig.json
@@ -1,7 +1,5 @@
{
"extends": "../../tsconfig.json",
- "include": ["src/**/*", "template/**/*"],
- "compilerOptions": {
- "strict": false
- }
+ "compilerOptions": {},
+ "include": ["src/**/*", "template/**/*"]
}
diff --git a/code/renderers/svelte/package.json b/code/renderers/svelte/package.json
index 8841b30861b7..259b7e982f9b 100644
--- a/code/renderers/svelte/package.json
+++ b/code/renderers/svelte/package.json
@@ -1,6 +1,6 @@
{
"name": "@storybook/svelte",
- "version": "8.2.0-beta.2",
+ "version": "8.3.0-alpha.0",
"description": "Storybook Svelte renderer",
"keywords": [
"storybook"
diff --git a/code/renderers/svelte/src/docs/extractArgTypes.ts b/code/renderers/svelte/src/docs/extractArgTypes.ts
index a81539bd1b4b..aeb719884f93 100644
--- a/code/renderers/svelte/src/docs/extractArgTypes.ts
+++ b/code/renderers/svelte/src/docs/extractArgTypes.ts
@@ -17,7 +17,9 @@ function hasKeyword(keyword: string, keywords: JSDocKeyword[]): boolean {
return keywords ? keywords.find((k) => k.name === keyword) != null : false;
}
-export const extractArgTypes: ArgTypesExtractor = (component: ComponentWithDocgen) => {
+export const extractArgTypes: ArgTypesExtractor = (
+ component: ComponentWithDocgen
+): StrictArgTypes | null => {
try {
// eslint-disable-next-line no-underscore-dangle
const docgen = component.__docgen;
diff --git a/code/renderers/svelte/src/entry-preview-docs.ts b/code/renderers/svelte/src/entry-preview-docs.ts
index fff20c3523ff..a1abf3504a53 100644
--- a/code/renderers/svelte/src/entry-preview-docs.ts
+++ b/code/renderers/svelte/src/entry-preview-docs.ts
@@ -1,11 +1,20 @@
import type { ArgTypesEnhancer, DecoratorFunction } from 'storybook/internal/types';
+import type { ArgTypesExtractor } from 'storybook/internal/docs-tools';
import { enhanceArgTypes } from 'storybook/internal/docs-tools';
import { extractArgTypes } from './docs/extractArgTypes';
import { extractComponentDescription } from './docs/extractComponentDescription';
import { sourceDecorator } from './docs/sourceDecorator';
import type { SvelteRenderer } from './types';
-export const parameters = {
+export const parameters: {
+ docs: {
+ story: {
+ inline: boolean;
+ };
+ extractArgTypes: ArgTypesExtractor;
+ extractComponentDescription: (component?: any) => string;
+ };
+} = {
docs: {
story: { inline: true },
extractArgTypes,
diff --git a/code/renderers/svelte/src/portable-stories.ts b/code/renderers/svelte/src/portable-stories.ts
index 51c4ed0d6c82..a3c2e54336e2 100644
--- a/code/renderers/svelte/src/portable-stories.ts
+++ b/code/renderers/svelte/src/portable-stories.ts
@@ -103,7 +103,7 @@ export function composeStory(
componentAnnotations: Meta,
projectAnnotations?: ProjectAnnotations,
exportsName?: string
-) {
+): ComposedStory {
const composedStory = originalComposeStory(
story as StoryAnnotationsOrFn,
// @ts-expect-error Fix this later: Type 'Partial<{ [x: string]: any; }>' is not assignable to type 'Partial>'
diff --git a/code/renderers/svelte/tsconfig.json b/code/renderers/svelte/tsconfig.json
index 95355eedfc5a..ba474f5a2f5c 100644
--- a/code/renderers/svelte/tsconfig.json
+++ b/code/renderers/svelte/tsconfig.json
@@ -1,10 +1,7 @@
{
"extends": "../../tsconfig.json",
"compilerOptions": {
- "module": "ESNext",
- "skipLibCheck": true,
- "strict": true,
- "resolveJsonModule": true
+ "module": "ESNext"
},
"include": ["src/**/*", "src/**/*.svelte", "template/**/*", "template/**/*.svelte"]
}
diff --git a/code/renderers/vue3/package.json b/code/renderers/vue3/package.json
index 32251a6c8be0..4f3e08eacd5f 100644
--- a/code/renderers/vue3/package.json
+++ b/code/renderers/vue3/package.json
@@ -1,6 +1,6 @@
{
"name": "@storybook/vue3",
- "version": "8.2.0-beta.2",
+ "version": "8.3.0-alpha.0",
"description": "Storybook Vue 3 renderer",
"keywords": [
"storybook"
diff --git a/code/renderers/vue3/src/docs/extractArgTypes.ts b/code/renderers/vue3/src/docs/extractArgTypes.ts
index 30fda1267c40..76c52cc755a7 100644
--- a/code/renderers/vue3/src/docs/extractArgTypes.ts
+++ b/code/renderers/vue3/src/docs/extractArgTypes.ts
@@ -13,7 +13,7 @@ type PropertyMetaSchema = VueDocgenInfoEntry<'vue-component-meta', 'props'>['sch
// "exposed" is used by the vue-component-meta plugin while "expose" is used by vue-docgen-api
const ARG_TYPE_SECTIONS = ['props', 'events', 'slots', 'exposed', 'expose'] as const;
-export const extractArgTypes: ArgTypesExtractor = (component) => {
+export const extractArgTypes: ArgTypesExtractor = (component): StrictArgTypes | null => {
if (!hasDocgen>(component)) {
return null;
}
diff --git a/code/renderers/vue3/src/docs/tests-meta-components/meta-components.ts b/code/renderers/vue3/src/docs/tests-meta-components/meta-components.ts
index 9dc0f0d001c5..57d62fa259ca 100644
--- a/code/renderers/vue3/src/docs/tests-meta-components/meta-components.ts
+++ b/code/renderers/vue3/src/docs/tests-meta-components/meta-components.ts
@@ -1,5 +1,5 @@
import { TypeSystem } from 'storybook/internal/docs-tools';
-import type { VueDocgenInfo } from 'frameworks/vue3-vite/src';
+import type { VueDocgenInfo } from '../../../../../frameworks/vue3-vite/src';
type TestComponent = { __docgenInfo: VueDocgenInfo<'vue-component-meta'> };
diff --git a/code/renderers/vue3/src/entry-preview-docs.ts b/code/renderers/vue3/src/entry-preview-docs.ts
index 3668fc583123..e5011e6f8e8a 100644
--- a/code/renderers/vue3/src/entry-preview-docs.ts
+++ b/code/renderers/vue3/src/entry-preview-docs.ts
@@ -1,10 +1,18 @@
+import type { ArgTypesEnhancer } from 'storybook/internal/docs-tools';
import { enhanceArgTypes, extractComponentDescription } from 'storybook/internal/docs-tools';
-import type { ArgTypesEnhancer } from 'storybook/internal/types';
import { extractArgTypes } from './docs/extractArgTypes';
import { sourceDecorator } from './docs/sourceDecorator';
import type { VueRenderer } from './types';
-export const parameters = {
+export const parameters: {
+ docs: {
+ story: {
+ inline: boolean;
+ };
+ extractArgTypes: ArgTypesExtractor;
+ extractComponentDescription: (component?: any) => string;
+ };
+} = {
docs: {
story: { inline: true },
extractArgTypes,
diff --git a/code/renderers/vue3/src/portable-stories.ts b/code/renderers/vue3/src/portable-stories.ts
index 5965da3dd63b..7e1e64c6f458 100644
--- a/code/renderers/vue3/src/portable-stories.ts
+++ b/code/renderers/vue3/src/portable-stories.ts
@@ -10,6 +10,7 @@ import type {
StoryAnnotationsOrFn,
Store_CSFExports,
StoriesWithPartialProps,
+ ComposedStoryFn,
} from 'storybook/internal/types';
import { TestingLibraryMustBeConfiguredError } from 'storybook/internal/preview-errors';
import { h } from 'vue';
@@ -91,7 +92,7 @@ export function composeStory(
componentAnnotations: Meta,
projectAnnotations?: ProjectAnnotations,
exportsName?: string
-) {
+): JSXAble>> {
const composedStory = originalComposeStory(
story as StoryAnnotationsOrFn,
componentAnnotations,
diff --git a/code/renderers/vue3/tsconfig.json b/code/renderers/vue3/tsconfig.json
index d5b59e915abb..e54cc5da3fb2 100644
--- a/code/renderers/vue3/tsconfig.json
+++ b/code/renderers/vue3/tsconfig.json
@@ -1,13 +1,10 @@
{
"extends": "../../tsconfig.json",
"compilerOptions": {
- "strict": true,
- "resolveJsonModule": true,
- "skipLibCheck": true,
"allowJs": true
},
+ "include": ["src/**/*", "src/**/*.vue", "template/**/*", "template/**/*.vue"],
"vueCompilerOptions": {
"target": 3
- },
- "include": ["src/**/*", "src/**/*.vue", "template/**/*", "template/**/*.vue"]
+ }
}
diff --git a/code/renderers/web-components/package.json b/code/renderers/web-components/package.json
index 7875af72fcc9..d6815d095dac 100644
--- a/code/renderers/web-components/package.json
+++ b/code/renderers/web-components/package.json
@@ -1,6 +1,6 @@
{
"name": "@storybook/web-components",
- "version": "8.2.0-beta.2",
+ "version": "8.3.0-alpha.0",
"description": "Storybook web-components renderer",
"keywords": [
"lit",
diff --git a/code/renderers/web-components/src/entry-preview-docs.ts b/code/renderers/web-components/src/entry-preview-docs.ts
index 489c91bbd2d3..c6c441644e4d 100644
--- a/code/renderers/web-components/src/entry-preview-docs.ts
+++ b/code/renderers/web-components/src/entry-preview-docs.ts
@@ -1,4 +1,4 @@
-import type { ArgTypesEnhancer, DecoratorFunction } from 'storybook/internal/types';
+import type { ArgTypesEnhancer, DecoratorFunction, InputType } from 'storybook/internal/types';
import { SourceType, enhanceArgTypes } from 'storybook/internal/docs-tools';
import { extractArgTypes, extractComponentDescription } from './docs/custom-elements';
import { sourceDecorator } from './docs/sourceDecorator';
@@ -6,7 +6,24 @@ import type { WebComponentsRenderer } from './types';
export const decorators: DecoratorFunction[] = [sourceDecorator];
-export const parameters = {
+export const parameters: {
+ docs: {
+ extractArgTypes: (tagName: string) =>
+ | {
+ [x: string]: InputType;
+ }
+ | null
+ | undefined;
+ extractComponentDescription: (tagName: string) => string | null | undefined;
+ story: {
+ inline: true;
+ };
+ source: {
+ type: SourceType;
+ language: string;
+ };
+ };
+} = {
docs: {
extractArgTypes,
extractComponentDescription,
diff --git a/code/renderers/web-components/tsconfig.json b/code/renderers/web-components/tsconfig.json
index d5dc307ae91d..ca9fd89b580a 100644
--- a/code/renderers/web-components/tsconfig.json
+++ b/code/renderers/web-components/tsconfig.json
@@ -1,8 +1,11 @@
{
"extends": "../../tsconfig.json",
"compilerOptions": {
+ "baseUrl": ".",
"resolveJsonModule": true,
- "strict": true
+ "paths": {
+ "storybook/internal/*": ["../../lib/cli/core/*"]
+ }
},
"include": ["src/**/*", "template/**/*"]
}
diff --git a/code/tsconfig.json b/code/tsconfig.json
index 800b83594d3a..2b82117621e8 100644
--- a/code/tsconfig.json
+++ b/code/tsconfig.json
@@ -1,23 +1,23 @@
{
"compileOnSave": false,
"compilerOptions": {
- "ignoreDeprecations": "5.0",
+ "allowSyntheticDefaultImports": true,
"baseUrl": ".",
- "incremental": false,
- "noImplicitAny": true,
+ "esModuleInterop": true,
"forceConsistentCasingInFileNames": true,
+ "ignoreDeprecations": "5.0",
+ "incremental": false,
+ "isolatedModules": true,
"jsx": "react",
- "moduleResolution": "Node",
- "target": "ES2020",
+ "lib": ["dom", "dom.iterable", "esnext"],
"module": "CommonJS",
+ "moduleResolution": "Node",
+ "noImplicitAny": true,
+ "noUnusedLocals": false,
"skipLibCheck": true,
- "allowSyntheticDefaultImports": true,
- "esModuleInterop": true,
- "isolatedModules": true,
+ "strict": true,
"strictBindCallApply": true,
- "lib": ["dom", "dom.iterable", "esnext"],
- "noUnusedLocals": true,
- "strict": true
+ "target": "ES2020"
},
"exclude": ["dist", "**/dist", "node_modules", "**/node_modules"]
}
diff --git a/code/yarn.lock b/code/yarn.lock
index f22ee0dc024f..891cc77ecc9d 100644
--- a/code/yarn.lock
+++ b/code/yarn.lock
@@ -360,20 +360,20 @@ __metadata:
languageName: node
linkType: hard
-"@babel/code-frame@npm:^7.0.0, @babel/code-frame@npm:^7.10.4, @babel/code-frame@npm:^7.16.0, @babel/code-frame@npm:^7.16.7, @babel/code-frame@npm:^7.21.4, @babel/code-frame@npm:^7.23.5, @babel/code-frame@npm:^7.24.1, @babel/code-frame@npm:^7.24.2":
- version: 7.24.2
- resolution: "@babel/code-frame@npm:7.24.2"
+"@babel/code-frame@npm:^7.0.0, @babel/code-frame@npm:^7.10.4, @babel/code-frame@npm:^7.16.0, @babel/code-frame@npm:^7.16.7, @babel/code-frame@npm:^7.21.4, @babel/code-frame@npm:^7.23.5, @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.2"
+ "@babel/highlight": "npm:^7.24.7"
picocolors: "npm:^1.0.0"
- checksum: 10c0/d1d4cba89475ab6aab7a88242e1fd73b15ecb9f30c109b69752956434d10a26a52cbd37727c4eca104b6d45227bd1dfce39a6a6f4a14c9b2f07f871e968cf406
+ 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":
- version: 7.24.4
- resolution: "@babel/compat-data@npm:7.24.4"
- checksum: 10c0/9cd8a9cd28a5ca6db5d0e27417d609f95a8762b655e8c9c97fd2de08997043ae99f0139007083c5e607601c6122e8432c85fe391731b19bf26ad458fa0c60dd3
+"@babel/compat-data@npm:^7.22.6, @babel/compat-data@npm:^7.23.5, @babel/compat-data@npm:^7.24.7":
+ version: 7.24.7
+ resolution: "@babel/compat-data@npm:7.24.7"
+ checksum: 10c0/dcd93a5632b04536498fbe2be5af1057f635fd7f7090483d8e797878559037e5130b26862ceb359acbae93ed27e076d395ddb4663db6b28a665756ffd02d324f
languageName: node
linkType: hard
@@ -424,25 +424,25 @@ __metadata:
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.20.12, @babel/core@npm:^7.23.0, @babel/core@npm:^7.23.2, @babel/core@npm:^7.24.4, @babel/core@npm:^7.3.4, @babel/core@npm:^7.7.5":
- version: 7.24.4
- resolution: "@babel/core@npm:7.24.4"
+ version: 7.24.7
+ resolution: "@babel/core@npm:7.24.7"
dependencies:
"@ampproject/remapping": "npm:^2.2.0"
- "@babel/code-frame": "npm:^7.24.2"
- "@babel/generator": "npm:^7.24.4"
- "@babel/helper-compilation-targets": "npm:^7.23.6"
- "@babel/helper-module-transforms": "npm:^7.23.3"
- "@babel/helpers": "npm:^7.24.4"
- "@babel/parser": "npm:^7.24.4"
- "@babel/template": "npm:^7.24.0"
- "@babel/traverse": "npm:^7.24.1"
- "@babel/types": "npm:^7.24.0"
+ "@babel/code-frame": "npm:^7.24.7"
+ "@babel/generator": "npm:^7.24.7"
+ "@babel/helper-compilation-targets": "npm:^7.24.7"
+ "@babel/helper-module-transforms": "npm:^7.24.7"
+ "@babel/helpers": "npm:^7.24.7"
+ "@babel/parser": "npm:^7.24.7"
+ "@babel/template": "npm:^7.24.7"
+ "@babel/traverse": "npm:^7.24.7"
+ "@babel/types": "npm:^7.24.7"
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/fc136966583e64d6f84f4a676368de6ab4583aa87f867186068655b30ef67f21f8e65a88c6d446a7efd219ad7ffb9185c82e8a90183ee033f6f47b5026641e16
+ checksum: 10c0/4004ba454d3c20a46ea66264e06c15b82e9f6bdc35f88819907d24620da70dbf896abac1cb4cc4b6bb8642969e45f4d808497c9054a1388a386cf8c12e9b9e0d
languageName: node
linkType: hard
@@ -458,19 +458,19 @@ __metadata:
languageName: node
linkType: hard
-"@babel/generator@npm:^7.12.11, @babel/generator@npm:^7.23.6, @babel/generator@npm:^7.24.1, @babel/generator@npm:^7.24.4":
- version: 7.24.4
- resolution: "@babel/generator@npm:7.24.4"
+"@babel/generator@npm:^7.12.11, @babel/generator@npm:^7.23.6, @babel/generator@npm:^7.24.4, @babel/generator@npm:^7.24.7":
+ version: 7.24.7
+ resolution: "@babel/generator@npm:7.24.7"
dependencies:
- "@babel/types": "npm:^7.24.0"
+ "@babel/types": "npm:^7.24.7"
"@jridgewell/gen-mapping": "npm:^0.3.5"
"@jridgewell/trace-mapping": "npm:^0.3.25"
jsesc: "npm:^2.5.1"
- checksum: 10c0/67a1b2f7cc985aaaa11b01e8ddd4fffa4f285837bc7a209738eb8203aa34bdafeb8507ed75fd883ddbabd641a036ca0a8d984e760f28ad4a9d60bff29d0a60bb
+ checksum: 10c0/06b1f3350baf527a3309e50ffd7065f7aee04dd06e1e7db794ddfde7fe9d81f28df64edd587173f8f9295496a7ddb74b9a185d4bf4de7bb619e6d4ec45c8fd35
languageName: node
linkType: hard
-"@babel/helper-annotate-as-pure@npm:7.22.5, @babel/helper-annotate-as-pure@npm:^7.18.6, @babel/helper-annotate-as-pure@npm:^7.22.5":
+"@babel/helper-annotate-as-pure@npm:7.22.5":
version: 7.22.5
resolution: "@babel/helper-annotate-as-pure@npm:7.22.5"
dependencies:
@@ -479,57 +479,67 @@ __metadata:
languageName: node
linkType: hard
-"@babel/helper-builder-binary-assignment-operator-visitor@npm:^7.22.15":
- version: 7.22.15
- resolution: "@babel/helper-builder-binary-assignment-operator-visitor@npm:7.22.15"
+"@babel/helper-annotate-as-pure@npm:^7.18.6, @babel/helper-annotate-as-pure@npm:^7.24.7":
+ version: 7.24.7
+ resolution: "@babel/helper-annotate-as-pure@npm:7.24.7"
dependencies:
- "@babel/types": "npm:^7.22.15"
- checksum: 10c0/2535e3824ca6337f65786bbac98e562f71699f25532cecd196f027d7698b4967a96953d64e36567956658ad1a05ccbdc62d1ba79ee751c79f4f1d2d3ecc2e01c
+ "@babel/types": "npm:^7.24.7"
+ checksum: 10c0/4679f7df4dffd5b3e26083ae65228116c3da34c3fff2c11ae11b259a61baec440f51e30fd236f7a0435b9d471acd93d0bc5a95df8213cbf02b1e083503d81b9a
languageName: node
linkType: hard
-"@babel/helper-compilation-targets@npm:^7.12.0, @babel/helper-compilation-targets@npm:^7.22.6, @babel/helper-compilation-targets@npm:^7.23.6":
- version: 7.23.6
- resolution: "@babel/helper-compilation-targets@npm:7.23.6"
+"@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"
dependencies:
- "@babel/compat-data": "npm:^7.23.5"
- "@babel/helper-validator-option": "npm:^7.23.5"
+ "@babel/traverse": "npm:^7.24.7"
+ "@babel/types": "npm:^7.24.7"
+ checksum: 10c0/0ed84abf848c79fb1cd4c1ddac12c771d32c1904d87fc3087f33cfdeb0c2e0db4e7892b74b407d9d8d0c000044f3645a7391a781f788da8410c290bb123a1f13
+ languageName: node
+ linkType: hard
+
+"@babel/helper-compilation-targets@npm:^7.12.0, @babel/helper-compilation-targets@npm:^7.22.6, @babel/helper-compilation-targets@npm:^7.23.6, @babel/helper-compilation-targets@npm:^7.24.7":
+ version: 7.24.7
+ resolution: "@babel/helper-compilation-targets@npm:7.24.7"
+ dependencies:
+ "@babel/compat-data": "npm:^7.24.7"
+ "@babel/helper-validator-option": "npm:^7.24.7"
browserslist: "npm:^4.22.2"
lru-cache: "npm:^5.1.1"
semver: "npm:^6.3.1"
- checksum: 10c0/ba38506d11185f48b79abf439462ece271d3eead1673dd8814519c8c903c708523428806f05f2ec5efd0c56e4e278698fac967e5a4b5ee842c32415da54bc6fa
+ checksum: 10c0/1d580a9bcacefe65e6bf02ba1dafd7ab278269fef45b5e281d8354d95c53031e019890464e7f9351898c01502dd2e633184eb0bcda49ed2ecd538675ce310f51
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.1, @babel/helper-create-class-features-plugin@npm:^7.24.4":
- version: 7.24.4
- resolution: "@babel/helper-create-class-features-plugin@npm:7.24.4"
+"@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"
dependencies:
- "@babel/helper-annotate-as-pure": "npm:^7.22.5"
- "@babel/helper-environment-visitor": "npm:^7.22.20"
- "@babel/helper-function-name": "npm:^7.23.0"
- "@babel/helper-member-expression-to-functions": "npm:^7.23.0"
- "@babel/helper-optimise-call-expression": "npm:^7.22.5"
- "@babel/helper-replace-supers": "npm:^7.24.1"
- "@babel/helper-skip-transparent-expression-wrappers": "npm:^7.22.5"
- "@babel/helper-split-export-declaration": "npm:^7.22.6"
+ "@babel/helper-annotate-as-pure": "npm:^7.24.7"
+ "@babel/helper-environment-visitor": "npm:^7.24.7"
+ "@babel/helper-function-name": "npm:^7.24.7"
+ "@babel/helper-member-expression-to-functions": "npm:^7.24.7"
+ "@babel/helper-optimise-call-expression": "npm:^7.24.7"
+ "@babel/helper-replace-supers": "npm:^7.24.7"
+ "@babel/helper-skip-transparent-expression-wrappers": "npm:^7.24.7"
+ "@babel/helper-split-export-declaration": "npm:^7.24.7"
semver: "npm:^6.3.1"
peerDependencies:
"@babel/core": ^7.0.0
- checksum: 10c0/6ebb38375dcd44c79f40008c2de4d023376cf436c135439f15c9c54603c2d6a8ada39b2e07be545da684d9e40b602a0cb0d1670f3877d056deb5f0d786c4bf86
+ checksum: 10c0/6b7b47d70b41c00f39f86790cff67acf2bce0289d52a7c182b28e797f4e0e6d69027e3d06eccf1d54dddc2e5dde1df663bb1932437e5f447aeb8635d8d64a6ab
languageName: node
linkType: hard
-"@babel/helper-create-regexp-features-plugin@npm:^7.18.6, @babel/helper-create-regexp-features-plugin@npm:^7.22.15, @babel/helper-create-regexp-features-plugin@npm:^7.22.5":
- version: 7.22.15
- resolution: "@babel/helper-create-regexp-features-plugin@npm:7.22.15"
+"@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"
dependencies:
- "@babel/helper-annotate-as-pure": "npm:^7.22.5"
+ "@babel/helper-annotate-as-pure": "npm:^7.24.7"
regexpu-core: "npm:^5.3.1"
semver: "npm:^6.3.1"
peerDependencies:
"@babel/core": ^7.0.0
- checksum: 10c0/8eba4c1b7b94a83e7a82df5c3e504584ff0ba6ab8710a67ecc2c434a7fb841a29c2f5c94d2de51f25446119a1df538fa90b37bd570db22ddd5e7147fe98277c6
+ checksum: 10c0/ed611a7eb0c71843f9cdc471eeb38767972229f9225f7aaa90d124d7ee0062cf6908fd53ee9c34f731394c429594f06049a7738a71d342e0191d4047b2fc0ac2
languageName: node
linkType: hard
@@ -563,126 +573,132 @@ __metadata:
languageName: node
linkType: hard
-"@babel/helper-environment-visitor@npm:^7.22.20":
- version: 7.22.20
- resolution: "@babel/helper-environment-visitor@npm:7.22.20"
- checksum: 10c0/e762c2d8f5d423af89bd7ae9abe35bd4836d2eb401af868a63bbb63220c513c783e25ef001019418560b3fdc6d9a6fb67e6c0b650bcdeb3a2ac44b5c3d2bdd94
+"@babel/helper-environment-visitor@npm:^7.22.20, @babel/helper-environment-visitor@npm:^7.24.7":
+ version: 7.24.7
+ resolution: "@babel/helper-environment-visitor@npm:7.24.7"
+ dependencies:
+ "@babel/types": "npm:^7.24.7"
+ checksum: 10c0/36ece78882b5960e2d26abf13cf15ff5689bf7c325b10a2895a74a499e712de0d305f8d78bb382dd3c05cfba7e47ec98fe28aab5674243e0625cd38438dd0b2d
languageName: node
linkType: hard
-"@babel/helper-function-name@npm:^7.22.5, @babel/helper-function-name@npm:^7.23.0":
- version: 7.23.0
- resolution: "@babel/helper-function-name@npm:7.23.0"
+"@babel/helper-function-name@npm:^7.24.7":
+ version: 7.24.7
+ resolution: "@babel/helper-function-name@npm:7.24.7"
dependencies:
- "@babel/template": "npm:^7.22.15"
- "@babel/types": "npm:^7.23.0"
- checksum: 10c0/d771dd1f3222b120518176733c52b7cadac1c256ff49b1889dbbe5e3fed81db855b8cc4e40d949c9d3eae0e795e8229c1c8c24c0e83f27cfa6ee3766696c6428
+ "@babel/template": "npm:^7.24.7"
+ "@babel/types": "npm:^7.24.7"
+ checksum: 10c0/e5e41e6cf86bd0f8bf272cbb6e7c5ee0f3e9660414174435a46653efba4f2479ce03ce04abff2aa2ef9359cf057c79c06cb7b134a565ad9c0e8a50dcdc3b43c4
languageName: node
linkType: hard
-"@babel/helper-hoist-variables@npm:^7.22.5":
- version: 7.22.5
- resolution: "@babel/helper-hoist-variables@npm:7.22.5"
+"@babel/helper-hoist-variables@npm:^7.24.7":
+ version: 7.24.7
+ resolution: "@babel/helper-hoist-variables@npm:7.24.7"
dependencies:
- "@babel/types": "npm:^7.22.5"
- checksum: 10c0/60a3077f756a1cd9f14eb89f0037f487d81ede2b7cfe652ea6869cd4ec4c782b0fb1de01b8494b9a2d2050e3d154d7d5ad3be24806790acfb8cbe2073bf1e208
+ "@babel/types": "npm:^7.24.7"
+ checksum: 10c0/19ee37563bbd1219f9d98991ad0e9abef77803ee5945fd85aa7aa62a67c69efca9a801696a1b58dda27f211e878b3327789e6fd2a6f6c725ccefe36774b5ce95
languageName: node
linkType: hard
-"@babel/helper-member-expression-to-functions@npm:^7.23.0":
- version: 7.23.0
- resolution: "@babel/helper-member-expression-to-functions@npm:7.23.0"
+"@babel/helper-member-expression-to-functions@npm:^7.24.7":
+ version: 7.24.7
+ resolution: "@babel/helper-member-expression-to-functions@npm:7.24.7"
dependencies:
- "@babel/types": "npm:^7.23.0"
- checksum: 10c0/b810daddf093ffd0802f1429052349ed9ea08ef7d0c56da34ffbcdecbdafac86f95bdea2fe30e0e0e629febc7dd41b56cb5eacc10d1a44336d37b755dac31fa4
+ "@babel/traverse": "npm:^7.24.7"
+ "@babel/types": "npm:^7.24.7"
+ checksum: 10c0/9638c1d33cf6aba028461ccd3db6061c76ff863ca0d5013dd9a088bf841f2f77c46956493f9da18355c16759449d23b74cc1de4da357ade5c5c34c858f840f0a
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.1, @babel/helper-module-imports@npm:^7.24.3, @babel/helper-module-imports@npm:^7.8.3":
- version: 7.24.3
- resolution: "@babel/helper-module-imports@npm:7.24.3"
+"@babel/helper-module-imports@npm:^7.16.7, @babel/helper-module-imports@npm:^7.22.15, @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/types": "npm:^7.24.0"
- checksum: 10c0/052c188adcd100f5e8b6ff0c9643ddaabc58b6700d3bbbc26804141ad68375a9f97d9d173658d373d31853019e65f62610239e3295cdd58e573bdcb2fded188d
+ "@babel/traverse": "npm:^7.24.7"
+ "@babel/types": "npm:^7.24.7"
+ checksum: 10c0/97c57db6c3eeaea31564286e328a9fb52b0313c5cfcc7eee4bc226aebcf0418ea5b6fe78673c0e4a774512ec6c86e309d0f326e99d2b37bfc16a25a032498af0
languageName: node
linkType: hard
-"@babel/helper-module-transforms@npm:^7.23.3":
- version: 7.23.3
- resolution: "@babel/helper-module-transforms@npm:7.23.3"
+"@babel/helper-module-transforms@npm:^7.23.3, @babel/helper-module-transforms@npm:^7.24.7":
+ version: 7.24.7
+ resolution: "@babel/helper-module-transforms@npm:7.24.7"
dependencies:
- "@babel/helper-environment-visitor": "npm:^7.22.20"
- "@babel/helper-module-imports": "npm:^7.22.15"
- "@babel/helper-simple-access": "npm:^7.22.5"
- "@babel/helper-split-export-declaration": "npm:^7.22.6"
- "@babel/helper-validator-identifier": "npm:^7.22.20"
+ "@babel/helper-environment-visitor": "npm:^7.24.7"
+ "@babel/helper-module-imports": "npm:^7.24.7"
+ "@babel/helper-simple-access": "npm:^7.24.7"
+ "@babel/helper-split-export-declaration": "npm:^7.24.7"
+ "@babel/helper-validator-identifier": "npm:^7.24.7"
peerDependencies:
"@babel/core": ^7.0.0
- checksum: 10c0/211e1399d0c4993671e8e5c2b25383f08bee40004ace5404ed4065f0e9258cc85d99c1b82fd456c030ce5cfd4d8f310355b54ef35de9924eabfc3dff1331d946
+ checksum: 10c0/4f311755fcc3b4cbdb689386309cdb349cf0575a938f0b9ab5d678e1a81bbb265aa34ad93174838245f2ac7ff6d5ddbd0104638a75e4e961958ed514355687b6
languageName: node
linkType: hard
-"@babel/helper-optimise-call-expression@npm:^7.22.5":
- version: 7.22.5
- resolution: "@babel/helper-optimise-call-expression@npm:7.22.5"
+"@babel/helper-optimise-call-expression@npm:^7.24.7":
+ version: 7.24.7
+ resolution: "@babel/helper-optimise-call-expression@npm:7.24.7"
dependencies:
- "@babel/types": "npm:^7.22.5"
- checksum: 10c0/31b41a764fc3c585196cf5b776b70cf4705c132e4ce9723f39871f215f2ddbfb2e28a62f9917610f67c8216c1080482b9b05f65dd195dae2a52cef461f2ac7b8
+ "@babel/types": "npm:^7.24.7"
+ checksum: 10c0/ca6a9884705dea5c95a8b3ce132d1e3f2ae951ff74987d400d1d9c215dae9c0f9e29924d8f8e131e116533d182675bc261927be72f6a9a2968eaeeaa51eb1d0f
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.8.0, @babel/helper-plugin-utils@npm:^7.8.3":
- version: 7.24.0
- resolution: "@babel/helper-plugin-utils@npm:7.24.0"
- checksum: 10c0/90f41bd1b4dfe7226b1d33a4bb745844c5c63e400f9e4e8bf9103a7ceddd7d425d65333b564d9daba3cebd105985764d51b4bd4c95822b97c2e3ac1201a8a5da
+"@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-remap-async-to-generator@npm:^7.22.20":
- version: 7.22.20
- resolution: "@babel/helper-remap-async-to-generator@npm:7.22.20"
+"@babel/helper-remap-async-to-generator@npm:^7.22.20, @babel/helper-remap-async-to-generator@npm:^7.24.7":
+ version: 7.24.7
+ resolution: "@babel/helper-remap-async-to-generator@npm:7.24.7"
dependencies:
- "@babel/helper-annotate-as-pure": "npm:^7.22.5"
- "@babel/helper-environment-visitor": "npm:^7.22.20"
- "@babel/helper-wrap-function": "npm:^7.22.20"
+ "@babel/helper-annotate-as-pure": "npm:^7.24.7"
+ "@babel/helper-environment-visitor": "npm:^7.24.7"
+ "@babel/helper-wrap-function": "npm:^7.24.7"
peerDependencies:
"@babel/core": ^7.0.0
- checksum: 10c0/aa93aa74250b636d477e8d863fbe59d4071f8c2654841b7ac608909e480c1cf3ff7d7af5a4038568829ad09d810bb681668cbe497d9c89ba5c352793dc9edf1e
+ checksum: 10c0/4e7fa2cdcbc488e41c27066c16e562857ef3c5c2bfe70d2f1e32e9ee7546b17c3fc1c20d05bf2a7f1c291bd9e7a0a219f6a9fa387209013294be79a26fcfe64d
languageName: node
linkType: hard
-"@babel/helper-replace-supers@npm:^7.24.1":
- version: 7.24.1
- resolution: "@babel/helper-replace-supers@npm:7.24.1"
+"@babel/helper-replace-supers@npm:^7.24.7":
+ version: 7.24.7
+ resolution: "@babel/helper-replace-supers@npm:7.24.7"
dependencies:
- "@babel/helper-environment-visitor": "npm:^7.22.20"
- "@babel/helper-member-expression-to-functions": "npm:^7.23.0"
- "@babel/helper-optimise-call-expression": "npm:^7.22.5"
+ "@babel/helper-environment-visitor": "npm:^7.24.7"
+ "@babel/helper-member-expression-to-functions": "npm:^7.24.7"
+ "@babel/helper-optimise-call-expression": "npm:^7.24.7"
peerDependencies:
"@babel/core": ^7.0.0
- checksum: 10c0/d39a3df7892b7c3c0e307fb229646168a9bd35e26a72080c2530729322600e8cff5f738f44a14860a2358faffa741b6a6a0d6749f113387b03ddbfa0ec10e1a0
+ checksum: 10c0/0e133bb03371dee78e519c334a09c08e1493103a239d9628db0132dfaac3fc16380479ca3c590d278a9b71b624030a338c18ebbfe6d430ebb2e4653775c4b3e3
languageName: node
linkType: hard
-"@babel/helper-simple-access@npm:^7.22.5":
- version: 7.22.5
- resolution: "@babel/helper-simple-access@npm:7.22.5"
+"@babel/helper-simple-access@npm:^7.24.7":
+ version: 7.24.7
+ resolution: "@babel/helper-simple-access@npm:7.24.7"
dependencies:
- "@babel/types": "npm:^7.22.5"
- checksum: 10c0/f0cf81a30ba3d09a625fd50e5a9069e575c5b6719234e04ee74247057f8104beca89ed03e9217b6e9b0493434cedc18c5ecca4cea6244990836f1f893e140369
+ "@babel/traverse": "npm:^7.24.7"
+ "@babel/types": "npm:^7.24.7"
+ checksum: 10c0/7230e419d59a85f93153415100a5faff23c133d7442c19e0cd070da1784d13cd29096ee6c5a5761065c44e8164f9f80e3a518c41a0256df39e38f7ad6744fed7
languageName: node
linkType: hard
-"@babel/helper-skip-transparent-expression-wrappers@npm:^7.20.0, @babel/helper-skip-transparent-expression-wrappers@npm:^7.22.5":
- version: 7.22.5
- resolution: "@babel/helper-skip-transparent-expression-wrappers@npm:7.22.5"
+"@babel/helper-skip-transparent-expression-wrappers@npm:^7.20.0, @babel/helper-skip-transparent-expression-wrappers@npm:^7.24.7":
+ version: 7.24.7
+ resolution: "@babel/helper-skip-transparent-expression-wrappers@npm:7.24.7"
dependencies:
- "@babel/types": "npm:^7.22.5"
- checksum: 10c0/ab7fa2aa709ab49bb8cd86515a1e715a3108c4bb9a616965ba76b43dc346dee66d1004ccf4d222b596b6224e43e04cbc5c3a34459501b388451f8c589fbc3691
+ "@babel/traverse": "npm:^7.24.7"
+ "@babel/types": "npm:^7.24.7"
+ checksum: 10c0/e3a9b8ac9c262ac976a1bcb5fe59694db5e6f0b4f9e7bdba5c7693b8b5e28113c23bdaa60fe8d3ec32a337091b67720b2053bcb3d5655f5406536c3d0584242b
languageName: node
linkType: hard
-"@babel/helper-split-export-declaration@npm:7.22.6, @babel/helper-split-export-declaration@npm:^7.22.6":
+"@babel/helper-split-export-declaration@npm:7.22.6":
version: 7.22.6
resolution: "@babel/helper-split-export-declaration@npm:7.22.6"
dependencies:
@@ -691,115 +707,124 @@ __metadata:
languageName: node
linkType: hard
-"@babel/helper-string-parser@npm:^7.23.4":
- version: 7.23.4
- resolution: "@babel/helper-string-parser@npm:7.23.4"
- checksum: 10c0/f348d5637ad70b6b54b026d6544bd9040f78d24e7ec245a0fc42293968181f6ae9879c22d89744730d246ce8ec53588f716f102addd4df8bbc79b73ea10004ac
+"@babel/helper-split-export-declaration@npm:^7.24.7":
+ version: 7.24.7
+ resolution: "@babel/helper-split-export-declaration@npm:7.24.7"
+ dependencies:
+ "@babel/types": "npm:^7.24.7"
+ checksum: 10c0/0254577d7086bf09b01bbde98f731d4fcf4b7c3fa9634fdb87929801307c1f6202a1352e3faa5492450fa8da4420542d44de604daf540704ff349594a78184f6
+ languageName: node
+ linkType: hard
+
+"@babel/helper-string-parser@npm:^7.24.7":
+ version: 7.24.7
+ resolution: "@babel/helper-string-parser@npm:7.24.7"
+ checksum: 10c0/47840c7004e735f3dc93939c77b099bb41a64bf3dda0cae62f60e6f74a5ff80b63e9b7cf77b5ec25a324516381fc994e1f62f922533236a8e3a6af57decb5e1e
languageName: node
linkType: hard
-"@babel/helper-validator-identifier@npm:^7.22.20":
- version: 7.22.20
- resolution: "@babel/helper-validator-identifier@npm:7.22.20"
- checksum: 10c0/dcad63db345fb110e032de46c3688384b0008a42a4845180ce7cd62b1a9c0507a1bed727c4d1060ed1a03ae57b4d918570259f81724aaac1a5b776056f37504e
+"@babel/helper-validator-identifier@npm:^7.24.7":
+ version: 7.24.7
+ resolution: "@babel/helper-validator-identifier@npm:7.24.7"
+ checksum: 10c0/87ad608694c9477814093ed5b5c080c2e06d44cb1924ae8320474a74415241223cc2a725eea2640dd783ff1e3390e5f95eede978bc540e870053152e58f1d651
languageName: node
linkType: hard
-"@babel/helper-validator-option@npm:^7.22.15, @babel/helper-validator-option@npm:^7.23.5":
- version: 7.23.5
- resolution: "@babel/helper-validator-option@npm:7.23.5"
- checksum: 10c0/af45d5c0defb292ba6fd38979e8f13d7da63f9623d8ab9ededc394f67eb45857d2601278d151ae9affb6e03d5d608485806cd45af08b4468a0515cf506510e94
+"@babel/helper-validator-option@npm:^7.23.5, @babel/helper-validator-option@npm:^7.24.7":
+ version: 7.24.7
+ resolution: "@babel/helper-validator-option@npm:7.24.7"
+ checksum: 10c0/21aea2b7bc5cc8ddfb828741d5c8116a84cbc35b4a3184ec53124f08e09746f1f67a6f9217850188995ca86059a7942e36d8965a6730784901def777b7e8a436
languageName: node
linkType: hard
-"@babel/helper-wrap-function@npm:^7.22.20":
- version: 7.22.20
- resolution: "@babel/helper-wrap-function@npm:7.22.20"
+"@babel/helper-wrap-function@npm:^7.24.7":
+ version: 7.24.7
+ resolution: "@babel/helper-wrap-function@npm:7.24.7"
dependencies:
- "@babel/helper-function-name": "npm:^7.22.5"
- "@babel/template": "npm:^7.22.15"
- "@babel/types": "npm:^7.22.19"
- checksum: 10c0/97b5f42ff4d305318ff2f99a5f59d3e97feff478333b2d893c4f85456d3c66372070f71d7bf9141f598c8cf2741c49a15918193633c427a88d170d98eb8c46eb
+ "@babel/helper-function-name": "npm:^7.24.7"
+ "@babel/template": "npm:^7.24.7"
+ "@babel/traverse": "npm:^7.24.7"
+ "@babel/types": "npm:^7.24.7"
+ checksum: 10c0/d5689f031bf0eb38c0d7fad6b7e320ddef4bfbdf08d12d7d76ef41b7ca365a32721e74cb5ed5a9a9ec634bc20f9b7a27314fa6fb08f1576b8f6d8330fcea6f47
languageName: node
linkType: hard
-"@babel/helpers@npm:^7.23.9, @babel/helpers@npm:^7.24.0, @babel/helpers@npm:^7.24.4":
- version: 7.24.4
- resolution: "@babel/helpers@npm:7.24.4"
+"@babel/helpers@npm:^7.23.9, @babel/helpers@npm:^7.24.0, @babel/helpers@npm:^7.24.7":
+ version: 7.24.7
+ resolution: "@babel/helpers@npm:7.24.7"
dependencies:
- "@babel/template": "npm:^7.24.0"
- "@babel/traverse": "npm:^7.24.1"
- "@babel/types": "npm:^7.24.0"
- checksum: 10c0/747ef62b7fe87de31a2f3c19ff337a86cbb79be2f6c18af63133b614ab5a8f6da5b06ae4b06fb0e71271cb6a27efec6f8b6c9f44c60b8a18777832dc7929e6c5
+ "@babel/template": "npm:^7.24.7"
+ "@babel/types": "npm:^7.24.7"
+ checksum: 10c0/aa8e230f6668773e17e141dbcab63e935c514b4b0bf1fed04d2eaefda17df68e16b61a56573f7f1d4d1e605ce6cc162b5f7e9fdf159fde1fd9b77c920ae47d27
languageName: node
linkType: hard
-"@babel/highlight@npm:^7.24.2":
- version: 7.24.2
- resolution: "@babel/highlight@npm:7.24.2"
+"@babel/highlight@npm:^7.24.7":
+ version: 7.24.7
+ resolution: "@babel/highlight@npm:7.24.7"
dependencies:
- "@babel/helper-validator-identifier": "npm:^7.22.20"
+ "@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/98ce00321daedeed33a4ed9362dc089a70375ff1b3b91228b9f05e6591d387a81a8cba68886e207861b8871efa0bc997ceabdd9c90f6cce3ee1b2f7f941b42db
+ 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.7, @babel/parser@npm:^7.21.4, @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.1, @babel/parser@npm:^7.24.4, @babel/parser@npm:^7.4.5, @babel/parser@npm:^7.6.0, @babel/parser@npm:^7.9.6":
- version: 7.24.4
- resolution: "@babel/parser@npm:7.24.4"
+"@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.7, @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.4.5, @babel/parser@npm:^7.6.0, @babel/parser@npm:^7.9.6":
+ version: 7.24.7
+ resolution: "@babel/parser@npm:7.24.7"
bin:
parser: ./bin/babel-parser.js
- checksum: 10c0/8381e1efead5069cb7ed2abc3a583f4a86289b2f376c75cecc69f59a8eb36df18274b1886cecf2f97a6a0dff5334b27330f58535be9b3e4e26102cc50e12eac8
+ checksum: 10c0/8b244756872185a1c6f14b979b3535e682ff08cb5a2a5fd97cc36c017c7ef431ba76439e95e419d43000c5b07720495b00cf29a7f0d9a483643d08802b58819b
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"
+"@babel/plugin-bugfix-firefox-class-in-computed-class-key@npm:^7.24.7":
+ version: 7.24.7
+ resolution: "@babel/plugin-bugfix-firefox-class-in-computed-class-key@npm:7.24.7"
dependencies:
- "@babel/helper-environment-visitor": "npm:^7.22.20"
- "@babel/helper-plugin-utils": "npm:^7.24.0"
+ "@babel/helper-environment-visitor": "npm:^7.24.7"
+ "@babel/helper-plugin-utils": "npm:^7.24.7"
peerDependencies:
"@babel/core": ^7.0.0
- checksum: 10c0/9aed453a1a21e4fd29add0b4a2d82a2c6f43a47c80d28411f8327f2a714064bc93a6f622c701d263970e0d72d7901d28f7f51e91ba91a31306efe8f17c411182
+ checksum: 10c0/394c30e2b708ad385fa1219528e039066a1f1cb40f47986f283878848fd354c745e6397f588b4e5a046ee8d64bfdf4c208e4c3dfbdcfb2fd34315ec67c64e7af
languageName: node
linkType: hard
-"@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@npm:^7.23.3, @babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@npm:^7.24.1":
- version: 7.24.1
- resolution: "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@npm:7.24.1"
+"@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@npm:^7.23.3, @babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@npm:^7.24.7":
+ version: 7.24.7
+ resolution: "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@npm:7.24.7"
dependencies:
- "@babel/helper-plugin-utils": "npm:^7.24.0"
+ "@babel/helper-plugin-utils": "npm:^7.24.7"
peerDependencies:
"@babel/core": ^7.0.0
- checksum: 10c0/d4e592e6fc4878654243d2e7b51ea86471b868a8cb09de29e73b65d2b64159990c6c198fd7c9c2af2e38b1cddf70206243792853c47384a84f829dada152f605
+ checksum: 10c0/a36307428ecc1a01b00cf90812335eed1575d13f211ab24fe4d0c55c28a2fcbd4135f142efabc3b277b2a8e09ee05df594a1272353f061b63829495b5dcfdb96
languageName: node
linkType: hard
-"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@npm:^7.23.3, @babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@npm:^7.24.1":
- version: 7.24.1
- resolution: "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@npm:7.24.1"
+"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@npm:^7.23.3, @babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@npm:^7.24.7":
+ version: 7.24.7
+ resolution: "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@npm:7.24.7"
dependencies:
- "@babel/helper-plugin-utils": "npm:^7.24.0"
- "@babel/helper-skip-transparent-expression-wrappers": "npm:^7.22.5"
- "@babel/plugin-transform-optional-chaining": "npm:^7.24.1"
+ "@babel/helper-plugin-utils": "npm:^7.24.7"
+ "@babel/helper-skip-transparent-expression-wrappers": "npm:^7.24.7"
+ "@babel/plugin-transform-optional-chaining": "npm:^7.24.7"
peerDependencies:
"@babel/core": ^7.13.0
- checksum: 10c0/351c36e45795a7890d610ab9041a52f4078a59429f6e74c281984aa44149a10d43e82b3a8172c703c0d5679471e165d1c02b6d2e45a677958ee301b89403f202
+ checksum: 10c0/aeb6e7aa363a47f815cf956ea1053c5dd8b786a17799f065c9688ba4b0051fe7565d258bbe9400bfcbfb3114cb9fda66983e10afe4d750bc70ff75403e15dd36
languageName: node
linkType: hard
-"@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@npm:^7.23.7, @babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@npm:^7.24.1":
- version: 7.24.1
- resolution: "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@npm:7.24.1"
+"@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@npm:^7.23.7, @babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@npm:^7.24.7":
+ version: 7.24.7
+ resolution: "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@npm:7.24.7"
dependencies:
- "@babel/helper-environment-visitor": "npm:^7.22.20"
- "@babel/helper-plugin-utils": "npm:^7.24.0"
+ "@babel/helper-environment-visitor": "npm:^7.24.7"
+ "@babel/helper-plugin-utils": "npm:^7.24.7"
peerDependencies:
"@babel/core": ^7.0.0
- checksum: 10c0/d7dd5a59a54635a3152895dcaa68f3370bb09d1f9906c1e72232ff759159e6be48de4a598a993c986997280a2dc29922a48aaa98020f16439f3f57ad72788354
+ checksum: 10c0/2b52a73e444f6adc73f927b623e53a4cf64397170dd1071268536df1b3db1e02131418c8dc91351af48837a6298212118f4a72d5407f8005cf9a732370a315b0
languageName: node
linkType: hard
@@ -965,36 +990,36 @@ __metadata:
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"
+"@babel/plugin-syntax-flow@npm:^7.24.7":
+ version: 7.24.7
+ resolution: "@babel/plugin-syntax-flow@npm:7.24.7"
dependencies:
- "@babel/helper-plugin-utils": "npm:^7.22.5"
+ "@babel/helper-plugin-utils": "npm:^7.24.7"
peerDependencies:
"@babel/core": ^7.0.0-0
- checksum: 10c0/07afc7df02141597968532bfbfa3f6c0ad21a2bdd885d0e5e035dcf60fdf35f0995631c9750b464e1a6f2feea14160a82787f914e88e8f7115dc99f09853e43e
+ checksum: 10c0/2f0cb7a78379029707e61f6665634a5b758c8b4ccb602a72d798e41d36b0647c2f2de59f90e0c1d522b026962918e54d82f3aee0c194dc87cd340455aa58562a
languageName: node
linkType: hard
-"@babel/plugin-syntax-import-assertions@npm:^7.23.3, @babel/plugin-syntax-import-assertions@npm:^7.24.1":
- version: 7.24.1
- resolution: "@babel/plugin-syntax-import-assertions@npm:7.24.1"
+"@babel/plugin-syntax-import-assertions@npm:^7.23.3, @babel/plugin-syntax-import-assertions@npm:^7.24.1, @babel/plugin-syntax-import-assertions@npm:^7.24.7":
+ version: 7.24.7
+ resolution: "@babel/plugin-syntax-import-assertions@npm:7.24.7"
dependencies:
- "@babel/helper-plugin-utils": "npm:^7.24.0"
+ "@babel/helper-plugin-utils": "npm:^7.24.7"
peerDependencies:
"@babel/core": ^7.0.0-0
- checksum: 10c0/72f0340d73e037f0702c61670054e0af66ece7282c5c2f4ba8de059390fee502de282defdf15959cd9f71aa18dc5c5e4e7a0fde317799a0600c6c4e0a656d82b
+ checksum: 10c0/b82c53e095274ee71c248551352d73441cf65b3b3fc0107258ba4e9aef7090772a425442b3ed1c396fa207d0efafde8929c87a17d3c885b3ca2021316e87e246
languageName: node
linkType: hard
-"@babel/plugin-syntax-import-attributes@npm:^7.23.3, @babel/plugin-syntax-import-attributes@npm:^7.24.1":
- version: 7.24.1
- resolution: "@babel/plugin-syntax-import-attributes@npm:7.24.1"
+"@babel/plugin-syntax-import-attributes@npm:^7.23.3, @babel/plugin-syntax-import-attributes@npm:^7.24.7":
+ version: 7.24.7
+ resolution: "@babel/plugin-syntax-import-attributes@npm:7.24.7"
dependencies:
- "@babel/helper-plugin-utils": "npm:^7.24.0"
+ "@babel/helper-plugin-utils": "npm:^7.24.7"
peerDependencies:
"@babel/core": ^7.0.0-0
- checksum: 10c0/309634e3335777aee902552b2cf244c4a8050213cc878b3fb9d70ad8cbbff325dc46ac5e5791836ff477ea373b27832238205f6ceaff81f7ea7c4c7e8fbb13bb
+ checksum: 10c0/eccc54d0f03c96d0eec7a6e2fa124dadbc7298345b62ffc4238f173308c4325b5598f139695ff05a95cf78412ef6903599e4b814496612bf39aad4715a16375b
languageName: node
linkType: hard
@@ -1020,14 +1045,14 @@ __metadata:
languageName: node
linkType: hard
-"@babel/plugin-syntax-jsx@npm:^7.23.3, @babel/plugin-syntax-jsx@npm:^7.24.1":
- version: 7.24.1
- resolution: "@babel/plugin-syntax-jsx@npm:7.24.1"
+"@babel/plugin-syntax-jsx@npm:^7.24.7":
+ version: 7.24.7
+ resolution: "@babel/plugin-syntax-jsx@npm:7.24.7"
dependencies:
- "@babel/helper-plugin-utils": "npm:^7.24.0"
+ "@babel/helper-plugin-utils": "npm:^7.24.7"
peerDependencies:
"@babel/core": ^7.0.0-0
- checksum: 10c0/6cec76fbfe6ca81c9345c2904d8d9a8a0df222f9269f0962ed6eb2eb8f3f10c2f15e993d1ef09dbaf97726bf1792b5851cf5bd9a769f966a19448df6be95d19a
+ checksum: 10c0/f44d927a9ae8d5ef016ff5b450e1671e56629ddc12e56b938e41fd46e141170d9dfc9a53d6cb2b9a20a7dd266a938885e6a3981c60c052a2e1daed602ac80e51
languageName: node
linkType: hard
@@ -1119,14 +1144,14 @@ __metadata:
languageName: node
linkType: hard
-"@babel/plugin-syntax-typescript@npm:^7.24.1, @babel/plugin-syntax-typescript@npm:^7.3.3":
- version: 7.24.1
- resolution: "@babel/plugin-syntax-typescript@npm:7.24.1"
+"@babel/plugin-syntax-typescript@npm:^7.24.7, @babel/plugin-syntax-typescript@npm:^7.3.3":
+ version: 7.24.7
+ resolution: "@babel/plugin-syntax-typescript@npm:7.24.7"
dependencies:
- "@babel/helper-plugin-utils": "npm:^7.24.0"
+ "@babel/helper-plugin-utils": "npm:^7.24.7"
peerDependencies:
"@babel/core": ^7.0.0-0
- checksum: 10c0/7a81e277dcfe3138847e8e5944e02a42ff3c2e864aea6f33fd9b70d1556d12b0e70f0d56cc1985d353c91bcbf8fe163e6cc17418da21129b7f7f1d8b9ac00c93
+ checksum: 10c0/cdabd2e8010fb0ad15b49c2c270efc97c4bfe109ead36c7bbcf22da7a74bc3e49702fc4f22f12d2d6049e8e22a5769258df1fd05f0420ae45e11bdd5bc07805a
languageName: node
linkType: hard
@@ -1142,14 +1167,14 @@ __metadata:
languageName: node
linkType: hard
-"@babel/plugin-transform-arrow-functions@npm:^7.23.3, @babel/plugin-transform-arrow-functions@npm:^7.24.1":
- version: 7.24.1
- resolution: "@babel/plugin-transform-arrow-functions@npm:7.24.1"
+"@babel/plugin-transform-arrow-functions@npm:^7.23.3, @babel/plugin-transform-arrow-functions@npm:^7.24.7":
+ version: 7.24.7
+ resolution: "@babel/plugin-transform-arrow-functions@npm:7.24.7"
dependencies:
- "@babel/helper-plugin-utils": "npm:^7.24.0"
+ "@babel/helper-plugin-utils": "npm:^7.24.7"
peerDependencies:
"@babel/core": ^7.0.0-0
- checksum: 10c0/f44bfacf087dc21b422bab99f4e9344ee7b695b05c947dacae66de05c723ab9d91800be7edc1fa016185e8c819f3aca2b4a5f66d8a4d1e47d9bad80b8fa55b8e
+ checksum: 10c0/6ac05a54e5582f34ac6d5dc26499e227227ec1c7fa6fc8de1f3d40c275f140d3907f79bbbd49304da2d7008a5ecafb219d0b71d78ee3290ca22020d878041245
languageName: node
linkType: hard
@@ -1167,17 +1192,17 @@ __metadata:
languageName: node
linkType: hard
-"@babel/plugin-transform-async-generator-functions@npm:^7.23.9, @babel/plugin-transform-async-generator-functions@npm:^7.24.3":
- version: 7.24.3
- resolution: "@babel/plugin-transform-async-generator-functions@npm:7.24.3"
+"@babel/plugin-transform-async-generator-functions@npm:^7.23.9, @babel/plugin-transform-async-generator-functions@npm:^7.24.7":
+ version: 7.24.7
+ resolution: "@babel/plugin-transform-async-generator-functions@npm:7.24.7"
dependencies:
- "@babel/helper-environment-visitor": "npm:^7.22.20"
- "@babel/helper-plugin-utils": "npm:^7.24.0"
- "@babel/helper-remap-async-to-generator": "npm:^7.22.20"
+ "@babel/helper-environment-visitor": "npm:^7.24.7"
+ "@babel/helper-plugin-utils": "npm:^7.24.7"
+ "@babel/helper-remap-async-to-generator": "npm:^7.24.7"
"@babel/plugin-syntax-async-generators": "npm:^7.8.4"
peerDependencies:
"@babel/core": ^7.0.0-0
- checksum: 10c0/55ceed059f819dcccbfe69600bfa1c055ada466bd54eda117cfdd2cf773dd85799e2f6556e4a559b076e93b9704abcca2aef9d72aad7dc8a5d3d17886052f1d3
+ checksum: 10c0/6b5e33ae66dce0afce9b06d8dace6fa052528e60f7622aa6cfd3e71bd372ca5079d426e78336ca564bc0d5f37acbcda1b21f4fe656fcb642f1a93a697ab39742
languageName: node
linkType: hard
@@ -1194,344 +1219,344 @@ __metadata:
languageName: node
linkType: hard
-"@babel/plugin-transform-async-to-generator@npm:^7.23.3, @babel/plugin-transform-async-to-generator@npm:^7.24.1":
- version: 7.24.1
- resolution: "@babel/plugin-transform-async-to-generator@npm:7.24.1"
+"@babel/plugin-transform-async-to-generator@npm:^7.23.3, @babel/plugin-transform-async-to-generator@npm:^7.24.7":
+ version: 7.24.7
+ resolution: "@babel/plugin-transform-async-to-generator@npm:7.24.7"
dependencies:
- "@babel/helper-module-imports": "npm:^7.24.1"
- "@babel/helper-plugin-utils": "npm:^7.24.0"
- "@babel/helper-remap-async-to-generator": "npm:^7.22.20"
+ "@babel/helper-module-imports": "npm:^7.24.7"
+ "@babel/helper-plugin-utils": "npm:^7.24.7"
+ "@babel/helper-remap-async-to-generator": "npm:^7.24.7"
peerDependencies:
"@babel/core": ^7.0.0-0
- checksum: 10c0/3731ba8e83cbea1ab22905031f25b3aeb0b97c6467360a2cc685352f16e7c786417d8883bc747f5a0beff32266bdb12a05b6292e7b8b75967087200a7bc012c4
+ checksum: 10c0/83c82e243898875af8457972a26ab29baf8a2078768ee9f35141eb3edff0f84b165582a2ff73e90a9e08f5922bf813dbf15a85c1213654385198f4591c0dc45d
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.1
- resolution: "@babel/plugin-transform-block-scoped-functions@npm:7.24.1"
+"@babel/plugin-transform-block-scoped-functions@npm:^7.23.3, @babel/plugin-transform-block-scoped-functions@npm:^7.24.7":
+ version: 7.24.7
+ resolution: "@babel/plugin-transform-block-scoped-functions@npm:7.24.7"
dependencies:
- "@babel/helper-plugin-utils": "npm:^7.24.0"
+ "@babel/helper-plugin-utils": "npm:^7.24.7"
peerDependencies:
"@babel/core": ^7.0.0-0
- checksum: 10c0/6fbaa85f5204f34845dfc0bebf62fdd3ac5a286241c85651e59d426001e7a1785ac501f154e093e0b8ee49e1f51e3f8b06575a5ae8d4a9406d43e4816bf18c37
+ checksum: 10c0/113e86de4612ae91773ff5cb6b980f01e1da7e26ae6f6012127415d7ae144e74987bc23feb97f63ba4bc699331490ddea36eac004d76a20d5369e4cc6a7f61cd
languageName: node
linkType: hard
-"@babel/plugin-transform-block-scoping@npm:^7.23.4, @babel/plugin-transform-block-scoping@npm:^7.24.4, @babel/plugin-transform-block-scoping@npm:^7.8.3":
- version: 7.24.4
- resolution: "@babel/plugin-transform-block-scoping@npm:7.24.4"
+"@babel/plugin-transform-block-scoping@npm:^7.23.4, @babel/plugin-transform-block-scoping@npm:^7.24.7, @babel/plugin-transform-block-scoping@npm:^7.8.3":
+ version: 7.24.7
+ resolution: "@babel/plugin-transform-block-scoping@npm:7.24.7"
dependencies:
- "@babel/helper-plugin-utils": "npm:^7.24.0"
+ "@babel/helper-plugin-utils": "npm:^7.24.7"
peerDependencies:
"@babel/core": ^7.0.0-0
- checksum: 10c0/62f55fd1b60a115506e9553c3bf925179b1ab8a42dc31471c4e3ada20573a488b5c5e3317145da352493ef07f1d9750ce1f8a49cb3f39489ac1ab42e5ddc883d
+ checksum: 10c0/dcbc5e385c0ca5fb5736b1c720c90755cffe9f91d8c854f82e61e59217dd3f6c91b3633eeee4b55a89d3f59e5275d0f5b0b1b1363d4fa70c49c468b55aa87700
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.1
- resolution: "@babel/plugin-transform-class-properties@npm:7.24.1"
+"@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, @babel/plugin-transform-class-properties@npm:^7.24.7":
+ version: 7.24.7
+ resolution: "@babel/plugin-transform-class-properties@npm:7.24.7"
dependencies:
- "@babel/helper-create-class-features-plugin": "npm:^7.24.1"
- "@babel/helper-plugin-utils": "npm:^7.24.0"
+ "@babel/helper-create-class-features-plugin": "npm:^7.24.7"
+ "@babel/helper-plugin-utils": "npm:^7.24.7"
peerDependencies:
"@babel/core": ^7.0.0-0
- checksum: 10c0/00dff042ac9df4ae67b5ef98b1137cc72e0a24e6d911dc200540a8cb1f00b4cff367a922aeb22da17da662079f0abcd46ee1c5f4cdf37ceebf6ff1639bb9af27
+ checksum: 10c0/75018a466c7ede3d2397e158891c224ba7fca72864506ce067ddbc02fc65191d44da4d6379c996d0c7f09019e26b5c3f5f1d3a639cd98366519723886f0689d0
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.4
- resolution: "@babel/plugin-transform-class-static-block@npm:7.24.4"
+"@babel/plugin-transform-class-static-block@npm:^7.23.4, @babel/plugin-transform-class-static-block@npm:^7.24.7":
+ version: 7.24.7
+ resolution: "@babel/plugin-transform-class-static-block@npm:7.24.7"
dependencies:
- "@babel/helper-create-class-features-plugin": "npm:^7.24.4"
- "@babel/helper-plugin-utils": "npm:^7.24.0"
+ "@babel/helper-create-class-features-plugin": "npm:^7.24.7"
+ "@babel/helper-plugin-utils": "npm:^7.24.7"
"@babel/plugin-syntax-class-static-block": "npm:^7.14.5"
peerDependencies:
"@babel/core": ^7.12.0
- checksum: 10c0/19dfeaf4a2ac03695034f7211a8b5ad89103b224608ac3e91791055107c5fe4d7ebe5d9fbb31b4a91265694af78762260642eb270f4b239c175984ee4b253f80
+ checksum: 10c0/b0ade39a3d09dce886f79dbd5907c3d99b48167eddb6b9bbde24a0598129654d7017e611c20494cdbea48b07ac14397cd97ea34e3754bbb2abae4e698128eccb
languageName: node
linkType: hard
-"@babel/plugin-transform-classes@npm:^7.23.8, @babel/plugin-transform-classes@npm:^7.24.1":
- version: 7.24.1
- resolution: "@babel/plugin-transform-classes@npm:7.24.1"
+"@babel/plugin-transform-classes@npm:^7.23.8, @babel/plugin-transform-classes@npm:^7.24.7":
+ version: 7.24.7
+ resolution: "@babel/plugin-transform-classes@npm:7.24.7"
dependencies:
- "@babel/helper-annotate-as-pure": "npm:^7.22.5"
- "@babel/helper-compilation-targets": "npm:^7.23.6"
- "@babel/helper-environment-visitor": "npm:^7.22.20"
- "@babel/helper-function-name": "npm:^7.23.0"
- "@babel/helper-plugin-utils": "npm:^7.24.0"
- "@babel/helper-replace-supers": "npm:^7.24.1"
- "@babel/helper-split-export-declaration": "npm:^7.22.6"
+ "@babel/helper-annotate-as-pure": "npm:^7.24.7"
+ "@babel/helper-compilation-targets": "npm:^7.24.7"
+ "@babel/helper-environment-visitor": "npm:^7.24.7"
+ "@babel/helper-function-name": "npm:^7.24.7"
+ "@babel/helper-plugin-utils": "npm:^7.24.7"
+ "@babel/helper-replace-supers": "npm:^7.24.7"
+ "@babel/helper-split-export-declaration": "npm:^7.24.7"
globals: "npm:^11.1.0"
peerDependencies:
"@babel/core": ^7.0.0-0
- checksum: 10c0/586a95826be4d68056fa23d8e6c34353ce2ea59bf3ca8cf62bc784e60964d492d76e1b48760c43fd486ffb65a79d3fed9a4f91289e4f526f88c3b6acc0dfb00e
+ checksum: 10c0/e51dba7ce8b770d1eee929e098d5a3be3efc3e8b941e22dda7d0097dc4e7be5feabd2da7b707ac06fcac5661b31223c541941dec08ce76c1faa55544d87d06ec
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.1
- resolution: "@babel/plugin-transform-computed-properties@npm:7.24.1"
+"@babel/plugin-transform-computed-properties@npm:^7.23.3, @babel/plugin-transform-computed-properties@npm:^7.24.7":
+ version: 7.24.7
+ resolution: "@babel/plugin-transform-computed-properties@npm:7.24.7"
dependencies:
- "@babel/helper-plugin-utils": "npm:^7.24.0"
- "@babel/template": "npm:^7.24.0"
+ "@babel/helper-plugin-utils": "npm:^7.24.7"
+ "@babel/template": "npm:^7.24.7"
peerDependencies:
"@babel/core": ^7.0.0-0
- checksum: 10c0/8292c508b656b7722e2c2ca0f6f31339852e3ed2b9b80f6e068a4010e961b431ca109ecd467fc906283f4b1574c1e7b1cb68d35a4dea12079d386c15ff7e0eac
+ checksum: 10c0/25636dbc1f605c0b8bc60aa58628a916b689473d11551c9864a855142e36742fe62d4a70400ba3b74902338e77fb3d940376c0a0ba154b6b7ec5367175233b49
languageName: node
linkType: hard
-"@babel/plugin-transform-destructuring@npm:^7.23.3, @babel/plugin-transform-destructuring@npm:^7.24.1":
- version: 7.24.1
- resolution: "@babel/plugin-transform-destructuring@npm:7.24.1"
+"@babel/plugin-transform-destructuring@npm:^7.23.3, @babel/plugin-transform-destructuring@npm:^7.24.7":
+ version: 7.24.7
+ resolution: "@babel/plugin-transform-destructuring@npm:7.24.7"
dependencies:
- "@babel/helper-plugin-utils": "npm:^7.24.0"
+ "@babel/helper-plugin-utils": "npm:^7.24.7"
peerDependencies:
"@babel/core": ^7.0.0-0
- checksum: 10c0/a08e706a9274a699abc3093f38c72d4a5354eac11c44572cc9ea049915b6e03255744297069fd94fcce82380725c5d6b1b11b9a84c0081aa3aa6fc2fdab98ef6
+ checksum: 10c0/929f07a807fb62230bfbf881cfcedf187ac5daf2f1b01da94a75c7a0f6f72400268cf4bcfee534479e43260af8193e42c31ee03c8b0278ba77d0036ed6709c27
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.1
- resolution: "@babel/plugin-transform-dotall-regex@npm:7.24.1"
+"@babel/plugin-transform-dotall-regex@npm:^7.23.3, @babel/plugin-transform-dotall-regex@npm:^7.24.7":
+ version: 7.24.7
+ resolution: "@babel/plugin-transform-dotall-regex@npm:7.24.7"
dependencies:
- "@babel/helper-create-regexp-features-plugin": "npm:^7.22.15"
- "@babel/helper-plugin-utils": "npm:^7.24.0"
+ "@babel/helper-create-regexp-features-plugin": "npm:^7.24.7"
+ "@babel/helper-plugin-utils": "npm:^7.24.7"
peerDependencies:
"@babel/core": ^7.0.0-0
- checksum: 10c0/758def705ec5a87ef910280dc2df5d2fda59dc5d4771c1725c7aed0988ae5b79e29aeb48109120301a3e1c6c03dfac84700469de06f38ca92c96834e09eadf5d
+ checksum: 10c0/793f14c9494972d294b7e7b97b747f47874b6d57d7804d3443c701becf5db192c9311be6a1835c07664486df1f5c60d33196c36fb7e11a53015e476b4c145b33
languageName: node
linkType: hard
-"@babel/plugin-transform-duplicate-keys@npm:^7.23.3, @babel/plugin-transform-duplicate-keys@npm:^7.24.1":
- version: 7.24.1
- resolution: "@babel/plugin-transform-duplicate-keys@npm:7.24.1"
+"@babel/plugin-transform-duplicate-keys@npm:^7.23.3, @babel/plugin-transform-duplicate-keys@npm:^7.24.7":
+ version: 7.24.7
+ resolution: "@babel/plugin-transform-duplicate-keys@npm:7.24.7"
dependencies:
- "@babel/helper-plugin-utils": "npm:^7.24.0"
+ "@babel/helper-plugin-utils": "npm:^7.24.7"
peerDependencies:
"@babel/core": ^7.0.0-0
- checksum: 10c0/41072f57f83a6c2b15f3ee0b6779cdca105ff3d98061efe92ac02d6c7b90fdb6e7e293b8a4d5b9c690d9ae5d3ae73e6bde4596dc4d8c66526a0e5e1abc73c88c
+ checksum: 10c0/75ff7ec1117ac500e77bf20a144411d39c0fdd038f108eec061724123ce6d1bb8d5bd27968e466573ee70014f8be0043361cdb0ef388f8a182d1d97ad67e51b9
languageName: node
linkType: hard
-"@babel/plugin-transform-dynamic-import@npm:^7.23.4, @babel/plugin-transform-dynamic-import@npm:^7.24.1":
- version: 7.24.1
- resolution: "@babel/plugin-transform-dynamic-import@npm:7.24.1"
+"@babel/plugin-transform-dynamic-import@npm:^7.23.4, @babel/plugin-transform-dynamic-import@npm:^7.24.7":
+ version: 7.24.7
+ resolution: "@babel/plugin-transform-dynamic-import@npm:7.24.7"
dependencies:
- "@babel/helper-plugin-utils": "npm:^7.24.0"
+ "@babel/helper-plugin-utils": "npm:^7.24.7"
"@babel/plugin-syntax-dynamic-import": "npm:^7.8.3"
peerDependencies:
"@babel/core": ^7.0.0-0
- checksum: 10c0/7e2834780e9b5251ef341854043a89c91473b83c335358620ca721554877e64e416aeb3288a35f03e825c4958e07d5d00ead08c4490fadc276a21fe151d812f1
+ checksum: 10c0/eeda48372efd0a5103cb22dadb13563c975bce18ae85daafbb47d57bb9665d187da9d4fe8d07ac0a6e1288afcfcb73e4e5618bf75ff63fddf9736bfbf225203b
languageName: node
linkType: hard
-"@babel/plugin-transform-exponentiation-operator@npm:^7.23.3, @babel/plugin-transform-exponentiation-operator@npm:^7.24.1":
- version: 7.24.1
- resolution: "@babel/plugin-transform-exponentiation-operator@npm:7.24.1"
+"@babel/plugin-transform-exponentiation-operator@npm:^7.23.3, @babel/plugin-transform-exponentiation-operator@npm:^7.24.7":
+ version: 7.24.7
+ resolution: "@babel/plugin-transform-exponentiation-operator@npm:7.24.7"
dependencies:
- "@babel/helper-builder-binary-assignment-operator-visitor": "npm:^7.22.15"
- "@babel/helper-plugin-utils": "npm:^7.24.0"
+ "@babel/helper-builder-binary-assignment-operator-visitor": "npm:^7.24.7"
+ "@babel/helper-plugin-utils": "npm:^7.24.7"
peerDependencies:
"@babel/core": ^7.0.0-0
- checksum: 10c0/f0fc4c5a9add25fd6bf23dabe6752e9b7c0a2b2554933dddfd16601245a2ba332b647951079c782bf3b94c6330e3638b9b4e0227f469a7c1c707446ba0eba6c7
+ checksum: 10c0/ace3e11c94041b88848552ba8feb39ae4d6cad3696d439ff51445bd2882d8b8775d85a26c2c0edb9b5e38c9e6013cc11b0dea89ec8f93c7d9d7ee95e3645078c
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.1
- resolution: "@babel/plugin-transform-export-namespace-from@npm:7.24.1"
+"@babel/plugin-transform-export-namespace-from@npm:^7.23.4, @babel/plugin-transform-export-namespace-from@npm:^7.24.1, @babel/plugin-transform-export-namespace-from@npm:^7.24.7":
+ version: 7.24.7
+ resolution: "@babel/plugin-transform-export-namespace-from@npm:7.24.7"
dependencies:
- "@babel/helper-plugin-utils": "npm:^7.24.0"
+ "@babel/helper-plugin-utils": "npm:^7.24.7"
"@babel/plugin-syntax-export-namespace-from": "npm:^7.8.3"
peerDependencies:
"@babel/core": ^7.0.0-0
- checksum: 10c0/510bb23b2423d5fbffef69b356e4050929c21a7627e8194b1506dd935c7d9cbbd696c9ae9d7c3bcd7e6e7b69561b0b290c2d72d446327b40fc20ce40bbca6712
+ checksum: 10c0/4e144d7f1c57bc63b4899dbbbdfed0880f2daa75ea9c7251c7997f106e4b390dc362175ab7830f11358cb21f6b972ca10a43a2e56cd789065f7606b082674c0c
languageName: node
linkType: hard
-"@babel/plugin-transform-flow-strip-types@npm:^7.22.5":
- version: 7.22.5
- resolution: "@babel/plugin-transform-flow-strip-types@npm:7.22.5"
+"@babel/plugin-transform-flow-strip-types@npm:^7.24.7":
+ version: 7.24.7
+ resolution: "@babel/plugin-transform-flow-strip-types@npm:7.24.7"
dependencies:
- "@babel/helper-plugin-utils": "npm:^7.22.5"
- "@babel/plugin-syntax-flow": "npm:^7.22.5"
+ "@babel/helper-plugin-utils": "npm:^7.24.7"
+ "@babel/plugin-syntax-flow": "npm:^7.24.7"
peerDependencies:
"@babel/core": ^7.0.0-0
- checksum: 10c0/5949a8e5214e3fc65d31dab0551423cea9d9eef35faa5d0004707ba7347baf96166aa400907ce7498f754db4e1e9d039ca434a508546b0dc9fdae9a42e814c1a
+ checksum: 10c0/9995d52af58ceaa223c6553873bd5a16a94b2abdebb39993d59d9eb0c0c9666636ceb7a80f63ac86fe7ab3cb217f1dac9fb2f448ad5a54f8fb8e41e12716ef9a
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.1
- resolution: "@babel/plugin-transform-for-of@npm:7.24.1"
+"@babel/plugin-transform-for-of@npm:^7.23.6, @babel/plugin-transform-for-of@npm:^7.24.7":
+ version: 7.24.7
+ resolution: "@babel/plugin-transform-for-of@npm:7.24.7"
dependencies:
- "@babel/helper-plugin-utils": "npm:^7.24.0"
- "@babel/helper-skip-transparent-expression-wrappers": "npm:^7.22.5"
+ "@babel/helper-plugin-utils": "npm:^7.24.7"
+ "@babel/helper-skip-transparent-expression-wrappers": "npm:^7.24.7"
peerDependencies:
"@babel/core": ^7.0.0-0
- checksum: 10c0/e4bc92b1f334246e62d4bde079938df940794db564742034f6597f2e38bd426e11ae8c5670448e15dd6e45c462f2a9ab3fa87259bddf7c08553ffd9457fc2b2c
+ checksum: 10c0/77629b1173e55d07416f05ba7353caa09d2c2149da2ca26721ab812209b63689d1be45116b68eadc011c49ced59daf5320835b15245eb7ae93ae0c5e8277cfc0
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.1
- resolution: "@babel/plugin-transform-function-name@npm:7.24.1"
+"@babel/plugin-transform-function-name@npm:^7.23.3, @babel/plugin-transform-function-name@npm:^7.24.7":
+ version: 7.24.7
+ resolution: "@babel/plugin-transform-function-name@npm:7.24.7"
dependencies:
- "@babel/helper-compilation-targets": "npm:^7.23.6"
- "@babel/helper-function-name": "npm:^7.23.0"
- "@babel/helper-plugin-utils": "npm:^7.24.0"
+ "@babel/helper-compilation-targets": "npm:^7.24.7"
+ "@babel/helper-function-name": "npm:^7.24.7"
+ "@babel/helper-plugin-utils": "npm:^7.24.7"
peerDependencies:
"@babel/core": ^7.0.0-0
- checksum: 10c0/65c1735ec3b5e43db9b5aebf3c16171c04b3050c92396b9e22dda0d2aaf51f43fdcf147f70a40678fd9a4ee2272a5acec4826e9c21bcf968762f4c184897ad75
+ checksum: 10c0/3e9642428d6952851850d89ea9307d55946528d18973784d0e2f04a651b23bd9924dd8a2641c824b483bd4ab1223bab1d2f6a1106a939998f7ced512cb60ac5b
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.1
- resolution: "@babel/plugin-transform-json-strings@npm:7.24.1"
+"@babel/plugin-transform-json-strings@npm:^7.23.4, @babel/plugin-transform-json-strings@npm:^7.24.7":
+ version: 7.24.7
+ resolution: "@babel/plugin-transform-json-strings@npm:7.24.7"
dependencies:
- "@babel/helper-plugin-utils": "npm:^7.24.0"
+ "@babel/helper-plugin-utils": "npm:^7.24.7"
"@babel/plugin-syntax-json-strings": "npm:^7.8.3"
peerDependencies:
"@babel/core": ^7.0.0-0
- checksum: 10c0/13d9b6a3c31ab4be853b3d49d8d1171f9bd8198562fd75da8f31e7de31398e1cfa6eb1d073bed93c9746e4f9c47a53b20f8f4c255ece3f88c90852ad3181dc2d
+ checksum: 10c0/17c72cd5bf3e90e722aabd333559275f3309e3fa0b9cea8c2944ab83ae01502c71a2be05da5101edc02b3fc8df15a8dbb9b861cbfcc8a52bf5e797cf01d3a40a
languageName: node
linkType: hard
-"@babel/plugin-transform-literals@npm:^7.23.3, @babel/plugin-transform-literals@npm:^7.24.1":
- version: 7.24.1
- resolution: "@babel/plugin-transform-literals@npm:7.24.1"
+"@babel/plugin-transform-literals@npm:^7.23.3, @babel/plugin-transform-literals@npm:^7.24.7":
+ version: 7.24.7
+ resolution: "@babel/plugin-transform-literals@npm:7.24.7"
dependencies:
- "@babel/helper-plugin-utils": "npm:^7.24.0"
+ "@babel/helper-plugin-utils": "npm:^7.24.7"
peerDependencies:
"@babel/core": ^7.0.0-0
- checksum: 10c0/a27cc7d565ee57b5a2bf136fa889c5c2f5988545ae7b3b2c83a7afe5dd37dfac80dca88b1c633c65851ce6af7d2095c04c01228657ce0198f918e64b5ccd01fa
+ checksum: 10c0/9f3f6f3831929cd2a977748c07addf9944d5cccb50bd3a24a58beb54f91f00d6cacd3d7831d13ffe1ad6f8aba0aefd7bca5aec65d63b77f39c62ad1f2d484a3e
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.1
- resolution: "@babel/plugin-transform-logical-assignment-operators@npm:7.24.1"
+"@babel/plugin-transform-logical-assignment-operators@npm:^7.23.4, @babel/plugin-transform-logical-assignment-operators@npm:^7.24.7":
+ version: 7.24.7
+ resolution: "@babel/plugin-transform-logical-assignment-operators@npm:7.24.7"
dependencies:
- "@babel/helper-plugin-utils": "npm:^7.24.0"
+ "@babel/helper-plugin-utils": "npm:^7.24.7"
"@babel/plugin-syntax-logical-assignment-operators": "npm:^7.10.4"
peerDependencies:
"@babel/core": ^7.0.0-0
- checksum: 10c0/98a2e0843ddfe51443c1bfcf08ba40ad8856fd4f8e397b392a5390a54f257c8c1b9a99d8ffc0fc7e8c55cce45e2cd9c2795a4450303f48f501bcbd662de44554
+ checksum: 10c0/dbe882eb9053931f2ab332c50fc7c2a10ef507d6421bd9831adbb4cb7c9f8e1e5fbac4fbd2e007f6a1bf1df1843547559434012f118084dc0bf42cda3b106272
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.1
- resolution: "@babel/plugin-transform-member-expression-literals@npm:7.24.1"
+"@babel/plugin-transform-member-expression-literals@npm:^7.23.3, @babel/plugin-transform-member-expression-literals@npm:^7.24.7":
+ version: 7.24.7
+ resolution: "@babel/plugin-transform-member-expression-literals@npm:7.24.7"
dependencies:
- "@babel/helper-plugin-utils": "npm:^7.24.0"
+ "@babel/helper-plugin-utils": "npm:^7.24.7"
peerDependencies:
"@babel/core": ^7.0.0-0
- checksum: 10c0/2af731d02aa4c757ef80c46df42264128cbe45bfd15e1812d1a595265b690a44ad036041c406a73411733540e1c4256d8174705ae6b8cfaf757fc175613993fd
+ checksum: 10c0/e789ae359bdf2d20e90bedef18dfdbd965c9ebae1cee398474a0c349590fda7c8b874e1a2ceee62e47e5e6ec1730e76b0f24e502164357571854271fc12cc684
languageName: node
linkType: hard
-"@babel/plugin-transform-modules-amd@npm:^7.13.0, @babel/plugin-transform-modules-amd@npm:^7.23.3, @babel/plugin-transform-modules-amd@npm:^7.24.1":
- version: 7.24.1
- resolution: "@babel/plugin-transform-modules-amd@npm:7.24.1"
+"@babel/plugin-transform-modules-amd@npm:^7.13.0, @babel/plugin-transform-modules-amd@npm:^7.23.3, @babel/plugin-transform-modules-amd@npm:^7.24.7":
+ version: 7.24.7
+ resolution: "@babel/plugin-transform-modules-amd@npm:7.24.7"
dependencies:
- "@babel/helper-module-transforms": "npm:^7.23.3"
- "@babel/helper-plugin-utils": "npm:^7.24.0"
+ "@babel/helper-module-transforms": "npm:^7.24.7"
+ "@babel/helper-plugin-utils": "npm:^7.24.7"
peerDependencies:
"@babel/core": ^7.0.0-0
- checksum: 10c0/71fd04e5e7026e6e52701214b1e9f7508ba371b757e5075fbb938a79235ed66a54ce65f89bb92b59159e9f03f01b392e6c4de6d255b948bec975a90cfd6809ef
+ checksum: 10c0/6df7de7fce34117ca4b2fa07949b12274c03668cbfe21481c4037b6300796d50ae40f4f170527b61b70a67f26db906747797e30dbd0d9809a441b6e220b5728f
languageName: node
linkType: hard
-"@babel/plugin-transform-modules-commonjs@npm:^7.13.8, @babel/plugin-transform-modules-commonjs@npm:^7.23.0, @babel/plugin-transform-modules-commonjs@npm:^7.23.3, @babel/plugin-transform-modules-commonjs@npm:^7.24.1":
- version: 7.24.1
- resolution: "@babel/plugin-transform-modules-commonjs@npm:7.24.1"
+"@babel/plugin-transform-modules-commonjs@npm:^7.13.8, @babel/plugin-transform-modules-commonjs@npm:^7.23.0, @babel/plugin-transform-modules-commonjs@npm:^7.23.3, @babel/plugin-transform-modules-commonjs@npm:^7.24.7":
+ version: 7.24.7
+ resolution: "@babel/plugin-transform-modules-commonjs@npm:7.24.7"
dependencies:
- "@babel/helper-module-transforms": "npm:^7.23.3"
- "@babel/helper-plugin-utils": "npm:^7.24.0"
- "@babel/helper-simple-access": "npm:^7.22.5"
+ "@babel/helper-module-transforms": "npm:^7.24.7"
+ "@babel/helper-plugin-utils": "npm:^7.24.7"
+ "@babel/helper-simple-access": "npm:^7.24.7"
peerDependencies:
"@babel/core": ^7.0.0-0
- checksum: 10c0/efb3ea2047604a7eb44a9289311ebb29842fe6510ff8b66a77a60440448c65e1312a60dc48191ed98246bdbd163b5b6f3348a0669bcc0e3809e69c7c776b20fa
+ checksum: 10c0/9442292b3daf6a5076cdc3c4c32bf423bda824ccaeb0dd0dc8b3effaa1fecfcb0130ae6e647fef12a5d5ff25bcc99a0d6bfc6d24a7525345e1bcf46fcdf81752
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.1
- resolution: "@babel/plugin-transform-modules-systemjs@npm:7.24.1"
+"@babel/plugin-transform-modules-systemjs@npm:^7.23.9, @babel/plugin-transform-modules-systemjs@npm:^7.24.7":
+ version: 7.24.7
+ resolution: "@babel/plugin-transform-modules-systemjs@npm:7.24.7"
dependencies:
- "@babel/helper-hoist-variables": "npm:^7.22.5"
- "@babel/helper-module-transforms": "npm:^7.23.3"
- "@babel/helper-plugin-utils": "npm:^7.24.0"
- "@babel/helper-validator-identifier": "npm:^7.22.20"
+ "@babel/helper-hoist-variables": "npm:^7.24.7"
+ "@babel/helper-module-transforms": "npm:^7.24.7"
+ "@babel/helper-plugin-utils": "npm:^7.24.7"
+ "@babel/helper-validator-identifier": "npm:^7.24.7"
peerDependencies:
"@babel/core": ^7.0.0-0
- checksum: 10c0/38145f8abe8a4ce2b41adabe5d65eb7bd54a139dc58e2885fec975eb5cf247bd938c1dd9f09145c46dbe57d25dd0ef7f00a020e5eb0cbe8195b2065d51e2d93d
+ checksum: 10c0/e2a795e0a6baafe26f4a74010622212ddd873170742d673f450e0097f8d984f6e6a95eb8ce41b05071ee9790c4be088b33801aaab3f78ee202c567634e52a331
languageName: node
linkType: hard
-"@babel/plugin-transform-modules-umd@npm:^7.23.3, @babel/plugin-transform-modules-umd@npm:^7.24.1":
- version: 7.24.1
- resolution: "@babel/plugin-transform-modules-umd@npm:7.24.1"
+"@babel/plugin-transform-modules-umd@npm:^7.23.3, @babel/plugin-transform-modules-umd@npm:^7.24.7":
+ version: 7.24.7
+ resolution: "@babel/plugin-transform-modules-umd@npm:7.24.7"
dependencies:
- "@babel/helper-module-transforms": "npm:^7.23.3"
- "@babel/helper-plugin-utils": "npm:^7.24.0"
+ "@babel/helper-module-transforms": "npm:^7.24.7"
+ "@babel/helper-plugin-utils": "npm:^7.24.7"
peerDependencies:
"@babel/core": ^7.0.0-0
- checksum: 10c0/14c90c58562b54e17fe4a8ded3f627f9a993648f8378ef00cb2f6c34532032b83290d2ad54c7fff4f0c2cd49091bda780f8cc28926ec4b77a6c2141105a2e699
+ checksum: 10c0/7791d290121db210e4338b94b4a069a1a79e4c7a8d7638d8159a97b281851bbed3048dac87a4ae718ad963005e6c14a5d28e6db2eeb2b04e031cee92fb312f85
languageName: node
linkType: hard
-"@babel/plugin-transform-named-capturing-groups-regex@npm:^7.22.5":
- version: 7.22.5
- resolution: "@babel/plugin-transform-named-capturing-groups-regex@npm:7.22.5"
+"@babel/plugin-transform-named-capturing-groups-regex@npm:^7.22.5, @babel/plugin-transform-named-capturing-groups-regex@npm:^7.24.7":
+ version: 7.24.7
+ resolution: "@babel/plugin-transform-named-capturing-groups-regex@npm:7.24.7"
dependencies:
- "@babel/helper-create-regexp-features-plugin": "npm:^7.22.5"
- "@babel/helper-plugin-utils": "npm:^7.22.5"
+ "@babel/helper-create-regexp-features-plugin": "npm:^7.24.7"
+ "@babel/helper-plugin-utils": "npm:^7.24.7"
peerDependencies:
"@babel/core": ^7.0.0
- checksum: 10c0/b0b072bef303670b5a98307bc37d1ac326cb7ad40ea162b89a03c2ffc465451be7ef05be95cb81ed28bfeb29670dc98fe911f793a67bceab18b4cb4c81ef48f3
+ checksum: 10c0/41a0b0f2d0886318237440aa3b489f6d0305361d8671121777d9ff89f9f6de9d0c02ce93625049061426c8994064ef64deae8b819d1b14c00374a6a2336fb5d9
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.1
- resolution: "@babel/plugin-transform-new-target@npm:7.24.1"
+"@babel/plugin-transform-new-target@npm:^7.23.3, @babel/plugin-transform-new-target@npm:^7.24.7":
+ version: 7.24.7
+ resolution: "@babel/plugin-transform-new-target@npm:7.24.7"
dependencies:
- "@babel/helper-plugin-utils": "npm:^7.24.0"
+ "@babel/helper-plugin-utils": "npm:^7.24.7"
peerDependencies:
"@babel/core": ^7.0.0-0
- checksum: 10c0/c4cabe628163855f175a8799eb73d692b6f1dc347aae5022af0c253f80c92edb962e48ddccc98b691eff3d5d8e53c9a8f10894c33ba4cebc2e2f8f8fe554fb7a
+ checksum: 10c0/2540808a35e1a978e537334c43dab439cf24c93e7beb213a2e71902f6710e60e0184316643790c0a6644e7a8021e52f7ab8165e6b3e2d6651be07bdf517b67df
languageName: node
linkType: hard
-"@babel/plugin-transform-nullish-coalescing-operator@npm:^7.22.11, @babel/plugin-transform-nullish-coalescing-operator@npm:^7.23.4, @babel/plugin-transform-nullish-coalescing-operator@npm:^7.24.1":
- version: 7.24.1
- resolution: "@babel/plugin-transform-nullish-coalescing-operator@npm:7.24.1"
+"@babel/plugin-transform-nullish-coalescing-operator@npm:^7.22.11, @babel/plugin-transform-nullish-coalescing-operator@npm:^7.23.4, @babel/plugin-transform-nullish-coalescing-operator@npm:^7.24.7":
+ version: 7.24.7
+ resolution: "@babel/plugin-transform-nullish-coalescing-operator@npm:7.24.7"
dependencies:
- "@babel/helper-plugin-utils": "npm:^7.24.0"
+ "@babel/helper-plugin-utils": "npm:^7.24.7"
"@babel/plugin-syntax-nullish-coalescing-operator": "npm:^7.8.3"
peerDependencies:
"@babel/core": ^7.0.0-0
- checksum: 10c0/c8532951506fb031287280cebeef10aa714f8a7cea2b62a13c805f0e0af945ba77a7c87e4bbbe4c37fe973e0e5d5e649cfac7f0374f57efc54cdf9656362a392
+ checksum: 10c0/7243c8ff734ed5ef759dd8768773c4b443c12e792727e759a1aec2c7fa2bfdd24f1ecb42e292a7b3d8bd3d7f7b861cf256a8eb4ba144fc9cc463892c303083d9
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.1
- resolution: "@babel/plugin-transform-numeric-separator@npm:7.24.1"
+"@babel/plugin-transform-numeric-separator@npm:^7.23.4, @babel/plugin-transform-numeric-separator@npm:^7.24.1, @babel/plugin-transform-numeric-separator@npm:^7.24.7":
+ version: 7.24.7
+ resolution: "@babel/plugin-transform-numeric-separator@npm:7.24.7"
dependencies:
- "@babel/helper-plugin-utils": "npm:^7.24.0"
+ "@babel/helper-plugin-utils": "npm:^7.24.7"
"@babel/plugin-syntax-numeric-separator": "npm:^7.10.4"
peerDependencies:
"@babel/core": ^7.0.0-0
- checksum: 10c0/15e2b83292e586fb4f5b4b4021d4821a806ca6de2b77d5ad6c4e07aa7afa23704e31b4d683dac041afc69ac51b2461b96e8c98e46311cc1faba54c73f235044f
+ checksum: 10c0/e18e09ca5a6342645d00ede477731aa6e8714ff357efc9d7cda5934f1703b3b6fb7d3298dce3ce3ba53e9ff1158eab8f1aadc68874cc21a6099d33a1ca457789
languageName: node
linkType: hard
@@ -1546,196 +1571,196 @@ __metadata:
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.1
- resolution: "@babel/plugin-transform-object-rest-spread@npm:7.24.1"
+"@babel/plugin-transform-object-rest-spread@npm:^7.24.0, @babel/plugin-transform-object-rest-spread@npm:^7.24.1, @babel/plugin-transform-object-rest-spread@npm:^7.24.7":
+ version: 7.24.7
+ resolution: "@babel/plugin-transform-object-rest-spread@npm:7.24.7"
dependencies:
- "@babel/helper-compilation-targets": "npm:^7.23.6"
- "@babel/helper-plugin-utils": "npm:^7.24.0"
+ "@babel/helper-compilation-targets": "npm:^7.24.7"
+ "@babel/helper-plugin-utils": "npm:^7.24.7"
"@babel/plugin-syntax-object-rest-spread": "npm:^7.8.3"
- "@babel/plugin-transform-parameters": "npm:^7.24.1"
+ "@babel/plugin-transform-parameters": "npm:^7.24.7"
peerDependencies:
"@babel/core": ^7.0.0-0
- checksum: 10c0/e301f1a66b63bafc2bce885305cc88ab30ec875b5e2c7933fb7f9cbf0d954685aa10334ffcecf147ba19d6a1d7ffab37baf4ce871849d395941c56fdb3060f73
+ checksum: 10c0/9ad64bc003f583030f9da50614b485852f8edac93f8faf5d1cd855201a4852f37c5255ae4daf70dd4375bdd4874e16e39b91f680d4668ec219ba05441ce286eb
languageName: node
linkType: hard
-"@babel/plugin-transform-object-super@npm:^7.23.3, @babel/plugin-transform-object-super@npm:^7.24.1":
- version: 7.24.1
- resolution: "@babel/plugin-transform-object-super@npm:7.24.1"
+"@babel/plugin-transform-object-super@npm:^7.23.3, @babel/plugin-transform-object-super@npm:^7.24.7":
+ version: 7.24.7
+ resolution: "@babel/plugin-transform-object-super@npm:7.24.7"
dependencies:
- "@babel/helper-plugin-utils": "npm:^7.24.0"
- "@babel/helper-replace-supers": "npm:^7.24.1"
+ "@babel/helper-plugin-utils": "npm:^7.24.7"
+ "@babel/helper-replace-supers": "npm:^7.24.7"
peerDependencies:
"@babel/core": ^7.0.0-0
- checksum: 10c0/d30e6b9e59a707efd7ed524fc0a8deeea046011a6990250f2e9280516683138e2d13d9c52daf41d78407bdab0378aef7478326f2a15305b773d851cb6e106157
+ checksum: 10c0/770cebb4b4e1872c216b17069db9a13b87dfee747d359dc56d9fcdd66e7544f92dc6ab1861a4e7e0528196aaff2444e4f17dc84efd8eaf162d542b4ba0943869
languageName: node
linkType: hard
-"@babel/plugin-transform-optional-catch-binding@npm:^7.23.4, @babel/plugin-transform-optional-catch-binding@npm:^7.24.1":
- version: 7.24.1
- resolution: "@babel/plugin-transform-optional-catch-binding@npm:7.24.1"
+"@babel/plugin-transform-optional-catch-binding@npm:^7.23.4, @babel/plugin-transform-optional-catch-binding@npm:^7.24.7":
+ version: 7.24.7
+ resolution: "@babel/plugin-transform-optional-catch-binding@npm:7.24.7"
dependencies:
- "@babel/helper-plugin-utils": "npm:^7.24.0"
+ "@babel/helper-plugin-utils": "npm:^7.24.7"
"@babel/plugin-syntax-optional-catch-binding": "npm:^7.8.3"
peerDependencies:
"@babel/core": ^7.0.0-0
- checksum: 10c0/68408b9ef772d9aa5dccf166c86dc4d2505990ce93e03dcfc65c73fb95c2511248e009ba9ccf5b96405fb85de1c16ad8291016b1cc5689ee4becb1e3050e0ae7
+ checksum: 10c0/1e2f10a018f7d03b3bde6c0b70d063df8d5dd5209861d4467726cf834f5e3d354e2276079dc226aa8e6ece35f5c9b264d64b8229a8bb232829c01e561bcfb07a
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":
- version: 7.24.1
- resolution: "@babel/plugin-transform-optional-chaining@npm:7.24.1"
+"@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.7":
+ version: 7.24.7
+ resolution: "@babel/plugin-transform-optional-chaining@npm:7.24.7"
dependencies:
- "@babel/helper-plugin-utils": "npm:^7.24.0"
- "@babel/helper-skip-transparent-expression-wrappers": "npm:^7.22.5"
+ "@babel/helper-plugin-utils": "npm:^7.24.7"
+ "@babel/helper-skip-transparent-expression-wrappers": "npm:^7.24.7"
"@babel/plugin-syntax-optional-chaining": "npm:^7.8.3"
peerDependencies:
"@babel/core": ^7.0.0-0
- checksum: 10c0/b4688795229c9e9ce978eccf979fe515eb4e8d864d2dcd696baa937c8db13e3d46cff664a3cd6119dfe60e261f5d359b10c6783effab7cc91d75d03ad7f43d05
+ checksum: 10c0/b9e3649b299e103b0d1767bbdba56574d065ff776e5350403b7bfd4e3982743c0cdb373d33bdbf94fa3c322d155e45d0aad946acf0aa741b870aed22dfec8b8e
languageName: node
linkType: hard
-"@babel/plugin-transform-parameters@npm:^7.23.3, @babel/plugin-transform-parameters@npm:^7.24.1":
- version: 7.24.1
- resolution: "@babel/plugin-transform-parameters@npm:7.24.1"
+"@babel/plugin-transform-parameters@npm:^7.23.3, @babel/plugin-transform-parameters@npm:^7.24.7":
+ version: 7.24.7
+ resolution: "@babel/plugin-transform-parameters@npm:7.24.7"
dependencies:
- "@babel/helper-plugin-utils": "npm:^7.24.0"
+ "@babel/helper-plugin-utils": "npm:^7.24.7"
peerDependencies:
"@babel/core": ^7.0.0-0
- checksum: 10c0/eee8d2f72d3ee0876dc8d85f949f4adf34685cfe36c814ebc20c96315f3891a53d43c764d636b939e34d55e6a6a4af9aa57ed0d7f9439eb5771a07277c669e55
+ checksum: 10c0/53bf190d6926771545d5184f1f5f3f5144d0f04f170799ad46a43f683a01fab8d5fe4d2196cf246774530990c31fe1f2b9f0def39f0a5ddbb2340b924f5edf01
languageName: node
linkType: hard
-"@babel/plugin-transform-private-methods@npm:^7.22.5, @babel/plugin-transform-private-methods@npm:^7.23.3, @babel/plugin-transform-private-methods@npm:^7.24.1":
- version: 7.24.1
- resolution: "@babel/plugin-transform-private-methods@npm:7.24.1"
+"@babel/plugin-transform-private-methods@npm:^7.22.5, @babel/plugin-transform-private-methods@npm:^7.23.3, @babel/plugin-transform-private-methods@npm:^7.24.7":
+ version: 7.24.7
+ resolution: "@babel/plugin-transform-private-methods@npm:7.24.7"
dependencies:
- "@babel/helper-create-class-features-plugin": "npm:^7.24.1"
- "@babel/helper-plugin-utils": "npm:^7.24.0"
+ "@babel/helper-create-class-features-plugin": "npm:^7.24.7"
+ "@babel/helper-plugin-utils": "npm:^7.24.7"
peerDependencies:
"@babel/core": ^7.0.0-0
- checksum: 10c0/d8e18587d2a8b71a795da5e8841b0e64f1525a99ad73ea8b9caa331bc271d69646e2e1e749fd634321f3df9d126070208ddac22a27ccf070566b2efb74fecd99
+ checksum: 10c0/5b7bf923b738fbe3ad6c33b260e0a7451be288edfe4ef516303fa787a1870cd87533bfbf61abb779c22ed003c2fc484dec2436fe75a48756f686c0241173d364
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.1
- resolution: "@babel/plugin-transform-private-property-in-object@npm:7.24.1"
+"@babel/plugin-transform-private-property-in-object@npm:^7.23.4, @babel/plugin-transform-private-property-in-object@npm:^7.24.7":
+ version: 7.24.7
+ resolution: "@babel/plugin-transform-private-property-in-object@npm:7.24.7"
dependencies:
- "@babel/helper-annotate-as-pure": "npm:^7.22.5"
- "@babel/helper-create-class-features-plugin": "npm:^7.24.1"
- "@babel/helper-plugin-utils": "npm:^7.24.0"
+ "@babel/helper-annotate-as-pure": "npm:^7.24.7"
+ "@babel/helper-create-class-features-plugin": "npm:^7.24.7"
+ "@babel/helper-plugin-utils": "npm:^7.24.7"
"@babel/plugin-syntax-private-property-in-object": "npm:^7.14.5"
peerDependencies:
"@babel/core": ^7.0.0-0
- checksum: 10c0/33d2b9737de7667d7a1b704eef99bfecc6736157d9ea28c2e09010d5f25e33ff841c41d89a4430c5d47f4eb3384e24770fa0ec79600e1e38d6d16e2f9333b4b5
+ checksum: 10c0/c6fa7defb90b1b0ed46f24ff94ff2e77f44c1f478d1090e81712f33cf992dda5ba347016f030082a2f770138bac6f4a9c2c1565e9f767a125901c77dd9c239ba
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.1
- resolution: "@babel/plugin-transform-property-literals@npm:7.24.1"
+"@babel/plugin-transform-property-literals@npm:^7.23.3, @babel/plugin-transform-property-literals@npm:^7.24.7":
+ version: 7.24.7
+ resolution: "@babel/plugin-transform-property-literals@npm:7.24.7"
dependencies:
- "@babel/helper-plugin-utils": "npm:^7.24.0"
+ "@babel/helper-plugin-utils": "npm:^7.24.7"
peerDependencies:
"@babel/core": ^7.0.0-0
- checksum: 10c0/3bf3e01f7bb8215a8b6d0081b6f86fea23e3a4543b619e059a264ede028bc58cdfb0acb2c43271271915a74917effa547bc280ac636a9901fa9f2fb45623f87e
+ checksum: 10c0/52564b58f3d111dc02d241d5892a4b01512e98dfdf6ef11b0ed62f8b11b0acacccef0fc229b44114fe8d1a57a8b70780b11bdd18b807d3754a781a07d8f57433
languageName: node
linkType: hard
-"@babel/plugin-transform-react-display-name@npm:^7.24.1":
- version: 7.24.1
- resolution: "@babel/plugin-transform-react-display-name@npm:7.24.1"
+"@babel/plugin-transform-react-display-name@npm:^7.24.7":
+ version: 7.24.7
+ resolution: "@babel/plugin-transform-react-display-name@npm:7.24.7"
dependencies:
- "@babel/helper-plugin-utils": "npm:^7.24.0"
+ "@babel/helper-plugin-utils": "npm:^7.24.7"
peerDependencies:
"@babel/core": ^7.0.0-0
- checksum: 10c0/adf1a3cb0df8134533a558a9072a67e34127fd489dfe431c3348a86dd41f3e74861d5d5134bbb68f61a9cdb3f7e79b2acea1346be94ce4d3328a64e5a9e09be1
+ checksum: 10c0/c14a07a9e75723c96f1a0a306b8a8e899ff1c6a0cc3d62bcda79bb1b54e4319127b258651c513a1a47da152cdc22e16525525a30ae5933a2980c7036fd0b4d24
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"
+"@babel/plugin-transform-react-jsx-development@npm:^7.24.7":
+ version: 7.24.7
+ resolution: "@babel/plugin-transform-react-jsx-development@npm:7.24.7"
dependencies:
- "@babel/plugin-transform-react-jsx": "npm:^7.22.5"
+ "@babel/plugin-transform-react-jsx": "npm:^7.24.7"
peerDependencies:
"@babel/core": ^7.0.0-0
- checksum: 10c0/4d2e9e68383238feb873f6111df972df4a2ebf6256d6f787a8772241867efa975b3980f7d75ab7d750e7eaad4bd454e8cc6e106301fd7572dd389e553f5f69d2
+ checksum: 10c0/fce647db50f90a5291681f0f97865d9dc76981262dff71d6d0332e724b85343de5860c26f9e9a79e448d61e1d70916b07ce91e8c7f2b80dceb4b16aee41794d8
languageName: node
linkType: hard
"@babel/plugin-transform-react-jsx-self@npm:^7.18.6":
- version: 7.22.5
- resolution: "@babel/plugin-transform-react-jsx-self@npm:7.22.5"
+ version: 7.24.7
+ resolution: "@babel/plugin-transform-react-jsx-self@npm:7.24.7"
dependencies:
- "@babel/helper-plugin-utils": "npm:^7.22.5"
+ "@babel/helper-plugin-utils": "npm:^7.24.7"
peerDependencies:
"@babel/core": ^7.0.0-0
- checksum: 10c0/263091bdede1f448cb2c59b84eb69972c15d3f022c929a75337bd20d8b65551ac38cd26dad1946eaa93289643506b10ddaea3445a28cb8fca5a773a22a0df90b
+ checksum: 10c0/dcf3b732401f47f06bb29d6016e48066f66de00029a0ded98ddd9983c770a00a109d91cd04d2700d15ee0bcec3ae3027a5f12d69e15ec56efc0bcbfac65e92cb
languageName: node
linkType: hard
"@babel/plugin-transform-react-jsx-source@npm:^7.19.6":
- version: 7.22.5
- resolution: "@babel/plugin-transform-react-jsx-source@npm:7.22.5"
+ version: 7.24.7
+ resolution: "@babel/plugin-transform-react-jsx-source@npm:7.24.7"
dependencies:
- "@babel/helper-plugin-utils": "npm:^7.22.5"
+ "@babel/helper-plugin-utils": "npm:^7.24.7"
peerDependencies:
"@babel/core": ^7.0.0-0
- checksum: 10c0/defc9debb76b4295e3617ef7795a0533dbbecef6f51bf5ba4bfc162df892a84fd39e14d5f1b9a5aad7b09b97074fef4c6756f9d2036eef5a9874acabe198f75a
+ checksum: 10c0/970ef1264c7c6c416ab11610665d5309aec2bd2b9086ae394e1132e65138d97b060a7dc9d31054e050d6dc475b5a213938c9707c0202a5022d55dcb4c5abe28f
languageName: node
linkType: hard
-"@babel/plugin-transform-react-jsx@npm:^7.22.5, @babel/plugin-transform-react-jsx@npm:^7.23.4":
- version: 7.23.4
- resolution: "@babel/plugin-transform-react-jsx@npm:7.23.4"
+"@babel/plugin-transform-react-jsx@npm:^7.24.7":
+ version: 7.24.7
+ resolution: "@babel/plugin-transform-react-jsx@npm:7.24.7"
dependencies:
- "@babel/helper-annotate-as-pure": "npm:^7.22.5"
- "@babel/helper-module-imports": "npm:^7.22.15"
- "@babel/helper-plugin-utils": "npm:^7.22.5"
- "@babel/plugin-syntax-jsx": "npm:^7.23.3"
- "@babel/types": "npm:^7.23.4"
+ "@babel/helper-annotate-as-pure": "npm:^7.24.7"
+ "@babel/helper-module-imports": "npm:^7.24.7"
+ "@babel/helper-plugin-utils": "npm:^7.24.7"
+ "@babel/plugin-syntax-jsx": "npm:^7.24.7"
+ "@babel/types": "npm:^7.24.7"
peerDependencies:
"@babel/core": ^7.0.0-0
- checksum: 10c0/8851b3adc515cd91bdb06ff3a23a0f81f0069cfef79dfb3fa744da4b7a82e3555ccb6324c4fa71ecf22508db13b9ff6a0ed96675f95fc87903b9fc6afb699580
+ checksum: 10c0/5c46d2c1c06a30e6bde084839df9cc689bf9c9cb0292105d61c225ca731f64247990724caee7dfc7f817dc964c062e8319e7f05394209590c476b65d75373435
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"
+"@babel/plugin-transform-react-pure-annotations@npm:^7.24.7":
+ version: 7.24.7
+ resolution: "@babel/plugin-transform-react-pure-annotations@npm:7.24.7"
dependencies:
- "@babel/helper-annotate-as-pure": "npm:^7.22.5"
- "@babel/helper-plugin-utils": "npm:^7.24.0"
+ "@babel/helper-annotate-as-pure": "npm:^7.24.7"
+ "@babel/helper-plugin-utils": "npm:^7.24.7"
peerDependencies:
"@babel/core": ^7.0.0-0
- checksum: 10c0/9eb3056fcaadd63d404fd5652b2a3f693bc4758ba753fee5b5c580c7a64346eeeb94e5a4f77a99c76f3cf06d1f1ad6c227647cd0b1219efe3d00cafa5a6e7b2a
+ checksum: 10c0/fae517d293d9c93b7b920458c3e4b91cb0400513889af41ba184a5f3acc8bfef27242cc262741bb8f87870df376f1733a0d0f52b966d342e2aaaf5607af8f73d
languageName: node
linkType: hard
-"@babel/plugin-transform-regenerator@npm:^7.23.3, @babel/plugin-transform-regenerator@npm:^7.24.1":
- version: 7.24.1
- resolution: "@babel/plugin-transform-regenerator@npm:7.24.1"
+"@babel/plugin-transform-regenerator@npm:^7.23.3, @babel/plugin-transform-regenerator@npm:^7.24.7":
+ version: 7.24.7
+ resolution: "@babel/plugin-transform-regenerator@npm:7.24.7"
dependencies:
- "@babel/helper-plugin-utils": "npm:^7.24.0"
+ "@babel/helper-plugin-utils": "npm:^7.24.7"
regenerator-transform: "npm:^0.15.2"
peerDependencies:
"@babel/core": ^7.0.0-0
- checksum: 10c0/0a333585d7c0b38d31cc549d0f3cf7c396d1d50b6588a307dc58325505ddd4f5446188bc536c4779431b396251801b3f32d6d8e87db8274bc84e8c41950737f7
+ checksum: 10c0/d2dc2c788fdae9d97217e70d46ba8ca9db0035c398dc3e161552b0c437113719a75c04f201f9c91ddc8d28a1da60d0b0853f616dead98a396abb9c845c44892b
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.1
- resolution: "@babel/plugin-transform-reserved-words@npm:7.24.1"
+"@babel/plugin-transform-reserved-words@npm:^7.23.3, @babel/plugin-transform-reserved-words@npm:^7.24.7":
+ version: 7.24.7
+ resolution: "@babel/plugin-transform-reserved-words@npm:7.24.7"
dependencies:
- "@babel/helper-plugin-utils": "npm:^7.24.0"
+ "@babel/helper-plugin-utils": "npm:^7.24.7"
peerDependencies:
"@babel/core": ^7.0.0-0
- checksum: 10c0/936d6e73cafb2cbb495f6817c6f8463288dbc9ab3c44684b931ebc1ece24f0d55dfabc1a75ba1de5b48843d0fef448dcfdbecb8485e4014f8f41d0d1440c536f
+ checksum: 10c0/2229de2768615e7f5dc0bbc55bc121b5678fd6d2febd46c74a58e42bb894d74cd5955c805880f4e02d0e1cf94f6886270eda7fafc1be9305a1ec3b9fd1d063f5
languageName: node
linkType: hard
@@ -1756,135 +1781,135 @@ __metadata:
linkType: hard
"@babel/plugin-transform-runtime@npm:^7.13.9, @babel/plugin-transform-runtime@npm:^7.23.2, @babel/plugin-transform-runtime@npm:^7.24.3":
- version: 7.24.3
- resolution: "@babel/plugin-transform-runtime@npm:7.24.3"
+ version: 7.24.7
+ resolution: "@babel/plugin-transform-runtime@npm:7.24.7"
dependencies:
- "@babel/helper-module-imports": "npm:^7.24.3"
- "@babel/helper-plugin-utils": "npm:^7.24.0"
+ "@babel/helper-module-imports": "npm:^7.24.7"
+ "@babel/helper-plugin-utils": "npm:^7.24.7"
babel-plugin-polyfill-corejs2: "npm:^0.4.10"
babel-plugin-polyfill-corejs3: "npm:^0.10.1"
babel-plugin-polyfill-regenerator: "npm:^0.6.1"
semver: "npm:^6.3.1"
peerDependencies:
"@babel/core": ^7.0.0-0
- checksum: 10c0/ee01967bf405d84bd95ca4089166a18fb23fe9851a6da53dcf712a7f8ba003319996f21f320d568ec76126e18adfaee978206ccda86eef7652d47cc9a052e75e
+ checksum: 10c0/a33f5095872bbba00b8ee553dfe6941477e69a017a2e65e9dd86e80dab5c627635093b796eb1eb22aaaf2f874704f63ad1d99b952b83b59ef6b368ae04e5bb41
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.1
- resolution: "@babel/plugin-transform-shorthand-properties@npm:7.24.1"
+"@babel/plugin-transform-shorthand-properties@npm:^7.23.3, @babel/plugin-transform-shorthand-properties@npm:^7.24.7":
+ version: 7.24.7
+ resolution: "@babel/plugin-transform-shorthand-properties@npm:7.24.7"
dependencies:
- "@babel/helper-plugin-utils": "npm:^7.24.0"
+ "@babel/helper-plugin-utils": "npm:^7.24.7"
peerDependencies:
"@babel/core": ^7.0.0-0
- checksum: 10c0/8273347621183aada3cf1f3019d8d5f29467ba13a75b72cb405bc7f23b7e05fd85f4edb1e4d9f0103153dddb61826a42dc24d466480d707f8932c1923a4c25fa
+ checksum: 10c0/41b155bdbb3be66618358488bf7731b3b2e8fff2de3dbfd541847720a9debfcec14db06a117abedd03c9cd786db20a79e2a86509a4f19513f6e1b610520905cf
languageName: node
linkType: hard
-"@babel/plugin-transform-spread@npm:^7.23.3, @babel/plugin-transform-spread@npm:^7.24.1":
- version: 7.24.1
- resolution: "@babel/plugin-transform-spread@npm:7.24.1"
+"@babel/plugin-transform-spread@npm:^7.23.3, @babel/plugin-transform-spread@npm:^7.24.7":
+ version: 7.24.7
+ resolution: "@babel/plugin-transform-spread@npm:7.24.7"
dependencies:
- "@babel/helper-plugin-utils": "npm:^7.24.0"
- "@babel/helper-skip-transparent-expression-wrappers": "npm:^7.22.5"
+ "@babel/helper-plugin-utils": "npm:^7.24.7"
+ "@babel/helper-skip-transparent-expression-wrappers": "npm:^7.24.7"
peerDependencies:
"@babel/core": ^7.0.0-0
- checksum: 10c0/50a0302e344546d57e5c9f4dea575f88e084352eeac4e9a3e238c41739eef2df1daf4a7ebbb3ccb7acd3447f6a5ce9938405f98bf5f5583deceb8257f5a673c9
+ checksum: 10c0/facba1553035f76b0d2930d4ada89a8cd0f45b79579afd35baefbfaf12e3b86096995f4b0c402cf9ee23b3f2ea0a4460c3b1ec0c192d340962c948bb223d4e66
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.1
- resolution: "@babel/plugin-transform-sticky-regex@npm:7.24.1"
+"@babel/plugin-transform-sticky-regex@npm:^7.23.3, @babel/plugin-transform-sticky-regex@npm:^7.24.7":
+ version: 7.24.7
+ resolution: "@babel/plugin-transform-sticky-regex@npm:7.24.7"
dependencies:
- "@babel/helper-plugin-utils": "npm:^7.24.0"
+ "@babel/helper-plugin-utils": "npm:^7.24.7"
peerDependencies:
"@babel/core": ^7.0.0-0
- checksum: 10c0/786fe2ae11ef9046b9fa95677935abe495031eebf1274ad03f2054a20adea7b9dbd00336ac0b143f7924bc562e5e09793f6e8613607674b97e067d4838ccc4a0
+ checksum: 10c0/5a74ed2ed0a3ab51c3d15fcaf09d9e2fe915823535c7a4d7b019813177d559b69677090e189ec3d5d08b619483eb5ad371fbcfbbff5ace2a76ba33ee566a1109
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.1
- resolution: "@babel/plugin-transform-template-literals@npm:7.24.1"
+"@babel/plugin-transform-template-literals@npm:^7.23.3, @babel/plugin-transform-template-literals@npm:^7.24.7":
+ version: 7.24.7
+ resolution: "@babel/plugin-transform-template-literals@npm:7.24.7"
dependencies:
- "@babel/helper-plugin-utils": "npm:^7.24.0"
+ "@babel/helper-plugin-utils": "npm:^7.24.7"
peerDependencies:
"@babel/core": ^7.0.0-0
- checksum: 10c0/f73bcda5488eb81c6e7a876498d9e6b72be32fca5a4d9db9053491a2d1300cd27b889b463fd2558f3cd5826a85ed00f61d81b234aa55cb5a0abf1b6fa1bd5026
+ checksum: 10c0/3630f966257bcace122f04d3157416a09d40768c44c3a800855da81146b009187daa21859d1c3b7d13f4e19e8888e60613964b175b2275d451200fb6d8d6cfe6
languageName: node
linkType: hard
-"@babel/plugin-transform-typeof-symbol@npm:^7.23.3, @babel/plugin-transform-typeof-symbol@npm:^7.24.1":
- version: 7.24.1
- resolution: "@babel/plugin-transform-typeof-symbol@npm:7.24.1"
+"@babel/plugin-transform-typeof-symbol@npm:^7.23.3, @babel/plugin-transform-typeof-symbol@npm:^7.24.7":
+ version: 7.24.7
+ resolution: "@babel/plugin-transform-typeof-symbol@npm:7.24.7"
dependencies:
- "@babel/helper-plugin-utils": "npm:^7.24.0"
+ "@babel/helper-plugin-utils": "npm:^7.24.7"
peerDependencies:
"@babel/core": ^7.0.0-0
- checksum: 10c0/d392f549bfd13414f59feecdf3fb286f266a3eb9107a9de818e57907bda56eed08d1f6f8e314d09bf99252df026a7fd4d5df839acd45078a777abcebaa9a8593
+ checksum: 10c0/5649e7260a138681e68b296ab5931e2b1f132f287d6b4131d49b24f9dc20d62902b7e9d63c4d2decd5683b41df35ef4b9b03f58c7f9f65e4c25a6d8bbf04e9e9
languageName: node
linkType: hard
-"@babel/plugin-transform-typescript@npm:^7.13.0, @babel/plugin-transform-typescript@npm:^7.24.1":
- version: 7.24.4
- resolution: "@babel/plugin-transform-typescript@npm:7.24.4"
+"@babel/plugin-transform-typescript@npm:^7.13.0, @babel/plugin-transform-typescript@npm:^7.24.7":
+ version: 7.24.7
+ resolution: "@babel/plugin-transform-typescript@npm:7.24.7"
dependencies:
- "@babel/helper-annotate-as-pure": "npm:^7.22.5"
- "@babel/helper-create-class-features-plugin": "npm:^7.24.4"
- "@babel/helper-plugin-utils": "npm:^7.24.0"
- "@babel/plugin-syntax-typescript": "npm:^7.24.1"
+ "@babel/helper-annotate-as-pure": "npm:^7.24.7"
+ "@babel/helper-create-class-features-plugin": "npm:^7.24.7"
+ "@babel/helper-plugin-utils": "npm:^7.24.7"
+ "@babel/plugin-syntax-typescript": "npm:^7.24.7"
peerDependencies:
"@babel/core": ^7.0.0-0
- checksum: 10c0/fa6625046f219cdc75061025c8031ada75ef631b137f1442e3d0054ba4e63548eb12cf55e2e1f442c889aa5fdd76d0d0b7904fdf812ce4c38748446227acc798
+ checksum: 10c0/e8dacdc153a4c4599014b66eb01b94e3dc933d58d4f0cc3039c1a8f432e77b9df14f34a61964e014b975bf466f3fefd8c4768b3e887d3da1be9dc942799bdfdf
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.1
- resolution: "@babel/plugin-transform-unicode-escapes@npm:7.24.1"
+"@babel/plugin-transform-unicode-escapes@npm:^7.23.3, @babel/plugin-transform-unicode-escapes@npm:^7.24.7":
+ version: 7.24.7
+ resolution: "@babel/plugin-transform-unicode-escapes@npm:7.24.7"
dependencies:
- "@babel/helper-plugin-utils": "npm:^7.24.0"
+ "@babel/helper-plugin-utils": "npm:^7.24.7"
peerDependencies:
"@babel/core": ^7.0.0-0
- checksum: 10c0/67a72a1ed99639de6a93aead35b1993cb3f0eb178a8991fcef48732c38c9f0279c85bbe1e2e2477b85afea873e738ff0955a35057635ce67bc149038e2d8a28e
+ checksum: 10c0/8b18e2e66af33471a6971289492beff5c240e56727331db1d34c4338a6a368a82a7ed6d57ec911001b6d65643aed76531e1e7cac93265fb3fb2717f54d845e69
languageName: node
linkType: hard
-"@babel/plugin-transform-unicode-property-regex@npm:^7.23.3, @babel/plugin-transform-unicode-property-regex@npm:^7.24.1":
- version: 7.24.1
- resolution: "@babel/plugin-transform-unicode-property-regex@npm:7.24.1"
+"@babel/plugin-transform-unicode-property-regex@npm:^7.23.3, @babel/plugin-transform-unicode-property-regex@npm:^7.24.7":
+ version: 7.24.7
+ resolution: "@babel/plugin-transform-unicode-property-regex@npm:7.24.7"
dependencies:
- "@babel/helper-create-regexp-features-plugin": "npm:^7.22.15"
- "@babel/helper-plugin-utils": "npm:^7.24.0"
+ "@babel/helper-create-regexp-features-plugin": "npm:^7.24.7"
+ "@babel/helper-plugin-utils": "npm:^7.24.7"
peerDependencies:
"@babel/core": ^7.0.0-0
- checksum: 10c0/d9d9752df7d51bf9357c0bf3762fe16b8c841fca9ecf4409a16f15ccc34be06e8e71abfaee1251b7d451227e70e6b873b36f86b090efdb20f6f7de5fdb6c7a05
+ checksum: 10c0/bc57656eb94584d1b74a385d378818ac2b3fca642e3f649fead8da5fb3f9de22f8461185936915dfb33d5a9104e62e7a47828331248b09d28bb2d59e9276de3e
languageName: node
linkType: hard
-"@babel/plugin-transform-unicode-regex@npm:^7.23.3, @babel/plugin-transform-unicode-regex@npm:^7.24.1":
- version: 7.24.1
- resolution: "@babel/plugin-transform-unicode-regex@npm:7.24.1"
+"@babel/plugin-transform-unicode-regex@npm:^7.23.3, @babel/plugin-transform-unicode-regex@npm:^7.24.7":
+ version: 7.24.7
+ resolution: "@babel/plugin-transform-unicode-regex@npm:7.24.7"
dependencies:
- "@babel/helper-create-regexp-features-plugin": "npm:^7.22.15"
- "@babel/helper-plugin-utils": "npm:^7.24.0"
+ "@babel/helper-create-regexp-features-plugin": "npm:^7.24.7"
+ "@babel/helper-plugin-utils": "npm:^7.24.7"
peerDependencies:
"@babel/core": ^7.0.0-0
- checksum: 10c0/6046ab38e5d14ed97dbb921bd79ac1d7ad9d3286da44a48930e980b16896db2df21e093563ec3c916a630dc346639bf47c5924a33902a06fe3bbb5cdc7ef5f2f
+ checksum: 10c0/83f72a345b751566b601dc4d07e9f2c8f1bc0e0c6f7abb56ceb3095b3c9d304de73f85f2f477a09f8cc7edd5e65afd0ff9e376cdbcbea33bc0c28f3705b38fd9
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.1
- resolution: "@babel/plugin-transform-unicode-sets-regex@npm:7.24.1"
+"@babel/plugin-transform-unicode-sets-regex@npm:^7.23.3, @babel/plugin-transform-unicode-sets-regex@npm:^7.24.7":
+ version: 7.24.7
+ resolution: "@babel/plugin-transform-unicode-sets-regex@npm:7.24.7"
dependencies:
- "@babel/helper-create-regexp-features-plugin": "npm:^7.22.15"
- "@babel/helper-plugin-utils": "npm:^7.24.0"
+ "@babel/helper-create-regexp-features-plugin": "npm:^7.24.7"
+ "@babel/helper-plugin-utils": "npm:^7.24.7"
peerDependencies:
"@babel/core": ^7.0.0
- checksum: 10c0/b6c1f6b90afeeddf97e5713f72575787fcb7179be7b4c961869bfbc66915f66540dc49da93e4369da15596bd44b896d1eb8a50f5e1fd907abd7a1a625901006b
+ checksum: 10c0/7457c0ee8e80a80cb6fdc1fe54ab115b52815627616ce9151be8ef292fc99d04a910ec24f11382b4f124b89374264396892b086886bd2a9c2317904d87c9b21b
languageName: node
linkType: hard
@@ -1989,25 +2014,25 @@ __metadata:
linkType: hard
"@babel/preset-env@npm:^7.16.5, @babel/preset-env@npm:^7.23.2, @babel/preset-env@npm:^7.24.4":
- version: 7.24.4
- resolution: "@babel/preset-env@npm:7.24.4"
- dependencies:
- "@babel/compat-data": "npm:^7.24.4"
- "@babel/helper-compilation-targets": "npm:^7.23.6"
- "@babel/helper-plugin-utils": "npm:^7.24.0"
- "@babel/helper-validator-option": "npm:^7.23.5"
- "@babel/plugin-bugfix-firefox-class-in-computed-class-key": "npm:^7.24.4"
- "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "npm:^7.24.1"
- "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "npm:^7.24.1"
- "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": "npm:^7.24.1"
+ version: 7.24.7
+ resolution: "@babel/preset-env@npm:7.24.7"
+ dependencies:
+ "@babel/compat-data": "npm:^7.24.7"
+ "@babel/helper-compilation-targets": "npm:^7.24.7"
+ "@babel/helper-plugin-utils": "npm:^7.24.7"
+ "@babel/helper-validator-option": "npm:^7.24.7"
+ "@babel/plugin-bugfix-firefox-class-in-computed-class-key": "npm:^7.24.7"
+ "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "npm:^7.24.7"
+ "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "npm:^7.24.7"
+ "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": "npm:^7.24.7"
"@babel/plugin-proposal-private-property-in-object": "npm:7.21.0-placeholder-for-preset-env.2"
"@babel/plugin-syntax-async-generators": "npm:^7.8.4"
"@babel/plugin-syntax-class-properties": "npm:^7.12.13"
"@babel/plugin-syntax-class-static-block": "npm:^7.14.5"
"@babel/plugin-syntax-dynamic-import": "npm:^7.8.3"
"@babel/plugin-syntax-export-namespace-from": "npm:^7.8.3"
- "@babel/plugin-syntax-import-assertions": "npm:^7.24.1"
- "@babel/plugin-syntax-import-attributes": "npm:^7.24.1"
+ "@babel/plugin-syntax-import-assertions": "npm:^7.24.7"
+ "@babel/plugin-syntax-import-attributes": "npm:^7.24.7"
"@babel/plugin-syntax-import-meta": "npm:^7.10.4"
"@babel/plugin-syntax-json-strings": "npm:^7.8.3"
"@babel/plugin-syntax-logical-assignment-operators": "npm:^7.10.4"
@@ -2019,54 +2044,54 @@ __metadata:
"@babel/plugin-syntax-private-property-in-object": "npm:^7.14.5"
"@babel/plugin-syntax-top-level-await": "npm:^7.14.5"
"@babel/plugin-syntax-unicode-sets-regex": "npm:^7.18.6"
- "@babel/plugin-transform-arrow-functions": "npm:^7.24.1"
- "@babel/plugin-transform-async-generator-functions": "npm:^7.24.3"
- "@babel/plugin-transform-async-to-generator": "npm:^7.24.1"
- "@babel/plugin-transform-block-scoped-functions": "npm:^7.24.1"
- "@babel/plugin-transform-block-scoping": "npm:^7.24.4"
- "@babel/plugin-transform-class-properties": "npm:^7.24.1"
- "@babel/plugin-transform-class-static-block": "npm:^7.24.4"
- "@babel/plugin-transform-classes": "npm:^7.24.1"
- "@babel/plugin-transform-computed-properties": "npm:^7.24.1"
- "@babel/plugin-transform-destructuring": "npm:^7.24.1"
- "@babel/plugin-transform-dotall-regex": "npm:^7.24.1"
- "@babel/plugin-transform-duplicate-keys": "npm:^7.24.1"
- "@babel/plugin-transform-dynamic-import": "npm:^7.24.1"
- "@babel/plugin-transform-exponentiation-operator": "npm:^7.24.1"
- "@babel/plugin-transform-export-namespace-from": "npm:^7.24.1"
- "@babel/plugin-transform-for-of": "npm:^7.24.1"
- "@babel/plugin-transform-function-name": "npm:^7.24.1"
- "@babel/plugin-transform-json-strings": "npm:^7.24.1"
- "@babel/plugin-transform-literals": "npm:^7.24.1"
- "@babel/plugin-transform-logical-assignment-operators": "npm:^7.24.1"
- "@babel/plugin-transform-member-expression-literals": "npm:^7.24.1"
- "@babel/plugin-transform-modules-amd": "npm:^7.24.1"
- "@babel/plugin-transform-modules-commonjs": "npm:^7.24.1"
- "@babel/plugin-transform-modules-systemjs": "npm:^7.24.1"
- "@babel/plugin-transform-modules-umd": "npm:^7.24.1"
- "@babel/plugin-transform-named-capturing-groups-regex": "npm:^7.22.5"
- "@babel/plugin-transform-new-target": "npm:^7.24.1"
- "@babel/plugin-transform-nullish-coalescing-operator": "npm:^7.24.1"
- "@babel/plugin-transform-numeric-separator": "npm:^7.24.1"
- "@babel/plugin-transform-object-rest-spread": "npm:^7.24.1"
- "@babel/plugin-transform-object-super": "npm:^7.24.1"
- "@babel/plugin-transform-optional-catch-binding": "npm:^7.24.1"
- "@babel/plugin-transform-optional-chaining": "npm:^7.24.1"
- "@babel/plugin-transform-parameters": "npm:^7.24.1"
- "@babel/plugin-transform-private-methods": "npm:^7.24.1"
- "@babel/plugin-transform-private-property-in-object": "npm:^7.24.1"
- "@babel/plugin-transform-property-literals": "npm:^7.24.1"
- "@babel/plugin-transform-regenerator": "npm:^7.24.1"
- "@babel/plugin-transform-reserved-words": "npm:^7.24.1"
- "@babel/plugin-transform-shorthand-properties": "npm:^7.24.1"
- "@babel/plugin-transform-spread": "npm:^7.24.1"
- "@babel/plugin-transform-sticky-regex": "npm:^7.24.1"
- "@babel/plugin-transform-template-literals": "npm:^7.24.1"
- "@babel/plugin-transform-typeof-symbol": "npm:^7.24.1"
- "@babel/plugin-transform-unicode-escapes": "npm:^7.24.1"
- "@babel/plugin-transform-unicode-property-regex": "npm:^7.24.1"
- "@babel/plugin-transform-unicode-regex": "npm:^7.24.1"
- "@babel/plugin-transform-unicode-sets-regex": "npm:^7.24.1"
+ "@babel/plugin-transform-arrow-functions": "npm:^7.24.7"
+ "@babel/plugin-transform-async-generator-functions": "npm:^7.24.7"
+ "@babel/plugin-transform-async-to-generator": "npm:^7.24.7"
+ "@babel/plugin-transform-block-scoped-functions": "npm:^7.24.7"
+ "@babel/plugin-transform-block-scoping": "npm:^7.24.7"
+ "@babel/plugin-transform-class-properties": "npm:^7.24.7"
+ "@babel/plugin-transform-class-static-block": "npm:^7.24.7"
+ "@babel/plugin-transform-classes": "npm:^7.24.7"
+ "@babel/plugin-transform-computed-properties": "npm:^7.24.7"
+ "@babel/plugin-transform-destructuring": "npm:^7.24.7"
+ "@babel/plugin-transform-dotall-regex": "npm:^7.24.7"
+ "@babel/plugin-transform-duplicate-keys": "npm:^7.24.7"
+ "@babel/plugin-transform-dynamic-import": "npm:^7.24.7"
+ "@babel/plugin-transform-exponentiation-operator": "npm:^7.24.7"
+ "@babel/plugin-transform-export-namespace-from": "npm:^7.24.7"
+ "@babel/plugin-transform-for-of": "npm:^7.24.7"
+ "@babel/plugin-transform-function-name": "npm:^7.24.7"
+ "@babel/plugin-transform-json-strings": "npm:^7.24.7"
+ "@babel/plugin-transform-literals": "npm:^7.24.7"
+ "@babel/plugin-transform-logical-assignment-operators": "npm:^7.24.7"
+ "@babel/plugin-transform-member-expression-literals": "npm:^7.24.7"
+ "@babel/plugin-transform-modules-amd": "npm:^7.24.7"
+ "@babel/plugin-transform-modules-commonjs": "npm:^7.24.7"
+ "@babel/plugin-transform-modules-systemjs": "npm:^7.24.7"
+ "@babel/plugin-transform-modules-umd": "npm:^7.24.7"
+ "@babel/plugin-transform-named-capturing-groups-regex": "npm:^7.24.7"
+ "@babel/plugin-transform-new-target": "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-object-super": "npm:^7.24.7"
+ "@babel/plugin-transform-optional-catch-binding": "npm:^7.24.7"
+ "@babel/plugin-transform-optional-chaining": "npm:^7.24.7"
+ "@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-property-literals": "npm:^7.24.7"
+ "@babel/plugin-transform-regenerator": "npm:^7.24.7"
+ "@babel/plugin-transform-reserved-words": "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-template-literals": "npm:^7.24.7"
+ "@babel/plugin-transform-typeof-symbol": "npm:^7.24.7"
+ "@babel/plugin-transform-unicode-escapes": "npm:^7.24.7"
+ "@babel/plugin-transform-unicode-property-regex": "npm:^7.24.7"
+ "@babel/plugin-transform-unicode-regex": "npm:^7.24.7"
+ "@babel/plugin-transform-unicode-sets-regex": "npm:^7.24.7"
"@babel/preset-modules": "npm:0.1.6-no-external-plugins"
babel-plugin-polyfill-corejs2: "npm:^0.4.10"
babel-plugin-polyfill-corejs3: "npm:^0.10.4"
@@ -2075,20 +2100,20 @@ __metadata:
semver: "npm:^6.3.1"
peerDependencies:
"@babel/core": ^7.0.0-0
- checksum: 10c0/72a79d0cd38cb26f143509dd0c58db34b5b1ae90116863f55a404f0eb06a64a3cdcb1abd0b6435fafe463bbf55b82ffcf56aedee91e8d37797bf53e4ae74c413
+ checksum: 10c0/c6714346f3ccc1271eaa90051c75b8bb57b20ef57408ab68740e2f3552693ae0ee5a4bcce3a00211d40e4947af1f7b8ab422066b953f0095461937fb72d11274
languageName: node
linkType: hard
"@babel/preset-flow@npm:^7.13.13, @babel/preset-flow@npm:^7.22.15":
- version: 7.22.15
- resolution: "@babel/preset-flow@npm:7.22.15"
+ version: 7.24.7
+ resolution: "@babel/preset-flow@npm:7.24.7"
dependencies:
- "@babel/helper-plugin-utils": "npm:^7.22.5"
- "@babel/helper-validator-option": "npm:^7.22.15"
- "@babel/plugin-transform-flow-strip-types": "npm:^7.22.5"
+ "@babel/helper-plugin-utils": "npm:^7.24.7"
+ "@babel/helper-validator-option": "npm:^7.24.7"
+ "@babel/plugin-transform-flow-strip-types": "npm:^7.24.7"
peerDependencies:
"@babel/core": ^7.0.0-0
- checksum: 10c0/7eef0c84ec1889d6c4f7a67d7d1a81703420eed123a8c23f25af148eead77907f0bd701f3e729fdb37d3ddb2a373bf43938b36a9ba17f546111ddb9521466b92
+ checksum: 10c0/2a99333b9aac17033cefe17fb9d8c41b20c4f2cd3eab34f56c20d7c1c528cc1cca7e6d909de92fc700739a505b43166c9de62423f8a30b484161ebdf9474e217
languageName: node
linkType: hard
@@ -2106,33 +2131,33 @@ __metadata:
linkType: hard
"@babel/preset-react@npm:^7.24.1":
- version: 7.24.1
- resolution: "@babel/preset-react@npm:7.24.1"
+ version: 7.24.7
+ resolution: "@babel/preset-react@npm:7.24.7"
dependencies:
- "@babel/helper-plugin-utils": "npm:^7.24.0"
- "@babel/helper-validator-option": "npm:^7.23.5"
- "@babel/plugin-transform-react-display-name": "npm:^7.24.1"
- "@babel/plugin-transform-react-jsx": "npm:^7.23.4"
- "@babel/plugin-transform-react-jsx-development": "npm:^7.22.5"
- "@babel/plugin-transform-react-pure-annotations": "npm:^7.24.1"
+ "@babel/helper-plugin-utils": "npm:^7.24.7"
+ "@babel/helper-validator-option": "npm:^7.24.7"
+ "@babel/plugin-transform-react-display-name": "npm:^7.24.7"
+ "@babel/plugin-transform-react-jsx": "npm:^7.24.7"
+ "@babel/plugin-transform-react-jsx-development": "npm:^7.24.7"
+ "@babel/plugin-transform-react-pure-annotations": "npm:^7.24.7"
peerDependencies:
"@babel/core": ^7.0.0-0
- checksum: 10c0/a842abc5a024ed68a0ce4c1244607d40165cb6f8cf1817ebda282e470f20302d81c6a61cb41c1a31aa6c4e99ce93df4dd9e998a8ded1417c25d7480f0e14103a
+ checksum: 10c0/9658b685b25cedaadd0b65c4e663fbc7f57394b5036ddb4c99b1a75b0711fb83292c1c625d605c05b73413fc7a6dc20e532627f6a39b6dc8d4e00415479b054c
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"
+ version: 7.24.7
+ resolution: "@babel/preset-typescript@npm:7.24.7"
dependencies:
- "@babel/helper-plugin-utils": "npm:^7.24.0"
- "@babel/helper-validator-option": "npm:^7.23.5"
- "@babel/plugin-syntax-jsx": "npm:^7.24.1"
- "@babel/plugin-transform-modules-commonjs": "npm:^7.24.1"
- "@babel/plugin-transform-typescript": "npm:^7.24.1"
+ "@babel/helper-plugin-utils": "npm:^7.24.7"
+ "@babel/helper-validator-option": "npm:^7.24.7"
+ "@babel/plugin-syntax-jsx": "npm:^7.24.7"
+ "@babel/plugin-transform-modules-commonjs": "npm:^7.24.7"
+ "@babel/plugin-transform-typescript": "npm:^7.24.7"
peerDependencies:
"@babel/core": ^7.0.0-0
- checksum: 10c0/0033dc6fbc898ed0d8017c83a2dd5e095c82909e2f83e48cf9f305e3e9287148758c179ad90f27912cf98ca68bfec3643c57c70c0ca34d3a6c50dc8243aef406
+ checksum: 10c0/986bc0978eedb4da33aba8e1e13a3426dd1829515313b7e8f4ba5d8c18aff1663b468939d471814e7acf4045d326ae6cff37239878d169ac3fe53a8fde71f8ee
languageName: node
linkType: hard
@@ -2196,11 +2221,11 @@ __metadata:
linkType: hard
"@babel/runtime@npm:^7.10.2, @babel/runtime@npm:^7.11.2, @babel/runtime@npm:^7.12.5, @babel/runtime@npm:^7.13.10, @babel/runtime@npm:^7.17.8, @babel/runtime@npm:^7.18.3, @babel/runtime@npm:^7.20.13, @babel/runtime@npm:^7.22.15, @babel/runtime@npm:^7.22.6, @babel/runtime@npm:^7.23.2, @babel/runtime@npm:^7.24.4, @babel/runtime@npm:^7.3.1, @babel/runtime@npm:^7.5.5, @babel/runtime@npm:^7.7.2, @babel/runtime@npm:^7.7.6, @babel/runtime@npm:^7.8.4, @babel/runtime@npm:^7.8.7, @babel/runtime@npm:^7.9.2":
- version: 7.24.4
- resolution: "@babel/runtime@npm:7.24.4"
+ version: 7.24.7
+ resolution: "@babel/runtime@npm:7.24.7"
dependencies:
regenerator-runtime: "npm:^0.14.0"
- checksum: 10c0/785aff96a3aa8ff97f90958e1e8a7b1d47f793b204b47c6455eaadc3f694f48c97cd5c0a921fe3596d818e71f18106610a164fb0f1c71fd68c622a58269d537c
+ checksum: 10c0/b6fa3ec61a53402f3c1d75f4d808f48b35e0dfae0ec8e2bb5c6fc79fb95935da75766e0ca534d0f1c84871f6ae0d2ebdd950727cfadb745a2cdbef13faef5513
languageName: node
linkType: hard
@@ -2213,43 +2238,43 @@ __metadata:
languageName: node
linkType: hard
-"@babel/template@npm:^7.22.15, @babel/template@npm:^7.23.9, @babel/template@npm:^7.24.0":
- version: 7.24.0
- resolution: "@babel/template@npm:7.24.0"
+"@babel/template@npm:^7.23.9, @babel/template@npm:^7.24.0, @babel/template@npm:^7.24.7":
+ version: 7.24.7
+ resolution: "@babel/template@npm:7.24.7"
dependencies:
- "@babel/code-frame": "npm:^7.23.5"
- "@babel/parser": "npm:^7.24.0"
- "@babel/types": "npm:^7.24.0"
- checksum: 10c0/9d3dd8d22fe1c36bc3bdef6118af1f4b030aaf6d7d2619f5da203efa818a2185d717523486c111de8d99a8649ddf4bbf6b2a7a64962d8411cf6a8fa89f010e54
+ "@babel/code-frame": "npm:^7.24.7"
+ "@babel/parser": "npm:^7.24.7"
+ "@babel/types": "npm:^7.24.7"
+ checksum: 10c0/95b0b3ee80fcef685b7f4426f5713a855ea2cd5ac4da829b213f8fb5afe48a2a14683c2ea04d446dbc7f711c33c5cd4a965ef34dcbe5bc387c9e966b67877ae3
languageName: node
linkType: hard
-"@babel/traverse@npm:^7.1.6, @babel/traverse@npm:^7.16.0, @babel/traverse@npm:^7.18.9, @babel/traverse@npm:^7.23.9, @babel/traverse@npm:^7.24.0, @babel/traverse@npm:^7.24.1, @babel/traverse@npm:^7.4.5":
- version: 7.24.1
- resolution: "@babel/traverse@npm:7.24.1"
+"@babel/traverse@npm:^7.1.6, @babel/traverse@npm:^7.16.0, @babel/traverse@npm:^7.18.9, @babel/traverse@npm:^7.23.9, @babel/traverse@npm:^7.24.0, @babel/traverse@npm:^7.24.1, @babel/traverse@npm:^7.24.7, @babel/traverse@npm:^7.4.5":
+ version: 7.24.7
+ resolution: "@babel/traverse@npm:7.24.7"
dependencies:
- "@babel/code-frame": "npm:^7.24.1"
- "@babel/generator": "npm:^7.24.1"
- "@babel/helper-environment-visitor": "npm:^7.22.20"
- "@babel/helper-function-name": "npm:^7.23.0"
- "@babel/helper-hoist-variables": "npm:^7.22.5"
- "@babel/helper-split-export-declaration": "npm:^7.22.6"
- "@babel/parser": "npm:^7.24.1"
- "@babel/types": "npm:^7.24.0"
+ "@babel/code-frame": "npm:^7.24.7"
+ "@babel/generator": "npm:^7.24.7"
+ "@babel/helper-environment-visitor": "npm:^7.24.7"
+ "@babel/helper-function-name": "npm:^7.24.7"
+ "@babel/helper-hoist-variables": "npm:^7.24.7"
+ "@babel/helper-split-export-declaration": "npm:^7.24.7"
+ "@babel/parser": "npm:^7.24.7"
+ "@babel/types": "npm:^7.24.7"
debug: "npm:^4.3.1"
globals: "npm:^11.1.0"
- checksum: 10c0/c087b918f6823776537ba246136c70e7ce0719fc05361ebcbfd16f4e6f2f6f1f8f4f9167f1d9b675f27d12074839605189cc9d689de20b89a85e7c140f23daab
+ checksum: 10c0/a5135e589c3f1972b8877805f50a084a04865ccb1d68e5e1f3b94a8841b3485da4142e33413d8fd76bc0e6444531d3adf1f59f359c11ffac452b743d835068ab
languageName: node
linkType: hard
-"@babel/types@npm:^7.0.0, @babel/types@npm:^7.11.5, @babel/types@npm:^7.18.9, @babel/types@npm:^7.2.0, @babel/types@npm:^7.20.7, @babel/types@npm:^7.21.4, @babel/types@npm:^7.22.15, @babel/types@npm:^7.22.19, @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.4.4, @babel/types@npm:^7.6.1, @babel/types@npm:^7.7.2, @babel/types@npm:^7.8.3, @babel/types@npm:^7.9.6":
- version: 7.24.0
- resolution: "@babel/types@npm:7.24.0"
+"@babel/types@npm:^7.0.0, @babel/types@npm:^7.11.5, @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.6, @babel/types@npm:^7.23.9, @babel/types@npm:^7.24.0, @babel/types@npm:^7.24.7, @babel/types@npm:^7.4.4, @babel/types@npm:^7.6.1, @babel/types@npm:^7.7.2, @babel/types@npm:^7.8.3, @babel/types@npm:^7.9.6":
+ version: 7.24.7
+ resolution: "@babel/types@npm:7.24.7"
dependencies:
- "@babel/helper-string-parser": "npm:^7.23.4"
- "@babel/helper-validator-identifier": "npm:^7.22.20"
+ "@babel/helper-string-parser": "npm:^7.24.7"
+ "@babel/helper-validator-identifier": "npm:^7.24.7"
to-fast-properties: "npm:^2.0.0"
- checksum: 10c0/777a0bb5dbe038ca4c905fdafb1cdb6bdd10fe9d63ce13eca0bd91909363cbad554a53dc1f902004b78c1dcbc742056f877f2c99eeedff647333b1fadf51235d
+ checksum: 10c0/d9ecbfc3eb2b05fb1e6eeea546836ac30d990f395ef3fe3f75ced777a222c3cfc4489492f72e0ce3d9a5a28860a1ce5f81e66b88cf5088909068b3ff4fab72c1
languageName: node
linkType: hard
@@ -2267,16 +2292,16 @@ __metadata:
languageName: node
linkType: hard
-"@chromatic-com/storybook@npm:^1.3.2":
- version: 1.3.2
- resolution: "@chromatic-com/storybook@npm:1.3.2"
+"@chromatic-com/storybook@npm:^1.6.1":
+ version: 1.6.1
+ resolution: "@chromatic-com/storybook@npm:1.6.1"
dependencies:
- chromatic: "npm:^11.3.0"
+ chromatic: "npm:^11.4.0"
filesize: "npm:^10.0.12"
jsonfile: "npm:^6.1.0"
react-confetti: "npm:^6.1.0"
strip-ansi: "npm:^7.1.0"
- checksum: 10c0/30f7d946e41d031d45991ea8cf2f42b64330a12ddb1330a5a0bfe9734511e36f0691f897b0075c41c4c9fa5de6382598e98179a5ac2f9139bd619fc46487bbeb
+ checksum: 10c0/411a2c9f44542c4940e6452846f1c2b71f4529640cefcf60396c1eb0a16cd2a4d27ba648523c73a7ca9b5b64f2a67b19159281add6730d0a237336a3856c8f37
languageName: node
linkType: hard
@@ -2574,163 +2599,170 @@ __metadata:
languageName: node
linkType: hard
-"@esbuild/aix-ppc64@npm:0.21.5":
- version: 0.21.5
- resolution: "@esbuild/aix-ppc64@npm:0.21.5"
+"@esbuild/aix-ppc64@npm:0.23.0":
+ version: 0.23.0
+ resolution: "@esbuild/aix-ppc64@npm:0.23.0"
conditions: os=aix & cpu=ppc64
languageName: node
linkType: hard
-"@esbuild/android-arm64@npm:0.21.5":
- version: 0.21.5
- resolution: "@esbuild/android-arm64@npm:0.21.5"
+"@esbuild/android-arm64@npm:0.23.0":
+ version: 0.23.0
+ resolution: "@esbuild/android-arm64@npm:0.23.0"
conditions: os=android & cpu=arm64
languageName: node
linkType: hard
-"@esbuild/android-arm@npm:0.21.5":
- version: 0.21.5
- resolution: "@esbuild/android-arm@npm:0.21.5"
+"@esbuild/android-arm@npm:0.23.0":
+ version: 0.23.0
+ resolution: "@esbuild/android-arm@npm:0.23.0"
conditions: os=android & cpu=arm
languageName: node
linkType: hard
-"@esbuild/android-x64@npm:0.21.5":
- version: 0.21.5
- resolution: "@esbuild/android-x64@npm:0.21.5"
+"@esbuild/android-x64@npm:0.23.0":
+ version: 0.23.0
+ resolution: "@esbuild/android-x64@npm:0.23.0"
conditions: os=android & cpu=x64
languageName: node
linkType: hard
-"@esbuild/darwin-arm64@npm:0.21.5":
- version: 0.21.5
- resolution: "@esbuild/darwin-arm64@npm:0.21.5"
+"@esbuild/darwin-arm64@npm:0.23.0":
+ version: 0.23.0
+ resolution: "@esbuild/darwin-arm64@npm:0.23.0"
conditions: os=darwin & cpu=arm64
languageName: node
linkType: hard
-"@esbuild/darwin-x64@npm:0.21.5":
- version: 0.21.5
- resolution: "@esbuild/darwin-x64@npm:0.21.5"
+"@esbuild/darwin-x64@npm:0.23.0":
+ version: 0.23.0
+ resolution: "@esbuild/darwin-x64@npm:0.23.0"
conditions: os=darwin & cpu=x64
languageName: node
linkType: hard
-"@esbuild/freebsd-arm64@npm:0.21.5":
- version: 0.21.5
- resolution: "@esbuild/freebsd-arm64@npm:0.21.5"
+"@esbuild/freebsd-arm64@npm:0.23.0":
+ version: 0.23.0
+ resolution: "@esbuild/freebsd-arm64@npm:0.23.0"
conditions: os=freebsd & cpu=arm64
languageName: node
linkType: hard
-"@esbuild/freebsd-x64@npm:0.21.5":
- version: 0.21.5
- resolution: "@esbuild/freebsd-x64@npm:0.21.5"
+"@esbuild/freebsd-x64@npm:0.23.0":
+ version: 0.23.0
+ resolution: "@esbuild/freebsd-x64@npm:0.23.0"
conditions: os=freebsd & cpu=x64
languageName: node
linkType: hard
-"@esbuild/linux-arm64@npm:0.21.5":
- version: 0.21.5
- resolution: "@esbuild/linux-arm64@npm:0.21.5"
+"@esbuild/linux-arm64@npm:0.23.0":
+ version: 0.23.0
+ resolution: "@esbuild/linux-arm64@npm:0.23.0"
conditions: os=linux & cpu=arm64
languageName: node
linkType: hard
-"@esbuild/linux-arm@npm:0.21.5":
- version: 0.21.5
- resolution: "@esbuild/linux-arm@npm:0.21.5"
+"@esbuild/linux-arm@npm:0.23.0":
+ version: 0.23.0
+ resolution: "@esbuild/linux-arm@npm:0.23.0"
conditions: os=linux & cpu=arm
languageName: node
linkType: hard
-"@esbuild/linux-ia32@npm:0.21.5":
- version: 0.21.5
- resolution: "@esbuild/linux-ia32@npm:0.21.5"
+"@esbuild/linux-ia32@npm:0.23.0":
+ version: 0.23.0
+ resolution: "@esbuild/linux-ia32@npm:0.23.0"
conditions: os=linux & cpu=ia32
languageName: node
linkType: hard
-"@esbuild/linux-loong64@npm:0.21.5":
- version: 0.21.5
- resolution: "@esbuild/linux-loong64@npm:0.21.5"
+"@esbuild/linux-loong64@npm:0.23.0":
+ version: 0.23.0
+ resolution: "@esbuild/linux-loong64@npm:0.23.0"
conditions: os=linux & cpu=loong64
languageName: node
linkType: hard
-"@esbuild/linux-mips64el@npm:0.21.5":
- version: 0.21.5
- resolution: "@esbuild/linux-mips64el@npm:0.21.5"
+"@esbuild/linux-mips64el@npm:0.23.0":
+ version: 0.23.0
+ resolution: "@esbuild/linux-mips64el@npm:0.23.0"
conditions: os=linux & cpu=mips64el
languageName: node
linkType: hard
-"@esbuild/linux-ppc64@npm:0.21.5":
- version: 0.21.5
- resolution: "@esbuild/linux-ppc64@npm:0.21.5"
+"@esbuild/linux-ppc64@npm:0.23.0":
+ version: 0.23.0
+ resolution: "@esbuild/linux-ppc64@npm:0.23.0"
conditions: os=linux & cpu=ppc64
languageName: node
linkType: hard
-"@esbuild/linux-riscv64@npm:0.21.5":
- version: 0.21.5
- resolution: "@esbuild/linux-riscv64@npm:0.21.5"
+"@esbuild/linux-riscv64@npm:0.23.0":
+ version: 0.23.0
+ resolution: "@esbuild/linux-riscv64@npm:0.23.0"
conditions: os=linux & cpu=riscv64
languageName: node
linkType: hard
-"@esbuild/linux-s390x@npm:0.21.5":
- version: 0.21.5
- resolution: "@esbuild/linux-s390x@npm:0.21.5"
+"@esbuild/linux-s390x@npm:0.23.0":
+ version: 0.23.0
+ resolution: "@esbuild/linux-s390x@npm:0.23.0"
conditions: os=linux & cpu=s390x
languageName: node
linkType: hard
-"@esbuild/linux-x64@npm:0.21.5":
- version: 0.21.5
- resolution: "@esbuild/linux-x64@npm:0.21.5"
+"@esbuild/linux-x64@npm:0.23.0":
+ version: 0.23.0
+ resolution: "@esbuild/linux-x64@npm:0.23.0"
conditions: os=linux & cpu=x64
languageName: node
linkType: hard
-"@esbuild/netbsd-x64@npm:0.21.5":
- version: 0.21.5
- resolution: "@esbuild/netbsd-x64@npm:0.21.5"
+"@esbuild/netbsd-x64@npm:0.23.0":
+ version: 0.23.0
+ resolution: "@esbuild/netbsd-x64@npm:0.23.0"
conditions: os=netbsd & cpu=x64
languageName: node
linkType: hard
-"@esbuild/openbsd-x64@npm:0.21.5":
- version: 0.21.5
- resolution: "@esbuild/openbsd-x64@npm:0.21.5"
+"@esbuild/openbsd-arm64@npm:0.23.0":
+ version: 0.23.0
+ resolution: "@esbuild/openbsd-arm64@npm:0.23.0"
+ conditions: os=openbsd & cpu=arm64
+ languageName: node
+ linkType: hard
+
+"@esbuild/openbsd-x64@npm:0.23.0":
+ version: 0.23.0
+ resolution: "@esbuild/openbsd-x64@npm:0.23.0"
conditions: os=openbsd & cpu=x64
languageName: node
linkType: hard
-"@esbuild/sunos-x64@npm:0.21.5":
- version: 0.21.5
- resolution: "@esbuild/sunos-x64@npm:0.21.5"
+"@esbuild/sunos-x64@npm:0.23.0":
+ version: 0.23.0
+ resolution: "@esbuild/sunos-x64@npm:0.23.0"
conditions: os=sunos & cpu=x64
languageName: node
linkType: hard
-"@esbuild/win32-arm64@npm:0.21.5":
- version: 0.21.5
- resolution: "@esbuild/win32-arm64@npm:0.21.5"
+"@esbuild/win32-arm64@npm:0.23.0":
+ version: 0.23.0
+ resolution: "@esbuild/win32-arm64@npm:0.23.0"
conditions: os=win32 & cpu=arm64
languageName: node
linkType: hard
-"@esbuild/win32-ia32@npm:0.21.5":
- version: 0.21.5
- resolution: "@esbuild/win32-ia32@npm:0.21.5"
+"@esbuild/win32-ia32@npm:0.23.0":
+ version: 0.23.0
+ resolution: "@esbuild/win32-ia32@npm:0.23.0"
conditions: os=win32 & cpu=ia32
languageName: node
linkType: hard
-"@esbuild/win32-x64@npm:0.21.5":
- version: 0.21.5
- resolution: "@esbuild/win32-x64@npm:0.21.5"
+"@esbuild/win32-x64@npm:0.23.0":
+ version: 0.23.0
+ resolution: "@esbuild/win32-x64@npm:0.23.0"
conditions: os=win32 & cpu=x64
languageName: node
linkType: hard
@@ -2843,41 +2875,34 @@ __metadata:
languageName: node
linkType: hard
-"@gitbeaker/core@npm:^35.8.1":
- version: 35.8.1
- resolution: "@gitbeaker/core@npm:35.8.1"
+"@gitbeaker/core@npm:^38.12.1":
+ version: 38.12.1
+ resolution: "@gitbeaker/core@npm:38.12.1"
dependencies:
- "@gitbeaker/requester-utils": "npm:^35.8.1"
- form-data: "npm:^4.0.0"
- li: "npm:^1.3.0"
- mime: "npm:^3.0.0"
- query-string: "npm:^7.0.0"
+ "@gitbeaker/requester-utils": "npm:^38.12.1"
+ qs: "npm:^6.11.1"
xcase: "npm:^2.0.1"
- checksum: 10c0/5c23536dc83d5b4fa86c4efdae54cb2deba745e2f1f54e175c77f1883b218663e808b8fda253c81659aec791c254eb8b98c1e576f94f9c0f1d8f3c01976ae370
+ checksum: 10c0/9cc6d6e25c4ca48a86ef55873b6589323d41b8c5dd2a130abf08f213ae6f80a2caab975d1efd7f83d382a78584f218e48ec846c4b29194a97ad51768d7a4af80
languageName: node
linkType: hard
-"@gitbeaker/node@npm:^35.8.1":
- version: 35.8.1
- resolution: "@gitbeaker/node@npm:35.8.1"
+"@gitbeaker/requester-utils@npm:^38.12.1":
+ version: 38.12.1
+ resolution: "@gitbeaker/requester-utils@npm:38.12.1"
dependencies:
- "@gitbeaker/core": "npm:^35.8.1"
- "@gitbeaker/requester-utils": "npm:^35.8.1"
- delay: "npm:^5.0.0"
- got: "npm:^11.8.3"
+ qs: "npm:^6.11.1"
xcase: "npm:^2.0.1"
- checksum: 10c0/387f5d7e31535454a66e627a2e830ceaa7954ac3de66882cdcc52a19d43f6b4221dc9d847baf39a7d08dda235a8f03c729a71efb32f5b84f246fd14d031b98cb
+ checksum: 10c0/b253c91726f19d9e73d872c0a1a5c0a3e890ca388c3a23a8e694996f5988e93d261ce580fc0dc891cff2c6d7dde7c35ac16bd93331a68106ac6a471fe437d1e6
languageName: node
linkType: hard
-"@gitbeaker/requester-utils@npm:^35.8.1":
- version: 35.8.1
- resolution: "@gitbeaker/requester-utils@npm:35.8.1"
+"@gitbeaker/rest@npm:^38.0.0":
+ version: 38.12.1
+ resolution: "@gitbeaker/rest@npm:38.12.1"
dependencies:
- form-data: "npm:^4.0.0"
- qs: "npm:^6.10.1"
- xcase: "npm:^2.0.1"
- checksum: 10c0/4178f7aa052cccd6caf3b2c4d63c9e04ab082ced8d32a7b07c33df6af42707769f8cabfb09b63f46e68e7e20fa0bc02757053adb8f3f79e6e5547b4cb4f119ca
+ "@gitbeaker/core": "npm:^38.12.1"
+ "@gitbeaker/requester-utils": "npm:^38.12.1"
+ checksum: 10c0/a4ba82ff5eb941a8d9ec7260329955b06e20aa12aaa814fede09c1fdeca00affae1513b5ccf0a24b69a5fae25b4a95f5fd1cc77918913ed1aa7ca887185362b7
languageName: node
linkType: hard
@@ -4472,17 +4497,15 @@ __metadata:
linkType: hard
"@pmmmwh/react-refresh-webpack-plugin@npm:^0.5.1, @pmmmwh/react-refresh-webpack-plugin@npm:^0.5.11":
- version: 0.5.11
- resolution: "@pmmmwh/react-refresh-webpack-plugin@npm:0.5.11"
+ version: 0.5.15
+ resolution: "@pmmmwh/react-refresh-webpack-plugin@npm:0.5.15"
dependencies:
- ansi-html-community: "npm:^0.0.8"
- common-path-prefix: "npm:^3.0.0"
+ ansi-html: "npm:^0.0.9"
core-js-pure: "npm:^3.23.3"
error-stack-parser: "npm:^2.0.6"
- find-up: "npm:^5.0.0"
html-entities: "npm:^2.1.0"
loader-utils: "npm:^2.0.4"
- schema-utils: "npm:^3.0.0"
+ schema-utils: "npm:^4.2.0"
source-map: "npm:^0.7.3"
peerDependencies:
"@types/webpack": 4.x || 5.x
@@ -4490,7 +4513,7 @@ __metadata:
sockjs-client: ^1.4.0
type-fest: ">=0.17.0 <5.0.0"
webpack: ">=4.43.0 <6.0.0"
- webpack-dev-server: 3.x || 4.x
+ webpack-dev-server: 3.x || 4.x || 5.x
webpack-hot-middleware: 2.x
webpack-plugin-serve: 0.x || 1.x
peerDependenciesMeta:
@@ -4506,7 +4529,7 @@ __metadata:
optional: true
webpack-plugin-serve:
optional: true
- checksum: 10c0/a9c8468417a14a23339e313cff6ddb8029e0637748973070e61d83a2534620b3492b9a42ecf9eb9d63cb709f53c17fe814bc7dd68d64c300db338e9fd7287bc4
+ checksum: 10c0/ba310aa4d53070f59c8a374d1d256c5965c044c0c3fb1ff6b55353fb5e86de08a490a7bd59a31f0d4951f8f29f81864c7df224fe1342543a95d048b7413ff171
languageName: node
linkType: hard
@@ -5061,13 +5084,6 @@ __metadata:
languageName: node
linkType: hard
-"@sindresorhus/is@npm:^4.0.0":
- version: 4.6.0
- resolution: "@sindresorhus/is@npm:4.6.0"
- checksum: 10c0/33b6fb1d0834ec8dd7689ddc0e2781c2bfd8b9c4e4bacbcb14111e0ae00621f2c264b8a7d36541799d74888b5dccdf422a891a5cb5a709ace26325eedc81e22e
- languageName: node
- linkType: hard
-
"@sindresorhus/merge-streams@npm:^2.1.0":
version: 2.3.0
resolution: "@sindresorhus/merge-streams@npm:2.3.0"
@@ -5236,6 +5252,7 @@ __metadata:
"@storybook/global": "npm:^5.0.0"
"@storybook/icons": "npm:^1.2.5"
"@storybook/instrumenter": "workspace:*"
+ "@storybook/test": "workspace:*"
"@types/node": "npm:^18.0.0"
formik: "npm:^2.2.9"
polished: "npm:^4.2.2"
@@ -5496,6 +5513,7 @@ __metadata:
"@storybook/csf": "npm:0.1.11"
"@storybook/global": "npm:^5.0.0"
"@storybook/icons": "npm:^1.2.5"
+ "@storybook/react": "workspace:*"
"@storybook/test": "workspace:*"
"@types/color-convert": "npm:^2.0.0"
"@types/lodash": "npm:^4.14.167"
@@ -5648,7 +5666,7 @@ __metadata:
"@storybook/csf": "npm:0.1.11"
"@types/cross-spawn": "npm:^6.0.2"
"@types/jscodeshift": "npm:^0.11.10"
- ansi-regex: "npm:^5.0.1"
+ ansi-regex: "npm:^6.0.1"
cross-spawn: "npm:^7.0.3"
globby: "npm:^14.0.1"
jscodeshift: "npm:^0.15.1"
@@ -5792,7 +5810,7 @@ __metadata:
diff: "npm:^5.2.0"
downshift: "npm:^9.0.4"
ejs: "npm:^3.1.10"
- esbuild: "npm:^0.18.0 || ^0.19.0 || ^0.20.0"
+ esbuild: "npm:^0.18.0 || ^0.19.0 || ^0.20.0 || ^0.21.0 || ^0.22.0 || ^0.23.0"
esbuild-plugin-alias: "npm:^0.2.1"
esbuild-register: "npm:^3.5.0"
execa: "npm:^8.0.1"
@@ -6296,7 +6314,7 @@ __metadata:
ts-loader: "npm:^9.2.8"
typescript: "npm:^5.3.2"
vue: "npm:^3.2.33"
- vue-docgen-api: "npm:^4.46.0"
+ vue-docgen-api: "npm:^4.75.1"
vue-docgen-loader: "npm:^1.5.1"
vue-loader: "npm:^16.0.0"
webpack: "npm:5"
@@ -6400,7 +6418,6 @@ __metadata:
version: 0.0.0-use.local
resolution: "@storybook/react@workspace:renderers/react"
dependencies:
- "@storybook/blocks": "workspace:*"
"@storybook/global": "npm:^5.0.0"
"@storybook/react-dom-shim": "workspace:*"
"@storybook/test": "workspace:*"
@@ -6440,7 +6457,7 @@ __metadata:
version: 0.0.0-use.local
resolution: "@storybook/root@workspace:."
dependencies:
- "@chromatic-com/storybook": "npm:^1.3.2"
+ "@chromatic-com/storybook": "npm:^1.6.1"
"@happy-dom/global-registrator": "npm:^14.12.0"
"@nx/eslint": "npm:18.0.6"
"@nx/vite": "npm:18.0.6"
@@ -6529,9 +6546,9 @@ __metadata:
"@vitejs/plugin-react": "npm:^3.0.1"
"@vitest/coverage-v8": "npm:^1.2.2"
cross-env: "npm:^7.0.3"
- danger: "npm:^11.2.6"
- esbuild: "npm:^0.18.0 || ^0.19.0 || ^0.20.0 || ^0.21.0"
- esbuild-loader: "npm:^3.0.0"
+ danger: "npm:^12.3.3"
+ esbuild: "npm:^0.18.0 || ^0.19.0 || ^0.20.0 || ^0.21.0 || ^0.22.0 || ^0.23.0"
+ esbuild-loader: "npm:^4.2.0"
esbuild-plugin-alias: "npm:^0.2.1"
eslint: "npm:^8.56.0"
eslint-import-resolver-typescript: "npm:^3.6.1"
@@ -6928,15 +6945,6 @@ __metadata:
languageName: node
linkType: hard
-"@szmarczak/http-timer@npm:^4.0.5":
- version: 4.0.6
- resolution: "@szmarczak/http-timer@npm:4.0.6"
- dependencies:
- defer-to-connect: "npm:^2.0.0"
- checksum: 10c0/73946918c025339db68b09abd91fa3001e87fc749c619d2e9c2003a663039d4c3cb89836c98a96598b3d47dec2481284ba85355392644911f5ecd2336536697f
- languageName: node
- linkType: hard
-
"@tanstack/react-virtual@npm:^3.3.0":
version: 3.3.0
resolution: "@tanstack/react-virtual@npm:3.3.0"
@@ -7208,9 +7216,9 @@ __metadata:
linkType: hard
"@types/babel__preset-env@npm:^7":
- version: 7.9.6
- resolution: "@types/babel__preset-env@npm:7.9.6"
- checksum: 10c0/639bcf58094530eb8509b302de9c42fc1a9e44e236bcbfd218e987aba7a2c15052c3a1cac7ca7f260255e74beb3b489ff877b9870f8587394457cd3aa9f64934
+ version: 7.9.7
+ resolution: "@types/babel__preset-env@npm:7.9.7"
+ checksum: 10c0/e1da078fee75841af512c7084e66f8a2b9136d72185d72c85c6fb41697358d330d195896d7d22834fca92fad1f16a8c0fb6269e890f9e6842c9a9972313b7baa
languageName: node
linkType: hard
@@ -7252,18 +7260,6 @@ __metadata:
languageName: node
linkType: hard
-"@types/cacheable-request@npm:^6.0.1":
- version: 6.0.3
- resolution: "@types/cacheable-request@npm:6.0.3"
- dependencies:
- "@types/http-cache-semantics": "npm:*"
- "@types/keyv": "npm:^3.1.4"
- "@types/node": "npm:*"
- "@types/responselike": "npm:^1.0.0"
- checksum: 10c0/10816a88e4e5b144d43c1d15a81003f86d649776c7f410c9b5e6579d0ad9d4ca71c541962fb403077388b446e41af7ae38d313e46692144985f006ac5e11fa03
- languageName: node
- linkType: hard
-
"@types/color-convert@npm:^2.0.0":
version: 2.0.3
resolution: "@types/color-convert@npm:2.0.3"
@@ -7562,13 +7558,6 @@ __metadata:
languageName: node
linkType: hard
-"@types/http-cache-semantics@npm:*":
- version: 4.0.2
- resolution: "@types/http-cache-semantics@npm:4.0.2"
- checksum: 10c0/975258beba5a6ce446b67f9bf905385d8d44cecad54d839208e86018b0fe4a517c62ec7a169ec64ed454363628def75446fa09d99755f3797f213b596477fe97
- languageName: node
- linkType: hard
-
"@types/http-errors@npm:*":
version: 2.0.2
resolution: "@types/http-errors@npm:2.0.2"
@@ -7657,15 +7646,6 @@ __metadata:
languageName: node
linkType: hard
-"@types/keyv@npm:^3.1.4":
- version: 3.1.4
- resolution: "@types/keyv@npm:3.1.4"
- dependencies:
- "@types/node": "npm:*"
- checksum: 10c0/ff8f54fc49621210291f815fe5b15d809fd7d032941b3180743440bd507ecdf08b9e844625fa346af568c84bf34114eb378dcdc3e921a08ba1e2a08d7e3c809c
- languageName: node
- linkType: hard
-
"@types/loader-utils@npm:^2.0.5":
version: 2.0.6
resolution: "@types/loader-utils@npm:2.0.6"
@@ -7834,9 +7814,9 @@ __metadata:
linkType: hard
"@types/qs@npm:*, @types/qs@npm:^6":
- version: 6.9.10
- resolution: "@types/qs@npm:6.9.10"
- checksum: 10c0/6be12e5f062d1b41eb037d59bf9cb65bc9410cedd5e6da832dfd7c8e2b3f4c91e81c9b90b51811140770e5052c6c4e8361181bd9437ddcd4515dc128b7c00353
+ version: 6.9.15
+ resolution: "@types/qs@npm:6.9.15"
+ checksum: 10c0/49c5ff75ca3adb18a1939310042d273c9fc55920861bd8e5100c8a923b3cda90d759e1a95e18334092da1c8f7b820084687770c83a1ccef04fb2c6908117c823
languageName: node
linkType: hard
@@ -7911,15 +7891,6 @@ __metadata:
languageName: node
linkType: hard
-"@types/responselike@npm:^1.0.0":
- version: 1.0.1
- resolution: "@types/responselike@npm:1.0.1"
- dependencies:
- "@types/node": "npm:*"
- checksum: 10c0/f49d4765498d64e81fdff91267575caef0b364538994512605323b4ef74297f6ac5c61658713e1e1cc6d3951f6a5bcd436fcdec79c5f9d5e72c6b3f700b6f997
- languageName: node
- linkType: hard
-
"@types/retry@npm:0.12.0":
version: 0.12.0
resolution: "@types/retry@npm:0.12.0"
@@ -8012,9 +7983,9 @@ __metadata:
linkType: hard
"@types/tapable@npm:^1":
- version: 1.0.9
- resolution: "@types/tapable@npm:1.0.9"
- checksum: 10c0/51e7a55432c3abf71ae5e13907eb01a576efdf66ddfcd4f2a765436e684e182df527885980d4f710250cd61304a61f7fe9d447b33fef8db1fa434a395c85933d
+ version: 1.0.12
+ resolution: "@types/tapable@npm:1.0.12"
+ checksum: 10c0/d6a080f5839b323eb96dd5b65a6c3161c1297d8c2433eb52437912d1c3df54e38fce12ce7a57650f6453d96942298bd0935436e2501d09e407b7f41634483131
languageName: node
linkType: hard
@@ -8065,9 +8036,9 @@ __metadata:
linkType: hard
"@types/unist@npm:^2, @types/unist@npm:^2.0.0":
- version: 2.0.8
- resolution: "@types/unist@npm:2.0.8"
- checksum: 10c0/2c4685d5258b4f543677d20dce0d72b8235e70b6c859af24fcf445f92dac98ec8a1faa0cfb43307466561fcd9dbd2534a4860000944401ac3314a685b5efe3d7
+ version: 2.0.10
+ resolution: "@types/unist@npm:2.0.10"
+ checksum: 10c0/5f247dc2229944355209ad5c8e83cfe29419fa7f0a6d557421b1985a1500444719cc9efcc42c652b55aab63c931813c88033e0202c1ac684bcd4829d66e44731
languageName: node
linkType: hard
@@ -8086,9 +8057,9 @@ __metadata:
linkType: hard
"@types/webpack-env@npm:^1.16.0, @types/webpack-env@npm:^1.18.0":
- version: 1.18.4
- resolution: "@types/webpack-env@npm:1.18.4"
- checksum: 10c0/3fa77dbff0ed71685404576b0a1cf74587567fe2ee1cfd11d56d6eefcab7a61e4c9ead0eced264e289d2cf0fc74296dbd55ed6c95774fe0fd6264d156c5a59f0
+ version: 1.18.5
+ resolution: "@types/webpack-env@npm:1.18.5"
+ checksum: 10c0/b9e4876e8c7cae419896249f9ed795db283c008fe1d38efa679cbbf05194fc2eea2a5bfb4ff4393d109e3a9895416dadf5f3ddd5c22931b678062230f860454e
languageName: node
linkType: hard
@@ -8115,8 +8086,8 @@ __metadata:
linkType: hard
"@types/webpack@npm:^4":
- version: 4.41.34
- resolution: "@types/webpack@npm:4.41.34"
+ version: 4.41.38
+ resolution: "@types/webpack@npm:4.41.38"
dependencies:
"@types/node": "npm:*"
"@types/tapable": "npm:^1"
@@ -8124,7 +8095,7 @@ __metadata:
"@types/webpack-sources": "npm:*"
anymatch: "npm:^3.0.0"
source-map: "npm:^0.6.0"
- checksum: 10c0/630ebd822e7ee85b7118d1c095370709ce493831365f7fd750bea88ac4726ef52df33cc25261922526e45b354c9fdb3edfabc7738d5b9ec18416fd502cda3838
+ checksum: 10c0/5a0a7465d45a0e7701a8c863e88c6cba7660b37e4aeab851c71baf505dbab2e178be1cac82488c2e7d0ea11fb703ceddb53476daec3ec9a004e2fc1554233483
languageName: node
linkType: hard
@@ -8428,12 +8399,12 @@ __metadata:
linkType: hard
"@vitejs/plugin-vue@npm:^4.4.0":
- version: 4.5.2
- resolution: "@vitejs/plugin-vue@npm:4.5.2"
+ version: 4.6.2
+ resolution: "@vitejs/plugin-vue@npm:4.6.2"
peerDependencies:
vite: ^4.0.0 || ^5.0.0
vue: ^3.2.25
- checksum: 10c0/dd024b9ee2eda3174e197bda2b42df30b594d1a7f50d20b4b0de01c5a130bd99b84452e8a8d597ade50f89106025346a56f7abbf63c560e82fe97223589d2514
+ checksum: 10c0/8a8eb974936e4f0c7a66924240d122cd3a61af34498d7260f5920cf7a44ef4ef60e025a3f5d29df88e671ba32d5999c0fe1bc11d46bd838f51aa3a37a8f272c5
languageName: node
linkType: hard
@@ -9271,11 +9242,11 @@ __metadata:
linkType: hard
"acorn@npm:^8.0.0, acorn@npm:^8.10.0, acorn@npm:^8.11.2, acorn@npm:^8.11.3, acorn@npm:^8.4.1, acorn@npm:^8.6.0, acorn@npm:^8.7.1, acorn@npm:^8.8.2, acorn@npm:^8.9.0":
- version: 8.11.3
- resolution: "acorn@npm:8.11.3"
+ version: 8.12.1
+ resolution: "acorn@npm:8.12.1"
bin:
acorn: bin/acorn
- checksum: 10c0/3ff155f8812e4a746fee8ecff1f227d527c4c45655bb1fad6347c3cb58e46190598217551b1500f18542d2bbe5c87120cb6927f5a074a59166fbdd9468f0a299
+ checksum: 10c0/51fb26cd678f914e13287e886da2d7021f8c2bc0ccc95e03d3e0447ee278dd3b40b9c57dc222acd5881adcf26f3edc40901a4953403232129e3876793cd17386
languageName: node
linkType: hard
@@ -9451,6 +9422,15 @@ __metadata:
languageName: node
linkType: hard
+"ansi-html@npm:^0.0.9":
+ version: 0.0.9
+ resolution: "ansi-html@npm:0.0.9"
+ bin:
+ ansi-html: bin/ansi-html
+ checksum: 10c0/4a5de9802fb50193e32b51a9ea48dc0d7e4436b860cb819d7110c62f2bfb1410288e1a2f9a848269f5eab8f903797a7f0309fe4c552f92a92b61a5b759ed52bd
+ languageName: node
+ linkType: hard
+
"ansi-regex@npm:^5.0.0, ansi-regex@npm:^5.0.1":
version: 5.0.1
resolution: "ansi-regex@npm:5.0.1"
@@ -9662,15 +9642,16 @@ __metadata:
linkType: hard
"array-includes@npm:^3.1.6, array-includes@npm:^3.1.7":
- version: 3.1.7
- resolution: "array-includes@npm:3.1.7"
+ version: 3.1.8
+ resolution: "array-includes@npm:3.1.8"
dependencies:
- call-bind: "npm:^1.0.2"
- define-properties: "npm:^1.2.0"
- es-abstract: "npm:^1.22.1"
- get-intrinsic: "npm:^1.2.1"
+ call-bind: "npm:^1.0.7"
+ define-properties: "npm:^1.2.1"
+ es-abstract: "npm:^1.23.2"
+ es-object-atoms: "npm:^1.0.0"
+ get-intrinsic: "npm:^1.2.4"
is-string: "npm:^1.0.7"
- checksum: 10c0/692907bd7f19d06dc58ccb761f34b58f5dc0b437d2b47a8fe42a1501849a5cf5c27aed3d521a9702667827c2c85a7e75df00a402c438094d87fc43f39ebf9b2b
+ checksum: 10c0/5b1004d203e85873b96ddc493f090c9672fd6c80d7a60b798da8a14bff8a670ff95db5aafc9abc14a211943f05220dacf8ea17638ae0af1a6a47b8c0b48ce370
languageName: node
linkType: hard
@@ -9961,7 +9942,7 @@ __metadata:
languageName: node
linkType: hard
-"available-typed-arrays@npm:^1.0.6, available-typed-arrays@npm:^1.0.7":
+"available-typed-arrays@npm:^1.0.7":
version: 1.0.7
resolution: "available-typed-arrays@npm:1.0.7"
dependencies:
@@ -10488,12 +10469,12 @@ __metadata:
languageName: node
linkType: hard
-"braces@npm:^3.0.2, braces@npm:~3.0.2":
- version: 3.0.2
- resolution: "braces@npm:3.0.2"
+"braces@npm:^3.0.2, braces@npm:^3.0.3, braces@npm:~3.0.2":
+ version: 3.0.3
+ resolution: "braces@npm:3.0.3"
dependencies:
- fill-range: "npm:^7.0.1"
- checksum: 10c0/321b4d675791479293264019156ca322163f02dc06e3c4cab33bb15cd43d80b51efef69b0930cfde3acd63d126ebca24cd0544fa6f261e093a0fb41ab9dda381
+ fill-range: "npm:^7.1.1"
+ checksum: 10c0/7c6dfd30c338d2997ba77500539227b9d1f85e388a5f43220865201e407e076783d0881f2d297b9f80951b4c957fcf0b51c1d2d24227631643c3f7c284b0aa04
languageName: node
linkType: hard
@@ -10803,16 +10784,16 @@ __metadata:
linkType: hard
"browserslist@npm:^4.21.10, browserslist@npm:^4.21.5, browserslist@npm:^4.22.2, browserslist@npm:^4.23.0":
- version: 4.23.0
- resolution: "browserslist@npm:4.23.0"
+ version: 4.23.2
+ resolution: "browserslist@npm:4.23.2"
dependencies:
- caniuse-lite: "npm:^1.0.30001587"
- electron-to-chromium: "npm:^1.4.668"
+ caniuse-lite: "npm:^1.0.30001640"
+ electron-to-chromium: "npm:^1.4.820"
node-releases: "npm:^2.0.14"
- update-browserslist-db: "npm:^1.0.13"
+ update-browserslist-db: "npm:^1.1.0"
bin:
browserslist: cli.js
- checksum: 10c0/8e9cc154529062128d02a7af4d8adeead83ca1df8cd9ee65a88e2161039f3d68a4d40fea7353cab6bae4c16182dec2fdd9a1cf7dc2a2935498cee1af0e998943
+ checksum: 10c0/0217d23c69ed61cdd2530c7019bf7c822cd74c51f8baab18dd62457fed3129f52499f8d3a6f809ae1fb7bb3050aa70caa9a529cc36c7478427966dbf429723a5
languageName: node
linkType: hard
@@ -11015,28 +10996,6 @@ __metadata:
languageName: node
linkType: hard
-"cacheable-lookup@npm:^5.0.3":
- version: 5.0.4
- resolution: "cacheable-lookup@npm:5.0.4"
- checksum: 10c0/a6547fb4954b318aa831cbdd2f7b376824bc784fb1fa67610e4147099e3074726072d9af89f12efb69121415a0e1f2918a8ddd4aafcbcf4e91fbeef4a59cd42c
- languageName: node
- linkType: hard
-
-"cacheable-request@npm:^7.0.2":
- version: 7.0.4
- resolution: "cacheable-request@npm:7.0.4"
- dependencies:
- clone-response: "npm:^1.0.2"
- get-stream: "npm:^5.1.0"
- http-cache-semantics: "npm:^4.0.0"
- keyv: "npm:^4.0.0"
- lowercase-keys: "npm:^2.0.0"
- normalize-url: "npm:^6.0.1"
- responselike: "npm:^2.0.0"
- checksum: 10c0/0834a7d17ae71a177bc34eab06de112a43f9b5ad05ebe929bec983d890a7d9f2bc5f1aa8bb67ea2b65e07a3bc74bea35fa62dd36dbac52876afe36fdcf83da41
- languageName: node
- linkType: hard
-
"calculate-cache-key-for-tree@npm:^2.0.0":
version: 2.0.0
resolution: "calculate-cache-key-for-tree@npm:2.0.0"
@@ -11108,10 +11067,10 @@ __metadata:
languageName: node
linkType: hard
-"caniuse-lite@npm:^1.0.30001579, caniuse-lite@npm:^1.0.30001587, caniuse-lite@npm:^1.0.30001591":
- version: 1.0.30001598
- resolution: "caniuse-lite@npm:1.0.30001598"
- checksum: 10c0/7d4a1eecfe9e26a4ee5414dbcbf46dd02910d93dd6458ffe1ae146b7c2159af9bf159d7d75d897a1b72a62c1b7f5cef46b4c1f315574a11b0529c7d06bc55849
+"caniuse-lite@npm:^1.0.30001579, caniuse-lite@npm:^1.0.30001591, caniuse-lite@npm:^1.0.30001640":
+ version: 1.0.30001641
+ resolution: "caniuse-lite@npm:1.0.30001641"
+ checksum: 10c0/a065b641cfcc84b36955ee909bfd7313ad103d6a299f0fd261e0e4160e8f1cec79d685c5a9f11097a77687cf47154eddb8133163f2a34bcb8d73c45033a014d2
languageName: node
linkType: hard
@@ -11296,9 +11255,9 @@ __metadata:
languageName: node
linkType: hard
-"chromatic@npm:^11.3.0":
- version: 11.3.0
- resolution: "chromatic@npm:11.3.0"
+"chromatic@npm:^11.4.0":
+ version: 11.5.5
+ resolution: "chromatic@npm:11.5.5"
peerDependencies:
"@chromatic-com/cypress": ^0.*.* || ^1.0.0
"@chromatic-com/playwright": ^0.*.* || ^1.0.0
@@ -11311,7 +11270,7 @@ __metadata:
chroma: dist/bin.js
chromatic: dist/bin.js
chromatic-cli: dist/bin.js
- checksum: 10c0/e977ef43a43ebb0250ec8fc46f5751c8cb9b798f75fcf9ec52485c1127caf9d6cef0346a9dd1660a8967faf1a7cde579571a0ac130cfaf475d6f22e4929003b6
+ checksum: 10c0/3d812122548f9c29ab7116f7054e03cbf523b30ddde7e3142017cd23c42b6b99b3023e0146ef3afcfe4245a8cbb2ed97cedecca4e2cf9e5f6e8666db84a827d4
languageName: node
linkType: hard
@@ -11508,15 +11467,6 @@ __metadata:
languageName: node
linkType: hard
-"clone-response@npm:^1.0.2":
- version: 1.0.3
- resolution: "clone-response@npm:1.0.3"
- dependencies:
- mimic-response: "npm:^1.0.0"
- checksum: 10c0/06a2b611824efb128810708baee3bd169ec9a1bf5976a5258cd7eb3f7db25f00166c6eee5961f075c7e38e194f373d4fdf86b8166ad5b9c7e82bbd2e333a6087
- languageName: node
- linkType: hard
-
"clone@npm:^1.0.2":
version: 1.0.4
resolution: "clone@npm:1.0.4"
@@ -11983,9 +11933,9 @@ __metadata:
linkType: hard
"core-js-pure@npm:^3.23.3, core-js-pure@npm:^3.30.2":
- version: 3.33.0
- resolution: "core-js-pure@npm:3.33.0"
- checksum: 10c0/dbb683bf6c5d3671129e5029e0f8047a388818bb9720352c839f46ac5627b5fed763135b9a1df89452f2afee78e49639def6063e82fc6995c4e98c31f2892db5
+ version: 3.37.1
+ resolution: "core-js-pure@npm:3.37.1"
+ checksum: 10c0/38200d08862b4ef2207af72a7525f7b9ac750f5e1d84ef27a3e314aefa69518179a9b732f51ebe35c3b38606d9fa4f686fcf6eff067615cc293a3b1c84041e74
languageName: node
linkType: hard
@@ -11997,9 +11947,9 @@ __metadata:
linkType: hard
"core-js@npm:^3.8.2":
- version: 3.33.0
- resolution: "core-js@npm:3.33.0"
- checksum: 10c0/f51192f311c2d75b94ebe4eb7210f91df2cb6de101b96da1a65f43cf52b9c5cfe1ce5ebebb86281e452d2ee949730afb72fb7ac826c655c9de3a92f793cf3b80
+ version: 3.37.1
+ resolution: "core-js@npm:3.37.1"
+ checksum: 10c0/440eb51a7a39128a320225fe349f870a3641b96c9ecd26470227db730ef8c161ea298eaea621db66ec0ff622a85299efb4e23afebf889c0a1748616102307675
languageName: node
linkType: hard
@@ -12305,12 +12255,11 @@ __metadata:
languageName: node
linkType: hard
-"danger@npm:^11.2.6":
- version: 11.3.1
- resolution: "danger@npm:11.3.1"
+"danger@npm:^12.3.3":
+ version: 12.3.3
+ resolution: "danger@npm:12.3.3"
dependencies:
- "@gitbeaker/core": "npm:^35.8.1"
- "@gitbeaker/node": "npm:^35.8.1"
+ "@gitbeaker/rest": "npm:^38.0.0"
"@octokit/rest": "npm:^18.12.0"
async-retry: "npm:1.2.3"
chalk: "npm:^2.3.0"
@@ -12322,7 +12271,7 @@ __metadata:
http-proxy-agent: "npm:^5.0.0"
https-proxy-agent: "npm:^5.0.1"
hyperlinker: "npm:^1.0.0"
- json5: "npm:^2.1.0"
+ json5: "npm:^2.2.3"
jsonpointer: "npm:^5.0.0"
jsonwebtoken: "npm:^9.0.0"
lodash.find: "npm:^4.6.0"
@@ -12357,7 +12306,40 @@ __metadata:
danger-process: distribution/commands/danger-process.js
danger-reset-status: distribution/commands/danger-reset-status.js
danger-runner: distribution/commands/danger-runner.js
- checksum: 10c0/0a2a7655817200fb3488645787268842ba6c8fadbf6fa8c3e6d13718564a6f915ef1f70020686b9b8b94a050fb80eaeb8b6abf0f8525162ddd739da5ad51d432
+ checksum: 10c0/a82640dc40352bacc735ef15109ad316857e894f38e1e0919b55a7f9a296730ae3fc090152a72f315e7c7831826857150297af72317beeab3e30f2a36a64dee7
+ languageName: node
+ linkType: hard
+
+"data-view-buffer@npm:^1.0.1":
+ version: 1.0.1
+ resolution: "data-view-buffer@npm:1.0.1"
+ dependencies:
+ call-bind: "npm:^1.0.6"
+ es-errors: "npm:^1.3.0"
+ is-data-view: "npm:^1.0.1"
+ checksum: 10c0/8984119e59dbed906a11fcfb417d7d861936f16697a0e7216fe2c6c810f6b5e8f4a5281e73f2c28e8e9259027190ac4a33e2a65fdd7fa86ac06b76e838918583
+ languageName: node
+ linkType: hard
+
+"data-view-byte-length@npm:^1.0.1":
+ version: 1.0.1
+ resolution: "data-view-byte-length@npm:1.0.1"
+ dependencies:
+ call-bind: "npm:^1.0.7"
+ es-errors: "npm:^1.3.0"
+ is-data-view: "npm:^1.0.1"
+ checksum: 10c0/b7d9e48a0cf5aefed9ab7d123559917b2d7e0d65531f43b2fd95b9d3a6b46042dd3fca597c42bba384e66b70d7ad66ff23932f8367b241f53d93af42cfe04ec2
+ languageName: node
+ linkType: hard
+
+"data-view-byte-offset@npm:^1.0.0":
+ version: 1.0.0
+ resolution: "data-view-byte-offset@npm:1.0.0"
+ dependencies:
+ call-bind: "npm:^1.0.6"
+ es-errors: "npm:^1.3.0"
+ is-data-view: "npm:^1.0.1"
+ checksum: 10c0/21b0d2e53fd6e20cc4257c873bf6d36d77bd6185624b84076c0a1ddaa757b49aaf076254006341d35568e89f52eecd1ccb1a502cfb620f2beca04f48a6a62a8f
languageName: node
linkType: hard
@@ -12384,7 +12366,19 @@ __metadata:
languageName: node
linkType: hard
-"debug@npm:4, debug@npm:4.3.4, debug@npm:^4.0.0, debug@npm:^4.1.0, debug@npm:^4.1.1, debug@npm:^4.3.1, debug@npm:^4.3.2, debug@npm:^4.3.3, debug@npm:^4.3.4":
+"debug@npm:4, debug@npm:^4.0.0, debug@npm:^4.1.0, debug@npm:^4.1.1, debug@npm:^4.3.1, debug@npm:^4.3.2, debug@npm:^4.3.3, debug@npm:^4.3.4":
+ version: 4.3.5
+ resolution: "debug@npm:4.3.5"
+ dependencies:
+ ms: "npm:2.1.2"
+ peerDependenciesMeta:
+ supports-color:
+ optional: true
+ checksum: 10c0/082c375a2bdc4f4469c99f325ff458adad62a3fc2c482d59923c260cb08152f34e2659f72b3767db8bb2f21ca81a60a42d1019605a412132d7b9f59363a005cc
+ languageName: node
+ linkType: hard
+
+"debug@npm:4.3.4":
version: 4.3.4
resolution: "debug@npm:4.3.4"
dependencies:
@@ -12421,22 +12415,13 @@ __metadata:
languageName: node
linkType: hard
-"decode-uri-component@npm:^0.2.0, decode-uri-component@npm:^0.2.2":
+"decode-uri-component@npm:^0.2.0":
version: 0.2.2
resolution: "decode-uri-component@npm:0.2.2"
checksum: 10c0/1f4fa54eb740414a816b3f6c24818fbfcabd74ac478391e9f4e2282c994127db02010ce804f3d08e38255493cfe68608b3f5c8e09fd6efc4ae46c807691f7a31
languageName: node
linkType: hard
-"decompress-response@npm:^6.0.0":
- version: 6.0.0
- resolution: "decompress-response@npm:6.0.0"
- dependencies:
- mimic-response: "npm:^3.1.0"
- checksum: 10c0/bd89d23141b96d80577e70c54fb226b2f40e74a6817652b80a116d7befb8758261ad073a8895648a29cc0a5947021ab66705cb542fa9c143c82022b27c5b175e
- languageName: node
- linkType: hard
-
"dedent@npm:^0.7.0":
version: 0.7.0
resolution: "dedent@npm:0.7.0"
@@ -12542,13 +12527,6 @@ __metadata:
languageName: node
linkType: hard
-"defer-to-connect@npm:^2.0.0":
- version: 2.0.1
- resolution: "defer-to-connect@npm:2.0.1"
- checksum: 10c0/625ce28e1b5ad10cf77057b9a6a727bf84780c17660f6644dab61dd34c23de3001f03cedc401f7d30a4ed9965c2e8a7336e220a329146f2cf85d4eddea429782
- languageName: node
- linkType: hard
-
"define-data-property@npm:^1.0.1, define-data-property@npm:^1.1.2, define-data-property@npm:^1.1.4":
version: 1.1.4
resolution: "define-data-property@npm:1.1.4"
@@ -12613,13 +12591,6 @@ __metadata:
languageName: node
linkType: hard
-"delay@npm:^5.0.0":
- version: 5.0.0
- resolution: "delay@npm:5.0.0"
- checksum: 10c0/01cdc4cd0cd35fb622518a3df848e67e09763a38e7cdada2232b6fda9ddda72eddcf74f0e24211200fbe718434f2335f2a2633875a6c96037fefa6de42896ad7
- languageName: node
- linkType: hard
-
"delayed-stream@npm:~1.0.0":
version: 1.0.0
resolution: "delayed-stream@npm:1.0.0"
@@ -12724,15 +12695,15 @@ __metadata:
linkType: hard
"detect-port@npm:^1.3.0, detect-port@npm:^1.5.1":
- version: 1.5.1
- resolution: "detect-port@npm:1.5.1"
+ version: 1.6.1
+ resolution: "detect-port@npm:1.6.1"
dependencies:
address: "npm:^1.0.1"
debug: "npm:4"
bin:
detect: bin/detect-port.js
detect-port: bin/detect-port.js
- checksum: 10c0/f2b204ad3a9f8e8b53fea35fcc97469f31a8e3e786a2f59fbc886397e33b5f130c5f964bf001b9a64d990047c3824f6a439308461ff19801df04ab48a754639e
+ checksum: 10c0/4ea9eb46a637cb21220dd0a62b6074792894fc77b2cacbc9de533d1908b2eedafa7bfd7547baaa2ac1e9c7ba7c289b34b17db896dca6da142f4fc6e2060eee17
languageName: node
linkType: hard
@@ -13081,10 +13052,10 @@ __metadata:
languageName: node
linkType: hard
-"electron-to-chromium@npm:^1.4.668":
- version: 1.4.699
- resolution: "electron-to-chromium@npm:1.4.699"
- checksum: 10c0/328051c526d840f137492ff870b782785666880e5a3df14abe9d04a843b1bfbb07139bf6496ada7958f97b482044cd6021d95db57e46f96b598b36e19c7da93c
+"electron-to-chromium@npm:^1.4.820":
+ version: 1.4.823
+ resolution: "electron-to-chromium@npm:1.4.823"
+ checksum: 10c0/772ad25e1305ab4a1a18beb9edae5d62ba55c5660c9d20a86c90e195d22da64dcf209ba8c9fb8172c76d1cbff12ea56a83eb75863bd2b22fb7ddabcd1d73c1e7
languageName: node
linkType: hard
@@ -13439,17 +13410,21 @@ __metadata:
languageName: node
linkType: hard
-"es-abstract@npm:^1.22.1, es-abstract@npm:^1.22.3, es-abstract@npm:^1.22.4":
- version: 1.22.4
- resolution: "es-abstract@npm:1.22.4"
+"es-abstract@npm:^1.22.1, es-abstract@npm:^1.22.3, es-abstract@npm:^1.22.4, es-abstract@npm:^1.23.0, es-abstract@npm:^1.23.2":
+ version: 1.23.3
+ resolution: "es-abstract@npm:1.23.3"
dependencies:
array-buffer-byte-length: "npm:^1.0.1"
arraybuffer.prototype.slice: "npm:^1.0.3"
- available-typed-arrays: "npm:^1.0.6"
+ available-typed-arrays: "npm:^1.0.7"
call-bind: "npm:^1.0.7"
+ data-view-buffer: "npm:^1.0.1"
+ data-view-byte-length: "npm:^1.0.1"
+ data-view-byte-offset: "npm:^1.0.0"
es-define-property: "npm:^1.0.0"
es-errors: "npm:^1.3.0"
- es-set-tostringtag: "npm:^2.0.2"
+ es-object-atoms: "npm:^1.0.0"
+ es-set-tostringtag: "npm:^2.0.3"
es-to-primitive: "npm:^1.2.1"
function.prototype.name: "npm:^1.1.6"
get-intrinsic: "npm:^1.2.4"
@@ -13457,15 +13432,16 @@ __metadata:
globalthis: "npm:^1.0.3"
gopd: "npm:^1.0.1"
has-property-descriptors: "npm:^1.0.2"
- has-proto: "npm:^1.0.1"
+ has-proto: "npm:^1.0.3"
has-symbols: "npm:^1.0.3"
- hasown: "npm:^2.0.1"
+ hasown: "npm:^2.0.2"
internal-slot: "npm:^1.0.7"
is-array-buffer: "npm:^3.0.4"
is-callable: "npm:^1.2.7"
- is-negative-zero: "npm:^2.0.2"
+ is-data-view: "npm:^1.0.1"
+ is-negative-zero: "npm:^2.0.3"
is-regex: "npm:^1.1.4"
- is-shared-array-buffer: "npm:^1.0.2"
+ is-shared-array-buffer: "npm:^1.0.3"
is-string: "npm:^1.0.7"
is-typed-array: "npm:^1.1.13"
is-weakref: "npm:^1.0.2"
@@ -13473,18 +13449,18 @@ __metadata:
object-keys: "npm:^1.1.1"
object.assign: "npm:^4.1.5"
regexp.prototype.flags: "npm:^1.5.2"
- safe-array-concat: "npm:^1.1.0"
+ safe-array-concat: "npm:^1.1.2"
safe-regex-test: "npm:^1.0.3"
- string.prototype.trim: "npm:^1.2.8"
- string.prototype.trimend: "npm:^1.0.7"
- string.prototype.trimstart: "npm:^1.0.7"
- typed-array-buffer: "npm:^1.0.1"
- typed-array-byte-length: "npm:^1.0.0"
- typed-array-byte-offset: "npm:^1.0.0"
- typed-array-length: "npm:^1.0.4"
+ string.prototype.trim: "npm:^1.2.9"
+ string.prototype.trimend: "npm:^1.0.8"
+ string.prototype.trimstart: "npm:^1.0.8"
+ typed-array-buffer: "npm:^1.0.2"
+ typed-array-byte-length: "npm:^1.0.1"
+ typed-array-byte-offset: "npm:^1.0.2"
+ typed-array-length: "npm:^1.0.6"
unbox-primitive: "npm:^1.0.2"
- which-typed-array: "npm:^1.1.14"
- checksum: 10c0/dc332c3a010c5e7b77b7ea8a4532ac455fa02e7bcabf996a47447165bafa72d0d99967407d0cf5dbbb5fbbf87f53cd8b706608ec70953523b8cd2b831b9a9d64
+ which-typed-array: "npm:^1.1.15"
+ checksum: 10c0/d27e9afafb225c6924bee9971a7f25f20c314f2d6cb93a63cada4ac11dcf42040896a6c22e5fb8f2a10767055ed4ddf400be3b1eb12297d281726de470b75666
languageName: node
linkType: hard
@@ -13558,7 +13534,16 @@ __metadata:
languageName: node
linkType: hard
-"es-set-tostringtag@npm:^2.0.2":
+"es-object-atoms@npm:^1.0.0":
+ version: 1.0.0
+ resolution: "es-object-atoms@npm:1.0.0"
+ dependencies:
+ es-errors: "npm:^1.3.0"
+ checksum: 10c0/1fed3d102eb27ab8d983337bb7c8b159dd2a1e63ff833ec54eea1311c96d5b08223b433060ba240541ca8adba9eee6b0a60cdbf2f80634b784febc9cc8b687b4
+ languageName: node
+ linkType: hard
+
+"es-set-tostringtag@npm:^2.0.2, es-set-tostringtag@npm:^2.0.3":
version: 2.0.3
resolution: "es-set-tostringtag@npm:2.0.3"
dependencies:
@@ -13596,17 +13581,17 @@ __metadata:
languageName: node
linkType: hard
-"esbuild-loader@npm:^3.0.0":
- version: 3.2.0
- resolution: "esbuild-loader@npm:3.2.0"
+"esbuild-loader@npm:^4.2.0":
+ version: 4.2.0
+ resolution: "esbuild-loader@npm:4.2.0"
dependencies:
- esbuild: "npm:^0.19.0"
- get-tsconfig: "npm:^4.6.2"
+ esbuild: "npm:^0.21.0"
+ get-tsconfig: "npm:^4.7.0"
loader-utils: "npm:^2.0.4"
webpack-sources: "npm:^1.4.3"
peerDependencies:
webpack: ^4.40.0 || ^5.0.0
- checksum: 10c0/06e342a4968edb10582185831aabc5202b3039cc3426fa42e17709355c0657802de331364fb13bcf151d3abd9cc7a5d2c99a6367e50bc91c1a6605ae9967a7f9
+ checksum: 10c0/4d53c8c9f083f156280274e73c8b27cdb9ca1c97d912b29e3291f51cbd92ea17b2a8d2996bcec6448febaab5ee9a81c6d5b4e4bc0576688a524455e35b05c59c
languageName: node
linkType: hard
@@ -13637,33 +13622,34 @@ __metadata:
languageName: node
linkType: hard
-"esbuild@npm:^0.21.5":
- version: 0.21.5
- resolution: "esbuild@npm:0.21.5"
- dependencies:
- "@esbuild/aix-ppc64": "npm:0.21.5"
- "@esbuild/android-arm": "npm:0.21.5"
- "@esbuild/android-arm64": "npm:0.21.5"
- "@esbuild/android-x64": "npm:0.21.5"
- "@esbuild/darwin-arm64": "npm:0.21.5"
- "@esbuild/darwin-x64": "npm:0.21.5"
- "@esbuild/freebsd-arm64": "npm:0.21.5"
- "@esbuild/freebsd-x64": "npm:0.21.5"
- "@esbuild/linux-arm": "npm:0.21.5"
- "@esbuild/linux-arm64": "npm:0.21.5"
- "@esbuild/linux-ia32": "npm:0.21.5"
- "@esbuild/linux-loong64": "npm:0.21.5"
- "@esbuild/linux-mips64el": "npm:0.21.5"
- "@esbuild/linux-ppc64": "npm:0.21.5"
- "@esbuild/linux-riscv64": "npm:0.21.5"
- "@esbuild/linux-s390x": "npm:0.21.5"
- "@esbuild/linux-x64": "npm:0.21.5"
- "@esbuild/netbsd-x64": "npm:0.21.5"
- "@esbuild/openbsd-x64": "npm:0.21.5"
- "@esbuild/sunos-x64": "npm:0.21.5"
- "@esbuild/win32-arm64": "npm:0.21.5"
- "@esbuild/win32-ia32": "npm:0.21.5"
- "@esbuild/win32-x64": "npm:0.21.5"
+"esbuild@npm:^0.23.0":
+ version: 0.23.0
+ resolution: "esbuild@npm:0.23.0"
+ dependencies:
+ "@esbuild/aix-ppc64": "npm:0.23.0"
+ "@esbuild/android-arm": "npm:0.23.0"
+ "@esbuild/android-arm64": "npm:0.23.0"
+ "@esbuild/android-x64": "npm:0.23.0"
+ "@esbuild/darwin-arm64": "npm:0.23.0"
+ "@esbuild/darwin-x64": "npm:0.23.0"
+ "@esbuild/freebsd-arm64": "npm:0.23.0"
+ "@esbuild/freebsd-x64": "npm:0.23.0"
+ "@esbuild/linux-arm": "npm:0.23.0"
+ "@esbuild/linux-arm64": "npm:0.23.0"
+ "@esbuild/linux-ia32": "npm:0.23.0"
+ "@esbuild/linux-loong64": "npm:0.23.0"
+ "@esbuild/linux-mips64el": "npm:0.23.0"
+ "@esbuild/linux-ppc64": "npm:0.23.0"
+ "@esbuild/linux-riscv64": "npm:0.23.0"
+ "@esbuild/linux-s390x": "npm:0.23.0"
+ "@esbuild/linux-x64": "npm:0.23.0"
+ "@esbuild/netbsd-x64": "npm:0.23.0"
+ "@esbuild/openbsd-arm64": "npm:0.23.0"
+ "@esbuild/openbsd-x64": "npm:0.23.0"
+ "@esbuild/sunos-x64": "npm:0.23.0"
+ "@esbuild/win32-arm64": "npm:0.23.0"
+ "@esbuild/win32-ia32": "npm:0.23.0"
+ "@esbuild/win32-x64": "npm:0.23.0"
dependenciesMeta:
"@esbuild/aix-ppc64":
optional: true
@@ -13701,6 +13687,8 @@ __metadata:
optional: true
"@esbuild/netbsd-x64":
optional: true
+ "@esbuild/openbsd-arm64":
+ optional: true
"@esbuild/openbsd-x64":
optional: true
"@esbuild/sunos-x64":
@@ -13713,14 +13701,14 @@ __metadata:
optional: true
bin:
esbuild: bin/esbuild
- checksum: 10c0/fa08508adf683c3f399e8a014a6382a6b65542213431e26206c0720e536b31c09b50798747c2a105a4bbba1d9767b8d3615a74c2f7bf1ddf6d836cd11eb672de
+ checksum: 10c0/08c148c067795165798c0467ce02d2d1ecedc096989bded5f0d795c61a1fcbec6c14d0a3c9f4ad6185cc29ec52087acaa335ed6d98be6ad57f7fa4264626bde0
languageName: node
linkType: hard
-"escalade@npm:^3.1.1":
- version: 3.1.1
- resolution: "escalade@npm:3.1.1"
- checksum: 10c0/afd02e6ca91ffa813e1108b5e7756566173d6bc0d1eb951cb44d6b21702ec17c1cf116cfe75d4a2b02e05acb0b808a7a9387d0d1ca5cf9c04ad03a8445c3e46d
+"escalade@npm:^3.1.1, escalade@npm:^3.1.2":
+ version: 3.1.2
+ resolution: "escalade@npm:3.1.2"
+ checksum: 10c0/6b4adafecd0682f3aa1cd1106b8fff30e492c7015b178bc81b2d2f75106dabea6c6d6e8508fc491bd58e597c74abb0e8e2368f943ecb9393d4162e3c2f3cf287
languageName: node
linkType: hard
@@ -14185,6 +14173,13 @@ __metadata:
languageName: node
linkType: hard
+"esm-resolve@npm:^1.0.8":
+ version: 1.0.11
+ resolution: "esm-resolve@npm:1.0.11"
+ checksum: 10c0/c57bba8a2156e99f76433f24687da710fc366024870e2d2a5aa5c357973956d63c306595d97028eeb329a90ee6e6e9f4a4ca26a529c4f949ed3d66aff3d1d2ee
+ languageName: node
+ linkType: hard
+
"espree@npm:9.2.0":
version: 9.2.0
resolution: "espree@npm:9.2.0"
@@ -14794,19 +14789,12 @@ __metadata:
languageName: node
linkType: hard
-"fill-range@npm:^7.0.1":
- version: 7.0.1
- resolution: "fill-range@npm:7.0.1"
+"fill-range@npm:^7.1.1":
+ version: 7.1.1
+ resolution: "fill-range@npm:7.1.1"
dependencies:
to-regex-range: "npm:^5.0.1"
- checksum: 10c0/7cdad7d426ffbaadf45aeb5d15ec675bbd77f7597ad5399e3d2766987ed20bda24d5fac64b3ee79d93276f5865608bb22344a26b9b1ae6c4d00bd94bf611623f
- languageName: node
- linkType: hard
-
-"filter-obj@npm:^1.1.0":
- version: 1.1.0
- resolution: "filter-obj@npm:1.1.0"
- checksum: 10c0/071e0886b2b50238ca5026c5bbf58c26a7c1a1f720773b8c7813d16ba93d0200de977af14ac143c5ac18f666b2cfc83073f3a5fe6a4e996c49e0863d5500fccf
+ checksum: 10c0/b75b691bbe065472f38824f694c2f7449d7f5004aa950426a2c28f0306c60db9b880c0b0e4ed819997ffb882d1da02cfcfc819bddc94d71627f5269682edf018
languageName: node
linkType: hard
@@ -15024,9 +15012,9 @@ __metadata:
linkType: hard
"flow-parser@npm:0.*":
- version: 0.217.2
- resolution: "flow-parser@npm:0.217.2"
- checksum: 10c0/d61127283db052fddf8275b070eea76dda5d2926aea3d8659250e168d69478f4ebdbc2bede83aa05c29f464c420ce1d701691278d3041af0492bfc16193277b5
+ version: 0.239.1
+ resolution: "flow-parser@npm:0.239.1"
+ checksum: 10c0/a95186e47cce6e0f401845eae8ec863480817b879f18b34564af51efd545b04193e2c4a0d429a5961d34e4c5f02c213adda008a15ac034bbe4ca0a4e2a5773c0
languageName: node
linkType: hard
@@ -15535,7 +15523,7 @@ __metadata:
languageName: node
linkType: hard
-"get-intrinsic@npm:^1.0.2, get-intrinsic@npm:^1.1.1, get-intrinsic@npm:^1.1.3, get-intrinsic@npm:^1.2.1, get-intrinsic@npm:^1.2.2, get-intrinsic@npm:^1.2.3, get-intrinsic@npm:^1.2.4":
+"get-intrinsic@npm:^1.1.1, get-intrinsic@npm:^1.1.3, get-intrinsic@npm:^1.2.1, get-intrinsic@npm:^1.2.3, get-intrinsic@npm:^1.2.4":
version: 1.2.4
resolution: "get-intrinsic@npm:1.2.4"
dependencies:
@@ -15585,15 +15573,6 @@ __metadata:
languageName: node
linkType: hard
-"get-stream@npm:^5.1.0":
- version: 5.2.0
- resolution: "get-stream@npm:5.2.0"
- dependencies:
- pump: "npm:^3.0.0"
- checksum: 10c0/43797ffd815fbb26685bf188c8cfebecb8af87b3925091dd7b9a9c915993293d78e3c9e1bce125928ff92f2d0796f3889b92b5ec6d58d1041b574682132e0a80
- languageName: node
- linkType: hard
-
"get-stream@npm:^6.0.0, get-stream@npm:^6.0.1":
version: 6.0.1
resolution: "get-stream@npm:6.0.1"
@@ -15619,12 +15598,12 @@ __metadata:
languageName: node
linkType: hard
-"get-tsconfig@npm:^4.5.0, get-tsconfig@npm:^4.6.2":
- version: 4.7.2
- resolution: "get-tsconfig@npm:4.7.2"
+"get-tsconfig@npm:^4.5.0, get-tsconfig@npm:^4.7.0":
+ version: 4.7.5
+ resolution: "get-tsconfig@npm:4.7.5"
dependencies:
resolve-pkg-maps: "npm:^1.0.0"
- checksum: 10c0/169b2beababfbb16e8a0ae813ee59d3e14d4960231c816615161ab5be68ec07a394dce59695742ac84295e2efab8d9e89bcf3abaf5e253dfbec3496e01bb9a65
+ checksum: 10c0/a917dff2ba9ee187c41945736bf9bbab65de31ce5bc1effd76267be483a7340915cff232199406379f26517d2d0a4edcdbcda8cca599c2480a0f2cf1e1de3efa
languageName: node
linkType: hard
@@ -15797,11 +15776,12 @@ __metadata:
linkType: hard
"globalthis@npm:^1.0.3":
- version: 1.0.3
- resolution: "globalthis@npm:1.0.3"
+ version: 1.0.4
+ resolution: "globalthis@npm:1.0.4"
dependencies:
- define-properties: "npm:^1.1.3"
- checksum: 10c0/0db6e9af102a5254630351557ac15e6909bc7459d3e3f6b001e59fe784c96d31108818f032d9095739355a88467459e6488ff16584ee6250cd8c27dec05af4b0
+ define-properties: "npm:^1.2.1"
+ gopd: "npm:^1.0.1"
+ checksum: 10c0/9d156f313af79d80b1566b93e19285f481c591ad6d0d319b4be5e03750d004dde40a39a0f26f7e635f9007a3600802f53ecd85a759b86f109e80a5f705e01846
languageName: node
linkType: hard
@@ -15899,25 +15879,6 @@ __metadata:
languageName: node
linkType: hard
-"got@npm:^11.8.3":
- version: 11.8.6
- resolution: "got@npm:11.8.6"
- dependencies:
- "@sindresorhus/is": "npm:^4.0.0"
- "@szmarczak/http-timer": "npm:^4.0.5"
- "@types/cacheable-request": "npm:^6.0.1"
- "@types/responselike": "npm:^1.0.0"
- cacheable-lookup: "npm:^5.0.3"
- cacheable-request: "npm:^7.0.2"
- decompress-response: "npm:^6.0.0"
- http2-wrapper: "npm:^1.0.0-beta.5.2"
- lowercase-keys: "npm:^2.0.0"
- p-cancelable: "npm:^2.0.0"
- responselike: "npm:^2.0.0"
- checksum: 10c0/754dd44877e5cf6183f1e989ff01c648d9a4719e357457bd4c78943911168881f1cfb7b2cb15d885e2105b3ad313adb8f017a67265dd7ade771afdb261ee8cb1
- languageName: node
- linkType: hard
-
"graceful-fs@npm:^4.1.11, graceful-fs@npm:^4.1.2, graceful-fs@npm:^4.1.3, graceful-fs@npm:^4.1.6, graceful-fs@npm:^4.2.0, graceful-fs@npm:^4.2.11, graceful-fs@npm:^4.2.4, graceful-fs@npm:^4.2.6, graceful-fs@npm:^4.2.9":
version: 4.2.11
resolution: "graceful-fs@npm:4.2.11"
@@ -16062,7 +16023,7 @@ __metadata:
languageName: node
linkType: hard
-"has-tostringtag@npm:^1.0.0, has-tostringtag@npm:^1.0.1, has-tostringtag@npm:^1.0.2":
+"has-tostringtag@npm:^1.0.0, has-tostringtag@npm:^1.0.2":
version: 1.0.2
resolution: "has-tostringtag@npm:1.0.2"
dependencies:
@@ -16159,12 +16120,12 @@ __metadata:
languageName: node
linkType: hard
-"hasown@npm:^2.0.0, hasown@npm:^2.0.1":
- version: 2.0.1
- resolution: "hasown@npm:2.0.1"
+"hasown@npm:^2.0.0, hasown@npm:^2.0.1, hasown@npm:^2.0.2":
+ version: 2.0.2
+ resolution: "hasown@npm:2.0.2"
dependencies:
function-bind: "npm:^1.1.2"
- checksum: 10c0/9e27e70e8e4204f4124c8f99950d1ba2b1f5174864fd39ff26da190f9ea6488c1b3927dcc64981c26d1f637a971783c9489d62c829d393ea509e6f1ba20370bb
+ checksum: 10c0/3769d434703b8ac66b209a4cca0737519925bbdb61dd887f93a16372b14694c63ff4e797686d87c90f08168e81082248b9b028bad60d4da9e0d1148766f56eb9
languageName: node
linkType: hard
@@ -16487,7 +16448,7 @@ __metadata:
languageName: node
linkType: hard
-"http-cache-semantics@npm:^4.0.0, http-cache-semantics@npm:^4.1.0, http-cache-semantics@npm:^4.1.1":
+"http-cache-semantics@npm:^4.1.0, http-cache-semantics@npm:^4.1.1":
version: 4.1.1
resolution: "http-cache-semantics@npm:4.1.1"
checksum: 10c0/ce1319b8a382eb3cbb4a37c19f6bfe14e5bb5be3d09079e885e8c513ab2d3cd9214902f8a31c9dc4e37022633ceabfc2d697405deeaf1b8f3552bb4ed996fdfc
@@ -16606,16 +16567,6 @@ __metadata:
languageName: node
linkType: hard
-"http2-wrapper@npm:^1.0.0-beta.5.2":
- version: 1.0.3
- resolution: "http2-wrapper@npm:1.0.3"
- dependencies:
- quick-lru: "npm:^5.1.1"
- resolve-alpn: "npm:^1.0.0"
- checksum: 10c0/6a9b72a033e9812e1476b9d776ce2f387bc94bc46c88aea0d5dab6bd47d0a539b8178830e77054dd26d1142c866d515a28a4dc7c3ff4232c88ff2ebe4f5d12d1
- languageName: node
- linkType: hard
-
"https-browserify@npm:^1.0.0":
version: 1.0.0
resolution: "https-browserify@npm:1.0.0"
@@ -16928,7 +16879,7 @@ __metadata:
languageName: node
linkType: hard
-"internal-slot@npm:^1.0.4, internal-slot@npm:^1.0.5, internal-slot@npm:^1.0.7":
+"internal-slot@npm:^1.0.4, internal-slot@npm:^1.0.7":
version: 1.0.7
resolution: "internal-slot@npm:1.0.7"
dependencies:
@@ -17147,6 +17098,15 @@ __metadata:
languageName: node
linkType: hard
+"is-data-view@npm:^1.0.1":
+ version: 1.0.1
+ resolution: "is-data-view@npm:1.0.1"
+ dependencies:
+ is-typed-array: "npm:^1.1.13"
+ checksum: 10c0/a3e6ec84efe303da859107aed9b970e018e2bee7ffcb48e2f8096921a493608134240e672a2072577e5f23a729846241d9634806e8a0e51d9129c56d5f65442d
+ languageName: node
+ linkType: hard
+
"is-date-object@npm:^1.0.1, is-date-object@npm:^1.0.5":
version: 1.0.5
resolution: "is-date-object@npm:1.0.5"
@@ -17355,7 +17315,7 @@ __metadata:
languageName: node
linkType: hard
-"is-negative-zero@npm:^2.0.2":
+"is-negative-zero@npm:^2.0.3":
version: 2.0.3
resolution: "is-negative-zero@npm:2.0.3"
checksum: 10c0/bcdcf6b8b9714063ffcfa9929c575ac69bfdabb8f4574ff557dfc086df2836cf07e3906f5bbc4f2a5c12f8f3ba56af640c843cdfc74da8caed86c7c7d66fd08e
@@ -17464,12 +17424,12 @@ __metadata:
languageName: node
linkType: hard
-"is-shared-array-buffer@npm:^1.0.2":
- version: 1.0.2
- resolution: "is-shared-array-buffer@npm:1.0.2"
+"is-shared-array-buffer@npm:^1.0.2, is-shared-array-buffer@npm:^1.0.3":
+ version: 1.0.3
+ resolution: "is-shared-array-buffer@npm:1.0.3"
dependencies:
- call-bind: "npm:^1.0.2"
- checksum: 10c0/cfeee6f171f1b13e6cbc6f3b6cc44e192b93df39f3fcb31aa66ffb1d2df3b91e05664311659f9701baba62f5e98c83b0673c628e7adc30f55071c4874fcdccec
+ call-bind: "npm:^1.0.7"
+ checksum: 10c0/adc11ab0acbc934a7b9e5e9d6c588d4ec6682f6fea8cda5180721704fa32927582ede5b123349e32517fdadd07958973d24716c80e7ab198970c47acc09e59c7
languageName: node
linkType: hard
@@ -18007,11 +17967,14 @@ __metadata:
linkType: hard
"json-stable-stringify@npm:^1.0.1":
- version: 1.0.2
- resolution: "json-stable-stringify@npm:1.0.2"
+ version: 1.1.1
+ resolution: "json-stable-stringify@npm:1.1.1"
dependencies:
+ call-bind: "npm:^1.0.5"
+ isarray: "npm:^2.0.5"
jsonify: "npm:^0.0.1"
- checksum: 10c0/502d021c3c59c09587faa40d7693d77c00460fd6c68bae95d6e35804909ec8c4aec71b136d3a09df61a7ebf803eb6e820f23ede76b77e74b8b02c76afb2ada8c
+ object-keys: "npm:^1.1.1"
+ checksum: 10c0/3801e3eeccbd030afb970f54bea690a079cfea7d9ed206a1b17ca9367f4b7772c764bf77a48f03e56b50e5f7ee7d11c52339fe20d8d7ccead003e4ca69e4cfde
languageName: node
linkType: hard
@@ -18035,7 +17998,7 @@ __metadata:
languageName: node
linkType: hard
-"json5@npm:^2.0.0, json5@npm:^2.1.0, json5@npm:^2.1.2, json5@npm:^2.2.2, json5@npm:^2.2.3":
+"json5@npm:^2.0.0, json5@npm:^2.1.2, json5@npm:^2.2.2, json5@npm:^2.2.3":
version: 2.2.3
resolution: "json5@npm:2.2.3"
bin:
@@ -18204,7 +18167,7 @@ __metadata:
languageName: node
linkType: hard
-"keyv@npm:^4.0.0, keyv@npm:^4.5.3":
+"keyv@npm:^4.5.3":
version: 4.5.3
resolution: "keyv@npm:4.5.3"
dependencies:
@@ -18367,13 +18330,6 @@ __metadata:
languageName: node
linkType: hard
-"li@npm:^1.3.0":
- version: 1.3.0
- resolution: "li@npm:1.3.0"
- checksum: 10c0/07ec54eab550bfe55da212a158376fd3caa6b4802304e17472b8cd82d7b778a01c7a4d56952b26ee372d197582fe392fd726dd877235ce142ac8ff5683b81890
- languageName: node
- linkType: hard
-
"license-webpack-plugin@npm:4.0.2":
version: 4.0.2
resolution: "license-webpack-plugin@npm:4.0.2"
@@ -18507,7 +18463,7 @@ __metadata:
languageName: node
linkType: hard
-"loader-utils@npm:3.2.1, loader-utils@npm:^3.2.1":
+"loader-utils@npm:3.2.1":
version: 3.2.1
resolution: "loader-utils@npm:3.2.1"
checksum: 10c0/d3e1f217d160e8e894a0385a33500d4ce14065e8ffb250f5a81ae65bc2c3baa50625ec34182ba4417b46b4ac6725aed64429e1104d6401e074af2aa1dd018394
@@ -18536,6 +18492,13 @@ __metadata:
languageName: node
linkType: hard
+"loader-utils@npm:^3.2.1":
+ version: 3.3.1
+ resolution: "loader-utils@npm:3.3.1"
+ checksum: 10c0/f2af4eb185ac5bf7e56e1337b666f90744e9f443861ac521b48f093fb9e8347f191c8960b4388a3365147d218913bc23421234e7788db69f385bacfefa0b4758
+ languageName: node
+ linkType: hard
+
"local-pkg@npm:^0.5.0":
version: 0.5.0
resolution: "local-pkg@npm:0.5.0"
@@ -18792,13 +18755,6 @@ __metadata:
languageName: node
linkType: hard
-"lowercase-keys@npm:^2.0.0":
- version: 2.0.0
- resolution: "lowercase-keys@npm:2.0.0"
- checksum: 10c0/f82a2b3568910509da4b7906362efa40f5b54ea14c2584778ddb313226f9cbf21020a5db35f9b9a0e95847a9b781d548601f31793d736b22a2b8ae8eb9ab1082
- languageName: node
- linkType: hard
-
"lowlight@npm:^1.17.0":
version: 1.20.0
resolution: "lowlight@npm:1.20.0"
@@ -20165,7 +20121,7 @@ __metadata:
languageName: node
linkType: hard
-"micromatch@npm:4.0.5, micromatch@npm:^4.0.0, micromatch@npm:^4.0.2, micromatch@npm:^4.0.4":
+"micromatch@npm:4.0.5":
version: 4.0.5
resolution: "micromatch@npm:4.0.5"
dependencies:
@@ -20196,6 +20152,16 @@ __metadata:
languageName: node
linkType: hard
+"micromatch@npm:^4.0.0, micromatch@npm:^4.0.2, micromatch@npm:^4.0.4":
+ version: 4.0.7
+ resolution: "micromatch@npm:4.0.7"
+ dependencies:
+ braces: "npm:^3.0.3"
+ picomatch: "npm:^2.3.1"
+ checksum: 10c0/58fa99bc5265edec206e9163a1d2cec5fabc46a5b473c45f4a700adce88c2520456ae35f2b301e4410fb3afb27e9521fb2813f6fc96be0a48a89430e0916a772
+ languageName: node
+ linkType: hard
+
"miller-rabin@npm:^4.0.0":
version: 4.0.1
resolution: "miller-rabin@npm:4.0.1"
@@ -20233,15 +20199,6 @@ __metadata:
languageName: node
linkType: hard
-"mime@npm:^3.0.0":
- version: 3.0.0
- resolution: "mime@npm:3.0.0"
- bin:
- mime: cli.js
- checksum: 10c0/402e792a8df1b2cc41cb77f0dcc46472b7944b7ec29cb5bbcd398624b6b97096728f1239766d3fdeb20551dd8d94738344c195a6ea10c4f906eb0356323b0531
- languageName: node
- linkType: hard
-
"mimic-fn@npm:^2.1.0":
version: 2.1.0
resolution: "mimic-fn@npm:2.1.0"
@@ -20256,20 +20213,6 @@ __metadata:
languageName: node
linkType: hard
-"mimic-response@npm:^1.0.0":
- version: 1.0.1
- resolution: "mimic-response@npm:1.0.1"
- checksum: 10c0/c5381a5eae997f1c3b5e90ca7f209ed58c3615caeee850e85329c598f0c000ae7bec40196580eef1781c60c709f47258131dab237cad8786f8f56750594f27fa
- languageName: node
- linkType: hard
-
-"mimic-response@npm:^3.1.0":
- version: 3.1.0
- resolution: "mimic-response@npm:3.1.0"
- checksum: 10c0/0d6f07ce6e03e9e4445bee655202153bdb8a98d67ee8dc965ac140900d7a2688343e6b4c9a72cfc9ef2f7944dfd76eef4ab2482eb7b293a68b84916bac735362
- languageName: node
- linkType: hard
-
"min-indent@npm:^1.0.0, min-indent@npm:^1.0.1":
version: 1.0.1
resolution: "min-indent@npm:1.0.1"
@@ -20998,13 +20941,6 @@ __metadata:
languageName: node
linkType: hard
-"normalize-url@npm:^6.0.1":
- version: 6.1.0
- resolution: "normalize-url@npm:6.1.0"
- checksum: 10c0/95d948f9bdd2cfde91aa786d1816ae40f8262946e13700bf6628105994fe0ff361662c20af3961161c38a119dc977adeb41fc0b41b1745eb77edaaf9cb22db23
- languageName: node
- linkType: hard
-
"npm-bundled@npm:^3.0.0":
version: 3.0.0
resolution: "npm-bundled@npm:3.0.0"
@@ -21247,7 +21183,7 @@ __metadata:
languageName: node
linkType: hard
-"object-inspect@npm:^1.13.1, object-inspect@npm:^1.9.0":
+"object-inspect@npm:^1.13.1":
version: 1.13.1
resolution: "object-inspect@npm:1.13.1"
checksum: 10c0/fad603f408e345c82e946abdf4bfd774260a5ed3e5997a0b057c44153ac32c7271ff19e3a5ae39c858da683ba045ccac2f65245c12763ce4e8594f818f4a648d
@@ -21293,24 +21229,25 @@ __metadata:
linkType: hard
"object.entries@npm:^1.1.5, object.entries@npm:^1.1.6, object.entries@npm:^1.1.7":
- version: 1.1.7
- resolution: "object.entries@npm:1.1.7"
+ version: 1.1.8
+ resolution: "object.entries@npm:1.1.8"
dependencies:
- call-bind: "npm:^1.0.2"
- define-properties: "npm:^1.2.0"
- es-abstract: "npm:^1.22.1"
- checksum: 10c0/3ad1899cc7bf14546bf28f4a9b363ae8690b90948fcfbcac4c808395435d760f26193d9cae95337ce0e3c1e5c1f4fa45f7b46b31b68d389e9e117fce38775d86
+ call-bind: "npm:^1.0.7"
+ define-properties: "npm:^1.2.1"
+ es-object-atoms: "npm:^1.0.0"
+ checksum: 10c0/db9ea979d2956a3bc26c262da4a4d212d36f374652cc4c13efdd069c1a519c16571c137e2893d1c46e1cb0e15c88fd6419eaf410c945f329f09835487d7e65d3
languageName: node
linkType: hard
"object.fromentries@npm:^2.0.6, object.fromentries@npm:^2.0.7":
- version: 2.0.7
- resolution: "object.fromentries@npm:2.0.7"
+ version: 2.0.8
+ resolution: "object.fromentries@npm:2.0.8"
dependencies:
- call-bind: "npm:^1.0.2"
- define-properties: "npm:^1.2.0"
- es-abstract: "npm:^1.22.1"
- checksum: 10c0/071745c21f6fc9e6c914691f2532c1fb60ad967e5ddc52801d09958b5de926566299d07ae14466452a7efd29015f9145d6c09c573d93a0dc6f1683ee0ec2b93b
+ call-bind: "npm:^1.0.7"
+ define-properties: "npm:^1.2.1"
+ es-abstract: "npm:^1.23.2"
+ es-object-atoms: "npm:^1.0.0"
+ checksum: 10c0/cd4327e6c3369cfa805deb4cbbe919bfb7d3aeebf0bcaba291bb568ea7169f8f8cdbcabe2f00b40db0c20cd20f08e11b5f3a5a36fb7dd3fe04850c50db3bf83b
languageName: node
linkType: hard
@@ -21347,13 +21284,13 @@ __metadata:
linkType: hard
"object.values@npm:^1.1.6, object.values@npm:^1.1.7":
- version: 1.1.7
- resolution: "object.values@npm:1.1.7"
+ version: 1.2.0
+ resolution: "object.values@npm:1.2.0"
dependencies:
- call-bind: "npm:^1.0.2"
- define-properties: "npm:^1.2.0"
- es-abstract: "npm:^1.22.1"
- checksum: 10c0/e869d6a37fb7afdd0054dea49036d6ccebb84854a8848a093bbd1bc516f53e690bba88f0bc3e83fdfa74c601469ee6989c9b13359cda9604144c6e732fad3b6b
+ call-bind: "npm:^1.0.7"
+ define-properties: "npm:^1.2.1"
+ es-object-atoms: "npm:^1.0.0"
+ checksum: 10c0/15809dc40fd6c5529501324fec5ff08570b7d70fb5ebbe8e2b3901afec35cf2b3dc484d1210c6c642cd3e7e0a5e18dd1d6850115337fef46bdae14ab0cb18ac3
languageName: node
linkType: hard
@@ -21521,13 +21458,6 @@ __metadata:
languageName: node
linkType: hard
-"p-cancelable@npm:^2.0.0":
- version: 2.1.1
- resolution: "p-cancelable@npm:2.1.1"
- checksum: 10c0/8c6dc1f8dd4154fd8b96a10e55a3a832684c4365fb9108056d89e79fbf21a2465027c04a59d0d797b5ffe10b54a61a32043af287d5c4860f1e996cbdbc847f01
- languageName: node
- linkType: hard
-
"p-event@npm:^4.1.0":
version: 4.2.0
resolution: "p-event@npm:4.2.0"
@@ -22088,10 +22018,10 @@ __metadata:
languageName: node
linkType: hard
-"picocolors@npm:^1.0.0":
- version: 1.0.0
- resolution: "picocolors@npm:1.0.0"
- checksum: 10c0/20a5b249e331c14479d94ec6817a182fd7a5680debae82705747b2db7ec50009a5f6648d0621c561b0572703f84dbef0858abcbd5856d3c5511426afcb1961f7
+"picocolors@npm:^1.0.0, picocolors@npm:^1.0.1":
+ version: 1.0.1
+ resolution: "picocolors@npm:1.0.1"
+ checksum: 10c0/c63cdad2bf812ef0d66c8db29583802355d4ca67b9285d846f390cc15c2f6ccb94e8cb7eb6a6e97fc5990a6d3ad4ae42d86c84d3146e667c739a4234ed50d400
languageName: node
linkType: hard
@@ -22472,13 +22402,13 @@ __metadata:
linkType: hard
"postcss@npm:^8.2.14, postcss@npm:^8.4.23, postcss@npm:^8.4.27, postcss@npm:^8.4.32, postcss@npm:^8.4.33, postcss@npm:^8.4.35, postcss@npm:^8.4.38":
- version: 8.4.38
- resolution: "postcss@npm:8.4.38"
+ version: 8.4.39
+ resolution: "postcss@npm:8.4.39"
dependencies:
nanoid: "npm:^3.3.7"
- picocolors: "npm:^1.0.0"
+ picocolors: "npm:^1.0.1"
source-map-js: "npm:^1.2.0"
- checksum: 10c0/955407b8f70cf0c14acf35dab3615899a2a60a26718a63c848cf3c29f2467b0533991b985a2b994430d890bd7ec2b1963e36352b0774a19143b5f591540f7c06
+ checksum: 10c0/16f5ac3c4e32ee76d1582b3c0dcf1a1fdb91334a45ad755eeb881ccc50318fb8d64047de4f1601ac96e30061df203f0f2e2edbdc0bfc49b9c57bc9fb9bedaea3
languageName: node
linkType: hard
@@ -22938,24 +22868,12 @@ __metadata:
languageName: node
linkType: hard
-"qs@npm:^6.10.0, qs@npm:^6.10.1, qs@npm:^6.11.2, qs@npm:^6.4.0":
- version: 6.11.2
- resolution: "qs@npm:6.11.2"
- dependencies:
- side-channel: "npm:^1.0.4"
- checksum: 10c0/4f95d4ff18ed480befcafa3390022817ffd3087fc65f146cceb40fc5edb9fa96cb31f648cae2fa96ca23818f0798bd63ad4ca369a0e22702fcd41379b3ab6571
- languageName: node
- linkType: hard
-
-"query-string@npm:^7.0.0":
- version: 7.1.3
- resolution: "query-string@npm:7.1.3"
+"qs@npm:^6.10.0, qs@npm:^6.11.1, qs@npm:^6.11.2, qs@npm:^6.4.0":
+ version: 6.12.3
+ resolution: "qs@npm:6.12.3"
dependencies:
- decode-uri-component: "npm:^0.2.2"
- filter-obj: "npm:^1.1.0"
- split-on-first: "npm:^1.0.0"
- strict-uri-encode: "npm:^2.0.0"
- checksum: 10c0/a896c08e9e0d4f8ffd89a572d11f668c8d0f7df9c27c6f49b92ab31366d3ba0e9c331b9a620ee747893436cd1f2f821a6327e2bc9776bde2402ac6c270b801b2
+ side-channel: "npm:^1.0.6"
+ checksum: 10c0/243ddcc8f49dab78fc51041f7f64c500b47c671c45a101a8aca565d8537cb562921da7ef1a831b4a7051596ec88bb35a0d5e25a240025e8b32c6bfb69f00bf2f
languageName: node
linkType: hard
@@ -22989,13 +22907,6 @@ __metadata:
languageName: node
linkType: hard
-"quick-lru@npm:^5.1.1":
- version: 5.1.1
- resolution: "quick-lru@npm:5.1.1"
- checksum: 10c0/a24cba5da8cec30d70d2484be37622580f64765fb6390a928b17f60cd69e8dbd32a954b3ff9176fa1b86d86ff2ba05252fae55dc4d40d0291c60412b0ad096da
- languageName: node
- linkType: hard
-
"quick-temp@npm:^0.1.3, quick-temp@npm:^0.1.5, quick-temp@npm:^0.1.8":
version: 0.1.8
resolution: "quick-temp@npm:0.1.8"
@@ -24196,13 +24107,6 @@ __metadata:
languageName: node
linkType: hard
-"resolve-alpn@npm:^1.0.0":
- version: 1.2.1
- resolution: "resolve-alpn@npm:1.2.1"
- checksum: 10c0/b70b29c1843bc39781ef946c8cd4482e6d425976599c0f9c138cec8209e4e0736161bf39319b01676a847000085dfdaf63583c6fb4427bf751a10635bd2aa0c4
- languageName: node
- linkType: hard
-
"resolve-from@npm:^4.0.0":
version: 4.0.0
resolution: "resolve-from@npm:4.0.0"
@@ -24326,15 +24230,6 @@ __metadata:
languageName: node
linkType: hard
-"responselike@npm:^2.0.0":
- version: 2.0.1
- resolution: "responselike@npm:2.0.1"
- dependencies:
- lowercase-keys: "npm:^2.0.0"
- checksum: 10c0/360b6deb5f101a9f8a4174f7837c523c3ec78b7ca8a7c1d45a1062b303659308a23757e318b1e91ed8684ad1205721142dd664d94771cd63499353fd4ee732b5
- languageName: node
- linkType: hard
-
"restore-cursor@npm:^3.1.0":
version: 3.1.0
resolution: "restore-cursor@npm:3.1.0"
@@ -24394,9 +24289,9 @@ __metadata:
linkType: hard
"rfdc@npm:^1.3.0":
- version: 1.3.0
- resolution: "rfdc@npm:1.3.0"
- checksum: 10c0/a17fd7b81f42c7ae4cb932abd7b2f677b04cc462a03619fb46945ae1ccae17c3bc87c020ffdde1751cbfa8549860a2883486fdcabc9b9de3f3108af32b69a667
+ version: 1.4.1
+ resolution: "rfdc@npm:1.4.1"
+ checksum: 10c0/4614e4292356cafade0b6031527eea9bc90f2372a22c012313be1dcc69a3b90c7338158b414539be863fa95bfcb2ddcd0587be696841af4e6679d85e62c060c7
languageName: node
linkType: hard
@@ -24565,15 +24460,15 @@ __metadata:
languageName: node
linkType: hard
-"safe-array-concat@npm:^1.1.0":
- version: 1.1.0
- resolution: "safe-array-concat@npm:1.1.0"
+"safe-array-concat@npm:^1.1.0, safe-array-concat@npm:^1.1.2":
+ version: 1.1.2
+ resolution: "safe-array-concat@npm:1.1.2"
dependencies:
- call-bind: "npm:^1.0.5"
- get-intrinsic: "npm:^1.2.2"
+ call-bind: "npm:^1.0.7"
+ get-intrinsic: "npm:^1.2.4"
has-symbols: "npm:^1.0.3"
isarray: "npm:^2.0.5"
- checksum: 10c0/833d3d950fc7507a60075f9bfaf41ec6dac7c50c7a9d62b1e6b071ecc162185881f92e594ff95c1a18301c881352dd6fd236d56999d5819559db7b92da9c28af
+ checksum: 10c0/12f9fdb01c8585e199a347eacc3bae7b5164ae805cdc8c6707199dbad5b9e30001a50a43c4ee24dc9ea32dbb7279397850e9208a7e217f4d8b1cf5d90129dec9
languageName: node
linkType: hard
@@ -24727,7 +24622,7 @@ __metadata:
languageName: node
linkType: hard
-"schema-utils@npm:^3.0.0, schema-utils@npm:^3.1.1, schema-utils@npm:^3.2.0":
+"schema-utils@npm:^3.1.1, schema-utils@npm:^3.2.0":
version: 3.3.0
resolution: "schema-utils@npm:3.3.0"
dependencies:
@@ -24738,7 +24633,7 @@ __metadata:
languageName: node
linkType: hard
-"schema-utils@npm:^4.0.0":
+"schema-utils@npm:^4.0.0, schema-utils@npm:^4.2.0":
version: 4.2.0
resolution: "schema-utils@npm:4.2.0"
dependencies:
@@ -24908,7 +24803,7 @@ __metadata:
languageName: node
linkType: hard
-"set-function-name@npm:^2.0.0, set-function-name@npm:^2.0.1":
+"set-function-name@npm:^2.0.1, set-function-name@npm:^2.0.2":
version: 2.0.2
resolution: "set-function-name@npm:2.0.2"
dependencies:
@@ -25089,14 +24984,15 @@ __metadata:
languageName: node
linkType: hard
-"side-channel@npm:^1.0.4":
- version: 1.0.4
- resolution: "side-channel@npm:1.0.4"
+"side-channel@npm:^1.0.4, side-channel@npm:^1.0.6":
+ version: 1.0.6
+ resolution: "side-channel@npm:1.0.6"
dependencies:
- call-bind: "npm:^1.0.0"
- get-intrinsic: "npm:^1.0.2"
- object-inspect: "npm:^1.9.0"
- checksum: 10c0/054a5d23ee35054b2c4609b9fd2a0587760737782b5d765a9c7852264710cc39c6dcb56a9bbd6c12cd84071648aea3edb2359d2f6e560677eedadce511ac1da5
+ call-bind: "npm:^1.0.7"
+ es-errors: "npm:^1.3.0"
+ get-intrinsic: "npm:^1.2.4"
+ object-inspect: "npm:^1.13.1"
+ checksum: 10c0/d2afd163dc733cc0a39aa6f7e39bf0c436293510dbccbff446733daeaf295857dbccf94297092ec8c53e2503acac30f0b78830876f0485991d62a90e9cad305f
languageName: node
linkType: hard
@@ -25509,13 +25405,6 @@ __metadata:
languageName: node
linkType: hard
-"split-on-first@npm:^1.0.0":
- version: 1.1.0
- resolution: "split-on-first@npm:1.1.0"
- checksum: 10c0/56df8344f5a5de8521898a5c090023df1d8b8c75be6228f56c52491e0fc1617a5236f2ac3a066adb67a73231eac216ccea7b5b4a2423a543c277cb2f48d24c29
- languageName: node
- linkType: hard
-
"split-string@npm:^3.0.1, split-string@npm:^3.0.2":
version: 3.1.0
resolution: "split-string@npm:3.1.0"
@@ -25612,9 +25501,9 @@ __metadata:
linkType: hard
"store2@npm:^2.14.2":
- version: 2.14.2
- resolution: "store2@npm:2.14.2"
- checksum: 10c0/2f27c3eaa7207b81410e170e7c41379816d22c1566308a9d97fbf853c4facff531fcb2a85f085c7503c578736570972f747c26018ebeaba7d1341fb82a7b6d52
+ version: 2.14.3
+ resolution: "store2@npm:2.14.3"
+ checksum: 10c0/22e1096e6d69590672ca0b7f891d82b060837ef4c3e5df0d4563e6cbed14c52ddf2589fa94b79f4311b6ec41d95d6142e5d01d194539e0175c3fb4090cca8244
languageName: node
linkType: hard
@@ -25711,13 +25600,6 @@ __metadata:
languageName: node
linkType: hard
-"strict-uri-encode@npm:^2.0.0":
- version: 2.0.0
- resolution: "strict-uri-encode@npm:2.0.0"
- checksum: 10c0/010cbc78da0e2cf833b0f5dc769e21ae74cdc5d5f5bd555f14a4a4876c8ad2c85ab8b5bdf9a722dc71a11dcd3184085e1c3c0bd50ec6bb85fffc0f28cf82597d
- languageName: node
- linkType: hard
-
"string-argv@npm:0.3.2":
version: 0.3.2
resolution: "string-argv@npm:0.3.2"
@@ -25766,52 +25648,56 @@ __metadata:
linkType: hard
"string.prototype.matchall@npm:^4.0.8":
- version: 4.0.10
- resolution: "string.prototype.matchall@npm:4.0.10"
+ version: 4.0.11
+ resolution: "string.prototype.matchall@npm:4.0.11"
dependencies:
- call-bind: "npm:^1.0.2"
- define-properties: "npm:^1.2.0"
- es-abstract: "npm:^1.22.1"
- get-intrinsic: "npm:^1.2.1"
+ call-bind: "npm:^1.0.7"
+ define-properties: "npm:^1.2.1"
+ es-abstract: "npm:^1.23.2"
+ es-errors: "npm:^1.3.0"
+ es-object-atoms: "npm:^1.0.0"
+ get-intrinsic: "npm:^1.2.4"
+ gopd: "npm:^1.0.1"
has-symbols: "npm:^1.0.3"
- internal-slot: "npm:^1.0.5"
- regexp.prototype.flags: "npm:^1.5.0"
- set-function-name: "npm:^2.0.0"
- side-channel: "npm:^1.0.4"
- checksum: 10c0/cd7495fb0de16d43efeee3887b98701941f3817bd5f09351ad1825b023d307720c86394d56d56380563d97767ab25bf5448db239fcecbb85c28e2180f23e324a
+ internal-slot: "npm:^1.0.7"
+ regexp.prototype.flags: "npm:^1.5.2"
+ set-function-name: "npm:^2.0.2"
+ side-channel: "npm:^1.0.6"
+ checksum: 10c0/915a2562ac9ab5e01b7be6fd8baa0b2b233a0a9aa975fcb2ec13cc26f08fb9a3e85d5abdaa533c99c6fc4c5b65b914eba3d80c4aff9792a4c9fed403f28f7d9d
languageName: node
linkType: hard
-"string.prototype.trim@npm:^1.2.8":
- version: 1.2.8
- resolution: "string.prototype.trim@npm:1.2.8"
+"string.prototype.trim@npm:^1.2.9":
+ version: 1.2.9
+ resolution: "string.prototype.trim@npm:1.2.9"
dependencies:
- call-bind: "npm:^1.0.2"
- define-properties: "npm:^1.2.0"
- es-abstract: "npm:^1.22.1"
- checksum: 10c0/4f76c583908bcde9a71208ddff38f67f24c9ec8093631601666a0df8b52fad44dad2368c78895ce83eb2ae8e7068294cc96a02fc971ab234e4d5c9bb61ea4e34
+ call-bind: "npm:^1.0.7"
+ define-properties: "npm:^1.2.1"
+ es-abstract: "npm:^1.23.0"
+ es-object-atoms: "npm:^1.0.0"
+ checksum: 10c0/dcef1a0fb61d255778155006b372dff8cc6c4394bc39869117e4241f41a2c52899c0d263ffc7738a1f9e61488c490b05c0427faa15151efad721e1a9fb2663c2
languageName: node
linkType: hard
-"string.prototype.trimend@npm:^1.0.7":
- version: 1.0.7
- resolution: "string.prototype.trimend@npm:1.0.7"
+"string.prototype.trimend@npm:^1.0.8":
+ version: 1.0.8
+ resolution: "string.prototype.trimend@npm:1.0.8"
dependencies:
- call-bind: "npm:^1.0.2"
- define-properties: "npm:^1.2.0"
- es-abstract: "npm:^1.22.1"
- checksum: 10c0/53c24911c7c4d8d65f5ef5322de23a3d5b6b4db73273e05871d5ab4571ae5638f38f7f19d71d09116578fb060e5a145cc6a208af2d248c8baf7a34f44d32ce57
+ call-bind: "npm:^1.0.7"
+ define-properties: "npm:^1.2.1"
+ es-object-atoms: "npm:^1.0.0"
+ checksum: 10c0/0a0b54c17c070551b38e756ae271865ac6cc5f60dabf2e7e343cceae7d9b02e1a1120a824e090e79da1b041a74464e8477e2da43e2775c85392be30a6f60963c
languageName: node
linkType: hard
-"string.prototype.trimstart@npm:^1.0.7":
- version: 1.0.7
- resolution: "string.prototype.trimstart@npm:1.0.7"
+"string.prototype.trimstart@npm:^1.0.8":
+ version: 1.0.8
+ resolution: "string.prototype.trimstart@npm:1.0.8"
dependencies:
- call-bind: "npm:^1.0.2"
- define-properties: "npm:^1.2.0"
- es-abstract: "npm:^1.22.1"
- checksum: 10c0/0bcf391b41ea16d4fda9c9953d0a7075171fe090d33b4cf64849af94944c50862995672ac03e0c5dba2940a213ad7f53515a668dac859ce22a0276289ae5cf4f
+ call-bind: "npm:^1.0.7"
+ define-properties: "npm:^1.2.1"
+ es-object-atoms: "npm:^1.0.0"
+ checksum: 10c0/d53af1899959e53c83b64a5fd120be93e067da740e7e75acb433849aa640782fb6c7d4cd5b84c954c84413745a3764df135a8afeb22908b86a835290788d8366
languageName: node
linkType: hard
@@ -26860,7 +26746,7 @@ __metadata:
languageName: node
linkType: hard
-"typed-array-buffer@npm:^1.0.1":
+"typed-array-buffer@npm:^1.0.2":
version: 1.0.2
resolution: "typed-array-buffer@npm:1.0.2"
dependencies:
@@ -26871,7 +26757,7 @@ __metadata:
languageName: node
linkType: hard
-"typed-array-byte-length@npm:^1.0.0":
+"typed-array-byte-length@npm:^1.0.1":
version: 1.0.1
resolution: "typed-array-byte-length@npm:1.0.1"
dependencies:
@@ -26884,7 +26770,7 @@ __metadata:
languageName: node
linkType: hard
-"typed-array-byte-offset@npm:^1.0.0":
+"typed-array-byte-offset@npm:^1.0.2":
version: 1.0.2
resolution: "typed-array-byte-offset@npm:1.0.2"
dependencies:
@@ -26898,9 +26784,9 @@ __metadata:
languageName: node
linkType: hard
-"typed-array-length@npm:^1.0.4":
- version: 1.0.5
- resolution: "typed-array-length@npm:1.0.5"
+"typed-array-length@npm:^1.0.6":
+ version: 1.0.6
+ resolution: "typed-array-length@npm:1.0.6"
dependencies:
call-bind: "npm:^1.0.7"
for-each: "npm:^0.3.3"
@@ -26908,7 +26794,7 @@ __metadata:
has-proto: "npm:^1.0.3"
is-typed-array: "npm:^1.1.13"
possible-typed-array-names: "npm:^1.0.0"
- checksum: 10c0/5cc0f79196e70a92f8f40846cfa62b3de6be51e83f73655e137116cf65e3c29a288502b18cc8faf33c943c2470a4569009e1d6da338441649a2db2f135761ad5
+ checksum: 10c0/74253d7dc488eb28b6b2711cf31f5a9dcefc9c41b0681fd1c178ed0a1681b4468581a3626d39cd4df7aee3d3927ab62be06aa9ca74e5baf81827f61641445b77
languageName: node
linkType: hard
@@ -27491,17 +27377,17 @@ __metadata:
languageName: node
linkType: hard
-"update-browserslist-db@npm:^1.0.13":
- version: 1.0.13
- resolution: "update-browserslist-db@npm:1.0.13"
+"update-browserslist-db@npm:^1.1.0":
+ version: 1.1.0
+ resolution: "update-browserslist-db@npm:1.1.0"
dependencies:
- escalade: "npm:^3.1.1"
- picocolors: "npm:^1.0.0"
+ escalade: "npm:^3.1.2"
+ picocolors: "npm:^1.0.1"
peerDependencies:
browserslist: ">= 4.21.0"
bin:
update-browserslist-db: cli.js
- checksum: 10c0/e52b8b521c78ce1e0c775f356cd16a9c22c70d25f3e01180839c407a5dc787fb05a13f67560cbaf316770d26fa99f78f1acd711b1b54a4f35d4820d4ea7136e6
+ checksum: 10c0/a7452de47785842736fb71547651c5bbe5b4dc1e3722ccf48a704b7b34e4dcf633991eaa8e4a6a517ffb738b3252eede3773bef673ef9021baa26b056d63a5b9
languageName: node
linkType: hard
@@ -27539,8 +27425,8 @@ __metadata:
linkType: hard
"use-callback-ref@npm:^1.3.0":
- version: 1.3.1
- resolution: "use-callback-ref@npm:1.3.1"
+ version: 1.3.2
+ resolution: "use-callback-ref@npm:1.3.2"
dependencies:
tslib: "npm:^2.0.0"
peerDependencies:
@@ -27549,7 +27435,7 @@ __metadata:
peerDependenciesMeta:
"@types/react":
optional: true
- checksum: 10c0/6666cd62e13053d03e453b5199037cb8f6475a8f55afd664ff488bd8f2ee2ede4da3b220dd7e60f5ecd4926133364fbf4b1aed463eeb8203e7c5be3b1533b59b
+ checksum: 10c0/d232c37160fe3970c99255da19b5fb5299fb5926a5d6141d928a87feb47732c323d29be2f8137d3b1e5499c70d284cd1d9cfad703cc58179db8be24d7dd8f1f2
languageName: node
linkType: hard
@@ -27892,8 +27778,8 @@ __metadata:
linkType: hard
"vite@npm:^4.0.0, vite@npm:^4.0.4":
- version: 4.5.1
- resolution: "vite@npm:4.5.1"
+ version: 4.5.3
+ resolution: "vite@npm:4.5.3"
dependencies:
esbuild: "npm:^0.18.10"
fsevents: "npm:~2.3.2"
@@ -27927,7 +27813,7 @@ __metadata:
optional: true
bin:
vite: bin/vite.js
- checksum: 10c0/352a94b13f793e4bcbc424d680a32507343223eeda8917fde0f23c1fa1ba3db7c806dade8461ca5cfb270154ddb8895a219fdd4384519fe9b8e46d1cf491a890
+ checksum: 10c0/caeb1eecc0a8e0865782899e2f83d2993a9816562badc1c8291316d80d49b82f12038abd8cb8b8c627b6f369f58dfb25972ef4517d5e6e1b6e1bf7ee5b63a8a6
languageName: node
linkType: hard
@@ -28087,15 +27973,16 @@ __metadata:
languageName: node
linkType: hard
-"vue-docgen-api@npm:^4.46.0, vue-docgen-api@npm:^4.75.1":
- version: 4.75.1
- resolution: "vue-docgen-api@npm:4.75.1"
+"vue-docgen-api@npm:^4.75.1":
+ version: 4.79.1
+ resolution: "vue-docgen-api@npm:4.79.1"
dependencies:
- "@babel/parser": "npm:^7.21.4"
- "@babel/types": "npm:^7.21.4"
+ "@babel/parser": "npm:^7.24.7"
+ "@babel/types": "npm:^7.24.7"
"@vue/compiler-dom": "npm:^3.2.0"
"@vue/compiler-sfc": "npm:^3.2.0"
ast-types: "npm:^0.16.1"
+ esm-resolve: "npm:^1.0.8"
hash-sum: "npm:^2.0.0"
lru-cache: "npm:^8.0.3"
pug: "npm:^3.0.2"
@@ -28104,7 +27991,7 @@ __metadata:
vue-inbrowser-compiler-independent-utils: "npm:^4.69.0"
peerDependencies:
vue: ">=2"
- checksum: 10c0/5351000af100c08989bfe8daf6b396ec57247e9f5eb22e06c81cfc6ac694b2a2159c9abaa15409818a0a3e85887b4a3a64f9bca091b8f94e26bfe15a6849146a
+ checksum: 10c0/108c551d3bc4fa0fd84ae54a26572af6cd6fb8c53d9f0ba0f8e20660571f6a5259f5b7fcdb6e078645741df7bea42df7ebf3956d1ffa91289d71ff4679e2f470
languageName: node
linkType: hard
@@ -28419,13 +28306,13 @@ __metadata:
linkType: hard
"webpack-hot-middleware@npm:^2.25.1":
- version: 2.25.4
- resolution: "webpack-hot-middleware@npm:2.25.4"
+ version: 2.26.1
+ resolution: "webpack-hot-middleware@npm:2.26.1"
dependencies:
ansi-html-community: "npm:0.0.8"
html-entities: "npm:^2.1.0"
strip-ansi: "npm:^6.0.0"
- checksum: 10c0/c0702d308a39bdbc9277d66df50272e8c358c2238cecb0881df57136f54cb7a3d8291320b13075325b58f7a3cbf7a1ef10829554a5bc2ddfa3effbf416dc8e8c
+ checksum: 10c0/13a3e78009e373b4ee990ffe1d4d49046e9893148a7106f063e11f962d02b744ea58b1dec25f5e76723c9dce678b9e68c883e7f2af2940aaf4de7aab31264c83
languageName: node
linkType: hard
@@ -28619,16 +28506,16 @@ __metadata:
languageName: node
linkType: hard
-"which-typed-array@npm:^1.1.14, which-typed-array@npm:^1.1.2, which-typed-array@npm:^1.1.9":
- version: 1.1.14
- resolution: "which-typed-array@npm:1.1.14"
+"which-typed-array@npm:^1.1.14, which-typed-array@npm:^1.1.15, which-typed-array@npm:^1.1.2, which-typed-array@npm:^1.1.9":
+ version: 1.1.15
+ resolution: "which-typed-array@npm:1.1.15"
dependencies:
- available-typed-arrays: "npm:^1.0.6"
- call-bind: "npm:^1.0.5"
+ available-typed-arrays: "npm:^1.0.7"
+ call-bind: "npm:^1.0.7"
for-each: "npm:^0.3.3"
gopd: "npm:^1.0.1"
- has-tostringtag: "npm:^1.0.1"
- checksum: 10c0/0960f1e77807058819451b98c51d4cd72031593e8de990b24bd3fc22e176f5eee22921d68d852297c786aec117689f0423ed20aa4fde7ce2704d680677891f56
+ has-tostringtag: "npm:^1.0.2"
+ checksum: 10c0/4465d5348c044032032251be54d8988270e69c6b7154f8fcb2a47ff706fe36f7624b3a24246b8d9089435a8f4ec48c1c1025c5d6b499456b9e5eff4f48212983
languageName: node
linkType: hard
@@ -28875,9 +28762,11 @@ __metadata:
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
+ version: 2.4.5
+ resolution: "yaml@npm:2.4.5"
+ bin:
+ yaml: bin.mjs
+ checksum: 10c0/e1ee78b381e5c710f715cc4082fd10fc82f7f5c92bd6f075771d20559e175616f56abf1c411f545ea0e9e16e4f84a83a50b42764af5f16ec006328ba9476bb31
languageName: node
linkType: hard
diff --git a/docs/_assets/api/story-pipeline-playwright-ct.png b/docs/_assets/api/story-pipeline-playwright-ct.png
deleted file mode 100644
index e90239dce803..000000000000
Binary files a/docs/_assets/api/story-pipeline-playwright-ct.png and /dev/null differ
diff --git a/docs/_assets/api/story-pipeline-playwright.png b/docs/_assets/api/story-pipeline-playwright.png
new file mode 100644
index 000000000000..964c11f29635
Binary files /dev/null and b/docs/_assets/api/story-pipeline-playwright.png differ
diff --git a/docs/_assets/api/story-pipeline.png b/docs/_assets/api/story-pipeline.png
index a77dc956b313..7e3932de10e2 100644
Binary files a/docs/_assets/api/story-pipeline.png and b/docs/_assets/api/story-pipeline.png differ
diff --git a/docs/_snippets/before-all-in-preview.md b/docs/_snippets/before-all-in-preview.md
new file mode 100644
index 000000000000..6cd7e246a19b
--- /dev/null
+++ b/docs/_snippets/before-all-in-preview.md
@@ -0,0 +1,24 @@
+```js filename=".storybook/preview.js" renderer="common" language="js"
+import { init } from '../project-bootstrap';
+
+export default {
+ async beforeAll() {
+ await init();
+ },
+};
+```
+
+```ts filename=".storybook/preview.ts" renderer="common" language="ts"
+// Replace your-renderer with the renderer you are using (e.g., react, vue3, angular, etc.)
+import { Preview } from '@storybook/your-renderer';
+
+import { init } from '../project-bootstrap';
+
+const preview: Preview = {
+ async beforeAll() {
+ await init();
+ },
+};
+
+export default preview;
+```
diff --git a/docs/_snippets/before-each-in-preview.md b/docs/_snippets/before-each-in-preview.md
new file mode 100644
index 000000000000..47abe76c5057
--- /dev/null
+++ b/docs/_snippets/before-each-in-preview.md
@@ -0,0 +1,24 @@
+```js filename=".storybook/preview.js" renderer="common" language="js"
+import MockDate from 'mockdate';
+
+export default {
+ async beforeEach() {
+ MockDate.reset()
+ }
+};
+```
+
+```ts filename=".storybook/preview.ts" renderer="common" language="ts"
+// Replace your-renderer with the renderer you are using (e.g., react, vue3, angular, etc.)
+import { Preview } from '@storybook/your-renderer';
+import MockDate from 'mockdate';
+
+const preview: Preview = {
+ async beforeEach() {
+ MockDate.reset()
+ }
+};
+
+export default preview;
+```
+
diff --git a/docs/_snippets/button-snapshot-test-portable-stories.md b/docs/_snippets/button-snapshot-test-portable-stories.md
index 53ecd7832e07..3afb7bdac9ec 100644
--- a/docs/_snippets/button-snapshot-test-portable-stories.md
+++ b/docs/_snippets/button-snapshot-test-portable-stories.md
@@ -1,14 +1,12 @@
```js filename="test/Button.test.js|ts" renderer="react" language="js" tabTitle="jest"
-import { render } from '@testing-library/react';
-
import { composeStories } from '@storybook/react';
import * as stories from '../stories/Button.stories';
const { Primary } = composeStories(stories);
test('Button snapshot', async () => {
- const mounted = render();
- expect(mounted.container).toMatchSnapshot();
+ await Primary.play();
+ expect(document.body.firstChild).toMatchSnapshot();
});
```
@@ -17,16 +15,14 @@ test('Button snapshot', async () => {
import { expect, test } from 'vitest';
-import { render } from '@testing-library/react';
-
import { composeStories } from '@storybook/react';
import * as stories from '../stories/Button.stories';
const { Primary } = composeStories(stories);
test('Button snapshot', async () => {
- const mounted = render(Primary());
- expect(mounted.container).toMatchSnapshot();
+ await Primary.play();
+ expect(document.body.firstChild).toMatchSnapshot();
});
```
@@ -35,16 +31,29 @@ test('Button snapshot', async () => {
import { expect, test } from 'vitest';
-import { render } from '@testing-library/vue';
-
import { composeStories } from '@storybook/vue3';
import * as stories from '../stories/Button.stories';
const { Primary } = composeStories(stories);
test('Button snapshot', async () => {
- const mounted = render(Primary());
- expect(mounted.container).toMatchSnapshot();
+ await Primary.play();
+ expect(document.body.firstChild).toMatchSnapshot();
});
```
+```js filename="__tests__/Button.spec.js|ts" renderer="svelte" language="js"
+// @vitest-environment jsdom
+
+import { expect, test } from 'vitest';
+
+import { composeStories } from '@storybook/svelte';
+
+import * as stories from '../stories/Button.stories';
+
+const { Primary } = composeStories(stories);
+test('Button snapshot', async () => {
+ await Primary.play();
+ expect(document.body.firstChild).toMatchSnapshot();
+});
+```
diff --git a/docs/_snippets/component-test-with-testing-library.md b/docs/_snippets/component-test-with-testing-library.md
index 856d5e0581bc..a8fd8558dde1 100644
--- a/docs/_snippets/component-test-with-testing-library.md
+++ b/docs/_snippets/component-test-with-testing-library.md
@@ -26,7 +26,7 @@ import { render, fireEvent } from '@testing-library/preact';
import { InvalidForm } from './LoginForm.stories'; //👈 Our stories imported here.
-it('Checks if the form is valid', () => {
+it('Checks if the form is valid', async () => {
const { getByTestId, getByText } = render();
fireEvent.click(getByText('Submit'));
@@ -39,14 +39,15 @@ it('Checks if the form is valid', () => {
```js filename="Form.test.js|jsx" renderer="react" language="js"
import { fireEvent, render, screen } from '@testing-library/react';
-import { composeStory } from '@storybook/react';
+import { composeStories } from '@storybook/react';
-import Meta, { InvalidForm as InvalidFormStory } from './LoginForm.stories'; //👈 Our stories imported here.
+import * as stories from './LoginForm.stories'; // 👈 Our stories imported here.
-const FormError = composeStory(InvalidFormStory, Meta);
+const { InvalidForm } = composeStories(stories);
-test('Checks if the form is valid', () => {
- render();
+test('Checks if the form is valid', async () => {
+ // Renders the composed story
+ await InvalidForm.play();
const buttonElement = screen.getByRole('button', {
name: 'Submit',
@@ -62,14 +63,15 @@ test('Checks if the form is valid', () => {
```ts filename="Form.test.ts|tsx" renderer="react" language="ts"
import { fireEvent, render, screen } from '@testing-library/react';
-import { composeStory } from '@storybook/react';
+import { composeStories } from '@storybook/react';
-import Meta, { InvalidForm as InvalidFormStory } from './LoginForm.stories'; //👈 Our stories imported here.
+import * as stories from './LoginForm.stories'; // 👈 Our stories imported here.
-const FormError = composeStory(InvalidFormStory, Meta);
+const { InvalidForm } = composeStories(stories);
-test('Checks if the form is valid', () => {
- render();
+test('Checks if the form is valid', async () => {
+ // Renders the composed story
+ await InvalidForm.play();
const buttonElement = screen.getByRole('button', {
name: 'Submit',
@@ -82,21 +84,22 @@ test('Checks if the form is valid', () => {
});
```
-```js filename="Form.test.js|ts" renderer="svelte" language="js"
-import { render, fireEvent } from '@testing-library/svelte';
+```js filename="Form.test.js" renderer="svelte" language="js"
+import { fireEvent, render, screen } from '@testing-library/svelte';
-import LoginForm from './LoginForm.svelte';
+import { composeStories } from '@storybook/svelte';
-import { InvalidForm } from './LoginForm.stories'; //👈 Our stories imported here.
+import * as stories from './LoginForm.stories'; // 👈 Our stories imported here.
+
+const { InvalidForm } = composeStories(stories);
it('Checks if the form is valid', async () => {
- const { getByTestId, getByText } = render(LoginForm, {
- props: InvalidForm.args,
- });
+ // Renders the composed story
+ await InvalidForm.play();
- await fireEvent.click(getByText('Submit'));
+ await fireEvent.click(screen.getByText('Submit'));
- const isFormValid = getByTestId('invalid-form');
+ const isFormValid = screen.getByTestId('invalid-form');
expect(isFormValid).toBeInTheDocument();
});
```
@@ -104,14 +107,15 @@ it('Checks if the form is valid', async () => {
```js filename="tests/Form.test.js" renderer="vue" language="js" tabTitle="3"
import { fireEvent, render, screen } from '@testing-library/vue';
-import { composeStory } from '@storybook/vue3';
+import { composeStories } from '@storybook/vue3';
-import Meta, { InvalidForm as InvalidFormStory } from './LoginForm.stories'; //👈 Our stories imported here.
+import * as stories from './LoginForm.stories'; // 👈 Our stories imported here.
-const FormError = composeStory(InvalidFormStory, Meta);
+const { InvalidForm } = composeStories(stories);
-test('Checks if the form is valid', () => {
- render(FormError());
+test('Checks if the form is valid', async () => {
+ // Renders the composed story
+ await InvalidForm.play();
const buttonElement = screen.getByRole('button', {
name: 'Submit',
@@ -127,14 +131,15 @@ test('Checks if the form is valid', () => {
```ts filename="tests/Form.test.ts" renderer="vue" language="ts" tabTitle="3"
import { fireEvent, render, screen } from '@testing-library/vue';
-import { composeStory } from '@storybook/vue3';
+import { composeStories } from '@storybook/vue3';
-import Meta, { InvalidForm as InvalidFormStory } from './LoginForm.stories'; //👈 Our stories imported here.
+import * as stories from './LoginForm.stories'; // 👈 Our stories imported here.
-const FormError = composeStory(InvalidFormStory, Meta);
+const { InvalidForm } = composeStories(stories);
-test('Checks if the form is valid', () => {
- render(FormError());
+test('Checks if the form is valid', async () => {
+ // Renders the composed story
+ await InvalidForm.play();
const buttonElement = screen.getByRole('button', {
name: 'Submit',
@@ -146,4 +151,3 @@ test('Checks if the form is valid', () => {
expect(isFormValid).toBeInTheDocument();
});
```
-
diff --git a/docs/_snippets/individual-snapshot-tests-portable-stories.md b/docs/_snippets/individual-snapshot-tests-portable-stories.md
index 8a880b9d8bdb..6a51eb125440 100644
--- a/docs/_snippets/individual-snapshot-tests-portable-stories.md
+++ b/docs/_snippets/individual-snapshot-tests-portable-stories.md
@@ -7,18 +7,15 @@ import 'jest-specific-snapshot';
import { describe, test, expect } from '@jest/globals';
-// Replace your-testing-library with one of the supported testing libraries (e.g., react, vue)
-import { render } from '@testing-library/your-testing-library';
-
-// Adjust the import based on the supported framework or Storybook's testing libraries (e.g., react, vue3)
-import { composeStories } from '@storybook/your-framework';
+// Replace your-renderer with the renderer you are using (e.g., react, vue3, svelte, etc.)
+import { composeStories } from '@storybook/your-renderer';
const compose = (entry) => {
try {
return composeStories(entry);
} catch (e) {
throw new Error(
- `There was an issue composing stories for the module: ${JSON.stringify(entry)}, ${e}`,
+ `There was an issue composing stories for the module: ${JSON.stringify(entry)}, ${e}`
);
}
};
@@ -26,7 +23,7 @@ const compose = (entry) => {
function getAllStoryFiles() {
// Place the glob you want to match your stories files
const storyFiles = glob.sync(
- path.join(__dirname, 'stories/**/*.{stories,story}.{js,jsx,mjs,ts,tsx}'),
+ path.join(__dirname, 'stories/**/*.{stories,story}.{js,jsx,mjs,ts,tsx}')
);
return storyFiles.map((filePath) => {
@@ -48,18 +45,18 @@ describe('Stories Snapshots', () => {
if (stories.length <= 0) {
throw new Error(
- `No stories found for this module: ${title}. Make sure there is at least one valid story for this module.`,
+ `No stories found for this module: ${title}. Make sure there is at least one valid story for this module.`
);
}
stories.forEach(({ name, story }) => {
test(name, async () => {
- const mounted = render(story());
+ await story.play();
// Ensures a consistent snapshot by waiting for the component to render by adding a delay of 1 ms before taking the snapshot.
await new Promise((resolve) => setTimeout(resolve, 1));
// Defines the custom snapshot path location and file name
const customSnapshotPath = `./__snapshots__/${componentName}.test.js.snap`;
- expect(mounted.container).toMatchSpecificSnapshot(customSnapshotPath);
+ expect(document.body.firstChild).toMatchSpecificSnapshot(customSnapshotPath);
});
});
});
@@ -79,11 +76,8 @@ import "jest-specific-snapshot";
import { describe, test, expect } from "@jest/globals";
-// Replace your-testing-library with one of the supported testing libraries (e.g., react, vue)
-import { render } from '@testing-library/your-testing-library';
-
-// Adjust the import based on the supported framework or Storybook's testing libraries (e.g., react, vue3)
-import { composeStories } from '@storybook/your-framework';
+// Replace your-renderer with the renderer you are using (e.g., react, vue3, svelte, etc.)
+import { composeStories } from '@storybook/your-renderer';
type StoryFile = {
default: Meta;
@@ -137,12 +131,12 @@ describe("Stories Snapshots", () => {
stories.forEach(({ name, story }) => {
test(name, async () => {
- const mounted = render(story());
+ await story.play();
// Ensures a consistent snapshot by waiting for the component to render by adding a delay of 1 ms before taking the snapshot.
await new Promise((resolve) => setTimeout(resolve, 1));
// Defines the custom snapshot path location and file name
const customSnapshotPath = `./__snapshots__/${componentName}.test.ts.snap`;
- expect(mounted.container).toMatchSpecificSnapshot(customSnapshotPath);
+ expect(document.body.firstChild).toMatchSpecificSnapshot(customSnapshotPath);
});
});
});
@@ -155,18 +149,15 @@ describe("Stories Snapshots", () => {
import path from 'path';
import { describe, expect, test } from 'vitest';
-// Replace your-testing-library with one of the supported testing libraries (e.g., react, vue)
-import { render } from '@testing-library/your-testing-library';
-
-// Adjust the import based on the supported framework or Storybook's testing libraries (e.g., react, vue3)
-import { composeStories } from '@storybook/your-framework';
+// Replace your-renderer with the renderer you are using (e.g., react, vue3, svelte, etc.)
+import { composeStories } from '@storybook/your-renderer';
const compose = (entry) => {
try {
return composeStories(entry);
} catch (error) {
throw new Error(
- `There was an issue composing stories for the module: ${JSON.stringify(entry)}, ${error}`,
+ `There was an issue composing stories for the module: ${JSON.stringify(entry)}, ${error}`
);
}
};
@@ -175,7 +166,7 @@ function getAllStoryFiles() {
const storyFiles = Object.entries(
import.meta.glob('./stories/**/*.(stories|story).@(js|jsx|mjs|ts|tsx)', {
eager: true,
- }),
+ })
);
return storyFiles.map(([filePath, storyFile]) => {
@@ -194,18 +185,18 @@ describe('Stories Snapshots', () => {
if (stories.length <= 0) {
throw new Error(
- `No stories found for this module: ${title}. Make sure there is at least one valid story for this module.`,
+ `No stories found for this module: ${title}. Make sure there is at least one valid story for this module.`
);
}
stories.forEach(({ name, story }) => {
test(name, async () => {
- const mounted = render(story());
+ await story.play();
// Ensures a consistent snapshot by waiting for the component to render by adding a delay of 1 ms before taking the snapshot.
await new Promise((resolve) => setTimeout(resolve, 1));
// Defines the custom snapshot path location and file name
const customSnapshotPath = `./__snapshots__/${componentName}.spec.js.snap`;
- expect(mounted.container).toMatchFileSnapshot(customSnapshotPath);
+ expect(document.body.firstChild).toMatchFileSnapshot(customSnapshotPath);
});
});
});
@@ -222,11 +213,8 @@ import type { Meta, StoryFn } from '@storybook/your-framework';
import path from 'path';
import { describe, expect, test } from 'vitest';
-// Replace your-testing-library with one of the supported testing libraries (e.g., react, vue)
-import { render } from '@testing-library/your-testing-library';
-
-// Adjust the import based on the supported framework or Storybook's testing libraries (e.g., react, vue3)
-import { composeStories } from '@storybook/your-framework';
+// Replace your-renderer with the renderer you are using (e.g., react, vue3, svelte, etc.)
+import { composeStories } from '@storybook/your-renderer';
type StoryFile = {
default: Meta;
@@ -238,7 +226,7 @@ const compose = (entry: StoryFile): ReturnType>
return composeStories(entry);
} catch (e) {
throw new Error(
- `There was an issue composing stories for the module: ${JSON.stringify(entry)}, ${e}`,
+ `There was an issue composing stories for the module: ${JSON.stringify(entry)}, ${e}`
);
}
};
@@ -248,7 +236,7 @@ function getAllStoryFiles() {
const storyFiles = Object.entries(
import.meta.glob('./stories/**/*.(stories|story).@(js|jsx|mjs|ts|tsx)', {
eager: true,
- }),
+ })
);
return storyFiles.map(([filePath, storyFile]) => {
@@ -268,22 +256,21 @@ describe('Stories Snapshots', () => {
if (stories.length <= 0) {
throw new Error(
- `No stories found for this module: ${title}. Make sure there is at least one valid story for this module.`,
+ `No stories found for this module: ${title}. Make sure there is at least one valid story for this module.`
);
}
stories.forEach(({ name, story }) => {
test(name, async () => {
- const mounted = render(story());
+ await story.play();
// Ensures a consistent snapshot by waiting for the component to render by adding a delay of 1 ms before taking the snapshot.
await new Promise((resolve) => setTimeout(resolve, 1));
// Defines the custom snapshot path location and file name
const customSnapshotPath = `./__snapshots__/${componentName}.spec.ts.snap`;
- expect(mounted.container).toMatchFileSnapshot(customSnapshotPath);
+ expect(document.body.firstChild).toMatchFileSnapshot(customSnapshotPath);
});
});
});
});
});
```
-
diff --git a/docs/_snippets/main-config-refs.md b/docs/_snippets/main-config-refs.md
index 28dfa042cf74..2e477f4b7a43 100644
--- a/docs/_snippets/main-config-refs.md
+++ b/docs/_snippets/main-config-refs.md
@@ -8,6 +8,7 @@ export default {
title: 'Storybook Design System',
url: 'https://master--5ccbc373887ca40020446347.chromatic.com/',
expanded: false, // Optional, true by default
+ sourceUrl: 'https://github.com/storybookjs/storybook', // Optional
},
},
};
@@ -24,11 +25,11 @@ const config: StorybookConfig = {
'design-system': {
title: 'Storybook Design System',
url: 'https://master--5ccbc373887ca40020446347.chromatic.com/',
- expanded: false, // Optional, true by default
+ expanded: false, // Optional, true by default,
+ sourceUrl: 'https://github.com/storybookjs/storybook', // Optional
},
},
};
export default config;
```
-
diff --git a/docs/_snippets/mount-advanced.md b/docs/_snippets/mount-advanced.md
new file mode 100644
index 000000000000..7078b662914e
--- /dev/null
+++ b/docs/_snippets/mount-advanced.md
@@ -0,0 +1,135 @@
+```tsx filename="Page.stories.tsx" renderer="react" language="ts"
+export const Default: Story = {
+ play: async ({ mount, args }) => {
+ const note = await db.note.create({
+ data: { title: 'Mount inside of play' },
+ });
+
+ const canvas = await mount(
+ // 👇 Pass data that is created inside of the play function to the component
+ // For example, a just-generated UUID
+
+ );
+
+ await userEvent.click(await canvas.findByRole('menuitem', { name: /login to add/i }));
+ },
+ argTypes: {
+ // 👇 Make the params prop un-controllable, as the value is always overriden in the play function.
+ params: { control: { disable: true } },
+ }
+};
+```
+
+```jsx filename="Page.stories.jsx" renderer="react" language="js"
+export const Default = {
+ play: async ({ mount, args }) => {
+ const note = await db.note.create({
+ data: { title: 'Mount inside of play' },
+ });
+
+ const canvas = await mount(
+ // 👇 Pass data that is created inside of the play function to the component
+ // For example, a just-generated UUID
+
+ );
+
+ await userEvent.click(await canvas.findByRole('menuitem', { name: /login to add/i }));
+ },
+ argTypes: {
+ // 👇 Make the params prop un-controllable, as the value is always overriden in the play function.
+ params: { control: { disable: true } },
+ }
+};
+```
+
+```ts filename="Page.stories.ts" renderer="svelte" language="ts"
+export const Default: Story = {
+ play: async ({ mount, args }) => {
+ const note = await db.note.create({
+ data: { title: 'Mount inside of play' },
+ });
+
+ const canvas = await mount(
+ Page,
+ // 👇 Pass data that is created inside of the play function to the component
+ // For example, a just-generated UUID
+ { props: { ...args, params: { id: String(note.id) } } }
+ );
+
+ await userEvent.click(await canvas.findByRole('menuitem', { name: /login to add/i }));
+ },
+ argTypes: {
+ // 👇 Make the params prop un-controllable, as the value is always overriden in the play function.
+ params: { control: { disable: true } },
+ }
+};
+```
+
+```js filename="Page.stories.js" renderer="svelte" language="js"
+export const Default = {
+ play: async ({ mount, args }) => {
+ const note = await db.note.create({
+ data: { title: 'Mount inside of play' },
+ });
+
+ const canvas = await mount(
+ Page,
+ // 👇 Pass data that is created inside of the play function to the component
+ // For example, a just-generated UUID
+ { props: { ...args, params: { id: String(note.id) } } }
+ );
+
+ await userEvent.click(await canvas.findByRole('menuitem', { name: /login to add/i }));
+ },
+ argTypes: {
+ // 👇 Make the params prop un-controllable, as the value is always overriden in the play function.
+ params: { control: { disable: true } },
+ }
+};
+```
+
+```ts filename="Page.stories.ts" renderer="vue3" language="ts"
+export const Default: Story = {
+ play: async ({ mount, args }) => {
+ const note = await db.note.create({
+ data: { title: 'Mount inside of play' },
+ });
+
+ const canvas = await mount(
+ Page,
+ // 👇 Pass data that is created inside of the play function to the component
+ // For example, a just-generated UUID
+ { props: { ...args, params: { id: String(note.id) } } }
+ );
+
+ await userEvent.click(await canvas.findByRole('menuitem', { name: /login to add/i }));
+ },
+ argTypes: {
+ // 👇 Make the params prop un-controllable, as the value is always overriden in the play function.
+ params: { control: { disable: true } },
+ }
+};
+```
+
+```js filename="Page.stories.js" renderer="vue3" language="js"
+export const Default = {
+ play: async ({ mount, args }) => {
+ const note = await db.note.create({
+ data: { title: 'Mount inside of play' },
+ });
+
+ const canvas = await mount(
+ Page,
+ // 👇 Pass data that is created inside of the play function to the component
+ // For example, a just-generated UUID
+ { props: { ...args, params: { id: String(note.id) } } }
+ );
+
+ await userEvent.click(await canvas.findByRole('menuitem', { name: /login to add/i }));
+ },
+ argTypes: {
+ // 👇 Make the params prop un-controllable, as the value is always overriden in the play function.
+ params: { control: { disable: true } },
+ }
+};
+```
diff --git a/docs/_snippets/mount-basic.md b/docs/_snippets/mount-basic.md
new file mode 100644
index 000000000000..135a9159452a
--- /dev/null
+++ b/docs/_snippets/mount-basic.md
@@ -0,0 +1,44 @@
+```js filename="Page.stories.js" renderer="common" language="js"
+import MockDate from 'mockdate';
+
+// ...rest of story file
+
+export const ChristmasUI = {
+ async play({ mount }) {
+ MockDate.set('2024-12-25');
+ // 👇 Render the component with the mocked date
+ await mount();
+ // ...rest of test
+ },
+};
+```
+
+```ts filename="Page.stories.ts" renderer="common" language="ts-4-9"
+import MockDate from 'mockdate';
+
+// ...rest of story file
+
+export const ChristmasUI: Story = {
+ async play({ mount }) {
+ MockDate.set('2024-12-25');
+ // 👇 Render the component with the mocked date
+ await mount();
+ // ...rest of test
+ },
+};
+```
+
+```ts filename="Page.stories.ts" renderer="common" language="ts"
+import MockDate from 'mockdate';
+
+// ...rest of story file
+
+export const ChristmasUI: Story = {
+ async play({ mount }) {
+ MockDate.set('2024-12-25');
+ // 👇 Render the component with the mocked date
+ await mount();
+ // ...rest of test
+ },
+};
+```
diff --git a/docs/_snippets/multiple-stories-test.md b/docs/_snippets/multiple-stories-test.md
index 8090af22bfcb..19b6d38d2b61 100644
--- a/docs/_snippets/multiple-stories-test.md
+++ b/docs/_snippets/multiple-stories-test.md
@@ -1,5 +1,5 @@
```js filename="Form.test.js|jsx" renderer="react" language="js"
-import { fireEvent, render, screen } from '@testing-library/react';
+import { fireEvent, screen } from '@testing-library/react';
import { composeStories } from '@storybook/react';
@@ -7,8 +7,8 @@ import * as FormStories from './LoginForm.stories';
const { InvalidForm, ValidForm } = composeStories(FormStories);
-test('Tests invalid form state', () => {
- render();
+test('Tests invalid form state', async () => {
+ await InvalidForm.play();
const buttonElement = screen.getByRole('button', {
name: 'Submit',
@@ -20,8 +20,8 @@ test('Tests invalid form state', () => {
expect(isFormValid).toBeInTheDocument();
});
-test('Tests filled form', () => {
- render();
+test('Tests filled form', async () => {
+ await ValidForm.play();
const buttonElement = screen.getByRole('button', {
name: 'Submit',
@@ -35,7 +35,7 @@ test('Tests filled form', () => {
```
```ts filename="Form.test.ts|tsx" renderer="react" language="ts"
-import { fireEvent, render, screen } from '@testing-library/react';
+import { fireEvent, screen } from '@testing-library/react';
import { composeStories } from '@storybook/react';
@@ -43,8 +43,8 @@ import * as FormStories from './LoginForm.stories';
const { InvalidForm, ValidForm } = composeStories(FormStories);
-test('Tests invalid form state', () => {
- render();
+test('Tests invalid form state', async () => {
+ await InvalidForm.play();
const buttonElement = screen.getByRole('button', {
name: 'Submit',
@@ -56,8 +56,8 @@ test('Tests invalid form state', () => {
expect(isFormValid).toBeInTheDocument();
});
-test('Tests filled form', () => {
- render();
+test('Tests filled form', async () => {
+ await ValidForm.play();
const buttonElement = screen.getByRole('button', {
name: 'Submit',
@@ -71,7 +71,7 @@ test('Tests filled form', () => {
```
```js filename="tests/Form.test.js" renderer="vue" language="js" tabTitle="3"
-import { fireEvent, render, screen } from '@testing-library/vue';
+import { fireEvent, screen } from '@testing-library/vue';
import { composeStories } from '@storybook/vue3';
@@ -79,8 +79,8 @@ import * as FormStories from './LoginForm.stories';
const { InvalidForm, ValidForm } = composeStories(FormStories);
-test('Tests invalid form state', () => {
- render(InvalidForm());
+test('Tests invalid form state', async () => {
+ await InvalidForm.play();
const buttonElement = screen.getByRole('button', {
name: 'Submit',
@@ -92,8 +92,8 @@ test('Tests invalid form state', () => {
expect(isFormValid).toBeInTheDocument();
});
-test('Tests filled form', () => {
- render(ValidForm());
+test('Tests filled form', async () => {
+ await ValidForm.play();
const buttonElement = screen.getByRole('button', {
name: 'Submit',
@@ -107,7 +107,7 @@ test('Tests filled form', () => {
```
```ts filename="tests/Form.test.ts" renderer="vue" language="ts" tabTitle="3"
-import { fireEvent, render, screen } from '@testing-library/vue';
+import { fireEvent, screen } from '@testing-library/vue';
import { composeStories } from '@storybook/vue3';
@@ -115,8 +115,8 @@ import * as FormStories from './LoginForm.stories';
const { InvalidForm, ValidForm } = composeStories(FormStories);
-test('Tests invalid form state', () => {
- render(InvalidForm());
+test('Tests invalid form state', async () => {
+ await InvalidForm.play();
const buttonElement = screen.getByRole('button', {
name: 'Submit',
@@ -128,8 +128,8 @@ test('Tests invalid form state', () => {
expect(isFormValid).toBeInTheDocument();
});
-test('Tests filled form', () => {
- render(ValidForm());
+test('Tests filled form', async () => {
+ await ValidForm.play();
const buttonElement = screen.getByRole('button', {
name: 'Submit',
@@ -141,4 +141,3 @@ test('Tests filled form', () => {
expect(isFormValid).not.toBeInTheDocument();
});
```
-
diff --git a/docs/_snippets/override-compose-story-test.md b/docs/_snippets/override-compose-story-test.md
index 9b0784ab1c92..512f386284e3 100644
--- a/docs/_snippets/override-compose-story-test.md
+++ b/docs/_snippets/override-compose-story-test.md
@@ -1,144 +1,37 @@
-```js filename="Form.test.js|jsx" renderer="react" language="js" tabTitle="compose-stories"
-import { composeStories } from '@storybook/react';
+```js filename="Form.test.js|ts" renderer="common" language="js" tabTitle="compose-stories"
+// Replace your-renderer with the renderer you are using (e.g., react, vue3, svelte, etc.)
+import { composeStories } from '@storybook/your-renderer';
-import * as FormStories from './LoginForm.stories';
+import * as stories from './LoginForm.stories';
-const { ValidForm } = composeStories(FormStories, {
+const { ValidForm } = composeStories(stories, {
decorators: [
- // Define your story-level decorators here
+ // Decorators defined here will be added to all composed stories from this function
],
globalTypes: {
- // Define your global types here
+ // Override globals for all composed stories from this function
},
parameters: {
- // Define your story-level parameters here
+ // Override parameters for all composed stories from this function
},
});
```
-```ts filename="Form.test.ts|tsx" renderer="react" language="ts" tabTitle="compose-stories"
-import { composeStories } from '@storybook/react';
-
-import * as FormStories from './LoginForm.stories';
-
-const { ValidForm } = composeStories(FormStories, {
- decorators: [
- // Define your story-level decorators here
- ],
- globalTypes: {
- // Define your global types here
- },
- parameters: {
- // Define your story-level parameters here
- },
-});
-```
-
-```js filename="Form.test.js|jsx" renderer="react" language="js" tabTitle="compose-story"
-import { composeStory } from '@storybook/react';
-
-import Meta, { ValidForm as ValidFormStory } from './LoginForm.stories';
-
-const FormValidation = composeStory(ValidFormStory, Meta, {
- decorators: [
- // Define your story-level decorators here
- ],
- globalTypes: {
- // Define your global types here
- },
- parameters: {
- // Define your story-level parameters here
- },
-});
-```
-
-```ts filename="Form.test.ts|tsx" renderer="react" language="ts" tabTitle="compose-story"
-import { composeStory } from '@storybook/react';
-
-import Meta, { ValidForm as ValidFormStory } from './LoginForm.stories';
-
-const FormValidation = composeStory(ValidFormStory, Meta, {
- decorators: [
- // Define your story-level decorators here
- ],
- globalTypes: {
- // Define your global types here
- },
- parameters: {
- // Define your story-level parameters here
- },
-});
-```
-
-```js filename="tests/Form.test.js" renderer="vue" language="js" tabTitle="compose-stories-3"
-import { composeStory } from '@storybook/vue3';
-
-import * as FormStories from './LoginForm.stories';
-
-const { ValidForm } = composeStories(FormStories, {
- decorators: [
- // Define your story-level decorators here
- ],
- globalTypes: {
- // Define your global types here
- },
- parameters: {
- // Define your story-level parameters here
- },
-});
-```
-
-```ts filename="tests/Form.test.ts" renderer="vue" language="ts" tabTitle="compose-stories-3"
-import { composeStory } from '@storybook/vue3';
-
-import * as FormStories from './LoginForm.stories';
-
-const { ValidForm } = composeStories(FormStories, {
- decorators: [
- // Define your story-level decorators here
- ],
- globalTypes: {
- // Define your global types here
- },
- parameters: {
- // Define your story-level parameters here
- },
-});
-```
-
-```js filename="tests/Form.test.js" renderer="vue" language="js" tabTitle="compose-story-3"
-import { composeStory } from '@storybook/vue3';
+```js filename="Form.test.js|ts" renderer="common" language="js" tabTitle="compose-story"
+// Replace your-renderer with the renderer you are using (e.g., react, vue3, svelte, etc.)
+import { composeStories } from '@storybook/your-renderer';
import Meta, { ValidForm as ValidFormStory } from './LoginForm.stories';
-const FormValidation = composeStory(ValidFormStory, Meta, {
+const ValidForm = composeStory(ValidFormStory, Meta, {
decorators: [
- // Define your story-level decorators here
+ // Decorators defined here will be added to this story
],
globalTypes: {
- // Define your global types here
+ // Override globals for this story
},
parameters: {
- // Define your story-level parameters here
+ // Override parameters for this story
},
});
```
-
-```ts filename="tests/Form.test.ts" renderer="vue" language="ts" tabTitle="compose-story-3"
-import { composeStory } from '@storybook/vue3';
-
-import Meta, { ValidForm as ValidFormStory } from './LoginForm.stories';
-
-const FormValidation = composeStory(ValidFormStory, Meta, {
- decorators: [
- // Define your story-level decorators here
- ],
- globalTypes: {
- // Define your global types here
- },
- parameters: {
- // Define your story-level parameters here
- },
-});
-```
-
diff --git a/docs/_snippets/portable-stories-import-annotations.md b/docs/_snippets/portable-stories-import-annotations.md
deleted file mode 100644
index 6ef2a8360b1e..000000000000
--- a/docs/_snippets/portable-stories-import-annotations.md
+++ /dev/null
@@ -1,11 +0,0 @@
-```js filename="setupFile.js|ts" renderer="common" language="js"
-// Adjust the import based on the supported framework or Storybook's testing libraries (e.g., react, testing-vue3)
-import { setProjectAnnotations } from '@storybook/your-framework';
-
-// Replace this export with the default export from your Storybook preview file if you're working with a latest version of Storybook
-import * as projectAnnotations from './.storybook/preview';
-
-// Apply the global annotations from the Storybook preview file
-setProjectAnnotations(projectAnnotations);
-```
-
diff --git a/docs/_snippets/portable-stories-jest-compose-story.md b/docs/_snippets/portable-stories-jest-compose-story.md
index ace1548d786a..ed50a5540ba8 100644
--- a/docs/_snippets/portable-stories-jest-compose-story.md
+++ b/docs/_snippets/portable-stories-jest-compose-story.md
@@ -4,14 +4,15 @@ import { render, screen } from '@testing-library/react';
// 👉 Using Next.js? Import from @storybook/nextjs instead
import { composeStory } from '@storybook/react';
-import meta, { Primary } from './Button.stories';
+import meta, { Primary as PrimaryStory } from './Button.stories';
test('onclick handler is called', () => {
// Returns a story which already contains all annotations from story, meta and global levels
- const PrimaryStory = composeStory(Primary, meta);
+ const Primary = composeStory(PrimaryStory, meta);
const onClickSpy = jest.fn();
- render();
+ await Primary.play({ args: { ...Primary.args, onClick: onClickSpy } });
+
const buttonElement = screen.getByRole('button');
buttonElement.click();
expect(onClickSpy).toHaveBeenCalled();
@@ -23,17 +24,17 @@ import { jest, test, expect } from '@jest/globals';
import { render, screen } from '@testing-library/vue';
import { composeStory } from '@storybook/vue3';
-import meta, { Primary } from './Button.stories';
+import meta, { Primary as PrimaryStory } from './Button.stories';
test('onclick handler is called', () => {
// Returns a story which already contains all annotations from story, meta and global levels
- const PrimaryStory = composeStory(Primary, meta);
+ const Primary = composeStory(PrimaryStory, meta);
const onClickSpy = jest.fn();
- render(Primary, { props: { onClick: onClickSpy } });
+ await Primary.play({ args: { ...Primary.args, onClick: onClickSpy } });
+
const buttonElement = screen.getByRole('button');
buttonElement.click();
expect(onClickSpy).toHaveBeenCalled();
});
```
-
diff --git a/docs/_snippets/portable-stories-jest-multi-snapshot-test.md b/docs/_snippets/portable-stories-jest-multi-snapshot-test.md
index 6ed095af7c84..bf9fb2e2426e 100644
--- a/docs/_snippets/portable-stories-jest-multi-snapshot-test.md
+++ b/docs/_snippets/portable-stories-jest-multi-snapshot-test.md
@@ -13,19 +13,20 @@ describe(options.suite, () => {
stories.forEach(({ name, story }) => {
// ...Previously existing code
testFn(name, async () => {
- // ...Previously existing code
+ await story.play();
+ // Ensures a consistent snapshot by waiting for the component to render by adding a delay of 1 ms before taking the snapshot.
+ await new Promise((resolve) => setTimeout(resolve, 1));
//👇 Define the path to save the snapshot to:
const snapshotPath = path.join(
storyDir,
options.snapshotsDirName,
- `${componentName}${options.snapshotExtension}`,
+ `${componentName}${options.snapshotExtension}`
);
- expect(mounted.container).toMatchSpecificSnapshot(snapshotPath);
+ expect(document.body.firstChild).toMatchSpecificSnapshot(snapshotPath);
});
});
});
});
});
```
-
diff --git a/docs/_snippets/portable-stories-jest-override-globals.md b/docs/_snippets/portable-stories-jest-override-globals.md
index 3003ff5fea93..1bf18cd793d0 100644
--- a/docs/_snippets/portable-stories-jest-override-globals.md
+++ b/docs/_snippets/portable-stories-jest-override-globals.md
@@ -1,25 +1,24 @@
```tsx filename="Button.test.tsx" renderer="react" language="ts"
import { test } from '@jest/globals';
-import { render } from '@testing-library/react';
// 👉 Using Next.js? Import from @storybook/nextjs instead
import { composeStory } from '@storybook/react';
-import meta, { Primary } from './Button.stories';
+import meta, { Primary as PrimaryStory } from './Button.stories';
test('renders in English', async () => {
- const PrimaryStory = composeStory(
- Primary,
+ const Primary = composeStory(
+ PrimaryStory,
meta,
- { globals: { locale: 'en' } }, // 👈 Project annotations to override the locale
+ { globals: { locale: 'en' } } // 👈 Project annotations to override the locale
);
- render();
+ await Primary.play();
});
test('renders in Spanish', async () => {
- const PrimaryStory = composeStory(Primary, meta, { globals: { locale: 'es' } });
+ const Primary = composeStory(PrimaryStory, meta, { globals: { locale: 'es' } });
- render();
+ await Primary.play();
});
```
@@ -28,22 +27,21 @@ import { test } from '@jest/globals';
import { render } from '@testing-library/vue';
import { composeStory } from '@storybook/vue3';
-import meta, { Primary } from './Button.stories';
+import meta, { Primary as PrimaryStory } from './Button.stories';
test('renders in English', async () => {
- const PrimaryStory = composeStory(
- Primary,
+ const Primary = composeStory(
+ PrimaryStory,
meta,
- { globals: { locale: 'en' } }, // 👈 Project annotations to override the locale
+ { globals: { locale: 'en' } } // 👈 Project annotations to override the locale
);
- render(PrimaryStory);
+ await Primary.play();
});
test('renders in Spanish', async () => {
- const PrimaryStory = composeStory(Primary, meta, { globals: { locale: 'es' } });
+ const Primary = composeStory(PrimaryStory, meta, { globals: { locale: 'es' } });
- render(PrimaryStory);
+ await Primary.play();
});
```
-
diff --git a/docs/_snippets/portable-stories-jest-set-project-annotations.md b/docs/_snippets/portable-stories-jest-set-project-annotations.md
new file mode 100644
index 000000000000..0dc39a2cf37f
--- /dev/null
+++ b/docs/_snippets/portable-stories-jest-set-project-annotations.md
@@ -0,0 +1,37 @@
+```tsx filename="setupTest.ts" renderer="react" language="ts"
+import { beforeAll } from '@jest/globals';
+import { render as testingLibraryRender } from '@testing-library/react';
+import { setProjectAnnotations } from '@storybook/react';
+// 👇 Import the exported annotations, if any, from the addons you're using; otherwise remove this
+import * as addonAnnotations from 'my-addon/preview';
+import * as previewAnnotations from './.storybook/preview';
+
+const annotations = setProjectAnnotations([
+ previewAnnotations,
+ addonAnnotations,
+ // You MUST provide this option to use portable stories with vitest
+ { testingLibraryRender },
+]);
+
+// Supports beforeAll hook from Storybook
+beforeAll(annotations.beforeAll);
+```
+
+```tsx filename="setupTest.ts" renderer="vue" language="ts"
+import { beforeAll } from '@jest/globals';
+import { render as testingLibraryRender } from '@testing-library/vue';
+import { setProjectAnnotations } from '@storybook/vue3';
+// 👇 Import the exported annotations, if any, from the addons you're using; otherwise remove this
+import * as addonAnnotations from 'my-addon/preview';
+import * as previewAnnotations from './.storybook/preview';
+
+const annotations = setProjectAnnotations([
+ previewAnnotations,
+ addonAnnotations,
+ // You MUST provide this option to use portable stories with vitest
+ { testingLibraryRender },
+]);
+
+// Supports beforeAll hook from Storybook
+beforeAll(annotations.beforeAll);
+```
diff --git a/docs/_snippets/portable-stories-jest-snapshot-test.md b/docs/_snippets/portable-stories-jest-snapshot-test.md
index 93d91f12cd51..3abe940b0c4d 100644
--- a/docs/_snippets/portable-stories-jest-snapshot-test.md
+++ b/docs/_snippets/portable-stories-jest-snapshot-test.md
@@ -4,18 +4,15 @@ import * as glob from 'glob';
import { describe, test, expect } from '@jest/globals';
-// Replace your-testing-library with one of the supported testing libraries (e.g., react, vue)
-import { render } from '@testing-library/your-testing-library';
-
-// Adjust the import based on the supported framework or Storybook's testing libraries (e.g., react, testing-vue3)
-import { composeStories } from '@storybook/your-framework';
+// Replace your-renderer with the renderer you are using (e.g., react, vue3, svelte, etc.)
+import { composeStories } from '@storybook/your-renderer';
const compose = (entry) => {
try {
return composeStories(entry);
} catch (e) {
throw new Error(
- `There was an issue composing stories for the module: ${JSON.stringify(entry)}, ${e}`,
+ `There was an issue composing stories for the module: ${JSON.stringify(entry)}, ${e}`
);
}
};
@@ -23,7 +20,7 @@ const compose = (entry) => {
function getAllStoryFiles() {
// Place the glob you want to match your stories files
const storyFiles = glob.sync(
- path.join(__dirname, 'stories/**/*.{stories,story}.{js,jsx,mjs,ts,tsx}'),
+ path.join(__dirname, 'stories/**/*.{stories,story}.{js,jsx,mjs,ts,tsx}')
);
return storyFiles.map((filePath) => {
@@ -61,7 +58,7 @@ describe(options.suite, () => {
if (stories.length <= 0) {
throw new Error(
- `No stories found for this module: ${title}. Make sure there is at least one valid story for this module, without a disable parameter, or add parameters.storyshots.disable in the default export of this file.`,
+ `No stories found for this module: ${title}. Make sure there is at least one valid story for this module, without a disable parameter, or add parameters.storyshots.disable in the default export of this file.`
);
}
@@ -70,10 +67,10 @@ describe(options.suite, () => {
const testFn = story.parameters.storyshots?.skip ? test.skip : test;
testFn(name, async () => {
- const mounted = render(story());
+ await story.play();
// Ensures a consistent snapshot by waiting for the component to render by adding a delay of 1 ms before taking the snapshot.
await new Promise((resolve) => setTimeout(resolve, 1));
- expect(mounted.container).toMatchSnapshot();
+ expect(document.body.firstChild).toMatchSnapshot();
});
});
});
@@ -90,11 +87,8 @@ import type { Meta, StoryFn } from '@storybook/your-framework';
import { describe, test, expect } from '@jest/globals';
-// Replace your-testing-library with one of the supported testing libraries (e.g., react, vue)
-import { render } from '@testing-library/your-testing-library';
-
-// Adjust the import based on the supported framework or Storybook's testing libraries (e.g., react, testing-vue3)
-import { composeStories } from '@storybook/your-framework';
+// Replace your-renderer with the renderer you are using (e.g., react, vue3, svelte, etc.)
+import { composeStories } from '@storybook/your-renderer';
type StoryFile = {
default: Meta;
@@ -106,7 +100,7 @@ const compose = (entry: StoryFile): ReturnType>
return composeStories(entry);
} catch (e) {
throw new Error(
- `There was an issue composing stories for the module: ${JSON.stringify(entry)}, ${e}`,
+ `There was an issue composing stories for the module: ${JSON.stringify(entry)}, ${e}`
);
}
};
@@ -114,7 +108,7 @@ const compose = (entry: StoryFile): ReturnType>
function getAllStoryFiles() {
// Place the glob you want to match your stories files
const storyFiles = glob.sync(
- path.join(__dirname, 'stories/**/*.{stories,story}.{js,jsx,mjs,ts,tsx}'),
+ path.join(__dirname, 'stories/**/*.{stories,story}.{js,jsx,mjs,ts,tsx}')
);
return storyFiles.map((filePath) => {
@@ -152,7 +146,7 @@ describe(options.suite, () => {
if (stories.length <= 0) {
throw new Error(
- `No stories found for this module: ${title}. Make sure there is at least one valid story for this module, without a disable parameter, or add parameters.storyshots.disable in the default export of this file.`,
+ `No stories found for this module: ${title}. Make sure there is at least one valid story for this module, without a disable parameter, or add parameters.storyshots.disable in the default export of this file.`
);
}
@@ -161,14 +155,13 @@ describe(options.suite, () => {
const testFn = story.parameters.storyshots?.skip ? test.skip : test;
testFn(name, async () => {
- const mounted = render(story());
+ await story.play();
// Ensures a consistent snapshot by waiting for the component to render by adding a delay of 1 ms before taking the snapshot.
await new Promise((resolve) => setTimeout(resolve, 1));
- expect(mounted.container).toMatchSnapshot();
+ expect(document.body.firstChild).toMatchSnapshot();
});
});
});
});
});
```
-
diff --git a/docs/_snippets/portable-stories-jest-with-loaders.md b/docs/_snippets/portable-stories-jest-with-loaders.md
deleted file mode 100644
index 9739f97b4fd5..000000000000
--- a/docs/_snippets/portable-stories-jest-with-loaders.md
+++ /dev/null
@@ -1,37 +0,0 @@
-```tsx filename="Button.test.tsx" renderer="react" language="ts"
-import { test } from '@jest/globals';
-import { render } from '@testing-library/react';
-// 👉 Using Next.js? Import from @storybook/nextjs instead
-import { composeStory } from '@storybook/react';
-
-import meta, { Primary } from './Button.stories';
-
-test('applies the loaders and renders', async () => {
- const PrimaryStory = composeStory(Primary, meta);
-
- // First, load the data for the story
- await PrimaryStory.load();
-
- // Then, render the story
- render();
-});
-```
-
-```ts filename="Button.test.ts" renderer="vue" language="ts"
-import { test } from '@jest/globals';
-import { render } from '@testing-library/vue';
-import { composeStory } from '@storybook/vue3';
-
-import meta, { Primary } from './Button.stories';
-
-test('applies the loaders and renders', async () => {
- const PrimaryStory = composeStory(Primary, meta);
-
- // First, load the data for the story
- await PrimaryStory.load();
-
- // Then, render the story
- render(PrimaryStory);
-});
-```
-
diff --git a/docs/_snippets/portable-stories-jest-with-play-function.md b/docs/_snippets/portable-stories-jest-with-play-function.md
index 69290020787e..2742aae2272f 100644
--- a/docs/_snippets/portable-stories-jest-with-play-function.md
+++ b/docs/_snippets/portable-stories-jest-with-play-function.md
@@ -1,37 +1,28 @@
```tsx filename="Button.test.tsx" renderer="react" language="ts"
import { test } from '@jest/globals';
-import { render } from '@testing-library/react';
// 👉 Using Next.js? Import from @storybook/nextjs instead
-import { composeStory } from '@storybook/react';
+import { composeStories } from '@storybook/react';
-import meta, { Primary } from './Button.stories';
+import * as stories from './Button.stories';
-test('renders and executes the play function', async () => {
- const PrimaryStory = composeStory(Primary, meta);
-
- // First, render the story
- render();
+const { Primary } = composeStories(stories);
- // Then, execute the play function
- await PrimaryStory.play();
+test('renders and executes the play function', async () => {
+ // Mount story and run interactions
+ await Primary.play();
});
```
```ts filename="Button.test.ts" renderer="vue" language="ts"
import { test } from '@jest/globals';
-import { render } from '@testing-library/vue';
-import { composeStory } from '@storybook/vue3';
+import { composeStories } from '@storybook/vue3';
-import meta, { Primary } from './Button.stories';
+import * as stories from './Button.stories';
-test('renders and executes the play function', async () => {
- const PrimaryStory = composeStory(Primary, meta);
+const { Primary } = composeStories(stories);
- // First, render the story
- render(PrimaryStory);
-
- // Then, execute the play function
- await PrimaryStory.play();
+test('renders and executes the play function', async () => {
+ // Mount story and run interactions
+ await Primary.play();
});
```
-
diff --git a/docs/_snippets/portable-stories-playwright-ct-compose-stories.md b/docs/_snippets/portable-stories-playwright-ct-compose-stories.md
new file mode 100644
index 000000000000..997c2650b2a0
--- /dev/null
+++ b/docs/_snippets/portable-stories-playwright-ct-compose-stories.md
@@ -0,0 +1,35 @@
+```tsx filename="playwright/index.tsx" renderer="react" language="ts"
+import { test } from '@playwright/experimental-ct-react';
+import { setProjectAnnotations } from '@storybook/react';
+// 👇 Import the exported annotations, if any, from the addons you're using; otherwise remove this
+import * as addonAnnotations from 'my-addon/preview';
+import * as previewAnnotations from './.storybook/preview';
+
+const annotations = setProjectAnnotations([
+ previewAnnotations,
+ addonAnnotations,
+ // You MUST provide this option to use portable stories with vitest
+ { testingLibraryRender },
+]);
+
+// Supports beforeAll hook from Storybook
+test.beforeAll(annotations.beforeAll);
+```
+
+```tsx filename="playwright/index.tsx" renderer="vue" language="ts"
+import { test } from '@playwright/experimental-ct-vue';
+import { setProjectAnnotations } from '@storybook/vue3';
+// 👇 Import the exported annotations, if any, from the addons you're using; otherwise remove this
+import * as addonAnnotations from 'my-addon/preview';
+import * as previewAnnotations from './.storybook/preview';
+
+const annotations = setProjectAnnotations([
+ previewAnnotations,
+ addonAnnotations,
+ // You MUST provide this option to use portable stories with vitest
+ { testingLibraryRender },
+]);
+
+// Supports beforeAll hook from Storybook
+test.beforeAll(annotations.beforeAll);
+```
diff --git a/docs/_snippets/portable-stories-playwright-ct-override-globals.md b/docs/_snippets/portable-stories-playwright-ct-override-globals.md
new file mode 100644
index 000000000000..edb963f1ff36
--- /dev/null
+++ b/docs/_snippets/portable-stories-playwright-ct-override-globals.md
@@ -0,0 +1,27 @@
+```tsx filename="Button.stories.portable.ts" renderer="react" language="ts"
+import { composeStory } from '@storybook/react';
+
+import meta, { Primary } from './Button.stories';
+
+export const PrimaryEnglish = composeStory(
+ Primary,
+ meta,
+ { globals: { locale: 'en' } } // 👈 Project annotations to override the locale
+);
+
+export const PrimarySpanish = composeStory(Primary, meta, { globals: { locale: 'es' } });
+```
+
+```ts filename="Button.stories.portable.ts" renderer="vue" language="ts"
+import { composeStory } from '@storybook/vue3';
+
+import meta, { Primary } from './Button.stories';
+
+export const PrimaryEnglish = composeStory(
+ Primary,
+ meta,
+ { globals: { locale: 'en' } } // 👈 Project annotations to override the locale
+);
+
+export const PrimarySpanish = composeStory(Primary, meta, { globals: { locale: 'es' } });
+```
diff --git a/docs/_snippets/portable-stories-vitest-compose-stories.md b/docs/_snippets/portable-stories-vitest-compose-stories.md
index 2bcf57f1b998..3e4164a04297 100644
--- a/docs/_snippets/portable-stories-vitest-compose-stories.md
+++ b/docs/_snippets/portable-stories-vitest-compose-stories.md
@@ -1,6 +1,6 @@
```tsx filename="Button.test.tsx" renderer="react" language="ts"
import { test, expect } from 'vitest';
-import { render, screen } from '@testing-library/react';
+import { screen } from '@testing-library/react';
import { composeStories } from '@storybook/react';
// Import all stories and the component annotations from the stories file
@@ -10,15 +10,15 @@ import * as stories from './Button.stories';
// but they already contain all annotations from story, meta, and project levels
const { Primary, Secondary } = composeStories(stories);
-test('renders primary button with default args', () => {
- render();
+test('renders primary button with default args', async () => {
+ await Primary.play();
const buttonElement = screen.getByText('Text coming from args in stories file!');
expect(buttonElement).not.toBeNull();
});
-test('renders primary button with overridden props', () => {
- // You can override props and they will get merged with values from the story's args
- render(Hello world);
+test('renders primary button with overridden props', async () => {
+ // You can override props by passing them in the context argument of the play function
+ await Primary.play({ args: { ...Primary.args, children: 'Hello world' } });
const buttonElement = screen.getByText(/Hello world/i);
expect(buttonElement).not.toBeNull();
});
@@ -26,7 +26,7 @@ test('renders primary button with overridden props', () => {
```ts filename="Button.test.ts" renderer="svelte" language="ts"
import { test, expect } from 'vitest';
-import { render, screen } from '@testing-library/svelte';
+import { screen } from '@testing-library/svelte';
import { composeStories } from '@storybook/svelte';
// Import all stories and the component annotations from the stories file
@@ -36,16 +36,23 @@ import * as stories from './Button.stories';
// but they already contain all annotations from story, meta, and project levels
const { Primary, Secondary } = composeStories(stories);
-test('renders primary button with default args', () => {
- render(Primary.Component, Primary.props);
+test('renders primary button with default args', async () => {
+ await Primary.play();
const buttonElement = screen.getByText('Text coming from args in stories file!');
expect(buttonElement).not.toBeNull();
});
+
+test('renders primary button with overridden props', async () => {
+ // You can override props by passing them in the context argument of the play function
+ await Primary.play({ args: { ...Primary.args, children: 'Hello world' } });
+ const buttonElement = screen.getByText(/Hello world/i);
+ expect(buttonElement).not.toBeNull();
+});
```
```ts filename="Button.test.ts" renderer="vue" language="ts"
import { test, expect } from 'vitest';
-import { render, screen } from '@testing-library/vue';
+import { screen } from '@testing-library/vue';
import { composeStories } from '@storybook/vue3';
// Import all stories and the component annotations from the stories file
@@ -55,17 +62,16 @@ import * as stories from './Button.stories';
// but they already contain all annotations from story, meta, and project levels
const { Primary, Secondary } = composeStories(stories);
-test('renders primary button with default args', () => {
- render(Primary);
+test('renders primary button with default args', async () => {
+ await Primary.play();
const buttonElement = screen.getByText('Text coming from args in stories file!');
expect(buttonElement).not.toBeNull();
});
-test('renders primary button with overridden props', () => {
- // You can override props and they will get merged with values from the story's args
- render(Primary, { props: { label: 'Hello world' } });
+test('renders primary button with overridden props', async () => {
+ // You can override props by passing them in the context argument of the play function
+ await Primary.play({ args: { ...Primary.args, children: 'Hello world' } });
const buttonElement = screen.getByText(/Hello world/i);
expect(buttonElement).not.toBeNull();
});
```
-
diff --git a/docs/_snippets/portable-stories-vitest-compose-story.md b/docs/_snippets/portable-stories-vitest-compose-story.md
index 6dca28621ca3..3e38a8e7e01b 100644
--- a/docs/_snippets/portable-stories-vitest-compose-story.md
+++ b/docs/_snippets/portable-stories-vitest-compose-story.md
@@ -1,19 +1,25 @@
```tsx filename="Button.test.tsx" renderer="react" language="ts"
import { vi, test, expect } from 'vitest';
-import { render, screen } from '@testing-library/react';
+import { screen } from '@testing-library/react';
import { composeStory } from '@storybook/react';
-import meta, { Primary } from './Button.stories';
+import meta, { Primary as PrimaryStory } from './Button.stories';
-test('onclick handler is called', () => {
- // Returns a story which already contains all annotations from story, meta and global levels
- const PrimaryStory = composeStory(Primary, meta);
+// Returns a story which already contains all annotations from story, meta and global levels
+const Primary = composeStory(PrimaryStory, meta);
- const onClickSpy = vi.fn();
- render();
- const buttonElement = screen.getByRole('button');
- buttonElement.click();
- expect(onClickSpy).toHaveBeenCalled();
+test('renders primary button with default args', async () => {
+ await Primary.play();
+
+ const buttonElement = screen.getByText('Text coming from args in stories file!');
+ expect(buttonElement).not.toBeNull();
+});
+
+test('renders primary button with overridden props', async () => {
+ await Primary.play({ args: { ...Primary.args, label: 'Hello world' } });
+
+ const buttonElement = screen.getByText(/Hello world/i);
+ expect(buttonElement).not.toBeNull();
});
```
@@ -22,22 +28,21 @@ import { vi, test, expect } from 'vitest';
import { render, screen } from '@testing-library/svelte';
import { composeStory } from '@storybook/svelte';
-import meta, { Primary } from './Button.stories';
+import meta, { Primary as PrimaryStory } from './Button.stories';
+
+// Returns a story which already contains all annotations from story, meta and global levels
+const Primary = composeStory(PrimaryStory, meta);
-test('renders primary button with default args', () => {
- // Returns a story which already contains all annotations from story, meta and global levels
- const PrimaryStory = composeStory(Primary, meta);
+test('renders primary button with default args', async () => {
+ await Primary.play();
- render(PrimaryStory.Component, PrimaryStory.props);
const buttonElement = screen.getByText('Text coming from args in stories file!');
expect(buttonElement).not.toBeNull();
});
-test('renders primary button with overridden props', () => {
- // You can override props and they will get merged with values from the story's args
- const PrimaryStory = composeStory({ ...Primary, args: { label: 'Hello world' } }, meta);
+test('renders primary button with overridden props', async () => {
+ await Primary.play({ args: { ...Primary.args, label: 'Hello world' } });
- render(PrimaryStory.Component, PrimaryStory.props);
const buttonElement = screen.getByText(/Hello world/i);
expect(buttonElement).not.toBeNull();
});
@@ -48,17 +53,22 @@ import { vi, test, expect } from 'vitest';
import { render, screen } from '@testing-library/vue';
import { composeStory } from '@storybook/vue3';
-import meta, { Primary } from './Button.stories';
+import meta, { Primary as PrimaryStory } from './Button.stories';
-test('onclick handler is called', () => {
- // Returns a story which already contains all annotations from story, meta and global levels
- const PrimaryStory = composeStory(Primary, meta);
+// Returns a story which already contains all annotations from story, meta and global levels
+const Primary = composeStory(PrimaryStory, meta);
- const onClickSpy = vi.fn();
- render(Primary, { props: { onClick: onClickSpy } });
- const buttonElement = screen.getByRole('button');
- buttonElement.click();
- expect(onClickSpy).toHaveBeenCalled();
+test('renders primary button with default args', async () => {
+ await Primary.play();
+
+ const buttonElement = screen.getByText('Text coming from args in stories file!');
+ expect(buttonElement).not.toBeNull();
});
-```
+test('renders primary button with overridden props', async () => {
+ await Primary.play({ args: { ...Primary.args, label: 'Hello world' } });
+
+ const buttonElement = screen.getByText(/Hello world/i);
+ expect(buttonElement).not.toBeNull();
+});
+```
diff --git a/docs/_snippets/portable-stories-vitest-multi-snapshot-test.md b/docs/_snippets/portable-stories-vitest-multi-snapshot-test.md
index b93935d25463..51d3dac4797f 100644
--- a/docs/_snippets/portable-stories-vitest-multi-snapshot-test.md
+++ b/docs/_snippets/portable-stories-vitest-multi-snapshot-test.md
@@ -10,19 +10,20 @@ describe(options.suite, () => {
stories.forEach(({ name, story }) => {
// ...Previously existing code
testFn(name, async () => {
- // ...Previously existing code
+ await story.play();
+ // Ensures a consistent snapshot by waiting for the component to render by adding a delay of 1 ms before taking the snapshot.
+ await new Promise((resolve) => setTimeout(resolve, 1));
// 👇 Define the path to save the snapshot to:
const snapshotPath = path.join(
storyDir,
options.snapshotsDirName,
- `${componentName}${options.snapshotExtension}`,
+ `${componentName}${options.snapshotExtension}`
);
- expect(mounted.container).toMatchFileSnapshot(snapshotPath);
+ expect(document.body.firstChild).toMatchFileSnapshot(snapshotPath);
});
});
});
});
});
```
-
diff --git a/docs/_snippets/portable-stories-vitest-override-globals.md b/docs/_snippets/portable-stories-vitest-override-globals.md
index 1b0ae5460d62..3be33992d7c6 100644
--- a/docs/_snippets/portable-stories-vitest-override-globals.md
+++ b/docs/_snippets/portable-stories-vitest-override-globals.md
@@ -3,22 +3,22 @@ import { test } from 'vitest';
import { render } from '@testing-library/react';
import { composeStory } from '@storybook/react';
-import meta, { Primary } from './Button.stories';
+import meta, { Primary as PrimaryStory } from './Button.stories';
test('renders in English', async () => {
- const PrimaryStory = composeStory(
- Primary,
+ const Primary = composeStory(
+ PrimaryStory,
meta,
- { globals: { locale: 'en' } }, // 👈 Project annotations to override the locale
+ { globals: { locale: 'en' } } // 👈 Project annotations to override the locale
);
- render();
+ await Primary.play();
});
test('renders in Spanish', async () => {
- const PrimaryStory = composeStory(Primary, meta, { globals: { locale: 'es' } });
+ const Primary = composeStory(PrimaryStory, meta, { globals: { locale: 'es' } });
- render();
+ await Primary.play();
});
```
@@ -27,22 +27,22 @@ import { test } from 'vitest';
import { render } from '@testing-library/svelte';
import { composeStory } from '@storybook/svelte';
-import meta, { Primary } from './Button.stories';
+import meta, { Primary as PrimaryStory } from './Button.stories';
test('renders in English', async () => {
- const PrimaryStory = composeStory(
- Primary,
+ const Primary = composeStory(
+ PrimaryStory,
meta,
- { globals: { locale: 'en' } }, // 👈 Project annotations to override the locale
+ { globals: { locale: 'en' } } // 👈 Project annotations to override the locale
);
- render(PrimaryStory.Component, PrimaryStory.props);
+ await Primary.play();
});
test('renders in Spanish', async () => {
- const PrimaryStory = composeStory(Primary, meta, { globals: { locale: 'es' } });
+ const Primary = composeStory(PrimaryStory, meta, { globals: { locale: 'es' } });
- render(PrimaryStory.Component, PrimaryStory.props);
+ await Primary.play();
});
```
@@ -51,22 +51,21 @@ import { test } from 'vitest';
import { render } from '@testing-library/vue';
import { composeStory } from '@storybook/vue3';
-import meta, { Primary } from './Button.stories';
+import meta, { Primary as PrimaryStory } from './Button.stories';
test('renders in English', async () => {
- const PrimaryStory = composeStory(
- Primary,
+ const Primary = composeStory(
+ PrimaryStory,
meta,
- { globals: { locale: 'en' } }, // 👈 Project annotations to override the locale
+ { globals: { locale: 'en' } } // 👈 Project annotations to override the locale
);
- render(PrimaryStory);
+ await Primary.play();
});
test('renders in Spanish', async () => {
- const PrimaryStory = composeStory(Primary, meta, { globals: { locale: 'es' } });
+ const Primary = composeStory(PrimaryStory, meta, { globals: { locale: 'es' } });
- render(PrimaryStory);
+ await Primary.play();
});
```
-
diff --git a/docs/_snippets/portable-stories-vitest-set-project-annotations.md b/docs/_snippets/portable-stories-vitest-set-project-annotations.md
new file mode 100644
index 000000000000..84c9610ea114
--- /dev/null
+++ b/docs/_snippets/portable-stories-vitest-set-project-annotations.md
@@ -0,0 +1,56 @@
+```tsx filename="setupTest.ts" renderer="react" language="ts"
+import { beforeAll } from 'vitest';
+import { render as testingLibraryRender } from '@testing-library/react';
+import { setProjectAnnotations } from '@storybook/react';
+// 👇 Import the exported annotations, if any, from the addons you're using; otherwise remove this
+import * as addonAnnotations from 'my-addon/preview';
+import * as previewAnnotations from './.storybook/preview';
+
+const annotations = setProjectAnnotations([
+ previewAnnotations,
+ addonAnnotations,
+ // You MUST provide this option to use portable stories with vitest
+ { testingLibraryRender },
+]);
+
+// Run Storybook's beforeAll hook
+beforeAll(annotations.beforeAll);
+```
+
+```tsx filename="setupTest.ts" renderer="svelte" language="ts"
+import { beforeAll } from 'vitest';
+import { render as testingLibraryRender } from '@testing-library/svelte';
+import { setProjectAnnotations } from '@storybook/svelte';
+// 👇 Import the exported annotations, if any, from the addons you're using; otherwise remove this
+import * as addonAnnotations from 'my-addon/preview';
+import * as previewAnnotations from './.storybook/preview';
+
+const annotations = setProjectAnnotations([
+ previewAnnotations,
+ addonAnnotations,
+ // You MUST provide this option to use portable stories with vitest
+ { testingLibraryRender },
+]);
+
+// Run Storybook's beforeAll hook
+beforeAll(annotations.beforeAll);
+```
+
+```tsx filename="setupTest.ts" renderer="vue" language="ts"
+import { beforeAll } from 'vitest';
+import { render as testingLibraryRender } from '@testing-library/vue';
+import { setProjectAnnotations } from '@storybook/vue3';
+// 👇 Import the exported annotations, if any, from the addons you're using; otherwise remove this
+import * as addonAnnotations from 'my-addon/preview';
+import * as previewAnnotations from './.storybook/preview';
+
+const annotations = setProjectAnnotations([
+ previewAnnotations,
+ addonAnnotations,
+ // You MUST provide this option to use portable stories with vitest
+ { testingLibraryRender },
+]);
+
+// Run Storybook's beforeAll hook
+beforeAll(annotations.beforeAll);
+```
diff --git a/docs/_snippets/portable-stories-vitest-snapshot-test.md b/docs/_snippets/portable-stories-vitest-snapshot-test.md
index cfb1cb1be7d0..623c451c84c9 100644
--- a/docs/_snippets/portable-stories-vitest-snapshot-test.md
+++ b/docs/_snippets/portable-stories-vitest-snapshot-test.md
@@ -3,18 +3,15 @@
import { describe, expect, test } from 'vitest';
-// Replace your-testing-library with one of the supported testing libraries (e.g., react, vue)
-import { render } from '@testing-library/your-testing-library';
-
-// Adjust the import based on the supported framework or Storybook's testing libraries (e.g., react, testing-vue3)
-import { composeStories } from '@storybook/your-framework';
+// Replace your-renderer with the renderer you are using (e.g., react, vue3, svelte, etc.)
+import { composeStories } from '@storybook/your-renderer';
const compose = (entry) => {
try {
return composeStories(entry);
} catch (e) {
throw new Error(
- `There was an issue composing stories for the module: ${JSON.stringify(entry)}, ${e}`,
+ `There was an issue composing stories for the module: ${JSON.stringify(entry)}, ${e}`
);
}
};
@@ -24,7 +21,7 @@ function getAllStoryFiles() {
const storyFiles = Object.entries(
import.meta.glob('./stories/**/*.(stories|story).@(js|jsx|mjs|ts|tsx)', {
eager: true,
- }),
+ })
);
return storyFiles.map(([filePath, storyFile]) => {
@@ -63,7 +60,7 @@ describe(options.suite, () => {
if (stories.length <= 0) {
throw new Error(
- `No stories found for this module: ${title}. Make sure there is at least one valid story for this module, without a disable parameter, or add parameters.storyshots.disable in the default export of this file.`,
+ `No stories found for this module: ${title}. Make sure there is at least one valid story for this module, without a disable parameter, or add parameters.storyshots.disable in the default export of this file.`
);
}
@@ -72,11 +69,11 @@ describe(options.suite, () => {
const testFn = story.parameters.storyshots?.skip ? test.skip : test;
testFn(name, async () => {
- const mounted = render(story());
+ await story.play();
// Ensures a consistent snapshot by waiting for the component to render by adding a delay of 1 ms before taking the snapshot.
await new Promise((resolve) => setTimeout(resolve, 1));
- expect(mounted.container).toMatchSnapshot();
+ expect(document.body.firstChild).toMatchSnapshot();
});
});
});
@@ -92,11 +89,8 @@ import type { Meta, StoryFn } from '@storybook/your-framework';
import { describe, expect, test } from 'vitest';
-// Replace your-testing-library with one of the supported testing libraries (e.g., react, vue)
-import { render } from '@testing-library/your-testing-library';
-
-// Adjust the import based on the supported framework or Storybook's testing libraries (e.g., react, testing-vue3)
-import { composeStories } from '@storybook/your-framework';
+// Replace your-renderer with the renderer you are using (e.g., react, vue3, svelte, etc.)
+import { composeStories } from '@storybook/your-renderer';
type StoryFile = {
default: Meta;
@@ -108,7 +102,7 @@ const compose = (entry: StoryFile): ReturnType>
return composeStories(entry);
} catch (e) {
throw new Error(
- `There was an issue composing stories for the module: ${JSON.stringify(entry)}, ${e}`,
+ `There was an issue composing stories for the module: ${JSON.stringify(entry)}, ${e}`
);
}
};
@@ -118,7 +112,7 @@ function getAllStoryFiles() {
const storyFiles = Object.entries(
import.meta.glob('./stories/**/*.(stories|story).@(js|jsx|mjs|ts|tsx)', {
eager: true,
- }),
+ })
);
return storyFiles.map(([filePath, storyFile]) => {
@@ -157,7 +151,7 @@ describe(options.suite, () => {
if (stories.length <= 0) {
throw new Error(
- `No stories found for this module: ${title}. Make sure there is at least one valid story for this module, without a disable parameter, or add parameters.storyshots.disable in the default export of this file.`,
+ `No stories found for this module: ${title}. Make sure there is at least one valid story for this module, without a disable parameter, or add parameters.storyshots.disable in the default export of this file.`
);
}
@@ -166,15 +160,14 @@ describe(options.suite, () => {
const testFn = story.parameters.storyshots?.skip ? test.skip : test;
testFn(name, async () => {
- const mounted = render(story());
+ await story.play();
// Ensures a consistent snapshot by waiting for the component to render by adding a delay of 1 ms before taking the snapshot.
await new Promise((resolve) => setTimeout(resolve, 1));
- expect(mounted.container).toMatchSnapshot();
+ expect(document.body.firstChild).toMatchSnapshot();
});
});
});
});
});
```
-
diff --git a/docs/_snippets/portable-stories-vitest-with-loaders.md b/docs/_snippets/portable-stories-vitest-with-loaders.md
deleted file mode 100644
index ac415d8f8332..000000000000
--- a/docs/_snippets/portable-stories-vitest-with-loaders.md
+++ /dev/null
@@ -1,54 +0,0 @@
-```tsx filename="Button.test.tsx" renderer="react" language="ts"
-import { test } from 'vitest';
-import { render } from '@testing-library/react';
-import { composeStory } from '@storybook/react';
-
-import meta, { Primary } from './Button.stories';
-
-test('applies the loaders and renders', async () => {
- const PrimaryStory = composeStory(Primary, meta);
-
- // First, load the data for the story
- await PrimaryStory.load();
-
- // Then, render the story
- render();
-});
-```
-
-```ts filename="Button.test.ts" renderer="svelte" language="ts"
-import { test } from 'vitest';
-import { render } from '@testing-library/svelte';
-import { composeStory } from '@storybook/svelte';
-
-import meta, { Primary } from './Button.stories';
-
-test('applies the loaders and renders', async () => {
- const PrimaryStory = composeStory(Primary, meta);
-
- // First, load the data for the story
- await PrimaryStory.load();
-
- // Then, render the story
- render(PrimaryStory.Component, PrimaryStory.props);
-});
-```
-
-```ts filename="Button.test.ts" renderer="vue" language="ts"
-import { test } from 'vitest';
-import { render } from '@testing-library/vue';
-import { composeStory } from '@storybook/vue3';
-
-import meta, { Primary } from './Button.stories';
-
-test('applies the loaders and renders', async () => {
- const PrimaryStory = composeStory(Primary, meta);
-
- // First, load the data for the story
- await PrimaryStory.load();
-
- // Then, render the story
- render(PrimaryStory);
-});
-```
-
diff --git a/docs/_snippets/portable-stories-vitest-with-play-function.md b/docs/_snippets/portable-stories-vitest-with-play-function.md
index 1d44794ffe41..d5dbe5d8a502 100644
--- a/docs/_snippets/portable-stories-vitest-with-play-function.md
+++ b/docs/_snippets/portable-stories-vitest-with-play-function.md
@@ -1,54 +1,41 @@
```tsx filename="Button.test.tsx" renderer="react" language="ts"
import { test } from 'vitest';
-import { render } from '@testing-library/react';
-import { composeStory } from '@storybook/react';
+import { composeStories } from '@storybook/react';
-import meta, { Primary } from './Button.stories';
+import * as stories from './Button.stories';
-test('renders and executes the play function', async () => {
- const PrimaryStory = composeStory(Primary, meta);
-
- // First, render the story
- render();
+const { Primary } = composeStories(stories);
- // Then, execute the play function
- await PrimaryStory.play();
+test('renders and executes the play function', async () => {
+ // Mount story and run interactions
+ await Primary.play();
});
```
```ts filename="Button.test.ts" renderer="svelte" language="ts"
import { test } from 'vitest';
-import { render } from '@testing-library/svelte';
-import { composeStory } from '@storybook/svelte';
+import { composeStories } from '@storybook/svelte';
-import meta, { Primary } from './Button.stories';
-
-test('renders and executes the play function', async () => {
- const PrimaryStory = composeStory(Primary, meta);
+import * as stories from './Button.stories';
- // First, render the story
- render(PrimaryStory.Component, PrimaryStory.props);
+const { Primary } = composeStories(stories);
- // Then, execute the play function
- await PrimaryStory.play();
+test('renders and executes the play function', async () => {
+ // Mount story and run interactions
+ await Primary.play();
});
```
```ts filename="Button.test.ts" renderer="vue" language="ts"
import { test } from 'vitest';
-import { render } from '@testing-library/vue';
import { composeStory } from '@storybook/vue3';
-import meta, { Primary } from './Button.stories';
-
-test('renders and executes the play function', async () => {
- const PrimaryStory = composeStory(Primary, meta);
+import * as stories from './Button.stories';
- // First, render the story
- render(PrimaryStory);
+const { Primary } = composeStories(stories);
- // Then, execute the play function
- await PrimaryStory.play();
+test('renders and executes the play function', async () => {
+ // Mount story and run interactions
+ await Primary.play();
});
```
-
diff --git a/docs/_snippets/single-story-test.md b/docs/_snippets/single-story-test.md
index 4158815ee87e..14452f76c662 100644
--- a/docs/_snippets/single-story-test.md
+++ b/docs/_snippets/single-story-test.md
@@ -1,14 +1,14 @@
```js filename="Form.test.js|jsx" renderer="react" language="js"
-import { fireEvent, render, screen } from '@testing-library/react';
+import { fireEvent, screen } from '@testing-library/react';
import { composeStory } from '@storybook/react';
import Meta, { ValidForm as ValidFormStory } from './LoginForm.stories';
-const FormOK = composeStory(ValidFormStory, Meta);
+const ValidForm = composeStory(ValidFormStory, Meta);
-test('Validates form', () => {
- render();
+test('Validates form', async () => {
+ await ValidForm.play();
const buttonElement = screen.getByRole('button', {
name: 'Submit',
@@ -22,16 +22,16 @@ test('Validates form', () => {
```
```ts filename="Form.test.ts|tsx" renderer="react" language="ts"
-import { fireEvent, render, screen } from '@testing-library/react';
+import { fireEvent, screen } from '@testing-library/react';
import { composeStory } from '@storybook/react';
import Meta, { ValidForm as ValidFormStory } from './LoginForm.stories';
-const FormOK = composeStory(ValidFormStory, Meta);
+const ValidForm = composeStory(ValidFormStory, Meta);
-test('Validates form', () => {
- render();
+test('Validates form', async () => {
+ await ValidForm.play();
const buttonElement = screen.getByRole('button', {
name: 'Submit',
@@ -45,16 +45,16 @@ test('Validates form', () => {
```
```js filename="tests/Form.test.js" renderer="vue" language="js" tabTitle="3"
-import { fireEvent, render, screen } from '@testing-library/vue';
+import { fireEvent, screen } from '@testing-library/vue';
import { composeStory } from '@storybook/vue3';
import Meta, { ValidForm as ValidFormStory } from './LoginForm.stories';
-const FormOK = composeStory(ValidFormStory, Meta);
+const ValidForm = composeStory(ValidFormStory, Meta);
-test('Validates form', () => {
- render(FormOK());
+test('Validates form', async () => {
+ await ValidForm.play();
const buttonElement = screen.getByRole('button', {
name: 'Submit',
@@ -68,16 +68,16 @@ test('Validates form', () => {
```
```ts filename="tests/Form.test.ts" renderer="vue" language="ts" tabTitle="3"
-import { fireEvent, render, screen } from '@testing-library/vue';
+import { fireEvent, screen } from '@testing-library/vue';
import { composeStory } from '@storybook/vue3';
import Meta, { ValidForm as ValidFormStory } from './LoginForm.stories';
-const FormOK = composeStory(ValidFormStory, Meta);
+const ValidForm = composeStory(ValidFormStory, Meta);
-test('Validates form', () => {
- render(FormOK());
+test('Validates form', async () => {
+ await ValidForm.play();
const buttonElement = screen.getByRole('button', {
name: 'Submit',
@@ -89,4 +89,3 @@ test('Validates form', () => {
expect(isFormValid).not.toBeInTheDocument();
});
```
-
diff --git a/docs/_snippets/snapshot-tests-portable-stories.md b/docs/_snippets/snapshot-tests-portable-stories.md
index cf00a341fc4f..5a7de482c554 100644
--- a/docs/_snippets/snapshot-tests-portable-stories.md
+++ b/docs/_snippets/snapshot-tests-portable-stories.md
@@ -4,18 +4,15 @@ import * as glob from 'glob';
import { describe, test, expect } from '@jest/globals';
-// Replace your-testing-library with one of the supported testing libraries (e.g., react, vue)
-import { render } from '@testing-library/your-testing-library';
-
-// Adjust the import based on the supported framework or Storybook's testing libraries (e.g., react, vue3)
-import { composeStories } from '@storybook/your-framework';
+// Replace your-renderer with the renderer you are using (e.g., react, vue3, svelte, etc.)
+import { composeStories } from '@storybook/your-renderer';
const compose = (entry) => {
try {
return composeStories(entry);
} catch (e) {
throw new Error(
- `There was an issue composing stories for the module: ${JSON.stringify(entry)}, ${e}`,
+ `There was an issue composing stories for the module: ${JSON.stringify(entry)}, ${e}`
);
}
};
@@ -23,7 +20,7 @@ const compose = (entry) => {
function getAllStoryFiles() {
// Place the glob you want to match your stories files
const storyFiles = glob.sync(
- path.join(__dirname, 'stories/**/*.{stories,story}.{js,jsx,mjs,ts,tsx}'),
+ path.join(__dirname, 'stories/**/*.{stories,story}.{js,jsx,mjs,ts,tsx}')
);
return storyFiles.map((filePath) => {
@@ -45,7 +42,7 @@ describe('Stories Snapshots', () => {
if (stories.length <= 0) {
throw new Error(
- `No stories found for this module: ${title}. Make sure there is at least one valid story for this module.`,
+ `No stories found for this module: ${title}. Make sure there is at least one valid story for this module.`
);
}
@@ -71,11 +68,8 @@ import * as glob from 'glob';
import { describe, test, expect } from '@jest/globals';
-// Replace your-testing-library with one of the supported testing libraries (e.g., react, vue)
-import { render } from '@testing-library/your-testing-library';
-
-// Adjust the import based on the supported framework or Storybook's testing libraries (e.g., react, vue3)
-import { composeStories } from '@storybook/your-framework';
+// Replace your-renderer with the renderer you are using (e.g., react, vue3, svelte, etc.)
+import { composeStories } from '@storybook/your-renderer';
type StoryFile = {
default: Meta;
@@ -87,7 +81,7 @@ const compose = (entry: StoryFile): ReturnType>
return composeStories(entry);
} catch (e) {
throw new Error(
- `There was an issue composing stories for the module: ${JSON.stringify(entry)}, ${e}`,
+ `There was an issue composing stories for the module: ${JSON.stringify(entry)}, ${e}`
);
}
};
@@ -95,7 +89,7 @@ const compose = (entry: StoryFile): ReturnType>
function getAllStoryFiles() {
// Place the glob you want to match your stories files
const storyFiles = glob.sync(
- path.join(__dirname, 'stories/**/*.{stories,story}.{js,jsx,mjs,ts,tsx}'),
+ path.join(__dirname, 'stories/**/*.{stories,story}.{js,jsx,mjs,ts,tsx}')
);
return storyFiles.map((filePath) => {
@@ -117,16 +111,16 @@ describe('Stories Snapshots', () => {
if (stories.length <= 0) {
throw new Error(
- `No stories found for this module: ${title}. Make sure there is at least one valid story for this module.`,
+ `No stories found for this module: ${title}. Make sure there is at least one valid story for this module.`
);
}
stories.forEach(({ name, story }) => {
test(name, async () => {
- const mounted = render(story());
+ await story.play();
// Ensures a consistent snapshot by waiting for the component to render by adding a delay of 1 ms before taking the snapshot.
await new Promise((resolve) => setTimeout(resolve, 1));
- expect(mounted.container).toMatchSnapshot();
+ expect(document.body.firstChild).toMatchSnapshot();
});
});
});
@@ -140,18 +134,15 @@ describe('Stories Snapshots', () => {
import path from 'path';
import { describe, expect, test } from 'vitest';
-// Replace your-testing-library with one of the supported testing libraries (e.g., react, vue)
-import { render } from '@testing-library/your-testing-library';
-
-// Adjust the import based on the supported framework or Storybook's testing libraries (e.g., react, vue3)
-import { composeStories } from '@storybook/your-framework';
+// Replace your-renderer with the renderer you are using (e.g., react, vue3, svelte, etc.)
+import { composeStories } from '@storybook/your-renderer';
const compose = (entry) => {
try {
return composeStories(entry);
} catch (error) {
throw new Error(
- `There was an issue composing stories for the module: ${JSON.stringify(entry)}, ${error}`,
+ `There was an issue composing stories for the module: ${JSON.stringify(entry)}, ${error}`
);
}
};
@@ -160,7 +151,7 @@ function getAllStoryFiles() {
const storyFiles = Object.entries(
import.meta.glob('./stories/**/*.(stories|story).@(js|jsx|mjs|ts|tsx)', {
eager: true,
- }),
+ })
);
return storyFiles.map(([filePath, storyFile]) => {
@@ -179,16 +170,16 @@ describe('Stories Snapshots', () => {
if (stories.length <= 0) {
throw new Error(
- `No stories found for this module: ${title}. Make sure there is at least one valid story for this module.`,
+ `No stories found for this module: ${title}. Make sure there is at least one valid story for this module.`
);
}
stories.forEach(({ name, story }) => {
test(name, async () => {
- const mounted = render(story());
+ await story.play();
// Ensures a consistent snapshot by waiting for the component to render by adding a delay of 1 ms before taking the snapshot.
await new Promise((resolve) => setTimeout(resolve, 1));
- expect(mounted.container).toMatchSnapshot();
+ expect(document.body.firstChild).toMatchSnapshot();
});
});
});
@@ -205,11 +196,8 @@ import type { Meta, StoryFn } from '@storybook/your-framework';
import path from 'path';
import { describe, expect, test } from 'vitest';
-// Replace your-testing-library with one of the supported testing libraries (e.g., react, vue)
-import { render } from '@testing-library/your-testing-library';
-
-// Adjust the import based on the supported framework or Storybook's testing libraries (e.g., react, vue3)
-import { composeStories } from '@storybook/your-framework';
+// Replace your-renderer with the renderer you are using (e.g., react, vue3, svelte, etc.)
+import { composeStories } from '@storybook/your-renderer';
type StoryFile = {
default: Meta;
@@ -221,7 +209,7 @@ const compose = (entry: StoryFile): ReturnType>
return composeStories(entry);
} catch (e) {
throw new Error(
- `There was an issue composing stories for the module: ${JSON.stringify(entry)}, ${e}`,
+ `There was an issue composing stories for the module: ${JSON.stringify(entry)}, ${e}`
);
}
};
@@ -231,7 +219,7 @@ function getAllStoryFiles() {
const storyFiles = Object.entries(
import.meta.glob('./stories/**/*.(stories|story).@(js|jsx|mjs|ts|tsx)', {
eager: true,
- }),
+ })
);
return storyFiles.map(([filePath, storyFile]) => {
@@ -251,20 +239,19 @@ describe('Stories Snapshots', () => {
if (stories.length <= 0) {
throw new Error(
- `No stories found for this module: ${title}. Make sure there is at least one valid story for this module.`,
+ `No stories found for this module: ${title}. Make sure there is at least one valid story for this module.`
);
}
stories.forEach(({ name, story }) => {
test(name, async () => {
- const mounted = render(story());
+ await story.play();
// Ensures a consistent snapshot by waiting for the component to render by adding a delay of 1 ms before taking the snapshot.
await new Promise((resolve) => setTimeout(resolve, 1));
- expect(mounted.container).toMatchSnapshot();
+ expect(document.body.firstChild).toMatchSnapshot();
});
});
});
});
});
```
-
diff --git a/docs/_snippets/storybook-testing-addon-install.md b/docs/_snippets/storybook-testing-addon-install.md
deleted file mode 100644
index fea91492ddc4..000000000000
--- a/docs/_snippets/storybook-testing-addon-install.md
+++ /dev/null
@@ -1,8 +0,0 @@
-```shell renderer="common" language="js" packageManager="npm"
-npm install --save-dev @storybook/testing-( react | vue | vue3 | angular)
-```
-
-```shell renderer="common" language="js" packageManager="yarn"
-yarn add --dev @storybook/testing-( react | vue | vue3 | angular )
-```
-
diff --git a/docs/_snippets/storybook-testing-addon-optional-config.md b/docs/_snippets/storybook-testing-addon-optional-config.md
deleted file mode 100644
index b452f1f56f8e..000000000000
--- a/docs/_snippets/storybook-testing-addon-optional-config.md
+++ /dev/null
@@ -1,96 +0,0 @@
-```js filename="setupFile.js|ts" renderer="react" language="js"
-// Storybook's preview file location
-import * as globalStorybookConfig from './.storybook/preview';
-
-import { setProjectAnnotations } from '@storybook/react';
-
-setProjectAnnotations(globalStorybookConfig);
-```
-
-```js filename="vitest.config.js" renderer="react" language="js" tabTitle="vite"
-import { defineConfig } from 'vitest/config';
-import { mergeConfig } from 'vite';
-
-import viteConfig from './vite.config';
-
-export default mergeConfig(
- viteConfig,
- defineConfig({
- test: {
- globals: true,
- environment: 'jsdom',
- clearMocks: true,
- setupFiles: './src/setupTests.js', //👈 Our configuration file enabled here
- },
- }),
-);
-```
-
-```ts filename="vitest.config.ts" renderer="react" language="ts" tabTitle="vite"
-///
-import { defineConfig } from 'vitest/config';
-import { mergeConfig } from 'vite';
-
-import viteConfig from './vite.config';
-
-export default mergeConfig(
- viteConfig,
- defineConfig({
- test: {
- globals: true,
- environment: 'jsdom',
- clearMocks: true,
- setupFiles: './src/setupTests.ts', //👈 Our configuration file enabled here
- },
- }),
-);
-```
-
-```js filename="setupFile.js|ts" renderer="vue" language="js"
-// Storybook's preview file location
-import * as globalStorybookConfig from './.storybook/preview';
-
-import { setProjectAnnotations } from '@storybook/vue3';
-
-setProjectAnnotations(globalStorybookConfig);
-```
-
-```js filename="vitest.config.js" renderer="vue" language="js" tabTitle="vite"
-import { defineConfig } from 'vitest/config';
-import { mergeConfig } from 'vite';
-
-import viteConfig from './vite.config';
-
-export default mergeConfig(
- viteConfig,
- defineConfig({
- test: {
- globals: true,
- environment: 'jsdom',
- clearMocks: true,
- setupFiles: './src/setupTests.js', //👈 Our configuration file enabled here
- },
- }),
-);
-```
-
-```ts filename="vitest.config.ts" renderer="vue" language="ts" tabTitle="vite"
-///
-import { defineConfig } from 'vitest/config';
-import { mergeConfig } from 'vite';
-
-import viteConfig from './vite.config';
-
-export default mergeConfig(
- viteConfig,
- defineConfig({
- test: {
- globals: true,
- environment: 'jsdom',
- clearMocks: true,
- setupFiles: './src/setupTests.ts', //👈 Our configuration file enabled here
- },
- }),
-);
-```
-
diff --git a/docs/addons/addons-api.mdx b/docs/addons/addons-api.mdx
index ee4f89a37a7f..42cbb56c3a90 100644
--- a/docs/addons/addons-api.mdx
+++ b/docs/addons/addons-api.mdx
@@ -189,7 +189,7 @@ The following table details how to use the API values:
| **selectedPanel** | String | Id to select an addon panel | `storybook/actions/panel` |
| **initialActive** | String | Select the default active tab on Mobile | `sidebar` or `canvas` or `addons` |
| **sidebar** | Object | Sidebar options, see below | `{ showRoots: false }` |
-| **toolbar** | Object | Modify the tools in the toolbar using the addon id | `{ fullscreen: { hidden: false } } }` |
+| **toolbar** | Object | Modify the tools in the toolbar using the addon id | `{ fullscreen: { hidden: false } }` |
The following options are configurable under the `sidebar` namespace:
diff --git a/docs/addons/integration-catalog.mdx b/docs/addons/integration-catalog.mdx
index 791a46132f1d..f1b6e63fe9da 100644
--- a/docs/addons/integration-catalog.mdx
+++ b/docs/addons/integration-catalog.mdx
@@ -13,7 +13,7 @@ Storybook addons are distributed via npm. The catalog is populated by querying n
Add your addon to the catalog by publishing a npm package that follows these requirements:
-* `package.json` with [module information](./writing-addons.mdx#get-started) and [addon metadata](#addon-metadata)
+* `package.json` with [module information](./writing-addons.mdx#setup) and [addon metadata](#addon-metadata)
* `README.md` file with installation and configuration instructions
* `/dist` directory containing transpiled ES5 code
* `preset.js` file written as an ES5 module at the root level
diff --git a/docs/api/arg-types.mdx b/docs/api/arg-types.mdx
index 8964e60040c1..60cfa726ccc8 100644
--- a/docs/api/arg-types.mdx
+++ b/docs/api/arg-types.mdx
@@ -124,8 +124,8 @@ Default: [Inferred](#automatic-argtype-inference); `'select'`, if [`options`](#o
Specifies the type of control used to change the arg value with the [controls addon](../essentials/controls.mdx). Here are the available types, `ControlType`, grouped by the type of data they handle:
-| Data type | ControlType | Description |
-| -------------- | ---------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| Data type | ControlType | Description |
+| -------------- | ---------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **array** | `'object'` | Provides a JSON-based editor to handle the values of the array. Also allows editing in raw mode.]
`{ control: 'object' }` |
| **boolean** | `'boolean'` | Provides a toggle for switching between possible states.
`{ control: 'boolean' }` |
| **enum** | `'check'` | Provides a set of stacked checkboxes for selecting multiple options.
`{ control: 'check', options: ['email', 'phone', 'mail'] }` |
@@ -139,7 +139,7 @@ Specifies the type of control used to change the arg value with the [controls ad
| **object** | `'file'` | Provides a file input that returns an array of URLs. Can be further customized to accept specific file types.
`{ control: { type: 'file', accept: '.png' } }` |
| | `'object'` | Provides a JSON-based editor to handle the object's values. Also allows editing in raw mode.
`{ control: 'object' }` |
| **string** | `'color'` | Provides a color picker to choose color values. Can be additionally configured to include a set of color presets.
`{ control: { type: 'color', presetColors: ['red', 'green']} }` |
-| | `'date'` | Provides a datepicker to choose a date.
`{ control: 'date' }` |
+| | `'date'` | Provides a datepicker to choose a date.
`{ control: 'date' }` |
| | `'text'` | Provides a freeform text input.
`{ control: 'text' }` |
diff --git a/docs/api/cli-options.mdx b/docs/api/cli-options.mdx
index 4e645f111080..b5b8a3fd9eda 100644
--- a/docs/api/cli-options.mdx
+++ b/docs/api/cli-options.mdx
@@ -30,30 +30,30 @@ storybook dev [options]
Options include:
-| Option | Description |
-| ------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
-| `--help` | Output usage information
`storybook dev --help` |
-| `-V`, `--version` | Output the version number
`storybook dev -V` |
-| `-p`, `--port [number]` | Port to run Storybook
`storybook dev -p 9009` |
+| Option | Description |
+| ------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| `--help` | Output usage information
`storybook dev --help` |
+| `-V`, `--version` | Output the version number
`storybook dev -V` |
+| `-p`, `--port [number]` | Port to run Storybook
`storybook dev -p 9009` |
| `--exact-port [number]` | Attempts to run Storybook on the exact port number specified.
If the port is already in use, Storybook will exit with an error message
`storybook dev --exact-port 9009` |
-| `-h`, `--host [string]` | Host to run Storybook
`storybook dev -h my-host.com` |
-| `-c`, `--config-dir [dir-name]` | Directory where to load Storybook configurations from
`storybook dev -c .storybook` |
+| `-h`, `--host [string]` | Host to run Storybook
`storybook dev -h my-host.com` |
+| `-c`, `--config-dir [dir-name]` | Directory where to load Storybook configurations from
`storybook dev -c .storybook` |
| `--loglevel [level]` | Controls level of logging during build.
Available options: `silly`, `verbose`, `info` (default), `warn`, `error`, `silent`
`storybook dev --loglevel warn` |
-| `--https` | Serve Storybook over HTTPS. Note: You must provide your own certificate information
`storybook dev --https` |
-| `--ssl-ca` | Provide an SSL certificate authority. (Optional with --https, required if using a self-signed certificate)
`storybook dev --ssl-ca my-certificate` |
-| `--ssl-cert` | Provide an SSL certificate. (Required with --https)
`storybook dev --ssl-cert my-ssl-certificate` |
-| `--ssl-key` | Provide an SSL key. (Required with --https)
`storybook dev --ssl-key my-ssl-key` |
-| `--smoke-test` | Exit after successful start
`storybook dev --smoke-test` |
-| `--ci` | CI mode (skip interactive prompts, don't open browser)
`storybook dev --ci` |
-| `--no-open` | Do not open Storybook automatically in the browser
`storybook dev --no-open` |
-| `--quiet` | Suppress verbose build output
`storybook dev --quiet` |
-| `--debug` | Outputs more logs in the CLI to assist debugging
`storybook dev --debug` |
-| `--debug-webpack` | Display final webpack configurations for debugging purposes
`storybook dev --debug-webpack` |
+| `--https` | Serve Storybook over HTTPS. Note: You must provide your own certificate information
`storybook dev --https` |
+| `--ssl-ca` | Provide an SSL certificate authority. (Optional with --https, required if using a self-signed certificate)
`storybook dev --ssl-ca my-certificate` |
+| `--ssl-cert` | Provide an SSL certificate. (Required with --https)
`storybook dev --ssl-cert my-ssl-certificate` |
+| `--ssl-key` | Provide an SSL key. (Required with --https)
`storybook dev --ssl-key my-ssl-key` |
+| `--smoke-test` | Exit after successful start
`storybook dev --smoke-test` |
+| `--ci` | CI mode (skip interactive prompts, don't open browser)
`storybook dev --ci` |
+| `--no-open` | Do not open Storybook automatically in the browser
`storybook dev --no-open` |
+| `--quiet` | Suppress verbose build output
`storybook dev --quiet` |
+| `--debug` | Outputs more logs in the CLI to assist debugging
`storybook dev --debug` |
+| `--debug-webpack` | Display final webpack configurations for debugging purposes
`storybook dev --debug-webpack` |
| `--stats-json [dir-name]` | Write stats JSON to disk
Requires Webpack
`storybook dev --stats-json /tmp/stats` |
-| `--no-version-updates` | Skips Storybook's update check
`storybook dev --no-version-updates` |
+| `--no-version-updates` | Skips Storybook's update check
`storybook dev --no-version-updates` |
| `--docs` | Starts Storybook in documentation mode. Learn more about it in [here](../writing-docs/build-documentation.mdx#preview-storybooks-documentation)
`storybook dev --docs` |
-| `--initial-path [path]` | Configures the URL Storybook should open when it opens the browser for the first time
`storybook dev --initial-path=/docs/getting-started--docs` |
-| `--preview-url [path]` | Overrides the default Storybook preview with a custom built preview URL
`storybook dev --preview-url=http://localhost:1337/external-iframe.html` |
+| `--initial-path [path]` | Configures the URL Storybook should open when it opens the browser for the first time
`storybook dev --initial-path=/docs/getting-started--docs` |
+| `--preview-url [path]` | Overrides the default Storybook preview with a custom built preview URL
`storybook dev --preview-url=http://localhost:1337/external-iframe.html` |
| `--force-build-preview` | Forcefully builds Storybook's preview iframe.
Useful if you're experiencing issues, or combined with `--preview-url` to ensure the preview is up-to-date
`storybook dev --force-build-preview` |
| `--disable-telemetry` | Disables Storybook's telemetry. Learn more about it [here](../configure/telemetry.mdx#how-to-opt-out)
`storybook dev --disable-telemetry` |
| `--enable-crash-reports` | Enables sending crash reports to Storybook's telemetry. Learn more about it [here](../configure/telemetry.mdx#crash-reports-disabled-by-default)
`storybook dev --enable-crash-reports` |
@@ -72,23 +72,23 @@ storybook build [options]
Options include:
-| Option | Description |
-| ------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
-| `-h`, `--help` | Output usage information
`storybook build --help` |
-| `-V`, `--version` | Output the version number
`storybook build -V` |
-| `-o`, `--output-dir [dir-name]` | Directory where to store built files
`storybook build -o /my-deployed-storybook` |
-| `-c`, `--config-dir [dir-name]` | Directory where to load Storybook configurations from
`storybook build -c .storybook` |
-| `--loglevel [level]` | Controls level of logging during build.
Available options: `silly`, `verbose`, `info` (default), `warn`, `error`, `silent`
`storybook build --loglevel warn` |
-| `--quiet` | Suppress verbose build output
`storybook build --quiet` |
-| `--debug` | Outputs more logs in the CLI to assist debugging
`storybook build --debug` |
-| `--debug-webpack` | Display final webpack configurations for debugging purposes
`storybook build --debug-webpack` |
-| `--stats-json [dir-name]` | Write stats JSON to disk
Requires Webpack
`storybook build --stats-json /tmp/stats` |
-| `--docs` | Builds Storybook in documentation mode. Learn more about it in [here](../writing-docs/build-documentation.mdx#publish-storybooks-documentation)
`storybook build --docs` |
+| Option | Description |
+| ------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| `-h`, `--help` | Output usage information
`storybook build --help` |
+| `-V`, `--version` | Output the version number
`storybook build -V` |
+| `-o`, `--output-dir [dir-name]` | Directory where to store built files
`storybook build -o /my-deployed-storybook` |
+| `-c`, `--config-dir [dir-name]` | Directory where to load Storybook configurations from
`storybook build -c .storybook` |
+| `--loglevel [level]` | Controls level of logging during build.
Available options: `silly`, `verbose`, `info` (default), `warn`, `error`, `silent`
`storybook build --loglevel warn` |
+| `--quiet` | Suppress verbose build output
`storybook build --quiet` |
+| `--debug` | Outputs more logs in the CLI to assist debugging
`storybook build --debug` |
+| `--debug-webpack` | Display final webpack configurations for debugging purposes
`storybook build --debug-webpack` |
+| `--stats-json [dir-name]` | Write stats JSON to disk
Requires Webpack
`storybook build --stats-json /tmp/stats` |
+| `--docs` | Builds Storybook in documentation mode. Learn more about it in [here](../writing-docs/build-documentation.mdx#publish-storybooks-documentation)
`storybook build --docs` |
| `--test` | Optimize Storybook's production build for performance and tests by removing unnecessary features with the `test` option. Learn more [here](../api/main-config/main-config-build.mdx).
`storybook build --test` |
-| `--preview-url [path]` | Overrides the default Storybook preview with a custom built preview URL
`storybook build --preview-url=http://localhost:1337/external-iframe.html` |
-| `--force-build-preview` | Forcefully builds Storybook's preview iframe.
Useful if you're experiencing issues, or combined with `--preview-url` to ensure the preview is up-to-date
`storybook build --force-build-preview` |
-| `--disable-telemetry` | Disables Storybook's telemetry. Learn more about it [here](../configure/telemetry.mdx#how-to-opt-out)
`storybook build --disable-telemetry` |
-| `--enable-crash-reports` | Enables sending crash reports to Storybook's telemetry. Learn more about it [here](../configure/telemetry.mdx#crash-reports-disabled-by-default)
`storybook build --enable-crash-reports` |
+| `--preview-url [path]` | Overrides the default Storybook preview with a custom built preview URL
`storybook build --preview-url=http://localhost:1337/external-iframe.html` |
+| `--force-build-preview` | Forcefully builds Storybook's preview iframe.
Useful if you're experiencing issues, or combined with `--preview-url` to ensure the preview is up-to-date
`storybook build --force-build-preview` |
+| `--disable-telemetry` | Disables Storybook's telemetry. Learn more about it [here](../configure/telemetry.mdx#how-to-opt-out)
`storybook build --disable-telemetry` |
+| `--enable-crash-reports` | Enables sending crash reports to Storybook's telemetry. Learn more about it [here](../configure/telemetry.mdx#crash-reports-disabled-by-default)
`storybook build --enable-crash-reports` |
### `init`
@@ -102,21 +102,21 @@ For example, `storybook@latest init` will install the latest version of Storyboo
Options include:
-| Option | Description |
-| ------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
-| `-h`, `--help` | Output usage information
`storybook init --help` |
-| `-b`, `--builder` | Defines the [builder](../builders/index.mdx) to use for your Storybook instance
`storybook init --builder webpack5` |
-| `-f`,`--force` | Forcefully installs Storybook into your project, prompting you to overwrite existing files
`storybook init --force` |
-| `-s`, `--skip-install` | Skips the dependency installation step. Used only when you need to configure Storybook manually
`storybook init --skip-install` |
-| `-t`, `--type` | Defines the [framework](../configure/integration/frameworks.mdx) to use for your Storybook instance
`storybook init --type solid` |
-| `-y`, `--yes` | Skips interactive prompts and automatically installs Storybook per specified version
`storybook init --yes` |
-| `--package-manager` | Sets the package manager to use when installing Storybook.
Available package managers include `npm`, `yarn`, and `pnpm`
`storybook init --package-manager pnpm` |
-| `--use-pnp` | Enables [Plug'n'Play](https://yarnpkg.com/features/pnp) support for Yarn. This option is only available when using Yarn as your package manager
`storybook init --use-pnp` |
-| `-p`, `--parser` | Sets the [jscodeshift parser](https://github.com/facebook/jscodeshift#parser).
Available parsers include `babel`, `babylon`, `flow`, `ts`, and `tsx`
`storybook init --parser tsx` |
-| `--debug` | Outputs more logs in the CLI to assist debugging
`storybook init --debug` |
-| `--disable-telemetry` | Disables Storybook's telemetry. Learn more about it [here](../configure/telemetry.mdx#how-to-opt-out)
`storybook init --disable-telemetry` |
-| `--enable-crash-reports` | Enables sending crash reports to Storybook's telemetry. Learn more about it [here](../configure/telemetry.mdx#crash-reports-disabled-by-default)
`storybook init --enable-crash-reports` |
-| `--no-dev` | Complete the initialization of Storybook without running the Storybook dev server
`storybook init --no-dev` |
+| Option | Description |
+| ------------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| `-h`, `--help` | Output usage information
`storybook init --help` |
+| `-b`, `--builder` | Defines the [builder](../builders/index.mdx) to use for your Storybook instance
`storybook init --builder webpack5` |
+| `-f`,`--force` | Forcefully installs Storybook into your project, prompting you to overwrite existing files
`storybook init --force` |
+| `-s`, `--skip-install` | Skips the dependency installation step. Used only when you need to configure Storybook manually
`storybook init --skip-install` |
+| `-t`, `--type` | Defines the [framework](../configure/integration/frameworks.mdx) to use for your Storybook instance
`storybook init --type solid` |
+| `-y`, `--yes` | Skips interactive prompts and automatically installs Storybook per specified version
`storybook init --yes` |
+| `--package-manager` | Sets the package manager to use when installing Storybook.
Available package managers include `npm`, `yarn`, and `pnpm`
`storybook init --package-manager pnpm` |
+| `--use-pnp` | Enables [Plug'n'Play](https://yarnpkg.com/features/pnp) support for Yarn. This option is only available when using Yarn as your package manager
`storybook init --use-pnp` |
+| `-p`, `--parser` | Sets the [jscodeshift parser](https://github.com/facebook/jscodeshift#parser).
Available parsers include `babel`, `babylon`, `flow`, `ts`, and `tsx`
`storybook init --parser tsx` |
+| `--debug` | Outputs more logs in the CLI to assist debugging
`storybook init --debug` |
+| `--disable-telemetry` | Disables Storybook's telemetry. Learn more about it [here](../configure/telemetry.mdx#how-to-opt-out)
`storybook init --disable-telemetry` |
+| `--enable-crash-reports` | Enables sending crash reports to Storybook's telemetry. Learn more about it [here](../configure/telemetry.mdx#crash-reports-disabled-by-default)
`storybook init --enable-crash-reports` |
+| `--no-dev` | Complete the initialization of Storybook without running the Storybook dev server
`storybook init --no-dev` |
### `add`
@@ -128,13 +128,13 @@ storybook add [addon] [options]
Options include:
-| Option | Description |
-| -------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
-| `-h`, `--help` | Output usage information
`storybook add --help` |
-| `-c`, `--config-dir` | Directory where to load Storybook configurations from
`storybook migrate --config-dir .storybook` |
+| Option | Description |
+| -------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| `-h`, `--help` | Output usage information
`storybook add --help` |
+| `-c`, `--config-dir` | Directory where to load Storybook configurations from
`storybook migrate --config-dir .storybook` |
| `--package-manager` | Sets the package manager to use when installing the addon.
Available package managers include `npm`, `yarn`, and `pnpm`
`storybook add [addon] --package-manager pnpm` |
-| `-s`, `--skip-postinstall` | Skips post-install configuration. Used only when you need to configure the addon yourself
`storybook add [addon] --skip-postinstall` |
-| `--debug` | Outputs more logs in the CLI to assist debugging
`storybook add --debug` |
+| `-s`, `--skip-postinstall` | Skips post-install configuration. Used only when you need to configure the addon yourself
`storybook add [addon] --skip-postinstall` |
+| `--debug` | Outputs more logs in the CLI to assist debugging
`storybook add --debug` |
### `remove`
@@ -146,11 +146,11 @@ storybook remove [addon] [options]
Options include:
-| Option | Description |
-| ------------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
-| `-h`, `--help` | Output usage information
`storybook remove --help` |
+| Option | Description |
+| ------------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| `-h`, `--help` | Output usage information
`storybook remove --help` |
| `--package-manager` | Sets the package manager to use when removing the addon.
Available package managers include `npm`, `yarn`, and `pnpm`
`storybook remove [addon]--package-manager pnpm` |
-| `--debug` | Outputs more logs in the CLI to assist debugging
`storybook remove --debug` |
+| `--debug` | Outputs more logs in the CLI to assist debugging
`storybook remove --debug` |
| `--disable-telemetry` | Disables Storybook's telemetry. Learn more about it [here](../configure/telemetry.mdx#how-to-opt-out)
`storybook remove --disable-telemetry` |
| `--enable-crash-reports` | Enables sending crash reports to Storybook's telemetry. Learn more about it [here](../configure/telemetry.mdx#crash-reports-disabled-by-default)
`storybook remove --enable-crash-reports` |
@@ -166,16 +166,16 @@ For example, `storybook@latest upgrade --dry-run` will perform a dry run (no act
Options include:
-| Option | Description |
-| ------------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
-| `-h`, `--help` | Output usage information
`storybook upgrade --help` |
-| `-c`, `--config-dir` | Directory where to load Storybook configurations from
`storybook upgrade --config-dir .storybook` |
-| `-n`, `--dry-run` | Checks for version upgrades without installing them
`storybook upgrade --dry-run` |
-| `-s`, `--skip-check` | Skips the migration check step during the upgrade process
`storybook upgrade --skip-check` |
-| `-y`, `--yes` | Skips interactive prompts and automatically upgrades Storybook to the latest version
`storybook upgrade --yes` |
-| `-f`,`--force` | Force the upgrade, skipping autoblockers check
`storybook upgrade --force` |
+| Option | Description |
+| ------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
+| `-h`, `--help` | Output usage information
`storybook upgrade --help` |
+| `-c`, `--config-dir` | Directory where to load Storybook configurations from
`storybook upgrade --config-dir .storybook` |
+| `-n`, `--dry-run` | Checks for version upgrades without installing them
`storybook upgrade --dry-run` |
+| `-s`, `--skip-check` | Skips the migration check step during the upgrade process
`storybook upgrade --skip-check` |
+| `-y`, `--yes` | Skips interactive prompts and automatically upgrades Storybook to the latest version
`storybook upgrade --yes` |
+| `-f`,`--force` | Force the upgrade, skipping autoblockers check
`storybook upgrade --force` |
| `--package-manager` | Sets the package manager to use when upgrading Storybook.
Available package managers include `npm`, `yarn`, and `pnpm`
`storybook upgrade --package-manager pnpm` |
-| `--debug` | Outputs more logs in the CLI to assist debugging
`storybook upgrade --debug` |
+| `--debug` | Outputs more logs in the CLI to assist debugging
`storybook upgrade --debug` |
| `--disable-telemetry` | Disables Storybook's telemetry. Learn more about it [here](../configure/telemetry.mdx#how-to-opt-out)
`storybook upgrade --disable-telemetry` |
| `--enable-crash-reports` | Enables sending crash reports to Storybook's telemetry. Learn more about it [here](../configure/telemetry.mdx#crash-reports-disabled-by-default)
`storybook upgrade --enable-crash-reports` |
@@ -195,16 +195,16 @@ For example, `storybook@latest migrate csf-2-to-3 --dry-run`, checks your projec
Options include:
-| Option | Description |
-| -------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
-| `-h`, `--help` | Output usage information
`storybook migrate --help` |
-| `-c`, `--config-dir` | Directory where to load Storybook configurations from
`storybook migrate --config-dir .storybook` |
-| `-n`, `--dry-run` | Verify the migration exists and show the files to which it will be applied
`storybook migrate --dry-run` |
-| `-l`, `--list` | Shows a list of available codemods
`storybook migrate --list` |
-| `-g`, `--glob` | Glob for files upon which to apply the codemods
`storybook migrate --glob src/**/*.stories.tsx` |
+| Option | Description |
+| -------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
+| `-h`, `--help` | Output usage information
`storybook migrate --help` |
+| `-c`, `--config-dir` | Directory where to load Storybook configurations from
`storybook migrate --config-dir .storybook` |
+| `-n`, `--dry-run` | Verify the migration exists and show the files to which it will be applied
`storybook migrate --dry-run` |
+| `-l`, `--list` | Shows a list of available codemods
`storybook migrate --list` |
+| `-g`, `--glob` | Glob for files upon which to apply the codemods
`storybook migrate --glob src/**/*.stories.tsx` |
| `-p`, `--parser` | Sets the [jscodeshift parser](https://github.com/facebook/jscodeshift#parser).
Available parsers include `babel`, `babylon`, `flow`, `ts`, and `tsx`
`storybook migrate --parser tsx` |
-| `-r`, `--rename [from-to]` | Renames the files affected by the codemod to include the provided suffix
`storybook migrate --rename ".js:.ts"` |
-| `--debug` | Outputs more logs in the CLI to assist debugging
`storybook migrate --debug` |
+| `-r`, `--rename [from-to]` | Renames the files affected by the codemod to include the provided suffix
`storybook migrate --rename ".js:.ts"` |
+| `--debug` | Outputs more logs in the CLI to assist debugging
`storybook migrate --debug` |
### `automigrate`
@@ -218,17 +218,17 @@ For example, `storybook@latest automigrate --dry-run` scans your project for pot
Options include:
-| Option | Description |
-| ------------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
-| `-h`, `--help` | Output usage information
`storybook automigrate --help` |
-| `-c`, `--config-dir` | Directory where to load Storybook configurations from
`storybook automigrate --config-dir .storybook` |
-| `-n`, `--dry-run` | Checks for available migrations without applying them
`storybook automigrate --dry-run` |
-| `-s`, `--skip-install` | Skip installing dependencies whenever applicable
`storybook automigrate --skip-install` |
-| `-y`, `--yes` | Applies available migrations automatically without prompting for confirmation
`storybook automigrate --yes` |
-| `-l`, `--list` | Shows a list of available automigrations
`storybook automigrate --list` |
+| Option | Description |
+| ------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| `-h`, `--help` | Output usage information
`storybook automigrate --help` |
+| `-c`, `--config-dir` | Directory where to load Storybook configurations from
`storybook automigrate --config-dir .storybook` |
+| `-n`, `--dry-run` | Checks for available migrations without applying them
`storybook automigrate --dry-run` |
+| `-s`, `--skip-install` | Skip installing dependencies whenever applicable
`storybook automigrate --skip-install` |
+| `-y`, `--yes` | Applies available migrations automatically without prompting for confirmation
`storybook automigrate --yes` |
+| `-l`, `--list` | Shows a list of available automigrations
`storybook automigrate --list` |
| `--package-manager` | Sets the package manager to use when running the auto migration.
Available package managers include `npm`, `yarn`, and `pnpm`
`storybook automigrate --package-manager pnpm` |
| `--renderer` | Specifies Storybook's renderer to use when running the automigration.
Useful for monorepo environments where multiple Storybook instances can exist in the same project
`storybook automigrate --renderer vue` |
-| `--debug` | Outputs more logs in the CLI to assist debugging
`storybook automigrate --debug` |
+| `--debug` | Outputs more logs in the CLI to assist debugging
`storybook automigrate --debug` |
| `--disable-telemetry` | Disables Storybook's telemetry. Learn more about it [here](../configure/telemetry.mdx#how-to-opt-out)
`storybook automigrate --disable-telemetry` |
| `--enable-crash-reports` | Enables sending crash reports to Storybook's telemetry. Learn more about it [here](../configure/telemetry.mdx#crash-reports-disabled-by-default)
`storybook automigrate --enable-crash-reports` |
@@ -242,12 +242,12 @@ storybook doctor [options]
Options include:
-| Option | Description |
-| -------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
-| `-h`, `--help` | Output usage information
`storybook doctor --help` |
-| `-c`, `--config-dir` | Directory where to load Storybook configurations from
`storybook doctor --config-dir .storybook` |
+| Option | Description |
+| -------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| `-h`, `--help` | Output usage information
`storybook doctor --help` |
+| `-c`, `--config-dir` | Directory where to load Storybook configurations from
`storybook doctor --config-dir .storybook` |
| `--package-manager` | Sets the package manager to use when running the health check.
Available package managers include `npm`, `yarn`, and `pnpm`
`storybook doctor --package-manager pnpm` |
-| `--debug` | Outputs more logs in the CLI to assist debugging
`storybook doctor --debug` |
+| `--debug` | Outputs more logs in the CLI to assist debugging
`storybook doctor --debug` |
### `info`
@@ -300,12 +300,12 @@ The `framework-filter` argument is optional and can filter the list of available
Options include:
-| Option | Description |
-| --------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
-| `-h`, `--help` | Output usage information
`storybook sandbox --help` |
-| `-o`, `--output [dir-name]` | Configures the location of the sandbox project
`storybook sandbox --output /my-sandbox-project` |
-| `--no-init` | Generates a sandbox project without without initializing Storybook
`storybook sandbox --no-init` |
-| `--debug` | Outputs more logs in the CLI to assist debugging
`storybook sandbox --debug` |
+| Option | Description |
+| --------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
+| `-h`, `--help` | Output usage information
`storybook sandbox --help` |
+| `-o`, `--output [dir-name]` | Configures the location of the sandbox project
`storybook sandbox --output /my-sandbox-project` |
+| `--no-init` | Generates a sandbox project without without initializing Storybook
`storybook sandbox --no-init` |
+| `--debug` | Outputs more logs in the CLI to assist debugging
`storybook sandbox --debug` |
| `--disable-telemetry` | Disables Storybook's telemetry. Learn more about it [here](../configure/telemetry.mdx#how-to-opt-out)
`storybook sandbox --disable-telemetry` |
| `--enable-crash-reports` | Enables sending crash reports to Storybook's telemetry. Learn more about it [here](../configure/telemetry.mdx#crash-reports-disabled-by-default)
`storybook sandbox --enable-crash-reports` |
diff --git a/docs/api/csf.mdx b/docs/api/csf.mdx
index 2cab3e29c03e..68f2d2f37266 100644
--- a/docs/api/csf.mdx
+++ b/docs/api/csf.mdx
@@ -41,13 +41,13 @@ With CSF, every named export in the file represents a story object by default.
The exported identifiers will be converted to "start case" using Lodash's [startCase](https://lodash.com/docs/#startCase) function. For example:
-| Identifier | Transformation |
-| ---------------- | ----------------- |
-| name | Name |
-| someName | Some Name |
-| someNAME | Some NAME |
+| Identifier | Transformation |
+| ---------------- | ------------------- |
+| name | Name |
+| someName | Some Name |
+| someNAME | Some NAME |
| some\_custom\_NAME | Some Custom NAME |
-| someName1234 | Some Name 1 2 3 4 |
+| someName1234 | Some Name 1 2 3 4 |
We recommend that all export names to start with a capital letter.
diff --git a/docs/api/doc-blocks/doc-block-controls.mdx b/docs/api/doc-blocks/doc-block-controls.mdx
index be5a589ac981..5c11708a0019 100644
--- a/docs/api/doc-blocks/doc-block-controls.mdx
+++ b/docs/api/doc-blocks/doc-block-controls.mdx
@@ -33,7 +33,9 @@ import * as ButtonStories from './Button.stories'
{/* prettier-ignore-end */}
+
The Controls doc block will only have functioning UI controls if you have also installed and registered [`@storybook/addon-controls`](../../essentials/controls.mdx) (included in [`@storybook/addon-essentials`](../../essentials/index.mdx)) and haven't turned off inline stories with the [`inline`](./doc-block-story.mdx#inline) configuration option.
+
## Controls
@@ -69,7 +71,9 @@ import { Controls } from '@storybook/blocks';
+
This API configures Controls blocks used within docs pages. To configure the Controls addon panel, see the [Controls addon docs](../../essentials/controls.mdx). To configure individual controls, you can specify [argTypes](../arg-types.mdx#control) for each.
+
### `exclude`
diff --git a/docs/api/doc-blocks/doc-block-meta.mdx b/docs/api/doc-blocks/doc-block-meta.mdx
index 06d599adf537..f0121df062e1 100644
--- a/docs/api/doc-blocks/doc-block-meta.mdx
+++ b/docs/api/doc-blocks/doc-block-meta.mdx
@@ -86,7 +86,9 @@ Attaching an MDX file to a component’s stories with the `of` prop serves two p
2. Attaches the component and its stories to the MDX file, allowing you to use other doc blocks in “attached” mode (for instance to use the `Stories` block).
+
The `of` prop is optional. If you don’t want to attach a specific CSF file to this MDX file, you can either use the `title` prop to control the location, or emit `Meta` entirely, and let [autotitle](../../configure/user-interface/sidebar-and-urls.mdx#csf-30-auto-titles) decide where it goes.
+
### `title`
@@ -109,7 +111,9 @@ import { Meta } from '@storybook/blocks';
{/* prettier-ignore-end */}
+
If you want to change the sorting of the docs entry with the component’s stories, use [Story Sorting](../../writing-stories/naming-components-and-hierarchy.mdx#sorting-stories), or add specific MDX files to your `stories` field in `main.js` in order.
+
## Attached vs. unattached
diff --git a/docs/api/doc-blocks/doc-block-source.mdx b/docs/api/doc-blocks/doc-block-source.mdx
index a04933ba0261..e2d5f94d5985 100644
--- a/docs/api/doc-blocks/doc-block-source.mdx
+++ b/docs/api/doc-blocks/doc-block-source.mdx
@@ -93,7 +93,9 @@ Default: `parameters.docs.source.dark`
Determines if the snippet is rendered in dark mode.
+
Light mode is only supported when the `Source` block is rendered independently. When rendered as part of a [`Canvas` block](./doc-block-canvas.mdx)—like it is in [autodocs](../../writing-docs/autodocs.mdx)—it will always use dark mode.
+
@@ -158,5 +160,7 @@ Specifies how the source code is rendered.
* **dynamic**: Renders the story source with dynamically updated arg values
+
Note that dynamic snippets will only work if the story uses [`args`](../../writing-stories/args.mdx) and the [`Story` block](./doc-block-story.mdx) for that story is rendered along with the `Source` block.
+
diff --git a/docs/api/doc-blocks/doc-block-stories.mdx b/docs/api/doc-blocks/doc-block-stories.mdx
index 6d219de49e02..42cd9fcc2c95 100644
--- a/docs/api/doc-blocks/doc-block-stories.mdx
+++ b/docs/api/doc-blocks/doc-block-stories.mdx
@@ -43,7 +43,9 @@ Default: `true`
Determines if the collection of stories includes the primary (first) story.
+
If a stories file contains only one story and `includePrimary={true}`, the `Stories` block will render nothing to avoid a potentially confusing situation.
+
### `title`
diff --git a/docs/api/doc-blocks/doc-block-story.mdx b/docs/api/doc-blocks/doc-block-story.mdx
index 7e07d1e7bb95..19509b523a3c 100644
--- a/docs/api/doc-blocks/doc-block-story.mdx
+++ b/docs/api/doc-blocks/doc-block-story.mdx
@@ -12,7 +12,9 @@ Stories (component tests) are Storybook's fundamental building blocks.
In Storybook Docs, you can render any of your stories from your CSF files in the context of an MDX file with all annotations (parameters, args, loaders, decorators, play function) applied using the `Story` block.
+
Typically you want to use the [`Canvas` block](./doc-block-canvas.mdx) to render a story with a surrounding border and the source block, but you can use the `Story` block to render just the story.
+
![Screenshot of Story block](../../_assets/api/doc-block-story.png)
@@ -76,6 +78,10 @@ Because all stories render simultaneously in docs entries, play functions can pe
However, if you know your play function is “safe” to run in docs, you can use this prop to run it automatically.
+
+ If a story uses [`mount` in its play function](../../writing-tests/interaction-testing.mdx#run-code-before-the-component-gets-rendered), it will not render in docs unless `autoplay` is set to `true`.
+
+
### `height`
Type: `string`
@@ -93,7 +99,9 @@ Default: `parameters.docs.story.inline` or `true` (for [supported frameworks](..
Determines whether the story is rendered `inline` (in the same browser frame as the other docs content) or in an iframe.
+
Setting the `inline` option to false will prevent the associated [controls](./doc-block-controls.mdx) from updating the story within the documentation page. This is a known limitation of the current implementation and will be addressed in a future release.
+
### `meta`
diff --git a/docs/api/doc-blocks/doc-block-unstyled.mdx b/docs/api/doc-blocks/doc-block-unstyled.mdx
index c17a9e8376f1..4e9e56a8ade3 100644
--- a/docs/api/doc-blocks/doc-block-unstyled.mdx
+++ b/docs/api/doc-blocks/doc-block-unstyled.mdx
@@ -38,7 +38,9 @@ Yields:
![Screenshot of Unstyled Doc Block](../../_assets/api/doc-block-unstyled.png)
+
The other blocks like [`Story`](./doc-block-story.mdx) and [`Canvas`](./doc-block-canvas.mdx) are already unstyled, so there’s no need to wrap those in the `Unstyled` block to ensure that Storybook’s styles don’t bleed into the stories. However, if you import your components directly in the MDX, you most likely want to wrap them in the Unstyled block.
+
diff --git a/docs/api/main-config/main-config-babel-default.mdx b/docs/api/main-config/main-config-babel-default.mdx
index b0ce4d41c17e..25a763fe8006 100644
--- a/docs/api/main-config/main-config-babel-default.mdx
+++ b/docs/api/main-config/main-config-babel-default.mdx
@@ -12,7 +12,9 @@ Type: `(config: Babel.Config, options: Options) => Babel.Config | Promise
+
To adjust your Storybook's Babel setup directly—not via an addon—use [`babel`](./main-config-babel.mdx) instead.
+
{/* prettier-ignore-start */}
diff --git a/docs/api/main-config/main-config-babel.mdx b/docs/api/main-config/main-config-babel.mdx
index 2aedba7b479e..88203adceb03 100644
--- a/docs/api/main-config/main-config-babel.mdx
+++ b/docs/api/main-config/main-config-babel.mdx
@@ -12,7 +12,9 @@ Type: `(config: Babel.Config, options: Options) => Babel.Config | Promise
+
[Addon authors](../../addons/writing-presets.mdx#babel) should use [`babelDefault`](./main-config-babel-default.mdx) instead, which is applied to the preview config before any user presets have been applied.
+
{/* prettier-ignore-start */}
@@ -26,7 +28,9 @@ Customize Storybook's [Babel](https://babeljs.io/) setup.
The options provided by [Babel](https://babeljs.io/docs/options) are only applicable if you've enabled the [`@storybook/addon-webpack5-compiler-babel`](https://storybook.js.org/addons/@storybook/addon-webpack5-compiler-babel) addon.
+
If you have an existing Babel configuration file (e.g., `.babelrc`), it will be automatically detected and used by Storybook without any additional configuration required.
+
## `Options`
diff --git a/docs/api/main-config/main-config-indexers.mdx b/docs/api/main-config/main-config-indexers.mdx
index 246ad79372cc..9d31b0c169cc 100644
--- a/docs/api/main-config/main-config-indexers.mdx
+++ b/docs/api/main-config/main-config-indexers.mdx
@@ -27,7 +27,7 @@ They are defined as a function that returns the full list of indexers, including
{/* prettier-ignore-end */}
-Unless your indexer is doing something relatively trivial (e.g. [indexing stories with a different naming convention](../../configure/sidebar-and-urls#story-indexers)), in addition to indexing the file, you will likely need to [transpile it to CSF](#transpiling-to-csf) so that Storybook can read them in the browser.
+Unless your indexer is doing something relatively trivial (e.g. [indexing stories with a different naming convention](../../configure/user-interface/sidebar-and-urls.mdx#story-indexers)), in addition to indexing the file, you will likely need to [transpile it to CSF](#transpiling-to-csf) so that Storybook can read them in the browser.
## `Indexer`
diff --git a/docs/api/main-config/main-config-manager-head.mdx b/docs/api/main-config/main-config-manager-head.mdx
index bbf9e8e8caeb..8af2641db0c1 100644
--- a/docs/api/main-config/main-config-manager-head.mdx
+++ b/docs/api/main-config/main-config-manager-head.mdx
@@ -12,7 +12,9 @@ Type: `(head: string) => string`
Programmatically adjust the manager's `` of your Storybook. For example, load a custom font or add a script. Most often used by [addon authors](../../addons/writing-presets.mdx#ui-configuration).
+
If you don't need to programmatically adjust the manager head, you can add scripts and styles to `manager-head.html` instead.
+
For example, you can conditionally add scripts or styles, depending on the environment:
diff --git a/docs/api/main-config/main-config-preview-body.mdx b/docs/api/main-config/main-config-preview-body.mdx
index 468913537ac6..0777c1a35904 100644
--- a/docs/api/main-config/main-config-preview-body.mdx
+++ b/docs/api/main-config/main-config-preview-body.mdx
@@ -12,7 +12,9 @@ Type: `(body: string) => string`
Programmatically adjust the [preview ``](../../configure/story-rendering.mdx#adding-to-body) of your Storybook. Most often used by [addon authors](../../addons/writing-presets.mdx#ui-configuration).
+
If you don't need to programmatically adjust the preview body, you can add scripts and styles to [`preview-body.html`](../../configure/story-rendering.mdx#adding-to-body) instead.
+
For example, you can conditionally add scripts or styles, depending on the environment:
diff --git a/docs/api/main-config/main-config-refs.mdx b/docs/api/main-config/main-config-refs.mdx
index 40a2ce47320a..33f7c69c5803 100644
--- a/docs/api/main-config/main-config-refs.mdx
+++ b/docs/api/main-config/main-config-refs.mdx
@@ -11,8 +11,8 @@ Type:
```ts
{ [key: string]:
- | { title: string; url: string; expanded?: boolean }
- | (config: { title: string; url: string; expanded?: boolean }) => { title: string; url: string; expanded?: boolean }
+ | { title: string; url: string; expanded?: boolean, sourceUrl?: string }
+ | (config: { title: string; url: string; expanded?: boolean, sourceUrl: string }) => { title: string; url: string; expanded?: boolean, sourceUrl?: string }
| { disable: boolean }
}
```
diff --git a/docs/api/portable-stories/portable-stories-jest.mdx b/docs/api/portable-stories/portable-stories-jest.mdx
index aaa958c4afe4..28ed8e65b2f5 100644
--- a/docs/api/portable-stories/portable-stories-jest.mdx
+++ b/docs/api/portable-stories/portable-stories-jest.mdx
@@ -1,10 +1,10 @@
---
title: 'Portable stories in Jest'
-draft: true
+sidebar:
+ title: Jest
+ order: 1
---
-{/* This page is unpublished for now */}
-
Portable stories in Jest are currently only supported in [React](?renderer=react) and [Vue](?renderer=vue) projects.
@@ -81,15 +81,15 @@ draft: true
Additionally, the composed story will have the following properties:
- | Property | Type | Description |
- | ---------- | -------------------------------------------------------- | ------------------------------------------------------------------------------------- |
- | storyName | `string` | The story's name |
- | args | `Record` | The story's [args](../../writing-stories/args.mdx) |
- | argTypes | `ArgType` | The story's [argTypes](../arg-types.mdx) |
- | id | `string` | The story's id |
- | parameters | `Record` | The story's [parameters](../parameters.mdx) |
- | load | `() => Promise` | [Prepares](#3-prepare) the story for rendering and and cleans up all previous stories |
- | play | `(context?: StoryContext) => Promise \| undefined` | Executes the [play function](#5-play) of a given story |
+ | Property | Type | Description |
+ | ---------- | ----------------------------------------- | ------------------------------------------------------------------------------------- |
+ | storyName | `string` | The story's name |
+ | args | `Record` | The story's [args](../../writing-stories/args.mdx) |
+ | argTypes | `ArgType` | The story's [argTypes](../arg-types.mdx) |
+ | id | `string` | The story's id |
+ | tags | `string[]` | The story's [tags](../../writing-stories/tags.mdx) |
+ | parameters | `Record` | The story's [parameters](../parameters.mdx) |
+ | play | `(context) => Promise \| undefined` | Mounts and executes the [play function](#3-play) of a given story |
## composeStory
@@ -159,37 +159,29 @@ draft: true
## setProjectAnnotations
This API should be called once, before the tests run, typically in a [setup file](https://jestjs.io/docs/configuration#setupfiles-array). This will make sure that whenever `composeStories` or `composeStory` are called, the project annotations are taken into account as well.
+
+ These are the configurations needed in the setup file:
+ - preview annotations: those defined in `.storybook/preview.ts`
+ - addon annotations (optional): those exported by addons
+ - beforeAll: code that runs before all tests ([more info](../../writing-tests/interaction-testing.mdx#beforeall))
+ - testingLibraryRender: the render function from Testing Library
-
-
- **Using `Next.js`?** When you import [`composeStories`](#composestories) or [`composeStory`](#composestory) from the `@storybook/nextjs` package (e.g. `import { composeStories } from '@storybook/nextjs'`), you probably do not need to call `setProjectAnnotations` yourself. The Next.js framework will handle this for you.
-
- If you are using an addon that is required for your stories to render, you will still need to include that addon's `preview` export in the project annotations set. See the example and callout below.
-
+ {/* prettier-ignore-start */}
-
-
+
- ```ts
- // setup-portable-stories.ts
- // Replace with your renderer, e.g. nextjs, react, vue3
- import { setProjectAnnotations } from '@storybook/';
- import * as addonAnnotations from 'my-addon/preview';
- import * as previewAnnotations from './.storybook/preview';
+ {/* prettier-ignore-end */}
- setProjectAnnotations([previewAnnotations, addonAnnotations]);
- ```
+ Sometimes a story can require an addon's [decorator](../../writing-stories/decorators.mdx) or [loader](../../writing-stories/loaders.mdx) to render properly. For example, an addon can apply a decorator that wraps your story in the necessary router context. In this case, you must include that addon's `preview` export in the project annotations set. See `addonAnnotations` in the example above.
-
- Sometimes a story can require an addon's [decorator](../../writing-stories/decorators.mdx) or [loader](../../writing-stories/loaders.mdx) to render properly. For example, an addon can apply a decorator that wraps your story in the necessary router context. In this case, you must include that addon's `preview` export in the project annotations set. See `addonAnnotations` in the example above.
+ Note: If the addon doesn't automatically apply the decorator or loader itself, but instead exports them for you to apply manually in `.storybook/preview.js|ts` (e.g. using `withThemeFromJSXProvider` from [@storybook/addon-themes](https://github.com/storybookjs/storybook/blob/next/code/addons/themes/docs/api.md#withthemefromjsxprovider)), then you do not need to do anything else. They are already included in the `previewAnnotations` in the example above.
- Note: If the addon doesn't automatically apply the decorator or loader itself, but instead exports them for you to apply manually in `.storybook/preview.js|ts` (e.g. using `withThemeFromJSXProvider` from [@storybook/addon-themes](https://github.com/storybookjs/storybook/blob/next/code/addons/themes/docs/api.md#withthemefromjsxprovider)), then you do not need to do anything else. They are already included in the `previewAnnotations` in the example above.
-
+ If you need to configure Testing Library's `render` or use a different render function, please let us know in [this discussion](https://github.com/storybookjs/storybook/discussions/28532) so we can learn more about your needs.
### Type
```ts
- (projectAnnotations: ProjectAnnotation | ProjectAnnotation[]) => void
+ (projectAnnotations: ProjectAnnotation | ProjectAnnotation[]) => ProjectAnnotation
```
### Parameters
@@ -208,53 +200,27 @@ draft: true
## Story pipeline
- To preview your stories, Storybook runs a story pipeline, which includes applying project annotations, loading data, rendering the story, and playing interactions. This is a simplified version of the pipeline:
+ To preview your stories in Storybook, Storybook runs a story pipeline, which includes applying project annotations, loading data, rendering the story, and playing interactions. This is a simplified version of the pipeline:
- ![A flow diagram of the story pipeline. First, set project annotations. Storybook automatically collects decorators etc. which are exported by addons and the .storybook/preview file. .storybook/preview.js produces project annotations; some-addon/preview produces addon annotations. Second, prepare. Storybook gathers all the metadata required for a story to be composed. Select.stories.js produces component annotations from the default export and story annotations from the named export. Third, load. Storybook executes all loaders (async). Fourth, render. Storybook renders the story as a component. Illustration of the rendered Select component. Fifth, play. Storybook runs the play function (interacting with component). Illustration of the renderer Select component, now open.](../../_assets/api/story-pipeline.png)
+ ![A flow diagram of the story pipeline. First, set project annotations. Collect annotations (decorators, args, etc) which are exported by addons and the preview file. Second, compose story. Create renderable elements based on the stories passed onto the API. Third, play. Mount the component and execute all the story lifecycle hooks.](../../_assets/api/story-pipeline.png)
When you want to reuse a story in a different environment, however, it's crucial to understand that all these steps make a story. The portable stories API provides you with the mechanism to recreate that story pipeline in your external environment:
### 1. Apply project-level annotations
- [Annotations](#annotations) come from the story itself, that story's component, and the project. The project-level annotatations are those defined in your `.storybook/preview.js` file and by addons you're using. In portable stories, these annotations are not applied automatically—you must apply them yourself.
+ [Annotations](#annotations) come from the story itself, that story's component, and the project. The project-level annotations are those defined in your `.storybook/preview.js` file and by addons you're using. In portable stories, these annotations are not applied automatically — you must apply them yourself.
- 👉 For this, you use the [`setProjectAnnotations`](#setprojectannotations) API.
+ 👉 For this, you use the [`setProjectAnnotations`](#setprojectannotations) API.
### 2. Compose
- The story is prepared by running [`composeStories`](#composestories) or [`composeStory`](#composestory). You do not need to do anything for this step.
-
- ### 3. Prepare
-
- Stories can prepare data they need (e.g. setting up some mocks or fetching data) before rendering by defining [loaders](../../writing-stories/loaders.mdx) or [beforeEach](../../writing-tests/interaction-testing.mdx#run-code-before-each-test). In portable stories, loaders and beforeEach are not applied automatically — you have to apply them yourself.
-
- 👉 For this, you use the [`composeStories`](#composestories) or [`composeStory`](#composestory) API. The composed story will return a `load` method to be called **before** it is rendered.
-
-
- It is recommended to always run `load` before rendering, even if the story doesn't have any loaders or beforeEach applied. By doing so, you ensure that the tests are cleaned up properly to maintain isolation and you will not have to update your test if you later add them to your story.
-
-
- {/* prettier-ignore-start */}
-
-
-
- {/* prettier-ignore-end */}
-
- ### 4. Render
-
- At this point, the story has been prepared and can be rendered. You pass it into the
-
- The story has been prepared and can be rendered. To render, you pass it into the rendering mechanism of your choice (e.g. Testing Library render function, Vue test utils mount function, etc).
-
- 👉 For this, you use the [`composeStories`](#composestories) or [`composeStory`](#composestory) API. The composed Story is a renderable component that can be passed to your rendering mechanism.
-
- ### 5. Play
+ The story is prepared by running [`composeStories`](#composestories) or [`composeStory`](#composestory). The outcome is a renderable component that represents the render function of the story.
- **(optional)**
+ ### 3. Play
- Finally, stories can define a [play function](../../essentials/interactions.mdx#play-function-for-interactions) to interact with the story and assert on details after it has rendered. In portable stories, the play function does not run automatically—you have to call it yourself.
+ Finally, stories can prepare data they need (e.g. setting up some mocks or fetching data) before rendering by defining [loaders](../../writing-stories/loaders.mdx), [beforeEach](../../writing-tests/interaction-testing.mdx#run-code-before-each-story) or by having all the story code in the play function when using the [mount](../../writing-tests/interaction-testing.mdx#run-code-before-the-component-gets-rendered). In portable stories, all of these steps will be executed when you run the `play` method of the composed story.
- 👉 For this, you use the [`composeStories`](#composestories) or [`composeStory`](#composestory) API. The composed Story will return a `play` method to be called **after** it has rendered.
+ 👉 For this, you use the [`composeStories`](#composestories) or [`composeStory`](#composestory) API. The composed story will return a `play` method to be called.
{/* prettier-ignore-start */}
diff --git a/docs/api/portable-stories/portable-stories-playwright.mdx b/docs/api/portable-stories/portable-stories-playwright.mdx
index 392d613d6f6d..5ba64aab8827 100644
--- a/docs/api/portable-stories/portable-stories-playwright.mdx
+++ b/docs/api/portable-stories/portable-stories-playwright.mdx
@@ -1,8 +1,8 @@
---
title: 'Portable stories in Playwright CT'
sidebar:
- order: 1
title: Playwright
+ order: 2
---
(⚠️ **Experimental**)
@@ -29,8 +29,6 @@ sidebar:
Your project must be using React 18+ to use the portable stories API with Playwright CT.
**Using `Next.js`?** The portable stories API is not yet supported in Next.js with Playwright CT.
-
- {/* **Using `Next.js`?** Next.js requires specific configuration that is only available in [Jest](./portable-stories-jest.mdx). The portable stories API is not supported in Next.js with Playwright CT. */}
@@ -78,8 +76,8 @@ sidebar:
```ts
// Button.stories.portable.ts
- // Replace with your renderer, e.g. react, vue3
- import { composeStories } from '@storybook/';
+ // Replace your-renderer with the renderer you are using (e.g. react, vue3)
+ import { composeStories } from '@storybook/your-renderer';
import * as stories from './Button.stories';
@@ -118,27 +116,26 @@ sidebar:
## setProjectAnnotations
This API should be called once, before the tests run, in [`playwright/index.ts`](https://playwright.dev/docs/test-components#step-1-install-playwright-test-for-components-for-your-respective-framework). This will make sure that when `mount` is called, the project annotations are taken into account as well.
+
+ These are the configurations needed in the setup file:
+ - preview annotations: those defined in `.storybook/preview.ts`
+ - addon annotations (optional): those exported by addons
+ - beforeAll: code that runs before all tests ([more info](../../writing-tests/interaction-testing.mdx#beforeall))
- ```ts
- // playwright/index.ts
- // Replace with your renderer, e.g. react, vue3
- import { setProjectAnnotations } from '@storybook/';
- import * as addonAnnotations from 'my-addon/preview';
- import * as previewAnnotations from '../.storybook/preview';
+ {/* prettier-ignore-start */}
- setProjectAnnotations([previewAnnotations, addonAnnotations]);
- ```
+
-
- Sometimes a story can require an addon's [decorator](../../writing-stories/decorators.mdx) or [loader](../../writing-stories/loaders.mdx) to render properly. For example, an addon can apply a decorator that wraps your story in the necessary router context. In this case, you must include that addon's `preview` export in the project annotations set. See `addonAnnotations` in the example above.
+ {/* prettier-ignore-end */}
- Note: If the addon doesn't automatically apply the decorator or loader itself, but instead exports them for you to apply manually in `.storybook/preview.js|ts` (e.g. using `withThemeFromJSXProvider` from [@storybook/addon-themes](https://github.com/storybookjs/storybook/blob/next/code/addons/themes/docs/api.md#withthemefromjsxprovider)), then you do not need to do anything else. They are already included in the `previewAnnotations` in the example above.
-
+ Sometimes a story can require an addon's [decorator](../../writing-stories/decorators.mdx) or [loader](../../writing-stories/loaders.mdx) to render properly. For example, an addon can apply a decorator that wraps your story in the necessary router context. In this case, you must include that addon's `preview` export in the project annotations set. See `addonAnnotations` in the example above.
+
+ Note: If the addon doesn't automatically apply the decorator or loader itself, but instead exports them for you to apply manually in `.storybook/preview.js|ts` (e.g. using `withThemeFromJSXProvider` from [@storybook/addon-themes](https://github.com/storybookjs/storybook/blob/next/code/addons/themes/docs/api.md#withthemefromjsxprovider)), then you do not need to do anything else. They are already included in the `previewAnnotations` in the example above.
### Type
```ts
- (projectAnnotations: ProjectAnnotation | ProjectAnnotation[]) => void
+ (projectAnnotations: ProjectAnnotation | ProjectAnnotation[]) => ProjectAnnotation
```
### Parameters
@@ -163,21 +160,21 @@ sidebar:
To preview your stories, Storybook runs a story pipeline, which includes applying project annotations, loading data, rendering the story, and playing interactions. This is a simplified version of the pipeline:
- ![A flow diagram of the story pipeline. First, set project annotations. Storybook automatically collects decorators etc. which are exported by addons and the .storybook/preview file. .storybook/preview.js produces project annotations; some-addon/preview produces addon annotations. The rest of the steps are labeled as a group, Playwright test. Second, prepare. Storybook gathers all the metadata required for a story to be composed. Select.stories.js produces component annotations from the default export and story annotations from the named export. Third, load. Storybook executes all loaders (async). Fourth, render. Storybook renders the story as a component. Illustration of the rendered Select component. Fifth, play. Storybook runs the play function (interacting with component). Illustration of the renderer Select component, now open.](../../_assets/api/story-pipeline-playwright-ct.png)
+ ![A flow diagram of the story pipeline. First, set project annotations. Collect annotations (decorators, args, etc) which are exported by addons and the preview file. Second, compose story. Create renderable elements based on the stories passed onto the API. Third, render story. Load, mount, and execute the play function as part of the portable stories API.](../../_assets/api/story-pipeline-playwright.png)
When you want to reuse a story in a different environment, however, it's crucial to understand that all these steps make a story. The portable stories API provides you with the mechanism to recreate that story pipeline in your external environment:
### 1. Apply project-level annotations
- [Annotations](#annotations) come from the story itself, that story's component, and the project. The project-level annotatations are those defined in your `.storybook/preview.js` file and by addons you're using. In portable stories, these annotations are not applied automatically—you must apply them yourself.
+ [Annotations](#annotations) come from the story itself, that story's component, and the project. The project-level annotations are those defined in your `.storybook/preview.js` file and by addons you're using. In portable stories, these annotations are not applied automatically — you must apply them yourself.
- 👉 For this, you use the [`setProjectAnnotations`](#setprojectannotations) API.
+ 👉 For this, you use the [`setProjectAnnotations`](#setprojectannotations) API.
### 2. Prepare, load, render, and play
The story pipeline includes preparing the story, [loading data](../../writing-stories/loaders.mdx), rendering the story, and [playing interactions](../../essentials/interactions.mdx#play-function-for-interactions). In portable stories within Playwright CT, the `mount` function takes care of these steps for you.
- 👉 For this, you use the [`createTest`](#createtest) API.
+ 👉 For this, you use the [`createTest`](#createtest) API.
If your play function contains assertions (e.g. `expect` calls), your test will fail when those assertions fail.
@@ -189,23 +186,7 @@ sidebar:
{/* prettier-ignore-start */}
- ```tsx
- // Button.portable.ts
- import { test } from 'playwright';
- import { render } from '@testing-library/react';
- import { composeStory } from '@storybook/react';
-
- import meta, { Primary } from './Button.stories';
-
- export const PrimaryEnglish = composeStory(
- Primary,
- meta,
- { globals: { locale: 'en' } } // 👈 Project annotations to override the locale
- );
-
- export const PrimarySpanish =
- composeStory(Primary, meta, { globals: { locale: 'es' } });
- ```
+
You can then use those composed stories in your Playwright test file using the [`createTest`](#createtest) function.
diff --git a/docs/api/portable-stories/portable-stories-vitest.mdx b/docs/api/portable-stories/portable-stories-vitest.mdx
index 15ef0f681b69..82fc3b54f1f9 100644
--- a/docs/api/portable-stories/portable-stories-vitest.mdx
+++ b/docs/api/portable-stories/portable-stories-vitest.mdx
@@ -1,10 +1,10 @@
---
title: 'Portable stories in Vitest'
-draft: true
+sidebar:
+ title: Vitest
+ order: 0
---
-{/* This page is unpublished for now */}
-
Portable stories in Vitest are currently only supported in [React](?renderer=react), [Vue](?renderer=vue) and [Svelte](?renderer=svelte) projects.
@@ -13,6 +13,10 @@ draft: true
{/* End non-supported renderers */}
+
+ (⚠️ **Experimental**)
+
+
Portable stories are Storybook [stories](../../writing-stories/index.mdx) which can be used in external environments, such as [Vitest](https://vitest.dev).
@@ -20,13 +24,13 @@ draft: true
- **Using `Next.js`?** Next.js requires specific configuration that is only available in [Jest](../portable-stories-jest.mdx). The portable stories API is not supported in Next.js with Vitest.
+ **Using `Next.js`?** Next.js requires specific configuration that is only available in [Jest](./portable-stories-jest.mdx). The portable stories API is not supported in Next.js with Vitest.
## composeStories
- `composeStories` will process the component's stories you specify, compose each of them with the necessary [annotations](#annotations), and return an object containing the composed stories.
+ `composeStories` will process the component's stories you specify, compose each of them with the necessary [annotations](#annotations), and return an object containing the composed stories.
By default, the composed story will render the component with the [args](../../writing-stories/args.mdx) that are defined in the story. You can also pass any props to the component in your test and those props will override the values passed in the story's args.
@@ -86,16 +90,16 @@ draft: true
| Property | Type | Description |
| ---------- | ----------------------------------------- | ------------------------------------------------------------------------------------- |
| storyName | `string` | The story's name |
- | args | `Record` | The story's [args](../../writing-stories/args.mdx) |
- | argTypes | `ArgType` | The story's [argTypes](../arg-types.mdx) |
+ | args | `Record` | The story's [args](../../writing-stories/args.mdx) |
+ | argTypes | `ArgType` | The story's [argTypes](../arg-types.mdx) |
| id | `string` | The story's id |
- | parameters | `Record` | The story's [parameters](../parameters.mdx) |
- | load | `() => Promise` | [Prepares](#3-prepare) the story for rendering and and cleans up all previous stories |
- | play | `(context) => Promise \| undefined` | Executes the [play function](#5-play) of a given story |
+ | tags | `string[]` | The story's [tags](../../writing-stories/tags.mdx) |
+ | parameters | `Record` | The story's [parameters](../parameters.mdx) |
+ | play | `(context) => Promise \| undefined` | Mounts and executes the [play function](#3-play) of a given story |
## composeStory
- You can use `composeStory` if you wish to compose a single story for a component.
+ You can use `composeStory` if you wish to compose a single story for a component.
{/* prettier-ignore-start */}
@@ -161,27 +165,37 @@ draft: true
## setProjectAnnotations
This API should be called once, before the tests run, typically in a [setup file](https://vitest.dev/config/#setupfiles). This will make sure that whenever `composeStories` or `composeStory` are called, the project annotations are taken into account as well.
+
+ These are the configurations needed in the setup file:
+ - preview annotations: those defined in `.storybook/preview.ts`
+ - addon annotations (optional): those exported by addons
+ - beforeAll: code that runs before all tests ([more info](../../writing-tests/interaction-testing.mdx#beforeall))
+ - testingLibraryRender: the render function from Testing Library
- ```ts
- // setup-portable-stories.ts
- // Replace with your renderer, e.g. react, vue3, svelte
- import { setProjectAnnotations } from '@storybook/';
- import * as addonAnnotations from 'my-addon/preview';
- import * as previewAnnotations from './.storybook/preview';
+ {/* prettier-ignore-start */}
- setProjectAnnotations([previewAnnotations, addonAnnotations]);
- ```
+
+
+ {/* prettier-ignore-end */}
- Sometimes a story can require an addon's [decorator](../../writing-stories/decorators.mdx) or [loader](../../writing-stories/loaders.mdx) to render properly. For example, an addon can apply a decorator that wraps your story in the necessary router context. In this case, you must include that addon's `preview` export in the project annotations set. See `addonAnnotations` in the example above.
- Note: If the addon doesn't automatically apply the decorator or loader itself, but instead exports them for you to apply manually in `.storybook/preview.js|ts` (e.g. using `withThemeFromJSXProvider` from [@storybook/addon-themes](https://github.com/storybookjs/storybook/blob/next/code/addons/themes/docs/api.md#withthemefromjsxprovider)), then you do not need to do anything else. They are already included in the `previewAnnotations` in the example above.
+ You **must** provide `testingLibraryRenderer` to use portable stories with Vitest.
+
+ {/* TODO: Create issue for interest in non-Testing Library render option, with recipe, and mention here (Jest, too) */}
+
+ Sometimes a story can require an addon's [decorator](../../writing-stories/decorators.mdx) or [loader](../../writing-stories/loaders.mdx) to render properly. For example, an addon can apply a decorator that wraps your story in the necessary router context. In this case, you must include that addon's `preview` export in the project annotations set. See `addonAnnotations` in the example above.
+
+ Note: If the addon doesn't automatically apply the decorator or loader itself, but instead exports them for you to apply manually in `.storybook/preview.js|ts` (e.g. using `withThemeFromJSXProvider` from [@storybook/addon-themes](https://github.com/storybookjs/storybook/blob/next/code/addons/themes/docs/api.md#withthemefromjsxprovider)), then you do not need to do anything else. They are already included in the `previewAnnotations` in the example above.
+
+ If you need to configure Testing Library's `render` or use a different render function, please let us know in [this discussion](https://github.com/storybookjs/storybook/discussions/28532) so we can learn more about your needs.
+
### Type
```ts
- (projectAnnotations: ProjectAnnotation | ProjectAnnotation[]) => void
+ (projectAnnotations: ProjectAnnotation | ProjectAnnotation[]) => ProjectAnnotation
```
### Parameters
@@ -200,53 +214,27 @@ draft: true
## Story pipeline
- To preview your stories, Storybook runs a story pipeline, which includes applying project annotations, loading data, rendering the story, and playing interactions. This is a simplified version of the pipeline:
+ To preview your stories in Storybook, Storybook runs a story pipeline, which includes applying project annotations, loading data, rendering the story, and playing interactions. This is a simplified version of the pipeline:
- ![A flow diagram of the story pipeline. First, set project annotations. Storybook automatically collects decorators etc. which are exported by addons and the .storybook/preview file. .storybook/preview.js produces project annotations; some-addon/preview produces addon annotations. Second, prepare. Storybook gathers all the metadata required for a story to be composed. Select.stories.js produces component annotations from the default export and story annotations from the named export. Third, load. Storybook executes all loaders (async). Fourth, render. Storybook renders the story as a component. Illustration of the rendered Select component. Fifth, play. Storybook runs the play function (interacting with component). Illustration of the renderer Select component, now open.](../../_assets/api/story-pipeline.png)
+ ![A flow diagram of the story pipeline. First, set project annotations. Collect annotations (decorators, args, etc) which are exported by addons and the preview file. Second, compose story. Create renderable elements based on the stories passed onto the API. Third, play. Mount the component and execute all the story lifecycle hooks.](../../_assets/api/story-pipeline.png)
When you want to reuse a story in a different environment, however, it's crucial to understand that all these steps make a story. The portable stories API provides you with the mechanism to recreate that story pipeline in your external environment:
### 1. Apply project-level annotations
- [Annotations](#annotations) come from the story itself, that story's component, and the project. The project-level annotatations are those defined in your `.storybook/preview.js` file and by addons you're using. In portable stories, these annotations are not applied automatically—you must apply them yourself.
+ [Annotations](#annotations) come from the story itself, that story's component, and the project. The project-level annotations are those defined in your `.storybook/preview.js` file and by addons you're using. In portable stories, these annotations are not applied automatically — you must apply them yourself.
- 👉 For this, you use the [`setProjectAnnotations`](#setprojectannotations) API.
+ 👉 For this, you use the [`setProjectAnnotations`](#setprojectannotations) API.
### 2. Compose
- The story is prepared by running [`composeStories`](#composestories) or [`composeStory`](#composestory). You do not need to do anything for this step.
-
- ### 3. Prepare
-
- Stories can prepare data they need (e.g. setting up some mocks or fetching data) before rendering by defining [loaders](../../writing-stories/loaders.mdx) or [beforeEach](../../writing-tests/interaction-testing.mdx#run-code-before-each-test). In portable stories, loaders and beforeEach are not applied automatically — you have to apply them yourself.
-
- 👉 For this, you use the [`composeStories`](#composestories) or [`composeStory`](#composestory) API. The composed story will return a `load` method to be called **before** it is rendered.
-
-
- It is recommended to always run `load` before rendering, even if the story doesn't have any loaders or beforeEach applied. By doing so, you ensure that the tests are cleaned up properly to maintain isolation and you will not have to update your test if you later add them to your story.
-
-
- {/* prettier-ignore-start */}
-
-
-
- {/* prettier-ignore-end */}
-
- ### 4. Render
-
- At this point, the story has been prepared and can be rendered. You pass it into the
-
- The story has been prepared and can be rendered. To render, you pass it into the rendering mechanism of your choice (e.g. Testing Library render function, Vue test utils mount function, etc).
-
- 👉 For this, you use the [`composeStories`](#composestories) or [`composeStory`](#composestory) API. The composed Story is a renderable component that can be passed to your rendering mechanism.
-
- ### 5. Play
+ The story is prepared by running [`composeStories`](#composestories) or [`composeStory`](#composestory). The outcome is a renderable component that represents the render function of the story.
- **(optional)**
+ ### 3. Play
- Finally, stories can define a [play function](../../essentials/interactions.mdx#play-function-for-interactions) to interact with the story and assert on details after it has rendered. In portable stories, the play function does not run automatically—you have to call it yourself.
+ Finally, stories can prepare data they need (e.g. setting up some mocks or fetching data) before rendering by defining [loaders](../../writing-stories/loaders.mdx), [beforeEach](../../writing-tests/interaction-testing.mdx#run-code-before-each-story) or by having all the story code in the play function when using the [mount](../../writing-tests/interaction-testing.mdx#run-code-before-the-component-gets-rendered). In portable stories, all of these steps will be executed when you run the `play` method of the composed story.
- 👉 For this, you use the [`composeStories`](#composestories) or [`composeStory`](#composestory) API. The composed Story will return a `play` method to be called **after** it has rendered.
+ 👉 For this, you use the [`composeStories`](#composestories) or [`composeStory`](#composestory) API. The composed story will return a `play` method to be called.
{/* prettier-ignore-start */}
diff --git a/docs/builders/webpack.mdx b/docs/builders/webpack.mdx
index f7406f8f9160..8ad9321bfed7 100644
--- a/docs/builders/webpack.mdx
+++ b/docs/builders/webpack.mdx
@@ -11,8 +11,8 @@ Storybook Webpack builder is the default builder for Storybook. This builder ena
By default, Storybook provides zero-config support for Webpack and automatically sets up a baseline configuration created to work with the most common use cases. However, you can extend your Storybook configuration file (i.e., `.storybook/main.js|ts`) and provide additional options to improve your Storybook's performance or customize it to your needs. Listed below are the available options and examples of how to use them.
-| Option | Description |
-| ----------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| Option | Description |
+| ----------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `lazyCompilation` | Enables Webpack's experimental [`lazy compilation`](https://webpack.js.org/configuration/experiments/#experimentslazycompilation)
`core: { builder: { options: { lazyCompilation: true } } }` |
| `fsCache` | Configures Webpack's filesystem [caching](https://webpack.js.org/configuration/cache/#cachetype) feature
`core: { builder: { options: { fsCache: true } } }` |
diff --git a/docs/configure/index.mdx b/docs/configure/index.mdx
index 27389bbefeb2..f07fa5cb5cab 100644
--- a/docs/configure/index.mdx
+++ b/docs/configure/index.mdx
@@ -25,22 +25,22 @@ Storybook's main configuration (i.e., the `main.js|ts`) defines your Storybook p
This configuration file is a [preset](../addons/addon-types.mdx) and, as such, has a powerful interface, which can be further customized. Read our documentation on writing [presets](../addons/writing-presets.mdx) to learn more.
-| Configuration element | Description |
-| --------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
-| `stories` | The array of globs that indicates the [location of your story files](#configure-story-loading), relative to `main.js` |
+| Configuration element | Description |
+| --------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| `stories` | The array of globs that indicates the [location of your story files](#configure-story-loading), relative to `main.js` |
| `staticDirs` | Sets a list of directories of [static files](./integration/images-and-assets.mdx#serving-static-files-via-storybook-configuration) to be loaded by Storybook
`staticDirs: ['../public']` |
-| `addons` | Sets the list of [addons](https://storybook.js.org/integrations) loaded by Storybook
`addons: ['@storybook/addon-essentials']` |
+| `addons` | Sets the list of [addons](https://storybook.js.org/integrations) loaded by Storybook
`addons: ['@storybook/addon-essentials']` |
| `typescript` | Configures how Storybook handles [TypeScript files](./integration/typescript.mdx)
`typescript: { check: false, checkOptions: {} }` |
| `framework` | Configures Storybook based on a set of [framework-specific](./integration/frameworks.mdx) settings
`framework: { name: '@storybook/svelte-vite', options:{} }` |
| `core` | Configures Storybook's [internal features](../api/main-config/main-config-core.mdx)
`core: { disableTelemetry: true, }` |
-| `docs` | Configures Storybook's [auto-generated documentation](../writing-docs/autodocs.mdx)
`docs: { autodocs: 'tag' }` |
+| `docs` | Configures Storybook's [auto-generated documentation](../writing-docs/autodocs.mdx)
`docs: { autodocs: 'tag' }` |
| `features` | Enables Storybook's [additional features](../api/main-config/main-config-features.mdx)
See table below for a list of available features |
-| `refs` | Configures [Storybook composition](../sharing/storybook-composition.mdx)
`refs:{ example: { title: 'ExampleStorybook', url:'https://your-url.com' } }` |
-| `logLevel` | Configures Storybook's logs in the browser terminal. Useful for debugging
`logLevel: 'debug'` |
-| `webpackFinal` | Customize Storybook's [Webpack](../builders/webpack.mdx) setup
`webpackFinal: async (config:any) => { return config; }` |
-| `viteFinal` | Customize Storybook's Vite setup when using the [vite builder](https://github.com/storybookjs/builder-vite)
`viteFinal: async (config: Vite.InlineConfig, options: Options) => { return config; }` |
-| `env` | Defines custom Storybook [environment variables](./environment-variables.mdx#using-storybook-configuration).
`env: (config) => ({...config, EXAMPLE_VAR: 'Example var' }),` |
-| `build` | Optimizes Storybook's production [build](../api/main-config/main-config-build.mdx) for performance by excluding specific features from the bundle. Useful when decreased build times are a priority.
`build: { test: {} }` |
+| `refs` | Configures [Storybook composition](../sharing/storybook-composition.mdx)
`refs: { example: { title: 'ExampleStorybook', url:'https://your-url.com' } }` |
+| `logLevel` | Configures Storybook's logs in the browser terminal. Useful for debugging
`logLevel: 'debug'` |
+| `webpackFinal` | Customize Storybook's [Webpack](../builders/webpack.mdx) setup
`webpackFinal: async (config:any) => { return config; }` |
+| `viteFinal` | Customize Storybook's Vite setup when using the [vite builder](https://github.com/storybookjs/builder-vite)
`viteFinal: async (config: Vite.InlineConfig, options: Options) => { return config; }` |
+| `env` | Defines custom Storybook [environment variables](./environment-variables.mdx#using-storybook-configuration).
`env: (config) => ({...config, EXAMPLE_VAR: 'Example var' }),` |
+| `build` | Optimizes Storybook's production [build](../api/main-config/main-config-build.mdx) for performance by excluding specific features from the bundle. Useful when decreased build times are a priority.
`build: { test: {} }` |
## Configure story loading
diff --git a/docs/configure/integration/frameworks-feature-support.mdx b/docs/configure/integration/frameworks-feature-support.mdx
index c310885dcde5..b2f88c51d1c5 100644
--- a/docs/configure/integration/frameworks-feature-support.mdx
+++ b/docs/configure/integration/frameworks-feature-support.mdx
@@ -13,9 +13,9 @@ Below is a comprehensive table of what’s supported in which framework integrat
Core frameworks have dedicated maintainers or contributors who are responsible for maintaining the integration. As such, you can use most Storybook features in these frameworks.
-| | React | Vue 3 | Angular | Web Components |
-| ----------------------------------------------------------------------------------------- | ----- | ----- | ------- | -------------- |
-| **Essentials** | | | | |
+| | React | Vue 3 | Angular | Web Components |
+| --------------------------------------------------------------------------------------------- | ----- | ----- | ------- | -------------- |
+| **Essentials** | | | | |
| [Actions](../../essentials/actions.mdx) | ✅ | ✅ | ✅ | ✅ |
| [Backgrounds](../../essentials/backgrounds.mdx) | ✅ | ✅ | ✅ | ✅ |
| [Docs](../../writing-docs/index.mdx) | ✅ | ✅ | ✅ | ✅ |
@@ -23,49 +23,49 @@ Core frameworks have dedicated maintainers or contributors who are responsible f
| [Controls](../../essentials/controls.mdx) | ✅ | ✅ | ✅ | ✅ |
| [Measure](../../essentials/measure-and-outline.mdx#measure-addon) | ✅ | ✅ | ✅ | ✅ |
| [Outline](../../essentials/measure-and-outline.mdx#outline-addon) | ✅ | ✅ | ✅ | ✅ |
-| **Addons** | | | | |
+| **Addons** | | | | |
| [A11y](../../writing-tests/accessibility-testing.mdx) | ✅ | ✅ | ✅ | ✅ |
| [Interactions](../../writing-tests/interaction-testing.mdx) | ✅ | ✅ | ✅ | ✅ |
| [Test runner](../../writing-tests/test-runner.mdx) | ✅ | ✅ | ✅ | ✅ |
| [Test coverage](../../writing-tests/test-coverage.mdx) | ✅ | ✅ | ✅ | ✅ |
-| [CSS resources](https://github.com/storybookjs/addon-cssresources) | ✅ | ✅ | ✅ | ✅ |
-| [Design assets](https://github.com/storybookjs/addon-design-assets) | ✅ | ✅ | ✅ | ✅ |
-| [Events](https://github.com/storybookjs/addon-events) | ✅ | ✅ | ✅ | ✅ |
-| [Google analytics](https://github.com/storybookjs/addon-google-analytics) | ✅ | ✅ | ✅ | ✅ |
-| [GraphQL](https://github.com/storybookjs/addon-graphql) | ✅ | | ✅ | |
-| [Jest](https://github.com/storybookjs/storybook/tree/next/code/addons/jest) | ✅ | ✅ | ✅ | ✅ |
-| [Links](https://github.com/storybookjs/storybook/tree/next/code/addons/links) | ✅ | ✅ | ✅ | ✅ |
-| [Queryparams](https://github.com/storybookjs/addon-queryparams) | ✅ | ✅ | ✅ | ✅ |
-| [Storysource](https://github.com/storybookjs/storybook/tree/next/code/addons/storysource) | ✅ | ✅ | ✅ | ✅ |
-| **Docs** | | | | |
+| [CSS resources](https://github.com/storybookjs/addon-cssresources) | ✅ | ✅ | ✅ | ✅ |
+| [Design assets](https://github.com/storybookjs/addon-design-assets) | ✅ | ✅ | ✅ | ✅ |
+| [Events](https://github.com/storybookjs/addon-events) | ✅ | ✅ | ✅ | ✅ |
+| [Google analytics](https://github.com/storybookjs/addon-google-analytics) | ✅ | ✅ | ✅ | ✅ |
+| [GraphQL](https://github.com/storybookjs/addon-graphql) | ✅ | | ✅ | |
+| [Jest](https://github.com/storybookjs/storybook/tree/next/code/addons/jest) | ✅ | ✅ | ✅ | ✅ |
+| [Links](https://github.com/storybookjs/storybook/tree/next/code/addons/links) | ✅ | ✅ | ✅ | ✅ |
+| [Queryparams](https://github.com/storybookjs/addon-queryparams) | ✅ | ✅ | ✅ | ✅ |
+| [Storysource](https://github.com/storybookjs/storybook/tree/next/code/addons/storysource) | ✅ | ✅ | ✅ | ✅ |
+| **Docs** | | | | |
| [CSF Stories](../../api/csf.mdx) | ✅ | ✅ | ✅ | ✅ |
| [Autodocs](../../writing-docs/autodocs.mdx) | ✅ | ✅ | ✅ | ✅ |
-| [Doc Blocks - ArgTypes](../../api/doc-blocks/doc-block-argtypes.mdx) | ✅ | ✅ | ✅ | ✅ |
-| [Doc Blocks - Canvas](../../api/doc-blocks/doc-block-canvas.mdx) | ✅ | ✅ | ✅ | ✅ |
-| [Doc Blocks - ColorPalette](../../api/doc-blocks/doc-block-colorpalette.mdx) | ✅ | ✅ | ✅ | ✅ |
-| [Doc Blocks - Controls](../../api/doc-blocks/doc-block-controls.mdx) | ✅ | ✅ | ✅ | ✅ |
-| [Doc Blocks - Description](../../api/doc-blocks/doc-block-description.mdx) | ✅ | ✅ | ✅ | ✅ |
-| [Doc Blocks - IconGallery](../../api/doc-blocks/doc-block-icongallery.mdx) | ✅ | ✅ | ✅ | ✅ |
-| [Doc Blocks - Markdown](../../api/doc-blocks/doc-block-markdown.mdx) | ✅ | ✅ | ✅ | ✅ |
-| [Doc Blocks - Meta](../../api/doc-blocks/doc-block-meta.mdx) | ✅ | ✅ | ✅ | ✅ |
-| [Doc Blocks - Primary](../../api/doc-blocks/doc-block-primary.mdx) | ✅ | ✅ | ✅ | ✅ |
-| [Doc Blocks - Source](../../api/doc-blocks/doc-block-source.mdx) | ✅ | ✅ | ✅ | ✅ |
-| [Doc Blocks - Story](../../api/doc-blocks/doc-block-story.mdx) | ✅ | ✅ | ✅ | ✅ |
-| [Doc Blocks - Stories](../../api/doc-blocks/doc-block-stories.mdx) | ✅ | ✅ | ✅ | ✅ |
-| [Doc Blocks - Subtitle](../../api/doc-blocks/doc-block-subtitle.mdx) | ✅ | ✅ | ✅ | ✅ |
-| [Doc Blocks - Title](../../api/doc-blocks/doc-block-title.mdx) | ✅ | ✅ | ✅ | ✅ |
-| [Doc Blocks - Typeset](../../api/doc-blocks/doc-block-typeset.mdx) | ✅ | ✅ | ✅ | ✅ |
-| [Doc Blocks - Unstyled](../../api/doc-blocks/doc-block-unstyled.mdx) | ✅ | ✅ | ✅ | ✅ |
-| [Doc Blocks - UseOf](../../api/doc-blocks/doc-block-useof.mdx) | ✅ | ✅ | ✅ | ✅ |
-| Inline stories | ✅ | ✅ | ✅ | ✅ |
+| [Doc Blocks - ArgTypes](../../api/doc-blocks/doc-block-argtypes.mdx) | ✅ | ✅ | ✅ | ✅ |
+| [Doc Blocks - Canvas](../../api/doc-blocks/doc-block-canvas.mdx) | ✅ | ✅ | ✅ | ✅ |
+| [Doc Blocks - ColorPalette](../../api/doc-blocks/doc-block-colorpalette.mdx) | ✅ | ✅ | ✅ | ✅ |
+| [Doc Blocks - Controls](../../api/doc-blocks/doc-block-controls.mdx) | ✅ | ✅ | ✅ | ✅ |
+| [Doc Blocks - Description](../../api/doc-blocks/doc-block-description.mdx) | ✅ | ✅ | ✅ | ✅ |
+| [Doc Blocks - IconGallery](../../api/doc-blocks/doc-block-icongallery.mdx) | ✅ | ✅ | ✅ | ✅ |
+| [Doc Blocks - Markdown](../../api/doc-blocks/doc-block-markdown.mdx) | ✅ | ✅ | ✅ | ✅ |
+| [Doc Blocks - Meta](../../api/doc-blocks/doc-block-meta.mdx) | ✅ | ✅ | ✅ | ✅ |
+| [Doc Blocks - Primary](../../api/doc-blocks/doc-block-primary.mdx) | ✅ | ✅ | ✅ | ✅ |
+| [Doc Blocks - Source](../../api/doc-blocks/doc-block-source.mdx) | ✅ | ✅ | ✅ | ✅ |
+| [Doc Blocks - Story](../../api/doc-blocks/doc-block-story.mdx) | ✅ | ✅ | ✅ | ✅ |
+| [Doc Blocks - Stories](../../api/doc-blocks/doc-block-stories.mdx) | ✅ | ✅ | ✅ | ✅ |
+| [Doc Blocks - Subtitle](../../api/doc-blocks/doc-block-subtitle.mdx) | ✅ | ✅ | ✅ | ✅ |
+| [Doc Blocks - Title](../../api/doc-blocks/doc-block-title.mdx) | ✅ | ✅ | ✅ | ✅ |
+| [Doc Blocks - Typeset](../../api/doc-blocks/doc-block-typeset.mdx) | ✅ | ✅ | ✅ | ✅ |
+| [Doc Blocks - Unstyled](../../api/doc-blocks/doc-block-unstyled.mdx) | ✅ | ✅ | ✅ | ✅ |
+| [Doc Blocks - UseOf](../../api/doc-blocks/doc-block-useof.mdx) | ✅ | ✅ | ✅ | ✅ |
+| Inline stories | ✅ | ✅ | ✅ | ✅ |
## Community frameworks
Community frameworks have fewer contributors which means they may not be as up to date as core frameworks. If you use one of these frameworks for your job, please consider contributing to its integration with Storybook.
-| | Ember | HTML | Svelte | Preact | Qwik | SolidJS |
-| ----------------------------------------------------------------------------------------- | ----- | ---- | ------ | ------ | ---- | ------- |
-| **Essentials** | | | | | | |
+| | Ember | HTML | Svelte | Preact | Qwik | SolidJS |
+| --------------------------------------------------------------------------------------------- | ----- | ---- | ------ | ------ | ---- | ------- |
+| **Essentials** | | | | | | |
| [Actions](../../essentials/actions.mdx) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| [Backgrounds](../../essentials/backgrounds.mdx) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| [Docs](../../writing-docs/index.mdx) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
@@ -73,48 +73,48 @@ Community frameworks have fewer contributors which means they may not be as up t
| [Controls](../../essentials/controls.mdx) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| [Measure](../../essentials/measure-and-outline.mdx#measure-addon) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| [Outline](../../essentials/measure-and-outline.mdx#outline-addon) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
-| **Addons** | | | | | | |
+| **Addons** | | | | | | |
| [A11y](../../writing-tests/accessibility-testing.mdx) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| [Interactions](../../writing-tests/interaction-testing.mdx) | | ✅ | ✅ | ✅ | ✅ | ✅ |
| [Test runner](../../writing-tests/test-runner.mdx) | | ✅ | ✅ | ✅ | ✅ | ✅ |
| [Test coverage](../../writing-tests/test-coverage.mdx) | | ✅ | ✅ | ✅ | ✅ | ✅ |
-| [CSS resources](https://github.com/storybookjs/addon-cssresources) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
-| [Design assets](https://github.com/storybookjs/addon-design-assets) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
-| [Events](https://github.com/storybookjs/addon-events) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
-| [Google analytics](https://github.com/storybookjs/addon-google-analytics) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
-| [GraphQL](https://github.com/storybookjs/addon-graphql) | | | | | | |
-| [Jest](https://github.com/storybookjs/storybook/tree/next/code/addons/jest) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
-| [Links](https://github.com/storybookjs/storybook/tree/next/code/addons/links) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
-| [Queryparams](https://github.com/storybookjs/addon-queryparams) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
-| [Storysource](https://github.com/storybookjs/storybook/tree/next/code/addons/storysource) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
-| **Docs** | | | | | | |
+| [CSS resources](https://github.com/storybookjs/addon-cssresources) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
+| [Design assets](https://github.com/storybookjs/addon-design-assets) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
+| [Events](https://github.com/storybookjs/addon-events) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
+| [Google analytics](https://github.com/storybookjs/addon-google-analytics) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
+| [GraphQL](https://github.com/storybookjs/addon-graphql) | | | | | | |
+| [Jest](https://github.com/storybookjs/storybook/tree/next/code/addons/jest) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
+| [Links](https://github.com/storybookjs/storybook/tree/next/code/addons/links) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
+| [Queryparams](https://github.com/storybookjs/addon-queryparams) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
+| [Storysource](https://github.com/storybookjs/storybook/tree/next/code/addons/storysource) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
+| **Docs** | | | | | | |
| [CSF Stories](../../api/csf.mdx) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| [Autodocs](../../writing-docs/autodocs.mdx) | | ✅ | ✅ | ✅ | ✅ | ✅ |
-| [Doc Blocks - ArgTypes](../../api/doc-blocks/doc-block-argtypes.mdx) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
-| [Doc Blocks - Canvas](../../api/doc-blocks/doc-block-canvas.mdx) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
-| [Doc Blocks - ColorPalette](../../api/doc-blocks/doc-block-colorpalette.mdx) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
-| [Doc Blocks - Controls](../../api/doc-blocks/doc-block-controls.mdx) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
-| [Doc Blocks - Description](../../api/doc-blocks/doc-block-description.mdx) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
-| [Doc Blocks - IconGallery](../../api/doc-blocks/doc-block-icongallery.mdx) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
-| [Doc Blocks - Markdown](../../api/doc-blocks/doc-block-markdown.mdx) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
-| [Doc Blocks - Meta](../../api/doc-blocks/doc-block-meta.mdx) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
-| [Doc Blocks - Primary](../../api/doc-blocks/doc-block-primary.mdx) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
-| [Doc Blocks - Source](../../api/doc-blocks/doc-block-source.mdx) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
-| [Doc Blocks - Story](../../api/doc-blocks/doc-block-story.mdx) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
-| [Doc Blocks - Stories](../../api/doc-blocks/doc-block-stories.mdx) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
-| [Doc Blocks - Subtitle](../../api/doc-blocks/doc-block-subtitle.mdx) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
-| [Doc Blocks - Title](../../api/doc-blocks/doc-block-title.mdx) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
-| [Doc Blocks - Typeset](../../api/doc-blocks/doc-block-typeset.mdx) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
-| [Doc Blocks - Unstyled](../../api/doc-blocks/doc-block-unstyled.mdx) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
-| [Doc Blocks - UseOf](../../api/doc-blocks/doc-block-useof.mdx) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
-| Inline stories | | ✅ | ✅ | | | |
+| [Doc Blocks - ArgTypes](../../api/doc-blocks/doc-block-argtypes.mdx) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
+| [Doc Blocks - Canvas](../../api/doc-blocks/doc-block-canvas.mdx) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
+| [Doc Blocks - ColorPalette](../../api/doc-blocks/doc-block-colorpalette.mdx) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
+| [Doc Blocks - Controls](../../api/doc-blocks/doc-block-controls.mdx) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
+| [Doc Blocks - Description](../../api/doc-blocks/doc-block-description.mdx) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
+| [Doc Blocks - IconGallery](../../api/doc-blocks/doc-block-icongallery.mdx) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
+| [Doc Blocks - Markdown](../../api/doc-blocks/doc-block-markdown.mdx) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
+| [Doc Blocks - Meta](../../api/doc-blocks/doc-block-meta.mdx) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
+| [Doc Blocks - Primary](../../api/doc-blocks/doc-block-primary.mdx) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
+| [Doc Blocks - Source](../../api/doc-blocks/doc-block-source.mdx) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
+| [Doc Blocks - Story](../../api/doc-blocks/doc-block-story.mdx) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
+| [Doc Blocks - Stories](../../api/doc-blocks/doc-block-stories.mdx) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
+| [Doc Blocks - Subtitle](../../api/doc-blocks/doc-block-subtitle.mdx) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
+| [Doc Blocks - Title](../../api/doc-blocks/doc-block-title.mdx) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
+| [Doc Blocks - Typeset](../../api/doc-blocks/doc-block-typeset.mdx) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
+| [Doc Blocks - Unstyled](../../api/doc-blocks/doc-block-unstyled.mdx) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
+| [Doc Blocks - UseOf](../../api/doc-blocks/doc-block-useof.mdx) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
+| Inline stories | | ✅ | ✅ | | | |
## Deprecated
To align the Storybook ecosystem with the current state of frontend development, the following features and addons are now deprecated, no longer maintained, and will be removed in future versions of Storybook
-| Feature | Status |
-| --------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
-| [Knobs](https://github.com/storybookjs/addon-knobs) | The Knobs addon was officially deprecated with the release of Storybook 6.3 and is no longer actively maintained. We recommend using the [controls](../../essentials/controls.mdx) instead. |
-| [Storyshots](../../writing-tests/snapshot-testing/index.mdx) | The Storyshots addon was officially deprecated with the release of Storybook 7.6, is no longer actively maintained and was removed in Storybook 8. See the [migration guide](../../writing-tests/snapshot-testing/storyshots-migration-guide.mdx) for the available alternatives. |
-| StoriesOf | The `storiesOf` API was officially removed with the release of Storybook 8 and is no longer maintained. We recommend using the [CSF API](../../api/csf.mdx) instead for writing stories.
See the [migration guide](../../migration-guide/index.mdx#storiesof-to-csf) for more information. |
+| Feature | Status |
+| ---------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| [Knobs](https://github.com/storybookjs/addon-knobs) | The Knobs addon was officially deprecated with the release of Storybook 6.3 and is no longer actively maintained. We recommend using the [controls](../../essentials/controls.mdx) instead. |
+| [Storyshots](../../writing-tests/snapshot-testing/storyshots-migration-guide.mdx) | The Storyshots addon was officially deprecated with the release of Storybook 7.6, is no longer actively maintained and was removed in Storybook 8. See the [migration guide](../../writing-tests/snapshot-testing/storyshots-migration-guide.mdx) for the available alternatives. |
+| StoriesOf | The `storiesOf` API was officially removed with the release of Storybook 8 and is no longer maintained. We recommend using the [CSF API](../../api/csf.mdx) instead for writing stories.
See the [migration guide](../../migration-guide/index.mdx#storiesof-to-csf) for more information. |
diff --git a/docs/configure/integration/frameworks.mdx b/docs/configure/integration/frameworks.mdx
index 305d1532355b..665efee35e24 100644
--- a/docs/configure/integration/frameworks.mdx
+++ b/docs/configure/integration/frameworks.mdx
@@ -34,14 +34,14 @@ Every modern web application has unique requirements and relies on various tools
{/* prettier-ignore-end */}
-| Option | Description | Framework |
-| ---------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------- |
-| `nextConfigPath` | Sets the default path for the NextJS configuration file
`framework: { name: '@storybook/nextjs', options: { nextConfigPath: '../next.config.js'} }` | NextJS |
+| Option | Description | Framework |
+| ---------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------- |
+| `nextConfigPath` | Sets the default path for the NextJS configuration file
`framework: { name: '@storybook/nextjs', options: { nextConfigPath: '../next.config.js'} }` | NextJS |
| `builder` | Configures [Webpack 5](../../builders/webpack.mdx) builder options for NextJS
`core: { builder: { name:'webpack5', options: { lazyCompilation: true} }}` | NextJS |
-| `strictMode` | Enables React's [strict mode](https://reactjs.org/docs/strict-mode.html)
`framework: { name: '@storybook/react-webpack5', options: { strictMode: false } }` | React |
-| `legacyRootApi` | Requires React 18. Toggles support for React's [legacy root API](https://reactjs.org/blog/2022/03/08/react-18-upgrade-guide.html#updates-to-client-rendering-apis)
`framework: { name: '@storybook/react-webpack5', options: { legacyRootApi: true } }` | React |
-| `enableIvy` | Enabled by default with Angular 9+. Replaces the default compiler with the [Ivy compiler](https://docs.angular.lat/guide/ivy)
`framework: { name: '@storybook/angular', options: { enableIvy: true } }` | Angular |
-| `enableNgcc` | Enabled by default with Angular 9+. Adds support for ngcc for backwards compatibility
`framework: { name: '@storybook/angular', options: { enableNgcc: false } }` | Angular |
+| `strictMode` | Enables React's [strict mode](https://reactjs.org/docs/strict-mode.html)
`framework: { name: '@storybook/react-webpack5', options: { strictMode: false } }` | React |
+| `legacyRootApi` | Requires React 18. Toggles support for React's [legacy root API](https://reactjs.org/blog/2022/03/08/react-18-upgrade-guide.html#updates-to-client-rendering-apis)
`framework: { name: '@storybook/react-webpack5', options: { legacyRootApi: true } }` | React |
+| `enableIvy` | Enabled by default with Angular 9+. Replaces the default compiler with the [Ivy compiler](https://docs.angular.lat/guide/ivy)
`framework: { name: '@storybook/angular', options: { enableIvy: true } }` | Angular |
+| `enableNgcc` | Enabled by default with Angular 9+. Adds support for ngcc for backwards compatibility
`framework: { name: '@storybook/angular', options: { enableNgcc: false } }` | Angular |
***
diff --git a/docs/configure/integration/typescript.mdx b/docs/configure/integration/typescript.mdx
index da7dda982017..1583e0da75f1 100644
--- a/docs/configure/integration/typescript.mdx
+++ b/docs/configure/integration/typescript.mdx
@@ -28,23 +28,23 @@ See the [main configuration API reference](../../api/main-config/main-config.mdx
Out of the box, Storybook is built to work with a wide range of third-party libraries, enabling you to safely access and document metadata (e.g., props, inputs) from your components without any additional configuration. Since Storybook supports multiple frameworks, it also includes a set of third-party packages to support each framework (e.g., `ts-loader`, `vue-docgen-api` for Vue). If you need to customize the default configuration for a specific use case scenario, you can adjust your Storybook configuration file and provide the required options. Listed below are the available options and examples of how to use them.
- | Option | Description |
- | -------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
+ | Option | Description |
+ | -------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `check` | Available for Webpack-based projects.
Enables type checking within Storybook
`typescript: { check: true },` |
| `checkOptions` | Requires the `check` option to be enabled.
Configures the [`fork-ts-checker-webpack-plugin`](https://github.com/TypeStrong/fork-ts-checker-webpack-plugin) plugin
`typescript: { checkOptions:{},},` |
- | `skipCompiler` | Disables parsing Typescript files through the compiler
`typescript: { skipCompiler:false,},` |
+ | `skipCompiler` | Disables parsing Typescript files through the compiler
`typescript: { skipCompiler:false,},` |
Out of the box, Storybook is built to work with a wide range of third-party libraries, enabling you to safely access and document metadata (e.g., props) for your components without any additional configuration. It relies on [`react-docgen`](https://github.com/reactjs/react-docgen), a fast and highly customizable parser to process TypeScript files to infer the component's metadata and generate types automatically for improved performance and type safety. If you need to customize the default configuration for a specific use case scenario, you can adjust your Storybook configuration file and provide the required options. Listed below are the available options and examples of how to use them.
- | Option | Description |
- | ------------------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+ | Option | Description |
+ | ------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `check` | Available for Webpack-based projects.
Enables type checking within Storybook
`typescript: { check: true },` |
| `checkOptions` | Requires the `check` option to be enabled.
Configures the [`fork-ts-checker-webpack-plugin`](https://github.com/TypeStrong/fork-ts-checker-webpack-plugin) plugin
`typescript: { checkOptions: {},},` |
| `reactDocgen` | Configures the TypeScript parser used by Storybook.
Available options: `react-docgen` (default), `react-docgen-typescript`,` false`
`typescript: { reactDocgen: 'react-docgen'},` |
| `reactDocgenTypescriptOptions` | Requires the `reactDocgen`option to be `react-docgen-typescript`.
Configures the `react-docgen-typescript-plugin` plugin per builder
`typescript: { reactDocgen: 'react-docgen-typescript', reactDocgenTypescriptOptions: {},},` |
- | `skipCompiler` | Disables parsing Typescript files through the compiler
`typescript: { skipCompiler:false,},` |
+ | `skipCompiler` | Disables parsing Typescript files through the compiler
`typescript: { skipCompiler:false,},` |
{/* prettier-ignore-start */}
diff --git a/docs/configure/user-interface/features-and-behavior.mdx b/docs/configure/user-interface/features-and-behavior.mdx
index b1dc402b0302..9fac396de342 100644
--- a/docs/configure/user-interface/features-and-behavior.mdx
+++ b/docs/configure/user-interface/features-and-behavior.mdx
@@ -27,7 +27,7 @@ The following table details how to use the API values:
| **selectedPanel** | String | Id to select an addon panel | `'storybook/actions/panel'` |
| **initialActive** | String | Select the default active tab on Mobile | `'sidebar'` or `'canvas'` or `'addons'` |
| **sidebar** | Object | Sidebar options, see below | `{ showRoots: false }` |
-| **toolbar** | Object | Modify the tools in the toolbar using the addon id | `{ fullscreen: { hidden: false } } }` |
+| **toolbar** | Object | Modify the tools in the toolbar using the addon id | `{ fullscreen: { hidden: false } } ` |
The following options are configurable under the `sidebar` namespace:
diff --git a/docs/configure/user-interface/theming.mdx b/docs/configure/user-interface/theming.mdx
index 184cb631cb24..df532736a787 100644
--- a/docs/configure/user-interface/theming.mdx
+++ b/docs/configure/user-interface/theming.mdx
@@ -37,7 +37,7 @@ When setting a theme, set a complete theme object. The theme is replaced, not co
[Storybook Docs](../../writing-docs/index.mdx) uses the same theme system as Storybook’s UI but is themed independently from the main UI.
-Supposing you have a Storybook theme defined for the main UI in [`.storybook/manager.js`](../features-and-behavior.mdx):
+Supposing you have a Storybook theme defined for the main UI in [`.storybook/manager.js`](./features-and-behavior.mdx):
{/* prettier-ignore-start */}
@@ -68,7 +68,9 @@ Inside your `.storybook` directory, create a new file called `YourTheme.js` and
{/* prettier-ignore-end */}
+
If you're using `brandImage` to add your custom logo, you can use any of the most common image formats.
+
Above, we're creating a new theme that will:
diff --git a/docs/contribute/code.mdx b/docs/contribute/code.mdx
index 39d42d82a8d0..e3b2e3bd0ceb 100644
--- a/docs/contribute/code.mdx
+++ b/docs/contribute/code.mdx
@@ -54,7 +54,9 @@ yarn task
When prompted, answer the questions as accurately as possible to allow Storybook to determine your goals. After answering these questions, you should see the entire command with the options you've selected should you require to re-run it.
+
The `yarn task` command takes a few development shortcuts that can catch you off guard when switching branches and may require you to re-run both the `install` and `compile` tasks. You can speed up the process by running the command with the `start-from=install` flag.
+
## Running tests
@@ -86,7 +88,9 @@ yarn build
When prompted to start the build process in `watch` mode, answer **yes** to develop in interactive mode. Afterward, choose which packages you want to build. For example, if you're going to work on a feature for `@storybook/addon-docs`, you might want to select both `@storybook/addon-docs` and `@storybook/components`.
+
Build's `watch` mode is great for interactive development. However, for performance reasons, it only transpiles your code and doesn't execute the TypeScript compiler. If something isn't working as expected, try running the `build` command **WITHOUT** enabling watch mode: it will re-generate TypeScript types and perform automatic type checking for you.
+
![Storybook package selector](../_assets/contribute/storybook-build-packages-selection-optimized.png)
@@ -144,7 +148,9 @@ yarn test
```
+
Storybook relies on [Vitest](https://vitest.dev/) as part of it's testing suite. During the test run, if you spot that snapshot tests are failing, re-run the command with the `-u` flag to update them.
+
Doing this prevents last-minute bugs and is a great way to merge your contribution faster once you submit your pull request. Failing to do so will lead to one of the maintainers mark the pull request with the **Work in Progress** label until all tests pass.
diff --git a/docs/contribute/framework.mdx b/docs/contribute/framework.mdx
index dae362ed9d3b..71ef9f1328cd 100644
--- a/docs/contribute/framework.mdx
+++ b/docs/contribute/framework.mdx
@@ -127,7 +127,7 @@ Because a framework is a node package, it must contain a `package.json` file. He
#### `preset.js` ([example](https://github.com/storybookjs/storybook/blob/next/code/frameworks/nextjs/src/preset.ts))
-The [preset API](../addons/writing-presets) is where you will configure the Storybook core (which builder and renderer are used by your framework), the builder (via either the [`webpackFinal`](../builders/webpack#extending-storybooks-webpack-config) or [`viteFinal`](../builders/vite#configuration) export), babel (via the `babel` export), any necessary addons, and any available options for your framework.
+The [preset API](../addons/writing-presets.mdx) is where you will configure the Storybook core (which builder and renderer are used by your framework), the builder (via either the [`webpackFinal`](../builders/webpack.mdx#override-the-default-configuration) or [`viteFinal`](../builders/vite.mdx#configuration) export), babel (via the `babel` export), any necessary addons, and any available options for your framework.
#### `preview.js` ([example](https://github.com/storybookjs/storybook/blob/next/code/frameworks/nextjs/src/preview.tsx))
diff --git a/docs/essentials/actions.mdx b/docs/essentials/actions.mdx
index 91bb1dcb2407..7c4099c18364 100644
--- a/docs/essentials/actions.mdx
+++ b/docs/essentials/actions.mdx
@@ -115,4 +115,4 @@ Allows you to create an action that appears in the actions panel of the Storyboo
## Advanced / legacy usage
-There are also some older ways to use actions as documented in the [advanced README](../../addons/actions/ADVANCED.mdx).
+There are also some older ways to use actions as documented in the [advanced README](../../addons/actions/ADVANCED.md).
diff --git a/docs/essentials/controls.mdx b/docs/essentials/controls.mdx
index 3144b4e876a1..3c249c058e04 100644
--- a/docs/essentials/controls.mdx
+++ b/docs/essentials/controls.mdx
@@ -271,23 +271,23 @@ The Controls addon can be configured in two ways:
As shown above, you can configure individual controls with the “control" annotation in the [argTypes](../api/arg-types.mdx) field of either a component or story. Below is a condensed example and table featuring all available controls.
-| Data Type | Control | Description |
-| ----------- | -------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
-| **boolean** | `boolean` | Provides a toggle for switching between possible states.
`argTypes: { active: { control: 'boolean' }}` |
-| **number** | `number` | Provides a numeric input to include the range of all possible values.
`argTypes: { even: { control: { type: 'number', min:1, max:30, step: 2 } }}` |
-| | `range` | Provides a range slider component to include all possible values.
`argTypes: { odd: { control: { type: 'range', min: 1, max: 30, step: 3 } }}` |
+| Data Type | Control | Description |
+| ----------- | -------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| **boolean** | `boolean` | Provides a toggle for switching between possible states.
`argTypes: { active: { control: 'boolean' }}` |
+| **number** | `number` | Provides a numeric input to include the range of all possible values.
`argTypes: { even: { control: { type: 'number', min:1, max:30, step: 2 } }}` |
+| | `range` | Provides a range slider component to include all possible values.
`argTypes: { odd: { control: { type: 'range', min: 1, max: 30, step: 3 } }}` |
| **object** | `object` | Provides a JSON-based editor component to handle the object's values.
Also allows edition in raw mode.
`argTypes: { user: { control: 'object' }}` |
| **array** | `object` | Provides a JSON-based editor component to handle the array's values.
Also allows edition in raw mode.
`argTypes: { odd: { control: 'object' }}` |
| | `file` | Provides a file input component that returns an array of URLs.
Can be further customized to accept specific file types.
`argTypes: { avatar: { control: { type: 'file', accept: '.png' } }}` |
-| **enum** | `radio` | Provides a set of radio buttons based on the available options.
`argTypes: { contact: { control: 'radio', options: ['email', 'phone', 'mail'] }}` |
-| | `inline-radio` | Provides a set of inlined radio buttons based on the available options.
`argTypes: { contact: { control: 'inline-radio', options: ['email', 'phone', 'mail'] }}` |
-| | `check` | Provides a set of checkbox components for selecting multiple options.
`argTypes: { contact: { control: 'check', options: ['email', 'phone', 'mail'] }}` |
-| | `inline-check` | Provides a set of inlined checkbox components for selecting multiple options.
`argTypes: { contact: { control: 'inline-check', options: ['email', 'phone', 'mail'] }}` |
-| | `select` | Provides a drop-down list component to handle single value selection. `argTypes: { age: { control: 'select', options: [20, 30, 40, 50] }}` |
-| | `multi-select` | Provides a drop-down list that allows multiple selected values. `argTypes: { countries: { control: 'multi-select', options: ['USA', 'Canada', 'Mexico'] }}` |
-| **string** | `text` | Provides a freeform text input.
`argTypes: { label: { control: 'text' }}` |
+| **enum** | `radio` | Provides a set of radio buttons based on the available options.
`argTypes: { contact: { control: 'radio', options: ['email', 'phone', 'mail'] }}` |
+| | `inline-radio` | Provides a set of inlined radio buttons based on the available options.
`argTypes: { contact: { control: 'inline-radio', options: ['email', 'phone', 'mail'] }}` |
+| | `check` | Provides a set of checkbox components for selecting multiple options.
`argTypes: { contact: { control: 'check', options: ['email', 'phone', 'mail'] }}` |
+| | `inline-check` | Provides a set of inlined checkbox components for selecting multiple options.
`argTypes: { contact: { control: 'inline-check', options: ['email', 'phone', 'mail'] }}` |
+| | `select` | Provides a drop-down list component to handle single value selection. `argTypes: { age: { control: 'select', options: [20, 30, 40, 50] }}` |
+| | `multi-select` | Provides a drop-down list that allows multiple selected values. `argTypes: { countries: { control: 'multi-select', options: ['USA', 'Canada', 'Mexico'] }}` |
+| **string** | `text` | Provides a freeform text input.
`argTypes: { label: { control: 'text' }}` |
| | `color` | Provides a color picker component to handle color values.
Can be additionally configured to include a set of color presets.
`argTypes: { color: { control: { type: 'color', presetColors: ['red', 'green']} }}` |
-| | `date` | Provides a datepicker component to handle date selection. `argTypes: { startDate: { control: 'date' }}` |
+| | `date` | Provides a datepicker component to handle date selection. `argTypes: { startDate: { control: 'date' }}` |
The `date` control will convert the date into a UNIX timestamp when the value changes. It's a known limitation that will be fixed in a future release. If you need to represent the actual date, you'll need to update the story's implementation and convert the value into a date object.
diff --git a/docs/essentials/index.mdx b/docs/essentials/index.mdx
index ba59f40fca43..b144a91313d8 100644
--- a/docs/essentials/index.mdx
+++ b/docs/essentials/index.mdx
@@ -63,16 +63,16 @@ Below is an abridged configuration and table with all the available options for
{/* prettier-ignore-end */}
-| Addon | Option | Description |
-| ------------------------------ | ------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------- |
-| `@storybook/addon-actions` | N/A | N/A |
-| `@storybook/addon-viewport` | N/A | N/A |
-| `@storybook/addon-docs` | `csfPluginOptions` | Provides additional configuration for Storybook's CSF plugin. Can be disabled with `null`. |
+| Addon | Option | Description |
+| ------------------------------ | ------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| `@storybook/addon-actions` | N/A | N/A |
+| `@storybook/addon-viewport` | N/A | N/A |
+| `@storybook/addon-docs` | `csfPluginOptions` | Provides additional configuration for Storybook's CSF plugin. Can be disabled with `null`. |
| | `mdxPluginOptions` | Provides additional configuration options and plugin configuration for [MDX documentation](../writing-docs/mdx.mdx#markdown-tables-arent-rendering-correctly). |
-| `@storybook/addon-controls` | N/A | N/A |
-| `@storybook/addon-backgrounds` | N/A | N/A |
-| `@storybook/addon-toolbars` | N/A | N/A |
-| `@storybook/addon-measure` | N/A | N/A |
+| `@storybook/addon-controls` | N/A | N/A |
+| `@storybook/addon-backgrounds` | N/A | N/A |
+| `@storybook/addon-toolbars` | N/A | N/A |
+| `@storybook/addon-measure` | N/A | N/A |
When you start Storybook, your custom configuration will override the default.
diff --git a/docs/essentials/interactions.mdx b/docs/essentials/interactions.mdx
index 2cb39d784531..432433d7bf92 100644
--- a/docs/essentials/interactions.mdx
+++ b/docs/essentials/interactions.mdx
@@ -38,7 +38,9 @@ Next, update [`.storybook/main.js|ts`](../configure/index.mdx#configure-story-re
{/* prettier-ignore-end */}
+
Make sure to list `@storybook/addon-interactions` **after** the [`@storybook/addon-essentials`](./index.mdx) addon (or the [`@storybook/addon-actions`](./actions.mdx) if you've installed it individually).
+
Now when you run Storybook, the Interactions addon will be enabled.
diff --git a/docs/essentials/toolbars-and-globals.mdx b/docs/essentials/toolbars-and-globals.mdx
index 88f8cec99d4c..82fb679d322d 100644
--- a/docs/essentials/toolbars-and-globals.mdx
+++ b/docs/essentials/toolbars-and-globals.mdx
@@ -28,7 +28,9 @@ Storybook has a simple, declarative syntax for configuring toolbar menus. In you
{/* prettier-ignore-end */}
+
As globals are *global* you can *only* set `globalTypes` in [`.storybook/preview.js|ts`](../configure/index.mdx#configure-story-rendering).
+
When you start your Storybook, you should see a new dropdown with the `light` and `dark` options in your toolbar.
@@ -92,12 +94,15 @@ In your [`.storybook/preview.js|ts`](../configure/index.mdx#configure-story-rend
{/* prettier-ignore-end */}
+
The `icon` element used in the examples loads the icons from the `@storybook/components` package. See [here](../faq.mdx#what-icons-are-available-for-my-toolbar-or-my-addon) for the list of available icons that you can use.
+
- The `@storybook/addon-toolbars` addon is required to use toolbars. The toolbars addon is included by default in
- `@storybook/addon-essentials`.
+
+ The `@storybook/addon-toolbars` addon is required to use toolbars. The toolbars addon is included by default in `@storybook/addon-essentials`.
+
By adding the configuration element `right`, the text will be displayed on the right side in the toolbar menu once you connect it to a decorator.
diff --git a/docs/essentials/viewport.mdx b/docs/essentials/viewport.mdx
index a644f06e1bec..32b5378c6abb 100644
--- a/docs/essentials/viewport.mdx
+++ b/docs/essentials/viewport.mdx
@@ -42,38 +42,38 @@ The viewports object needs the following keys:
The Viewport addon includes a selection of devices that you can use to test your components. Listed below are the available devices and examples of how to use them.
-| Device | Description | Dimensions
(w×h, px) |
-| -------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------- |
-| iPhone 5 | Configures the iPhone 5 as a device for the Viewport addon.
`parameters: { viewport: { defaultViewport: 'iphone5', }},` | 320 × 568 |
-| iPhone 6 | Enables the iPhone 6 to be used with the Viewport addon.
`parameters: { viewport: { defaultViewport: 'iphone6', }},` | 375 × 667 |
-| iPhone 6 Plus | Includes the iPhone 6 Plus as a device for the Viewport addon.
`parameters: { viewport: { defaultViewport: 'iphone6p', }},` | 414 × 736 |
-| iPhone 8 Plus | Sets the iPhone 8 Plus as a device to be used by the Viewport addon.
`parameters: { viewport: { defaultViewport: 'iphone8p', }},` | 414 × 736 |
-| iPhone X | Configures the iPhone X as a device for the Viewport addon.
`parameters: { viewport: { defaultViewport: 'iphonex', }},` | 375 × 812 |
-| iPhone XR | Includes the iPhone XR as a device for the Viewport addon.
`parameters: { viewport: { defaultViewport: 'iphonexr', }},` | 414 × 896 |
-| iPhone XS Max | Sets the iPhone XS Max as a device to be used by the Viewport addon.
`parameters: { viewport: { defaultViewport: 'iphonexsmax', }},` | 414 × 896 |
-| iPhone SE (2nd generation) | Configures the iPhone SE (2nd generation) as a device for the Viewport addon.
`parameters: { viewport: { defaultViewport: 'iphonese2', }},` | 375 × 667 |
-| iPhone 12 mini | Enables the iPhone 12 Mini to be used with the Viewport addon.
`parameters: { viewport: { defaultViewport: 'iphone12mini', }},` | 375 × 812 |
-| iPhone 12 | Includes the iPhone 12 as a device for the Viewport addon.
`parameters: { viewport: { defaultViewport: 'iphone12', }},` | 390 × 844 |
-| iPhone 12 Pro Max | Configures the iPhone 12 Pro Max as a device for the Viewport addon.
`parameters: { viewport: { defaultViewport: 'iphone12promax', }},` | 428 × 926 |
-| iPhone SE 3rd generation | Enables the iPhone SE (3rd generation) to be used with the Viewport addon.
`parameters: { viewport: { defaultViewport: 'iphoneSE3', }},` | 375 × 667 |
-| iPhone 13 | Includes the iPhone 13 as a device for the Viewport addon.
`parameters: { viewport: { defaultViewport: 'iphone13', }},` | 390 × 844 |
-| iPhone 13 Pro | Enables the iPhone 13 Pro to be used with the Viewport addon.
`parameters: { viewport: { defaultViewport: 'iphone13pro', }},` | 390 × 844 |
-| iPhone 13 Pro Max | Configures the iPhone 13 Pro Max as a device to be used by the Viewport addon.
`parameters: { viewport: { defaultViewport: 'iphone13promax', }},` | 428 × 926 |
-| iPhone 14 | Enables the iPhone 14 to be used with the Viewport addon.
`parameters: { viewport: { defaultViewport: 'iphone14', }},` | 390 × 844 |
-| iPhone 14 Pro | Includes the iPhone 14 Pro as a device for the Viewport addon.
`parameters: { viewport: { defaultViewport: 'iphone14pro', }},` | 393 × 852 |
-| iPhone 14 Pro Max | Sets the iPhone 14 Pro Max as a device to be used by the Viewport addon.
`parameters: { viewport: { defaultViewport: 'iphone14promax', }},` | 430 × 932 |
-| Galaxy S5 | Configures the Galaxy S5 as a device for the Viewport addon.
`parameters: { viewport: { defaultViewport: 'galaxys5', }},` | 360 × 640 |
-| Galaxy S9 | Enables the Galaxy S9 to be used with the Viewport addon.
`parameters: { viewport: { defaultViewport: 'galaxys9', }},` | 360 × 740 |
-| Nexus 5X | Includes the Nexus 5x as a device for the Viewport addon.
`parameters: { viewport: { defaultViewport: 'nexus5x', }},` | 412 × 668 |
-| Nexus 6P | Sets the Nexus 6P as a device to be used by the Viewport addon.
`parameters: { viewport: { defaultViewport: 'nexus6p', }},` | 412 × 732 |
-| Pixel | Configures the Pixel as a device for the Viewport addon.
`parameters: { viewport: { defaultViewport: 'pixel', }},` | 540 × 960 |
-| Pixel XL | Enables the Pixel XL to be used with the Viewport addon.
`parameters: { viewport: { defaultViewport: 'pixelxl', }},` | 720 × 1280 |
+| Device | Description | Dimensions
(w×h, px) |
+| -------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------- |
+| iPhone 5 | Configures the iPhone 5 as a device for the Viewport addon.
`parameters: { viewport: { defaultViewport: 'iphone5', }},` | 320 × 568 |
+| iPhone 6 | Enables the iPhone 6 to be used with the Viewport addon.
`parameters: { viewport: { defaultViewport: 'iphone6', }},` | 375 × 667 |
+| iPhone 6 Plus | Includes the iPhone 6 Plus as a device for the Viewport addon.
`parameters: { viewport: { defaultViewport: 'iphone6p', }},` | 414 × 736 |
+| iPhone 8 Plus | Sets the iPhone 8 Plus as a device to be used by the Viewport addon.
`parameters: { viewport: { defaultViewport: 'iphone8p', }},` | 414 × 736 |
+| iPhone X | Configures the iPhone X as a device for the Viewport addon.
`parameters: { viewport: { defaultViewport: 'iphonex', }},` | 375 × 812 |
+| iPhone XR | Includes the iPhone XR as a device for the Viewport addon.
`parameters: { viewport: { defaultViewport: 'iphonexr', }},` | 414 × 896 |
+| iPhone XS Max | Sets the iPhone XS Max as a device to be used by the Viewport addon.
`parameters: { viewport: { defaultViewport: 'iphonexsmax', }},` | 414 × 896 |
+| iPhone SE (2nd generation) | Configures the iPhone SE (2nd generation) as a device for the Viewport addon.
`parameters: { viewport: { defaultViewport: 'iphonese2', }},` | 375 × 667 |
+| iPhone 12 mini | Enables the iPhone 12 Mini to be used with the Viewport addon.
`parameters: { viewport: { defaultViewport: 'iphone12mini', }},` | 375 × 812 |
+| iPhone 12 | Includes the iPhone 12 as a device for the Viewport addon.
`parameters: { viewport: { defaultViewport: 'iphone12', }},` | 390 × 844 |
+| iPhone 12 Pro Max | Configures the iPhone 12 Pro Max as a device for the Viewport addon.
`parameters: { viewport: { defaultViewport: 'iphone12promax', }},` | 428 × 926 |
+| iPhone SE 3rd generation | Enables the iPhone SE (3rd generation) to be used with the Viewport addon.
`parameters: { viewport: { defaultViewport: 'iphoneSE3', }},` | 375 × 667 |
+| iPhone 13 | Includes the iPhone 13 as a device for the Viewport addon.
`parameters: { viewport: { defaultViewport: 'iphone13', }},` | 390 × 844 |
+| iPhone 13 Pro | Enables the iPhone 13 Pro to be used with the Viewport addon.
`parameters: { viewport: { defaultViewport: 'iphone13pro', }},` | 390 × 844 |
+| iPhone 13 Pro Max | Configures the iPhone 13 Pro Max as a device to be used by the Viewport addon.
`parameters: { viewport: { defaultViewport: 'iphone13promax', }},` | 428 × 926 |
+| iPhone 14 | Enables the iPhone 14 to be used with the Viewport addon.
`parameters: { viewport: { defaultViewport: 'iphone14', }},` | 390 × 844 |
+| iPhone 14 Pro | Includes the iPhone 14 Pro as a device for the Viewport addon.
`parameters: { viewport: { defaultViewport: 'iphone14pro', }},` | 393 × 852 |
+| iPhone 14 Pro Max | Sets the iPhone 14 Pro Max as a device to be used by the Viewport addon.
`parameters: { viewport: { defaultViewport: 'iphone14promax', }},` | 430 × 932 |
+| Galaxy S5 | Configures the Galaxy S5 as a device for the Viewport addon.
`parameters: { viewport: { defaultViewport: 'galaxys5', }},` | 360 × 640 |
+| Galaxy S9 | Enables the Galaxy S9 to be used with the Viewport addon.
`parameters: { viewport: { defaultViewport: 'galaxys9', }},` | 360 × 740 |
+| Nexus 5X | Includes the Nexus 5x as a device for the Viewport addon.
`parameters: { viewport: { defaultViewport: 'nexus5x', }},` | 412 × 668 |
+| Nexus 6P | Sets the Nexus 6P as a device to be used by the Viewport addon.
`parameters: { viewport: { defaultViewport: 'nexus6p', }},` | 412 × 732 |
+| Pixel | Configures the Pixel as a device for the Viewport addon.
`parameters: { viewport: { defaultViewport: 'pixel', }},` | 540 × 960 |
+| Pixel XL | Enables the Pixel XL to be used with the Viewport addon.
`parameters: { viewport: { defaultViewport: 'pixelxl', }},` | 720 × 1280 |
| Small mobile | Enabled by default.
Configures a small form factor generic mobile device to be used by the Viewport addon.
`parameters: { viewport: { defaultViewport: 'mobile1', }},` | 320 × 568 |
| Large mobile | Enabled by default.
Configures a large form factor mobile device to be used by the Viewport addon.
`parameters: { viewport: { defaultViewport: 'mobile2', }},` | 414 × 896 |
-| iPad | Includes the iPad as a device for the Viewport addon.
`parameters: { viewport: { defaultViewport: 'ipad', }},` | 768 × 1024 |
-| iPad Pro 10.5-in | Enables the iPad Pro (10.5-inch) to be used with the Viewport addon.
`parameters: { viewport: { defaultViewport: 'ipad10p', }},` | 834 × 112 |
-| iPad Pro 11-in | Configures the iPad Pro (11-inch) as a device for the Viewport addon.
`parameters: { viewport: { defaultViewport: 'ipad11p', }},` | 834 × 1194 |
-| iPad Pro 12.9-in | Sets the iPad Pro (12.9-inch) as a device to be used by the Viewport addon.
`parameters: { viewport: { defaultViewport: 'ipad12p', }},` | 1024 × 1366 |
+| iPad | Includes the iPad as a device for the Viewport addon.
`parameters: { viewport: { defaultViewport: 'ipad', }},` | 768 × 1024 |
+| iPad Pro 10.5-in | Enables the iPad Pro (10.5-inch) to be used with the Viewport addon.
`parameters: { viewport: { defaultViewport: 'ipad10p', }},` | 834 × 112 |
+| iPad Pro 11-in | Configures the iPad Pro (11-inch) as a device for the Viewport addon.
`parameters: { viewport: { defaultViewport: 'ipad11p', }},` | 834 × 1194 |
+| iPad Pro 12.9-in | Sets the iPad Pro (12.9-inch) as a device to be used by the Viewport addon.
`parameters: { viewport: { defaultViewport: 'ipad12p', }},` | 1024 × 1366 |
| Tablet | Enabled by default.
Configures a standard form factor tablet device to be used by the Viewport addon.
`parameters: { viewport: { defaultViewport: 'tablet', }},` | 834 × 1112 |
{/* prettier-ignore-start */}
@@ -202,8 +202,8 @@ Type: `object`
A minimal set of viewports provided by the Viewport addon, listed below:
-| Device | Description | Dimensions
(w×h, px) |
-| ------------ | -------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------- |
+| Device | Description | Dimensions
(w×h, px) |
+| ------------ | --------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------- |
| Small mobile | A small mobile device size
`parameters: { viewport: { defaultViewport: 'mobile1', }},` | 320 × 568 |
| Large mobile | A large mobile device size
`parameters: { viewport: { defaultViewport: 'mobile2', }},` | 414 × 896 |
| Tablet | A tablet device size
`parameters: { viewport: { defaultViewport: 'tablet', }},` | 834 × 1112 |
diff --git a/docs/faq.mdx b/docs/faq.mdx
index e732e5d3e345..220228ff3be8 100644
--- a/docs/faq.mdx
+++ b/docs/faq.mdx
@@ -64,7 +64,9 @@ npm test -- --coverage --collectCoverageFrom='["src/**/*.{js,jsx}","!src/**/stor
```
+
If you're using [`Yarn`](https://yarnpkg.com/) as a package manager, you'll need to adjust the command accordingly.
+
## How do I setup Storybook to share Webpack configuration with Next.js?
@@ -87,7 +89,7 @@ export default {
In case you are using [Yarn Plug-n-Play](https://yarnpkg.com/features/pnp) or your project is set up within a mono repository environment, you might run into issues with module resolution similar to this when running Storybook:
```shell
-WARN Failed to load preset: "@storybook/react-webpack5/preset"`
+WARN Failed to load preset: "@storybook/react-webpack5/preset"
Required package: @storybook/react-webpack5 (via "@storybook/react-webpack5/preset")
```
@@ -154,7 +156,7 @@ We're working on overcoming this limitation, and soon you'll be able to use them
Storybook does not work unless you have at least one local story (or docs page) defined in your project. In this context, local means a `.stories.*` or `.mdx` file that is referenced in your project's `.storybook/main.js` config.
-If you're in a [Storybook composition](https://storybook.js.org/docs/sharing/storybook-composition) scenario, where you have multiple Storybooks, and want to have an extra Storybook with no stories of its own, that serves as a "glue" for all the other Storybooks in a project for demo/documentation purposes, you can do the following steps:
+If you're in a [Storybook composition](./sharing/storybook-composition.mdx) scenario, where you have multiple Storybooks, and want to have an extra Storybook with no stories of its own, that serves as a "glue" for all the other Storybooks in a project for demo/documentation purposes, you can do the following steps:
Introduce a single `.mdx` docs page (addon-essentials or addon-docs required), that serves as an Introduction page, like so:
@@ -197,106 +199,106 @@ With the release of version 6.0, we updated our documentation as well. That does
We're only covering versions 5.3 and 5.0 as they were important milestones for Storybook. If you want to go back in time a little more, you'll have to check the specific release in the monorepo.
-| Section | Page | Current Location | Version 5.3 location | Version 5.0 location |
-| ---------------- | ----------------------------------------------- | --------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------- |
-| N/A | Why Storybook | [See current documentation](./get-started/why-storybook.mdx) | Non existing feature or undocumented | Non existing feature or undocumented |
-| Get started | Install | [See current documentation](./get-started/install.mdx) | [See versioned documentation](https://github.com/storybookjs/storybook/tree/release/5.3/docs/src/pages/guides/quick-start-guide) | [See versioned documentation](https://github.com/storybookjs/storybook/tree/release/5.0/docs/src/pages/guides/quick-start-guide) |
-| | What's a story | [See current documentation](./get-started/whats-a-story.mdx) | [See versioned documentation for your framework](https://github.com/storybookjs/storybook/tree/release/5.3/docs/src/pages/guides) | [See versioned documentation for your framework](https://github.com/storybookjs/storybook/tree/release/5.0/docs/src/pages/guides) |
-| | Browse Stories | [See current documentation](./get-started/browse-stories.mdx) | [See versioned documentation for your framework](https://github.com/storybookjs/storybook/tree/release/5.3/docs/src/pages/guides) | [See versioned documentation for your framework](https://github.com/storybookjs/storybook/blob/release/5.0/docs/src/pages/guides) |
-| | Setup | [See current documentation](./get-started/setup.mdx) | [See versioned documentation for your framework](https://github.com/storybookjs/storybook/tree/release/5.3/docs/src/pages/guides) | [See versioned documentation for your framework](https://github.com/storybookjs/storybook/tree/release/5.0/docs/src/pages/guides) |
-| Write stories | Introduction | [See current documentation](./writing-stories/index.mdx) | [See versioned documentation](https://github.com/storybookjs/storybook/tree/release/5.3/docs/src/pages/basics/writing-stories) | [See versioned documentation](https://github.com/storybookjs/storybook/tree/release/5.0/docs/src/pages/basics/writing-stories) |
-| | Parameters | [See current documentation](./writing-stories/parameters.mdx) | [See versioned documentation](https://github.com/storybookjs/storybook/tree/release/5.3/docs/src/pages/basics/writing-stories/index.md#parameters) | Non existing feature or undocumented |
-| | Decorators | [See current documentation](./writing-stories/decorators.mdx) | [See versioned documentation](https://github.com/storybookjs/storybook/tree/release/5.3/docs/src/pages/basics/writing-stories/index.md#decorators) | [See versioned documentation](https://github.com/storybookjs/storybook/tree/release/5.0/docs/src/pages/basics/writing-stories/index.md#using-decorators) |
-| | Naming components and hierarchy | [See current documentation](./writing-stories/naming-components-and-hierarchy.mdx) | [See versioned documentation](https://github.com/storybookjs/storybook/tree/release/5.3/docs/src/pages/basics/writing-stories) | [See versioned documentation](https://github.com/storybookjs/storybook/tree/release/5.0/docs/src/pages/basics/writing-stories) |
-| | Build pages and screens | [See current documentation](./writing-stories/build-pages-with-storybook.mdx) | Non existing feature or undocumented | Non existing feature or undocumented |
-| | Stories for multiple components | [See current documentation](./writing-stories/stories-for-multiple-components.mdx) | Non existing feature or undocumented | Non existing feature or undocumented |
-| Write docs | Autodocs | [See current documentation](./writing-docs/autodocs.mdx) | See versioned addon documentation | Non existing feature or undocumented |
-| | MDX | [See current documentation](./writing-docs/mdx.mdx) | See versioned addon documentation | Non existing feature or undocumented |
-| | Doc Blocks | [See current documentation](./writing-docs/doc-blocks.mdx) | Non existing feature or undocumented | Non existing feature or undocumented |
-| | Preview and build docs | [See current documentation](./writing-docs/build-documentation.mdx) | Non existing feature or undocumented | Non existing feature or undocumented |
-| Testing | Visual tests | [See current documentation](./writing-tests/visual-testing.mdx) | [See versioned documentation](https://github.com/storybookjs/storybook/tree/release/5.3/docs/src/pages/testing/automated-visual-testing) | [See versioned documentation](https://github.com/storybookjs/storybook/tree/release/5.0/docs/src/pages/testing/automated-visual-testing) |
-| | Accessibility tests | [See current documentation](./writing-tests/accessibility-testing.mdx) | Non existing feature or undocumented | Non existing feature or undocumented |
-| | Interaction tests | [See current documentation](./writing-tests/interaction-testing.mdx) | [See versioned documentation](https://github.com/storybookjs/storybook/tree/release/5.3/docs/src/pages/testing/interaction-testing) | [See versioned documentation](https://github.com/storybookjs/storybook/tree/release/5.0/docs/src/pages/testing/interaction-testing) |
-| | Snapshot tests | [See current documentation](./writing-tests/snapshot-testing.mdx) | [See versioned documentation](https://github.com/storybookjs/storybook/tree/release/5.3/docs/src/pages/testing/structural-testing) | [See versioned documentation](https://github.com/storybookjs/storybook/tree/release/5.0/docs/src/pages/testing/structural-testing) |
-| | Import stories in tests/Unit tests | [See current documentation](./writing-tests/stories-in-unit-tests.mdx) | [See versioned documentation](https://github.com/storybookjs/storybook/tree/release/5.3/docs/src/pages/testing/react-ui-testing) | [See versioned documentation](https://github.com/storybookjs/storybook/tree/release/5.0/docs/src/pages/testing/react-ui-testing) |
-| | Import stories in tests/End-to-end testing | [See current documentation](./writing-tests/stories-in-end-to-end-tests.mdx) | [See versioned documentation](https://github.com/storybookjs/storybook/tree/release/5.3/docs/src/pages/testing/react-ui-testing) | [See versioned documentation](https://github.com/storybookjs/storybook/tree/release/5.0/docs/src/pages/testing/react-ui-testing) |
-| Sharing | Publish Storybook | [See current documentation](./sharing/publish-storybook.mdx) | [See versioned documentation](https://github.com/storybookjs/storybook/tree/release/5.3/docs/src/pages/basics/exporting-storybook) | [See versioned documentation](https://github.com/storybookjs/storybook/tree/release/5.0/docs/src/pages/basics/exporting-storybook) |
-| | Embed | [See current documentation](./sharing/embed.mdx) | Non existing feature or undocumented | Non existing feature or undocumented |
-| | Composition | [See current documentation](./sharing/storybook-composition.mdx) | Non existing feature or undocumented | Non existing feature or undocumented |
-| | Package Composition | [See current documentation](./sharing/package-composition.mdx) | Non existing feature or undocumented | Non existing feature or undocumented |
-| Essential addons | Controls | [See current documentation](./essentials/controls.mdx) | Controls are specific to version 6.0 see [Knobs versioned documentation](https://github.com/storybookjs/storybook/tree/release/5.3/addons/knobs) | Controls are specific to version 6.0 see [Knobs versioned documentation](https://github.com/storybookjs/storybook/tree/release/5.0/addons/knobs) |
-| | Actions | [See current documentation](./essentials/actions.mdx) | [See addon versioned documentation](https://github.com/storybookjs/storybook/tree/release/5.3/addons/actions) | [See addon versioned documentation](https://github.com/storybookjs/storybook/tree/release/5.0/addons/actions) |
-| | Viewport | [See current documentation](./essentials/viewport.mdx) | [See addon versioned documentation](https://github.com/storybookjs/storybook/tree/release/5.3/addons/viewport) | [See addon versioned documentation](https://github.com/storybookjs/storybook/tree/release/5.0/addons/viewport) |
-| | Backgrounds | [See current documentation](./essentials/backgrounds.mdx) | [See addon versioned documentation](https://github.com/storybookjs/storybook/tree/release/5.3/addons/backgrounds) | [See addon versioned documentation](https://github.com/storybookjs/storybook/tree/release/5.0/addons/backgrounds) |
-| | Toolbars and globals | [See current documentation](./essentials/toolbars-and-globals.mdx) | [See versioned documentation](https://github.com/storybookjs/storybook/tree/release/5.3/docs/src/pages/basics/toolbar-guide) | Non existing feature or undocumented |
-| Configure | Overview | [See current documentation](./configure/integration/index.mdx) | [See versioned documentation](https://github.com/storybookjs/storybook/tree/release/5.3/docs/src/pages/configurations/overview) | [See versioned documentation](https://github.com/storybookjs/storybook/tree/release/5.0/docs/src/pages/basics/writing-stories) |
-| | Integration/Frameworks | [See current documentation](./configure/ingtegration/frameworks.mdx) | Non existing feature or undocumented | Non existing feature or undocumented |
-| | Integration/Framework support for frameworks | [See current documentation](./configure/integration/frameworks-feature-support.mdx) | Non existing feature or undocumented | Non existing feature or undocumented |
-| | Integration/Compilers | [See current documentation](./configure/integration/compilers.mdx) | See versioned documentation [here](https://github.com/storybookjs/storybook/tree/release/5.3/docs/src/pages/configurations/custom-babel-config) | See versioned documentation [here](https://github.com/storybookjs/storybook/tree/release/5.0/docs/src/pages/configurations/custom-babel-config) |
-| | Integration/Typescript | [See current documentation](./configure/integration/typescript.mdx) | [See versioned documentation](https://github.com/storybookjs/storybook/tree/release/5.3/docs/src/pages/configurations/typescript-config) | [See versioned documentation](https://github.com/storybookjs/storybook/tree/release/5.0/docs/src/pages/configurations/typescript-config) |
-| | Integration/Styling and CSS | [See current documentation](./configure/styling-and-css.mdx) | See versioned documentation | See versioned documentation |
-| | Integration/Images and assets | [See current documentation](./configure/integration/images-and-assets.mdx) | See versioned documentation | See versioned documentation |
-| | Story rendering | [See current documentation](./configure/story-rendering.mdx) | See versioned documentation [here](https://github.com/storybookjs/storybook/tree/release/5.3/docs/src/pages/configurations/add-custom-head-tags) and [here](https://github.com/storybookjs/storybook/tree/release/5.3/docs/src/pages/configurations/add-custom-body) | See versioned documentation [here](https://github.com/storybookjs/storybook/tree/release/5.0/docs/src/pages/configurations/add-custom-head-tags) |
-| | Story Layout | [See current documentation](./configure/story-layout.mdx) | Non existing feature or undocumented | Non existing feature or undocumented |
-| | User Interface/Features and behavior | [See current documentation](./configure/user-interface/features-and-behavior.mdx) | [See versioned documentation](https://github.com/storybookjs/storybook/tree/release/5.3/docs/src/pages/configurations/options-parameter) | [See versioned documentation](https://github.com/storybookjs/storybook/tree/release/5.0/docs/src/pages/configurations/options-parameter) |
-| | User Interface/Theming | [See current documentation](./configure/user-interface/theming.mdx) | [See versioned documentation](https://github.com/storybookjs/storybook/tree/release/5.3/docs/src/pages/configurations/theming) | [See versioned documentation](https://github.com/storybookjs/storybook/tree/release/5.0/docs/src/pages/configurations/theming) |
-| | User Interface/Sidebar & URLS | [See current documentation](./configure/user-interface/sidebar-and-urls.mdx) | [See versioned documentation](https://github.com/storybookjs/storybook/tree/release/5.3/docs/src/pages/configurations/options-parameter) | [See versioned documentation](https://github.com/storybookjs/storybook/tree/release/5.0/docs/src/pages/configurations/options-parameter) |
-| | Environment variables | [See current documentation](./configure/environment-variables.mdx) | [See versioned documentation](https://github.com/storybookjs/storybook/tree/release/5.3/docs/src/pages/configurations/env-vars) | [See versioned documentation](https://github.com/storybookjs/storybook/tree/release/5.0/docs/src/pages/configurations/env-vars) |
-| Builders | Introduction | [See current documentation](./builders/index.mdx) | Non existing feature or undocumented | Non existing feature or undocumented |
-| | Vite | [See current documentation](./builders/vite.mdx) | Non existing feature or undocumented | Non existing feature or undocumented |
-| | Webpack | [See current documentation](./builders/webpack.mdx) | [See versioned documentation](https://github.com/storybookjs/storybook/tree/release/5.3/docs/src/pages/configurations/custom-webpack-config/index.mdx) | [See versioned documentation](https://github.com/storybookjs/storybook/tree/release/5.0/docs/src/pages/configurations/custom-webpack-config/index.mdx) |
-| | Builder API | [See current documentation](./builders/builder-api.mdx) | Non existing feature or undocumented | Non existing feature or undocumented |
-| Addons | Introduction | [See current documentation](./addons/index.mdx) | [See versioned documentation](https://github.com/storybookjs/storybook/tree/release/5.3/docs/src/pages/addons/writing-addons) | [See versioned documentation](https://github.com/storybookjs/storybook/tree/release/5.0/docs/src/pages/addons/writing-addons) |
-| | Install addons | [See current documentation](./addons/install-addons.mdx) | [See versioned documentation](https://github.com/storybookjs/storybook/tree/release/5.3/docs/src/pages/addons/using-addons/) | [See versioned documentation](https://github.com/storybookjs/storybook/tree/release/5.0/docs/src/pages/addons/using-addons/) |
-| | Writing Addons | [See current documentation](./addons/writing-addons.mdx) | [See versioned documentation](https://github.com/storybookjs/storybook/tree/release/5.3/docs/src/pages/addons/writing-addons) | [See versioned documentation](https://github.com/storybookjs/storybook/tree/release/5.0/docs/src/pages/addons/writing-addons) |
-| | Writing Presets | [See current documentation](./addons/writing-presets.mdx) | [See versioned documentation](https://github.com/storybookjs/storybook/tree/release/5.3/docs/src/pages/presets/writing-presets) | Non existing feature or undocumented |
-| | Addons Knowledge Base | [See current documentation](./addons/addon-knowledge-base.mdx) | [See versioned documentation](https://github.com/storybookjs/storybook/tree/release/5.3/docs/src/pages/addons/writing-addons) | [See versioned documentation](https://github.com/storybookjs/storybook/tree/release/5.0/docs/src/pages/addons/writing-addons) |
-| | Types of addons | [See current documentation](./addons/addon-types.mdx) | Non existing feature or undocumented | Non existing feature or undocumented |
-| | Addons API | [See current documentation](./addons/addons-api.mdx) | [See versioned documentation](https://github.com/storybookjs/storybook/tree/release/5.3/docs/src/pages/addons/api) | [See versioned documentation](https://github.com/storybookjs/storybook/tree/release/5.0/docs/src/pages/addons/api) |
-| API | @storybook/blocks/ArgTypes | [See current documentation](./api/doc-blocks/doc-block-argtypes.mdx) | Non existing feature or undocumented | Non existing feature or undocumented |
-| | @storybook/blocks/Canvas | [See current documentation](./api/doc-blocks/doc-block-canvas.mdx) | Non existing feature or undocumented | Non existing feature or undocumented |
-| | @storybook/blocks/ColorPalette | [See current documentation](./api/doc-blocks/doc-block-colorpalette.mdx) | Non existing feature or undocumented | Non existing feature or undocumented |
-| | @storybook/blocks/Controls | [See current documentation](./api/doc-blocks/doc-block-controls.mdx) | Non existing feature or undocumented | Non existing feature or undocumented |
-| | @storybook/blocks/Description | [See current documentation](./api/doc-blocks/doc-block-description.mdx) | Non existing feature or undocumented | Non existing feature or undocumented |
-| | @storybook/blocks/IconGallery | [See current documentation](./api/doc-blocks/doc-block-icongallery.mdx) | Non existing feature or undocumented | Non existing feature or undocumented |
-| | @storybook/blocks/Markdown | [See current documentation](./api/doc-blocks/doc-block-markdown.mdx) | Non existing feature or undocumented | Non existing feature or undocumented |
-| | @storybook/blocks/Meta | [See current documentation](./api/doc-blocks/doc-block-meta.mdx) | Non existing feature or undocumented | Non existing feature or undocumented |
-| | @storybook/blocks/Primary | [See current documentation](./api/doc-blocks/doc-block-primary.mdx) | Non existing feature or undocumented | Non existing feature or undocumented |
-| | @storybook/blocks/Source | [See current documentation](./api/doc-blocks/doc-block-source.mdx) | Non existing feature or undocumented | Non existing feature or undocumented |
-| | @storybook/blocks/Stories | [See current documentation](./api/doc-blocks/doc-block-stories.mdx) | Non existing feature or undocumented | Non existing feature or undocumented |
-| | @storybook/blocks/Story | [See current documentation](./api/doc-blocks/doc-block-story.mdx) | Non existing feature or undocumented | Non existing feature or undocumented |
-| | @storybook/blocks/Subtitle | [See current documentation](./api/doc-blocks/doc-block-subtitle.mdx) | Non existing feature or undocumented | Non existing feature or undocumented |
-| | @storybook/blocks/Title | [See current documentation](./api/doc-blocks/doc-block-title.mdx) | Non existing feature or undocumented | Non existing feature or undocumented |
-| | @storybook/blocks/Typeset | [See current documentation](./api/doc-blocks/doc-block-typeset.mdx) | Non existing feature or undocumented | Non existing feature or undocumented |
-| | @storybook/blocks/Unstyled | [See current documentation](./api/doc-blocks/doc-block-unstyled.mdx) | Non existing feature or undocumented | Non existing feature or undocumented |
-| | @storybook/blocks/useOf | [See current documentation](./api/doc-blocks/doc-block-useof.mdx) | Non existing feature or undocumented | Non existing feature or undocumented |
-| | Stories/Component Story Format (see note below) | [See current documentation](./api/csf.mdx) | [See versioned documentation](https://github.com/storybookjs/storybook/tree/release/5.3/docs/src/pages/formats/component-story-format) | Non existing feature or undocumented |
-| | ArgTypes | [See current documentation](./api/arg-types.mdx) | Non existing feature or undocumented | Non existing feature or undocumented |
-| | `main.js` configuration/Overview | [See current documentation](./api/main-config/main-config.mdx) | Non existing feature or undocumented | Non existing feature or undocumented |
-| | `main.js` configuration/framework | [See current documentation](./api/main-config/main-config-framework.mdx) | Non existing feature or undocumented | Non existing feature or undocumented |
-| | `main.js` configuration/stories | [See current documentation](./api/main-config/main-config-stories.mdx) | Non existing feature or undocumented | Non existing feature or undocumented |
-| | `main.js` configuration/addons | [See current documentation](./api/main-config/main-config-addons.mdx) | Non existing feature or undocumented | Non existing feature or undocumented |
-| | `main.js` configuration/babel | [See current documentation](./api/main-config/main-config-babel.mdx) | Non existing feature or undocumented | Non existing feature or undocumented |
-| | `main.js` configuration/babelDefault | [See current documentation](./api/main-config/main-config-babel-default.mdx) | Non existing feature or undocumented | Non existing feature or undocumented |
-| | `main.js` configuration/build | [See current documentation](./api/main-config/main-config-build.mdx) | Non existing feature or undocumented | Non existing feature or undocumented |
-| | `main.js` configuration/core | [See current documentation](./api/main-config/main-config-core.mdx) | Non existing feature or undocumented | Non existing feature or undocumented |
-| | `main.js` configuration/docs | [See current documentation](./api/main-config/main-config-docs.mdx) | Non existing feature or undocumented | Non existing feature or undocumented |
-| | `main.js` configuration/env | [See current documentation](./api/main-config/main-config-env.mdx) | Non existing feature or undocumented | Non existing feature or undocumented |
-| | `main.js` configuration/features | [See current documentation](./api/main-config/main-config-features.mdx) | Non existing feature or undocumented | Non existing feature or undocumented |
-| | `main.js` configuration/indexers | [See current documentation](./api/main-config/main-config-indexers.mdx) | Non existing feature or undocumented | Non existing feature or undocumented |
-| | `main.js` configuration/logLevel | [See current documentation](./api/main-config/main-config-log-level.mdx) | Non existing feature or undocumented | Non existing feature or undocumented |
-| | `main.js` configuration/managerHead | [See current documentation](./api/main-config/main-config-manager-head.mdx) | Non existing feature or undocumented | Non existing feature or undocumented |
-| | `main.js` configuration/previewAnnotations | [See current documentation](./api/main-config/main-config-preview-annotations.mdx) | Non existing feature or undocumented | Non existing feature or undocumented |
-| | `main.js` configuration/previewBody | [See current documentation](./api/main-config/main-config-preview-body.mdx) | Non existing feature or undocumented | Non existing feature or undocumented |
-| | `main.js` configuration/previewHead | [See current documentation](./api/main-config/main-config-preview-head.mdx) | Non existing feature or undocumented | Non existing feature or undocumented |
-| | `main.js` configuration/refs | [See current documentation](./api/main-config/main-config-refs.mdx) | Non existing feature or undocumented | Non existing feature or undocumented |
-| | `main.js` configuration/staticDirs | [See current documentation](./api/main-config/main-config-static-dirs.mdx) | Non existing feature or undocumented | Non existing feature or undocumented |
-| | `main.js` configuration/swc | [See current documentation](./api/main-config/main-config-swc.mdx) | Non existing feature or undocumented | Non existing feature or undocumented |
-| | `main.js` configuration/typescript | [See current documentation](./api/main-config/main-config-typescript.mdx) | Non existing feature or undocumented | Non existing feature or undocumented |
-| | `main.js` configuration/viteFinal | [See current documentation](./api/main-config/main-config-vite-final.mdx) | Non existing feature or undocumented | Non existing feature or undocumented |
-| | `main.js` configuration/webpackFinal | [See current documentation](./api/main-config/main-config-webpack-final.mdx) | Non existing feature or undocumented | Non existing feature or undocumented |
-| | Frameworks | [See current documentation](./api/new-frameworks.mdx) | Non existing feature or undocumented | Non existing feature or undocumented |
-| | CLI options | [See current documentation](./api/cli-options.mdx) | [See versioned documentation](https://github.com/storybookjs/storybook/tree/release/5.3/docs/src/pages/configurations/cli-options) | [See versioned documentation](https://github.com/storybookjs/storybook/tree/release/5.0/docs/src/pages/configurations/cli-options) |
+| Section | Page | Current Location | Version 5.3 location | Version 5.0 location |
+| ---------------- | ----------------------------------------------- | ---------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| N/A | Why Storybook | [See current documentation](./get-started/why-storybook.mdx) | Non existing feature or undocumented | Non existing feature or undocumented |
+| Get started | Install | [See current documentation](./get-started/install.mdx) | [See versioned documentation](https://github.com/storybookjs/storybook/tree/release/5.3/docs/src/pages/guides/quick-start-guide) | [See versioned documentation](https://github.com/storybookjs/storybook/tree/release/5.0/docs/src/pages/guides/quick-start-guide) |
+| | What's a story | [See current documentation](./get-started/whats-a-story.mdx) | [See versioned documentation for your framework](https://github.com/storybookjs/storybook/tree/release/5.3/docs/src/pages/guides) | [See versioned documentation for your framework](https://github.com/storybookjs/storybook/tree/release/5.0/docs/src/pages/guides) |
+| | Browse Stories | [See current documentation](./get-started/browse-stories.mdx) | [See versioned documentation for your framework](https://github.com/storybookjs/storybook/tree/release/5.3/docs/src/pages/guides) | [See versioned documentation for your framework](https://github.com/storybookjs/storybook/blob/release/5.0/docs/src/pages/guides) |
+| | Setup | [See current documentation](./get-started/setup.mdx) | [See versioned documentation for your framework](https://github.com/storybookjs/storybook/tree/release/5.3/docs/src/pages/guides) | [See versioned documentation for your framework](https://github.com/storybookjs/storybook/tree/release/5.0/docs/src/pages/guides) |
+| Write stories | Introduction | [See current documentation](./writing-stories/index.mdx) | [See versioned documentation](https://github.com/storybookjs/storybook/tree/release/5.3/docs/src/pages/basics/writing-stories) | [See versioned documentation](https://github.com/storybookjs/storybook/tree/release/5.0/docs/src/pages/basics/writing-stories) |
+| | Parameters | [See current documentation](./writing-stories/parameters.mdx) | [See versioned documentation](https://github.com/storybookjs/storybook/tree/release/5.3/docs/src/pages/basics/writing-stories/index.md#parameters) | Non existing feature or undocumented |
+| | Decorators | [See current documentation](./writing-stories/decorators.mdx) | [See versioned documentation](https://github.com/storybookjs/storybook/tree/release/5.3/docs/src/pages/basics/writing-stories/index.md#decorators) | [See versioned documentation](https://github.com/storybookjs/storybook/tree/release/5.0/docs/src/pages/basics/writing-stories/index.md#using-decorators) |
+| | Naming components and hierarchy | [See current documentation](./writing-stories/naming-components-and-hierarchy.mdx) | [See versioned documentation](https://github.com/storybookjs/storybook/tree/release/5.3/docs/src/pages/basics/writing-stories) | [See versioned documentation](https://github.com/storybookjs/storybook/tree/release/5.0/docs/src/pages/basics/writing-stories) |
+| | Build pages and screens | [See current documentation](./writing-stories/build-pages-with-storybook.mdx) | Non existing feature or undocumented | Non existing feature or undocumented |
+| | Stories for multiple components | [See current documentation](./writing-stories/stories-for-multiple-components.mdx) | Non existing feature or undocumented | Non existing feature or undocumented |
+| Write docs | Autodocs | [See current documentation](./writing-docs/autodocs.mdx) | See versioned addon documentation | Non existing feature or undocumented |
+| | MDX | [See current documentation](./writing-docs/mdx.mdx) | See versioned addon documentation | Non existing feature or undocumented |
+| | Doc Blocks | [See current documentation](./writing-docs/doc-blocks.mdx) | Non existing feature or undocumented | Non existing feature or undocumented |
+| | Preview and build docs | [See current documentation](./writing-docs/build-documentation.mdx) | Non existing feature or undocumented | Non existing feature or undocumented |
+| Testing | Visual tests | [See current documentation](./writing-tests/visual-testing.mdx) | [See versioned documentation](https://github.com/storybookjs/storybook/tree/release/5.3/docs/src/pages/testing/automated-visual-testing) | [See versioned documentation](https://github.com/storybookjs/storybook/tree/release/5.0/docs/src/pages/testing/automated-visual-testing) |
+| | Accessibility tests | [See current documentation](./writing-tests/accessibility-testing.mdx) | Non existing feature or undocumented | Non existing feature or undocumented |
+| | Interaction tests | [See current documentation](./writing-tests/interaction-testing.mdx) | [See versioned documentation](https://github.com/storybookjs/storybook/tree/release/5.3/docs/src/pages/testing/interaction-testing) | [See versioned documentation](https://github.com/storybookjs/storybook/tree/release/5.0/docs/src/pages/testing/interaction-testing) |
+| | Snapshot tests | [See current documentation](./writing-tests/snapshot-testing/snapshot-testing.mdx) | [See versioned documentation](https://github.com/storybookjs/storybook/tree/release/5.3/docs/src/pages/testing/structural-testing) | [See versioned documentation](https://github.com/storybookjs/storybook/tree/release/5.0/docs/src/pages/testing/structural-testing) |
+| | Import stories in tests/Unit tests | [See current documentation](./writing-tests/import-stories-in-tests/stories-in-unit-tests.mdx) | [See versioned documentation](https://github.com/storybookjs/storybook/tree/release/5.3/docs/src/pages/testing/react-ui-testing) | [See versioned documentation](https://github.com/storybookjs/storybook/tree/release/5.0/docs/src/pages/testing/react-ui-testing) |
+| | Import stories in tests/End-to-end testing | [See current documentation](./writing-tests/import-stories-in-tests/stories-in-end-to-end-tests.mdx) | [See versioned documentation](https://github.com/storybookjs/storybook/tree/release/5.3/docs/src/pages/testing/react-ui-testing) | [See versioned documentation](https://github.com/storybookjs/storybook/tree/release/5.0/docs/src/pages/testing/react-ui-testing) |
+| Sharing | Publish Storybook | [See current documentation](./sharing/publish-storybook.mdx) | [See versioned documentation](https://github.com/storybookjs/storybook/tree/release/5.3/docs/src/pages/basics/exporting-storybook) | [See versioned documentation](https://github.com/storybookjs/storybook/tree/release/5.0/docs/src/pages/basics/exporting-storybook) |
+| | Embed | [See current documentation](./sharing/embed.mdx) | Non existing feature or undocumented | Non existing feature or undocumented |
+| | Composition | [See current documentation](./sharing/storybook-composition.mdx) | Non existing feature or undocumented | Non existing feature or undocumented |
+| | Package Composition | [See current documentation](./sharing/package-composition.mdx) | Non existing feature or undocumented | Non existing feature or undocumented |
+| Essential addons | Controls | [See current documentation](./essentials/controls.mdx) | Controls are specific to version 6.0 see [Knobs versioned documentation](https://github.com/storybookjs/storybook/tree/release/5.3/addons/knobs) | Controls are specific to version 6.0 see [Knobs versioned documentation](https://github.com/storybookjs/storybook/tree/release/5.0/addons/knobs) |
+| | Actions | [See current documentation](./essentials/actions.mdx) | [See addon versioned documentation](https://github.com/storybookjs/storybook/tree/release/5.3/addons/actions) | [See addon versioned documentation](https://github.com/storybookjs/storybook/tree/release/5.0/addons/actions) |
+| | Viewport | [See current documentation](./essentials/viewport.mdx) | [See addon versioned documentation](https://github.com/storybookjs/storybook/tree/release/5.3/addons/viewport) | [See addon versioned documentation](https://github.com/storybookjs/storybook/tree/release/5.0/addons/viewport) |
+| | Backgrounds | [See current documentation](./essentials/backgrounds.mdx) | [See addon versioned documentation](https://github.com/storybookjs/storybook/tree/release/5.3/addons/backgrounds) | [See addon versioned documentation](https://github.com/storybookjs/storybook/tree/release/5.0/addons/backgrounds) |
+| | Toolbars and globals | [See current documentation](./essentials/toolbars-and-globals.mdx) | [See versioned documentation](https://github.com/storybookjs/storybook/tree/release/5.3/docs/src/pages/basics/toolbar-guide) | Non existing feature or undocumented |
+| Configure | Overview | [See current documentation](./configure/index.mdx) | [See versioned documentation](https://github.com/storybookjs/storybook/tree/release/5.3/docs/src/pages/configurations/overview) | [See versioned documentation](https://github.com/storybookjs/storybook/tree/release/5.0/docs/src/pages/basics/writing-stories) |
+| | Integration/Frameworks | [See current documentation](./configure/integration/frameworks.mdx) | Non existing feature or undocumented | Non existing feature or undocumented |
+| | Integration/Framework support for frameworks | [See current documentation](./configure/integration/frameworks-feature-support.mdx) | Non existing feature or undocumented | Non existing feature or undocumented |
+| | Integration/Compilers | [See current documentation](./configure/integration/compilers.mdx) | See versioned documentation [here](https://github.com/storybookjs/storybook/tree/release/5.3/docs/src/pages/configurations/custom-babel-config) | See versioned documentation [here](https://github.com/storybookjs/storybook/tree/release/5.0/docs/src/pages/configurations/custom-babel-config) |
+| | Integration/Typescript | [See current documentation](./configure/integration/typescript.mdx) | [See versioned documentation](https://github.com/storybookjs/storybook/tree/release/5.3/docs/src/pages/configurations/typescript-config) | [See versioned documentation](https://github.com/storybookjs/storybook/tree/release/5.0/docs/src/pages/configurations/typescript-config) |
+| | Integration/Styling and CSS | [See current documentation](./configure/styling-and-css.mdx) | See versioned documentation | See versioned documentation |
+| | Integration/Images and assets | [See current documentation](./configure/integration/images-and-assets.mdx) | See versioned documentation | See versioned documentation |
+| | Story rendering | [See current documentation](./configure/story-rendering.mdx) | See versioned documentation [here](https://github.com/storybookjs/storybook/tree/release/5.3/docs/src/pages/configurations/add-custom-head-tags) and [here](https://github.com/storybookjs/storybook/tree/release/5.3/docs/src/pages/configurations/add-custom-body) | See versioned documentation [here](https://github.com/storybookjs/storybook/tree/release/5.0/docs/src/pages/configurations/add-custom-head-tags) |
+| | Story Layout | [See current documentation](./configure/story-layout.mdx) | Non existing feature or undocumented | Non existing feature or undocumented |
+| | User Interface/Features and behavior | [See current documentation](./configure/user-interface/features-and-behavior.mdx) | [See versioned documentation](https://github.com/storybookjs/storybook/tree/release/5.3/docs/src/pages/configurations/options-parameter) | [See versioned documentation](https://github.com/storybookjs/storybook/tree/release/5.0/docs/src/pages/configurations/options-parameter) |
+| | User Interface/Theming | [See current documentation](./configure/user-interface/theming.mdx) | [See versioned documentation](https://github.com/storybookjs/storybook/tree/release/5.3/docs/src/pages/configurations/theming) | [See versioned documentation](https://github.com/storybookjs/storybook/tree/release/5.0/docs/src/pages/configurations/theming) |
+| | User Interface/Sidebar & URLS | [See current documentation](./configure/user-interface/sidebar-and-urls.mdx) | [See versioned documentation](https://github.com/storybookjs/storybook/tree/release/5.3/docs/src/pages/configurations/options-parameter) | [See versioned documentation](https://github.com/storybookjs/storybook/tree/release/5.0/docs/src/pages/configurations/options-parameter) |
+| | Environment variables | [See current documentation](./configure/environment-variables.mdx) | [See versioned documentation](https://github.com/storybookjs/storybook/tree/release/5.3/docs/src/pages/configurations/env-vars) | [See versioned documentation](https://github.com/storybookjs/storybook/tree/release/5.0/docs/src/pages/configurations/env-vars) |
+| Builders | Introduction | [See current documentation](./builders/index.mdx) | Non existing feature or undocumented | Non existing feature or undocumented |
+| | Vite | [See current documentation](./builders/vite.mdx) | Non existing feature or undocumented | Non existing feature or undocumented |
+| | Webpack | [See current documentation](./builders/webpack.mdx) | [See versioned documentation](https://github.com/storybookjs/storybook/tree/release/5.3/docs/src/pages/configurations/custom-webpack-config/index.mdx) | [See versioned documentation](https://github.com/storybookjs/storybook/tree/release/5.0/docs/src/pages/configurations/custom-webpack-config/index.mdx) |
+| | Builder API | [See current documentation](./builders/builder-api.mdx) | Non existing feature or undocumented | Non existing feature or undocumented |
+| Addons | Introduction | [See current documentation](./addons/index.mdx) | [See versioned documentation](https://github.com/storybookjs/storybook/tree/release/5.3/docs/src/pages/addons/writing-addons) | [See versioned documentation](https://github.com/storybookjs/storybook/tree/release/5.0/docs/src/pages/addons/writing-addons) |
+| | Install addons | [See current documentation](./addons/install-addons.mdx) | [See versioned documentation](https://github.com/storybookjs/storybook/tree/release/5.3/docs/src/pages/addons/using-addons/) | [See versioned documentation](https://github.com/storybookjs/storybook/tree/release/5.0/docs/src/pages/addons/using-addons/) |
+| | Writing Addons | [See current documentation](./addons/writing-addons.mdx) | [See versioned documentation](https://github.com/storybookjs/storybook/tree/release/5.3/docs/src/pages/addons/writing-addons) | [See versioned documentation](https://github.com/storybookjs/storybook/tree/release/5.0/docs/src/pages/addons/writing-addons) |
+| | Writing Presets | [See current documentation](./addons/writing-presets.mdx) | [See versioned documentation](https://github.com/storybookjs/storybook/tree/release/5.3/docs/src/pages/presets/writing-presets) | Non existing feature or undocumented |
+| | Addons Knowledge Base | [See current documentation](./addons/addon-knowledge-base.mdx) | [See versioned documentation](https://github.com/storybookjs/storybook/tree/release/5.3/docs/src/pages/addons/writing-addons) | [See versioned documentation](https://github.com/storybookjs/storybook/tree/release/5.0/docs/src/pages/addons/writing-addons) |
+| | Types of addons | [See current documentation](./addons/addon-types.mdx) | Non existing feature or undocumented | Non existing feature or undocumented |
+| | Addons API | [See current documentation](./addons/addons-api.mdx) | [See versioned documentation](https://github.com/storybookjs/storybook/tree/release/5.3/docs/src/pages/addons/api) | [See versioned documentation](https://github.com/storybookjs/storybook/tree/release/5.0/docs/src/pages/addons/api) |
+| API | @storybook/blocks/ArgTypes | [See current documentation](./api/doc-blocks/doc-block-argtypes.mdx) | Non existing feature or undocumented | Non existing feature or undocumented |
+| | @storybook/blocks/Canvas | [See current documentation](./api/doc-blocks/doc-block-canvas.mdx) | Non existing feature or undocumented | Non existing feature or undocumented |
+| | @storybook/blocks/ColorPalette | [See current documentation](./api/doc-blocks/doc-block-colorpalette.mdx) | Non existing feature or undocumented | Non existing feature or undocumented |
+| | @storybook/blocks/Controls | [See current documentation](./api/doc-blocks/doc-block-controls.mdx) | Non existing feature or undocumented | Non existing feature or undocumented |
+| | @storybook/blocks/Description | [See current documentation](./api/doc-blocks/doc-block-description.mdx) | Non existing feature or undocumented | Non existing feature or undocumented |
+| | @storybook/blocks/IconGallery | [See current documentation](./api/doc-blocks/doc-block-icongallery.mdx) | Non existing feature or undocumented | Non existing feature or undocumented |
+| | @storybook/blocks/Markdown | [See current documentation](./api/doc-blocks/doc-block-markdown.mdx) | Non existing feature or undocumented | Non existing feature or undocumented |
+| | @storybook/blocks/Meta | [See current documentation](./api/doc-blocks/doc-block-meta.mdx) | Non existing feature or undocumented | Non existing feature or undocumented |
+| | @storybook/blocks/Primary | [See current documentation](./api/doc-blocks/doc-block-primary.mdx) | Non existing feature or undocumented | Non existing feature or undocumented |
+| | @storybook/blocks/Source | [See current documentation](./api/doc-blocks/doc-block-source.mdx) | Non existing feature or undocumented | Non existing feature or undocumented |
+| | @storybook/blocks/Stories | [See current documentation](./api/doc-blocks/doc-block-stories.mdx) | Non existing feature or undocumented | Non existing feature or undocumented |
+| | @storybook/blocks/Story | [See current documentation](./api/doc-blocks/doc-block-story.mdx) | Non existing feature or undocumented | Non existing feature or undocumented |
+| | @storybook/blocks/Subtitle | [See current documentation](./api/doc-blocks/doc-block-subtitle.mdx) | Non existing feature or undocumented | Non existing feature or undocumented |
+| | @storybook/blocks/Title | [See current documentation](./api/doc-blocks/doc-block-title.mdx) | Non existing feature or undocumented | Non existing feature or undocumented |
+| | @storybook/blocks/Typeset | [See current documentation](./api/doc-blocks/doc-block-typeset.mdx) | Non existing feature or undocumented | Non existing feature or undocumented |
+| | @storybook/blocks/Unstyled | [See current documentation](./api/doc-blocks/doc-block-unstyled.mdx) | Non existing feature or undocumented | Non existing feature or undocumented |
+| | @storybook/blocks/useOf | [See current documentation](./api/doc-blocks/doc-block-useof.mdx) | Non existing feature or undocumented | Non existing feature or undocumented |
+| | Stories/Component Story Format (see note below) | [See current documentation](./api/csf.mdx) | [See versioned documentation](https://github.com/storybookjs/storybook/tree/release/5.3/docs/src/pages/formats/component-story-format) | Non existing feature or undocumented |
+| | ArgTypes | [See current documentation](./api/arg-types.mdx) | Non existing feature or undocumented | Non existing feature or undocumented |
+| | `main.js` configuration/Overview | [See current documentation](./api/main-config/main-config.mdx) | Non existing feature or undocumented | Non existing feature or undocumented |
+| | `main.js` configuration/framework | [See current documentation](./api/main-config/main-config-framework.mdx) | Non existing feature or undocumented | Non existing feature or undocumented |
+| | `main.js` configuration/stories | [See current documentation](./api/main-config/main-config-stories.mdx) | Non existing feature or undocumented | Non existing feature or undocumented |
+| | `main.js` configuration/addons | [See current documentation](./api/main-config/main-config-addons.mdx) | Non existing feature or undocumented | Non existing feature or undocumented |
+| | `main.js` configuration/babel | [See current documentation](./api/main-config/main-config-babel.mdx) | Non existing feature or undocumented | Non existing feature or undocumented |
+| | `main.js` configuration/babelDefault | [See current documentation](./api/main-config/main-config-babel-default.mdx) | Non existing feature or undocumented | Non existing feature or undocumented |
+| | `main.js` configuration/build | [See current documentation](./api/main-config/main-config-build.mdx) | Non existing feature or undocumented | Non existing feature or undocumented |
+| | `main.js` configuration/core | [See current documentation](./api/main-config/main-config-core.mdx) | Non existing feature or undocumented | Non existing feature or undocumented |
+| | `main.js` configuration/docs | [See current documentation](./api/main-config/main-config-docs.mdx) | Non existing feature or undocumented | Non existing feature or undocumented |
+| | `main.js` configuration/env | [See current documentation](./api/main-config/main-config-env.mdx) | Non existing feature or undocumented | Non existing feature or undocumented |
+| | `main.js` configuration/features | [See current documentation](./api/main-config/main-config-features.mdx) | Non existing feature or undocumented | Non existing feature or undocumented |
+| | `main.js` configuration/indexers | [See current documentation](./api/main-config/main-config-indexers.mdx) | Non existing feature or undocumented | Non existing feature or undocumented |
+| | `main.js` configuration/logLevel | [See current documentation](./api/main-config/main-config-log-level.mdx) | Non existing feature or undocumented | Non existing feature or undocumented |
+| | `main.js` configuration/managerHead | [See current documentation](./api/main-config/main-config-manager-head.mdx) | Non existing feature or undocumented | Non existing feature or undocumented |
+| | `main.js` configuration/previewAnnotations | [See current documentation](./api/main-config/main-config-preview-annotations.mdx) | Non existing feature or undocumented | Non existing feature or undocumented |
+| | `main.js` configuration/previewBody | [See current documentation](./api/main-config/main-config-preview-body.mdx) | Non existing feature or undocumented | Non existing feature or undocumented |
+| | `main.js` configuration/previewHead | [See current documentation](./api/main-config/main-config-preview-head.mdx) | Non existing feature or undocumented | Non existing feature or undocumented |
+| | `main.js` configuration/refs | [See current documentation](./api/main-config/main-config-refs.mdx) | Non existing feature or undocumented | Non existing feature or undocumented |
+| | `main.js` configuration/staticDirs | [See current documentation](./api/main-config/main-config-static-dirs.mdx) | Non existing feature or undocumented | Non existing feature or undocumented |
+| | `main.js` configuration/swc | [See current documentation](./api/main-config/main-config-swc.mdx) | Non existing feature or undocumented | Non existing feature or undocumented |
+| | `main.js` configuration/typescript | [See current documentation](./api/main-config/main-config-typescript.mdx) | Non existing feature or undocumented | Non existing feature or undocumented |
+| | `main.js` configuration/viteFinal | [See current documentation](./api/main-config/main-config-vite-final.mdx) | Non existing feature or undocumented | Non existing feature or undocumented |
+| | `main.js` configuration/webpackFinal | [See current documentation](./api/main-config/main-config-webpack-final.mdx) | Non existing feature or undocumented | Non existing feature or undocumented |
+| | Frameworks | [See current documentation](./api/new-frameworks.mdx) | Non existing feature or undocumented | Non existing feature or undocumented |
+| | CLI options | [See current documentation](./api/cli-options.mdx) | [See versioned documentation](https://github.com/storybookjs/storybook/tree/release/5.3/docs/src/pages/configurations/cli-options) | [See versioned documentation](https://github.com/storybookjs/storybook/tree/release/5.0/docs/src/pages/configurations/cli-options) |
If you have stories written with the older `storiesOf` format, it was removed in Storybook 8.0 and is no longer maintained. We recommend that you migrate your stories to CSF. See the [migration guide](./migration-guide/index.mdx#storiesof-to-csf) for more information. However, if you need, you can still access the old `storiesOf` [documentation](https://github.com/storybookjs/storybook/blob/release/5.3/docs/src/pages/formats/storiesof-api/index.mdx) for reference.
@@ -408,6 +410,7 @@ export default {
replace({
'process.env.NODE_ENV': JSON.stringify('development'),
}),
+ ]
};
```
diff --git a/docs/get-started/frameworks/angular.mdx b/docs/get-started/frameworks/angular.mdx
index ba755c40380d..57d2408b6c2c 100644
--- a/docs/get-started/frameworks/angular.mdx
+++ b/docs/get-started/frameworks/angular.mdx
@@ -361,23 +361,23 @@ Storybook for Angular is a [framework](../../contribute/framework.mdx) that make
These are common options you may need for the Angular builder:
- | Configuration element | Description |
- | ---------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
- | `"browserTarget"` | Build target to be served using the following format.
`"example-project:builder:config"` |
- | `"tsConfig"` | Location of the TypeScript configuration file, relative to the current workspace.
`"tsConfig": "./tsconfig.json"`. |
- | `"port"` | Port used by Storybook.
`"port": 6006` |
- | `"host"` | Set up a custom host for Storybook.
`"host": "http://my-custom-host"` |
- | `"configDir"` | Storybook configuration directory location.
`"configDir": ".storybook"` |
- | `"https"` | Starts Storybook with HTTPS enabled.
`"https": true`
Requires custom certificate information. |
- | `"sslCa"` | Provides an SSL certificate authority.
`"sslCa": "your-custom-certificate-authority"`
Optional usage with `"https"` |
- | `"sslCert"` | Provides an SSL certificate.
`"sslCert": "your-custom-certificate"`
Required for `https` |
- | `"sslKey"` | Provides an SSL key to serve Storybook.
`"sslKey": "your-ssl-key"` |
- | `"smokeTest"` | Exit Storybook after successful start.
`"smokeTest": true` |
- | `"ci"` | Starts Storybook in CI mode (skips interactive prompts and will not open browser window).
`"ci": true` |
- | `"quiet"` | Filters Storybook verbose build output.
`"quiet": true` |
- | `"docs"` | Starts Storybook in [documentation mode](../../writing-docs/build-documentation.mdx#preview-storybooks-documentation).
`"docs": true` |
- | `"styles"` | Provide the location of the [application's styles](../../configure/styling-and-css.mdx#importing-css-files) to be used with Storybook.
`"styles": ["src/styles.css", "src/styles.scss"]`
|
- | `"stylePreprocessorOptions"` | Provides further customization for style preprocessors resolved to the workspace root.
`"stylePreprocessorOptions": { "includePaths": ["src/styles"] }` |
+ | Configuration element | Description |
+ | ---------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+ | `"browserTarget"` | Build target to be served using the following format.
`"example-project:builder:config"` |
+ | `"tsConfig"` | Location of the TypeScript configuration file, relative to the current workspace.
`"tsConfig": "./tsconfig.json"`. |
+ | `"port"` | Port used by Storybook.
`"port": 6006` |
+ | `"host"` | Set up a custom host for Storybook.
`"host": "http://my-custom-host"` |
+ | `"configDir"` | Storybook configuration directory location.
`"configDir": ".storybook"` |
+ | `"https"` | Starts Storybook with HTTPS enabled.
`"https": true`
Requires custom certificate information. |
+ | `"sslCa"` | Provides an SSL certificate authority.
`"sslCa": "your-custom-certificate-authority"`
Optional usage with `"https"` |
+ | `"sslCert"` | Provides an SSL certificate.
`"sslCert": "your-custom-certificate"`
Required for `https` |
+ | `"sslKey"` | Provides an SSL key to serve Storybook.
`"sslKey": "your-ssl-key"` |
+ | `"smokeTest"` | Exit Storybook after successful start.
`"smokeTest": true` |
+ | `"ci"` | Starts Storybook in CI mode (skips interactive prompts and will not open browser window).
`"ci": true` |
+ | `"quiet"` | Filters Storybook verbose build output.
`"quiet": true` |
+ | `"docs"` | Starts Storybook in [documentation mode](../../writing-docs/build-documentation.mdx#preview-storybooks-documentation).
`"docs": true` |
+ | `"styles"` | Provide the location of the [application's styles](../../configure/styling-and-css.mdx#importing-css-files) to be used with Storybook.
`"styles": ["src/styles.css", "src/styles.scss"]` |
+ | `"stylePreprocessorOptions"` | Provides further customization for style preprocessors resolved to the workspace root.
`"stylePreprocessorOptions": { "includePaths": ["src/styles"] }` |
The full list of options can be found in the Angular builder schemas:
diff --git a/docs/get-started/frameworks/nextjs.mdx b/docs/get-started/frameworks/nextjs.mdx
index 1d749866d07a..e6322452d6a2 100644
--- a/docs/get-started/frameworks/nextjs.mdx
+++ b/docs/get-started/frameworks/nextjs.mdx
@@ -1001,7 +1001,7 @@ Storybook for Next.js is a [framework](../../contribute/framework.mdx) that make
Type: `Record`
- Configure options for the [framework's builder](../../api/main-config-framework.mdx#optionsbuilder). For Next.js, available options can be found in the [Webpack builder docs](../../builders/webpack.mdx).
+ Configure options for the [framework's builder](../../api/main-config/main-config-framework.mdx#optionsbuilder). For Next.js, available options can be found in the [Webpack builder docs](../../builders/webpack.mdx).
#### `image`
diff --git a/docs/get-started/frameworks/sveltekit.mdx b/docs/get-started/frameworks/sveltekit.mdx
index 3d017d2957b3..3480bdb4b8f0 100644
--- a/docs/get-started/frameworks/sveltekit.mdx
+++ b/docs/get-started/frameworks/sveltekit.mdx
@@ -87,10 +87,10 @@ Storybook for SvelteKit is a [framework](../../contribute/framework.mdx) that ma
| Module | Status | Note |
| ---------------------------------------------------------------------------------- | ---------------------- | --------------------------------------------------------------------------------------------------------------------------------------- |
| [`$app/environment`](https://kit.svelte.dev/docs/modules#$app-environment) | ✅ Supported | `version` is always empty in Storybook. |
- | [`$app/forms`](https://kit.svelte.dev/docs/modules#$app-forms) | ⚠️ **Experimental** | See [How to mock](#how-to-mock). |
- | [`$app/navigation`](https://kit.svelte.dev/docs/modules#$app-navigation) | ⚠️ **Experimental** | See [How to mock](#how-to-mock). |
+ | [`$app/forms`](https://kit.svelte.dev/docs/modules#$app-forms) | ⚠️ **Experimental** | See [How to mock](#how-to-mock). |
+ | [`$app/navigation`](https://kit.svelte.dev/docs/modules#$app-navigation) | ⚠️ **Experimental** | See [How to mock](#how-to-mock). |
| [`$app/paths`](https://kit.svelte.dev/docs/modules#$app-paths) | ✅ Supported | Requires SvelteKit 1.4.0 or newer. |
- | [`$app/stores`](https://kit.svelte.dev/docs/modules#$app-stores) | ⚠️ **Experimental** | See [How to mock](#how-to-mock). |
+ | [`$app/stores`](https://kit.svelte.dev/docs/modules#$app-stores) | ⚠️ **Experimental** | See [How to mock](#how-to-mock). |
| [`$env/dynamic/public`](https://kit.svelte.dev/docs/modules#$env-dynamic-public) | 🚧 Partially supported | Only supported in development mode. Storybook is built as a static app with no server-side API, so it cannot dynamically serve content. |
| [`$env/static/public`](https://kit.svelte.dev/docs/modules#$env-static-public) | ✅ Supported | |
| [`$lib`](https://kit.svelte.dev/docs/modules#$lib) | ✅ Supported | |
diff --git a/docs/get-started/frameworks/vue3-vite.mdx b/docs/get-started/frameworks/vue3-vite.mdx
index f4ca66a4e054..5aa98fad96c4 100644
--- a/docs/get-started/frameworks/vue3-vite.mdx
+++ b/docs/get-started/frameworks/vue3-vite.mdx
@@ -75,8 +75,7 @@ Storybook for Vue & Vite is a [framework](../../contribute/framework.mdx) that m
## Extending the Vue application
- Storybook creates a [Vue 3 application](https://vuejs.org/api/application.html#application-api) for your component preview.
- When using global custom components (`app.component`), directives (`app.directive`), extensions (`app.use`), or other application methods, you will need to configure those in the `./storybook/preview.js` file.
+ Storybook creates a [Vue 3 application](https://vuejs.org/api/application.html#application-api) for your component preview. When using global custom components (`app.component`), directives (`app.directive`), extensions (`app.use`), or other application methods, you will need to configure those in the `./storybook/preview.js` file.
Therefore, Storybook provides you with a `setup` function exported from this package, which receives as a callback your Storybook instance, which you can interact with and add your custom configuration.
diff --git a/docs/get-started/frameworks/vue3-webpack5.mdx b/docs/get-started/frameworks/vue3-webpack5.mdx
index 3c5d579ef5fb..a9f7f900720b 100644
--- a/docs/get-started/frameworks/vue3-webpack5.mdx
+++ b/docs/get-started/frameworks/vue3-webpack5.mdx
@@ -88,8 +88,7 @@ Storybook for Vue & Webpack is a [framework](../../contribute/framework.mdx) tha
## Extending the Vue application
- Storybook creates a [Vue 3 application](https://vuejs.org/api/application.html#application-api) for your component preview.
- When using global custom components (`app.component`), directives (`app.directive`), extensions (`app.use`), or other application methods, you will need to configure those in the `./storybook/preview.js` file.
+ Storybook creates a [Vue 3 application](https://vuejs.org/api/application.html#application-api) for your component preview. When using global custom components (`app.component`), directives (`app.directive`), extensions (`app.use`), or other application methods, you will need to configure those in the `./storybook/preview.js` file.
Therefore, Storybook provides you with a `setup` function exported from this package, which receives as a callback your Storybook instance, which you can interact with and add your custom configuration.
diff --git a/docs/get-started/install.mdx b/docs/get-started/install.mdx
index 4c9570c0c1af..3a01f4b75333 100644
--- a/docs/get-started/install.mdx
+++ b/docs/get-started/install.mdx
@@ -124,23 +124,23 @@ There are some noteworthy items here:
Out of the box, adding Storybook to an Angular project using the Angular CLI requires you to run the installation command from the root of the project or, if you're working with a monorepo environment, from the directory where the Angular configuration file (i.e., `angular.json`) is located as it will be used to set up the builder configuration necessary to run Storybook. However, if you need, you can extend the builder configuration to customize Storybook's behavior. Listed below are the supported options:
- | Configuration element | Description |
- | ---------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
- | `"browserTarget"` | Build target to be served using the following format.
`"example-project:builder:config"` |
- | `"tsConfig"` | Location of the TypeScript configuration file, relative to the current workspace.
`"tsConfig": "./tsconfig.json"`. |
- | `"port"` | Port used by Storybook.
`"port": 6006` |
- | `"host"` | Set up a custom host for Storybook.
`"host": "http://my-custom-host"` |
- | `"configDir"` | Storybook configuration directory location.
`"configDir": ".storybook"` |
- | `"https"` | Starts Storybook with HTTPS enabled.
`"https": true`
Requires custom certificate information. |
- | `"sslCa"` | Provides an SSL certificate authority.
`"sslCa": "your-custom-certificate-authority"`
Optional usage with `"https"` |
- | `"sslCert"` | Provides an SSL certificate.
`"sslCert": "your-custom-certificate"`
Required for `https` |
- | `"sslKey"` | Provides an SSL key to serve Storybook.
`"sslKey": "your-ssl-key"` |
- | `"smokeTest"` | Exit Storybook after successful start.
`"smokeTest": true` |
- | `"ci"` | Starts Storybook in CI mode (skips interactive prompts and will not open browser window).
`"ci": true` |
- | `"quiet"` | Filters Storybook verbose build output.
`"quiet": true` |
- | `"docs"` | Starts Storybook in [documentation mode](../writing-docs/build-documentation.mdx#preview-storybooks-documentation).
`"docs": true` |
+ | Configuration element | Description |
+ | ---------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+ | `"browserTarget"` | Build target to be served using the following format.
`"example-project:builder:config"` |
+ | `"tsConfig"` | Location of the TypeScript configuration file, relative to the current workspace.
`"tsConfig": "./tsconfig.json"`. |
+ | `"port"` | Port used by Storybook.
`"port": 6006` |
+ | `"host"` | Set up a custom host for Storybook.
`"host": "http://my-custom-host"` |
+ | `"configDir"` | Storybook configuration directory location.
`"configDir": ".storybook"` |
+ | `"https"` | Starts Storybook with HTTPS enabled.
`"https": true`
Requires custom certificate information. |
+ | `"sslCa"` | Provides an SSL certificate authority.
`"sslCa": "your-custom-certificate-authority"`
Optional usage with `"https"` |
+ | `"sslCert"` | Provides an SSL certificate.
`"sslCert": "your-custom-certificate"`
Required for `https` |
+ | `"sslKey"` | Provides an SSL key to serve Storybook.
`"sslKey": "your-ssl-key"` |
+ | `"smokeTest"` | Exit Storybook after successful start.
`"smokeTest": true` |
+ | `"ci"` | Starts Storybook in CI mode (skips interactive prompts and will not open browser window).
`"ci": true` |
+ | `"quiet"` | Filters Storybook verbose build output.
`"quiet": true` |
+ | `"docs"` | Starts Storybook in [documentation mode](../writing-docs/build-documentation.mdx#preview-storybooks-documentation).
`"docs": true` |
| `"styles"` | Provide the location of the [application's styles](../configure/styling-and-css.mdx#importing-css-files) to be used with Storybook.
`"styles": ["src/styles.css", "src/styles.scss"]`
|
- | `"stylePreprocessorOptions"` | Provides further customization for style preprocessors resolved to the workspace root.
`"stylePreprocessorOptions": { "includePaths": ["src/styles"] }` |
+ | `"stylePreprocessorOptions"` | Provides further customization for style preprocessors resolved to the workspace root.
`"stylePreprocessorOptions": { "includePaths": ["src/styles"] }` |
@@ -249,7 +249,7 @@ There are some noteworthy items here:
- * [Storybook's Web Components Webpack README](https://github.com/storybookjs/storybook/tree/next/code/frameworks/web-components-webpack55) for more information on how to set up Storybook in your Web Components project with Webpack 5.
+ * [Storybook's Web Components Webpack README](https://github.com/storybookjs/storybook/tree/next/code/frameworks/web-components-webpack5) for more information on how to set up Storybook in your Web Components project with Webpack 5.
* [Storybook's Web Components Vite README](https://github.com/storybookjs/storybook/tree/next/code/frameworks/web-components-vite) for more information on how to set up Storybook in your Web Components project with Vite.
* [Storybook's help documentation](https://storybook.js.org/community#support) to contact the community and ask for help.
diff --git a/docs/sharing/index.mdx b/docs/sharing/index.mdx
index ecf7f694eb3e..f5038e03d640 100644
--- a/docs/sharing/index.mdx
+++ b/docs/sharing/index.mdx
@@ -11,5 +11,5 @@ You have your components ready and tested. That's great! Now you want to make yo
* [Publish](./publish-storybook.mdx)
* [Embed](./embed.mdx)
* [Design integrations](./design-integrations.mdx)
-* [Composition](./composition.mdx)
+* [Composition](./storybook-composition.mdx)
* [Package Composition](./package-composition.mdx)
diff --git a/docs/sharing/storybook-composition.mdx b/docs/sharing/storybook-composition.mdx
index fbe51d21ec08..c2e7d34ccc36 100644
--- a/docs/sharing/storybook-composition.mdx
+++ b/docs/sharing/storybook-composition.mdx
@@ -71,5 +71,5 @@ If you're working with an outdated Storybook version or have a project-specific
{/* prettier-ignore-end */}
- The usage of a specific version of the CLI is intended as the `extract` command is not available in Storybook 8.0 or higher. It also requires you to provide additional configuration to generate the `index.json` file accurately. See the [previous documentation](../../../release-7-5/docs/sharing/storybook-composition.mdx) for more information.
+ The usage of a specific version of the CLI is intended as the `extract` command is not available in Storybook 8.0 or higher. It also requires you to provide additional configuration to generate the `index.json` file accurately. See the [previous documentation](../../../release-7-6/docs/sharing/storybook-composition.mdx) for more information.
diff --git a/docs/versions/latest.json b/docs/versions/latest.json
index f2b7dba133dd..bc9c7b4e27d2 100644
--- a/docs/versions/latest.json
+++ b/docs/versions/latest.json
@@ -1 +1 @@
-{"version":"8.1.0","info":{"plain":"- Automigration: Improve react-docgen automigration prompt - [#27106](https://github.com/storybookjs/storybook/pull/27106), thanks @valentinpalkovic!\n- Typescript: Add types for `experimental-playwright` entries without `type:bundler` - [#27107](https://github.com/storybookjs/storybook/pull/27107), thanks @ndelangen!"}}
+{"version":"8.2.0","info":{"plain":""}}
diff --git a/docs/versions/next.json b/docs/versions/next.json
index 48aca2881c44..5ca4ed6ffcb7 100644
--- a/docs/versions/next.json
+++ b/docs/versions/next.json
@@ -1 +1 @@
-{"version":"8.2.0-beta.2","info":{"plain":"- Addon Onboarding: Trigger onboarding during init for Vue and Angular projects - [#28482](https://github.com/storybookjs/storybook/pull/28482), thanks @ghengeveld!\n- CLI: Prebundle get-npm-tarball-url and @ndelangen/get-tarball - [#28481](https://github.com/storybookjs/storybook/pull/28481), thanks @ndelangen!"}}
+{"version":"8.3.0-alpha.0","info":{"plain":""}}
diff --git a/docs/writing-docs/autodocs.mdx b/docs/writing-docs/autodocs.mdx
index b2e1590309c8..b78935a1a2b3 100644
--- a/docs/writing-docs/autodocs.mdx
+++ b/docs/writing-docs/autodocs.mdx
@@ -59,8 +59,8 @@ In addition to enabling the feature with `tags`, you can extend your Storybook c
{/* prettier-ignore-end */}
-| Option | Description |
-| ------------- | ---------------------------------------------------------------------------------------------------- |
+| Option | Description |
+| ------------- | ----------------------------------------------------------------------------------------------------- |
| `defaultName` | Renames the auto-generated documentation page
Default: `docs: { defaultName: 'Documentation' }` |
### Write a custom template
@@ -105,7 +105,9 @@ Then you can use it in your `.storybook/preview.js` or an individual story file
{/* prettier-ignore-end */}
+
If you only need to override the documentation page for a single component, we recommend creating an MDX file and referencing it directly via the `` Doc Block.
+
### Generate a table of contents
@@ -122,17 +124,19 @@ Storybook's auto-generated documentation pages can be quite long and difficult t
By default, the table of contents on the documentation page will only show the `h3` headings that are automatically generated. However, if you want to customize the table of contents, you can add more parameters to the `toc` property. The following options and examples of how to use them are available.
-| Option | Description |
-| --------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
-| `contentsSelector` | Defines the container's CSS selector for search for the headings
`toc: { contentsSelector: '.sbdocs-content' }` |
-| `disable` | Hides the table of contents for the documentation pages
`toc: { disable: true }` |
-| `headingSelector` | Defines the list of headings to feature in the table of contents
`toc: { headingSelector: 'h1, h2, h3' }` |
-| `ignoreSelector` | Configures the table of contents to ignore specific headings or stories. By default, the table of contents will ignore all content placed within Story blocks
`toc: { ignoreSelector: '.docs-story h2' }` |
+| Option | Description |
+| --------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| `contentsSelector` | Defines the container's CSS selector for search for the headings
`toc: { contentsSelector: '.sbdocs-content' }` |
+| `disable` | Hides the table of contents for the documentation pages
`toc: { disable: true }` |
+| `headingSelector` | Defines the list of headings to feature in the table of contents
`toc: { headingSelector: 'h1, h2, h3' }` |
+| `ignoreSelector` | Configures the table of contents to ignore specific headings or stories. By default, the table of contents will ignore all content placed within Story blocks
`toc: { ignoreSelector: '.docs-story h2' }` |
| `title` | Defines a title caption for the table of contents.
Accepts one of: `string`, `null`, React element
`toc: { title: 'Table of Contents' }` |
-| `unsafeTocbotOptions` | Provides additional [`TocBot`](https://tscanlin.github.io/tocbot/) configuration options
`toc: { unsafeTocbotOptions: { orderedList: true } }` |
+| `unsafeTocbotOptions` | Provides additional [`TocBot`](https://tscanlin.github.io/tocbot/) configuration options
`toc: { unsafeTocbotOptions: { orderedList: true } }` |
+
The `contentsSelector`, `headingSelector`, and `ignoreSelector` properties allow additional customization. For more information on using them, see the [`Tocbot` documentation](https://tscanlin.github.io/tocbot/).
+
{/* prettier-ignore-start */}
diff --git a/docs/writing-docs/doc-blocks.mdx b/docs/writing-docs/doc-blocks.mdx
index 6460c9eb0c69..27bdda8217fe 100644
--- a/docs/writing-docs/doc-blocks.mdx
+++ b/docs/writing-docs/doc-blocks.mdx
@@ -111,7 +111,9 @@ For example, you can filter out the `style` prop from all [`Controls`](../api/do
{/* prettier-ignore-end */}
+
Parameters can also be defined at the [component](../writing-stories/parameters.mdx#component-parameters) (or meta) level or the [story](../writing-stories/parameters.mdx#story-parameters) level, allowing you to customize Doc Blocks exactly as you need, where you need.
+
The blocks that accept customization via parameters are marked in the list of available blocks below.
@@ -133,7 +135,9 @@ Each block has a dedicated API reference page detailing usage, available options
### [ArgTypes](../api/doc-blocks/doc-block-argtypes.mdx)
+
Accepts parameters in the namespace `parameters.docs.argTypes`.
+
The `ArgTypes` block can be used to show a static table of [arg types](../api/arg-types.mdx) for a given component as a way to document its interface.
@@ -143,7 +147,9 @@ The `ArgTypes` block can be used to show a static table of [arg types](../api/ar
### [Canvas](../api/doc-blocks/doc-block-canvas.mdx)
+
Accepts parameters in the namespace `parameters.docs.canvas`.
+
The `Canvas` block is a wrapper around a [`Story`](../api/doc-blocks/doc-block-story.mdx), featuring a toolbar that allows you to interact with its content while automatically providing the required [`Source`](../api/doc-blocks/doc-block-source.mdx) snippets.
@@ -159,7 +165,9 @@ The `ColorPalette` block allows you to document all color-related items (e.g., s
### [Controls](../api/doc-blocks/doc-block-controls.mdx)
+
Accepts parameters in the namespace `parameters.docs.controls`.
+
The `Controls` block can be used to show a dynamic table of args for a given story, as a way to document its interface, and to allow you to change the args for a (separately) rendered story (via the [`Story`](../api/doc-blocks/doc-block-story.mdx) or [`Canvas`](../api/doc-blocks/doc-block-canvas.mdx) blocks).
@@ -200,7 +208,9 @@ The `Primary` block displays the primary (first defined in the stories file) sto
### [Source](../api/doc-blocks/doc-block-source.mdx)
+
Accepts parameters in the namespace `parameters.docs.source`.
+
The `Source` block is used to render a snippet of source code directly.
@@ -216,7 +226,9 @@ The `Stories` block renders the full collection of stories in a stories file.
### [Story](../api/doc-blocks/doc-block-story.mdx)
+
Accepts parameters in the namespace `parameters.docs.story`.
+
Stories (component tests) are Storybook's fundamental building blocks.
diff --git a/docs/writing-docs/index.mdx b/docs/writing-docs/index.mdx
index 5758a2c83a7f..8764a25c56fb 100644
--- a/docs/writing-docs/index.mdx
+++ b/docs/writing-docs/index.mdx
@@ -12,7 +12,7 @@ Storybook gives you tools to expand this essential documentation with prose and
![Docs page](../_assets/writing-docs/docs-completed.png)
-If you're including Storybook in your project for the [first time](../get-started/index.mdx), we provide you with a [documentation page](./autodocs.mdx) ("Autodocs" for short), positioned near your stories. It's a baseline template automatically generated, listing your existing stories and relevant metadata.
+If you're including Storybook in your project for the [first time](../get-started/install.mdx), we provide you with a [documentation page](./autodocs.mdx) ("Autodocs" for short), positioned near your stories. It's a baseline template automatically generated, listing your existing stories and relevant metadata.
Additionally, you can customize this template if needed or create free-form pages for each component using [MDX](./mdx.mdx). In both cases, you’ll use Doc Blocks as the building blocks to create full-featured documentation.
diff --git a/docs/writing-docs/mdx.mdx b/docs/writing-docs/mdx.mdx
index 1810901e7c7f..2f73ab8fb2d3 100644
--- a/docs/writing-docs/mdx.mdx
+++ b/docs/writing-docs/mdx.mdx
@@ -14,7 +14,9 @@ In addition, you can write pure documentation pages in MDX and add them to Story
![MDX simple example result](../_assets/writing-docs/mdx-hero.png)
- Writing stories directly in MDX was removed in Storybook 8, and we're no longer supporting it. Please reference the [previous documentation](../../../release-6-5/docs/writing-docs/mdx.mdx) for guidance on that feature or [migrate](../migration-guide.mdx#storiesmdx-to-mdxcsf) to the new format.
+
+ Writing stories directly in MDX was removed in Storybook 8, and we're no longer supporting it. Please reference the [previous documentation](../../../release-6-5/docs/writing-docs/mdx.mdx) for guidance on that feature or [migrate](../migration-guide/index.mdx#storiesmdx-to-mdxcsf) to the new format.
+
## Basic example
@@ -163,7 +165,9 @@ However, providing the `Meta` Doc Block may not be required for certain use case
{/* prettier-ignore-end */}
+
If you're overriding an existing auto-generated documentation page enabled via [`tags`](./autodocs.mdx#setup-automated-docs) configuration property, we recommend removing it to avoid errors.
+
Once the custom MDX documentation is loaded, Storybook will infer the title and location using the same heuristic rules to generate [auto-title stories](../configure/user-interface/sidebar-and-urls.mdx#csf-30-auto-titles) and render it in the sidebar as a `Docs` entry.
diff --git a/docs/writing-stories/args.mdx b/docs/writing-stories/args.mdx
index 253f5ea088d0..94b12059142d 100644
--- a/docs/writing-stories/args.mdx
+++ b/docs/writing-stories/args.mdx
@@ -11,7 +11,7 @@ A story is a component with a set of arguments that define how the component sho
When an arg’s value changes, the component re-renders, allowing you to interact with components in Storybook’s UI via addons that affect args.
-Learn how and why to write stories in [the introduction](./index.mdx#using-args). For details on how args work, read on.
+Learn how and why to write stories in [the introduction](./index.mdx). For details on how args work, read on.
## Args object
diff --git a/docs/writing-stories/decorators.mdx b/docs/writing-stories/decorators.mdx
index 2fa694d114ab..e155bcb33002 100644
--- a/docs/writing-stories/decorators.mdx
+++ b/docs/writing-stories/decorators.mdx
@@ -31,7 +31,7 @@ The second argument to a decorator function is the **story context** which conta
* `args` - the story arguments. You can use some [`args`](./args.mdx) in your decorators and drop them in the story implementation itself.
* `argTypes`- Storybook's [argTypes](../api/arg-types.mdx) allow you to customize and fine-tune your stories [`args`](./args.mdx).
-* `globals` - Storybook-wide [globals](../essentials/toolbars-and-globals.mdx#globals). In particular you can use the [toolbars feature](../essentials/toolbars-and-globals.mdx#global-types-toolbar-annotations) to allow you to change these values using Storybook’s UI.
+* `globals` - Storybook-wide [globals](../essentials/toolbars-and-globals.mdx#globals). In particular you can use the [toolbars feature](../essentials/toolbars-and-globals.mdx#global-types-and-the-toolbar-annotation) to allow you to change these values using Storybook’s UI.
* `hooks` - Storybook's API hooks (e.g., useArgs).
* `parameters`- the story's static metadata, most commonly used to control Storybook's behavior of features and addons.
* `viewMode`- Storybook's current active window (e.g., canvas, docs).
diff --git a/docs/writing-stories/index.mdx b/docs/writing-stories/index.mdx
index ef1e0f88fd76..72ec0bf088da 100644
--- a/docs/writing-stories/index.mdx
+++ b/docs/writing-stories/index.mdx
@@ -39,7 +39,9 @@ The *default* export metadata controls how Storybook lists your stories and prov
{/* prettier-ignore-end */}
+
Starting with Storybook version 7.0, story titles are analyzed statically as part of the build process. The *default* export must contain a `title` property that can be read statically or a `component` property from which an automatic title can be computed. Using the `id` property to customize your story URL must also be statically readable.
+
### Defining stories
diff --git a/docs/writing-stories/tags.mdx b/docs/writing-stories/tags.mdx
index 7a1f7fe9da5b..25459a84ba59 100644
--- a/docs/writing-stories/tags.mdx
+++ b/docs/writing-stories/tags.mdx
@@ -11,10 +11,10 @@ Tags allow you to control which stories are included in your Storybook, enabling
The following tags are available in every Storybook project:
-| Tag | Applied by default? | Description |
-| ---------- | ----------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
+| Tag | Applied by default? | Description |
+| ---------- | ----------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `autodocs` | No | Stories tagged with `autodocs` will be included in the [docs page](../writing-docs/autodocs.mdx). If a CSF file does not contain at least one story tagged with `autodocs`, that component will not generate a docs page. |
-| `dev` | Yes | Stories tagged with `dev` are rendered in Storybook's sidebar. |
+| `dev` | Yes | Stories tagged with `dev` are rendered in Storybook's sidebar. |
| `test` | Yes | Stories tagged with `test` do not currently affect Storybook's UI, but can be used to filter the [test runner](../writing-tests/test-runner.mdx#run-tests-for-a-subset-of-stories). |
The `dev` and `test` tags are automatically, implicitly applied to every story in your Storybook project.
diff --git a/docs/writing-stories/typescript.mdx b/docs/writing-stories/typescript.mdx
index 4340ffd8e274..e590b6d7ed3a 100644
--- a/docs/writing-stories/typescript.mdx
+++ b/docs/writing-stories/typescript.mdx
@@ -90,7 +90,7 @@ Sometimes stories need to define args that aren’t included in the component's
### Svelte specific tips
- Svelte offers excellent TypeScript support for .svelte files. For example, consider the following component. You can run type checks using svelte-check and add VSCode editor support with the [Svelte for VSCode extension](https://marketplace.visualstudio.com/items?itemName=svelte.svelte-vscode\&ssr=false#overview).
+ Svelte offers excellent TypeScript support for .svelte files. For example, consider the following component. You can run type checks using svelte-check and add VSCode editor support with the [Svelte for VSCode extension](https://marketplace.visualstudio.com/items?itemName=svelte.svelte-vscode).
```html