diff --git a/.circleci/config.yml b/.circleci/config.yml index 6db12bf41959..e3f8ef172a8d 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -504,19 +504,19 @@ workflows: requires: - unit-tests - create-sandboxes: - parallelism: 14 + parallelism: 13 requires: - build - build-sandboxes: - parallelism: 14 + parallelism: 13 requires: - create-sandboxes - chromatic-sandboxes: - parallelism: 11 + parallelism: 10 requires: - build-sandboxes - e2e-production: - parallelism: 9 + parallelism: 8 requires: - build-sandboxes - e2e-dev: @@ -524,7 +524,7 @@ workflows: requires: - create-sandboxes - test-runner-production: - parallelism: 9 + parallelism: 8 requires: - build-sandboxes - bench: @@ -560,19 +560,19 @@ workflows: requires: - unit-tests - create-sandboxes: - parallelism: 21 + parallelism: 20 requires: - build - build-sandboxes: - parallelism: 21 + parallelism: 20 requires: - create-sandboxes - chromatic-sandboxes: - parallelism: 18 + parallelism: 17 requires: - build-sandboxes - e2e-production: - parallelism: 16 + parallelism: 15 requires: - build-sandboxes - e2e-dev: @@ -580,7 +580,7 @@ workflows: requires: - create-sandboxes - test-runner-production: - parallelism: 16 + parallelism: 15 requires: - build-sandboxes - bench: @@ -614,22 +614,22 @@ workflows: requires: - build - create-sandboxes: - parallelism: 36 + parallelism: 34 requires: - build # - smoke-test-sandboxes: # disabled for now # requires: # - create-sandboxes - build-sandboxes: - parallelism: 36 + parallelism: 34 requires: - create-sandboxes - chromatic-sandboxes: - parallelism: 33 + parallelism: 31 requires: - build-sandboxes - e2e-production: - parallelism: 31 + parallelism: 29 requires: - build-sandboxes - e2e-dev: @@ -637,7 +637,7 @@ workflows: requires: - create-sandboxes - test-runner-production: - parallelism: 31 + parallelism: 29 requires: - build-sandboxes # TODO: reenable once we find out the source of flakyness diff --git a/Issue.md b/Issue.md deleted file mode 100644 index a56a5a902dc1..000000000000 --- a/Issue.md +++ /dev/null @@ -1,67 +0,0 @@ -*What:* -We want to step our TS game in the monorepo and enable strict typescript in all packages! - -*Why:* -Having TS track for you if a variable might be null or not, enables us to code with much more confidence, -and also gives us quick in editor feedback, when you make assumptions that are not actually true! - -*How:* -We would like to change as little as possible of the actual runtime behavior in this migration. -However, we also don't want to simply silence the compiler everywhere with `!`, `as` or `ts-ignore` to get this migration in. -As a rule of thumb, if the logic is easy enough, prefer improving the code (e.g. add a null check) over silencing the compiler. -If the change needed to do the right thing, is too risky, and not in your expertise, it is okay to silence the compiler. -It is not ideal, but we still gain the benefit that new code written will have extra typesafety. - -Feel free to contribute too any of packages in the list below! - -- [ ] @storybook/addon-backgrounds -- [ ] @storybook/addon-docs -- [ ] @storybook/addon-highlight -- [ ] @storybook/addon-interactions -- [ ] @storybook/addon-jest -- [ ] @storybook/addon-mdx-gfm -- [ ] @storybook/addon-measure -- [ ] @storybook/addon-outline -- [ ] @storybook/addon-storyshots -- [ ] @storybook/addon-storyshots-puppeteer -- [ ] @storybook/addon-storysource -- [ ] @storybook/addon-viewport -- [ ] @storybook/addons -- [ ] @storybook/angular -- [ ] @storybook/api -- [ ] @storybook/blocks -- [ ] @storybook/channel-postmessage -- [ ] @storybook/channel-websocket -- [ ] @storybook/channels -- [ ] @storybook/cli -- [ ] @storybook/client-api -- [ ] @storybook/codemod -- [ ] @storybook/components -- [ ] @storybook/core-client -- [ ] @storybook/core-events -- [ ] @storybook/core-server -- [ ] @storybook/csf-tools -- [ ] @storybook/docs-tools -- [ ] @storybook/external-docs -- [ ] @storybook/html-vite -- [ ] @storybook/instrumenter -- [ ] @storybook/manager -- [ ] @storybook/manager-api -- [ ] @storybook/postinstall -- [ ] @storybook/preact-vite -- [ ] @storybook/preset-create-react-app -- [ ] @storybook/preset-vue-webpack -- [ ] @storybook/preset-vue3-webpack -- [ ] @storybook/react-vite -- [ ] @storybook/router -- [ ] @storybook/scripts -- [ ] @storybook/server -- [ ] @storybook/source-loader -- [ ] @storybook/svelte-vite -- [ ] @storybook/sveltekit -- [ ] @storybook/theming -- [ ] @storybook/types -- [ ] @storybook/vue3-vite -- [ ] @storybook/vue3-webpack5 -- [ ] @storybook/web-components -- [ ] @storybook/web-components-vite diff --git a/MIGRATION.md b/MIGRATION.md index 846c89718b3c..ae382420f682 100644 --- a/MIGRATION.md +++ b/MIGRATION.md @@ -10,6 +10,9 @@ - [New UI and props for Button and IconButton components](#new-ui-and-props-for-button-and-iconbutton-components) - [Icons is deprecated](#icons-is-deprecated) - [React-docgen component analysis by default](#react-docgen-component-analysis-by-default) + - [Framework-specific changes](#framework-specific-changes) + - [Angular: Drop support for Angular \< 15](#angular-drop-support-for-angular--15) + - [Next.js: Drop support for version \< 13.5](#nextjs-drop-support-for-version--135) - [From version 7.5.0 to 7.6.0](#from-version-750-to-760) - [CommonJS with Vite is deprecated](#commonjs-with-vite-is-deprecated) - [Using implicit actions during rendering is deprecated](#using-implicit-actions-during-rendering-is-deprecated) @@ -460,6 +463,16 @@ export default { For more information see: https://storybook.js.org/docs/react/api/main-config-typescript#reactdocgen +### Framework-specific changes + +#### Angular: Drop support for Angular \< 15 + +Starting in 8.0, we drop support for Angular < 15 + +#### Next.js: Drop support for version \< 13.5 + +Starting in 8.0, we drop support for Next.js < 13.5. + ## From version 7.5.0 to 7.6.0 #### CommonJS with Vite is deprecated diff --git a/README.md b/README.md index 820c663970f0..7c174bdcc250 100644 --- a/README.md +++ b/README.md @@ -131,7 +131,6 @@ For additional help, share your issue in [the repo's GitHub Discussions](https:/ | [measure](code/addons/measure/) | Visually inspect the layout and box model within the Storybook UI | | [outline](code/addons/outline/) | Visually debug the CSS layout and alignment within the Storybook UI | | [query params](https://github.com/storybookjs/addon-queryparams) | Mock query params | -| [storyshots](code/addons/storyshots-core/) | Snapshot testing for components in Storybook | | [storysource](code/addons/storysource/) | View the code of your stories within the Storybook UI | | [viewport](code/addons/viewport/) | Change display sizes and layouts for responsive components using Storybook | @@ -139,13 +138,14 @@ See [Addon / Framework Support Table](https://storybook.js.org/docs/react/api/fr ### Deprecated Addons -| Addons | | -| ---------------------------------------------------------------------------------- | ---------------------------------------------------------- | -| [contexts](https://storybook.js.org/addons/@storybook/addon-contexts/) | Addon for driving your components under dynamic contexts | -| [info](https://github.com/storybookjs/deprecated-addons/tree/master/addons/info) | Annotate stories with extra component usage information | -| [knobs](https://github.com/storybookjs/addon-knobs) | Interactively edit component prop data in the Storybook UI | -| [notes](https://github.com/storybookjs/deprecated-addons/tree/master/addons/notes) | Annotate Storybook stories with notes | -| [options](https://www.npmjs.com/package/@storybook/addon-options) | Customize the Storybook UI in code | +| Addons | | +| -------------------------------------------------------------------------------------------- | ---------------------------------------------------------- | +| [contexts](https://storybook.js.org/addons/@storybook/addon-contexts/) | Addon for driving your components under dynamic contexts | +| [info](https://github.com/storybookjs/deprecated-addons/tree/master/addons/info) | Annotate stories with extra component usage information | +| [knobs](https://github.com/storybookjs/addon-knobs) | Interactively edit component prop data in the Storybook UI | +| [notes](https://github.com/storybookjs/deprecated-addons/tree/master/addons/notes) | Annotate Storybook stories with notes | +| [options](https://www.npmjs.com/package/@storybook/addon-options) | Customize the Storybook UI in code | +| [storyshots](https://github.com/storybookjs/storybook/tree/main/code/addons/storyshots-core) | Snapshot testing for components in Storybook | To continue improving your experience, we have to eventually deprecate certain addons in favor of new and better tools. diff --git a/code/addons/essentials/package.json b/code/addons/essentials/package.json index d45b5d4961c9..0f563cfe599f 100644 --- a/code/addons/essentials/package.json +++ b/code/addons/essentials/package.json @@ -76,7 +76,6 @@ "ts-dedent": "^2.0.0" }, "devDependencies": { - "@storybook/vue": "workspace:*", "typescript": "^5.3.2" }, "peerDependencies": { diff --git a/code/addons/storysource/package.json b/code/addons/storysource/package.json index 8f657c2e4d86..bc3b9988dfff 100644 --- a/code/addons/storysource/package.json +++ b/code/addons/storysource/package.json @@ -47,6 +47,7 @@ "prep": "node --loader ../../../scripts/node_modules/esbuild-register/loader.js -r ../../../scripts/node_modules/esbuild-register/register.js ../../../scripts/prepare/addon-bundle.ts" }, "dependencies": { + "@storybook/source-loader": "workspace:*", "estraverse": "^5.2.0", "tiny-invariant": "^1.3.1" }, @@ -56,7 +57,6 @@ "@storybook/manager-api": "workspace:*", "@storybook/preview-api": "workspace:*", "@storybook/router": "workspace:*", - "@storybook/source-loader": "workspace:*", "@storybook/theming": "workspace:*", "@types/react": "^18.0.37", "@types/react-syntax-highlighter": "11.0.5", diff --git a/code/addons/viewport/package.json b/code/addons/viewport/package.json index 80d650b26432..6457e61189e0 100644 --- a/code/addons/viewport/package.json +++ b/code/addons/viewport/package.json @@ -30,8 +30,6 @@ "import": "./dist/index.mjs" }, "./manager": "./dist/manager.js", - "./preview": "./dist/preview.ts", - "./register": "./dist/manager.js", "./package.json": "./package.json" }, "main": "dist/index.js", @@ -74,9 +72,6 @@ ], "managerEntries": [ "./src/manager.tsx" - ], - "previewEntries": [ - "./src/preview.ts" ] }, "gitHead": "e6a7fd8a655c69780bc20b9749c2699e44beae17", diff --git a/code/addons/viewport/src/index.ts b/code/addons/viewport/src/index.ts index 832595462640..79e0216d7923 100644 --- a/code/addons/viewport/src/index.ts +++ b/code/addons/viewport/src/index.ts @@ -1,4 +1,2 @@ -export * from './constants'; export * from './defaults'; -export * from './models'; -export * from './shortcuts'; +export type * from './models'; diff --git a/code/addons/viewport/src/models/index.ts b/code/addons/viewport/src/models/index.ts index 0cc15c61f914..7eb7ed1a6942 100644 --- a/code/addons/viewport/src/models/index.ts +++ b/code/addons/viewport/src/models/index.ts @@ -1,2 +1,2 @@ -export * from './Viewport'; -export * from './ViewportAddonParameter'; +export type * from './Viewport'; +export type * from './ViewportAddonParameter'; diff --git a/code/addons/viewport/src/preview.ts b/code/addons/viewport/src/preview.ts deleted file mode 100644 index 05f32144967d..000000000000 --- a/code/addons/viewport/src/preview.ts +++ /dev/null @@ -1 +0,0 @@ -export { INITIAL_VIEWPORTS, DEFAULT_VIEWPORT, MINIMAL_VIEWPORTS } from './defaults'; diff --git a/code/e2e-tests/addon-actions.spec.ts b/code/e2e-tests/addon-actions.spec.ts index 520c2b5dc41f..a9f32e61c022 100644 --- a/code/e2e-tests/addon-actions.spec.ts +++ b/code/e2e-tests/addon-actions.spec.ts @@ -3,9 +3,16 @@ import process from 'process'; import { SbPage } from './util'; const storybookUrl = process.env.STORYBOOK_URL || 'http://localhost:8001'; +const templateName = process.env.STORYBOOK_TEMPLATE_NAME || ''; test.describe('addon-actions', () => { test('should trigger an action', async ({ page }) => { + // eslint-disable-next-line jest/no-disabled-tests + test.skip( + // eslint-disable-next-line jest/valid-title + templateName.includes('svelte') && templateName.includes('prerelease'), + 'Svelte 5 prerelase does not support automatic actions with our current example components yet' + ); await page.goto(storybookUrl); const sbPage = new SbPage(page); sbPage.waitUntilLoaded(); diff --git a/code/e2e-tests/addon-docs.spec.ts b/code/e2e-tests/addon-docs.spec.ts index 30babefa2280..7edd143360ab 100644 --- a/code/e2e-tests/addon-docs.spec.ts +++ b/code/e2e-tests/addon-docs.spec.ts @@ -122,9 +122,6 @@ test.describe('addon-docs', () => { // - template: https://638db567ed97c3fb3e21cc22-ulhjwkqzzj.chromatic.com/?path=/docs/addons-docs-docspage-basic--docs // - real: https://638db567ed97c3fb3e21cc22-ulhjwkqzzj.chromatic.com/?path=/docs/example-button--docs 'lit-vite', - // Vue doesn't update when you change args, apparently fixed by this: - // https://github.com/storybookjs/storybook/pull/20995 - 'vue2-vite', ]; test.skip( new RegExp(`^${skipped.join('|')}`, 'i').test(`${templateName}`), diff --git a/code/frameworks/angular/package.json b/code/frameworks/angular/package.json index bdc500c756e2..a170d98da10c 100644 --- a/code/frameworks/angular/package.json +++ b/code/frameworks/angular/package.json @@ -65,18 +65,18 @@ "webpack": "5" }, "devDependencies": { - "@angular-devkit/architect": "^0.1600.0-rc.4", - "@angular-devkit/build-angular": "^16.0.0-rc.4", - "@angular-devkit/core": "^16.0.0-rc.4", - "@angular/animations": "^16.0.0-rc.4", - "@angular/cli": "^16.0.0-rc.4", - "@angular/common": "^16.0.0-rc.4", - "@angular/compiler": "^16.0.0-rc.4", - "@angular/compiler-cli": "^16.0.0-rc.4", - "@angular/core": "^16.0.0-rc.4", - "@angular/forms": "^16.0.0-rc.4", - "@angular/platform-browser": "^16.0.0-rc.4", - "@angular/platform-browser-dynamic": "^16.0.0-rc.4", + "@angular-devkit/architect": "^0.1700.5", + "@angular-devkit/build-angular": "^17.0.5", + "@angular-devkit/core": "^17.0.5", + "@angular/animations": "^17.0.5", + "@angular/cli": "^17.0.5", + "@angular/common": "^17.0.5", + "@angular/compiler": "^17.0.5", + "@angular/compiler-cli": "^17.0.5", + "@angular/core": "^17.0.5", + "@angular/forms": "^17.0.5", + "@angular/platform-browser": "^17.0.5", + "@angular/platform-browser-dynamic": "^17.0.5", "@types/cross-spawn": "^6.0.2", "@types/tmp": "^0.2.3", "cross-spawn": "^7.0.3", @@ -86,20 +86,20 @@ "tmp": "^0.2.1", "typescript": "^5.3.2", "webpack": "5", - "zone.js": "^0.13.0" + "zone.js": "^0.14.2" }, "peerDependencies": { - "@angular-devkit/architect": ">=0.1400.0 < 0.1800.0", - "@angular-devkit/build-angular": ">=14.1.0 < 18.0.0", - "@angular-devkit/core": ">=14.1.0 < 18.0.0", - "@angular/cli": ">=14.1.0 < 18.0.0", - "@angular/common": ">=14.1.0 < 18.0.0", - "@angular/compiler": ">=14.1.0 < 18.0.0", - "@angular/compiler-cli": ">=14.1.0 < 18.0.0", - "@angular/core": ">=14.1.0 < 18.0.0", - "@angular/forms": ">=14.1.0 < 18.0.0", - "@angular/platform-browser": ">=14.1.0 < 18.0.0", - "@angular/platform-browser-dynamic": ">=14.1.0 < 18.0.0", + "@angular-devkit/architect": ">=0.1500.0 < 0.1800.0", + "@angular-devkit/build-angular": ">=15.0.0 < 18.0.0", + "@angular-devkit/core": ">=15.0.0 < 18.0.0", + "@angular/cli": ">=15.0.0 < 18.0.0", + "@angular/common": ">=15.0.0 < 18.0.0", + "@angular/compiler": ">=15.0.0 < 18.0.0", + "@angular/compiler-cli": ">=15.0.0 < 18.0.0", + "@angular/core": ">=15.0.0 < 18.0.0", + "@angular/forms": ">=15.0.0 < 18.0.0", + "@angular/platform-browser": ">=15.0.0 < 18.0.0", + "@angular/platform-browser-dynamic": ">=15.0.0 < 18.0.0", "@babel/core": "*", "rxjs": "^6.0.0 || ^7.4.0", "typescript": "^4.0.0 || ^5.0.0", diff --git a/code/frameworks/nextjs/README.md b/code/frameworks/nextjs/README.md index 252fb329167d..5875aa6b92be 100644 --- a/code/frameworks/nextjs/README.md +++ b/code/frameworks/nextjs/README.md @@ -40,6 +40,7 @@ - [Runtime Config](#runtime-config) - [Custom Webpack Config](#custom-webpack-config) - [Typescript](#typescript) + - [Experimental React Server Components (RSC)](#experimental-react-server-components-rsc) - [Notes for Yarn v2 and v3 users](#notes-for-yarn-v2-and-v3-users) - [FAQ](#faq) - [Stories for pages/components which fetch data](#stories-for-pagescomponents-which-fetch-data) @@ -268,7 +269,6 @@ The following features are not supported (yet). Support for these features might - [Support font loaders configuration in next.config.js](https://nextjs.org/docs/basic-features/font-optimization#specifying-a-subset) - [fallback](https://nextjs.org/docs/api-reference/next/font#fallback) option - [adjustFontFallback](https://nextjs.org/docs/api-reference/next/font#adjustfontfallback) option -- [declarations](https://nextjs.org/docs/api-reference/next/font#declarations) option - [preload](https://nextjs.org/docs/api-reference/next/font#preload) option gets ignored. Storybook handles Font loading its own way. - [display](https://nextjs.org/docs/api-reference/next/font#display) option gets ignored. All fonts are loaded with display set to "block" to make Storybook load the font properly. @@ -909,6 +909,39 @@ Storybook handles most [Typescript](https://www.typescriptlang.org/) configurati } ``` +### Experimental React Server Components (RSC) + +If your app uses [React Server Components (RSC)](https://nextjs.org/docs/app/building-your-application/rendering/server-components), Storybook can render them in stories in the browser. + +To enable this set the `experimentalNextRSC` feature flag in your `.storybook/main.js` config: + +```js +// main.js +export default { + features: { + experimentalNextRSC: true, + }, +}; +``` + +Setting this flag automatically wraps your story in a [Suspense](https://react.dev/reference/react/Suspense) wrapper, which is able to render asynchronous components in NextJS's version of React. + +If this wrapper causes problems in any of your existing stories, you can selectively disable it using the `nextjs.rsc` [parameter](https://storybook.js.org/docs/writing-stories/parameters) at the global/component/story level: + +```js +// MyServerComponent.stories.js +export default { + component: MyServerComponent, + parameters: { nextjs: { rsc: false } }, +}; +``` + +Note that wrapping your server components in Suspense does not help if your server components access server-side resources like the file system or Node-specific libraries. To deal work around this, you'll need to mock out your data access layer using [Webpack aliases](https://webpack.js.org/configuration/resolve/#resolvealias) or an addon like [storybook-addon-module-mock](https://storybook.js.org/addons/storybook-addon-module-mock). + +If your server components access data via the network, we recommend using the [MSW Storybook Addon](https://storybook.js.org/addons/msw-storybook-addon) to mock network requests. + +In the future we will provide better mocking support in Storybook and support for [Server Actions](https://nextjs.org/docs/app/api-reference/functions/server-actions). + ### Notes for Yarn v2 and v3 users If you're using [Yarn](https://yarnpkg.com/) v2 or v3, you may run into issues where Storybook can't resolve `style-loader` or `css-loader`. For example, you might get errors like: diff --git a/code/frameworks/nextjs/package.json b/code/frameworks/nextjs/package.json index c0318bdc95d9..46fd2faac332 100644 --- a/code/frameworks/nextjs/package.json +++ b/code/frameworks/nextjs/package.json @@ -32,16 +32,6 @@ "require": "./dist/image-context.js", "import": "./dist/image-context.mjs" }, - "./dist/routing/app-router-provider": { - "types": "./dist/routing/app-router-provider.d.ts", - "require": "./dist/routing/app-router-provider.js", - "import": "./dist/routing/app-router-provider.mjs" - }, - "./dist/routing/app-router-provider-mock": { - "types": "./dist/routing/app-router-provider-mock.d.ts", - "require": "./dist/routing/app-router-provider-mock.js", - "import": "./dist/routing/app-router-provider-mock.mjs" - }, "./preset": { "types": "./dist/preset.d.ts", "require": "./dist/preset.js" @@ -52,6 +42,7 @@ "import": "./dist/font/webpack/loader/storybook-nextjs-font-loader.mjs" }, "./dist/preview.mjs": "./dist/preview.mjs", + "./dist/previewRSC.mjs": "./dist/previewRSC.mjs", "./next-image-loader-stub.js": { "types": "./dist/next-image-loader-stub.d.ts", "require": "./dist/next-image-loader-stub.js", @@ -137,16 +128,12 @@ "webpack": "^5.65.0" }, "peerDependencies": { - "@next/font": "^13.0.0|| ^14.0.0", - "next": "^9.0.0 || ^10.0.0 || ^11.0.0 || ^12.0.0 || ^13.0.0 || ^14.0.0", + "next": "^13.5.0 || ^14.0.0", "react": "^16.8.0 || ^17.0.0 || ^18.0.0", "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0", "webpack": "^5.0.0" }, "peerDependenciesMeta": { - "@next/font": { - "optional": true - }, "typescript": { "optional": true }, @@ -166,13 +153,11 @@ "./src/index.ts", "./src/preset.ts", "./src/preview.tsx", + "./src/previewRSC.tsx", "./src/next-image-loader-stub.ts", "./src/images/decorator.tsx", - "./src/images/next-future-image.tsx", "./src/images/next-legacy-image.tsx", "./src/images/next-image.tsx", - "./src/routing/app-router-provider.tsx", - "./src/routing/app-router-provider-mock.tsx", "./src/font/webpack/loader/storybook-nextjs-font-loader.ts", "./src/swc/next-swc-loader-patch.ts" ], diff --git a/code/frameworks/nextjs/src/config/webpack.ts b/code/frameworks/nextjs/src/config/webpack.ts index 9d7c85d8c003..be2a983fceec 100644 --- a/code/frameworks/nextjs/src/config/webpack.ts +++ b/code/frameworks/nextjs/src/config/webpack.ts @@ -1,9 +1,8 @@ import type { Configuration as WebpackConfig } from 'webpack'; -import semver from 'semver'; import type { NextConfig } from 'next'; import { DefinePlugin } from 'webpack'; -import { addScopedAlias, getNextjsVersion, resolveNextConfig } from '../utils'; +import { addScopedAlias, resolveNextConfig } from '../utils'; const tryResolve = (path: string) => { try { @@ -36,8 +35,6 @@ export const configureConfig = async ({ return nextConfig; }; -const version = getNextjsVersion(); - const setupRuntimeConfig = (baseConfig: WebpackConfig, nextConfig: NextConfig): void => { const definePluginConfig: Record = { // this mimics what nextjs does client side @@ -50,21 +47,7 @@ const setupRuntimeConfig = (baseConfig: WebpackConfig, nextConfig: NextConfig): const newNextLinkBehavior = (nextConfig.experimental as any)?.newNextLinkBehavior; - /** - * In Next 13.0.0 - 13.0.5, the `newNextLinkBehavior` option now defaults to truthy (still - * `undefined` in the config), and `next/link` was engineered to opt *out* - * of it - * - */ - if ( - semver.gte(version, '13.0.0') && - semver.lt(version, '13.0.6') && - newNextLinkBehavior !== false - ) { - definePluginConfig['process.env.__NEXT_NEW_LINK_BEHAVIOR'] = true; - } else { - definePluginConfig['process.env.__NEXT_NEW_LINK_BEHAVIOR'] = newNextLinkBehavior; - } + definePluginConfig['process.env.__NEXT_NEW_LINK_BEHAVIOR'] = newNextLinkBehavior; baseConfig.plugins?.push(new DefinePlugin(definePluginConfig)); }; diff --git a/code/frameworks/nextjs/src/dependency-map.ts b/code/frameworks/nextjs/src/dependency-map.ts deleted file mode 100644 index 2849f6b02498..000000000000 --- a/code/frameworks/nextjs/src/dependency-map.ts +++ /dev/null @@ -1,42 +0,0 @@ -import type { Configuration as WebpackConfig } from 'webpack'; -import semver from 'semver'; -import { getNextjsVersion, addScopedAlias } from './utils'; - -const mapping: Record> = { - '<11.1.0': { - 'next/dist/next-server/lib/router-context': 'next/dist/next-server/lib/router-context', - }, - '>=11.1.0 <13.5.0': { - 'next/dist/shared/lib/router-context': 'next/dist/shared/lib/router-context', - }, - '>=13.0.2 <13.5.0': { - 'next/dist/shared/lib/hooks-client-context.shared-runtime': - 'next/dist/shared/lib/hooks-client-context', - }, - '<13.0.0': { - '@storybook/nextjs/dist/routing/app-router-provider': - '@storybook/nextjs/dist/routing/app-router-provider-mock', - }, - '<13.5.0': { - 'next/dist/shared/lib/router-context.shared-runtime': 'next/dist/shared/lib/router-context', - 'next/dist/shared/lib/head-manager-context.shared-runtime': - 'next/dist/shared/lib/head-manager-context', - 'next/dist/shared/lib/app-router-context.shared-runtime': - 'next/dist/shared/lib/app-router-context', - }, -}; - -export const configureAliasing = (baseConfig: WebpackConfig): void => { - const version = getNextjsVersion(); - const result: Record = {}; - - Object.keys(mapping).forEach((key) => { - if (semver.intersects(version, key)) { - Object.assign(result, mapping[key]); - } - }); - - Object.entries(result).forEach(([name, alias]) => { - addScopedAlias(baseConfig, name, alias); - }); -}; diff --git a/code/frameworks/nextjs/src/font/webpack/loader/google/get-font-face-declarations.ts b/code/frameworks/nextjs/src/font/webpack/loader/google/get-font-face-declarations.ts index 0f8bfb1957f8..3f9db77ebb16 100644 --- a/code/frameworks/nextjs/src/font/webpack/loader/google/get-font-face-declarations.ts +++ b/code/frameworks/nextjs/src/font/webpack/loader/google/get-font-face-declarations.ts @@ -5,34 +5,28 @@ import { GoogleFontsDownloadError, GoogleFontsLoadingError, } from '@storybook/core-events/server-errors'; +import { validateGoogleFontFunctionCall } from 'next/dist/compiled/@next/font/dist/google/validate-google-font-function-call'; +import { getGoogleFontsUrl } from 'next/dist/compiled/@next/font/dist/google/get-google-fonts-url'; +import { getFontAxes } from 'next/dist/compiled/@next/font/dist/google/get-font-axes'; +import { fetchCSSFromGoogleFonts } from 'next/dist/compiled/@next/font/dist/google/fetch-css-from-google-fonts'; import type { LoaderOptions } from '../types'; -const cssCache = new Map>(); +const cssCache = new Map(); export async function getFontFaceDeclarations(options: LoaderOptions) { - const { - fetchCSSFromGoogleFonts, - getFontAxes, - getUrl, - validateData, - } = require('../utils/google-font-utils'); - - const { fontFamily, weights, styles, selectedVariableAxes, display, variable } = validateData( - options.fontFamily, - [options.props], - null - ); + const { fontFamily, weights, styles, selectedVariableAxes, display, variable } = + validateGoogleFontFunctionCall(options.fontFamily, options.props); const fontAxes = getFontAxes(fontFamily, weights, styles, selectedVariableAxes); - const url = getUrl(fontFamily, fontAxes, display); + const url = getGoogleFontsUrl(fontFamily, fontAxes, display); try { const hasCachedCSS = cssCache.has(url); const fontFaceCSS = hasCachedCSS ? cssCache.get(url) - : await fetchCSSFromGoogleFonts(url, fontFamily).catch(() => null); + : await fetchCSSFromGoogleFonts(url, fontFamily, true).catch(() => null); if (!hasCachedCSS) { - cssCache.set(url, fontFaceCSS); + cssCache.set(url, fontFaceCSS as string); } else { cssCache.delete(url); } diff --git a/code/frameworks/nextjs/src/font/webpack/loader/local/get-font-face-declarations.ts b/code/frameworks/nextjs/src/font/webpack/loader/local/get-font-face-declarations.ts index b37e1b5f5a45..f3f35c2fc065 100644 --- a/code/frameworks/nextjs/src/font/webpack/loader/local/get-font-face-declarations.ts +++ b/code/frameworks/nextjs/src/font/webpack/loader/local/get-font-face-declarations.ts @@ -2,6 +2,7 @@ // @ts-expect-error import loaderUtils from 'next/dist/compiled/loader-utils3'; import { getProjectRoot } from '@storybook/core-common'; +import { validateLocalFontFunctionCall } from 'next/dist/compiled/@next/font/dist/local/validate-local-font-function-call'; import path from 'path'; import type { LoaderOptions } from '../types'; @@ -20,8 +21,12 @@ export async function getFontFaceDeclarations( ? path.dirname(path.join(getProjectRoot(), options.filename)).replace(rootContext, '') : path.dirname(options.filename).replace(rootContext, ''); - const { validateData } = require('../utils/local-font-utils'); - const { weight, style, variable } = validateData('', options.props); + const { + weight, + style, + variable, + declarations = [], + } = validateLocalFontFunctionCall('', options.props); const id = `font-${loaderUtils.getHashDigest( Buffer.from(JSON.stringify(localFontSrc)), @@ -30,6 +35,10 @@ export async function getFontFaceDeclarations( 6 )}`; + const fontDeclarations = declarations + .map(({ prop, value }: { prop: string; value: string }) => `${prop}: ${value};`) + .join('\n'); + const arePathsWin32Format = /^[a-z]:\\/iu.test(options.filename); const cleanWin32Path = (pathString: string): string => arePathsWin32Format ? pathString.replace(/\\/gu, '/') : pathString; @@ -41,6 +50,7 @@ export async function getFontFaceDeclarations( return `@font-face { font-family: ${id}; src: url(.${localFontPath}); + ${fontDeclarations} }`; } return localFontSrc @@ -52,6 +62,7 @@ export async function getFontFaceDeclarations( src: url(.${localFontPath}); ${font.weight ? `font-weight: ${font.weight};` : ''} ${font.style ? `font-style: ${font.style};` : ''} + ${fontDeclarations} }`; }) .join(''); diff --git a/code/frameworks/nextjs/src/font/webpack/loader/utils/google-font-utils.ts b/code/frameworks/nextjs/src/font/webpack/loader/utils/google-font-utils.ts deleted file mode 100644 index 20fe04209947..000000000000 --- a/code/frameworks/nextjs/src/font/webpack/loader/utils/google-font-utils.ts +++ /dev/null @@ -1,82 +0,0 @@ -/* eslint-disable import/no-mutable-exports */ - -import dedent from 'ts-dedent'; - -type FontOptions = { - fontFamily: string; - weights: string[]; - styles: string[]; - display: string; - preload: boolean; - selectedVariableAxes?: string[]; - fallback?: string[]; - adjustFontFallback: boolean; - variable?: string; - subsets: string[]; -}; - -let validateData: (functionName: string, fontData: any, config: any) => FontOptions; - -let getUrl: ( - fontFamily: string, - axes: { - wght?: string[]; - ital?: string[]; - variableAxes?: [string, string][]; - }, - display: string -) => string; - -let getFontAxes: ( - fontFamily: string, - weights: string[], - styles: string[], - selectedVariableAxes?: string[] -) => { - wght?: string[]; - ital?: string[]; - variableAxes?: [string, string][]; -}; - -let fetchCSSFromGoogleFonts: (url: string, fontFamily: string) => Promise; - -// Support @next/font -try { - const fontUtils = require('@next/font/dist/google/utils'); - validateData = fontUtils.validateData; - getUrl = fontUtils.getUrl; - getFontAxes = fontUtils.getFontAxes; - fetchCSSFromGoogleFonts = fontUtils.fetchCSSFromGoogleFonts; -} catch (_) { - // Support next/font prior to v13.2.4 - try { - const fontUtils = require('next/dist/compiled/@next/font/dist/google/utils'); - validateData = fontUtils.validateData; - getUrl = fontUtils.getUrl; - getFontAxes = fontUtils.getFontAxes; - fetchCSSFromGoogleFonts = fontUtils.fetchCSSFromGoogleFonts; - } catch (__) { - // Support next/font since v13.2.4 - try { - validateData = (functionName, fontData, config) => - require('next/dist/compiled/@next/font/dist/google/validate-google-font-function-call').validateGoogleFontFunctionCall( - functionName, - fontData[0], - config - ); - getUrl = - require('next/dist/compiled/@next/font/dist/google/get-google-fonts-url').getGoogleFontsUrl; - getFontAxes = require('next/dist/compiled/@next/font/dist/google/get-font-axes').getFontAxes; - fetchCSSFromGoogleFonts = - require('next/dist/compiled/@next/font/dist/google/fetch-css-from-google-fonts').fetchCSSFromGoogleFonts; - } catch (e) { - throw new Error(dedent` - We are unable to load the helper functions to use next/font/google. - Please downgrade Next.js to version 13.2.4 to continue to use next/font/google in Storybook. - Feel free to open a Github Issue! - `); - } - } -} - -export { validateData, getUrl, getFontAxes, fetchCSSFromGoogleFonts }; diff --git a/code/frameworks/nextjs/src/font/webpack/loader/utils/local-font-utils.ts b/code/frameworks/nextjs/src/font/webpack/loader/utils/local-font-utils.ts deleted file mode 100644 index d532f8dcc794..000000000000 --- a/code/frameworks/nextjs/src/font/webpack/loader/utils/local-font-utils.ts +++ /dev/null @@ -1,76 +0,0 @@ -import dedent from 'ts-dedent'; - -type FontOptions = { - src: Array<{ - path: string; - weight?: string; - style?: string; - ext: string; - format: string; - }>; - display: string; - weight?: string; - style?: string; - fallback?: string[]; - preload: boolean; - variable?: string; - adjustFontFallback?: string | false; - declarations?: Array<{ - prop: string; - value: string; - }>; -}; - -const trials = [ - { - module: '@next/font/dist/local/utils', - exportName: 'validateData', - description: 'Support @next/font prior to v13.2.5', - }, - { - module: '@next/font/dist/local/validate-local-font-function-call', - exportName: 'validateLocalFontFunctionCall', - description: 'Support @next/font since v13.2.5', - }, - { - module: 'next/dist/compiled/@next/font/dist/local/utils', - exportName: 'validateData', - description: 'Support next/font prior to v13.2.4', - }, - { - module: 'next/dist/compiled/@next/font/dist/local/validate-local-font-function-call', - exportName: 'validateLocalFontFunctionCall', - description: 'Support next/font since v13.2.4', - }, -]; - -const validateData: (functionName: string, fontData: any) => FontOptions = (() => { - // eslint-disable-next-line no-restricted-syntax - for (const { module, exportName } of trials) { - try { - const loadedModule = require(module); - if (exportName in loadedModule) { - return loadedModule[exportName]; - } - } catch { - // Continue to the next trial - } - } - - // Generate the dynamic error message - const errorDetails = trials - .map( - (trial) => - `- ${trial.description}: tries to import '${trial.exportName}' from '${trial.module}'` - ) - .join('\n'); - - throw new Error(dedent` - We were unable to load the helper functions to use next/font/local. The code attempted the following scenarios: - ${errorDetails} - - Please check your Next.js version and the module paths. If you resolve this issue for a version or setup not covered, consider contributing by updating the 'trials' array and making a pull request. - `); -})(); - -export { validateData }; diff --git a/code/frameworks/nextjs/src/images/next-future-image.tsx b/code/frameworks/nextjs/src/images/next-future-image.tsx deleted file mode 100644 index 306518079b38..000000000000 --- a/code/frameworks/nextjs/src/images/next-future-image.tsx +++ /dev/null @@ -1,24 +0,0 @@ -import React from 'react'; -import type * as _NextImage from 'next/image'; -// eslint-disable-next-line @typescript-eslint/ban-ts-comment -// @ts-ignore import is aliased in webpack config -import OriginalNextFutureImage from 'sb-original/next/future/image'; - -// eslint-disable-next-line @typescript-eslint/ban-ts-comment -// @ts-ignore-error (this only errors during compilation for production) -// eslint-disable-next-line import/no-extraneous-dependencies -import { ImageContext as ImageContextValue } from '@storybook/nextjs/dist/image-context'; -import { type ImageContext as ImageContextType } from '../image-context'; -import { defaultLoader } from './next-image-default-loader'; - -const ImageContext = ImageContextValue as typeof ImageContextType; - -function NextFutureImage({ loader, ...props }: _NextImage.ImageProps) { - const imageParameters = React.useContext(ImageContext); - - return ( - - ); -} - -export default NextFutureImage; diff --git a/code/frameworks/nextjs/src/images/webpack.ts b/code/frameworks/nextjs/src/images/webpack.ts index e80e03545beb..31324d099e48 100644 --- a/code/frameworks/nextjs/src/images/webpack.ts +++ b/code/frameworks/nextjs/src/images/webpack.ts @@ -27,14 +27,6 @@ const configureImageDefaults = (baseConfig: WebpackConfig): void => { 'next/legacy/image': path.resolve(__dirname, './images/next-legacy-image'), }; } - - if (semver.satisfies(version, '^12.2.0')) { - resolve.alias = { - ...resolve.alias, - 'sb-original/next/future/image': require.resolve('next/future/image'), - 'next/future/image': path.resolve(__dirname, './images/next-future-image'), - }; - } }; const configureStaticImageImport = (baseConfig: WebpackConfig, nextConfig: NextConfig): void => { diff --git a/code/frameworks/nextjs/src/nextImport/webpack.ts b/code/frameworks/nextjs/src/nextImport/webpack.ts deleted file mode 100644 index 35f39a7069ed..000000000000 --- a/code/frameworks/nextjs/src/nextImport/webpack.ts +++ /dev/null @@ -1,40 +0,0 @@ -import type { Configuration as WebpackConfig } from 'webpack'; -import semver from 'semver'; -import { IgnorePlugin } from 'webpack'; -import { getNextjsVersion } from '../utils'; - -export function configureNextImport(baseConfig: WebpackConfig) { - const nextJSVersion = getNextjsVersion(); - - const isNext12 = semver.satisfies(nextJSVersion, '~12'); - const isNextVersionSmallerThan12dot2 = semver.lt(nextJSVersion, '12.2.0'); - const isNextVersionSmallerThan13 = semver.lt(nextJSVersion, '13.0.0'); - - baseConfig.plugins = baseConfig.plugins ?? []; - - if (!isNext12 || isNextVersionSmallerThan12dot2) { - baseConfig.plugins.push( - new IgnorePlugin({ - resourceRegExp: /next\/future\/image$/, - }) - ); - } - - if (isNextVersionSmallerThan13) { - baseConfig.plugins.push( - new IgnorePlugin({ - // ignore next/dist/shared/lib/hooks-client-context and next/legacy/image imports - resourceRegExp: - /(next\/dist\/shared\/lib\/hooks-client-context|next\/dist\/shared\/lib\/hooks-client-context\.shared-runtime|next\/legacy\/image)$/, - }) - ); - } - - if (isNextVersionSmallerThan12dot2) { - baseConfig.plugins.push( - new IgnorePlugin({ - resourceRegExp: /next\/dist\/shared\/lib\/app-router-context$/, - }) - ); - } -} diff --git a/code/frameworks/nextjs/src/preset.ts b/code/frameworks/nextjs/src/preset.ts index f29290209281..504425df0297 100644 --- a/code/frameworks/nextjs/src/preset.ts +++ b/code/frameworks/nextjs/src/preset.ts @@ -11,12 +11,10 @@ import { configureStyledJsx } from './styledJsx/webpack'; import { configureImages } from './images/webpack'; import { configureRuntimeNextjsVersionResolution } from './utils'; import type { FrameworkOptions, StorybookConfig } from './types'; -import { configureNextImport } from './nextImport/webpack'; import TransformFontImports from './font/babel'; import { configureNextFont } from './font/webpack/configureNextFont'; import nextBabelPreset from './babel/preset'; import { configureNodePolyfills } from './nodePolyfills/webpack'; -import { configureAliasing } from './dependency-map'; import { configureSWCLoader } from './swc/loader'; export const addons: PresetProperty<'addons'> = [ @@ -67,10 +65,17 @@ export const core: PresetProperty<'core'> = async (config, options) => { }; }; -export const previewAnnotations: PresetProperty<'previewAnnotations'> = (entry = []) => [ - ...entry, - join(dirname(require.resolve('@storybook/nextjs/package.json')), 'dist/preview.mjs'), -]; +export const previewAnnotations: PresetProperty<'previewAnnotations'> = ( + entry = [], + { features } +) => { + const nextDir = dirname(require.resolve('@storybook/nextjs/package.json')); + const result = [...entry, join(nextDir, 'dist/preview.mjs')]; + if (features?.experimentalNextRSC) { + result.unshift(join(nextDir, 'dist/previewRSC.mjs')); + } + return result; +}; // Not even sb init - automigrate - running dev // You're using a version of Nextjs prior to v10, which is unsupported by this framework. @@ -142,9 +147,7 @@ export const webpackFinal: StorybookConfig['webpackFinal'] = async (baseConfig, configDir: options.configDir, }); - configureAliasing(baseConfig); configureNextFont(baseConfig, builder?.useSWC); - configureNextImport(baseConfig); configureRuntimeNextjsVersionResolution(baseConfig); configureImports({ baseConfig, configDir: options.configDir }); configureCss(baseConfig, nextConfig); diff --git a/code/frameworks/nextjs/src/previewRSC.tsx b/code/frameworks/nextjs/src/previewRSC.tsx new file mode 100644 index 000000000000..d605a96db980 --- /dev/null +++ b/code/frameworks/nextjs/src/previewRSC.tsx @@ -0,0 +1,10 @@ +import type { Addon_DecoratorFunction } from '@storybook/types'; +import { ServerComponentDecorator } from './rsc/decorator'; + +export const decorators: Addon_DecoratorFunction[] = [ServerComponentDecorator]; + +export const parameters = { + nextjs: { + rsc: true, + }, +}; diff --git a/code/frameworks/nextjs/src/routing/app-router-provider-mock.tsx b/code/frameworks/nextjs/src/routing/app-router-provider-mock.tsx deleted file mode 100644 index 38682dbcdaa6..000000000000 --- a/code/frameworks/nextjs/src/routing/app-router-provider-mock.tsx +++ /dev/null @@ -1,6 +0,0 @@ -import React from 'react'; - -// The mock is used for Next.js < 13, where the AppRouterProvider doesn't exist -export const AppRouterProvider: React.FC = ({ children }) => { - return <>{children}; -}; diff --git a/code/frameworks/nextjs/src/routing/decorator.tsx b/code/frameworks/nextjs/src/routing/decorator.tsx index 28f227bd259c..939c3ed0114b 100644 --- a/code/frameworks/nextjs/src/routing/decorator.tsx +++ b/code/frameworks/nextjs/src/routing/decorator.tsx @@ -1,9 +1,7 @@ import * as React from 'react'; import type { Addon_StoryContext } from '@storybook/types'; import { action } from '@storybook/addon-actions'; -// @ts-expect-error Using absolute path import to 1) avoid prebundling and 2) being able to substitute the module for Next.js < 13 -// eslint-disable-next-line import/no-extraneous-dependencies -import { AppRouterProvider } from '@storybook/nextjs/dist/routing/app-router-provider'; +import { AppRouterProvider } from './app-router-provider'; import { PageRouterProvider } from './page-router-provider'; import type { RouteParams, NextAppDirectory } from './types'; diff --git a/code/frameworks/nextjs/src/rsc/decorator.tsx b/code/frameworks/nextjs/src/rsc/decorator.tsx new file mode 100644 index 000000000000..73b7e7b4d817 --- /dev/null +++ b/code/frameworks/nextjs/src/rsc/decorator.tsx @@ -0,0 +1,14 @@ +import * as React from 'react'; +import type { StoryContext } from '@storybook/react'; + +export const ServerComponentDecorator = ( + Story: React.FC, + { parameters }: StoryContext +): React.ReactNode => + parameters?.nextjs?.rsc ? ( + + + + ) : ( + + ); diff --git a/code/frameworks/nextjs/src/styledJsx/decorator.tsx b/code/frameworks/nextjs/src/styledJsx/decorator.tsx index d358ecf55a15..5e18664c9659 100644 --- a/code/frameworks/nextjs/src/styledJsx/decorator.tsx +++ b/code/frameworks/nextjs/src/styledJsx/decorator.tsx @@ -1,14 +1,5 @@ import * as React from 'react'; - -let StyleRegistry: React.FC; - -try { - // next >= v12 - StyleRegistry = require('styled-jsx').StyleRegistry; -} catch { - // next < v12 - StyleRegistry = React.Fragment; -} +import { StyleRegistry } from 'styled-jsx'; export const StyledJsxDecorator = (Story: React.FC): React.ReactNode => ( diff --git a/code/frameworks/nextjs/src/styledJsx/webpack.ts b/code/frameworks/nextjs/src/styledJsx/webpack.ts index 7594159659a2..891947ba41d7 100644 --- a/code/frameworks/nextjs/src/styledJsx/webpack.ts +++ b/code/frameworks/nextjs/src/styledJsx/webpack.ts @@ -1,17 +1,6 @@ -import semver from 'semver'; import type { Configuration as WebpackConfig } from 'webpack'; -import { addScopedAlias, getNextjsVersion } from '../utils'; +import { addScopedAlias } from '../utils'; export const configureStyledJsx = (baseConfig: WebpackConfig): void => { - const version = getNextjsVersion(); - if (semver.gte(version, '12.0.0')) { - addScopedAlias(baseConfig, 'styled-jsx'); - } else { - addScopedAlias(baseConfig, 'styled-jsx/babel'); - addScopedAlias(baseConfig, 'styled-jsx/css'); - addScopedAlias(baseConfig, 'styled-jsx/macro'); - addScopedAlias(baseConfig, 'styled-jsx/server'); - addScopedAlias(baseConfig, 'styled-jsx/style'); - addScopedAlias(baseConfig, 'styled-jsx/webpack'); - } + addScopedAlias(baseConfig, 'styled-jsx'); }; diff --git a/code/frameworks/nextjs/template/stories/RSC.jsx b/code/frameworks/nextjs/template/stories/RSC.jsx new file mode 100644 index 000000000000..17a98b954919 --- /dev/null +++ b/code/frameworks/nextjs/template/stories/RSC.jsx @@ -0,0 +1,5 @@ +import React from 'react'; + +export const RSC = async ({ label }) => <>RSC {label}; + +export const Nested = async ({ children }) => <>Nested {children}; diff --git a/code/frameworks/nextjs/template/stories/RSC.stories.jsx b/code/frameworks/nextjs/template/stories/RSC.stories.jsx new file mode 100644 index 000000000000..e14456b50e58 --- /dev/null +++ b/code/frameworks/nextjs/template/stories/RSC.stories.jsx @@ -0,0 +1,35 @@ +import React from 'react'; +import { RSC, Nested } from './RSC'; + +export default { + component: RSC, + args: { label: 'label' }, +}; + +export const Default = {}; + +export const DisableRSC = { + tags: ['test-skip'], + parameters: { + chromatic: { disable: true }, + nextjs: { rsc: false }, + }, +}; + +export const Error = { + tags: ['test-skip'], + parameters: { + chromatic: { disable: true }, + }, + render: () => { + throw new Error('RSC Error'); + }, +}; + +export const NestedRSC = { + render: (args) => ( + + + + ), +}; diff --git a/code/frameworks/nextjs/template/stories_nextjs-12-js/ImageFuture.stories.jsx b/code/frameworks/nextjs/template/stories_nextjs-12-js/ImageFuture.stories.jsx deleted file mode 100644 index aad2e8d56ac9..000000000000 --- a/code/frameworks/nextjs/template/stories_nextjs-12-js/ImageFuture.stories.jsx +++ /dev/null @@ -1,55 +0,0 @@ -import React from 'react'; -import Image from 'next/future/image'; - -import Accessibility from '../../assets/accessibility.svg'; - -export default { - component: Image, - args: { - src: Accessibility, - alt: 'Accessibility', - }, -}; - -export const Default = {}; - -export const BlurredPlaceholder = { - args: { - placeholder: 'blur', - }, -}; - -export const BlurredAbsolutePlaceholder = { - args: { - src: 'https://storybook.js.org/images/placeholders/50x50.png', - width: 50, - height: 50, - blurDataURL: - 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAABP5JREFUWEeNlwtz2zgMhEGKsv/k9XFp82xe11763yOJVGcXC4m2czM3GYa0E2s/LACSTi+vv1czM/7CvPpqxY/ejPeS3khmFiPHOiVLHKaZi4ux4j18GpMlS6cALupEQBCKQM4BdnGzjIcJgs//QBxAPQAem55f3yL4PWJIdyCyhlMfPdYZot0cwj3Ayg/5JwHA13paen7pADphxr/n5VI8JQsHCCGQ3gVGLLsxQ3h/LYSn5383B05rwNOws3Z576LOTOduvwfrOd5FtVat4akx0uPTrw8BNuUz23vLsY7hmg7i4ipqM2saiAdruNuirh4ff0bNdb3Qy3vkvfAQwrkHoDxTTZtDCOKrC1bMEkdnsQh/PLyetOGHkXeRAgQAQ84efQcBdUhvFofoulpdm9WGGTA+AJEe7l+i37a2c371tCFKs5zzJjxQNBMi1im7OCudP2aNghJuzZaGdSMEZjpwf/t0UgNdg9DOyLGLnY0BUHlzwVtNDkgEQhBeKkb1tUDgQrq7frwAiIJi5BKAeIFgHk5mOpPzvgltOfcoK0Rrs7lWHwsgqtXarK3N0u23h5Ne8+3Cqxn5RYSMfHCAMgDAx4CBWlA9RAGw0GA/ol0gvFB4WjAvBAFUa83SzdUdAbYMqp28uHpxCRefxwAYhksAFBlthxCiXig+zT4TYqkC+Hq7OdAfJv8lPpZiZShWBBIuRP+jspDb2lwcDkzz7OLzbO/zvAHAoXTz5eYMQL0t2yHAiCFcfPY1QDwNFylA5bPoFpsV9fsEiMl8dhcc4PP1CYD3drYcBYdIKQrx0cbRxd2JHSDcQ297/vvoZ5smRC+AyV2AQ+nm03evge08Tyy4jGqXzWWEoIvTgXHU38pWiNgH4ixB/ukAcy/xycXfp4kwdAAAt399W+OCgMjxILQacxvRQ3gEwHgKUIr/rz53CuDFNyP/Eob4+/vEWkBq6AAA/HIi62n/Lk67Q7wDYQ0UpQB7hc54T4E6gACLTYxeAwB0YKZL6U4ATEGIBwCs7qPfQJCCHkCnoK50noJKcXcAojsEAJZZKXhgCoziGKxqWV8IMNp4kP2aC+oB0TMFvhGxDQHQfIPhDrilwKOm/YCZASAHfgBABQjr3f7CyAkA0cPB03AQULRhKd4xAIjzHymo2Gp7gN0FAMAVOoA2fPz03a9ssh/RM7Iz8QKIzYF9HyB0XEZ1xJ4DzNoDOAfAslhDDTyjDfv8A2AcBeCiu/jBHQEgxnYW6Kp6BlCVAkQM8VnieF2Xyr0ivXy+XvsCzKOihwNHCCryw8HrQXVB8dgFeRfAVQiXjMbIIgXINQYB2H7Kf5wF/2Ar7h0AgKKGuAP4zOjhzlkLbpcRXKRZhNUjxG6HIQDOjN47gCn4+fWW3xVS9urPESEEwwHMo9IhAGxS2ISiA1iEnQOoA4hXRAwItp7WzL9Ow18ESJaw/ar4NgeOR49cAHCAnaH8swBhv+6CBGjeBSxEOUAI7HyKHkD4O9xKb3/feQouAI4uLBciHRRHmgbfA7h/xFc9AngNBADthvii1sMOiPwDAFeyt6s7FSFS4PmnA1v0vQvqDqQKAAPE/weAUuEgsj8c+H11Twdw/AKANXA82EDr5cJBEEzB3oI4Mb0AdR3nNw8vQnegWuvqAABwJFJEBwDgNdA7IOs3gL0LhuJdwBY8c4BfNnDdVgooHiOqn/b7JoSW/QODjTHXhU7hMQAAAABJRU5ErkJggg==', - placeholder: 'blur', - }, - parameters: { - // ignoring in Chromatic to avoid inconsistent snapshots - // given that the switch from blur to image is quite fast - chromatic: { disableSnapshot: true }, - }, -}; - -export const FilledParent = { - args: { - fill: true, - }, - decorator: [ - (Story) =>
{Story()}
, - ], -}; - -export const Sized = { - args: { - fill: true, - sizes: '(max-width: 600px) 100vw, 600px', - decorator: [ - (Story) =>
{Story()}
, - ], - }, -}; diff --git a/code/frameworks/nextjs/template/stories_nextjs-12-js/Link.stories.jsx b/code/frameworks/nextjs/template/stories_nextjs-12-js/Link.stories.jsx deleted file mode 100644 index 40631d5cf2f7..000000000000 --- a/code/frameworks/nextjs/template/stories_nextjs-12-js/Link.stories.jsx +++ /dev/null @@ -1,28 +0,0 @@ -import React from 'react'; -import Link from 'next/link'; - -const Component = () => ( - -); - -export default { - component: Component, -}; - -export const Default = {}; diff --git a/code/frameworks/svelte-vite/package.json b/code/frameworks/svelte-vite/package.json index 585a77752bed..4cfe87214037 100644 --- a/code/frameworks/svelte-vite/package.json +++ b/code/frameworks/svelte-vite/package.json @@ -52,18 +52,18 @@ "@storybook/svelte": "workspace:*", "@sveltejs/vite-plugin-svelte": "^2.4.2", "magic-string": "^0.30.0", - "svelte-preprocess": "^5.0.4", + "svelte-preprocess": "^5.1.1", "sveltedoc-parser": "^4.2.1", "ts-dedent": "^2.2.0" }, "devDependencies": { "@types/node": "^18.0.0", - "svelte": "^4.0.0", + "svelte": "^5.0.0-next.16", "typescript": "^5.3.2", "vite": "^4.0.0" }, "peerDependencies": { - "svelte": "^3.0.0 || ^4.0.0", + "svelte": "^4.0.0 || ^5.0.0-next.16", "vite": "^3.0.0 || ^4.0.0 || ^5.0.0" }, "engines": { diff --git a/code/frameworks/svelte-webpack5/package.json b/code/frameworks/svelte-webpack5/package.json index 9e47d3bb34ee..4885a726417b 100644 --- a/code/frameworks/svelte-webpack5/package.json +++ b/code/frameworks/svelte-webpack5/package.json @@ -59,7 +59,7 @@ }, "peerDependencies": { "@babel/core": "*", - "svelte": "^3.48.0 || ^4.0.0", + "svelte": "^4.0.0 || ^5.0.0-next.16", "svelte-loader": "*" }, "engines": { diff --git a/code/frameworks/sveltekit/package.json b/code/frameworks/sveltekit/package.json index f952e2515b07..162fb8229411 100644 --- a/code/frameworks/sveltekit/package.json +++ b/code/frameworks/sveltekit/package.json @@ -64,7 +64,7 @@ "vite": "^4.0.0" }, "peerDependencies": { - "svelte": "^3.0.0 || ^4.0.0", + "svelte": "^4.0.0 || ^5.0.0-next.16", "vite": "^4.0.0" }, "engines": { diff --git a/code/frameworks/sveltekit/template/stories_svelte-kit-prerelease-ts/ButtonTypeScript.svelte b/code/frameworks/sveltekit/template/stories_svelte-kit-prerelease-ts/ButtonTypeScript.svelte new file mode 100644 index 000000000000..cd00f38a3d57 --- /dev/null +++ b/code/frameworks/sveltekit/template/stories_svelte-kit-prerelease-ts/ButtonTypeScript.svelte @@ -0,0 +1,38 @@ + + +

Button TypeScript

+ + + \ No newline at end of file diff --git a/code/frameworks/sveltekit/template/stories_svelte-kit-prerelease-ts/Hrefs.svelte b/code/frameworks/sveltekit/template/stories_svelte-kit-prerelease-ts/Hrefs.svelte new file mode 100644 index 000000000000..4e7d69e0e051 --- /dev/null +++ b/code/frameworks/sveltekit/template/stories_svelte-kit-prerelease-ts/Hrefs.svelte @@ -0,0 +1,8 @@ + diff --git a/code/frameworks/sveltekit/template/stories_svelte-kit-prerelease-ts/Navigation.svelte b/code/frameworks/sveltekit/template/stories_svelte-kit-prerelease-ts/Navigation.svelte new file mode 100644 index 000000000000..4bcb7d0e6fc9 --- /dev/null +++ b/code/frameworks/sveltekit/template/stories_svelte-kit-prerelease-ts/Navigation.svelte @@ -0,0 +1,25 @@ + + + + + + + diff --git a/code/frameworks/sveltekit/template/stories_svelte-kit-prerelease-ts/Stores.svelte b/code/frameworks/sveltekit/template/stories_svelte-kit-prerelease-ts/Stores.svelte new file mode 100644 index 000000000000..164b00f7fa8b --- /dev/null +++ b/code/frameworks/sveltekit/template/stories_svelte-kit-prerelease-ts/Stores.svelte @@ -0,0 +1,17 @@ + + +

Directly importing

+
{JSON.stringify($page, null, 2)}
+
{JSON.stringify($navigating, null, 2)}
+
{JSON.stringify($updated, null, 2)}
+ +

With getStores

+
{JSON.stringify($pageStore, null, 2)}
+
{JSON.stringify($navigatingStore, null, 2)}
+
{JSON.stringify($updatedStore, null, 2)}
diff --git a/code/frameworks/sveltekit/template/stories_svelte-kit-prerelease-ts/forms.stories.js b/code/frameworks/sveltekit/template/stories_svelte-kit-prerelease-ts/forms.stories.js new file mode 100644 index 000000000000..72b584baef76 --- /dev/null +++ b/code/frameworks/sveltekit/template/stories_svelte-kit-prerelease-ts/forms.stories.js @@ -0,0 +1,26 @@ +import { expect, fn, within } from '@storybook/test'; +import Forms from './Forms.svelte'; + +export default { + title: 'stories/sveltekit/modules/forms', + component: Forms, + tags: ['autodocs'], +}; + +const enhance = fn(); + +export const Enhance = { + async play({ canvasElement }) { + const canvas = within(canvasElement); + const button = canvas.getByText('enhance'); + button.click(); + expect(enhance).toHaveBeenCalled(); + }, + parameters: { + sveltekit_experimental: { + forms: { + enhance, + }, + }, + }, +}; diff --git a/code/frameworks/sveltekit/template/stories_svelte-kit-prerelease-ts/hrefs.stories.js b/code/frameworks/sveltekit/template/stories_svelte-kit-prerelease-ts/hrefs.stories.js new file mode 100644 index 000000000000..f1cbf4973534 --- /dev/null +++ b/code/frameworks/sveltekit/template/stories_svelte-kit-prerelease-ts/hrefs.stories.js @@ -0,0 +1,53 @@ +import { expect, fn, within } from '@storybook/test'; +import Hrefs from './Hrefs.svelte'; + +export default { + title: 'stories/sveltekit/modules/hrefs', + component: Hrefs, + tags: ['autodocs'], +}; + +export const DefaultActions = { + async play({ canvasElement }) { + const canvas = within(canvasElement); + // eslint-disable-next-line no-undef + const initialUrl = window.location.toString(); + + const basicHref = canvas.getByText('/basic-href'); + basicHref.click(); + + const complexHref = canvas.getByText( + '/deep/nested/link?with=true&multiple-params=200#and-an-id' + ); + complexHref.click(); + + // eslint-disable-next-line no-undef + const finalUrl = window.location.toString(); + expect(finalUrl).toBe(initialUrl); + }, +}; + +const basicStringMatch = fn(); +const noMatch = fn(); +const exactStringMatch = fn(); +const regexMatch = fn(); + +export const Callbacks = { + parameters: { + sveltekit_experimental: { + hrefs: { + '/basic-href': basicStringMatch, + '/basic': noMatch, + '/deep/nested/link?with=true&multiple-params=200#and-an-id': exactStringMatch, + 'nested/link\\?with': { callback: regexMatch, asRegex: true }, + }, + }, + }, + play: async (ctx) => { + await DefaultActions.play(ctx); + expect(basicStringMatch).toHaveBeenCalledTimes(1); + expect(noMatch).not.toHaveBeenCalled(); + expect(exactStringMatch).toHaveBeenCalledTimes(1); + expect(regexMatch).toHaveBeenCalledTimes(1); + }, +}; diff --git a/code/frameworks/sveltekit/template/stories_svelte-kit-prerelease-ts/navigation.stories.js b/code/frameworks/sveltekit/template/stories_svelte-kit-prerelease-ts/navigation.stories.js new file mode 100644 index 000000000000..ded12268e03c --- /dev/null +++ b/code/frameworks/sveltekit/template/stories_svelte-kit-prerelease-ts/navigation.stories.js @@ -0,0 +1,84 @@ +import { expect, fn, within } from '@storybook/test'; +import Navigation from './Navigation.svelte'; + +export default { + title: 'stories/sveltekit/modules/navigation', + component: Navigation, + tags: ['autodocs'], +}; + +const goto = fn(); + +export const Goto = { + async play({ canvasElement }) { + const canvas = within(canvasElement); + const button = canvas.getByText('goto'); + button.click(); + expect(goto).toHaveBeenCalledWith('/storybook-goto'); + }, + parameters: { + sveltekit_experimental: { + navigation: { + goto, + }, + }, + }, +}; + +export const DefaultActions = {}; + +const invalidate = fn(); + +export const Invalidate = { + async play({ canvasElement }) { + const canvas = within(canvasElement); + const button = canvas.getByText('invalidate', { exact: true }); + button.click(); + expect(invalidate).toHaveBeenCalledWith('/storybook-invalidate'); + }, + parameters: { + sveltekit_experimental: { + navigation: { + invalidate, + }, + }, + }, +}; + +const invalidateAll = fn(); + +export const InvalidateAll = { + async play({ canvasElement }) { + const canvas = within(canvasElement); + const button = canvas.getByText('invalidateAll'); + button.click(); + expect(invalidateAll).toHaveBeenCalledWith(); + }, + parameters: { + sveltekit_experimental: { + navigation: { + invalidateAll, + }, + }, + }, +}; + +const afterNavigateFn = fn(); + +export const AfterNavigate = { + async play() { + expect(afterNavigateFn).toHaveBeenCalledWith({ test: 'passed' }); + }, + args: { + afterNavigateFn, + }, + parameters: { + sveltekit_experimental: { + navigation: { + afterNavigate: { + test: 'passed', + }, + }, + }, + }, +}; diff --git a/code/frameworks/sveltekit/template/stories_svelte-kit-prerelease-ts/stores.stories.js b/code/frameworks/sveltekit/template/stories_svelte-kit-prerelease-ts/stores.stories.js new file mode 100644 index 000000000000..7f7401cf8bee --- /dev/null +++ b/code/frameworks/sveltekit/template/stories_svelte-kit-prerelease-ts/stores.stories.js @@ -0,0 +1,116 @@ +import Stores from './Stores.svelte'; + +export default { + title: 'stories/sveltekit/modules/stores', + component: Stores, + tags: ['autodocs'], +}; + +export const AllUndefined = {}; + +export const PageStore = { + parameters: { + sveltekit_experimental: { + stores: { + page: { + data: { + test: 'passed', + }, + }, + }, + }, + }, +}; + +export const NavigatingStore = { + parameters: { + sveltekit_experimental: { + stores: { + navigating: { + route: { + id: '/storybook', + }, + }, + }, + }, + }, +}; + +export const UpdatedStore = { + parameters: { + sveltekit_experimental: { + stores: { + updated: true, + }, + }, + }, +}; + +export const PageAndNavigatingStore = { + parameters: { + sveltekit_experimental: { + stores: { + page: { + data: { + test: 'passed', + }, + }, + navigating: { + route: { + id: '/storybook', + }, + }, + }, + }, + }, +}; + +export const PageAndUpdatedStore = { + parameters: { + sveltekit_experimental: { + stores: { + page: { + data: { + test: 'passed', + }, + }, + updated: true, + }, + }, + }, +}; + +export const NavigatingAndUpdatedStore = { + parameters: { + sveltekit_experimental: { + stores: { + navigating: { + route: { + id: '/storybook', + }, + }, + updated: true, + }, + }, + }, +}; + +export const AllThreeStores = { + parameters: { + sveltekit_experimental: { + stores: { + page: { + data: { + test: 'passed', + }, + }, + navigating: { + route: { + id: '/storybook', + }, + }, + updated: true, + }, + }, + }, +}; diff --git a/code/frameworks/sveltekit/template/stories_svelte-kit-prerelease-ts/ts-docs.stories.js b/code/frameworks/sveltekit/template/stories_svelte-kit-prerelease-ts/ts-docs.stories.js new file mode 100644 index 000000000000..f33428810ee9 --- /dev/null +++ b/code/frameworks/sveltekit/template/stories_svelte-kit-prerelease-ts/ts-docs.stories.js @@ -0,0 +1,12 @@ +import ButtonTypescript from './ButtonTypeScript.svelte'; + +export default { + title: 'stories/renderers/svelte/ts-docs', + component: ButtonTypescript, + args: { + primary: true, + }, + tags: ['autodocs'], +}; + +export const Primary = {}; diff --git a/code/frameworks/vue-vite/README.md b/code/frameworks/vue-vite/README.md deleted file mode 100644 index f19ebc711b42..000000000000 --- a/code/frameworks/vue-vite/README.md +++ /dev/null @@ -1,48 +0,0 @@ -# Storybook for Vue 2 and Vite - -Storybook for Vue 2 is a UI development environment for your Vue 2 components. -With it, you can visualize different states of your UI components and develop them interactively. - -![Storybook Screenshot](https://github.com/storybookjs/storybook/blob/main/media/storybook-intro.gif) - -Storybook runs outside of your app. -So you can develop UI components in isolation without worrying about app specific dependencies and requirements. - -## Getting Started - -```sh -cd my-vue-app -npx storybook@latest init -``` - -For more information visit: [storybook.js.org](https://storybook.js.org) - -## Starter Storybook-for-Vue Boilerplate project with [Vuetify](https://github.com/vuetifyjs/vuetify) Material Component Framework - - - ---- - -Storybook also comes with a lot of [addons](https://storybook.js.org/addons) and a great API to customize as you wish. -You can also build a [static version](https://storybook.js.org/docs/vue/sharing/publish-storybook) of your Storybook and deploy it anywhere you want. - -## Vue Notes - -- When using global custom components or extensions (e.g., `Vue.use`). You will need to declare those in the `./storybook/preview.js`. - -## Known Limitations - -In Storybook story and decorator components, you can not access the Vue instance -in factory functions for default prop values: - -```js -{ - props: { - foo: { - default() { - return this.bar; // does not work! - } - } - } -} -``` diff --git a/code/frameworks/vue-vite/jest.config.js b/code/frameworks/vue-vite/jest.config.js deleted file mode 100644 index 343e4c7a7f32..000000000000 --- a/code/frameworks/vue-vite/jest.config.js +++ /dev/null @@ -1,7 +0,0 @@ -const path = require('path'); -const baseConfig = require('../../jest.config.node'); - -module.exports = { - ...baseConfig, - displayName: __dirname.split(path.sep).slice(-2).join(path.posix.sep), -}; diff --git a/code/frameworks/vue-vite/package.json b/code/frameworks/vue-vite/package.json deleted file mode 100644 index 6dbba9abdb01..000000000000 --- a/code/frameworks/vue-vite/package.json +++ /dev/null @@ -1,80 +0,0 @@ -{ - "name": "@storybook/vue-vite", - "version": "8.0.0-alpha.0", - "description": "Storybook for Vue2 and Vite: Develop Vue2 Components in isolation with Hot Reloading.", - "keywords": [ - "storybook" - ], - "homepage": "https://github.com/storybookjs/storybook/tree/next/code/frameworks/vue-vite", - "bugs": { - "url": "https://github.com/storybookjs/storybook/issues" - }, - "repository": { - "type": "git", - "url": "https://github.com/storybookjs/storybook.git", - "directory": "code/frameworks/vue-vite" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/storybook" - }, - "license": "MIT", - "exports": { - ".": { - "types": "./dist/index.d.ts", - "node": "./dist/index.js", - "require": "./dist/index.js", - "import": "./dist/index.mjs" - }, - "./preset": { - "types": "./dist/preset.d.ts", - "require": "./dist/preset.js" - }, - "./package.json": "./package.json" - }, - "main": "dist/index.js", - "module": "dist/index.mjs", - "types": "dist/index.d.ts", - "files": [ - "dist/**/*", - "README.md", - "*.js", - "*.d.ts", - "!src/**/*" - ], - "scripts": { - "check": "node --loader ../../../scripts/node_modules/esbuild-register/loader.js -r ../../../scripts/node_modules/esbuild-register/register.js ../../../scripts/prepare/check.ts", - "prep": "node --loader ../../../scripts/node_modules/esbuild-register/loader.js -r ../../../scripts/node_modules/esbuild-register/register.js ../../../scripts/prepare/bundle.ts" - }, - "dependencies": { - "@storybook/builder-vite": "workspace:*", - "@storybook/core-common": "workspace:*", - "@storybook/core-server": "workspace:*", - "@storybook/vue": "workspace:*", - "magic-string": "^0.30.0", - "vue-docgen-api": "^4.40.0" - }, - "devDependencies": { - "typescript": "^5.3.2", - "vite": "^4.0.0", - "vue": "^2.7.10" - }, - "peerDependencies": { - "vite": "^3.0.0 || ^4.0.0 || ^5.0.0", - "vue": "^2.7.0" - }, - "engines": { - "node": ">=16.0.0" - }, - "publishConfig": { - "access": "public" - }, - "bundler": { - "entries": [ - "./src/index.ts", - "./src/preset.ts" - ], - "platform": "node" - }, - "gitHead": "e6a7fd8a655c69780bc20b9749c2699e44beae17" -} diff --git a/code/frameworks/vue-vite/preset.js b/code/frameworks/vue-vite/preset.js deleted file mode 100644 index a83f95279e7f..000000000000 --- a/code/frameworks/vue-vite/preset.js +++ /dev/null @@ -1 +0,0 @@ -module.exports = require('./dist/preset'); diff --git a/code/frameworks/vue-vite/project.json b/code/frameworks/vue-vite/project.json deleted file mode 100644 index 605d4a032ab9..000000000000 --- a/code/frameworks/vue-vite/project.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "name": "@storybook/vue-vite", - "$schema": "../../node_modules/nx/schemas/project-schema.json", - "implicitDependencies": [], - "type": "library" -} diff --git a/code/frameworks/vue-vite/src/index.ts b/code/frameworks/vue-vite/src/index.ts deleted file mode 100644 index fcb073fefcd6..000000000000 --- a/code/frameworks/vue-vite/src/index.ts +++ /dev/null @@ -1 +0,0 @@ -export * from './types'; diff --git a/code/frameworks/vue-vite/src/plugins/vue-docgen.ts b/code/frameworks/vue-vite/src/plugins/vue-docgen.ts deleted file mode 100644 index e80ca52d60c2..000000000000 --- a/code/frameworks/vue-vite/src/plugins/vue-docgen.ts +++ /dev/null @@ -1,27 +0,0 @@ -import { parse } from 'vue-docgen-api'; -import type { PluginOption } from 'vite'; -import { createFilter } from 'vite'; -import MagicString from 'magic-string'; - -export function vueDocgen(): PluginOption { - const include = /\.(vue)$/; - const filter = createFilter(include); - - return { - name: 'storybook:vue2-docgen-plugin', - - async transform(src: string, id: string) { - if (!filter(id)) return undefined; - - const metaData = await parse(id); - const metaSource = JSON.stringify(metaData); - const s = new MagicString(src); - s.append(`;__component__.exports.__docgenInfo = ${metaSource}`); - - return { - code: s.toString(), - map: s.generateMap({ hires: true, source: id }), - }; - }, - }; -} diff --git a/code/frameworks/vue-vite/src/preset.ts b/code/frameworks/vue-vite/src/preset.ts deleted file mode 100644 index aec3778a7525..000000000000 --- a/code/frameworks/vue-vite/src/preset.ts +++ /dev/null @@ -1,32 +0,0 @@ -import { dirname, join } from 'path'; -import type { PresetProperty } from '@storybook/types'; -import { mergeConfig } from 'vite'; -import type { StorybookConfig } from './types'; -import { vueDocgen } from './plugins/vue-docgen'; - -const getAbsolutePath = (input: I): I => - dirname(require.resolve(join(input, 'package.json'))) as any; - -export const core: PresetProperty<'core'> = async (config, options) => { - const framework = await options.presets.apply('framework'); - - return { - ...config, - builder: { - name: getAbsolutePath('@storybook/builder-vite'), - options: typeof framework === 'string' ? {} : framework?.options.builder || {}, - }, - renderer: getAbsolutePath('@storybook/vue'), - }; -}; - -export const viteFinal: StorybookConfig['viteFinal'] = async (config, { presets }) => { - return mergeConfig(config, { - plugins: [vueDocgen()], - resolve: { - alias: { - vue: 'vue/dist/vue.esm.js', - }, - }, - }); -}; diff --git a/code/frameworks/vue-vite/src/types.ts b/code/frameworks/vue-vite/src/types.ts deleted file mode 100644 index e5ba544f554c..000000000000 --- a/code/frameworks/vue-vite/src/types.ts +++ /dev/null @@ -1,36 +0,0 @@ -import type { StorybookConfig as StorybookConfigBase } from '@storybook/types'; -import type { StorybookConfigVite, BuilderOptions } from '@storybook/builder-vite'; - -type FrameworkName = '@storybook/vue-vite'; -type BuilderName = '@storybook/builder-vite'; - -export type FrameworkOptions = { - builder?: BuilderOptions; -}; - -type StorybookConfigFramework = { - framework: - | FrameworkName - | { - name: FrameworkName; - options: FrameworkOptions; - }; - core?: StorybookConfigBase['core'] & { - builder?: - | BuilderName - | { - name: BuilderName; - options: BuilderOptions; - }; - }; -}; - -/** - * The interface for Storybook configuration in `main.ts` files. - */ -export type StorybookConfig = Omit< - StorybookConfigBase, - keyof StorybookConfigVite | keyof StorybookConfigFramework -> & - StorybookConfigVite & - StorybookConfigFramework; diff --git a/code/frameworks/vue-vite/tsconfig.json b/code/frameworks/vue-vite/tsconfig.json deleted file mode 100644 index 1405a8fbb5a6..000000000000 --- a/code/frameworks/vue-vite/tsconfig.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "extends": "../../tsconfig.json", - "compilerOptions": { - "strict": true, - "skipLibCheck": true, - "resolveJsonModule": true - }, - "include": ["src/**/*"] -} diff --git a/code/frameworks/vue-webpack5/README.md b/code/frameworks/vue-webpack5/README.md deleted file mode 100644 index 9af5a6d0512f..000000000000 --- a/code/frameworks/vue-webpack5/README.md +++ /dev/null @@ -1,48 +0,0 @@ -# Storybook for Vue 3 and Webpack - -Storybook for Vue 3 is a UI development environment for your Vue 3 components. -With it, you can visualize different states of your UI components and develop them interactively. - -![Storybook Screenshot](https://github.com/storybookjs/storybook/blob/main/media/storybook-intro.gif) - -Storybook runs outside of your app. -So you can develop UI components in isolation without worrying about app specific dependencies and requirements. - -## Getting Started - -```sh -cd my-vue-app -npx storybook@latest init -``` - -For more information visit: [storybook.js.org](https://storybook.js.org) - -## Starter Storybook-for-Vue Boilerplate project with [Vuetify](https://github.com/vuetifyjs/vuetify) Material Component Framework - - - ---- - -Storybook also comes with a lot of [addons](https://storybook.js.org/addons) and a great API to customize as you wish. -You can also build a [static version](https://storybook.js.org/docs/vue/sharing/publish-storybook) of your Storybook and deploy it anywhere you want. - -## Vue Notes - -- When using global custom components or extensions (e.g., `Vue.use`). You will need to declare those in the `./storybook/preview.js`. - -## Known Limitations - -In Storybook story and decorator components, you can not access the Vue instance -in factory functions for default prop values: - -```js -{ - props: { - foo: { - default() { - return this.bar; // does not work! - } - } - } -} -``` diff --git a/code/frameworks/vue-webpack5/jest.config.js b/code/frameworks/vue-webpack5/jest.config.js deleted file mode 100644 index 343e4c7a7f32..000000000000 --- a/code/frameworks/vue-webpack5/jest.config.js +++ /dev/null @@ -1,7 +0,0 @@ -const path = require('path'); -const baseConfig = require('../../jest.config.node'); - -module.exports = { - ...baseConfig, - displayName: __dirname.split(path.sep).slice(-2).join(path.posix.sep), -}; diff --git a/code/frameworks/vue-webpack5/package.json b/code/frameworks/vue-webpack5/package.json deleted file mode 100644 index adef5761e2e4..000000000000 --- a/code/frameworks/vue-webpack5/package.json +++ /dev/null @@ -1,84 +0,0 @@ -{ - "name": "@storybook/vue-webpack5", - "version": "8.0.0-alpha.0", - "description": "Storybook for Vue: Develop Vue Component in isolation with Hot Reloading.", - "keywords": [ - "storybook" - ], - "homepage": "https://github.com/storybookjs/storybook/tree/next/code/frameworks/vue-webpack5", - "bugs": { - "url": "https://github.com/storybookjs/storybook/issues" - }, - "repository": { - "type": "git", - "url": "https://github.com/storybookjs/storybook.git", - "directory": "code/frameworks/vue-webpack5" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/storybook" - }, - "license": "MIT", - "exports": { - ".": { - "types": "./dist/index.d.ts", - "node": "./dist/index.js", - "require": "./dist/index.js", - "import": "./dist/index.mjs" - }, - "./preset": { - "types": "./dist/preset.d.ts", - "require": "./dist/preset.js" - }, - "./package.json": "./package.json" - }, - "main": "dist/index.js", - "module": "dist/index.mjs", - "types": "dist/index.d.ts", - "files": [ - "dist/**/*", - "README.md", - "*.js", - "*.d.ts", - "!src/**/*" - ], - "scripts": { - "check": "node --loader ../../../scripts/node_modules/esbuild-register/loader.js -r ../../../scripts/node_modules/esbuild-register/register.js ../../../scripts/prepare/check.ts", - "prep": "node --loader ../../../scripts/node_modules/esbuild-register/loader.js -r ../../../scripts/node_modules/esbuild-register/register.js ../../../scripts/prepare/bundle.ts" - }, - "dependencies": { - "@storybook/builder-webpack5": "workspace:*", - "@storybook/core-common": "workspace:*", - "@storybook/preset-vue-webpack": "workspace:*", - "@storybook/vue": "workspace:*", - "@types/node": "^18.0.0" - }, - "devDependencies": { - "typescript": "^5.3.2", - "vue": "^2.6.12", - "vue-loader": "^15.7.0", - "vue-template-compiler": "^2.6.14" - }, - "peerDependencies": { - "@babel/core": "*", - "babel-loader": "^7.0.0 || ^8.0.0 || ^9.0.0", - "css-loader": "*", - "vue": "^2.6.8", - "vue-loader": "^15.7.0", - "vue-template-compiler": "^2.6.8" - }, - "engines": { - "node": ">=16.0.0" - }, - "publishConfig": { - "access": "public" - }, - "bundler": { - "entries": [ - "./src/index.ts", - "./src/preset.ts" - ], - "platform": "node" - }, - "gitHead": "e6a7fd8a655c69780bc20b9749c2699e44beae17" -} diff --git a/code/frameworks/vue-webpack5/preset.js b/code/frameworks/vue-webpack5/preset.js deleted file mode 100644 index a83f95279e7f..000000000000 --- a/code/frameworks/vue-webpack5/preset.js +++ /dev/null @@ -1 +0,0 @@ -module.exports = require('./dist/preset'); diff --git a/code/frameworks/vue-webpack5/project.json b/code/frameworks/vue-webpack5/project.json deleted file mode 100644 index 02735b354e6f..000000000000 --- a/code/frameworks/vue-webpack5/project.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "name": "@storybook/vue-webpack5", - "$schema": "../../node_modules/nx/schemas/project-schema.json", - "implicitDependencies": [], - "type": "library" -} diff --git a/code/frameworks/vue-webpack5/src/index.ts b/code/frameworks/vue-webpack5/src/index.ts deleted file mode 100644 index fcb073fefcd6..000000000000 --- a/code/frameworks/vue-webpack5/src/index.ts +++ /dev/null @@ -1 +0,0 @@ -export * from './types'; diff --git a/code/frameworks/vue-webpack5/src/preset.ts b/code/frameworks/vue-webpack5/src/preset.ts deleted file mode 100644 index 690adc16b7c8..000000000000 --- a/code/frameworks/vue-webpack5/src/preset.ts +++ /dev/null @@ -1,26 +0,0 @@ -import { dirname, join } from 'path'; -import type { PresetProperty } from '@storybook/types'; - -const getAbsolutePath = (input: I): I => - dirname(require.resolve(join(input, 'package.json'))) as any; - -export const addons: PresetProperty<'addons'> = [getAbsolutePath('@storybook/preset-vue-webpack')]; - -export const core: PresetProperty<'core'> = async (config, options) => { - const framework = await options.presets.apply('framework'); - - return { - ...config, - builder: { - name: getAbsolutePath('@storybook/builder-webpack5'), - options: typeof framework === 'string' ? {} : framework.options.builder || {}, - }, - renderer: getAbsolutePath('@storybook/vue'), - }; -}; - -export const typescript: PresetProperty<'typescript'> = async (config) => ({ - ...config, - skipBabel: true, - skipCompiler: true, -}); diff --git a/code/frameworks/vue-webpack5/src/types.ts b/code/frameworks/vue-webpack5/src/types.ts deleted file mode 100644 index 7a1c993d8791..000000000000 --- a/code/frameworks/vue-webpack5/src/types.ts +++ /dev/null @@ -1,45 +0,0 @@ -import type { - StorybookConfig as StorybookConfigBase, - TypescriptOptions as TypescriptOptionsReact, -} from '@storybook/preset-vue-webpack'; -import type { - StorybookConfigWebpack, - BuilderOptions, - TypescriptOptions as TypescriptOptionsBuilder, -} from '@storybook/builder-webpack5'; - -type FrameworkName = '@storybook/vue-webpack5'; -type BuilderName = '@storybook/builder-webpack5'; - -export type FrameworkOptions = { - builder?: BuilderOptions; -}; - -type StorybookConfigFramework = { - framework: - | FrameworkName - | { - name: FrameworkName; - options: FrameworkOptions; - }; - core?: StorybookConfigBase['core'] & { - builder?: - | BuilderName - | { - name: BuilderName; - options: BuilderOptions; - }; - }; - typescript?: Partial & - StorybookConfigBase['typescript']; -}; - -/** - * The interface for Storybook configuration in `main.ts` files. - */ -export type StorybookConfig = Omit< - StorybookConfigBase, - keyof StorybookConfigWebpack | keyof StorybookConfigFramework -> & - StorybookConfigWebpack & - StorybookConfigFramework; diff --git a/code/frameworks/vue-webpack5/src/typings.d.ts b/code/frameworks/vue-webpack5/src/typings.d.ts deleted file mode 100644 index 45d6411e8736..000000000000 --- a/code/frameworks/vue-webpack5/src/typings.d.ts +++ /dev/null @@ -1 +0,0 @@ -declare module 'vue-loader/lib/plugin'; diff --git a/code/frameworks/vue-webpack5/tsconfig.json b/code/frameworks/vue-webpack5/tsconfig.json deleted file mode 100644 index 1405a8fbb5a6..000000000000 --- a/code/frameworks/vue-webpack5/tsconfig.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "extends": "../../tsconfig.json", - "compilerOptions": { - "strict": true, - "skipLibCheck": true, - "resolveJsonModule": true - }, - "include": ["src/**/*"] -} diff --git a/code/lib/cli/src/automigrate/fixes/__snapshots__/angular-builders.test.ts.snap b/code/lib/cli/src/automigrate/fixes/__snapshots__/angular-builders.test.ts.snap index d24d6968b01d..4a4f8e5ab107 100644 --- a/code/lib/cli/src/automigrate/fixes/__snapshots__/angular-builders.test.ts.snap +++ b/code/lib/cli/src/automigrate/fixes/__snapshots__/angular-builders.test.ts.snap @@ -1,6 +1,6 @@ // Jest Snapshot v1, https://goo.gl/fbAQLP -exports[`is not Nx project angular builders Angular < 14.0.0 should throw an Error 1`] = ` -"❌ Your project uses Angular < 14.0.0. Storybook 7.0 for Angular requires Angular 14.0.0 or higher. -Please upgrade your Angular version to at least version 14.0.0 to use Storybook 7.0 in your project." +exports[`is not Nx project angular builders Angular < 15.0.0 should throw an Error 1`] = ` +"❌ Your project uses Angular < 15.0.0. Storybook 8.0 for Angular requires Angular 15.0.0 or higher. +Please upgrade your Angular version to at least version 15.0.0 to use Storybook 8.0 in your project." `; diff --git a/code/lib/cli/src/automigrate/fixes/angular-builders.test.ts b/code/lib/cli/src/automigrate/fixes/angular-builders.test.ts index 8f1f0650deb6..34f1c1cdccd5 100644 --- a/code/lib/cli/src/automigrate/fixes/angular-builders.test.ts +++ b/code/lib/cli/src/automigrate/fixes/angular-builders.test.ts @@ -68,11 +68,11 @@ describe('is not Nx project', () => { }); }); - describe('Angular < 14.0.0', () => { + describe('Angular < 15.0.0', () => { const packageManager = { getPackageVersion: (packageName: string) => { if (packageName === '@angular/core') { - return Promise.resolve('12.0.0'); + return Promise.resolve('14.0.0'); } return null; @@ -86,11 +86,11 @@ describe('is not Nx project', () => { }); }); - describe('Angular >= 14.0.0', () => { + describe('Angular >= 16.0.0', () => { const packageManager = { getPackageVersion: (packageName) => { if (packageName === '@angular/core') { - return Promise.resolve('15.0.0'); + return Promise.resolve('16.0.0'); } return null; diff --git a/code/lib/cli/src/automigrate/fixes/angular-builders.ts b/code/lib/cli/src/automigrate/fixes/angular-builders.ts index 3bdc9da5062c..c360a4d55b35 100644 --- a/code/lib/cli/src/automigrate/fixes/angular-builders.ts +++ b/code/lib/cli/src/automigrate/fixes/angular-builders.ts @@ -31,10 +31,10 @@ export const angularBuilders: Fix = { return null; } - if (semver.lt(angularVersion, '14.0.0')) { + if (semver.lt(angularVersion, '15.0.0')) { throw new Error(dedent` - ❌ Your project uses Angular < 14.0.0. Storybook 7.0 for Angular requires Angular 14.0.0 or higher. - Please upgrade your Angular version to at least version 14.0.0 to use Storybook 7.0 in your project. + ❌ Your project uses Angular < 15.0.0. Storybook 8.0 for Angular requires Angular 15.0.0 or higher. + Please upgrade your Angular version to at least version 15.0.0 to use Storybook 8.0 in your project. `); } diff --git a/code/lib/cli/src/automigrate/fixes/missing-babelrc.ts b/code/lib/cli/src/automigrate/fixes/missing-babelrc.ts index 14332f15b5f5..9d12ec658b1f 100644 --- a/code/lib/cli/src/automigrate/fixes/missing-babelrc.ts +++ b/code/lib/cli/src/automigrate/fixes/missing-babelrc.ts @@ -14,7 +14,6 @@ const logger = console; const frameworksThatNeedBabelConfig = [ '@storybook/react-webpack5', - '@storybook/vue-webpack5', '@storybook/vue3-webpack5', '@storybook/html-webpack5', '@storybook/web-components-webpack5', diff --git a/code/lib/cli/src/automigrate/fixes/new-frameworks.test.ts b/code/lib/cli/src/automigrate/fixes/new-frameworks.test.ts index 5e63d6d22fff..413ffb2f9363 100644 --- a/code/lib/cli/src/automigrate/fixes/new-frameworks.test.ts +++ b/code/lib/cli/src/automigrate/fixes/new-frameworks.test.ts @@ -258,7 +258,7 @@ describe('new-frameworks fix', () => { it('should update correctly when there is no builder', async () => { const packageManager = getPackageManager({ - '@storybook/vue': '7.0.0', + '@storybook/vue3': '7.0.0', '@storybook/builder-webpack5': '7.0.0', }); @@ -266,13 +266,13 @@ describe('new-frameworks fix', () => { checkNewFrameworks({ packageManager, main: { - framework: '@storybook/vue', + framework: '@storybook/vue3', }, }) ).resolves.toEqual( expect.objectContaining({ - frameworkPackage: '@storybook/vue-webpack5', - dependenciesToAdd: ['@storybook/vue-webpack5'], + frameworkPackage: '@storybook/vue3-webpack5', + dependenciesToAdd: ['@storybook/vue3-webpack5'], dependenciesToRemove: ['@storybook/builder-webpack5'], }) ); @@ -280,7 +280,7 @@ describe('new-frameworks fix', () => { it('should update when there is no framework field in main', async () => { const packageManager = getPackageManager({ - '@storybook/vue': '7.0.0', + '@storybook/vue3': '7.0.0', '@storybook/manager-webpack5': '7.0.0', }); @@ -291,8 +291,8 @@ describe('new-frameworks fix', () => { }) ).resolves.toEqual( expect.objectContaining({ - frameworkPackage: '@storybook/vue-webpack5', - dependenciesToAdd: ['@storybook/vue-webpack5'], + frameworkPackage: '@storybook/vue3-webpack5', + dependenciesToAdd: ['@storybook/vue3-webpack5'], dependenciesToRemove: ['@storybook/manager-webpack5'], hasFrameworkInMainConfig: false, }) @@ -301,7 +301,7 @@ describe('new-frameworks fix', () => { it('should update when the framework field has a legacy value', async () => { const packageManager = getPackageManager({ - '@storybook/vue': '7.0.0', + '@storybook/vue3': '7.0.0', '@storybook/manager-webpack5': '7.0.0', }); @@ -309,13 +309,13 @@ describe('new-frameworks fix', () => { checkNewFrameworks({ packageManager, main: { - framework: 'vue', + framework: 'vue3', }, }) ).resolves.toEqual( expect.objectContaining({ - frameworkPackage: '@storybook/vue-webpack5', - dependenciesToAdd: ['@storybook/vue-webpack5'], + frameworkPackage: '@storybook/vue3-webpack5', + dependenciesToAdd: ['@storybook/vue3-webpack5'], dependenciesToRemove: ['@storybook/manager-webpack5'], hasFrameworkInMainConfig: false, }) diff --git a/code/lib/cli/src/automigrate/helpers/mainConfigFile.test.ts b/code/lib/cli/src/automigrate/helpers/mainConfigFile.test.ts index 1d1d4c2095ac..5320d97e5dac 100644 --- a/code/lib/cli/src/automigrate/helpers/mainConfigFile.test.ts +++ b/code/lib/cli/src/automigrate/helpers/mainConfigFile.test.ts @@ -146,8 +146,8 @@ describe('getRendererPackageNameFromFramework', () => { }); it('should return the corresponding key of rendererPackages if the value is the same as the frameworkPackageName', () => { - const frameworkPackageName = 'vue'; - const expectedPackageName = '@storybook/vue'; + const frameworkPackageName = 'vue3'; + const expectedPackageName = '@storybook/vue3'; const packageName = getRendererPackageNameFromFramework(frameworkPackageName); expect(packageName).toBe(expectedPackageName); }); diff --git a/code/lib/cli/src/automigrate/helpers/new-frameworks-utils.ts b/code/lib/cli/src/automigrate/helpers/new-frameworks-utils.ts index e5fba48f2d71..7f62392c6839 100644 --- a/code/lib/cli/src/automigrate/helpers/new-frameworks-utils.ts +++ b/code/lib/cli/src/automigrate/helpers/new-frameworks-utils.ts @@ -24,10 +24,6 @@ export const packagesMap: Record = '@storybook/angular': { webpack5: '@storybook/angular', }, - '@storybook/vue': { - webpack5: '@storybook/vue-webpack5', - vite: '@storybook/vue-vite', - }, '@storybook/vue3': { webpack5: '@storybook/vue3-webpack5', vite: '@storybook/vue3-vite', diff --git a/code/lib/cli/src/detect.test.ts b/code/lib/cli/src/detect.test.ts index 7a78fa8fa536..1203d444e6d8 100644 --- a/code/lib/cli/src/detect.test.ts +++ b/code/lib/cli/src/detect.test.ts @@ -30,29 +30,6 @@ const MOCK_FRAMEWORK_FILES: { name: string; files: Record<'package.json', PackageJsonWithMaybeDeps> | Record; }[] = [ - { - name: ProjectType.SFC_VUE, - files: { - 'package.json': { - dependencies: { - vuetify: '1.0.0', - }, - devDependencies: { - 'vue-loader': '1.0.0', - }, - }, - }, - }, - { - name: ProjectType.VUE, - files: { - 'package.json': { - dependencies: { - vue: '1.0.0', - }, - }, - }, - }, { name: ProjectType.VUE3, files: { diff --git a/code/lib/cli/src/detect.ts b/code/lib/cli/src/detect.ts index dc02fbe4325b..733ed65e2974 100644 --- a/code/lib/cli/src/detect.ts +++ b/code/lib/cli/src/detect.ts @@ -127,8 +127,6 @@ export async function detectBuilder(packageManager: JsPackageManager, projectTyp // Fallback to Vite or Webpack based on project type switch (projectType) { - case ProjectType.SFC_VUE: - return CoreBuilder.Vite; case ProjectType.REACT_SCRIPTS: case ProjectType.ANGULAR: case ProjectType.REACT_NATIVE: // technically react native doesn't use webpack, we just want to set something diff --git a/code/lib/cli/src/generators/SFC_VUE/index.ts b/code/lib/cli/src/generators/SFC_VUE/index.ts deleted file mode 100644 index a3e2f15ea604..000000000000 --- a/code/lib/cli/src/generators/SFC_VUE/index.ts +++ /dev/null @@ -1,11 +0,0 @@ -import { CoreBuilder } from '../../project_types'; -import { baseGenerator } from '../baseGenerator'; -import type { Generator } from '../types'; - -const generator: Generator = async (packageManager, npmOptions, options) => { - await baseGenerator(packageManager, npmOptions, options, 'vue', { - useSWC: ({ builder }) => builder === CoreBuilder.Webpack5, - }); -}; - -export default generator; diff --git a/code/lib/cli/src/generators/VUE/index.ts b/code/lib/cli/src/generators/VUE/index.ts deleted file mode 100644 index 6b771973a283..000000000000 --- a/code/lib/cli/src/generators/VUE/index.ts +++ /dev/null @@ -1,14 +0,0 @@ -import { CoreBuilder } from '../../project_types'; -import { baseGenerator } from '../baseGenerator'; -import type { Generator } from '../types'; - -const generator: Generator = async (packageManager, npmOptions, options) => { - await baseGenerator(packageManager, npmOptions, options, 'vue', { - extraPackages: async ({ builder }) => { - return builder === CoreBuilder.Webpack5 ? ['vue-loader@^15.7.0'] : []; - }, - useSWC: ({ builder }) => builder === CoreBuilder.Webpack5, - }); -}; - -export default generator; diff --git a/code/lib/cli/src/generators/baseGenerator.ts b/code/lib/cli/src/generators/baseGenerator.ts index 813ba2d1dd59..43fbbe9c3a67 100644 --- a/code/lib/cli/src/generators/baseGenerator.ts +++ b/code/lib/cli/src/generators/baseGenerator.ts @@ -337,7 +337,6 @@ export async function baseGenerator( if (builder !== CoreBuilder.Vite && !skipBabel) { const frameworksThatNeedBabelConfig = [ '@storybook/react-webpack5', - '@storybook/vue-webpack5', '@storybook/vue3-webpack5', '@storybook/html-webpack5', '@storybook/web-components-webpack5', diff --git a/code/lib/cli/src/helpers.ts b/code/lib/cli/src/helpers.ts index 605fab2d1849..33c7b6c6ccd9 100644 --- a/code/lib/cli/src/helpers.ts +++ b/code/lib/cli/src/helpers.ts @@ -193,7 +193,10 @@ type CopyTemplateFilesOptions = { destination?: string; }; -const frameworkToRenderer: Record = { +const frameworkToRenderer: Record< + SupportedFrameworks | SupportedRenderers, + SupportedRenderers | 'vue' +> = { angular: 'angular', ember: 'ember', html: 'html', @@ -206,7 +209,6 @@ const frameworkToRenderer: Record( commandLog('Adding Storybook support to your "Next" app') ); - case ProjectType.SFC_VUE: - return sfcVueGenerator(packageManager, npmOptions, generatorOptions).then( - commandLog('Adding Storybook support to your "Single File Components Vue" app') - ); - - case ProjectType.VUE: - return vueGenerator(packageManager, npmOptions, generatorOptions).then( - commandLog('Adding Storybook support to your "Vue" app') - ); - case ProjectType.VUE3: return vue3Generator(packageManager, npmOptions, generatorOptions).then( commandLog('Adding Storybook support to your "Vue 3" app') diff --git a/code/lib/cli/src/project_types.ts b/code/lib/cli/src/project_types.ts index 8d2809f97379..8f1f07b3ae0f 100644 --- a/code/lib/cli/src/project_types.ts +++ b/code/lib/cli/src/project_types.ts @@ -1,13 +1,5 @@ import { minVersion, validRange } from 'semver'; -function ltMajor(versionRange: string, major: number) { - // Uses validRange to avoid a throw from minVersion if an invalid range gets passed - if (validRange(versionRange)) { - return (minVersion(versionRange)?.major ?? Infinity) < major; - } - return false; -} - function eqMajor(versionRange: string, major: number) { // Uses validRange to avoid a throw from minVersion if an invalid range gets passed if (validRange(versionRange)) { @@ -36,7 +28,6 @@ export type SupportedFrameworks = 'nextjs' | 'angular' | 'sveltekit' | 'qwik' | export type SupportedRenderers = | 'react' | 'react-native' - | 'vue' | 'vue3' | 'angular' | 'ember' @@ -51,7 +42,6 @@ export type SupportedRenderers = export const SUPPORTED_RENDERERS: SupportedRenderers[] = [ 'react', 'react-native', - 'vue', 'vue3', 'angular', 'ember', @@ -70,9 +60,7 @@ export enum ProjectType { REACT_PROJECT = 'REACT_PROJECT', WEBPACK_REACT = 'WEBPACK_REACT', NEXTJS = 'NEXTJS', - VUE = 'VUE', VUE3 = 'VUE3', - SFC_VUE = 'SFC_VUE', ANGULAR = 'ANGULAR', EMBER = 'EMBER', WEB_COMPONENTS = 'WEB_COMPONENTS', @@ -123,27 +111,6 @@ export type TemplateConfiguration = { * therefore WEBPACK_REACT has to come first, as it's more specific. */ export const supportedTemplates: TemplateConfiguration[] = [ - { - preset: ProjectType.SFC_VUE, - dependencies: { - 'vue-loader': (versionRange) => ltMajor(versionRange, 16), - vuetify: (versionRange) => ltMajor(versionRange, 3), - }, - matcherFunction: ({ dependencies }) => { - return dependencies?.some(Boolean) ?? false; - }, - }, - { - preset: ProjectType.VUE, - // This Vue template only works with Vue or Nuxt under v3 - dependencies: { - vue: (versionRange) => ltMajor(versionRange, 3), - nuxt: (versionRange) => ltMajor(versionRange, 3), - }, - matcherFunction: ({ dependencies }) => { - return dependencies?.some(Boolean) ?? false; - }, - }, { preset: ProjectType.VUE3, dependencies: { diff --git a/code/lib/cli/src/repro-generators/configs.ts b/code/lib/cli/src/repro-generators/configs.ts index b3cd46836fbf..b95e65a18a87 100644 --- a/code/lib/cli/src/repro-generators/configs.ts +++ b/code/lib/cli/src/repro-generators/configs.ts @@ -217,16 +217,6 @@ export const web_components_lit2: Parameters = { // #region vue -export const vue: Parameters = { - renderer: 'vue', - name: 'vue', - version: 'latest', - generator: [ - // vue2 with webpack5 - `npx -p @vue/cli vue create {{appName}} --default --packageManager=yarn --force --merge --preset="Default (Vue 2)"`, - ].join(' && '), -}; - export const vue3: Parameters = { renderer: 'vue3', name: 'vue3', @@ -263,14 +253,6 @@ export const preact_vite: Parameters = { generator: 'yarn create vite@{{version}} {{appName}} --template preact', }; -export const sfcVue: Parameters = { - renderer: 'vue', - name: 'sfcVue', - version: 'latest', - // - generator: fromDeps('vue@2.6', 'vue-loader@15.9', 'vue-template-compiler@2.6', 'webpack'), -}; - export const svelte: Parameters = { renderer: 'svelte', name: 'svelte', diff --git a/code/lib/cli/src/sandbox-templates.ts b/code/lib/cli/src/sandbox-templates.ts index 86b28646fb10..90af17b5c191 100644 --- a/code/lib/cli/src/sandbox-templates.ts +++ b/code/lib/cli/src/sandbox-templates.ts @@ -107,16 +107,22 @@ const baseTemplates = { builder: '@storybook/builder-webpack5', }, }, - 'nextjs/12-js': { - name: 'Next.js v12 (Webpack | JavaScript)', + 'nextjs/13-ts': { + name: 'Next.js v13.5 (Webpack | TypeScript)', script: - 'yarn create next-app {{beforeDir}} -e https://github.com/vercel/next.js/tree/next-12-3-2/examples/hello-world && cd {{beforeDir}} && npm pkg set "dependencies.next"="^12.2.0" && yarn && git add . && git commit --amend --no-edit && cd ..', + 'yarn create next-app {{beforeDir}} -e https://github.com/vercel/next.js/tree/next-13/examples/hello-world && cd {{beforeDir}} && npm pkg set "dependencies.next"="^12.2.0" && yarn && git add . && git commit --amend --no-edit && cd ..', expected: { framework: '@storybook/nextjs', renderer: '@storybook/react', builder: '@storybook/builder-webpack5', }, + modifications: { + mainConfig: { + features: { experimentalNextRSC: true }, + }, + }, skipTasks: ['e2e-tests-dev', 'bench'], + inDevelopment: true, }, 'nextjs/default-js': { name: 'Next.js Latest (Webpack | JavaScript)', @@ -127,6 +133,11 @@ const baseTemplates = { renderer: '@storybook/react', builder: '@storybook/builder-webpack5', }, + modifications: { + mainConfig: { + features: { experimentalNextRSC: true }, + }, + }, skipTasks: ['e2e-tests-dev', 'bench'], }, 'nextjs/default-ts': { @@ -138,6 +149,11 @@ const baseTemplates = { renderer: '@storybook/react', builder: '@storybook/builder-webpack5', }, + modifications: { + mainConfig: { + features: { experimentalNextRSC: true }, + }, + }, skipTasks: ['e2e-tests-dev', 'bench'], }, 'nextjs/prerelease': { @@ -149,6 +165,11 @@ const baseTemplates = { renderer: '@storybook/react', builder: '@storybook/builder-webpack5', }, + modifications: { + mainConfig: { + features: { experimentalNextRSC: true }, + }, + }, skipTasks: ['e2e-tests-dev', 'bench'], }, 'react-vite/default-js': { @@ -236,17 +257,6 @@ const baseTemplates = { }, skipTasks: ['e2e-tests-dev', 'bench'], }, - 'vue2-vite/2.7-js': { - name: 'Vue v2 (Vite | JavaScript)', - script: 'npx create-vue@2 {{beforeDir}} --default', - expected: { - framework: '@storybook/vue-vite', - renderer: '@storybook/vue', - builder: '@storybook/builder-vite', - }, - // Remove smoke-test from the list once https://github.com/storybookjs/storybook/issues/19351 is fixed. - skipTasks: ['smoke-test', 'e2e-tests-dev', 'bench'], - }, 'html-webpack/default': { name: 'HTML Latest (Webpack | JavaScript)', script: 'yarn create webpack5-html {{beforeDir}}', @@ -355,6 +365,17 @@ const baseTemplates = { }, skipTasks: ['e2e-tests-dev', 'bench'], }, + 'svelte-kit/prerelease-ts': { + name: 'SvelteKit Prerelease (Vite | TypeScript)', + script: + 'yarn create svelte-with-args --name=svelte-kit/prerelease-ts --directory={{beforeDir}} --template=skeleton --types=typescript --no-prettier --no-eslint --no-playwright --no-vitest --svelte5', + expected: { + framework: '@storybook/sveltekit', + renderer: '@storybook/svelte', + builder: '@storybook/builder-vite', + }, + skipTasks: ['e2e-tests-dev', 'bench'], + }, 'lit-vite/default-js': { name: 'Lit Latest (Vite | JavaScript)', script: @@ -391,18 +412,6 @@ const baseTemplates = { // Remove smoke-test from the list once https://github.com/storybookjs/storybook/issues/19351 is fixed. skipTasks: ['smoke-test', 'e2e-tests-dev', 'bench'], }, - 'vue-cli/vue2-default-js': { - name: 'Vue CLI v2 (Webpack | JavaScript)', - script: - 'npx -p @vue/cli vue create {{beforeDir}} --default --packageManager=yarn --force --merge --preset="Default (Vue 2)" && cd {{beforeDir}} && echo "module.exports = {}" > webpack.config.js', - expected: { - framework: '@storybook/vue-webpack5', - renderer: '@storybook/vue', - builder: '@storybook/builder-webpack5', - }, - // Remove smoke-test from the list once https://github.com/storybookjs/storybook/issues/19351 is fixed. - skipTasks: ['smoke-test', 'e2e-tests-dev', 'bench'], - }, 'preact-webpack5/default-js': { name: 'Preact CLI Latest (Webpack | JavaScript)', script: @@ -567,7 +576,6 @@ export const normal: TemplateKey[] = [ 'react-vite/default-ts', 'angular-cli/default-ts', 'vue3-vite/default-ts', - 'vue-cli/vue2-default-js', 'lit-vite/default-ts', 'svelte-vite/default-ts', 'svelte-kit/skeleton-ts', @@ -594,12 +602,12 @@ export const daily: TemplateKey[] = [ 'cra/default-js', 'react-vite/default-js', 'vue3-vite/default-js', - 'vue2-vite/2.7-js', 'vue-cli/default-js', 'lit-vite/default-js', 'svelte-kit/skeleton-js', + 'svelte-kit/prerelease-ts', 'svelte-vite/default-js', - 'nextjs/12-js', + 'nextjs/13-ts', 'nextjs/default-js', 'nextjs/prerelease', 'qwik-vite/default-ts', diff --git a/code/lib/cli/src/versions.ts b/code/lib/cli/src/versions.ts index b477f0d53255..a0a9cd528d81 100644 --- a/code/lib/cli/src/versions.ts +++ b/code/lib/cli/src/versions.ts @@ -74,9 +74,6 @@ export default { '@storybook/test': '8.0.0-alpha.0', '@storybook/theming': '8.0.0-alpha.0', '@storybook/types': '8.0.0-alpha.0', - '@storybook/vue': '8.0.0-alpha.0', - '@storybook/vue-vite': '8.0.0-alpha.0', - '@storybook/vue-webpack5': '8.0.0-alpha.0', '@storybook/vue3': '8.0.0-alpha.0', '@storybook/vue3-vite': '8.0.0-alpha.0', '@storybook/vue3-webpack5': '8.0.0-alpha.0', diff --git a/code/lib/core-common/src/utils/get-storybook-info.ts b/code/lib/core-common/src/utils/get-storybook-info.ts index 8d97fed4d3ed..dd462a6b0370 100644 --- a/code/lib/core-common/src/utils/get-storybook-info.ts +++ b/code/lib/core-common/src/utils/get-storybook-info.ts @@ -5,7 +5,6 @@ import { getStorybookConfiguration } from './get-storybook-configuration'; export const rendererPackages: Record = { '@storybook/react': 'react', - '@storybook/vue': 'vue', '@storybook/vue3': 'vue3', '@storybook/angular': 'angular', '@storybook/html': 'html', @@ -36,8 +35,6 @@ export const frameworkPackages: Record = { '@storybook/sveltekit': 'sveltekit', '@storybook/vue3-vite': 'vue3-vite', '@storybook/vue3-webpack5': 'vue3-webpack5', - '@storybook/vue-vite': 'vue-vite', - '@storybook/vue-webpack5': 'vue-webpack5', '@storybook/web-components-vite': 'web-components-vite', '@storybook/web-components-webpack5': 'web-components-webpack5', // community (outside of monorepo) diff --git a/code/lib/csf-plugin/src/index.ts b/code/lib/csf-plugin/src/index.ts index aed7a531ee32..ec0aaa1d52a9 100644 --- a/code/lib/csf-plugin/src/index.ts +++ b/code/lib/csf-plugin/src/index.ts @@ -12,15 +12,18 @@ const logger = console; export const unplugin = createUnplugin((options) => { return { name: 'unplugin-csf', - enforce: 'pre', - loadInclude(id) { + transformInclude(id) { return STORIES_REGEX.test(id); }, - async load(fname) { - const code = await fs.readFile(fname, 'utf-8'); + async transform(code, id) { + const sourceCode = await fs.readFile(id, 'utf-8'); try { - const csf = loadCsf(code, { makeTitle: (userTitle) => userTitle || 'default' }).parse(); - enrichCsf(csf, options); + const makeTitle = (userTitle: string) => userTitle || 'default'; + const csf = loadCsf(code, { makeTitle }).parse(); + const csfSource = loadCsf(sourceCode, { + makeTitle, + }).parse(); + enrichCsf(csf, csfSource, options); return formatCsf(csf, { sourceMaps: true }); } catch (err: any) { // This can be called on legacy storiesOf files, so just ignore diff --git a/code/lib/csf-tools/src/enrichCsf.test.ts b/code/lib/csf-tools/src/enrichCsf.test.ts index a8f5f3aaa09c..d793f730cecc 100644 --- a/code/lib/csf-tools/src/enrichCsf.test.ts +++ b/code/lib/csf-tools/src/enrichCsf.test.ts @@ -11,11 +11,16 @@ expect.addSnapshotSerializer({ test: (val) => true, }); -const enrich = (code: string, options?: EnrichCsfOptions) => { +const enrich = (code: string, originalCode: string, options?: EnrichCsfOptions) => { // we don't actually care about the title - const csf = loadCsf(code, { makeTitle: (userTitle) => userTitle || 'default' }).parse(); - enrichCsf(csf, options); + const csf = loadCsf(code, { + makeTitle: (userTitle) => userTitle || 'default', + }).parse(); + const csfSource = loadCsf(originalCode, { + makeTitle: (userTitle) => userTitle || 'default', + }).parse(); + enrichCsf(csf, csfSource, options); return formatCsf(csf); }; @@ -23,17 +28,28 @@ describe('enrichCsf', () => { describe('source', () => { it('csf1', () => { expect( - enrich(dedent` + enrich( + dedent` + // compiled code export default { title: 'Button', } - export const Basic = () => `, - }) - ) - ).toMatchInlineSnapshot(``); - }); - - it('static class', () => { - expect( - vnodeToString( - getVNode({ - template: ``, - }) - ) - ).toMatchInlineSnapshot(``); - }); - - it('string dynamic class', () => { - expect( - vnodeToString( - getVNode({ - template: ``, - }) - ) - ).toMatchInlineSnapshot(``); - }); - - it('non-string dynamic class', () => { - expect( - vnodeToString( - getVNode({ - template: ``, - }) - ) - ).toMatchInlineSnapshot(``); - }); - - it('array dynamic class', () => { - expect( - vnodeToString( - getVNode({ - template: ``, - }) - ) - ).toMatchInlineSnapshot(``); - }); - - it('object dynamic class', () => { - expect( - vnodeToString( - getVNode({ - template: ``, - }) - ) - ).toMatchInlineSnapshot(``); - }); - - it('merge dynamic and static classes', () => { - expect( - vnodeToString( - getVNode({ - template: ``, - }) - ) - ).toMatchInlineSnapshot(``); - }); - - it('attributes', () => { - const MyComponent: ComponentOptions = { - props: ['propA', 'propB', 'propC', 'propD', 'propE', 'propF', 'propG'], - template: '
', - }; - - expect( - vnodeToString( - getVNode({ - components: { MyComponent }, - data(): { props: Record } { - return { - props: { - propA: 'propA', - propB: 1, - propC: null, - propD: { - foo: 'bar', - }, - propE: true, - propF() { - const foo = 'bar'; - - return foo; - }, - propG: undefined, - }, - }; - }, - template: ``, - }) - ) - ).toMatchInlineSnapshot( - `` - ); - }); - - it('children', () => { - expect( - vnodeToString( - getVNode({ - template: ` -
-
- -
-
`, - }) - ) - ).toMatchInlineSnapshot(`
`); - }); - - it('empty tag', () => { - expect( - vnodeToString( - getVNode({ - template: ` -
-
`, - }) - ) - ).toMatchInlineSnapshot(`
`); - }); - - it('tag in text', () => { - expect( - vnodeToString( - getVNode({ - template: ` -
- <> -
`, - }) - ) - ).toMatchInlineSnapshot(` -
{{\` - <> - \`}}
- `); - }); - - it('component element with children', () => { - const MyComponent: ComponentOptions = { - props: ['propA'], - template: '
', - }; - - expect( - vnodeToString( - getVNode({ - components: { MyComponent }, - data(): { props: Record } { - return { - props: { - propA: 'propA', - }, - }; - }, - template: `
`, - }) - ) - ).toMatchInlineSnapshot(`
`); - }); -}); diff --git a/code/renderers/vue/src/docs/sourceDecorator.ts b/code/renderers/vue/src/docs/sourceDecorator.ts deleted file mode 100644 index becc96802860..000000000000 --- a/code/renderers/vue/src/docs/sourceDecorator.ts +++ /dev/null @@ -1,233 +0,0 @@ -/* eslint-disable no-underscore-dangle */ -/* eslint no-underscore-dangle: ["error", { "allow": ["_vnode"] }] */ - -import { addons } from '@storybook/preview-api'; -import { logger } from '@storybook/client-logger'; -import { SourceType, SNIPPET_RENDERED } from '@storybook/docs-tools'; -import { type ComponentOptions } from 'vue'; -import type Vue from 'vue'; -import type { StoryContext } from '../types'; - -export const skipSourceRender = (context: StoryContext) => { - const sourceParams = context?.parameters.docs?.source; - const isArgsStory = context?.parameters.__isArgsStory; - - // always render if the user forces it - if (sourceParams?.type === SourceType.DYNAMIC) { - return false; - } - - // never render if the user is forcing the block to render code, or - // if the user provides code, or if it's not an args story. - return !isArgsStory || sourceParams?.code || sourceParams?.type === SourceType.CODE; -}; - -export const sourceDecorator = (storyFn: any, context: StoryContext) => { - const story = storyFn(); - const source = ''; - - // See ../react/jsxDecorator.tsx - const skip = skipSourceRender(context); - if (skip) { - return story; - } - - const channel = addons.getChannel(); - - const storyComponent = getStoryComponent(story.options.STORYBOOK_WRAPS); - const generateSource = (vueInstance: any) => { - try { - // console.log('updateSource():', vueInstance.$vnode); - const storyNode = lookupStoryInstance(vueInstance, storyComponent); - if (!storyNode) { - logger.warn(`Failed to find story component in the rendered tree: ${storyComponent}`); - return; - } - // eslint-disable-next-line no-param-reassign - vueInstance.source = vnodeToString(storyNode._vnode); - } catch (e) { - logger.warn(`Failed to generate dynamic story source: ${e}`); - } - }; - - return { - components: { - Story: story, - }, - data() { - return { source }; - }, - updated() { - generateSource(this); - }, - mounted() { - this.$watch('source', (val) => - channel.emit(SNIPPET_RENDERED, context.id, ``, 'vue') - ); - generateSource(this); - }, - template: '', - } as ComponentOptions & ThisType; -}; - -export function vnodeToString(vnode: Vue.VNode): string { - const attrString = [ - ...(vnode.data?.slot ? ([['slot', vnode.data.slot]] as [string, any][]) : []), - ['class', stringifyClassAttribute(vnode)], - ...(vnode.componentOptions?.propsData ? Object.entries(vnode.componentOptions.propsData) : []), - ...(vnode.data?.attrs ? Object.entries(vnode.data.attrs) : []), - ] - .filter(([name], index, list) => list.findIndex((item) => item[0] === name) === index) - .map(([name, value]) => stringifyAttr(name!, value)) - .filter(Boolean) - .join(' '); - - if (!vnode.componentOptions) { - // Non-component elements (div, span, etc...) - if (vnode.tag) { - if (!vnode.children) { - return `<${vnode.tag} ${attrString}/>`; - } - - return `<${vnode.tag} ${attrString}>${vnode.children.map(vnodeToString).join('')}`; - } - - // TextNode - if (vnode.text) { - if (/[<>"&]/.test(vnode.text)) { - return `{{\`${vnode.text.replace(/`/g, '\\`')}\`}}`; - } - - return vnode.text; - } - - // Unknown - return ''; - } - - // Probably users never see the "unknown-component". It seems that vnode.tag - // is always set. - const tag = vnode.componentOptions.tag || vnode.tag || 'unknown-component'; - - if (!vnode.componentOptions.children) { - return `<${tag} ${attrString}/>`; - } - - return `<${tag} ${attrString}>${vnode.componentOptions.children - .map(vnodeToString) - .join('')}`; -} - -function stringifyClassAttribute(vnode: Vue.VNode): string | undefined { - if (!vnode.data || (!vnode.data.staticClass && !vnode.data.class)) { - return undefined; - } - - return ( - [...(vnode.data.staticClass?.split(' ') ?? []), ...normalizeClassBinding(vnode.data.class)] - .filter(Boolean) - .join(' ') || undefined - ); -} - -// https://vuejs.org/v2/guide/class-and-style.html#Binding-HTML-Classes -function normalizeClassBinding(binding: unknown): readonly string[] { - if (!binding) { - return []; - } - - if (typeof binding === 'string') { - return [binding]; - } - - if (binding instanceof Array) { - // To handle an object-in-array binding smartly, we use recursion - return binding.map(normalizeClassBinding).reduce((a, b) => [...a, ...b], []); - } - - if (typeof binding === 'object') { - return Object.entries(binding) - .filter(([, active]) => !!active) - .map(([className]) => className); - } - - // Unknown class binding - return []; -} - -function stringifyAttr(attrName: string, value?: any): string | null { - if (typeof value === 'undefined' || typeof value === 'function') { - return null; - } - - if (value === true) { - return attrName; - } - - if (typeof value === 'string') { - return `${attrName}=${quote(value)}`; - } - - // TODO: Better serialization (unquoted object key, Symbol/Classes, etc...) - // Seems like Prettier don't format JSON-look object (= when keys are quoted) - return `:${attrName}=${quote(JSON.stringify(value))}`; -} - -function quote(value: string) { - return value.includes(`"`) && !value.includes(`'`) - ? `'${value}'` - : `"${value.replace(/"/g, '"')}"`; -} - -/** - * Skip decorators and grab a story component itself. - * https://github.com/pocka/storybook-addon-vue-info/pull/113 - */ -function getStoryComponent(w: any) { - let matched = w; - - while ( - matched && - matched.options && - matched.options.components && - matched.options.components.story && - matched.options.components.story.options && - matched.options.components.story.options.STORYBOOK_WRAPS - ) { - matched = matched.options.components.story.options.STORYBOOK_WRAPS; - } - return matched; -} - -interface VueInternal { - // We need to access this private property, in order to grab the vnode of the - // component instead of the "vnode of the parent of the component". - // Probably it's safe to rely on this because vm.$vnode is a reference for this. - // https://github.com/vuejs/vue/issues/6070#issuecomment-314389883 - _vnode: Vue.VNode; -} - -/** - * Find the story's instance from VNode tree. - */ -function lookupStoryInstance(instance: Vue, storyComponent: any): (Vue & VueInternal) | null { - if ( - instance.$vnode && - instance.$vnode.componentOptions && - instance.$vnode.componentOptions.Ctor === storyComponent - ) { - return instance as Vue & VueInternal; - } - - for (let i = 0, l = instance.$children.length; i < l; i += 1) { - const found = lookupStoryInstance(instance.$children[i], storyComponent); - - if (found) { - return found; - } - } - - return null; -} diff --git a/code/renderers/vue/src/entry-preview-docs.ts b/code/renderers/vue/src/entry-preview-docs.ts deleted file mode 100644 index bd5af4e3f916..000000000000 --- a/code/renderers/vue/src/entry-preview-docs.ts +++ /dev/null @@ -1,17 +0,0 @@ -import type { ArgTypesEnhancer, DecoratorFunction } from '@storybook/types'; -import { extractComponentDescription, enhanceArgTypes } from '@storybook/docs-tools'; -import { extractArgTypes } from './docs/extractArgTypes'; -import { sourceDecorator } from './docs/sourceDecorator'; -import type { VueRenderer } from './types'; - -export const parameters = { - docs: { - story: { inline: true, iframeHeight: '120px' }, - extractArgTypes, - extractComponentDescription, - }, -}; - -export const decorators: DecoratorFunction[] = [sourceDecorator]; - -export const argTypesEnhancers: ArgTypesEnhancer[] = [enhanceArgTypes]; diff --git a/code/renderers/vue/src/entry-preview.ts b/code/renderers/vue/src/entry-preview.ts deleted file mode 100644 index 2110e13bcf0c..000000000000 --- a/code/renderers/vue/src/entry-preview.ts +++ /dev/null @@ -1,3 +0,0 @@ -export const parameters: {} = { renderer: 'vue' }; -export { render, renderToCanvas } from './render'; -export { decorateStory as applyDecorators } from './decorateStory'; diff --git a/code/renderers/vue/src/globals.ts b/code/renderers/vue/src/globals.ts deleted file mode 100644 index f91a342510a2..000000000000 --- a/code/renderers/vue/src/globals.ts +++ /dev/null @@ -1,5 +0,0 @@ -import { global } from '@storybook/global'; - -const { window: globalWindow } = global; - -globalWindow.STORYBOOK_ENV = 'vue'; diff --git a/code/renderers/vue/src/index.ts b/code/renderers/vue/src/index.ts deleted file mode 100644 index 145fbf2612ea..000000000000 --- a/code/renderers/vue/src/index.ts +++ /dev/null @@ -1,8 +0,0 @@ -/// - -import './globals'; - -export * from './public-types'; - -// optimization: stop HMR propagation in webpack -if (typeof module !== 'undefined') module?.hot?.decline(); diff --git a/code/renderers/vue/src/preset.ts b/code/renderers/vue/src/preset.ts deleted file mode 100644 index 03b11e7e6097..000000000000 --- a/code/renderers/vue/src/preset.ts +++ /dev/null @@ -1,15 +0,0 @@ -import type { PresetProperty } from '@storybook/types'; -import { join } from 'path'; - -export const previewAnnotations: PresetProperty<'previewAnnotations'> = async ( - input = [], - options -) => { - const docsEnabled = Object.keys(await options.presets.apply('docs', {}, options)).length > 0; - const result: string[] = []; - - return result - .concat(input) - .concat([join(__dirname, 'entry-preview.mjs')]) - .concat(docsEnabled ? [join(__dirname, 'entry-preview-docs.mjs')] : []); -}; diff --git a/code/renderers/vue/src/public-types.test.ts b/code/renderers/vue/src/public-types.test.ts deleted file mode 100644 index 0f3b90fbe04d..000000000000 --- a/code/renderers/vue/src/public-types.test.ts +++ /dev/null @@ -1,175 +0,0 @@ -import { satisfies } from '@storybook/core-common'; -import type { ComponentAnnotations, StoryAnnotations } from '@storybook/types'; -import { expectTypeOf } from 'expect-type'; -import type { SetOptional } from 'type-fest'; -import type { Component } from 'vue'; -import type { ExtendedVue } from 'vue/types/vue'; -import { Vue } from 'vue/types/vue'; -import type { Decorator, Meta, StoryObj } from './public-types'; -import Button from './__tests__/Button.vue'; -import type { VueRenderer } from './types'; - -describe('Meta', () => { - test('Generic parameter of Meta can be a component', () => { - const meta: Meta = { - component: Button, - args: { label: 'good', disabled: false }, - }; - - expectTypeOf(meta).toEqualTypeOf< - ComponentAnnotations< - VueRenderer, - { - disabled: boolean; - label: string; - } - > - >(); - }); - - test('Generic parameter of Meta can be the props of the component', () => { - const meta: Meta<{ disabled: boolean; label: string }> = { - component: Button, - args: { label: 'good', disabled: false }, - }; - - expectTypeOf(meta).toEqualTypeOf< - ComponentAnnotations - >(); - }); -}); - -describe('StoryObj', () => { - type ButtonProps = { - disabled: boolean; - label: string; - }; - - test('βœ… Required args may be provided partial in meta and the story', () => { - const meta = satisfies>()({ - component: Button, - args: { label: 'good' }, - }); - - type Actual = StoryObj; - type Expected = StoryAnnotations>; - expectTypeOf().toEqualTypeOf(); - }); - - test('❌ The combined shape of meta args and story args must match the required args.', () => { - { - const meta = satisfies>()({ component: Button }); - - type Expected = StoryAnnotations; - expectTypeOf>().toEqualTypeOf(); - } - { - const meta = satisfies>()({ - component: Button, - args: { label: 'good' }, - }); - // @ts-expect-error disabled not provided ❌ - const Basic: StoryObj = {}; - - type Expected = StoryAnnotations>; - expectTypeOf(Basic).toEqualTypeOf(); - } - { - const meta = satisfies>()({ component: Button }); - const Basic: StoryObj = { - // @ts-expect-error disabled not provided ❌ - args: { label: 'good' }, - }; - - type Expected = StoryAnnotations; - expectTypeOf(Basic).toEqualTypeOf(); - } - }); - - test('Component can be used as generic parameter for StoryObj', () => { - expectTypeOf>().toEqualTypeOf< - StoryAnnotations - >(); - }); -}); - -type ThemeData = 'light' | 'dark'; - -type ComponentProps = C extends ExtendedVue - ? P - : C extends Component - ? P - : unknown; - -describe('Story args can be inferred', () => { - test('Correct args are inferred when type is widened for render function', () => { - type Props = ComponentProps & { theme: ThemeData }; - - const meta = satisfies>()({ - component: Button, - args: { disabled: false }, - render: (args) => - Vue.extend({ - components: { Button }, - template: `
Using the theme: ${args.theme}
`, - props: Object.keys(args), - }), - }); - - const Basic: StoryObj = { args: { theme: 'light', label: 'good' } }; - - type Expected = StoryAnnotations>; - expectTypeOf(Basic).toEqualTypeOf(); - }); - - const withDecorator: Decorator<{ decoratorArg: string }> = ( - storyFn, - { args: { decoratorArg } } - ) => - Vue.extend({ - components: { Story: storyFn() }, - template: `
Decorator: ${decoratorArg}
`, - }); - - test('Correct args are inferred when type is widened for decorators', () => { - type Props = ComponentProps & { decoratorArg: string }; - - const meta = satisfies>()({ - component: Button, - args: { disabled: false }, - decorators: [withDecorator], - }); - - const Basic: StoryObj = { args: { decoratorArg: 'title', label: 'good' } }; - - type Expected = StoryAnnotations>; - expectTypeOf(Basic).toEqualTypeOf(); - }); - - test('Correct args are inferred when type is widened for multiple decorators', () => { - type Props = ComponentProps & { decoratorArg: string; decoratorArg2: string }; - - const secondDecorator: Decorator<{ decoratorArg2: string }> = ( - storyFn, - { args: { decoratorArg2 } } - ) => { - return Vue.extend({ - components: { Story: storyFn() }, - template: `
Decorator: ${decoratorArg2}
`, - }); - }; - - const meta = satisfies>()({ - component: Button, - args: { disabled: false }, - decorators: [withDecorator, secondDecorator], - }); - - const Basic: StoryObj = { - args: { decoratorArg: '', decoratorArg2: '', label: 'good' }, - }; - - type Expected = StoryAnnotations>; - expectTypeOf(Basic).toEqualTypeOf(); - }); -}); diff --git a/code/renderers/vue/src/public-types.ts b/code/renderers/vue/src/public-types.ts deleted file mode 100644 index eb6c68699a96..000000000000 --- a/code/renderers/vue/src/public-types.ts +++ /dev/null @@ -1,89 +0,0 @@ -import type { - AnnotatedStoryFn, - Args, - ArgsFromMeta, - ArgsStoryFn, - ComponentAnnotations, - DecoratorFunction, - LoaderFunction, - StoryAnnotations, - StoryContext as GenericStoryContext, - StrictArgs, - ProjectAnnotations, -} from '@storybook/types'; -import type { SetOptional, Simplify } from 'type-fest'; -import type { Component } from 'vue'; -import type { ExtendedVue } from 'vue/types/vue'; -import type { VueRenderer } from './types'; - -export type { Args, ArgTypes, Parameters, StrictArgs } from '@storybook/types'; -export type { VueRenderer }; - -/** - * Metadata to configure the stories for a component. - * - * @see [Default export](https://storybook.js.org/docs/formats/component-story-format/#default-export) - */ -export type Meta = ComponentAnnotations< - VueRenderer, - ComponentPropsOrProps ->; - -/** - * Story function that represents a CSFv2 component example. - * - * @see [Named Story exports](https://storybook.js.org/docs/formats/component-story-format/#named-story-exports) - */ -export type StoryFn = AnnotatedStoryFn< - VueRenderer, - ComponentPropsOrProps ->; - -/** - * Story function that represents a CSFv3 component example. - * - * @see [Named Story exports](https://storybook.js.org/docs/formats/component-story-format/#named-story-exports) - */ -export type StoryObj = TMetaOrCmpOrArgs extends { - render?: ArgsStoryFn; - component?: infer C; - args?: infer DefaultArgs; -} - ? TMetaOrCmpOrArgs extends Component // needed because StoryObj falls into this branch, see test - ? StoryAnnotations> - : Simplify & ArgsFromMeta> extends infer TArgs - ? StoryAnnotations< - VueRenderer, - TArgs, - SetOptional> - > - : never - : StoryAnnotations>; - -type ComponentProps = C extends ExtendedVue - ? P - : C extends Component - ? P - : unknown; - -type ComponentPropsOrProps = TCmpOrArgs extends Component - ? unknown extends ComponentProps - ? TCmpOrArgs - : ComponentProps - : TCmpOrArgs; - -/** - * @deprecated Use `StoryFn` instead. - * Use `StoryObj` if you want to migrate to CSF3, which uses objects instead of functions to represent stories. - * You can read more about the CSF3 format here: https://storybook.js.org/blog/component-story-format-3-0/ - * - * Story function that represents a CSFv2 component example. - * - * @see [Named Story exports](https://storybook.js.org/docs/formats/component-story-format/#named-story-exports) - */ -export type Story = StoryFn; - -export type Decorator = DecoratorFunction; -export type Loader = LoaderFunction; -export type StoryContext = GenericStoryContext; -export type Preview = ProjectAnnotations; diff --git a/code/renderers/vue/src/render.ts b/code/renderers/vue/src/render.ts deleted file mode 100644 index f7f75893336e..000000000000 --- a/code/renderers/vue/src/render.ts +++ /dev/null @@ -1,157 +0,0 @@ -/* eslint-disable no-underscore-dangle */ -import { dedent } from 'ts-dedent'; -import Vue from 'vue'; -import type { RenderContext, ArgsStoryFn } from '@storybook/types'; -import type { CombinedVueInstance } from 'vue/types/vue'; -import type { VueRenderer } from './types'; - -export const COMPONENT = 'STORYBOOK_COMPONENT'; -export const VALUES = 'STORYBOOK_VALUES'; - -const map = new Map(); -type Instance = CombinedVueInstance< - Vue, - { - STORYBOOK_COMPONENT: any; - STORYBOOK_VALUES: Record; - }, - object, - object, - Record ->; - -const getRoot = (canvasElement: VueRenderer['canvasElement']): Instance => { - const cachedInstance = map.get(canvasElement); - if (cachedInstance != null) return cachedInstance; - - // Create a dummy "target" underneath #storybook-root - // that Vue2 will replace on first render with #storybook-vue-root - const target = document.createElement('div'); - canvasElement.appendChild(target); - - const instance: Instance = new Vue({ - beforeDestroy() { - map.delete(canvasElement); - }, - data() { - return { - [COMPONENT]: undefined, - [VALUES]: {}, - }; - }, - // @ts-expect-error What's going on here? (TS says that we should not return an array here, but the `h` directly) - render(h) { - map.set(canvasElement, instance); - return this[COMPONENT] ? [h(this[COMPONENT])] : undefined; - }, - }); - - return instance; -}; - -export const render: ArgsStoryFn = (args, context) => { - const { id, component: Component, argTypes } = context; - const component = Component as VueRenderer['component'] & { - __docgenInfo?: { displayName: string }; - props: Record; - }; - - if (!component) { - throw new Error( - `Unable to render story ${id} as the component annotation is missing from the default export` - ); - } - - let componentName = 'component'; - - // if there is a name property, we either use it or preprend with sb- in case it's an invalid name - if (component.name) { - // @ts-expect-error isReservedTag is an internal function from Vue, might be changed in future releases - const isReservedTag = Vue.config.isReservedTag && Vue.config.isReservedTag(component.name); - - componentName = isReservedTag ? `sb-${component.name}` : component.name; - } else if (component.__docgenInfo?.displayName) { - // otherwise, we use the displayName from docgen, if present - componentName = component.__docgenInfo?.displayName; - } - - let eventsBinding = ''; - const eventProps = Object.values(argTypes) - .filter((argType) => argType?.table?.category === 'events') - .map((argType) => argType.name); - - const camelCase = (str: string) => str.replace(/-([a-z])/g, (g) => g[1].toUpperCase()); - - if (eventProps.length) { - eventsBinding = eventProps.map((name) => `@${name}="$props['${camelCase(name)}']"`).join(' '); - } - - return { - props: Object.keys(argTypes), - components: { [componentName]: component }, - template: `<${componentName} ${eventsBinding} v-bind="filterOutEventProps($props)" />`, - methods: { - filterOutEventProps(props: object) { - return Object.fromEntries( - Object.entries(props).filter(([key]) => !eventProps.includes(key)) - ); - }, - }, - }; -}; - -export function renderToCanvas( - { - title, - name, - storyFn, - showMain, - showError, - showException, - forceRemount, - }: RenderContext, - canvasElement: VueRenderer['canvasElement'] -) { - const root = getRoot(canvasElement); - Vue.config.errorHandler = showException; - const element = storyFn(); - - let mountTarget: Element | VueRenderer['canvasElement'] | null; - - // Vue2 mount always replaces the mount target with Vue-generated DOM. - // https://v2.vuejs.org/v2/api/#el:~:text=replaced%20with%20Vue%2Dgenerated%20DOM - // We cannot mount to the canvasElement directly, because it would be replaced. That would - // break the references to the canvasElement like canvasElement used in the play function. - // Instead, we mount to a child element of the canvasElement, creating one if necessary. - if (canvasElement.hasChildNodes()) { - mountTarget = canvasElement.firstElementChild; - } else { - mountTarget = document.createElement('div'); - canvasElement.appendChild(mountTarget); - } - - if (!element) { - showError({ - title: `Expecting a Vue component from the story: "${name}" of "${title}".`, - description: dedent` - Did you forget to return the Vue component from the story? - Use "() => ({ template: '' })" or "() => ({ components: MyComp, template: '' })" when defining the story. - `, - }); - return; - } - - // at component creation || refresh by HMR or switching stories - if (!root[COMPONENT] || forceRemount) { - root[COMPONENT] = element; - } - - // @ts-expect-error https://github.com/storybookjs/storrybook/pull/7578#discussion_r307986139 - root[VALUES] = { ...element.options[VALUES] }; - - if (!map.has(canvasElement)) { - root.$mount(mountTarget ?? undefined); - } - - showMain(); -} diff --git a/code/renderers/vue/src/types.ts b/code/renderers/vue/src/types.ts deleted file mode 100644 index 4ae4c9c4ab3c..000000000000 --- a/code/renderers/vue/src/types.ts +++ /dev/null @@ -1,24 +0,0 @@ -import type { StoryContext as StoryContextBase, WebRenderer } from '@storybook/types'; -import type { Component, AsyncComponent } from 'vue'; - -export type { RenderContext } from '@storybook/types'; - -export interface ShowErrorArgs { - title: string; - description: string; -} - -export type StoryFnVueReturnType = - | Component - | AsyncComponent; - -export type StoryContext = StoryContextBase; - -/** - * @deprecated Use `VueRenderer` instead. - */ -export type VueFramework = VueRenderer; -export interface VueRenderer extends WebRenderer { - component: Component | AsyncComponent; - storyResult: StoryFnVueReturnType; -} diff --git a/code/renderers/vue/src/typings.d.ts b/code/renderers/vue/src/typings.d.ts deleted file mode 100644 index daefb35a5f65..000000000000 --- a/code/renderers/vue/src/typings.d.ts +++ /dev/null @@ -1,2 +0,0 @@ -declare var STORYBOOK_ENV: 'vue'; -declare var LOGLEVEL: 'trace' | 'debug' | 'info' | 'warn' | 'error' | 'silent' | undefined; diff --git a/code/renderers/vue/src/util.ts b/code/renderers/vue/src/util.ts deleted file mode 100644 index 303c750b28cc..000000000000 --- a/code/renderers/vue/src/util.ts +++ /dev/null @@ -1,24 +0,0 @@ -/* eslint-disable @typescript-eslint/ban-types */ -import type { VueConstructor } from 'vue'; - -function getType(fn: Function) { - const match = fn && fn.toString().match(/^\s*function (\w+)/); - return match ? match[1] : ''; -} - -// https://github.com/vuejs/vue/blob/dev/src/core/util/props.js#L92 -function resolveDefault({ type, default: def }: any) { - if (typeof def === 'function' && getType(type) !== 'Function') { - // known limitation: we don't have the component instance to pass - return def.call(); - } - - return def; -} - -export function extractProps(component: VueConstructor) { - // @ts-expect-error this options business seems not good according to the types - return Object.entries(component.options.props || {}) - .map(([name, prop]) => ({ [name]: resolveDefault(prop) })) - .reduce((wrap, prop) => ({ ...wrap, ...prop }), {}); -} diff --git a/code/renderers/vue/template/cli/Button.stories.js b/code/renderers/vue/template/cli/Button.stories.js deleted file mode 100644 index ac1fe487803b..000000000000 --- a/code/renderers/vue/template/cli/Button.stories.js +++ /dev/null @@ -1,48 +0,0 @@ -import MyButton from './Button.vue'; - -// More on how to set up stories at: https://storybook.js.org/docs/writing-stories -export default { - title: 'Example/Button', - component: MyButton, - tags: ['autodocs'], - render: (args, { argTypes }) => ({ - props: Object.keys(argTypes), - components: { MyButton }, - template: '', - }), - argTypes: { - backgroundColor: { control: 'color' }, - size: { - control: { type: 'select' }, - options: ['small', 'medium', 'large'], - }, - }, -}; - -// More on writing stories with args: https://storybook.js.org/docs/writing-stories/args -export const Primary = { - args: { - primary: true, - label: 'Button', - }, -}; - -export const Secondary = { - args: { - label: 'Button', - }, -}; - -export const Large = { - args: { - size: 'large', - label: 'Button', - }, -}; - -export const Small = { - args: { - size: 'small', - label: 'Button', - }, -}; diff --git a/code/renderers/vue/template/cli/Button.vue b/code/renderers/vue/template/cli/Button.vue deleted file mode 100644 index 864a2638ac5f..000000000000 --- a/code/renderers/vue/template/cli/Button.vue +++ /dev/null @@ -1,54 +0,0 @@ - - - diff --git a/code/renderers/vue/template/cli/Header.stories.js b/code/renderers/vue/template/cli/Header.stories.js deleted file mode 100644 index 553cd469b48b..000000000000 --- a/code/renderers/vue/template/cli/Header.stories.js +++ /dev/null @@ -1,30 +0,0 @@ -import MyHeader from './Header.vue'; - -export default { - title: 'Example/Header', - component: MyHeader, - // This component will have an automatically generated Autodocs entry: https://storybook.js.org/docs/writing-docs/autodocs - tags: ['autodocs'], - render: (args, { argTypes }) => ({ - props: Object.keys(argTypes), - components: { - MyHeader, - }, - template: - '', - }), - parameters: { - // More on how to position stories at: https://storybook.js.org/docs/configure/story-layout - layout: 'fullscreen', - }, -}; - -export const LoggedIn = { - args: { - user: { - name: 'Jane Doe', - }, - }, -}; - -export const LoggedOut = {}; diff --git a/code/renderers/vue/template/cli/Header.vue b/code/renderers/vue/template/cli/Header.vue deleted file mode 100644 index 4164c64bb144..000000000000 --- a/code/renderers/vue/template/cli/Header.vue +++ /dev/null @@ -1,63 +0,0 @@ - - - diff --git a/code/renderers/vue/template/cli/Page.stories.js b/code/renderers/vue/template/cli/Page.stories.js deleted file mode 100644 index e0b3309c2512..000000000000 --- a/code/renderers/vue/template/cli/Page.stories.js +++ /dev/null @@ -1,30 +0,0 @@ -import { within, userEvent, expect } from '@storybook/test'; -import MyPage from './Page.vue'; - -export default { - title: 'Example/Page', - component: MyPage, - render: () => ({ - components: { MyPage }, - template: '', - }), - parameters: { - // More on how to position stories at: https://storybook.js.org/docs/configure/story-layout - layout: 'fullscreen', - }, -}; -export const LoggedOut = {}; - -// More on interaction testing: https://storybook.js.org/docs/writing-tests/interaction-testing -export const LoggedIn = { - play: async ({ canvasElement }) => { - const canvas = within(canvasElement); - const loginButton = canvas.getByRole('button', { name: /Log in/i }); - await expect(loginButton).toBeInTheDocument(); - await userEvent.click(loginButton); - await expect(loginButton).not.toBeInTheDocument(); - - const logoutButton = canvas.getByRole('button', { name: /Log out/i }); - await expect(logoutButton).toBeInTheDocument(); - }, -}; diff --git a/code/renderers/vue/template/cli/Page.vue b/code/renderers/vue/template/cli/Page.vue deleted file mode 100644 index c57bfa7b10d5..000000000000 --- a/code/renderers/vue/template/cli/Page.vue +++ /dev/null @@ -1,88 +0,0 @@ - - - diff --git a/code/renderers/vue/template/components/Button.vue b/code/renderers/vue/template/components/Button.vue deleted file mode 100644 index 864a2638ac5f..000000000000 --- a/code/renderers/vue/template/components/Button.vue +++ /dev/null @@ -1,54 +0,0 @@ - - - diff --git a/code/renderers/vue/template/components/Form.vue b/code/renderers/vue/template/components/Form.vue deleted file mode 100644 index 2375a381eb7a..000000000000 --- a/code/renderers/vue/template/components/Form.vue +++ /dev/null @@ -1,47 +0,0 @@ - - - diff --git a/code/renderers/vue/template/components/Html.vue b/code/renderers/vue/template/components/Html.vue deleted file mode 100644 index 5b14a6b1a9ab..000000000000 --- a/code/renderers/vue/template/components/Html.vue +++ /dev/null @@ -1,16 +0,0 @@ - - - diff --git a/code/renderers/vue/template/components/Pre.vue b/code/renderers/vue/template/components/Pre.vue deleted file mode 100644 index eda0553dce3d..000000000000 --- a/code/renderers/vue/template/components/Pre.vue +++ /dev/null @@ -1,29 +0,0 @@ - - - diff --git a/code/renderers/vue/template/components/button.css b/code/renderers/vue/template/components/button.css deleted file mode 100644 index dc91dc76370b..000000000000 --- a/code/renderers/vue/template/components/button.css +++ /dev/null @@ -1,30 +0,0 @@ -.storybook-button { - font-family: 'Nunito Sans', 'Helvetica Neue', Helvetica, Arial, sans-serif; - font-weight: 700; - border: 0; - border-radius: 3em; - cursor: pointer; - display: inline-block; - line-height: 1; -} -.storybook-button--primary { - color: white; - background-color: #1ea7fd; -} -.storybook-button--secondary { - color: #333; - background-color: transparent; - box-shadow: rgba(0, 0, 0, 0.15) 0px 0px 0px 1px inset; -} -.storybook-button--small { - font-size: 12px; - padding: 10px 16px; -} -.storybook-button--medium { - font-size: 14px; - padding: 11px 20px; -} -.storybook-button--large { - font-size: 16px; - padding: 12px 24px; -} diff --git a/code/renderers/vue/template/components/index.js b/code/renderers/vue/template/components/index.js deleted file mode 100644 index 342dc4a7a988..000000000000 --- a/code/renderers/vue/template/components/index.js +++ /dev/null @@ -1,13 +0,0 @@ -import { global as globalThis } from '@storybook/global'; -import Vue from 'vue'; - -import Button from './Button.vue'; -import Pre from './Pre.vue'; -import Form from './Form.vue'; -import Html from './Html.vue'; - -globalThis.Components = { Button, Pre, Form, Html }; -globalThis.storybookRenderer = 'vue'; - -// test globally-registered components -Vue.component('global-button', Button); diff --git a/code/renderers/vue/template/stories/core-template.stories.js b/code/renderers/vue/template/stories/core-template.stories.js deleted file mode 100644 index eedcf0486e6f..000000000000 --- a/code/renderers/vue/template/stories/core-template.stories.js +++ /dev/null @@ -1,6 +0,0 @@ -export default { - // we just need something here to make this valid CSF - component: {}, -}; - -export const StringOnly = () => ''; diff --git a/code/renderers/vue/template/stories/custom-decorators.stories.js b/code/renderers/vue/template/stories/custom-decorators.stories.js deleted file mode 100644 index 1415f6987614..000000000000 --- a/code/renderers/vue/template/stories/custom-decorators.stories.js +++ /dev/null @@ -1,43 +0,0 @@ -import { global as globalThis } from '@storybook/global'; - -const MyButton = globalThis.Components.Button; - -export default { - component: {}, - decorators: [ - (storyFn) => { - // Decorated with story-function - const WrapButton = storyFn({ customContext: 52, parameters: { customParameter: 42 } }); - return { - components: { WrapButton }, - template: '
', - data() { - return { borderStyle: 'medium solid red' }; - }, - }; - }, - () => ({ - // Decorated with `story` component - template: '
', - data() { - return { - borderStyle: 'medium solid blue', - }; - }, - }), - ], -}; - -export const Template = () => ({ - template: '', -}); - -export const WithData = (_args, { parameters: { fileName, ...parameters }, hooks, ...rest }) => ({ - template: `
${JSON.stringify({ ...rest, parameters }, null, 2)}
`, -}); - -export const Render = () => ({ - render(h) { - return h(MyButton, { props: { color: 'pink', label: 'renders component: MyButton' } }); - }, -}); diff --git a/code/renderers/vue/template/stories/custom-rendering.stories.js b/code/renderers/vue/template/stories/custom-rendering.stories.js deleted file mode 100644 index 39032b05f8f7..000000000000 --- a/code/renderers/vue/template/stories/custom-rendering.stories.js +++ /dev/null @@ -1,62 +0,0 @@ -import { global as globalThis } from '@storybook/global'; - -const MyButton = globalThis.Components.Button; - -export default { - component: {}, -}; - -export const Render = () => ({ - render: (h) => h('div', ['renders a div with some text in it..']), -}); - -export const RenderComponent = () => ({ - render(h) { - return h(MyButton, { props: { color: 'pink', label: 'renders component: MyButton' } }); - }, -}); - -export const Template = () => ({ - template: ` -
-

A template

-

rendered in vue in storybook

-
`, -}); - -export const TemplateComponent = () => ({ - components: { MyButton }, - template: '', -}); - -export const TemplateMethods = () => ({ - components: { MyButton }, - template: ` -

- Clicking the button will navigate to another story using the 'addon-links'
- -

`, - methods: { - action: () => {}, - }, -}); - -// FIXME: test JSX? -// export const JSX = () => ({ -// components: { MyButton }, -// render() { -// // eslint-disable-next-line react/react-in-jsx-scope, react/no-children-prop -// return ; -// }, -// }); - -export const PreRegisteredComponent = () => ({ - /* By pre-registering component in preview.js, - * the need to register all components with each story is removed. - * You'll only need the template */ - template: ` -

- This component was pre-registered in .storybook/preview.js
- -

`, -}); diff --git a/code/renderers/vue/template/stories/vue-mdx.stories.mdx b/code/renderers/vue/template/stories/vue-mdx.stories.mdx deleted file mode 100644 index 067d9af4eb6b..000000000000 --- a/code/renderers/vue/template/stories/vue-mdx.stories.mdx +++ /dev/null @@ -1,44 +0,0 @@ -import { global as globalThis } from '@storybook/global'; -import { Meta, Story, Canvas } from '@storybook/addon-docs'; - - - -# Vue-specific MDX Stories - -export const Button = globalThis.Components.Button; - -export const Template = (args, { argTypes }) => ({ - props: Object.keys(argTypes), - components: { MyButton: Button }, - template: '', -}); - -## Primary - - - - {{ - components: { MyButton: Button }, - template: '', - }} - - - -## Secondary - - - - {{ - components: { MyButton: Button }, - template: '', - }} - - - -## From template - - - - {Template.bind({})} - - diff --git a/code/renderers/vue/tsconfig.json b/code/renderers/vue/tsconfig.json deleted file mode 100644 index 4fbfb70f6d7b..000000000000 --- a/code/renderers/vue/tsconfig.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "extends": "../../tsconfig.json", - "compilerOptions": { - "strict": true, - "skipLibCheck": true, - "resolveJsonModule": true, - "allowJs": true - }, - "vueCompilerOptions": { - "target": 2 - }, - "include": ["src/**/*", "src/**/*.vue", "template/**/*", "template/**/*.vue"] -} diff --git a/code/ui/manager/src/globals/exports.ts b/code/ui/manager/src/globals/exports.ts index 7505127ecb71..adeceb1a1e8c 100644 --- a/code/ui/manager/src/globals/exports.ts +++ b/code/ui/manager/src/globals/exports.ts @@ -232,6 +232,8 @@ export default { 'AdminIcon', 'AlertAltIcon', 'AlertIcon', + 'AlignLeftIcon', + 'AlignRightIcon', 'AppleIcon', 'ArrowDownIcon', 'ArrowLeftIcon', @@ -362,7 +364,6 @@ export default { 'MediumIcon', 'MemoryIcon', 'MenuIcon', - 'MenuReverseIcon', 'MergeIcon', 'MirrorIcon', 'MobileIcon', diff --git a/code/yarn.lock b/code/yarn.lock index c5118b9cd016..b16fc190b6f4 100644 --- a/code/yarn.lock +++ b/code/yarn.lock @@ -25,9 +25,9 @@ __metadata: linkType: hard "@adobe/css-tools@npm:^4.0.1, @adobe/css-tools@npm:^4.3.1": - version: 4.3.1 - resolution: "@adobe/css-tools@npm:4.3.1" - checksum: 05672719b544cc0c21ae3ed0eb6349bf458e9d09457578eeeb07cf0f696469ac6417e9c9be1b129e5d6a18098a061c1db55b2275591760ef30a79822436fcbfa + version: 4.3.2 + resolution: "@adobe/css-tools@npm:4.3.2" + checksum: 296a03dd29f227c60500d2da8c7f64991fecf1d8b456ce2b4adb8cec7363d9c08b5b03f1463673fc8cbfe54b538745588e7a13c736d2dd14a80c01a20f127f39 languageName: node linkType: hard @@ -41,107 +41,98 @@ __metadata: languageName: node linkType: hard -"@angular-devkit/architect@npm:0.1602.10": - version: 0.1602.10 - resolution: "@angular-devkit/architect@npm:0.1602.10" - dependencies: - "@angular-devkit/core": "npm:16.2.10" - rxjs: "npm:7.8.1" - checksum: ec10fdf77f5874df16151c77e587a03433a40b34528e905a3a2a86c81a1f2a1994bf2837aed39c8dbcc087b60403c8bb81899ba9f7d603fccfae75ff4abfbc9c - languageName: node - linkType: hard - -"@angular-devkit/architect@npm:^0.1600.0-rc.4": - version: 0.1600.6 - resolution: "@angular-devkit/architect@npm:0.1600.6" +"@angular-devkit/architect@npm:0.1700.5, @angular-devkit/architect@npm:^0.1700.5": + version: 0.1700.5 + resolution: "@angular-devkit/architect@npm:0.1700.5" dependencies: - "@angular-devkit/core": "npm:16.0.6" + "@angular-devkit/core": "npm:17.0.5" rxjs: "npm:7.8.1" - checksum: 90bb653590008ef33f398eefde986e03c6992257aabf0c83cdc752727c587ba8d446a9735875d7451334b5dde95bc295f53ea8bd2deed43d0e56bdf9815cf574 + checksum: e012ee569d8ef17f0f2e64c4828d0ac0e7dd82e991f223bb0526eea7e82d0f645d5dc4bafd09b67f07418e727db294352d1b005bd52ba338459d91d9a3394522 languageName: node linkType: hard -"@angular-devkit/build-angular@npm:^16.0.0-rc.4": - version: 16.2.10 - resolution: "@angular-devkit/build-angular@npm:16.2.10" +"@angular-devkit/build-angular@npm:^17.0.5": + version: 17.0.5 + resolution: "@angular-devkit/build-angular@npm:17.0.5" dependencies: "@ampproject/remapping": "npm:2.2.1" - "@angular-devkit/architect": "npm:0.1602.10" - "@angular-devkit/build-webpack": "npm:0.1602.10" - "@angular-devkit/core": "npm:16.2.10" - "@babel/core": "npm:7.22.9" - "@babel/generator": "npm:7.22.9" + "@angular-devkit/architect": "npm:0.1700.5" + "@angular-devkit/build-webpack": "npm:0.1700.5" + "@angular-devkit/core": "npm:17.0.5" + "@babel/core": "npm:7.23.2" + "@babel/generator": "npm:7.23.0" "@babel/helper-annotate-as-pure": "npm:7.22.5" "@babel/helper-split-export-declaration": "npm:7.22.6" - "@babel/plugin-proposal-async-generator-functions": "npm:7.20.7" + "@babel/plugin-transform-async-generator-functions": "npm:7.23.2" "@babel/plugin-transform-async-to-generator": "npm:7.22.5" - "@babel/plugin-transform-runtime": "npm:7.22.9" - "@babel/preset-env": "npm:7.22.9" - "@babel/runtime": "npm:7.22.6" - "@babel/template": "npm:7.22.5" + "@babel/plugin-transform-runtime": "npm:7.23.2" + "@babel/preset-env": "npm:7.23.2" + "@babel/runtime": "npm:7.23.2" "@discoveryjs/json-ext": "npm:0.5.7" - "@ngtools/webpack": "npm:16.2.10" + "@ngtools/webpack": "npm:17.0.5" "@vitejs/plugin-basic-ssl": "npm:1.0.1" ansi-colors: "npm:4.1.3" - autoprefixer: "npm:10.4.14" + autoprefixer: "npm:10.4.16" babel-loader: "npm:9.1.3" babel-plugin-istanbul: "npm:6.1.1" + browser-sync: "npm:2.29.3" browserslist: "npm:^4.21.5" chokidar: "npm:3.5.3" copy-webpack-plugin: "npm:11.0.0" critters: "npm:0.0.20" css-loader: "npm:6.8.1" - esbuild: "npm:0.18.17" - esbuild-wasm: "npm:0.18.17" + esbuild: "npm:0.19.5" + esbuild-wasm: "npm:0.19.5" fast-glob: "npm:3.3.1" - guess-parser: "npm:0.4.22" - https-proxy-agent: "npm:5.0.1" - inquirer: "npm:8.2.4" + http-proxy-middleware: "npm:2.0.6" + https-proxy-agent: "npm:7.0.2" + inquirer: "npm:9.2.11" jsonc-parser: "npm:3.2.0" karma-source-map-support: "npm:1.4.0" - less: "npm:4.1.3" + less: "npm:4.2.0" less-loader: "npm:11.1.0" license-webpack-plugin: "npm:4.0.2" loader-utils: "npm:3.2.1" - magic-string: "npm:0.30.1" + magic-string: "npm:0.30.5" mini-css-extract-plugin: "npm:2.7.6" mrmime: "npm:1.0.1" open: "npm:8.4.2" ora: "npm:5.4.1" parse5-html-rewriting-stream: "npm:7.0.0" - picomatch: "npm:2.3.1" - piscina: "npm:4.0.0" + picomatch: "npm:3.0.1" + piscina: "npm:4.1.0" postcss: "npm:8.4.31" postcss-loader: "npm:7.3.3" resolve-url-loader: "npm:5.0.0" rxjs: "npm:7.8.1" - sass: "npm:1.64.1" + sass: "npm:1.69.5" sass-loader: "npm:13.3.2" semver: "npm:7.5.4" source-map-loader: "npm:4.0.1" source-map-support: "npm:0.5.21" - terser: "npm:5.19.2" + terser: "npm:5.24.0" text-table: "npm:0.2.0" tree-kill: "npm:1.2.2" - tslib: "npm:2.6.1" - vite: "npm:4.4.7" - webpack: "npm:5.88.2" + tslib: "npm:2.6.2" + undici: "npm:5.27.2" + vite: "npm:4.5.0" + webpack: "npm:5.89.0" webpack-dev-middleware: "npm:6.1.1" webpack-dev-server: "npm:4.15.1" - webpack-merge: "npm:5.9.0" + webpack-merge: "npm:5.10.0" webpack-subresource-integrity: "npm:5.1.0" peerDependencies: - "@angular/compiler-cli": ^16.0.0 - "@angular/localize": ^16.0.0 - "@angular/platform-server": ^16.0.0 - "@angular/service-worker": ^16.0.0 + "@angular/compiler-cli": ^17.0.0 + "@angular/localize": ^17.0.0 + "@angular/platform-server": ^17.0.0 + "@angular/service-worker": ^17.0.0 jest: ^29.5.0 jest-environment-jsdom: ^29.5.0 karma: ^6.3.0 - ng-packagr: ^16.0.0 + ng-packagr: ^17.0.0 protractor: ^7.0.0 tailwindcss: ^2.0.0 || ^3.0.0 - typescript: ">=4.9.3 <5.2" + typescript: ">=5.2 <5.3" dependenciesMeta: esbuild: optional: true @@ -164,49 +155,31 @@ __metadata: optional: true tailwindcss: optional: true - checksum: 7654c61cf9e0458d2391081d27cb2095a4ca2149777abf69f9786d383b7a5a7c8e18f390e5cc5cf6064e0ea56b7dcfa24f3a6c89afd7074fecda5b319617ef38 + checksum: f85125a295bd5df9fde24e7d39f2aee64ae9865e7ef8324d4256d029c85fc26f8cd7a19906d90eba7beeb881eeb63e45e18e84465182f58a4becad48fdc4f5b9 languageName: node linkType: hard -"@angular-devkit/build-webpack@npm:0.1602.10": - version: 0.1602.10 - resolution: "@angular-devkit/build-webpack@npm:0.1602.10" +"@angular-devkit/build-webpack@npm:0.1700.5": + version: 0.1700.5 + resolution: "@angular-devkit/build-webpack@npm:0.1700.5" dependencies: - "@angular-devkit/architect": "npm:0.1602.10" + "@angular-devkit/architect": "npm:0.1700.5" rxjs: "npm:7.8.1" peerDependencies: webpack: ^5.30.0 webpack-dev-server: ^4.0.0 - checksum: e78fd4bfb0956109490b4a6be61a33c5435a84cf22b462d7b60367c2dc570737875305f7ff9843304a3570c16b02b69a1c69e2c4373ab25957bf9bde82df8e7f - languageName: node - linkType: hard - -"@angular-devkit/core@npm:16.0.6": - version: 16.0.6 - resolution: "@angular-devkit/core@npm:16.0.6" - dependencies: - ajv: "npm:8.12.0" - ajv-formats: "npm:2.1.1" - jsonc-parser: "npm:3.2.0" - rxjs: "npm:7.8.1" - source-map: "npm:0.7.4" - peerDependencies: - chokidar: ^3.5.2 - peerDependenciesMeta: - chokidar: - optional: true - checksum: 5cd28c31a5f39f7493688508e331f3eb41ad40b3deb02958259268b7820ff61750637f22554ad0a6fe05e49134d916b3573741d98dd65d3b5a6546aea4fd0efd + checksum: b9cd16a0e8645c749fea7c2012812f6ef81325cc337f9fd6a6f3e9565530c8e261b92b3d08a7d537bd90b337a68489159a4150facd8cc5a74cf68fc9d1a81d92 languageName: node linkType: hard -"@angular-devkit/core@npm:16.2.10, @angular-devkit/core@npm:^16.0.0-rc.4": - version: 16.2.10 - resolution: "@angular-devkit/core@npm:16.2.10" +"@angular-devkit/core@npm:17.0.5, @angular-devkit/core@npm:^17.0.5": + version: 17.0.5 + resolution: "@angular-devkit/core@npm:17.0.5" dependencies: ajv: "npm:8.12.0" ajv-formats: "npm:2.1.1" jsonc-parser: "npm:3.2.0" - picomatch: "npm:2.3.1" + picomatch: "npm:3.0.1" rxjs: "npm:7.8.1" source-map: "npm:0.7.4" peerDependencies: @@ -214,77 +187,77 @@ __metadata: peerDependenciesMeta: chokidar: optional: true - checksum: b3252540dde1c248027c9bf532b1024cf1169c4f6b2c6319cd22747db7e3320770031490062ccaae9981f403606c0d229dc6ab78fb11cde74e3633e7fc834e97 + checksum: 9819b10cc7b863026fff5405adccdd2d7ef5cc227574614c321313d6b3e61425236f9e6aaa2cafd443f75e6ee73683a3fe5a5392b9445eb1fa07da50cc897a10 languageName: node linkType: hard -"@angular-devkit/schematics@npm:16.2.10": - version: 16.2.10 - resolution: "@angular-devkit/schematics@npm:16.2.10" +"@angular-devkit/schematics@npm:17.0.5": + version: 17.0.5 + resolution: "@angular-devkit/schematics@npm:17.0.5" dependencies: - "@angular-devkit/core": "npm:16.2.10" + "@angular-devkit/core": "npm:17.0.5" jsonc-parser: "npm:3.2.0" - magic-string: "npm:0.30.1" + magic-string: "npm:0.30.5" ora: "npm:5.4.1" rxjs: "npm:7.8.1" - checksum: 47ff66fb24a0dd9e674fbcd644b3bea3a045b10348accbb7ad0b94ebf45d4957675e3b3be8c26fa2c6226431af59fa478516945ef83aa6c2dc8964b2e16146b0 + checksum: 692faf297cbb81924afc35ae82aa20c6a992bd2b47020a13118f9f8b1b4e92ee67f7ae11f1ccc3b63e0c05a57c4429edc4ca1807c386b5cc8172489595060892 languageName: node linkType: hard -"@angular/animations@npm:^16.0.0-rc.4": - version: 16.2.12 - resolution: "@angular/animations@npm:16.2.12" +"@angular/animations@npm:^17.0.5": + version: 17.0.5 + resolution: "@angular/animations@npm:17.0.5" dependencies: tslib: "npm:^2.3.0" peerDependencies: - "@angular/core": 16.2.12 - checksum: ac1bf1cd4abce7b5137c068fb21e28574db6153faee7a10d9b6c6605be477b4f26a4647c8c5d1116f70926669f01491e564aa616510921dd5f44cd507a4b9d33 + "@angular/core": 17.0.5 + checksum: 8c0dfef494985d029cf25f0de2bf391f2c0d85e457aa1f2510a39c4ea489ff5b5dcfdb5312312195c128137799ed505157ec3f7b994b54f2a08960b46a8f576f languageName: node linkType: hard -"@angular/cli@npm:^16.0.0-rc.4": - version: 16.2.10 - resolution: "@angular/cli@npm:16.2.10" +"@angular/cli@npm:^17.0.5": + version: 17.0.5 + resolution: "@angular/cli@npm:17.0.5" dependencies: - "@angular-devkit/architect": "npm:0.1602.10" - "@angular-devkit/core": "npm:16.2.10" - "@angular-devkit/schematics": "npm:16.2.10" - "@schematics/angular": "npm:16.2.10" + "@angular-devkit/architect": "npm:0.1700.5" + "@angular-devkit/core": "npm:17.0.5" + "@angular-devkit/schematics": "npm:17.0.5" + "@schematics/angular": "npm:17.0.5" "@yarnpkg/lockfile": "npm:1.1.0" ansi-colors: "npm:4.1.3" ini: "npm:4.1.1" - inquirer: "npm:8.2.4" + inquirer: "npm:9.2.11" jsonc-parser: "npm:3.2.0" - npm-package-arg: "npm:10.1.0" - npm-pick-manifest: "npm:8.0.1" + npm-package-arg: "npm:11.0.1" + npm-pick-manifest: "npm:9.0.0" open: "npm:8.4.2" ora: "npm:5.4.1" - pacote: "npm:15.2.0" - resolve: "npm:1.22.2" + pacote: "npm:17.0.4" + resolve: "npm:1.22.8" semver: "npm:7.5.4" symbol-observable: "npm:4.0.0" yargs: "npm:17.7.2" bin: ng: bin/ng.js - checksum: fab8d9f00501b92f11e52cf179ff2197d816815f1466228882827a40189eb9b61227df5c499ad61a8e25b9eefa47374ee7e7731691b300eb289c81551acecee0 + checksum: 43590ece68c70092a380df35dbed47c51572154048568392cf5e25c224bd56de5d24d813f23a50ea1f8ca9eb4fe514b40d34b7ac0ef84f6fb4d4d5e4f0d4b456 languageName: node linkType: hard -"@angular/common@npm:^16.0.0-rc.4": - version: 16.2.12 - resolution: "@angular/common@npm:16.2.12" +"@angular/common@npm:^17.0.5": + version: 17.0.5 + resolution: "@angular/common@npm:17.0.5" dependencies: tslib: "npm:^2.3.0" peerDependencies: - "@angular/core": 16.2.12 + "@angular/core": 17.0.5 rxjs: ^6.5.3 || ^7.4.0 - checksum: a5bd26a6fd41a08bfdb56b99cc362df014740736e1f8cfca690e4ab2e64572a1b6bc9a2e8bcdc94ed1346593a699e157dffebbc69def5828ff7e597d1b31de33 + checksum: de42277f58e858f39f8f08e891a355928e7ac7c2ddb21b674252a893e61b5503a2880adc505e66cc002b291a5e6bde4786622f2ecaa541d54b75488d306e54da languageName: node linkType: hard -"@angular/compiler-cli@npm:^16.0.0-rc.4": - version: 16.2.12 - resolution: "@angular/compiler-cli@npm:16.2.12" +"@angular/compiler-cli@npm:^17.0.5": + version: 17.0.5 + resolution: "@angular/compiler-cli@npm:17.0.5" dependencies: "@babel/core": "npm:7.23.2" "@jridgewell/sourcemap-codec": "npm:^1.4.14" @@ -295,83 +268,83 @@ __metadata: tslib: "npm:^2.3.0" yargs: "npm:^17.2.1" peerDependencies: - "@angular/compiler": 16.2.12 - typescript: ">=4.9.3 <5.2" + "@angular/compiler": 17.0.5 + typescript: ">=5.2 <5.3" bin: ng-xi18n: bundles/src/bin/ng_xi18n.js ngc: bundles/src/bin/ngc.js ngcc: bundles/ngcc/index.js - checksum: abe11a775d7c898b585e4a773f42b4e4b0a99b11d9e16276c9cd64404ba3c32be35a7c4cb65f44b2abe58fdc4b28d2bd52f45b6a64dad414b93f52eff991ba97 + checksum: adf6d134a2cac052a00a678fbd451834cf17bc61a7583cb7904ab09d531d5d79ff5fec2c96ab891719b370b0904369ef960a72ab0721fdf14be4f0b3311fe6e5 languageName: node linkType: hard -"@angular/compiler@npm:^16.0.0-rc.4": - version: 16.2.12 - resolution: "@angular/compiler@npm:16.2.12" +"@angular/compiler@npm:^17.0.5": + version: 17.0.5 + resolution: "@angular/compiler@npm:17.0.5" dependencies: tslib: "npm:^2.3.0" peerDependencies: - "@angular/core": 16.2.12 + "@angular/core": 17.0.5 peerDependenciesMeta: "@angular/core": optional: true - checksum: ddc6065ec263c69320e45e65a63c9a6e310cd1eeca51242b19c58db03c987140bcde3be2fd03cb7a52f8a2590a5c8780a7a4a13a9bc7b451dd25c7b245f13df7 + checksum: 514eebeae37cb0a053f920bb0728fcaee71b6e51c3910e615d9af78c7e6f26878f17b6ce0a272861413121e84fda724df06046e1fb9646a82795e747a7acc337 languageName: node linkType: hard -"@angular/core@npm:^16.0.0-rc.4": - version: 16.2.12 - resolution: "@angular/core@npm:16.2.12" +"@angular/core@npm:^17.0.5": + version: 17.0.5 + resolution: "@angular/core@npm:17.0.5" dependencies: tslib: "npm:^2.3.0" peerDependencies: rxjs: ^6.5.3 || ^7.4.0 - zone.js: ~0.13.0 - checksum: 4a4a9fee1a160e922b28f264eed82b85f595f66aebddf2343533e0c7a5f947e11cb11b98a463f591bfd902f8846f24bfc4eceead61d35ef15922d8821e2cd5d5 + zone.js: ~0.14.0 + checksum: cf8bd99d6508667f1bb0422fb16eef198b1afc1aa9f80ad4e1040f9f164a6fcf3c0fd2d786d8189db7bd3a33f7489a6143370afe7778c672df6e5b8a45ae8035 languageName: node linkType: hard -"@angular/forms@npm:^16.0.0-rc.4": - version: 16.2.12 - resolution: "@angular/forms@npm:16.2.12" +"@angular/forms@npm:^17.0.5": + version: 17.0.5 + resolution: "@angular/forms@npm:17.0.5" dependencies: tslib: "npm:^2.3.0" peerDependencies: - "@angular/common": 16.2.12 - "@angular/core": 16.2.12 - "@angular/platform-browser": 16.2.12 + "@angular/common": 17.0.5 + "@angular/core": 17.0.5 + "@angular/platform-browser": 17.0.5 rxjs: ^6.5.3 || ^7.4.0 - checksum: 4b167441e17914e7147be615718e21ece7a49942e45a0ee6708c36b72f2ff0f06fd56fbcee5a7e0909c3b6bacfac27ca19f9a32fdfc61615bb5b4a6643c2324b + checksum: e8a8a77ce41557f02a87a19727f4b07822950c83d2a1f682088f78bc5fcadf2d9eeee0057e6221c1217cd9af04937b6e09a07e18c395ed1b6dff803484a41f3b languageName: node linkType: hard -"@angular/platform-browser-dynamic@npm:^16.0.0-rc.4": - version: 16.2.12 - resolution: "@angular/platform-browser-dynamic@npm:16.2.12" +"@angular/platform-browser-dynamic@npm:^17.0.5": + version: 17.0.5 + resolution: "@angular/platform-browser-dynamic@npm:17.0.5" dependencies: tslib: "npm:^2.3.0" peerDependencies: - "@angular/common": 16.2.12 - "@angular/compiler": 16.2.12 - "@angular/core": 16.2.12 - "@angular/platform-browser": 16.2.12 - checksum: b11bcc6a5f09d775a037385475f1b06123b31ef545b3c58e6458a6bedb9565faf2f0b85e226ebb2172f14d79a1928d8294d559ff700695077b88f8fd4b812094 + "@angular/common": 17.0.5 + "@angular/compiler": 17.0.5 + "@angular/core": 17.0.5 + "@angular/platform-browser": 17.0.5 + checksum: f565d58f043dae1e91f339617098ea56f4108b8a75fac9929dcdd168542190664bbe27d1d1bff59eccbb25396c9a315b9cf9854017c5f3a0d4f137ed6d6437ea languageName: node linkType: hard -"@angular/platform-browser@npm:^16.0.0-rc.4": - version: 16.2.12 - resolution: "@angular/platform-browser@npm:16.2.12" +"@angular/platform-browser@npm:^17.0.5": + version: 17.0.5 + resolution: "@angular/platform-browser@npm:17.0.5" dependencies: tslib: "npm:^2.3.0" peerDependencies: - "@angular/animations": 16.2.12 - "@angular/common": 16.2.12 - "@angular/core": 16.2.12 + "@angular/animations": 17.0.5 + "@angular/common": 17.0.5 + "@angular/core": 17.0.5 peerDependenciesMeta: "@angular/animations": optional: true - checksum: 076ab476c4a64cf0c60a1d71001bc79ecb0d384443312bb85fdf7deaa105cec15d3a5abc6b696fb1ffb7413581f94fd9b8e9b0e9d1652027ee15217fe7719e3e + checksum: 060dad32e89ca73e9faa0eafd1403ed5b1d1f60bccaa52802c3e9786e88bb63e9447da5aabdb93fcd82d8e0adebb1d22357513524703af7bf52b589a7b0171cf languageName: node linkType: hard @@ -393,67 +366,67 @@ __metadata: languageName: node linkType: hard -"@babel/code-frame@npm:^7.0.0, @babel/code-frame@npm:^7.10.4, @babel/code-frame@npm:^7.12.13, @babel/code-frame@npm:^7.16.0, @babel/code-frame@npm:^7.16.7, @babel/code-frame@npm:^7.22.13, @babel/code-frame@npm:^7.22.5, @babel/code-frame@npm:^7.23.4": - version: 7.23.4 - resolution: "@babel/code-frame@npm:7.23.4" +"@babel/code-frame@npm:^7.0.0, @babel/code-frame@npm:^7.10.4, @babel/code-frame@npm:^7.12.13, @babel/code-frame@npm:^7.16.0, @babel/code-frame@npm:^7.16.7, @babel/code-frame@npm:^7.22.13, @babel/code-frame@npm:^7.23.5": + version: 7.23.5 + resolution: "@babel/code-frame@npm:7.23.5" dependencies: "@babel/highlight": "npm:^7.23.4" chalk: "npm:^2.4.2" - checksum: 2ef6f5e10004c4e8b755961b68570db0ea556ccb17a37c13a7f1fed1f4e273aed6c1ae1fcb86abb991620d8be083e1472a7ea5429f05bc342de54c027b07ea83 + checksum: a10e843595ddd9f97faa99917414813c06214f4d9205294013e20c70fbdf4f943760da37dec1d998bf3e6fc20fa2918a47c0e987a7e458663feb7698063ad7c6 languageName: node linkType: hard -"@babel/compat-data@npm:^7.22.6, @babel/compat-data@npm:^7.22.9, @babel/compat-data@npm:^7.23.3": - version: 7.23.3 - resolution: "@babel/compat-data@npm:7.23.3" - checksum: c6af331753c34ee8a5678bc94404320826cb56b1dda3efc1311ec8fb0774e78225132f3c1acc988440ace667f14a838e297a822692b95758aa63da406e1f97a1 +"@babel/compat-data@npm:^7.22.6, @babel/compat-data@npm:^7.22.9, @babel/compat-data@npm:^7.23.2, @babel/compat-data@npm:^7.23.3, @babel/compat-data@npm:^7.23.5": + version: 7.23.5 + resolution: "@babel/compat-data@npm:7.23.5" + checksum: 081278ed46131a890ad566a59c61600a5f9557bd8ee5e535890c8548192532ea92590742fd74bd9db83d74c669ef8a04a7e1c85cdea27f960233e3b83c3a957c languageName: node linkType: hard "@babel/core@npm:^7.23.2": - version: 7.23.3 - resolution: "@babel/core@npm:7.23.3" + version: 7.23.5 + resolution: "@babel/core@npm:7.23.5" dependencies: "@ampproject/remapping": "npm:^2.2.0" - "@babel/code-frame": "npm:^7.22.13" - "@babel/generator": "npm:^7.23.3" + "@babel/code-frame": "npm:^7.23.5" + "@babel/generator": "npm:^7.23.5" "@babel/helper-compilation-targets": "npm:^7.22.15" "@babel/helper-module-transforms": "npm:^7.23.3" - "@babel/helpers": "npm:^7.23.2" - "@babel/parser": "npm:^7.23.3" + "@babel/helpers": "npm:^7.23.5" + "@babel/parser": "npm:^7.23.5" "@babel/template": "npm:^7.22.15" - "@babel/traverse": "npm:^7.23.3" - "@babel/types": "npm:^7.23.3" + "@babel/traverse": "npm:^7.23.5" + "@babel/types": "npm:^7.23.5" 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: 08d43b749e24052d12713a7fb1f0c0d1275d4fb056d00846faeb8da79ecf6d0ba91a11b6afec407b8b0f9388d00e2c2f485f282bef0ade4d6d0a17de191a4287 + checksum: 311a512a870ee330a3f9a7ea89e5df790b2b5af0b1bd98b10b4edc0de2ac440f0df4d69ea2c0ee38a4b89041b9a495802741d93603be7d4fd834ec8bb6970bd2 languageName: node linkType: hard -"@babel/generator@npm:7.22.9": - version: 7.22.9 - resolution: "@babel/generator@npm:7.22.9" +"@babel/generator@npm:7.23.0": + version: 7.23.0 + resolution: "@babel/generator@npm:7.23.0" dependencies: - "@babel/types": "npm:^7.22.5" + "@babel/types": "npm:^7.23.0" "@jridgewell/gen-mapping": "npm:^0.3.2" "@jridgewell/trace-mapping": "npm:^0.3.17" jsesc: "npm:^2.5.1" - checksum: 6ef82c7f6dc8f749c0eb3a04fe35acab032a9221d82984e67cbbada449ca857dd981e08c129f9cf5d2f342ba00efcc683a99e46a470f233b0948edf197e35d26 + checksum: b7d8727c574119b5ef06e5d5d0d8d939527d51537db4b08273caebb18f3f2b1d4517b874776085e161fd47d28f26b22c08e7f270b64f43b2afd4a60c5936d6cd languageName: node linkType: hard -"@babel/generator@npm:^7.12.11, @babel/generator@npm:^7.23.0, @babel/generator@npm:^7.23.3, @babel/generator@npm:^7.23.4, @babel/generator@npm:^7.7.2": - version: 7.23.4 - resolution: "@babel/generator@npm:7.23.4" +"@babel/generator@npm:^7.12.11, @babel/generator@npm:^7.23.0, @babel/generator@npm:^7.23.5, @babel/generator@npm:^7.7.2": + version: 7.23.5 + resolution: "@babel/generator@npm:7.23.5" dependencies: - "@babel/types": "npm:^7.23.4" + "@babel/types": "npm:^7.23.5" "@jridgewell/gen-mapping": "npm:^0.3.2" "@jridgewell/trace-mapping": "npm:^0.3.17" jsesc: "npm:^2.5.1" - checksum: 79b87ef49c4af1b4356b2fcab80ed92dfcad7927c3d6d89c4f749fd947768de3ec129467fb8eee0fe53cf8fc38b4d34d44487f714a9c23bee981c9cba3a670e4 + checksum: 14c6e874f796c4368e919bed6003bb0adc3ce837760b08f9e646d20aeb5ae7d309723ce6e4f06bcb4a2b5753145446c8e4425851380f695e40e71e1760f49e7b languageName: node linkType: hard @@ -475,7 +448,7 @@ __metadata: languageName: node linkType: hard -"@babel/helper-compilation-targets@npm:^7.12.0, @babel/helper-compilation-targets@npm:^7.22.15, @babel/helper-compilation-targets@npm:^7.22.6, @babel/helper-compilation-targets@npm:^7.22.9": +"@babel/helper-compilation-targets@npm:^7.12.0, @babel/helper-compilation-targets@npm:^7.22.15, @babel/helper-compilation-targets@npm:^7.22.6": version: 7.22.15 resolution: "@babel/helper-compilation-targets@npm:7.22.15" dependencies: @@ -488,22 +461,22 @@ __metadata: 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.22.15": - version: 7.22.15 - resolution: "@babel/helper-create-class-features-plugin@npm:7.22.15" +"@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.22.15, @babel/helper-create-class-features-plugin@npm:^7.23.5": + version: 7.23.5 + resolution: "@babel/helper-create-class-features-plugin@npm:7.23.5" dependencies: "@babel/helper-annotate-as-pure": "npm:^7.22.5" - "@babel/helper-environment-visitor": "npm:^7.22.5" - "@babel/helper-function-name": "npm:^7.22.5" - "@babel/helper-member-expression-to-functions": "npm:^7.22.15" + "@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.22.9" + "@babel/helper-replace-supers": "npm:^7.22.20" "@babel/helper-skip-transparent-expression-wrappers": "npm:^7.22.5" "@babel/helper-split-export-declaration": "npm:^7.22.6" semver: "npm:^6.3.1" peerDependencies: "@babel/core": ^7.0.0 - checksum: 2ae5759fe8845fda99b34f2ba6cd0794fc860213d14c93a87aa9180960252bce621157a79c373b7fbb423b25a55fb0e20eae0d5f8e4ad5ef22dc70e7c2af3805 + checksum: a29bd03725630dcf2f094b7e3fe45c63984e63a5d092ceffec2da9d95c108afcc073863d6e9c0fb944d07f3cde5ebac4bba833473ca96af5e949f7d471154901 languageName: node linkType: hard @@ -535,7 +508,7 @@ __metadata: languageName: node linkType: hard -"@babel/helper-environment-visitor@npm:^7.18.9, @babel/helper-environment-visitor@npm:^7.22.20, @babel/helper-environment-visitor@npm:^7.22.5": +"@babel/helper-environment-visitor@npm:^7.22.20": version: 7.22.20 resolution: "@babel/helper-environment-visitor@npm:7.22.20" checksum: e762c2d8f5d423af89bd7ae9abe35bd4836d2eb401af868a63bbb63220c513c783e25ef001019418560b3fdc6d9a6fb67e6c0b650bcdeb3a2ac44b5c3d2bdd94 @@ -561,7 +534,7 @@ __metadata: languageName: node linkType: hard -"@babel/helper-member-expression-to-functions@npm:^7.22.15": +"@babel/helper-member-expression-to-functions@npm:^7.22.15, @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" dependencies: @@ -610,7 +583,7 @@ __metadata: languageName: node linkType: hard -"@babel/helper-remap-async-to-generator@npm:^7.18.9, @babel/helper-remap-async-to-generator@npm:^7.22.20, @babel/helper-remap-async-to-generator@npm:^7.22.5": +"@babel/helper-remap-async-to-generator@npm:^7.22.20, @babel/helper-remap-async-to-generator@npm:^7.22.5": version: 7.22.20 resolution: "@babel/helper-remap-async-to-generator@npm:7.22.20" dependencies: @@ -623,7 +596,7 @@ __metadata: languageName: node linkType: hard -"@babel/helper-replace-supers@npm:^7.22.20, @babel/helper-replace-supers@npm:^7.22.9": +"@babel/helper-replace-supers@npm:^7.22.20": version: 7.22.20 resolution: "@babel/helper-replace-supers@npm:7.22.20" dependencies: @@ -677,10 +650,10 @@ __metadata: languageName: node linkType: hard -"@babel/helper-validator-option@npm:^7.22.15, @babel/helper-validator-option@npm:^7.22.5": - version: 7.22.15 - resolution: "@babel/helper-validator-option@npm:7.22.15" - checksum: e9661bf80ba18e2dd978217b350fb07298e57ac417f4f1ab9fa011505e20e4857f2c3b4b538473516a9dc03af5ce3a831e5ed973311c28326f4c330b6be981c2 +"@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: af45d5c0defb292ba6fd38979e8f13d7da63f9623d8ab9ededc394f67eb45857d2601278d151ae9affb6e03d5d608485806cd45af08b4468a0515cf506510e94 languageName: node linkType: hard @@ -695,14 +668,14 @@ __metadata: languageName: node linkType: hard -"@babel/helpers@npm:^7.23.2": - version: 7.23.4 - resolution: "@babel/helpers@npm:7.23.4" +"@babel/helpers@npm:^7.23.5": + version: 7.23.5 + resolution: "@babel/helpers@npm:7.23.5" dependencies: "@babel/template": "npm:^7.22.15" - "@babel/traverse": "npm:^7.23.4" - "@babel/types": "npm:^7.23.4" - checksum: 6bb552b3de530f5eaae99f5410826b5877bae38ccd95cb5809c9a0cef99bcdb9f5db373309c1cf873f5d68927993515323985bac0ff1b811f2437f2e3ae994b8 + "@babel/traverse": "npm:^7.23.5" + "@babel/types": "npm:^7.23.5" + checksum: a37e2728eb4378a4888e5d614e28de7dd79b55ac8acbecd0e5c761273e2a02a8f33b34b1932d9069db55417ace2937cbf8ec37c42f1030ce6d228857d7ccaa4f languageName: node linkType: hard @@ -717,16 +690,16 @@ __metadata: languageName: node linkType: hard -"@babel/parser@npm:^7.1.0, @babel/parser@npm:^7.11.5, @babel/parser@npm:^7.13.16, @babel/parser@npm:^7.14.7, @babel/parser@npm:^7.18.4, @babel/parser@npm:^7.20.7, @babel/parser@npm:^7.21.4, @babel/parser@npm:^7.22.15, @babel/parser@npm:^7.22.5, @babel/parser@npm:^7.23.0, @babel/parser@npm:^7.23.3, @babel/parser@npm:^7.23.4, @babel/parser@npm:^7.4.5, @babel/parser@npm:^7.6.0, @babel/parser@npm:^7.7.0, @babel/parser@npm:^7.9.6": - version: 7.23.4 - resolution: "@babel/parser@npm:7.23.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.18.4, @babel/parser@npm:^7.20.7, @babel/parser@npm:^7.21.4, @babel/parser@npm:^7.22.15, @babel/parser@npm:^7.23.0, @babel/parser@npm:^7.23.3, @babel/parser@npm:^7.23.5, @babel/parser@npm:^7.4.5, @babel/parser@npm:^7.6.0, @babel/parser@npm:^7.7.0, @babel/parser@npm:^7.9.6": + version: 7.23.5 + resolution: "@babel/parser@npm:7.23.5" bin: parser: ./bin/babel-parser.js - checksum: 9115cd9c5855a6c7a8dd246938b1316dc1014ad36e01240c1e94ada63218ca39aa63d953d1bff8074a2737933448bc50736eb3da52ffc5c11a256c66d0accc2b + checksum: 3356aa90d7bafb4e2c7310e7c2c3d443c4be4db74913f088d3d577a1eb914ea4188e05fd50a47ce907a27b755c4400c4e3cbeee73dbeb37761f6ca85954f5a20 languageName: node linkType: hard -"@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@npm:^7.22.5, @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.22.15, @babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@npm:^7.23.3": version: 7.23.3 resolution: "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@npm:7.23.3" dependencies: @@ -737,7 +710,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@npm:^7.22.5, @babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@npm:^7.23.3": +"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@npm:^7.22.15, @babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@npm:^7.23.3": version: 7.23.3 resolution: "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@npm:7.23.3" dependencies: @@ -762,20 +735,6 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-proposal-async-generator-functions@npm:7.20.7": - version: 7.20.7 - resolution: "@babel/plugin-proposal-async-generator-functions@npm:7.20.7" - dependencies: - "@babel/helper-environment-visitor": "npm:^7.18.9" - "@babel/helper-plugin-utils": "npm:^7.20.2" - "@babel/helper-remap-async-to-generator": "npm:^7.18.9" - "@babel/plugin-syntax-async-generators": "npm:^7.8.4" - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 0f4bc01805704ae4840536acc9888c50a32250e9188d025063bd17fe77ed171a12361c3dc83ce99664dcd73aec612accb8da95b0d8b825c854931b2860c0bfb5 - languageName: node - linkType: hard - "@babel/plugin-proposal-class-properties@npm:^7.13.0, @babel/plugin-proposal-class-properties@npm:^7.16.5": version: 7.18.6 resolution: "@babel/plugin-proposal-class-properties@npm:7.18.6" @@ -789,17 +748,17 @@ __metadata: linkType: hard "@babel/plugin-proposal-decorators@npm:^7.13.5": - version: 7.23.3 - resolution: "@babel/plugin-proposal-decorators@npm:7.23.3" + version: 7.23.5 + resolution: "@babel/plugin-proposal-decorators@npm:7.23.5" dependencies: - "@babel/helper-create-class-features-plugin": "npm:^7.22.15" + "@babel/helper-create-class-features-plugin": "npm:^7.23.5" "@babel/helper-plugin-utils": "npm:^7.22.5" "@babel/helper-replace-supers": "npm:^7.22.20" "@babel/helper-split-export-declaration": "npm:^7.22.6" "@babel/plugin-syntax-decorators": "npm:^7.23.3" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: b32d0e197d7abbb84f78ab361f7cb6ce8b5f90e5a04bf3afb8d43b51653c3f47b0e9ba8d02a643de7390c408d3842e4017446b8cc8e8319695c92568646ba7ef + checksum: f1fffa9f24668e3a2f78ee4c6ca1b8e65b46f69d8fbe77be46dc286b0ac02336fbc77eeaffadcec1b08019e241547cfbfee9a494aeaf6bb6b4eeac1149be5994 languageName: node linkType: hard @@ -863,18 +822,6 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-proposal-unicode-property-regex@npm:^7.4.4": - version: 7.18.6 - resolution: "@babel/plugin-proposal-unicode-property-regex@npm:7.18.6" - dependencies: - "@babel/helper-create-regexp-features-plugin": "npm:^7.18.6" - "@babel/helper-plugin-utils": "npm:^7.18.6" - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: c68feae57d9b1f4d98ecc2da63bda1993980deb509ccb08f6eace712ece8081032eb6532c304524b544c2dd577e2f9c2fe5c5bfd73d1955c946300def6fc7493 - languageName: node - linkType: hard - "@babel/plugin-syntax-async-generators@npm:^7.8.4": version: 7.8.4 resolution: "@babel/plugin-syntax-async-generators@npm:7.8.4" @@ -1140,7 +1087,21 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-async-generator-functions@npm:^7.22.7, @babel/plugin-transform-async-generator-functions@npm:^7.23.3": +"@babel/plugin-transform-async-generator-functions@npm:7.23.2": + version: 7.23.2 + resolution: "@babel/plugin-transform-async-generator-functions@npm:7.23.2" + dependencies: + "@babel/helper-environment-visitor": "npm:^7.22.20" + "@babel/helper-plugin-utils": "npm:^7.22.5" + "@babel/helper-remap-async-to-generator": "npm:^7.22.20" + "@babel/plugin-syntax-async-generators": "npm:^7.8.4" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 16d7bd5dbd67991ab320a46ada19a9a0c8364725603c731f152afc98ee8764dc738c93f081a7560906d265b78c376bccabf3e31b9f99071c8982a6f9c8e2ac45 + languageName: node + linkType: hard + +"@babel/plugin-transform-async-generator-functions@npm:^7.23.2, @babel/plugin-transform-async-generator-functions@npm:^7.23.4": version: 7.23.4 resolution: "@babel/plugin-transform-async-generator-functions@npm:7.23.4" dependencies: @@ -1191,7 +1152,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-block-scoping@npm:^7.22.5, @babel/plugin-transform-block-scoping@npm:^7.23.3, @babel/plugin-transform-block-scoping@npm:^7.8.3": +"@babel/plugin-transform-block-scoping@npm:^7.23.0, @babel/plugin-transform-block-scoping@npm:^7.23.4, @babel/plugin-transform-block-scoping@npm:^7.8.3": version: 7.23.4 resolution: "@babel/plugin-transform-block-scoping@npm:7.23.4" dependencies: @@ -1214,7 +1175,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-class-static-block@npm:^7.22.5, @babel/plugin-transform-class-static-block@npm:^7.23.3": +"@babel/plugin-transform-class-static-block@npm:^7.22.11, @babel/plugin-transform-class-static-block@npm:^7.23.4": version: 7.23.4 resolution: "@babel/plugin-transform-class-static-block@npm:7.23.4" dependencies: @@ -1227,9 +1188,9 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-classes@npm:^7.22.6, @babel/plugin-transform-classes@npm:^7.23.3": - version: 7.23.3 - resolution: "@babel/plugin-transform-classes@npm:7.23.3" +"@babel/plugin-transform-classes@npm:^7.22.15, @babel/plugin-transform-classes@npm:^7.23.5": + version: 7.23.5 + resolution: "@babel/plugin-transform-classes@npm:7.23.5" dependencies: "@babel/helper-annotate-as-pure": "npm:^7.22.5" "@babel/helper-compilation-targets": "npm:^7.22.15" @@ -1242,7 +1203,7 @@ __metadata: globals: "npm:^11.1.0" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 88bfd332db0ba5cbfb8557a2ba5a7185151aebc9cfe3035b014aa6d795556acbe672bb8c78da3c9fd1d23f55a333d14b5daa127ef037f5ced5198b6d79a146d6 + checksum: 07988f52b4893151887d1ea6ff79e5fe834078c5731bd09babd5659edbbae21ea4e2de326a02443a63fd776b4c945da6177f07875b56fe66e0b7899e830a9e92 languageName: node linkType: hard @@ -1258,7 +1219,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-destructuring@npm:^7.22.5, @babel/plugin-transform-destructuring@npm:^7.23.3": +"@babel/plugin-transform-destructuring@npm:^7.23.0, @babel/plugin-transform-destructuring@npm:^7.23.3": version: 7.23.3 resolution: "@babel/plugin-transform-destructuring@npm:7.23.3" dependencies: @@ -1269,7 +1230,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-dotall-regex@npm:^7.22.5, @babel/plugin-transform-dotall-regex@npm:^7.23.3, @babel/plugin-transform-dotall-regex@npm:^7.4.4": +"@babel/plugin-transform-dotall-regex@npm:^7.22.5, @babel/plugin-transform-dotall-regex@npm:^7.23.3": version: 7.23.3 resolution: "@babel/plugin-transform-dotall-regex@npm:7.23.3" dependencies: @@ -1292,7 +1253,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-dynamic-import@npm:^7.22.5, @babel/plugin-transform-dynamic-import@npm:^7.23.3": +"@babel/plugin-transform-dynamic-import@npm:^7.22.11, @babel/plugin-transform-dynamic-import@npm:^7.23.4": version: 7.23.4 resolution: "@babel/plugin-transform-dynamic-import@npm:7.23.4" dependencies: @@ -1316,7 +1277,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-export-namespace-from@npm:^7.22.11, @babel/plugin-transform-export-namespace-from@npm:^7.22.5, @babel/plugin-transform-export-namespace-from@npm:^7.23.3": +"@babel/plugin-transform-export-namespace-from@npm:^7.22.11, @babel/plugin-transform-export-namespace-from@npm:^7.23.4": version: 7.23.4 resolution: "@babel/plugin-transform-export-namespace-from@npm:7.23.4" dependencies: @@ -1340,7 +1301,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-for-of@npm:^7.22.5, @babel/plugin-transform-for-of@npm:^7.23.3": +"@babel/plugin-transform-for-of@npm:^7.22.15, @babel/plugin-transform-for-of@npm:^7.23.3": version: 7.23.3 resolution: "@babel/plugin-transform-for-of@npm:7.23.3" dependencies: @@ -1364,7 +1325,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-json-strings@npm:^7.22.5, @babel/plugin-transform-json-strings@npm:^7.23.3": +"@babel/plugin-transform-json-strings@npm:^7.22.11, @babel/plugin-transform-json-strings@npm:^7.23.4": version: 7.23.4 resolution: "@babel/plugin-transform-json-strings@npm:7.23.4" dependencies: @@ -1387,7 +1348,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-logical-assignment-operators@npm:^7.22.5, @babel/plugin-transform-logical-assignment-operators@npm:^7.23.3": +"@babel/plugin-transform-logical-assignment-operators@npm:^7.22.11, @babel/plugin-transform-logical-assignment-operators@npm:^7.23.4": version: 7.23.4 resolution: "@babel/plugin-transform-logical-assignment-operators@npm:7.23.4" dependencies: @@ -1410,7 +1371,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-modules-amd@npm:^7.13.0, @babel/plugin-transform-modules-amd@npm:^7.22.5, @babel/plugin-transform-modules-amd@npm:^7.23.3": +"@babel/plugin-transform-modules-amd@npm:^7.13.0, @babel/plugin-transform-modules-amd@npm:^7.23.0, @babel/plugin-transform-modules-amd@npm:^7.23.3": version: 7.23.3 resolution: "@babel/plugin-transform-modules-amd@npm:7.23.3" dependencies: @@ -1422,7 +1383,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-modules-commonjs@npm:^7.13.8, @babel/plugin-transform-modules-commonjs@npm:^7.2.0, @babel/plugin-transform-modules-commonjs@npm:^7.22.5, @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.13.8, @babel/plugin-transform-modules-commonjs@npm:^7.2.0, @babel/plugin-transform-modules-commonjs@npm:^7.23.0, @babel/plugin-transform-modules-commonjs@npm:^7.23.3": version: 7.23.3 resolution: "@babel/plugin-transform-modules-commonjs@npm:7.23.3" dependencies: @@ -1435,7 +1396,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-modules-systemjs@npm:^7.22.5, @babel/plugin-transform-modules-systemjs@npm:^7.23.3": +"@babel/plugin-transform-modules-systemjs@npm:^7.23.0, @babel/plugin-transform-modules-systemjs@npm:^7.23.3": version: 7.23.3 resolution: "@babel/plugin-transform-modules-systemjs@npm:7.23.3" dependencies: @@ -1484,7 +1445,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-nullish-coalescing-operator@npm:^7.22.11, @babel/plugin-transform-nullish-coalescing-operator@npm:^7.22.5, @babel/plugin-transform-nullish-coalescing-operator@npm:^7.23.3": +"@babel/plugin-transform-nullish-coalescing-operator@npm:^7.22.11, @babel/plugin-transform-nullish-coalescing-operator@npm:^7.23.4": version: 7.23.4 resolution: "@babel/plugin-transform-nullish-coalescing-operator@npm:7.23.4" dependencies: @@ -1496,7 +1457,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-numeric-separator@npm:^7.22.11, @babel/plugin-transform-numeric-separator@npm:^7.22.5, @babel/plugin-transform-numeric-separator@npm:^7.23.3": +"@babel/plugin-transform-numeric-separator@npm:^7.22.11, @babel/plugin-transform-numeric-separator@npm:^7.23.4": version: 7.23.4 resolution: "@babel/plugin-transform-numeric-separator@npm:7.23.4" dependencies: @@ -1519,7 +1480,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-object-rest-spread@npm:^7.22.15, @babel/plugin-transform-object-rest-spread@npm:^7.22.5, @babel/plugin-transform-object-rest-spread@npm:^7.23.3": +"@babel/plugin-transform-object-rest-spread@npm:^7.22.15, @babel/plugin-transform-object-rest-spread@npm:^7.23.4": version: 7.23.4 resolution: "@babel/plugin-transform-object-rest-spread@npm:7.23.4" dependencies: @@ -1546,7 +1507,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-optional-catch-binding@npm:^7.22.5, @babel/plugin-transform-optional-catch-binding@npm:^7.23.3": +"@babel/plugin-transform-optional-catch-binding@npm:^7.22.11, @babel/plugin-transform-optional-catch-binding@npm:^7.23.4": version: 7.23.4 resolution: "@babel/plugin-transform-optional-catch-binding@npm:7.23.4" dependencies: @@ -1558,7 +1519,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-optional-chaining@npm:^7.22.6, @babel/plugin-transform-optional-chaining@npm:^7.23.0, @babel/plugin-transform-optional-chaining@npm:^7.23.3": +"@babel/plugin-transform-optional-chaining@npm:^7.23.0, @babel/plugin-transform-optional-chaining@npm:^7.23.3, @babel/plugin-transform-optional-chaining@npm:^7.23.4": version: 7.23.4 resolution: "@babel/plugin-transform-optional-chaining@npm:7.23.4" dependencies: @@ -1571,7 +1532,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-parameters@npm:^7.22.5, @babel/plugin-transform-parameters@npm:^7.23.3": +"@babel/plugin-transform-parameters@npm:^7.22.15, @babel/plugin-transform-parameters@npm:^7.23.3": version: 7.23.3 resolution: "@babel/plugin-transform-parameters@npm:7.23.3" dependencies: @@ -1594,7 +1555,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-private-property-in-object@npm:^7.22.5, @babel/plugin-transform-private-property-in-object@npm:^7.23.3": +"@babel/plugin-transform-private-property-in-object@npm:^7.22.11, @babel/plugin-transform-private-property-in-object@npm:^7.23.4": version: 7.23.4 resolution: "@babel/plugin-transform-private-property-in-object@npm:7.23.4" dependencies: @@ -1690,7 +1651,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-regenerator@npm:^7.22.5, @babel/plugin-transform-regenerator@npm:^7.23.3": +"@babel/plugin-transform-regenerator@npm:^7.22.10, @babel/plugin-transform-regenerator@npm:^7.23.3": version: 7.23.3 resolution: "@babel/plugin-transform-regenerator@npm:7.23.3" dependencies: @@ -1713,19 +1674,19 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-runtime@npm:7.22.9": - version: 7.22.9 - resolution: "@babel/plugin-transform-runtime@npm:7.22.9" +"@babel/plugin-transform-runtime@npm:7.23.2": + version: 7.23.2 + resolution: "@babel/plugin-transform-runtime@npm:7.23.2" dependencies: - "@babel/helper-module-imports": "npm:^7.22.5" + "@babel/helper-module-imports": "npm:^7.22.15" "@babel/helper-plugin-utils": "npm:^7.22.5" - babel-plugin-polyfill-corejs2: "npm:^0.4.4" - babel-plugin-polyfill-corejs3: "npm:^0.8.2" - babel-plugin-polyfill-regenerator: "npm:^0.5.1" + babel-plugin-polyfill-corejs2: "npm:^0.4.6" + babel-plugin-polyfill-corejs3: "npm:^0.8.5" + babel-plugin-polyfill-regenerator: "npm:^0.5.3" semver: "npm:^6.3.1" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 36a5c4a69ca709c6d74b35217b46d72c55a4447f7825a93cb628251b6736391d66d97635877ecb48ff1ddc4516e2e5b6e2e87999835c2c8e08b948eba5f9edfc + checksum: 440291cd42e51c3f8789a0bd45cebbf597cf5d4ee4185050f1151f579465db016902054c50684e288342a03c9f1af8cec365fc02d85d14dc2b2a30ad5eb07c42 languageName: node linkType: hard @@ -1802,20 +1763,20 @@ __metadata: linkType: hard "@babel/plugin-transform-typescript@npm:^7.13.0, @babel/plugin-transform-typescript@npm:^7.23.3": - version: 7.23.4 - resolution: "@babel/plugin-transform-typescript@npm:7.23.4" + version: 7.23.5 + resolution: "@babel/plugin-transform-typescript@npm:7.23.5" dependencies: "@babel/helper-annotate-as-pure": "npm:^7.22.5" - "@babel/helper-create-class-features-plugin": "npm:^7.22.15" + "@babel/helper-create-class-features-plugin": "npm:^7.23.5" "@babel/helper-plugin-utils": "npm:^7.22.5" "@babel/plugin-syntax-typescript": "npm:^7.23.3" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 657294f8e0d59fc2b765a230cd1635a575c2dee33aba45e8fc0fbe6ef86ffae007f8c9ca41665ac9629f49a922caf844d14b9a7990dddd2f64aee969d6fb14a4 + checksum: 75d6689bfdf4c9462b5fb21107c295717c9bedffe5eae8b22b0a65c9603660683d55e020df83825de13792358043bd939f48efc2b3a293b5210a608076c94934 languageName: node linkType: hard -"@babel/plugin-transform-unicode-escapes@npm:^7.22.5, @babel/plugin-transform-unicode-escapes@npm:^7.23.3": +"@babel/plugin-transform-unicode-escapes@npm:^7.22.10, @babel/plugin-transform-unicode-escapes@npm:^7.23.3": version: 7.23.3 resolution: "@babel/plugin-transform-unicode-escapes@npm:7.23.3" dependencies: @@ -1872,16 +1833,16 @@ __metadata: languageName: node linkType: hard -"@babel/preset-env@npm:7.22.9": - version: 7.22.9 - resolution: "@babel/preset-env@npm:7.22.9" +"@babel/preset-env@npm:7.23.2": + version: 7.23.2 + resolution: "@babel/preset-env@npm:7.23.2" dependencies: - "@babel/compat-data": "npm:^7.22.9" - "@babel/helper-compilation-targets": "npm:^7.22.9" + "@babel/compat-data": "npm:^7.23.2" + "@babel/helper-compilation-targets": "npm:^7.22.15" "@babel/helper-plugin-utils": "npm:^7.22.5" - "@babel/helper-validator-option": "npm:^7.22.5" - "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "npm:^7.22.5" - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "npm:^7.22.5" + "@babel/helper-validator-option": "npm:^7.22.15" + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "npm:^7.22.15" + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "npm:^7.22.15" "@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" @@ -1902,74 +1863,74 @@ __metadata: "@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.22.5" - "@babel/plugin-transform-async-generator-functions": "npm:^7.22.7" + "@babel/plugin-transform-async-generator-functions": "npm:^7.23.2" "@babel/plugin-transform-async-to-generator": "npm:^7.22.5" "@babel/plugin-transform-block-scoped-functions": "npm:^7.22.5" - "@babel/plugin-transform-block-scoping": "npm:^7.22.5" + "@babel/plugin-transform-block-scoping": "npm:^7.23.0" "@babel/plugin-transform-class-properties": "npm:^7.22.5" - "@babel/plugin-transform-class-static-block": "npm:^7.22.5" - "@babel/plugin-transform-classes": "npm:^7.22.6" + "@babel/plugin-transform-class-static-block": "npm:^7.22.11" + "@babel/plugin-transform-classes": "npm:^7.22.15" "@babel/plugin-transform-computed-properties": "npm:^7.22.5" - "@babel/plugin-transform-destructuring": "npm:^7.22.5" + "@babel/plugin-transform-destructuring": "npm:^7.23.0" "@babel/plugin-transform-dotall-regex": "npm:^7.22.5" "@babel/plugin-transform-duplicate-keys": "npm:^7.22.5" - "@babel/plugin-transform-dynamic-import": "npm:^7.22.5" + "@babel/plugin-transform-dynamic-import": "npm:^7.22.11" "@babel/plugin-transform-exponentiation-operator": "npm:^7.22.5" - "@babel/plugin-transform-export-namespace-from": "npm:^7.22.5" - "@babel/plugin-transform-for-of": "npm:^7.22.5" + "@babel/plugin-transform-export-namespace-from": "npm:^7.22.11" + "@babel/plugin-transform-for-of": "npm:^7.22.15" "@babel/plugin-transform-function-name": "npm:^7.22.5" - "@babel/plugin-transform-json-strings": "npm:^7.22.5" + "@babel/plugin-transform-json-strings": "npm:^7.22.11" "@babel/plugin-transform-literals": "npm:^7.22.5" - "@babel/plugin-transform-logical-assignment-operators": "npm:^7.22.5" + "@babel/plugin-transform-logical-assignment-operators": "npm:^7.22.11" "@babel/plugin-transform-member-expression-literals": "npm:^7.22.5" - "@babel/plugin-transform-modules-amd": "npm:^7.22.5" - "@babel/plugin-transform-modules-commonjs": "npm:^7.22.5" - "@babel/plugin-transform-modules-systemjs": "npm:^7.22.5" + "@babel/plugin-transform-modules-amd": "npm:^7.23.0" + "@babel/plugin-transform-modules-commonjs": "npm:^7.23.0" + "@babel/plugin-transform-modules-systemjs": "npm:^7.23.0" "@babel/plugin-transform-modules-umd": "npm:^7.22.5" "@babel/plugin-transform-named-capturing-groups-regex": "npm:^7.22.5" "@babel/plugin-transform-new-target": "npm:^7.22.5" - "@babel/plugin-transform-nullish-coalescing-operator": "npm:^7.22.5" - "@babel/plugin-transform-numeric-separator": "npm:^7.22.5" - "@babel/plugin-transform-object-rest-spread": "npm:^7.22.5" + "@babel/plugin-transform-nullish-coalescing-operator": "npm:^7.22.11" + "@babel/plugin-transform-numeric-separator": "npm:^7.22.11" + "@babel/plugin-transform-object-rest-spread": "npm:^7.22.15" "@babel/plugin-transform-object-super": "npm:^7.22.5" - "@babel/plugin-transform-optional-catch-binding": "npm:^7.22.5" - "@babel/plugin-transform-optional-chaining": "npm:^7.22.6" - "@babel/plugin-transform-parameters": "npm:^7.22.5" + "@babel/plugin-transform-optional-catch-binding": "npm:^7.22.11" + "@babel/plugin-transform-optional-chaining": "npm:^7.23.0" + "@babel/plugin-transform-parameters": "npm:^7.22.15" "@babel/plugin-transform-private-methods": "npm:^7.22.5" - "@babel/plugin-transform-private-property-in-object": "npm:^7.22.5" + "@babel/plugin-transform-private-property-in-object": "npm:^7.22.11" "@babel/plugin-transform-property-literals": "npm:^7.22.5" - "@babel/plugin-transform-regenerator": "npm:^7.22.5" + "@babel/plugin-transform-regenerator": "npm:^7.22.10" "@babel/plugin-transform-reserved-words": "npm:^7.22.5" "@babel/plugin-transform-shorthand-properties": "npm:^7.22.5" "@babel/plugin-transform-spread": "npm:^7.22.5" "@babel/plugin-transform-sticky-regex": "npm:^7.22.5" "@babel/plugin-transform-template-literals": "npm:^7.22.5" "@babel/plugin-transform-typeof-symbol": "npm:^7.22.5" - "@babel/plugin-transform-unicode-escapes": "npm:^7.22.5" + "@babel/plugin-transform-unicode-escapes": "npm:^7.22.10" "@babel/plugin-transform-unicode-property-regex": "npm:^7.22.5" "@babel/plugin-transform-unicode-regex": "npm:^7.22.5" "@babel/plugin-transform-unicode-sets-regex": "npm:^7.22.5" - "@babel/preset-modules": "npm:^0.1.5" - "@babel/types": "npm:^7.22.5" - babel-plugin-polyfill-corejs2: "npm:^0.4.4" - babel-plugin-polyfill-corejs3: "npm:^0.8.2" - babel-plugin-polyfill-regenerator: "npm:^0.5.1" + "@babel/preset-modules": "npm:0.1.6-no-external-plugins" + "@babel/types": "npm:^7.23.0" + babel-plugin-polyfill-corejs2: "npm:^0.4.6" + babel-plugin-polyfill-corejs3: "npm:^0.8.5" + babel-plugin-polyfill-regenerator: "npm:^0.5.3" core-js-compat: "npm:^3.31.0" semver: "npm:^6.3.1" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: fad75686dd55638be71657edbd428bb0266a3f34bc6e367bd55fbff911652c971fcea3e5c346288d4e0a15c81b732c4a2549fce97910b602e19170fe1ddf72d0 + checksum: b5912f09dc92a8f6b93420f3274499e30255af6dbe5673075a30a5bfead1a651e5eb362c6b95e3ba48c6e6bd4e38b7a5aceebba99997ec7c83833e2e6af9abde languageName: node linkType: hard "@babel/preset-env@npm:^7.16.5, @babel/preset-env@npm:^7.23.2": - version: 7.23.3 - resolution: "@babel/preset-env@npm:7.23.3" + version: 7.23.5 + resolution: "@babel/preset-env@npm:7.23.5" dependencies: - "@babel/compat-data": "npm:^7.23.3" + "@babel/compat-data": "npm:^7.23.5" "@babel/helper-compilation-targets": "npm:^7.22.15" "@babel/helper-plugin-utils": "npm:^7.22.5" - "@babel/helper-validator-option": "npm:^7.22.15" + "@babel/helper-validator-option": "npm:^7.23.5" "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "npm:^7.23.3" "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "npm:^7.23.3" "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": "npm:^7.23.3" @@ -1993,25 +1954,25 @@ __metadata: "@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.23.3" - "@babel/plugin-transform-async-generator-functions": "npm:^7.23.3" + "@babel/plugin-transform-async-generator-functions": "npm:^7.23.4" "@babel/plugin-transform-async-to-generator": "npm:^7.23.3" "@babel/plugin-transform-block-scoped-functions": "npm:^7.23.3" - "@babel/plugin-transform-block-scoping": "npm:^7.23.3" + "@babel/plugin-transform-block-scoping": "npm:^7.23.4" "@babel/plugin-transform-class-properties": "npm:^7.23.3" - "@babel/plugin-transform-class-static-block": "npm:^7.23.3" - "@babel/plugin-transform-classes": "npm:^7.23.3" + "@babel/plugin-transform-class-static-block": "npm:^7.23.4" + "@babel/plugin-transform-classes": "npm:^7.23.5" "@babel/plugin-transform-computed-properties": "npm:^7.23.3" "@babel/plugin-transform-destructuring": "npm:^7.23.3" "@babel/plugin-transform-dotall-regex": "npm:^7.23.3" "@babel/plugin-transform-duplicate-keys": "npm:^7.23.3" - "@babel/plugin-transform-dynamic-import": "npm:^7.23.3" + "@babel/plugin-transform-dynamic-import": "npm:^7.23.4" "@babel/plugin-transform-exponentiation-operator": "npm:^7.23.3" - "@babel/plugin-transform-export-namespace-from": "npm:^7.23.3" + "@babel/plugin-transform-export-namespace-from": "npm:^7.23.4" "@babel/plugin-transform-for-of": "npm:^7.23.3" "@babel/plugin-transform-function-name": "npm:^7.23.3" - "@babel/plugin-transform-json-strings": "npm:^7.23.3" + "@babel/plugin-transform-json-strings": "npm:^7.23.4" "@babel/plugin-transform-literals": "npm:^7.23.3" - "@babel/plugin-transform-logical-assignment-operators": "npm:^7.23.3" + "@babel/plugin-transform-logical-assignment-operators": "npm:^7.23.4" "@babel/plugin-transform-member-expression-literals": "npm:^7.23.3" "@babel/plugin-transform-modules-amd": "npm:^7.23.3" "@babel/plugin-transform-modules-commonjs": "npm:^7.23.3" @@ -2019,15 +1980,15 @@ __metadata: "@babel/plugin-transform-modules-umd": "npm:^7.23.3" "@babel/plugin-transform-named-capturing-groups-regex": "npm:^7.22.5" "@babel/plugin-transform-new-target": "npm:^7.23.3" - "@babel/plugin-transform-nullish-coalescing-operator": "npm:^7.23.3" - "@babel/plugin-transform-numeric-separator": "npm:^7.23.3" - "@babel/plugin-transform-object-rest-spread": "npm:^7.23.3" + "@babel/plugin-transform-nullish-coalescing-operator": "npm:^7.23.4" + "@babel/plugin-transform-numeric-separator": "npm:^7.23.4" + "@babel/plugin-transform-object-rest-spread": "npm:^7.23.4" "@babel/plugin-transform-object-super": "npm:^7.23.3" - "@babel/plugin-transform-optional-catch-binding": "npm:^7.23.3" - "@babel/plugin-transform-optional-chaining": "npm:^7.23.3" + "@babel/plugin-transform-optional-catch-binding": "npm:^7.23.4" + "@babel/plugin-transform-optional-chaining": "npm:^7.23.4" "@babel/plugin-transform-parameters": "npm:^7.23.3" "@babel/plugin-transform-private-methods": "npm:^7.23.3" - "@babel/plugin-transform-private-property-in-object": "npm:^7.23.3" + "@babel/plugin-transform-private-property-in-object": "npm:^7.23.4" "@babel/plugin-transform-property-literals": "npm:^7.23.3" "@babel/plugin-transform-regenerator": "npm:^7.23.3" "@babel/plugin-transform-reserved-words": "npm:^7.23.3" @@ -2048,7 +2009,7 @@ __metadata: semver: "npm:^6.3.1" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 36b02a86817ab5474bb74a8d62a110723b0b05904a52ddc5627cf89457525b8d5ac0739b8e435a6ae12ef8b90cd5fc191169898c3dc2ac9d2c84026b02f2580a + checksum: 2a0e1274dec045186e131c6433659b75492583290e8d41633c616f6bff829cb2e4b2f9a57f556283a54db3bd6aa697911e56a36f607911a29b731c445a5b5a06 languageName: node linkType: hard @@ -2078,21 +2039,6 @@ __metadata: languageName: node linkType: hard -"@babel/preset-modules@npm:^0.1.5": - version: 0.1.6 - resolution: "@babel/preset-modules@npm:0.1.6" - dependencies: - "@babel/helper-plugin-utils": "npm:^7.0.0" - "@babel/plugin-proposal-unicode-property-regex": "npm:^7.4.4" - "@babel/plugin-transform-dotall-regex": "npm:^7.4.4" - "@babel/types": "npm:^7.4.4" - esutils: "npm:^2.0.2" - peerDependencies: - "@babel/core": ^7.0.0-0 || ^8.0.0-0 <8.0.0 - checksum: 6397d196dec1ca91f0f28ea4fbd0e599e5724b7f783f27979e1e9de30a4693f8c1fa98495d542fe5a774b5d0d9b52c6effd2ed15900e879ebcb0488c4bf0eed9 - languageName: node - linkType: hard - "@babel/preset-react@npm:^7.22.15": version: 7.23.3 resolution: "@babel/preset-react@npm:7.23.3" @@ -2147,12 +2093,12 @@ __metadata: linkType: hard "@babel/runtime-corejs3@npm:^7.10.2": - version: 7.23.4 - resolution: "@babel/runtime-corejs3@npm:7.23.4" + version: 7.23.5 + resolution: "@babel/runtime-corejs3@npm:7.23.5" dependencies: core-js-pure: "npm:^3.30.2" regenerator-runtime: "npm:^0.14.0" - checksum: 31fa117b451fb8f34290aa7bd2016f12254663e78641f75ec28599c5d6a63f4f7c0e796eced0bb89194a491dfae0edc61364d0ffb4efbf19a9e46bfca6848a58 + checksum: 9bbad4ae7efea21e2c92ddee70b42ce9773a56e044cfc16267f9610b38ee531c87b465d84d39433fca93f7f567b47d5e40383e3d2cfe85dbeceea7fba8a52cc8 languageName: node linkType: hard @@ -2165,12 +2111,12 @@ __metadata: languageName: node linkType: hard -"@babel/runtime@npm:7.22.6": - version: 7.22.6 - resolution: "@babel/runtime@npm:7.22.6" +"@babel/runtime@npm:7.23.2": + version: 7.23.2 + resolution: "@babel/runtime@npm:7.23.2" dependencies: - regenerator-runtime: "npm:^0.13.11" - checksum: 5a273e7d66586582041c68332028db5376d754d483422541fdc904e10474a6f8aef14dd3a5aabcbcb6daea87b64531cc4be993d2943557ede4a2613f5328a981 + regenerator-runtime: "npm:^0.14.0" + checksum: 271fcfad8574269d9967b8a1c03f2e1eab108a52ad7c96ed136eee0b11f46156f1186637bd5e79a4207163db9a00413cd70a6428e137b982d0ee8ab85eb9f438 languageName: node linkType: hard @@ -2184,11 +2130,11 @@ __metadata: linkType: hard "@babel/runtime@npm:^7.1.2, @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.14.8, @babel/runtime@npm:^7.17.8, @babel/runtime@npm:^7.18.3, @babel/runtime@npm:^7.20.13, @babel/runtime@npm:^7.21.0, @babel/runtime@npm:^7.23.2, @babel/runtime@npm:^7.3.1, @babel/runtime@npm:^7.5.5, @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.23.4 - resolution: "@babel/runtime@npm:7.23.4" + version: 7.23.5 + resolution: "@babel/runtime@npm:7.23.5" dependencies: regenerator-runtime: "npm:^0.14.0" - checksum: db2bf183cd0119599b903ca51ca0aeea8e0ab478a16be1aae10dd90473ed614159d3e5adfdd8f8f3d840402428ce0d90b5c01aae95da9e45a2dd83e02d85ca27 + checksum: ca679cc91bb7e424bc2db87bb58cc3b06ade916b9adb21fbbdc43e54cdaacb3eea201ceba2a0464b11d2eb65b9fe6a6ffcf4d7521fa52994f19be96f1af14788 languageName: node linkType: hard @@ -2201,17 +2147,6 @@ __metadata: languageName: node linkType: hard -"@babel/template@npm:7.22.5": - version: 7.22.5 - resolution: "@babel/template@npm:7.22.5" - dependencies: - "@babel/code-frame": "npm:^7.22.5" - "@babel/parser": "npm:^7.22.5" - "@babel/types": "npm:^7.22.5" - checksum: dd8fc1b0bfe0128bace25da0e0a708e26320e8030322d3a53bb6366f199b46a277bfa4281dd370d73ab19087c7e27d166070a0659783b4715f7470448c7342b1 - languageName: node - linkType: hard - "@babel/template@npm:^7.22.15, @babel/template@npm:^7.3.3, @babel/template@npm:^7.7.0": version: 7.22.15 resolution: "@babel/template@npm:7.22.15" @@ -2223,32 +2158,32 @@ __metadata: languageName: node linkType: hard -"@babel/traverse@npm:^7.1.6, @babel/traverse@npm:^7.18.9, @babel/traverse@npm:^7.23.2, @babel/traverse@npm:^7.23.3, @babel/traverse@npm:^7.23.4, @babel/traverse@npm:^7.4.5, @babel/traverse@npm:^7.7.0": - version: 7.23.4 - resolution: "@babel/traverse@npm:7.23.4" +"@babel/traverse@npm:^7.1.6, @babel/traverse@npm:^7.18.9, @babel/traverse@npm:^7.23.2, @babel/traverse@npm:^7.23.5, @babel/traverse@npm:^7.4.5, @babel/traverse@npm:^7.7.0": + version: 7.23.5 + resolution: "@babel/traverse@npm:7.23.5" dependencies: - "@babel/code-frame": "npm:^7.23.4" - "@babel/generator": "npm:^7.23.4" + "@babel/code-frame": "npm:^7.23.5" + "@babel/generator": "npm:^7.23.5" "@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.23.4" - "@babel/types": "npm:^7.23.4" + "@babel/parser": "npm:^7.23.5" + "@babel/types": "npm:^7.23.5" debug: "npm:^4.1.0" globals: "npm:^11.1.0" - checksum: a423d2b90934efe4ed423d67d91d6aa33ad035d6a175420fa9715376720584b4e7a7002be4bf55b085b7e675b7aba8c615e01560d6d9c47341427e1fe8039c68 + checksum: c5ea793080ca6719b0a1612198fd25e361cee1f3c14142d7a518d2a1eeb5c1d21f7eec1b26c20ea6e1ddd8ed12ab50b960ff95ffd25be353b6b46e1b54d6f825 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.3, @babel/types@npm:^7.23.4, @babel/types@npm:^7.3.3, @babel/types@npm:^7.4.4, @babel/types@npm:^7.6.1, @babel/types@npm:^7.7.0, @babel/types@npm:^7.7.2, @babel/types@npm:^7.8.3, @babel/types@npm:^7.9.6": - version: 7.23.4 - resolution: "@babel/types@npm:7.23.4" +"@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.5, @babel/types@npm:^7.3.3, @babel/types@npm:^7.4.4, @babel/types@npm:^7.6.1, @babel/types@npm:^7.7.0, @babel/types@npm:^7.7.2, @babel/types@npm:^7.8.3, @babel/types@npm:^7.9.6": + version: 7.23.5 + resolution: "@babel/types@npm:7.23.5" dependencies: "@babel/helper-string-parser": "npm:^7.23.4" "@babel/helper-validator-identifier": "npm:^7.22.20" to-fast-properties: "npm:^2.0.0" - checksum: 231954418e0d052a8e69c9d84dde31baffd91d38d99624d18f160e14aa32b094b9e3e91c9c065ea88ea80c6e1589b17bb8b843b950c20c112f32c17482f7cf1f + checksum: 7dd5e2f59828ed046ad0b06b039df2524a8b728d204affb4fc08da2502b9dd3140b1356b5166515d229dc811539a8b70dcd4bc507e06d62a89f4091a38d0b0fb languageName: node linkType: hard @@ -2804,6 +2739,13 @@ __metadata: languageName: node linkType: hard +"@fastify/busboy@npm:^2.0.0": + version: 2.1.0 + resolution: "@fastify/busboy@npm:2.1.0" + checksum: 7bb641080aac7cf01d88749ad331af10ba9ec3713ec07cabbe833908c75df21bd56249bb6173bdec07f5a41896b21e3689316f86684c06635da45f91ff4565a2 + languageName: node + linkType: hard + "@figspec/components@npm:^1.0.1": version: 1.0.2 resolution: "@figspec/components@npm:1.0.2" @@ -3732,6 +3674,15 @@ __metadata: languageName: node linkType: hard +"@ljharb/through@npm:^2.3.9": + version: 2.3.11 + resolution: "@ljharb/through@npm:2.3.11" + dependencies: + call-bind: "npm:^1.0.2" + checksum: 19cdaa9e4ba16aea9bb9dafbdd1c111febc0e5ce07b0959b049d7fda8a7247726603bb06b391f2d57227cf4ad081636d6f9e08dc138813225d54a6c81a04b679 + languageName: node + linkType: hard + "@mdx-js/react@npm:^2.1.5": version: 2.3.0 resolution: "@mdx-js/react@npm:2.3.0" @@ -3825,14 +3776,14 @@ __metadata: languageName: node linkType: hard -"@ngtools/webpack@npm:16.2.10": - version: 16.2.10 - resolution: "@ngtools/webpack@npm:16.2.10" +"@ngtools/webpack@npm:17.0.5": + version: 17.0.5 + resolution: "@ngtools/webpack@npm:17.0.5" peerDependencies: - "@angular/compiler-cli": ^16.0.0 - typescript: ">=4.9.3 <5.2" + "@angular/compiler-cli": ^17.0.0 + typescript: ">=5.2 <5.3" webpack: ^5.54.0 - checksum: 74c4296c2b713efb065d506a7681dbcb55a11a7666fd4458d867030ae1fd0b82fec22cfea808390b4543ee720ed691fbe9d767d2a1b92aa196f8c595b0fb9b5d + checksum: e5a64a3aa5c217b19cdd10dee9a488a59f31b50934c1185eeed3f35a670c4270940fdcbcb130ecf136f8fa34a453a5afeedcea6122bdc9ab24101eb04782703f languageName: node linkType: hard @@ -3895,19 +3846,19 @@ __metadata: languageName: node linkType: hard -"@npmcli/git@npm:^4.0.0": - version: 4.1.0 - resolution: "@npmcli/git@npm:4.1.0" +"@npmcli/git@npm:^5.0.0": + version: 5.0.3 + resolution: "@npmcli/git@npm:5.0.3" dependencies: - "@npmcli/promise-spawn": "npm:^6.0.0" - lru-cache: "npm:^7.4.4" - npm-pick-manifest: "npm:^8.0.0" + "@npmcli/promise-spawn": "npm:^7.0.0" + lru-cache: "npm:^10.0.1" + npm-pick-manifest: "npm:^9.0.0" proc-log: "npm:^3.0.0" promise-inflight: "npm:^1.0.1" promise-retry: "npm:^2.0.1" semver: "npm:^7.3.5" - which: "npm:^3.0.0" - checksum: 78591ba8f03de3954a5b5b83533455696635a8f8140c74038685fec4ee28674783a5b34a3d43840b2c5f9aa37fd0dce57eaf4ef136b52a8ec2ee183af2e40724 + which: "npm:^4.0.0" + checksum: dab301d06f037cf92b66547c4a702901c4efd42be470ab72457cc2f9617f47aca0bb59a44566cf65c1170d6489bd58be96b87269f83782b63323272059a9e4e2 languageName: node linkType: hard @@ -3940,25 +3891,25 @@ __metadata: languageName: node linkType: hard -"@npmcli/promise-spawn@npm:^6.0.0, @npmcli/promise-spawn@npm:^6.0.1": - version: 6.0.2 - resolution: "@npmcli/promise-spawn@npm:6.0.2" +"@npmcli/promise-spawn@npm:^7.0.0": + version: 7.0.0 + resolution: "@npmcli/promise-spawn@npm:7.0.0" dependencies: - which: "npm:^3.0.0" - checksum: d0696b8d9f7e16562cd1e520e4919000164be042b5c9998a45b4e87d41d9619fcecf2a343621c6fa85ed2671cbe87ab07e381a7faea4e5132c371dbb05893f31 + which: "npm:^4.0.0" + checksum: a8d310d4f0f033ea8be19e956db35dd11d1f80774e85ba97eafb3b41f7f92813ef3ae29215a14028dacf6b4d3b2357ae5935a0899c33546dd24bb629a6d5c1e8 languageName: node linkType: hard -"@npmcli/run-script@npm:^6.0.0": - version: 6.0.2 - resolution: "@npmcli/run-script@npm:6.0.2" +"@npmcli/run-script@npm:^7.0.0": + version: 7.0.2 + resolution: "@npmcli/run-script@npm:7.0.2" dependencies: "@npmcli/node-gyp": "npm:^3.0.0" - "@npmcli/promise-spawn": "npm:^6.0.0" - node-gyp: "npm:^9.0.0" + "@npmcli/promise-spawn": "npm:^7.0.0" + node-gyp: "npm:^10.0.0" read-package-json-fast: "npm:^3.0.0" - which: "npm:^3.0.0" - checksum: 8c6ab2895eb6a2f24b1cd85dc934edae2d1c02af3acfc383655857f3893ed133d393876add800600d2e1702f8b62133d7cf8da00d81a1c885cc6029ef9e8e691 + which: "npm:^4.0.0" + checksum: 5b2b92d9dcedf9f0263861288f9ab9dbb54474bb326578e5fed635994ccdc31d56084c2768475652761cb88f88273bc04db79d2d5a3a35b91389c6fb9d272880 languageName: node linkType: hard @@ -4610,14 +4561,14 @@ __metadata: languageName: node linkType: hard -"@schematics/angular@npm:16.2.10": - version: 16.2.10 - resolution: "@schematics/angular@npm:16.2.10" +"@schematics/angular@npm:17.0.5": + version: 17.0.5 + resolution: "@schematics/angular@npm:17.0.5" dependencies: - "@angular-devkit/core": "npm:16.2.10" - "@angular-devkit/schematics": "npm:16.2.10" + "@angular-devkit/core": "npm:17.0.5" + "@angular-devkit/schematics": "npm:17.0.5" jsonc-parser: "npm:3.2.0" - checksum: 5e3858191908857c66c2e9cc1938a5eb123ebb074ff3a2602f3171bc302971ad13f73e7a2b60f2670c28552decc6de121792f39c0545cf299bce1543058a82b9 + checksum: 8389e1447ca84d74cda9ea05b4446e2469989483cd67124cf6f41e745780386c985bd545ededf72f23a9d09e0a2b9e33878c4f38eeec74145891cf247b5eee4c languageName: node linkType: hard @@ -4644,40 +4595,40 @@ __metadata: languageName: node linkType: hard -"@sigstore/bundle@npm:^1.1.0": - version: 1.1.0 - resolution: "@sigstore/bundle@npm:1.1.0" +"@sigstore/bundle@npm:^2.1.0": + version: 2.1.0 + resolution: "@sigstore/bundle@npm:2.1.0" dependencies: - "@sigstore/protobuf-specs": "npm:^0.2.0" - checksum: f29af2c59eefceb2c6fb88e6acb31efd7400a46968324ad60c19f054bcac3c16f6e2dfa5162feaeb57e3b1688dcd0b659a9d00ca27bbe7907d472758da15586c + "@sigstore/protobuf-specs": "npm:^0.2.1" + checksum: 785b48d9def9cde91880bfd656b32e5808861a3f81e1513041635bbab5763c35cfd5c854d0d7dd7283a5c6aeadac036ead4396281aa0cbb356e1311bd239eff5 languageName: node linkType: hard -"@sigstore/protobuf-specs@npm:^0.2.0": +"@sigstore/protobuf-specs@npm:^0.2.1": version: 0.2.1 resolution: "@sigstore/protobuf-specs@npm:0.2.1" checksum: 756b3bc64e7f21d966473208cd3920fcde6744025f7deb1d3be1d2b6261b825178b393db7458cd191b2eab947e516eacd6f91aa2f4545d8c045431fb699ac357 languageName: node linkType: hard -"@sigstore/sign@npm:^1.0.0": - version: 1.0.0 - resolution: "@sigstore/sign@npm:1.0.0" +"@sigstore/sign@npm:^2.1.0": + version: 2.2.0 + resolution: "@sigstore/sign@npm:2.2.0" dependencies: - "@sigstore/bundle": "npm:^1.1.0" - "@sigstore/protobuf-specs": "npm:^0.2.0" - make-fetch-happen: "npm:^11.0.1" - checksum: 579b4ba31acd662fc9053e6c1e49fda320fa7faf95233d9f7daa87cf198f6f785658fed2791d18d340176f55da300c178c00fcb4871a7d8582df446a09ac6287 + "@sigstore/bundle": "npm:^2.1.0" + "@sigstore/protobuf-specs": "npm:^0.2.1" + make-fetch-happen: "npm:^13.0.0" + checksum: f3a24809940688b2e7dac1ec7097caf73cc25a440efc67d138227f73154ecd7c95d1962b4cb11fe7de1495659c4784c068002d7f8a14fdc6099d830e50a7bc08 languageName: node linkType: hard -"@sigstore/tuf@npm:^1.0.3": - version: 1.0.3 - resolution: "@sigstore/tuf@npm:1.0.3" +"@sigstore/tuf@npm:^2.1.0": + version: 2.2.0 + resolution: "@sigstore/tuf@npm:2.2.0" dependencies: - "@sigstore/protobuf-specs": "npm:^0.2.0" - tuf-js: "npm:^1.1.7" - checksum: 28abf11f05e12dab0e5d53f09743921e7129519753b3ab79e6cfc2400c80a06bc4f233c430dcd4236f8ca6db1aaf20fdd93999592cef0ea4c08f9731c63d09d4 + "@sigstore/protobuf-specs": "npm:^0.2.1" + tuf-js: "npm:^2.1.0" + checksum: d20c0fd1c13e7054b9569eb70b427439546cfd864e891f8dce48e6c59b782b1dede109e02e3ac33ce381a3fd8b8fbffd6719a17cdcaca18972c2c5a000ba816e languageName: node linkType: hard @@ -4736,6 +4687,13 @@ __metadata: languageName: node linkType: hard +"@socket.io/component-emitter@npm:~3.1.0": + version: 3.1.0 + resolution: "@socket.io/component-emitter@npm:3.1.0" + checksum: b838ccccf74c36fa7d3ed89a7efb5858cba1a84db4d08250c2fc44d8235140f10d31875bde71517d8503cb3fb08fcd34d3b7a3d0d89058ca3f74f7c816f0fb9c + languageName: node + linkType: hard + "@storybook/addon-a11y@workspace:*, @storybook/addon-a11y@workspace:addons/a11y": version: 0.0.0-use.local resolution: "@storybook/addon-a11y@workspace:addons/a11y" @@ -4826,8 +4784,8 @@ __metadata: linkType: soft "@storybook/addon-designs@npm:^7.0.4": - version: 7.0.5 - resolution: "@storybook/addon-designs@npm:7.0.5" + version: 7.0.7 + resolution: "@storybook/addon-designs@npm:7.0.7" dependencies: "@figspec/react": "npm:^1.0.0" peerDependencies: @@ -4844,7 +4802,7 @@ __metadata: optional: true react-dom: optional: true - checksum: 01bb51d51c141f644bf1b9a163130acc55f800f0baa2cdbe8bbff6a4e0d323f8c1f5a32448a4aac2b2e05b68cb3ab0eb37c78accc26d37c0876195e0f1217c78 + checksum: 650cb4254a2e12b5c80cc999fb9048efc6ce9bf0d9a29b78a5b5e4fc1e9a67d0b1e5f58ee3fa14780efcb3c896967017d56b11dde989ea1931db409e3ca534f1 languageName: node linkType: hard @@ -4899,7 +4857,6 @@ __metadata: "@storybook/manager-api": "workspace:*" "@storybook/node-logger": "workspace:*" "@storybook/preview-api": "workspace:*" - "@storybook/vue": "workspace:*" ts-dedent: "npm:^2.0.0" typescript: "npm:^5.3.2" peerDependencies: @@ -5119,18 +5076,18 @@ __metadata: version: 0.0.0-use.local resolution: "@storybook/angular@workspace:frameworks/angular" dependencies: - "@angular-devkit/architect": "npm:^0.1600.0-rc.4" - "@angular-devkit/build-angular": "npm:^16.0.0-rc.4" - "@angular-devkit/core": "npm:^16.0.0-rc.4" - "@angular/animations": "npm:^16.0.0-rc.4" - "@angular/cli": "npm:^16.0.0-rc.4" - "@angular/common": "npm:^16.0.0-rc.4" - "@angular/compiler": "npm:^16.0.0-rc.4" - "@angular/compiler-cli": "npm:^16.0.0-rc.4" - "@angular/core": "npm:^16.0.0-rc.4" - "@angular/forms": "npm:^16.0.0-rc.4" - "@angular/platform-browser": "npm:^16.0.0-rc.4" - "@angular/platform-browser-dynamic": "npm:^16.0.0-rc.4" + "@angular-devkit/architect": "npm:^0.1700.5" + "@angular-devkit/build-angular": "npm:^17.0.5" + "@angular-devkit/core": "npm:^17.0.5" + "@angular/animations": "npm:^17.0.5" + "@angular/cli": "npm:^17.0.5" + "@angular/common": "npm:^17.0.5" + "@angular/compiler": "npm:^17.0.5" + "@angular/compiler-cli": "npm:^17.0.5" + "@angular/core": "npm:^17.0.5" + "@angular/forms": "npm:^17.0.5" + "@angular/platform-browser": "npm:^17.0.5" + "@angular/platform-browser-dynamic": "npm:^17.0.5" "@storybook/builder-webpack5": "workspace:*" "@storybook/cli": "workspace:*" "@storybook/client-logger": "workspace:*" @@ -5165,19 +5122,19 @@ __metadata: typescript: "npm:^5.3.2" util-deprecate: "npm:^1.0.2" webpack: "npm:5" - zone.js: "npm:^0.13.0" - peerDependencies: - "@angular-devkit/architect": ">=0.1400.0 < 0.1800.0" - "@angular-devkit/build-angular": ">=14.1.0 < 18.0.0" - "@angular-devkit/core": ">=14.1.0 < 18.0.0" - "@angular/cli": ">=14.1.0 < 18.0.0" - "@angular/common": ">=14.1.0 < 18.0.0" - "@angular/compiler": ">=14.1.0 < 18.0.0" - "@angular/compiler-cli": ">=14.1.0 < 18.0.0" - "@angular/core": ">=14.1.0 < 18.0.0" - "@angular/forms": ">=14.1.0 < 18.0.0" - "@angular/platform-browser": ">=14.1.0 < 18.0.0" - "@angular/platform-browser-dynamic": ">=14.1.0 < 18.0.0" + zone.js: "npm:^0.14.2" + peerDependencies: + "@angular-devkit/architect": ">=0.1500.0 < 0.1800.0" + "@angular-devkit/build-angular": ">=15.0.0 < 18.0.0" + "@angular-devkit/core": ">=15.0.0 < 18.0.0" + "@angular/cli": ">=15.0.0 < 18.0.0" + "@angular/common": ">=15.0.0 < 18.0.0" + "@angular/compiler": ">=15.0.0 < 18.0.0" + "@angular/compiler-cli": ">=15.0.0 < 18.0.0" + "@angular/core": ">=15.0.0 < 18.0.0" + "@angular/forms": ">=15.0.0 < 18.0.0" + "@angular/platform-browser": ">=15.0.0 < 18.0.0" + "@angular/platform-browser-dynamic": ">=15.0.0 < 18.0.0" "@babel/core": "*" rxjs: ^6.0.0 || ^7.4.0 typescript: ^4.0.0 || ^5.0.0 @@ -5447,12 +5404,12 @@ __metadata: languageName: unknown linkType: soft -"@storybook/client-logger@npm:7.6.0": - version: 7.6.0 - resolution: "@storybook/client-logger@npm:7.6.0" +"@storybook/client-logger@npm:7.6.3": + version: 7.6.3 + resolution: "@storybook/client-logger@npm:7.6.3" dependencies: "@storybook/global": "npm:^5.0.0" - checksum: 3fe3bb96f58286d9f6fc1f7cbe4fa6459f2bde2e9b7163943d43772377d9a4a896ba24233f2d648b0da33a4fd721127578d416aacd20f3af48eff836766597e6 + checksum: e32a9932aa7ddc05a17540c2bea7faf613cfc927ef855db2e15dad1fbfb35173c3669f1aeab2a589f16f9dda6a761ee055b98b40700b522a984ec81675817cd1 languageName: node linkType: hard @@ -5847,12 +5804,12 @@ __metadata: linkType: soft "@storybook/icons@npm:^1.2.1": - version: 1.2.2 - resolution: "@storybook/icons@npm:1.2.2" + version: 1.2.3 + resolution: "@storybook/icons@npm:1.2.3" peerDependencies: react: ^16.8.0 || ^17.0.0 || ^18.0.0 react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 - checksum: b879b87f6036270fdbafba8c762f051f8d7a12fa7af6482a3426d47c9b2a22c0bcd5d7b3298252933c0dc21e61e4694785efcb88059e7b3ee979fd77f6567451 + checksum: 510878cc80a844eb5b83460be8e71890743fb9fd70afb3cc46658d3324574d6389542a5dd078c5f613741193d0ac1ff7d2d83b33e447ee0fc1c3699d255ba225 languageName: node linkType: hard @@ -6044,14 +6001,11 @@ __metadata: typescript: "npm:^5.3.2" webpack: "npm:^5.65.0" peerDependencies: - "@next/font": ^13.0.0|| ^14.0.0 - next: ^9.0.0 || ^10.0.0 || ^11.0.0 || ^12.0.0 || ^13.0.0 || ^14.0.0 + next: ^13.5.0 || ^14.0.0 react: ^16.8.0 || ^17.0.0 || ^18.0.0 react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 webpack: ^5.0.0 peerDependenciesMeta: - "@next/font": - optional: true typescript: optional: true webpack: @@ -6246,7 +6200,7 @@ __metadata: typescript: "npm:^5.3.2" peerDependencies: "@babel/core": "*" - svelte: ^3.1.0 || ^4.0.0 + svelte: ^4.0.0 || ^5.0.0-next.16 svelte-loader: "*" languageName: unknown linkType: soft @@ -6560,8 +6514,6 @@ __metadata: "@storybook/testing-library": "npm:next" "@storybook/theming": "workspace:*" "@storybook/types": "workspace:*" - "@storybook/vue": "workspace:*" - "@storybook/vue-webpack5": "workspace:*" "@storybook/vue3": "workspace:*" "@storybook/vue3-vite": "workspace:*" "@storybook/vue3-webpack5": "workspace:*" @@ -6724,14 +6676,14 @@ __metadata: "@sveltejs/vite-plugin-svelte": "npm:^2.4.2" "@types/node": "npm:^18.0.0" magic-string: "npm:^0.30.0" - svelte: "npm:^4.0.0" - svelte-preprocess: "npm:^5.0.4" + svelte: "npm:^5.0.0-next.16" + svelte-preprocess: "npm:^5.1.1" sveltedoc-parser: "npm:^4.2.1" ts-dedent: "npm:^2.2.0" typescript: "npm:^5.3.2" vite: "npm:^4.0.0" peerDependencies: - svelte: ^3.0.0 || ^4.0.0 + svelte: ^4.0.0 || ^5.0.0-next.16 vite: ^3.0.0 || ^4.0.0 || ^5.0.0 languageName: unknown linkType: soft @@ -6749,7 +6701,7 @@ __metadata: typescript: "npm:^5.3.2" peerDependencies: "@babel/core": "*" - svelte: ^3.48.0 || ^4.0.0 + svelte: ^4.0.0 || ^5.0.0-next.16 svelte-loader: "*" languageName: unknown linkType: soft @@ -6765,14 +6717,14 @@ __metadata: "@storybook/preview-api": "workspace:*" "@storybook/types": "workspace:*" expect-type: "npm:^0.15.0" - svelte: "npm:^4.0.0" - svelte-check: "npm:3.4.6" + svelte: "npm:^5.0.0-next.15" + svelte-check: "npm:^3.6.1" sveltedoc-parser: "npm:^4.2.1" ts-dedent: "npm:^2.0.0" type-fest: "npm:~2.19" typescript: "npm:^5.3.2" peerDependencies: - svelte: ^3.1.0 || ^4.0.0 + svelte: ^4.0.0 || ^5.0.0-next.16 languageName: unknown linkType: soft @@ -6788,7 +6740,7 @@ __metadata: typescript: "npm:^5.3.2" vite: "npm:^4.0.0" peerDependencies: - svelte: ^3.0.0 || ^4.0.0 + svelte: ^4.0.0 || ^5.0.0-next.16 vite: ^4.0.0 languageName: unknown linkType: soft @@ -6845,17 +6797,17 @@ __metadata: linkType: hard "@storybook/theming@npm:^7.0.2": - version: 7.6.0 - resolution: "@storybook/theming@npm:7.6.0" + version: 7.6.3 + resolution: "@storybook/theming@npm:7.6.3" dependencies: "@emotion/use-insertion-effect-with-fallbacks": "npm:^1.0.0" - "@storybook/client-logger": "npm:7.6.0" + "@storybook/client-logger": "npm:7.6.3" "@storybook/global": "npm:^5.0.0" memoizerific: "npm:^1.11.3" peerDependencies: react: ^16.8.0 || ^17.0.0 || ^18.0.0 react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 - checksum: 612701795aea296309b3d324ac5c412dbb0478cbd45c793d2de30650ab30201c727dd8af650af4abe66b088236d7ac9ef4f60c3351e3242ca5d1293319427981 + checksum: 465b060d5aef79dddc69c71bd66d2c5bbe04d4204ca2d3e5a6eb21f79ad64e1bd54ed214e7a092800580d9261361227094d8c9b9fd5a3ee5051ddf3096ee01eb languageName: node linkType: hard @@ -6899,48 +6851,6 @@ __metadata: languageName: unknown linkType: soft -"@storybook/vue-vite@workspace:frameworks/vue-vite": - version: 0.0.0-use.local - resolution: "@storybook/vue-vite@workspace:frameworks/vue-vite" - dependencies: - "@storybook/builder-vite": "workspace:*" - "@storybook/core-common": "workspace:*" - "@storybook/core-server": "workspace:*" - "@storybook/vue": "workspace:*" - magic-string: "npm:^0.30.0" - typescript: "npm:^5.3.2" - vite: "npm:^4.0.0" - vue: "npm:^2.7.10" - vue-docgen-api: "npm:^4.40.0" - peerDependencies: - vite: ^3.0.0 || ^4.0.0 || ^5.0.0 - vue: ^2.7.0 - languageName: unknown - linkType: soft - -"@storybook/vue-webpack5@workspace:*, @storybook/vue-webpack5@workspace:frameworks/vue-webpack5": - version: 0.0.0-use.local - resolution: "@storybook/vue-webpack5@workspace:frameworks/vue-webpack5" - dependencies: - "@storybook/builder-webpack5": "workspace:*" - "@storybook/core-common": "workspace:*" - "@storybook/preset-vue-webpack": "workspace:*" - "@storybook/vue": "workspace:*" - "@types/node": "npm:^18.0.0" - typescript: "npm:^5.3.2" - vue: "npm:^2.6.12" - vue-loader: "npm:^15.7.0" - vue-template-compiler: "npm:^2.6.14" - peerDependencies: - "@babel/core": "*" - babel-loader: ^7.0.0 || ^8.0.0 || ^9.0.0 - css-loader: "*" - vue: ^2.6.8 - vue-loader: ^15.7.0 - vue-template-compiler: ^2.6.8 - languageName: unknown - linkType: soft - "@storybook/vue3-vite@workspace:*, @storybook/vue3-vite@workspace:frameworks/vue3-vite": version: 0.0.0-use.local resolution: "@storybook/vue3-vite@workspace:frameworks/vue3-vite" @@ -7005,32 +6915,6 @@ __metadata: languageName: unknown linkType: soft -"@storybook/vue@workspace:*, @storybook/vue@workspace:renderers/vue": - version: 0.0.0-use.local - resolution: "@storybook/vue@workspace:renderers/vue" - dependencies: - "@storybook/client-logger": "workspace:*" - "@storybook/docs-tools": "workspace:*" - "@storybook/global": "npm:^5.0.0" - "@storybook/preview-api": "workspace:*" - "@storybook/types": "workspace:*" - tiny-invariant: "npm:^1.3.1" - ts-dedent: "npm:^2.0.0" - type-fest: "npm:~2.19" - typescript: "npm:^5.3.2" - vue: "npm:2.6.14" - vue-tsc: "npm:latest" - peerDependencies: - "@babel/core": "*" - babel-loader: ^7.0.0 || ^8.0.0 || ^9.0.0 - css-loader: "*" - vue: ^2.6.8 - peerDependenciesMeta: - babel-loader: - optional: true - languageName: unknown - linkType: soft - "@storybook/web-components-vite@workspace:*, @storybook/web-components-vite@workspace:frameworks/web-components-vite": version: 0.0.0-use.local resolution: "@storybook/web-components-vite@workspace:frameworks/web-components-vite" @@ -7123,6 +7007,13 @@ __metadata: languageName: node linkType: hard +"@swc/core-darwin-arm64@npm:1.3.100": + version: 1.3.100 + resolution: "@swc/core-darwin-arm64@npm:1.3.100" + conditions: os=darwin & cpu=arm64 + languageName: node + linkType: hard + "@swc/core-darwin-arm64@npm:1.3.82": version: 1.3.82 resolution: "@swc/core-darwin-arm64@npm:1.3.82" @@ -7130,10 +7021,10 @@ __metadata: languageName: node linkType: hard -"@swc/core-darwin-arm64@npm:1.3.99": - version: 1.3.99 - resolution: "@swc/core-darwin-arm64@npm:1.3.99" - conditions: os=darwin & cpu=arm64 +"@swc/core-darwin-x64@npm:1.3.100": + version: 1.3.100 + resolution: "@swc/core-darwin-x64@npm:1.3.100" + conditions: os=darwin & cpu=x64 languageName: node linkType: hard @@ -7144,13 +7035,6 @@ __metadata: languageName: node linkType: hard -"@swc/core-darwin-x64@npm:1.3.99": - version: 1.3.99 - resolution: "@swc/core-darwin-x64@npm:1.3.99" - conditions: os=darwin & cpu=x64 - languageName: node - linkType: hard - "@swc/core-linux-arm-gnueabihf@npm:1.3.82": version: 1.3.82 resolution: "@swc/core-linux-arm-gnueabihf@npm:1.3.82" @@ -7158,6 +7042,13 @@ __metadata: languageName: node linkType: hard +"@swc/core-linux-arm64-gnu@npm:1.3.100": + version: 1.3.100 + resolution: "@swc/core-linux-arm64-gnu@npm:1.3.100" + conditions: os=linux & cpu=arm64 & libc=glibc + languageName: node + linkType: hard + "@swc/core-linux-arm64-gnu@npm:1.3.82": version: 1.3.82 resolution: "@swc/core-linux-arm64-gnu@npm:1.3.82" @@ -7165,10 +7056,10 @@ __metadata: languageName: node linkType: hard -"@swc/core-linux-arm64-gnu@npm:1.3.99": - version: 1.3.99 - resolution: "@swc/core-linux-arm64-gnu@npm:1.3.99" - conditions: os=linux & cpu=arm64 & libc=glibc +"@swc/core-linux-arm64-musl@npm:1.3.100": + version: 1.3.100 + resolution: "@swc/core-linux-arm64-musl@npm:1.3.100" + conditions: os=linux & cpu=arm64 & libc=musl languageName: node linkType: hard @@ -7179,10 +7070,10 @@ __metadata: languageName: node linkType: hard -"@swc/core-linux-arm64-musl@npm:1.3.99": - version: 1.3.99 - resolution: "@swc/core-linux-arm64-musl@npm:1.3.99" - conditions: os=linux & cpu=arm64 & libc=musl +"@swc/core-linux-x64-gnu@npm:1.3.100": + version: 1.3.100 + resolution: "@swc/core-linux-x64-gnu@npm:1.3.100" + conditions: os=linux & cpu=x64 & libc=glibc languageName: node linkType: hard @@ -7193,10 +7084,10 @@ __metadata: languageName: node linkType: hard -"@swc/core-linux-x64-gnu@npm:1.3.99": - version: 1.3.99 - resolution: "@swc/core-linux-x64-gnu@npm:1.3.99" - conditions: os=linux & cpu=x64 & libc=glibc +"@swc/core-linux-x64-musl@npm:1.3.100": + version: 1.3.100 + resolution: "@swc/core-linux-x64-musl@npm:1.3.100" + conditions: os=linux & cpu=x64 & libc=musl languageName: node linkType: hard @@ -7207,10 +7098,10 @@ __metadata: languageName: node linkType: hard -"@swc/core-linux-x64-musl@npm:1.3.99": - version: 1.3.99 - resolution: "@swc/core-linux-x64-musl@npm:1.3.99" - conditions: os=linux & cpu=x64 & libc=musl +"@swc/core-win32-arm64-msvc@npm:1.3.100": + version: 1.3.100 + resolution: "@swc/core-win32-arm64-msvc@npm:1.3.100" + conditions: os=win32 & cpu=arm64 languageName: node linkType: hard @@ -7221,10 +7112,10 @@ __metadata: languageName: node linkType: hard -"@swc/core-win32-arm64-msvc@npm:1.3.99": - version: 1.3.99 - resolution: "@swc/core-win32-arm64-msvc@npm:1.3.99" - conditions: os=win32 & cpu=arm64 +"@swc/core-win32-ia32-msvc@npm:1.3.100": + version: 1.3.100 + resolution: "@swc/core-win32-ia32-msvc@npm:1.3.100" + conditions: os=win32 & cpu=ia32 languageName: node linkType: hard @@ -7235,10 +7126,10 @@ __metadata: languageName: node linkType: hard -"@swc/core-win32-ia32-msvc@npm:1.3.99": - version: 1.3.99 - resolution: "@swc/core-win32-ia32-msvc@npm:1.3.99" - conditions: os=win32 & cpu=ia32 +"@swc/core-win32-x64-msvc@npm:1.3.100": + version: 1.3.100 + resolution: "@swc/core-win32-x64-msvc@npm:1.3.100" + conditions: os=win32 & cpu=x64 languageName: node linkType: hard @@ -7249,13 +7140,6 @@ __metadata: languageName: node linkType: hard -"@swc/core-win32-x64-msvc@npm:1.3.99": - version: 1.3.99 - resolution: "@swc/core-win32-x64-msvc@npm:1.3.99" - conditions: os=win32 & cpu=x64 - languageName: node - linkType: hard - "@swc/core@npm:1.3.82": version: 1.3.82 resolution: "@swc/core@npm:1.3.82" @@ -7302,18 +7186,18 @@ __metadata: linkType: hard "@swc/core@npm:^1.3.82": - version: 1.3.99 - resolution: "@swc/core@npm:1.3.99" - dependencies: - "@swc/core-darwin-arm64": "npm:1.3.99" - "@swc/core-darwin-x64": "npm:1.3.99" - "@swc/core-linux-arm64-gnu": "npm:1.3.99" - "@swc/core-linux-arm64-musl": "npm:1.3.99" - "@swc/core-linux-x64-gnu": "npm:1.3.99" - "@swc/core-linux-x64-musl": "npm:1.3.99" - "@swc/core-win32-arm64-msvc": "npm:1.3.99" - "@swc/core-win32-ia32-msvc": "npm:1.3.99" - "@swc/core-win32-x64-msvc": "npm:1.3.99" + version: 1.3.100 + resolution: "@swc/core@npm:1.3.100" + dependencies: + "@swc/core-darwin-arm64": "npm:1.3.100" + "@swc/core-darwin-x64": "npm:1.3.100" + "@swc/core-linux-arm64-gnu": "npm:1.3.100" + "@swc/core-linux-arm64-musl": "npm:1.3.100" + "@swc/core-linux-x64-gnu": "npm:1.3.100" + "@swc/core-linux-x64-musl": "npm:1.3.100" + "@swc/core-win32-arm64-msvc": "npm:1.3.100" + "@swc/core-win32-ia32-msvc": "npm:1.3.100" + "@swc/core-win32-x64-msvc": "npm:1.3.100" "@swc/counter": "npm:^0.1.1" "@swc/types": "npm:^0.1.5" peerDependencies: @@ -7340,7 +7224,7 @@ __metadata: peerDependenciesMeta: "@swc/helpers": optional: true - checksum: ff009b70e74f4f66deba7d8967196d32f374e94c8f4e44b077ff082f5adafd1268caed739040153bb79ca27114d0cca8795bce4af6fa986d645a3ff9acf24e4b + checksum: d6e873a7c627765991b18bd8d1b0ce1f1d9cf08c451fe78dbbf28dda14d4301cec2689f6bd85e604847d4a20226fd79c272796fef4f28feaca81a20c0f62e8e9 languageName: node linkType: hard @@ -7438,8 +7322,8 @@ __metadata: linkType: hard "@testing-library/jest-dom@npm:^6.1.2, @testing-library/jest-dom@npm:^6.1.3": - version: 6.1.4 - resolution: "@testing-library/jest-dom@npm:6.1.4" + version: 6.1.5 + resolution: "@testing-library/jest-dom@npm:6.1.5" dependencies: "@adobe/css-tools": "npm:^4.3.1" "@babel/runtime": "npm:^7.9.2" @@ -7463,7 +7347,7 @@ __metadata: optional: true vitest: optional: true - checksum: 2e23f120613fd8ae6d5169bbc94f1a2e4c82b07182057dc94db8ec54ebf32555833442e6c43a187e59715d83704ffb5df49ba88a71f6f32d2683f3d95ba721c7 + checksum: f3643a56fcd970b5c7e8fd10faf3c4817d8ab0e74fb1198d726643bdc5ac675ceaac3b0068c5b4fbad254470e8f98ed50028741de875a29ceaa2f854570979c9 languageName: node linkType: hard @@ -7512,13 +7396,6 @@ __metadata: languageName: node linkType: hard -"@tootallnate/once@npm:1": - version: 1.1.2 - resolution: "@tootallnate/once@npm:1.1.2" - checksum: 8fe4d006e90422883a4fa9339dd05a83ff626806262e1710cee5758d493e8cbddf2db81c0e4690636dc840b02c9fda62877866ea774ebd07c1777ed5fafbdec6 - languageName: node - linkType: hard - "@tootallnate/once@npm:2": version: 2.0.0 resolution: "@tootallnate/once@npm:2.0.0" @@ -7554,20 +7431,20 @@ __metadata: languageName: node linkType: hard -"@tufjs/canonical-json@npm:1.0.0": - version: 1.0.0 - resolution: "@tufjs/canonical-json@npm:1.0.0" - checksum: 6d28fdfa1fe22cc6a3ff41de8bf74c46dee6d4ff00e8a33519d84e060adaaa04bbdaf17fbcd102511fbdd5e4b8d2a67341c9aaf0cd641be1aea386442f4b1e88 +"@tufjs/canonical-json@npm:2.0.0": + version: 2.0.0 + resolution: "@tufjs/canonical-json@npm:2.0.0" + checksum: 52c5ffaef1483ed5c3feedfeba26ca9142fa386eea54464e70ff515bd01c5e04eab05d01eff8c2593291dcaf2397ca7d9c512720e11f52072b04c47a5c279415 languageName: node linkType: hard -"@tufjs/models@npm:1.0.4": - version: 1.0.4 - resolution: "@tufjs/models@npm:1.0.4" +"@tufjs/models@npm:2.0.0": + version: 2.0.0 + resolution: "@tufjs/models@npm:2.0.0" dependencies: - "@tufjs/canonical-json": "npm:1.0.0" - minimatch: "npm:^9.0.0" - checksum: 99bcfa6ecd642861a21e4874c4a687bb57f7c2ab7e10c6756b576c2fa4a6f2be3d21ba8e76334f11ea2846949b514b10fa59584aaee0a100e09e9263114b635b + "@tufjs/canonical-json": "npm:2.0.0" + minimatch: "npm:^9.0.3" + checksum: 252f525b05526077430920b30b125e197a3d711f4c6d1ceeee9cea5044035e4d94e57db481d96bd8e9d1ce5ee23fcc9fe989e7e0c9c2aec7e1edc27326ee16e6 languageName: node linkType: hard @@ -7731,8 +7608,24 @@ __metadata: languageName: node linkType: hard -"@types/cross-spawn@npm:^6.0.2": - version: 6.0.6 +"@types/cookie@npm:^0.4.1": + version: 0.4.1 + resolution: "@types/cookie@npm:0.4.1" + checksum: f96afe12bd51be1ec61410b0641243d93fa3a494702407c787a4c872b5c8bcd39b224471452055e44a9ce42af1a636e87d161994226eaf4c2be9c30f60418409 + languageName: node + linkType: hard + +"@types/cors@npm:^2.8.12": + version: 2.8.17 + resolution: "@types/cors@npm:2.8.17" + dependencies: + "@types/node": "npm:*" + checksum: 457364c28c89f3d9ed34800e1de5c6eaaf344d1bb39af122f013322a50bc606eb2aa6f63de4e41a7a08ba7ef454473926c94a830636723da45bf786df032696d + languageName: node + linkType: hard + +"@types/cross-spawn@npm:^6.0.2": + version: 6.0.6 resolution: "@types/cross-spawn@npm:6.0.6" dependencies: "@types/node": "npm:*" @@ -7802,12 +7695,12 @@ __metadata: linkType: hard "@types/eslint@npm:*": - version: 8.44.7 - resolution: "@types/eslint@npm:8.44.7" + version: 8.44.8 + resolution: "@types/eslint@npm:8.44.8" dependencies: "@types/estree": "npm:*" "@types/json-schema": "npm:*" - checksum: 447b55ccff47668fc63466728e7e598ae16a03de8d489350e855b6020ad16f58a703e75b875376dd6cd5fcab630311a805fa7f934476637ea35819f01c9db3ca + checksum: 610966753add984f6ac9f00eeb766691e141e66a7e20b724a45ad077f60e8cd8fd7874b7e655e93537e54873cc5711cd6f57728474e08b478407cd942f098263 languageName: node linkType: hard @@ -7893,7 +7786,17 @@ __metadata: languageName: node linkType: hard -"@types/glob@npm:*, @types/glob@npm:^7.1.1, @types/glob@npm:^7.1.3": +"@types/glob@npm:*": + version: 8.1.0 + resolution: "@types/glob@npm:8.1.0" + dependencies: + "@types/minimatch": "npm:^5.1.2" + "@types/node": "npm:*" + checksum: ded07aa0d7a1caf3c47b85e262be82989ccd7933b4a14712b79c82fd45a239249811d9fc3a135b3e9457afa163e74a297033d7245b0dc63cd3d032f3906b053f + languageName: node + linkType: hard + +"@types/glob@npm:^7.1.1, @types/glob@npm:^7.1.3": version: 7.2.0 resolution: "@types/glob@npm:7.2.0" dependencies: @@ -8004,7 +7907,17 @@ __metadata: languageName: node linkType: hard -"@types/jest@npm:*, @types/jest@npm:28.1.3": +"@types/jest@npm:*": + version: 29.5.10 + resolution: "@types/jest@npm:29.5.10" + dependencies: + expect: "npm:^29.0.0" + pretty-format: "npm:^29.0.0" + checksum: b46171d59d12a5f69bbe710f65eaf59a8073337c6b4a67dff8158575caec53f1c61f8a7d645b34d6ac3c4ea398acd30f0c5d1c4a131c0c918798019264a3397d + languageName: node + linkType: hard + +"@types/jest@npm:28.1.3": version: 28.1.3 resolution: "@types/jest@npm:28.1.3" dependencies: @@ -8121,7 +8034,7 @@ __metadata: languageName: node linkType: hard -"@types/minimatch@npm:*": +"@types/minimatch@npm:*, @types/minimatch@npm:^5.1.2": version: 5.1.2 resolution: "@types/minimatch@npm:5.1.2" checksum: 83cf1c11748891b714e129de0585af4c55dd4c2cafb1f1d5233d79246e5e1e19d1b5ad9e8db449667b3ffa2b6c80125c429dbee1054e9efb45758dbc4e118562 @@ -8170,12 +8083,30 @@ __metadata: languageName: node linkType: hard -"@types/node@npm:*, @types/node@npm:>= 8, @types/node@npm:^18.0.0": - version: 18.18.13 - resolution: "@types/node@npm:18.18.13" +"@types/node@npm:*, @types/node@npm:>= 8": + version: 20.10.1 + resolution: "@types/node@npm:20.10.1" + dependencies: + undici-types: "npm:~5.26.4" + checksum: c1b4b5a33f57bd39a8a0d074f27e3e370fccc6cda6a1c46caa48cc4c1687677cfdbffd9dc93fc803c6d355696dd9c73cd6f6507c749f61f83beb7326aec077d2 + languageName: node + linkType: hard + +"@types/node@npm:>=10.0.0": + version: 20.10.3 + resolution: "@types/node@npm:20.10.3" + dependencies: + undici-types: "npm:~5.26.4" + checksum: 7c8a0327a29d68a0bb152ae30e8c4738638515dd599064821c9d0c1884a1efa103021cd8f8c91e690cd56b0602bb6fe0e6651a5df2337bdc85e0c0f66054b2ce + languageName: node + linkType: hard + +"@types/node@npm:^18.0.0": + version: 18.19.0 + resolution: "@types/node@npm:18.19.0" dependencies: undici-types: "npm:~5.26.4" - checksum: 5f1840f26b4c00e6b4945be678644a46e6689ef10d9d7795d587b76059045b99a14ca6075264296e6e91d73e098fe83df9580881278d9a6ce394b368d9c76700 + checksum: 3205c61d4152487cd8961ef73cfe57a2c90217439ae985cdf587117cf20694c7974d549a840478a8683ead4db6e6e95bdd194b59b8acff717fdac5cb3f198924 languageName: node linkType: hard @@ -8805,12 +8736,12 @@ __metadata: linkType: hard "@vitejs/plugin-vue@npm:^4.0.0": - version: 4.5.0 - resolution: "@vitejs/plugin-vue@npm:4.5.0" + version: 4.5.1 + resolution: "@vitejs/plugin-vue@npm:4.5.1" peerDependencies: vite: ^4.0.0 || ^5.0.0 vue: ^3.2.25 - checksum: d15b9c817cc6ae361a5b0975254d842a8f81bc7296112fe6ace7296e80a2bfb03ad749c7db356a0f6d5fc5af1c8d755dfe7d11fd5b7499512c44fea174334f45 + checksum: e14bcae83faa6f0a6b55a39635841aeb4f45b753404914bf6f5744c24b407d8b60cf2c5adfa47bc6d6c8b92566e203793bc106214fdd2af26a661d7c80a3c428 languageName: node linkType: hard @@ -8876,31 +8807,31 @@ __metadata: languageName: node linkType: hard -"@volar/language-core@npm:1.10.10, @volar/language-core@npm:~1.10.5": - version: 1.10.10 - resolution: "@volar/language-core@npm:1.10.10" +"@volar/language-core@npm:1.11.1, @volar/language-core@npm:~1.11.1": + version: 1.11.1 + resolution: "@volar/language-core@npm:1.11.1" dependencies: - "@volar/source-map": "npm:1.10.10" - checksum: 286f43bffd8b67230f4a66211d14bb6a15f7adbcd88342a1b2c2a2f283dae33c7aa4be62f58d8e268aee808c0ebe32cf135f76b4f4f952d542ccef2accba7efd + "@volar/source-map": "npm:1.11.1" + checksum: 92c4439e3a9ccc534c970031388c318740f6fa032283d03e136c6c8c0228f549c68a7c363af1a28252617a0dca6069e14028329ac906d5acf1912931d0cdcb69 languageName: node linkType: hard -"@volar/source-map@npm:1.10.10, @volar/source-map@npm:~1.10.5": - version: 1.10.10 - resolution: "@volar/source-map@npm:1.10.10" +"@volar/source-map@npm:1.11.1, @volar/source-map@npm:~1.11.1": + version: 1.11.1 + resolution: "@volar/source-map@npm:1.11.1" dependencies: muggle-string: "npm:^0.3.1" - checksum: 9ef9b3411ef4281c5fe0d57c04e4c54d5d1ccaaab2355359169789e2b2ee43d2f60774b43104825bbd80bbe934619437c74cfdde6f2a06bd7b499ba4f19a4c26 + checksum: 0bfc639889802705f8036ea8b2052a95a4d691a68bc2b6744ba8b9d312d887393dd3278101180a5ee5304972899d493972a483afafd41e097968746c77d724cb languageName: node linkType: hard -"@volar/typescript@npm:~1.10.5": - version: 1.10.10 - resolution: "@volar/typescript@npm:1.10.10" +"@volar/typescript@npm:~1.11.1": + version: 1.11.1 + resolution: "@volar/typescript@npm:1.11.1" dependencies: - "@volar/language-core": "npm:1.10.10" + "@volar/language-core": "npm:1.11.1" path-browserify: "npm:^1.0.1" - checksum: 055bb5c377fcd7298653fa13f945046100ca3976132c6a0e779b5d8f6dec9911789e5ae8e5710479d5611002506b1735e0f9b4e7f17695fc4de39dc78d6ee7fd + checksum: 86fe153db3a14d8eb3632784a1d7fcbfbfb51fa5517c3878bfdd49ee8d15a83b1a09f9c589454b7396454c104d3a8e2db3a987dc99b37c33816772fc3e292bf2 languageName: node linkType: hard @@ -9044,24 +8975,25 @@ __metadata: languageName: node linkType: hard -"@vue/language-core@npm:1.8.22": - version: 1.8.22 - resolution: "@vue/language-core@npm:1.8.22" +"@vue/language-core@npm:1.8.24": + version: 1.8.24 + resolution: "@vue/language-core@npm:1.8.24" dependencies: - "@volar/language-core": "npm:~1.10.5" - "@volar/source-map": "npm:~1.10.5" + "@volar/language-core": "npm:~1.11.1" + "@volar/source-map": "npm:~1.11.1" "@vue/compiler-dom": "npm:^3.3.0" "@vue/shared": "npm:^3.3.0" computeds: "npm:^0.0.1" minimatch: "npm:^9.0.3" muggle-string: "npm:^0.3.1" + path-browserify: "npm:^1.0.1" vue-template-compiler: "npm:^2.7.14" peerDependencies: typescript: "*" peerDependenciesMeta: typescript: optional: true - checksum: b2ac52872dc9e3334858b313923a1fbb0925cd59bb768186e2224ba99f0c530492da599ad697b7da5627d41955484db0869cde967ab780e7d54df15290ed8cc0 + checksum: 4bc0c5a1e3d818df1d70c5957deab6c4a9dd85ccd7716596db435d6b42e58e1bca849369c6ab52ebcaf50fe2af1ca750f69f4242e25cc9a60001d035c9701b95 languageName: node linkType: hard @@ -9338,20 +9270,6 @@ __metadata: languageName: node linkType: hard -"@wessberg/ts-evaluator@npm:0.0.27": - version: 0.0.27 - resolution: "@wessberg/ts-evaluator@npm:0.0.27" - dependencies: - chalk: "npm:^4.1.0" - jsdom: "npm:^16.4.0" - object-path: "npm:^0.11.5" - tslib: "npm:^2.0.3" - peerDependencies: - typescript: ">=3.2.x || >= 4.x" - checksum: d81f7dd16ee2b95bbcab05aaeb6b6d0609183ef18d8adb42fa4b9707455ee332274da43ed7bae6b725f24e2cb75249b8cc4fbbe3aad59ab40d30b40402d815c6 - languageName: node - linkType: hard - "@xtuc/ieee754@npm:^1.2.0": version: 1.2.0 resolution: "@xtuc/ieee754@npm:1.2.0" @@ -9425,7 +9343,7 @@ __metadata: languageName: node linkType: hard -"abab@npm:^2.0.3, abab@npm:^2.0.5, abab@npm:^2.0.6": +"abab@npm:^2.0.6": version: 2.0.6 resolution: "abab@npm:2.0.6" checksum: 0b245c3c3ea2598fe0025abf7cc7bb507b06949d51e8edae5d12c1b847a0a0c09639abcb94788332b4e2044ac4491c1e8f571b51c7826fd4b0bda1685ad4a278 @@ -9465,16 +9383,6 @@ __metadata: languageName: node linkType: hard -"acorn-globals@npm:^6.0.0": - version: 6.0.0 - resolution: "acorn-globals@npm:6.0.0" - dependencies: - acorn: "npm:^7.1.1" - acorn-walk: "npm:^7.1.1" - checksum: 5f92390a3fd7e5a4f84fe976d4650e2a33ecf27135aa9efc5406e3406df7f00a1bbb00648ee0c8058846f55ad0924ff574e6c73395705690e754589380a41801 - languageName: node - linkType: hard - "acorn-globals@npm:^7.0.0": version: 7.0.1 resolution: "acorn-globals@npm:7.0.1" @@ -9503,7 +9411,16 @@ __metadata: languageName: node linkType: hard -"acorn-walk@npm:^7.1.1, acorn-walk@npm:^7.2.0": +"acorn-typescript@npm:^1.4.11": + version: 1.4.12 + resolution: "acorn-typescript@npm:1.4.12" + peerDependencies: + acorn: ">=8.9.0" + checksum: a3b33ed0dc321e3364da507a3decec96423736384068c88fea5ea57aeae864ea115a6c4a20b3ace71b75f4901b0657bec82d83aab30a8ad0dfc4bfc0d8337546 + languageName: node + linkType: hard + +"acorn-walk@npm:^7.2.0": version: 7.2.0 resolution: "acorn-walk@npm:7.2.0" checksum: ff99f3406ed8826f7d6ef6ac76b7608f099d45a1ff53229fa267125da1924188dbacf02e7903dfcfd2ae4af46f7be8847dc7d564c73c4e230dfb69c8ea8e6b4c @@ -9526,7 +9443,7 @@ __metadata: languageName: node linkType: hard -"acorn@npm:^8.0.0, acorn@npm:^8.1.0, acorn@npm:^8.10.0, acorn@npm:^8.11.2, acorn@npm:^8.2.4, acorn@npm:^8.4.1, acorn@npm:^8.6.0, acorn@npm:^8.7.1, acorn@npm:^8.8.1, acorn@npm:^8.8.2, acorn@npm:^8.9.0": +"acorn@npm:^8.0.0, acorn@npm:^8.1.0, acorn@npm:^8.10.0, acorn@npm:^8.11.2, acorn@npm:^8.4.1, acorn@npm:^8.6.0, acorn@npm:^8.7.1, acorn@npm:^8.8.1, acorn@npm:^8.8.2, acorn@npm:^8.9.0": version: 8.11.2 resolution: "acorn@npm:8.11.2" bin: @@ -9680,7 +9597,7 @@ __metadata: languageName: node linkType: hard -"ansi-escapes@npm:^4.2.1": +"ansi-escapes@npm:^4.2.1, ansi-escapes@npm:^4.3.2": version: 4.3.2 resolution: "ansi-escapes@npm:4.3.2" dependencies: @@ -10142,6 +10059,13 @@ __metadata: languageName: node linkType: hard +"async-each-series@npm:0.1.1": + version: 0.1.1 + resolution: "async-each-series@npm:0.1.1" + checksum: 38d30fd162e6b1a6abe44ac6518cd0ae6f5ead587005b052a74dcd56494cc29fd2575845e34f24a6cc8e91d51a7060302bff3e8f605e8f359fcaea8072ceb4b9 + languageName: node + linkType: hard + "async-promise-queue@npm:^1.0.3": version: 1.0.5 resolution: "async-promise-queue@npm:1.0.5" @@ -10161,7 +10085,7 @@ __metadata: languageName: node linkType: hard -"async@npm:^2.4.1, async@npm:^2.6.4": +"async@npm:^2.4.1, async@npm:^2.6.0, async@npm:^2.6.4": version: 2.6.4 resolution: "async@npm:2.6.4" dependencies: @@ -10202,13 +10126,13 @@ __metadata: languageName: node linkType: hard -"autoprefixer@npm:10.4.14": - version: 10.4.14 - resolution: "autoprefixer@npm:10.4.14" +"autoprefixer@npm:10.4.16": + version: 10.4.16 + resolution: "autoprefixer@npm:10.4.16" dependencies: - browserslist: "npm:^4.21.5" - caniuse-lite: "npm:^1.0.30001464" - fraction.js: "npm:^4.2.0" + browserslist: "npm:^4.21.10" + caniuse-lite: "npm:^1.0.30001538" + fraction.js: "npm:^4.3.6" normalize-range: "npm:^0.1.2" picocolors: "npm:^1.0.0" postcss-value-parser: "npm:^4.2.0" @@ -10216,7 +10140,7 @@ __metadata: postcss: ^8.1.0 bin: autoprefixer: bin/autoprefixer - checksum: 66ce961b86acd2a46e05ac1eece8657b3d9edfd2ee3abddd6cfcb32755e6865409f57acf11fe05990d6f166afda85a603678435916267a09652265cfff7b5706 + checksum: e00256e754d481a026d928bca729b25954074dd142dbec022f0a7db0d3bbc0dc2e2dc7542e94fec22eff81e21fe140e6856448e2d9a002660cb1e2ad434daee0 languageName: node linkType: hard @@ -10241,6 +10165,15 @@ __metadata: languageName: node linkType: hard +"axios@npm:0.21.4": + version: 0.21.4 + resolution: "axios@npm:0.21.4" + dependencies: + follow-redirects: "npm:^1.14.0" + checksum: fbcff55ec68f71f02d3773d467db2fcecdf04e749826c82c2427a232f9eba63242150a05f15af9ef15818352b814257541155de0281f8fb2b7e8a5b79f7f2142 + languageName: node + linkType: hard + "axios@npm:^1.5.1, axios@npm:^1.6.1": version: 1.6.2 resolution: "axios@npm:1.6.2" @@ -10261,6 +10194,15 @@ __metadata: languageName: node linkType: hard +"axobject-query@npm:^4.0.0": + version: 4.0.0 + resolution: "axobject-query@npm:4.0.0" + dependencies: + dequal: "npm:^2.0.3" + checksum: 4d756b5c2ff099f1c7f99e55a5de9b2066cb2a13a3170185ff34bfec2d7bcab81eb820a4e7340d35c251341b61ebee6e705b7ce64db78224df1df5a4d68448fe + languageName: node + linkType: hard + "b4a@npm:^1.6.4": version: 1.6.4 resolution: "b4a@npm:1.6.4" @@ -10430,7 +10372,7 @@ __metadata: languageName: node linkType: hard -"babel-plugin-polyfill-corejs2@npm:^0.4.4, babel-plugin-polyfill-corejs2@npm:^0.4.6": +"babel-plugin-polyfill-corejs2@npm:^0.4.6": version: 0.4.6 resolution: "babel-plugin-polyfill-corejs2@npm:0.4.6" dependencies: @@ -10443,7 +10385,7 @@ __metadata: languageName: node linkType: hard -"babel-plugin-polyfill-corejs3@npm:^0.8.2, babel-plugin-polyfill-corejs3@npm:^0.8.5": +"babel-plugin-polyfill-corejs3@npm:^0.8.5": version: 0.8.6 resolution: "babel-plugin-polyfill-corejs3@npm:0.8.6" dependencies: @@ -10455,7 +10397,7 @@ __metadata: languageName: node linkType: hard -"babel-plugin-polyfill-regenerator@npm:^0.5.1, babel-plugin-polyfill-regenerator@npm:^0.5.3": +"babel-plugin-polyfill-regenerator@npm:^0.5.3": version: 0.5.3 resolution: "babel-plugin-polyfill-regenerator@npm:0.5.3" dependencies: @@ -10557,6 +10499,13 @@ __metadata: languageName: node linkType: hard +"base64id@npm:2.0.0, base64id@npm:~2.0.0": + version: 2.0.0 + resolution: "base64id@npm:2.0.0" + checksum: 6919efd237ed44b9988cbfc33eca6f173a10e810ce50292b271a1a421aac7748ef232a64d1e6032b08f19aae48dce6ee8f66c5ae2c9e5066c82b884861d4d453 + languageName: node + linkType: hard + "base@npm:^0.11.1": version: 0.11.2 resolution: "base@npm:0.11.2" @@ -11033,6 +10982,71 @@ __metadata: languageName: node linkType: hard +"browser-sync-client@npm:^2.29.3": + version: 2.29.3 + resolution: "browser-sync-client@npm:2.29.3" + dependencies: + etag: "npm:1.8.1" + fresh: "npm:0.5.2" + mitt: "npm:^1.1.3" + checksum: 622b4e2ceb47d10c6d8af627e7924db888632d3603630fccf3cedf4f5fd927008f9a2c223d6325fc12eb73b33d08ac67b916884ad7ece7d4de5d9da4003537e1 + languageName: node + linkType: hard + +"browser-sync-ui@npm:^2.29.3": + version: 2.29.3 + resolution: "browser-sync-ui@npm:2.29.3" + dependencies: + async-each-series: "npm:0.1.1" + chalk: "npm:4.1.2" + connect-history-api-fallback: "npm:^1" + immutable: "npm:^3" + server-destroy: "npm:1.0.1" + socket.io-client: "npm:^4.4.1" + stream-throttle: "npm:^0.1.3" + checksum: 5de1b7d2c8d003d984f5d6de976407783e3159f7ea9997a60dee5fa1589b7b30ad67d93e344a8d4d11f6b98bf961d49cceb96f2bf5d97e7f75b2a4aa3c66db98 + languageName: node + linkType: hard + +"browser-sync@npm:2.29.3": + version: 2.29.3 + resolution: "browser-sync@npm:2.29.3" + dependencies: + browser-sync-client: "npm:^2.29.3" + browser-sync-ui: "npm:^2.29.3" + bs-recipes: "npm:1.3.4" + chalk: "npm:4.1.2" + chokidar: "npm:^3.5.1" + connect: "npm:3.6.6" + connect-history-api-fallback: "npm:^1" + dev-ip: "npm:^1.0.1" + easy-extender: "npm:^2.3.4" + eazy-logger: "npm:^4.0.1" + etag: "npm:^1.8.1" + fresh: "npm:^0.5.2" + fs-extra: "npm:3.0.1" + http-proxy: "npm:^1.18.1" + immutable: "npm:^3" + localtunnel: "npm:^2.0.1" + micromatch: "npm:^4.0.2" + opn: "npm:5.3.0" + portscanner: "npm:2.2.0" + raw-body: "npm:^2.3.2" + resp-modifier: "npm:6.0.2" + rx: "npm:4.1.0" + send: "npm:0.16.2" + serve-index: "npm:1.9.1" + serve-static: "npm:1.13.2" + server-destroy: "npm:1.0.1" + socket.io: "npm:^4.4.1" + ua-parser-js: "npm:^1.0.33" + yargs: "npm:^17.3.1" + bin: + browser-sync: dist/bin.js + checksum: d89acca8552f3f77796488d7a8b9ee0126140a50ffec952fa5e9adfa12fe4c27ab64ee1426ee255e12381df0f94f3f3c4a29db081d631168826ce9937e568563 + languageName: node + linkType: hard + "browserify-aes@npm:^1.0.0, browserify-aes@npm:^1.0.4": version: 1.2.0 resolution: "browserify-aes@npm:1.2.0" @@ -11129,6 +11143,20 @@ __metadata: languageName: node linkType: hard +"browserslist@npm:^4.21.10": + version: 4.22.2 + resolution: "browserslist@npm:4.22.2" + dependencies: + caniuse-lite: "npm:^1.0.30001565" + electron-to-chromium: "npm:^1.4.601" + node-releases: "npm:^2.0.14" + update-browserslist-db: "npm:^1.0.13" + bin: + browserslist: cli.js + checksum: 2a331aab90503130043ca41dd5d281fa1e89d5e076d07a2d75e76bf4d693bd56e73d5abcd8c4f39119da6328d450578c216cf1cd5c99b82d8a90a2ae6271b465 + languageName: node + linkType: hard + "bs-logger@npm:0.x, bs-logger@npm:^0.2.6": version: 0.2.6 resolution: "bs-logger@npm:0.2.6" @@ -11138,6 +11166,13 @@ __metadata: languageName: node linkType: hard +"bs-recipes@npm:1.3.4": + version: 1.3.4 + resolution: "bs-recipes@npm:1.3.4" + checksum: 40946a0802dbeef3386b0a96003b7adbf2f20877c4de5fe3ba37c87a273238b6eec2a18b7f57d86fc46101e1b717815f6428d73d0263cc9de574cd30f25e6ceb + languageName: node + linkType: hard + "bser@npm:2.1.1": version: 2.1.1 resolution: "bser@npm:2.1.1" @@ -11282,26 +11317,6 @@ __metadata: languageName: node linkType: hard -"cacache@npm:^17.0.0": - version: 17.1.4 - resolution: "cacache@npm:17.1.4" - dependencies: - "@npmcli/fs": "npm:^3.1.0" - fs-minipass: "npm:^3.0.0" - glob: "npm:^10.2.2" - lru-cache: "npm:^7.7.1" - minipass: "npm:^7.0.3" - minipass-collect: "npm:^1.0.2" - minipass-flush: "npm:^1.0.5" - minipass-pipeline: "npm:^1.2.4" - p-map: "npm:^4.0.0" - ssri: "npm:^10.0.0" - tar: "npm:^6.1.11" - unique-filename: "npm:^3.0.0" - checksum: 21749dcf98c61dd570b179e51573b076c92e3f6c82166d37444242db66b92b1e6c6dc11c6059c027ac7bdef5479b513855059299cc11cda8212c49b0f69a3662 - languageName: node - linkType: hard - "cacache@npm:^18.0.0": version: 18.0.1 resolution: "cacache@npm:18.0.1" @@ -11423,13 +11438,20 @@ __metadata: languageName: node linkType: hard -"caniuse-lite@npm:^1.0.30001406, caniuse-lite@npm:^1.0.30001464, caniuse-lite@npm:^1.0.30001541": +"caniuse-lite@npm:^1.0.30001406, caniuse-lite@npm:^1.0.30001541": version: 1.0.30001565 resolution: "caniuse-lite@npm:1.0.30001565" checksum: b400e0364651a700e39d59449ca6c65b26e2caceecc4b93ae54a01ed1f62d2a7e1333b1dc640d95fbe620ffa5be38fe4dbacd880cd7a1f42fc72bb8de9a2d0c9 languageName: node linkType: hard +"caniuse-lite@npm:^1.0.30001538, caniuse-lite@npm:^1.0.30001565": + version: 1.0.30001566 + resolution: "caniuse-lite@npm:1.0.30001566" + checksum: cd163075b1a9feaf9c9f657c3551279fcdac471471d67ee57ab2286c7b5480168e6336e359741b469fa40e94716f0f95ec185d87bd57d58894d66d8c21d7db04 + languageName: node + linkType: hard + "case-sensitive-paths-webpack-plugin@npm:^2.4.0": version: 2.4.0 resolution: "case-sensitive-paths-webpack-plugin@npm:2.4.0" @@ -11459,7 +11481,17 @@ __metadata: languageName: node linkType: hard -"chalk@npm:5.3.0, chalk@npm:^5.2.0": +"chalk@npm:4.1.2, chalk@npm:^4.0.0, chalk@npm:^4.0.2, chalk@npm:^4.1.0, chalk@npm:^4.1.2": + version: 4.1.2 + resolution: "chalk@npm:4.1.2" + dependencies: + ansi-styles: "npm:^4.1.0" + supports-color: "npm:^7.1.0" + checksum: 4a3fef5cc34975c898ffe77141450f679721df9dde00f6c304353fa9c8b571929123b26a0e4617bde5018977eb655b31970c297b91b63ee83bb82aeb04666880 + languageName: node + linkType: hard + +"chalk@npm:5.3.0, chalk@npm:^5.2.0, chalk@npm:^5.3.0": version: 5.3.0 resolution: "chalk@npm:5.3.0" checksum: 8297d436b2c0f95801103ff2ef67268d362021b8210daf8ddbe349695333eb3610a71122172ff3b0272f1ef2cf7cc2c41fdaa4715f52e49ffe04c56340feed09 @@ -11487,16 +11519,6 @@ __metadata: languageName: node linkType: hard -"chalk@npm:^4.0.0, chalk@npm:^4.0.2, chalk@npm:^4.1.0, chalk@npm:^4.1.1, chalk@npm:^4.1.2": - version: 4.1.2 - resolution: "chalk@npm:4.1.2" - dependencies: - ansi-styles: "npm:^4.1.0" - supports-color: "npm:^7.1.0" - checksum: 4a3fef5cc34975c898ffe77141450f679721df9dde00f6c304353fa9c8b571929123b26a0e4617bde5018977eb655b31970c297b91b63ee83bb82aeb04666880 - languageName: node - linkType: hard - "char-regex@npm:^1.0.2": version: 1.0.2 resolution: "char-regex@npm:1.0.2" @@ -11698,11 +11720,11 @@ __metadata: linkType: hard "clean-css@npm:^5.2.2": - version: 5.3.2 - resolution: "clean-css@npm:5.3.2" + version: 5.3.3 + resolution: "clean-css@npm:5.3.3" dependencies: source-map: "npm:~0.6.0" - checksum: 315e0e81306524bd2c1905fa6823bf7658be40799b78f446e5e6922808718d2b80266fb3e96842a06176fa683bc2c1a0d2827b08d154e2f9cf136d7bda909d33 + checksum: 381de7523e23f3762eb180e327dcc0cedafaf8cb1cd8c26b7cc1fc56e0829a92e734729c4f955394d65ed72fb62f82d8baf78af34b33b8a7d41ebad2accdd6fb languageName: node linkType: hard @@ -11782,10 +11804,10 @@ __metadata: languageName: node linkType: hard -"cli-width@npm:^3.0.0": - version: 3.0.0 - resolution: "cli-width@npm:3.0.0" - checksum: 125a62810e59a2564268c80fdff56c23159a7690c003e34aeb2e68497dccff26911998ff49c33916fcfdf71e824322cc3953e3f7b48b27267c7a062c81348a9a +"cli-width@npm:^4.1.0": + version: 4.1.0 + resolution: "cli-width@npm:4.1.0" + checksum: 1fbd56413578f6117abcaf858903ba1f4ad78370a4032f916745fa2c7e390183a9d9029cf837df320b0fdce8137668e522f60a30a5f3d6529ff3872d265a955f languageName: node linkType: hard @@ -12037,7 +12059,7 @@ __metadata: languageName: node linkType: hard -"commander@npm:^2.18.0, commander@npm:^2.19.0, commander@npm:^2.20.0": +"commander@npm:^2.18.0, commander@npm:^2.19.0, commander@npm:^2.2.0, commander@npm:^2.20.0": version: 2.20.3 resolution: "commander@npm:2.20.3" checksum: 74c781a5248c2402a0a3e966a0a2bba3c054aad144f5c023364be83265e796b20565aa9feff624132ff629aa64e16999fa40a743c10c12f7c61e96a794b99288 @@ -12176,6 +12198,13 @@ __metadata: languageName: node linkType: hard +"connect-history-api-fallback@npm:^1": + version: 1.6.0 + resolution: "connect-history-api-fallback@npm:1.6.0" + checksum: 6d59c68070fcb2f6d981992f88d050d7544e8e1af6600c23ad680d955e316216794a742a1669d1f14ed5171fc628b916f8a4e15c5a1e55bffc8ccc60bfeb0b2c + languageName: node + linkType: hard + "connect-history-api-fallback@npm:^2.0.0": version: 2.0.0 resolution: "connect-history-api-fallback@npm:2.0.0" @@ -12183,6 +12212,18 @@ __metadata: languageName: node linkType: hard +"connect@npm:3.6.6": + version: 3.6.6 + resolution: "connect@npm:3.6.6" + dependencies: + debug: "npm:2.6.9" + finalhandler: "npm:1.1.0" + parseurl: "npm:~1.3.2" + utils-merge: "npm:1.0.1" + checksum: 62bc03bfa8f0ed122b7cbc86b3145ecf581ca1b79ccd4d0755e10645b5dc9ba2dee39cc13b8372b5fcf532e6f7ef7a17eb920e934f9934c4ffd40adc0616c423 + languageName: node + linkType: hard + "console-browserify@npm:^1.2.0": version: 1.2.0 resolution: "console-browserify@npm:1.2.0" @@ -12276,6 +12317,13 @@ __metadata: languageName: node linkType: hard +"cookie@npm:~0.4.1": + version: 0.4.2 + resolution: "cookie@npm:0.4.2" + checksum: beab41fbd7c20175e3a2799ba948c1dcc71ef69f23fe14eeeff59fc09f50c517b0f77098db87dbb4c55da802f9d86ee86cdc1cd3efd87760341551838d53fca2 + languageName: node + linkType: hard + "copy-anything@npm:^2.0.1": version: 2.0.6 resolution: "copy-anything@npm:2.0.6" @@ -12354,6 +12402,16 @@ __metadata: languageName: node linkType: hard +"cors@npm:~2.8.5": + version: 2.8.5 + resolution: "cors@npm:2.8.5" + dependencies: + object-assign: "npm:^4" + vary: "npm:^1" + checksum: 373702b7999409922da80de4a61938aabba6929aea5b6fd9096fefb9e8342f626c0ebd7507b0e8b0b311380744cc985f27edebc0a26e0ddb784b54e1085de761 + languageName: node + linkType: hard + "corser@npm:^2.0.1": version: 2.0.1 resolution: "corser@npm:2.0.1" @@ -12624,13 +12682,6 @@ __metadata: languageName: node linkType: hard -"cssom@npm:^0.4.4": - version: 0.4.4 - resolution: "cssom@npm:0.4.4" - checksum: 0d4fc70255ea3afbd4add79caffa3b01720929da91105340600d8c0f06c31716f933c6314c3d43b62b57c9637bc2eb35296a9e2db427e8b572ee38a4be2b5f82 - languageName: node - linkType: hard - "cssom@npm:^0.5.0": version: 0.5.0 resolution: "cssom@npm:0.5.0" @@ -12738,17 +12789,6 @@ __metadata: languageName: node linkType: hard -"data-urls@npm:^2.0.0": - version: 2.0.0 - resolution: "data-urls@npm:2.0.0" - dependencies: - abab: "npm:^2.0.3" - whatwg-mimetype: "npm:^2.3.0" - whatwg-url: "npm:^8.0.0" - checksum: 1246442178eb756afb1d99e54669a119eafb3e69c73300d14089687c50c64f9feadd93c973f496224a12f89daa94267a6114aecd70e9b279c09d908c5be44d01 - languageName: node - linkType: hard - "data-urls@npm:^3.0.2": version: 3.0.2 resolution: "data-urls@npm:3.0.2" @@ -12785,7 +12825,7 @@ __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.2, debug@npm:^4.3.3, debug@npm:^4.3.4": +"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.2, debug@npm:^4.3.3, debug@npm:^4.3.4, debug@npm:~4.3.1, debug@npm:~4.3.2": version: 4.3.4 resolution: "debug@npm:4.3.4" dependencies: @@ -12797,6 +12837,18 @@ __metadata: languageName: node linkType: hard +"debug@npm:4.3.2": + version: 4.3.2 + resolution: "debug@npm:4.3.2" + dependencies: + ms: "npm:2.1.2" + peerDependenciesMeta: + supports-color: + optional: true + checksum: 3cc408070bcee066ee9b2a4f3a9c40f53728919ec7c7ff568f7c3a75b0723cb5a8407191a63495be4e10669e99b0ff7f26ec70e10b025da1898cdce4876d96ca + languageName: node + linkType: hard + "debug@npm:^3.2.6, debug@npm:^3.2.7": version: 3.2.7 resolution: "debug@npm:3.2.7" @@ -12813,7 +12865,7 @@ __metadata: languageName: node linkType: hard -"decimal.js@npm:^10.2.1, decimal.js@npm:^10.4.2": +"decimal.js@npm:^10.4.2": version: 10.4.3 resolution: "decimal.js@npm:10.4.3" checksum: 6d60206689ff0911f0ce968d40f163304a6c1bc739927758e6efc7921cfa630130388966f16bf6ef6b838cb33679fbe8e7a78a2f3c478afce841fd55ac8fb8ee @@ -13001,7 +13053,7 @@ __metadata: languageName: node linkType: hard -"define-properties@npm:^1.1.3, define-properties@npm:^1.1.4, define-properties@npm:^1.2.0, define-properties@npm:^1.2.1": +"define-properties@npm:^1.1.3, define-properties@npm:^1.2.0, define-properties@npm:^1.2.1": version: 1.2.1 resolution: "define-properties@npm:1.2.1" dependencies: @@ -13129,6 +13181,13 @@ __metadata: languageName: node linkType: hard +"destroy@npm:~1.0.4": + version: 1.0.4 + resolution: "destroy@npm:1.0.4" + checksum: eab493808ba17a1fa22c71ef1a4e68d2c4c5222a38040606c966d2ab09117f3a7f3e05c39bffbe41a697f9de552039e43c30e46f0c3eab3faa9f82e800e172a0 + languageName: node + linkType: hard + "detect-indent@npm:^6.0.0, detect-indent@npm:^6.1.0": version: 6.1.0 resolution: "detect-indent@npm:6.1.0" @@ -13179,6 +13238,15 @@ __metadata: languageName: node linkType: hard +"dev-ip@npm:^1.0.1": + version: 1.0.1 + resolution: "dev-ip@npm:1.0.1" + bin: + dev-ip: lib/dev-ip.js + checksum: c5f1f890a97e4aead98081d3d8e95d71f456423b5c047a286a07a5793ef58022e028a2bded40b671853fc53d95c5bffd64c18e31932ef670db60ada764ce0d82 + languageName: node + linkType: hard + "diff-sequences@npm:^28.1.1": version: 28.1.1 resolution: "diff-sequences@npm:28.1.1" @@ -13365,15 +13433,6 @@ __metadata: languageName: node linkType: hard -"domexception@npm:^2.0.1": - version: 2.0.1 - resolution: "domexception@npm:2.0.1" - dependencies: - webidl-conversions: "npm:^5.0.0" - checksum: 24a3a07b85420671bc805ead7305e0f2ec9e55f104889b64c5a9fa7d93681e514f05c65f947bd9401b3da67f77b92fe7861bd15f4d0d418c4d32e34a2cd55d38 - languageName: node - linkType: hard - "domexception@npm:^4.0.0": version: 4.0.0 resolution: "domexception@npm:4.0.0" @@ -13539,6 +13598,24 @@ __metadata: languageName: node linkType: hard +"easy-extender@npm:^2.3.4": + version: 2.3.4 + resolution: "easy-extender@npm:2.3.4" + dependencies: + lodash: "npm:^4.17.10" + checksum: 0919927df255f5ad01dde06ce1b6da0665fda5b55dcc9bff8962fa96f443ce8a288bc2288e43cbf940804f250183f9e2f4ee841f2de4392a1c234d692291d705 + languageName: node + linkType: hard + +"eazy-logger@npm:^4.0.1": + version: 4.0.1 + resolution: "eazy-logger@npm:4.0.1" + dependencies: + chalk: "npm:4.1.2" + checksum: e562265e7c49bd5a4535c66a61749b22e55b4978c48223f0f5b84ed1c5b59397510d655e24b764c0f4b0209f45c7e70a02cb00eaa748d5f44f6d58a4caaac971 + languageName: node + linkType: hard + "ecdsa-sig-formatter@npm:1.0.11, ecdsa-sig-formatter@npm:^1.0.11": version: 1.0.11 resolution: "ecdsa-sig-formatter@npm:1.0.11" @@ -13574,9 +13651,16 @@ __metadata: linkType: hard "electron-to-chromium@npm:^1.4.535": - version: 1.4.596 - resolution: "electron-to-chromium@npm:1.4.596" - checksum: 6e05fdbe0a77beda4eaad646c83143ccf4dcec5b15da7dc641bbd872ef62acff4cb31e1febf4bafdbe8e1f61720c2ff738690acce0b8dac980a331802633befd + version: 1.4.600 + resolution: "electron-to-chromium@npm:1.4.600" + checksum: 7f4a52ed08317ccf1ecb3eb78d29dd6cf13c54b3613bd511638d2469a05cff995f332688fb26b4c63b61fd2b1e6e12765fec46cb10fd4d969d27b6f739a2d1d0 + languageName: node + linkType: hard + +"electron-to-chromium@npm:^1.4.601": + version: 1.4.601 + resolution: "electron-to-chromium@npm:1.4.601" + checksum: 345226e9edff5b72bd431b5bec1eaabc3c85e430fa0171586b539c64e5bde7c161cad6387e657ab8e0f197a894c1679f19c60f687baad12118a06e1db543cf95 languageName: node linkType: hard @@ -13786,7 +13870,7 @@ __metadata: languageName: node linkType: hard -"encodeurl@npm:~1.0.2": +"encodeurl@npm:~1.0.1, encodeurl@npm:~1.0.2": version: 1.0.2 resolution: "encodeurl@npm:1.0.2" checksum: f6c2387379a9e7c1156c1c3d4f9cb7bb11cf16dd4c1682e1f6746512564b053df5781029b6061296832b59fb22f459dbe250386d217c2f6e203601abb2ee0bec @@ -13822,6 +13906,44 @@ __metadata: languageName: node linkType: hard +"engine.io-client@npm:~6.5.2": + version: 6.5.3 + resolution: "engine.io-client@npm:6.5.3" + dependencies: + "@socket.io/component-emitter": "npm:~3.1.0" + debug: "npm:~4.3.1" + engine.io-parser: "npm:~5.2.1" + ws: "npm:~8.11.0" + xmlhttprequest-ssl: "npm:~2.0.0" + checksum: 15d2136655972984012fe5c92446ff9939c08d872262bbb23cd54be1b66a00d489da93321cd01a8ad72eaf4022cfd73bdc8bccf32fa51c097a96c0b4c679cd7b + languageName: node + linkType: hard + +"engine.io-parser@npm:~5.2.1": + version: 5.2.1 + resolution: "engine.io-parser@npm:5.2.1" + checksum: 9cf3beaaa7e4062c53f23ab85baadf54295c15938e38f439a4c452552e8d0617d2fc1dbe17f2bee41ddea82bf3decd1f2203bfdb0a425d67bdbdeaa2a9b0bc33 + languageName: node + linkType: hard + +"engine.io@npm:~6.5.2": + version: 6.5.4 + resolution: "engine.io@npm:6.5.4" + dependencies: + "@types/cookie": "npm:^0.4.1" + "@types/cors": "npm:^2.8.12" + "@types/node": "npm:>=10.0.0" + accepts: "npm:~1.3.4" + base64id: "npm:2.0.0" + cookie: "npm:~0.4.1" + cors: "npm:~2.8.5" + debug: "npm:~4.3.1" + engine.io-parser: "npm:~5.2.1" + ws: "npm:~8.11.0" + checksum: 1e90c46d682badf0c0a13c671a78ce3f6590f7e6b74b081804eb6e5103be11806015e3cde7eb7c1657c4866edcf069ea40ef1c66386a6befe30f0f1f30d3b2f2 + languageName: node + linkType: hard + "enhanced-resolve@npm:^5.0.0, enhanced-resolve@npm:^5.12.0, enhanced-resolve@npm:^5.15.0, enhanced-resolve@npm:^5.7.0": version: 5.15.0 resolution: "enhanced-resolve@npm:5.15.0" @@ -14105,12 +14227,12 @@ __metadata: languageName: node linkType: hard -"esbuild-wasm@npm:0.18.17": - version: 0.18.17 - resolution: "esbuild-wasm@npm:0.18.17" +"esbuild-wasm@npm:0.19.5": + version: 0.19.5 + resolution: "esbuild-wasm@npm:0.19.5" bin: esbuild: bin/esbuild - checksum: b92b97c43125c065847a2e910bfff72018226ddaa0ba00512c66d2dbf10b787d62848ff17c29f5540356068ae860cce1b2fb6a49974e54aa737e339cdd1d8d76 + checksum: 130843e2c7ba421d907f40f4892eb710481b96664f21801134895e595600d992d88246c0f7e62f313eb6c2063d003fe2a8ea44e9a373fb43bbdd94fb016d3d41 languageName: node linkType: hard @@ -14627,6 +14749,13 @@ __metadata: languageName: node linkType: hard +"esm-env@npm:^1.0.0": + version: 1.0.0 + resolution: "esm-env@npm:1.0.0" + checksum: 6ea0001410224ebc18de4a83ce97dbdca6abc83ea4bbe91625aa3aead70793bb98dfa089f38e2cc5c13b7b025668d0649d5e25f2f9e8cca0f4aa3ad3406870d0 + languageName: node + linkType: hard + "espree@npm:9.2.0": version: 9.2.0 resolution: "espree@npm:9.2.0" @@ -14668,6 +14797,16 @@ __metadata: languageName: node linkType: hard +"esrap@npm:^1.2.1": + version: 1.2.1 + resolution: "esrap@npm:1.2.1" + dependencies: + "@jridgewell/sourcemap-codec": "npm:^1.4.15" + "@types/estree": "npm:^1.0.1" + checksum: 28d6e36adcf4342a844a938a736132269c33e9db6bbefc98c6af5ed06c14899afcc85391e7ce4824ce5066877fa10b0ed5c5007592cbc58012be95f13c66467f + languageName: node + linkType: hard + "esrecurse@npm:^4.3.0": version: 4.3.0 resolution: "esrecurse@npm:4.3.0" @@ -14742,7 +14881,7 @@ __metadata: languageName: node linkType: hard -"etag@npm:~1.8.1": +"etag@npm:1.8.1, etag@npm:^1.8.1, etag@npm:~1.8.1": version: 1.8.1 resolution: "etag@npm:1.8.1" checksum: 12be11ef62fb9817314d790089a0a49fae4e1b50594135dcb8076312b7d7e470884b5100d249b28c18581b7fd52f8b485689ffae22a11ed9ec17377a33a08f84 @@ -14923,7 +15062,7 @@ __metadata: languageName: node linkType: hard -"expect@npm:^29.7.0": +"expect@npm:^29.0.0, expect@npm:^29.7.0": version: 29.7.0 resolution: "expect@npm:29.7.0" dependencies: @@ -15008,7 +15147,7 @@ __metadata: languageName: node linkType: hard -"external-editor@npm:^3.0.3": +"external-editor@npm:^3.1.0": version: 3.1.0 resolution: "external-editor@npm:3.1.0" dependencies: @@ -15210,6 +15349,16 @@ __metadata: languageName: node linkType: hard +"figures@npm:^5.0.0": + version: 5.0.0 + resolution: "figures@npm:5.0.0" + dependencies: + escape-string-regexp: "npm:^5.0.0" + is-unicode-supported: "npm:^1.2.0" + checksum: ce0f17d4ea8b0fc429c5207c343534a2f5284ecfb22aa08607da7dc84ed9e1cf754f5b97760e8dcb98d3c9d1a1e4d3d578fe3b5b99c426f05d0f06c7ba618e16 + languageName: node + linkType: hard + "file-entry-cache@npm:^6.0.1": version: 6.0.1 resolution: "file-entry-cache@npm:6.0.1" @@ -15280,6 +15429,21 @@ __metadata: languageName: node linkType: hard +"finalhandler@npm:1.1.0": + version: 1.1.0 + resolution: "finalhandler@npm:1.1.0" + dependencies: + debug: "npm:2.6.9" + encodeurl: "npm:~1.0.1" + escape-html: "npm:~1.0.3" + on-finished: "npm:~2.3.0" + parseurl: "npm:~1.3.2" + statuses: "npm:~1.3.1" + unpipe: "npm:~1.0.0" + checksum: ed28bf6b7cf423dec9ab3a0016bbc2d21898e315b663f5a989a4b078537858bf3f0a2edb241bce54f66f3b5f233456c9f1dd03318ca745cd70405517aa6954cd + languageName: node + linkType: hard + "finalhandler@npm:1.2.0": version: 1.2.0 resolution: "finalhandler@npm:1.2.0" @@ -15459,9 +15623,9 @@ __metadata: linkType: hard "flow-parser@npm:0.*": - version: 0.222.0 - resolution: "flow-parser@npm:0.222.0" - checksum: 5576d961ba4f331168c97291a58f6afbf335dd134f0d8e34758a6f2f8276afcf504f010466b81a3420fe8c6291d9d768cd42c6bed511f2dae18d485b30dbae7e + version: 0.223.0 + resolution: "flow-parser@npm:0.223.0" + checksum: eaf6794e2343230e841752e461c58194aa7aafddce52cc7980627fd138ba7fdb3628c83fe22905c5796101fde4833d13426e128ba93d1222420d613f8f7b2c45 languageName: node linkType: hard @@ -15481,7 +15645,7 @@ __metadata: languageName: node linkType: hard -"follow-redirects@npm:^1.0.0, follow-redirects@npm:^1.15.0": +"follow-redirects@npm:^1.0.0, follow-redirects@npm:^1.14.0, follow-redirects@npm:^1.15.0": version: 1.15.3 resolution: "follow-redirects@npm:1.15.3" peerDependenciesMeta: @@ -15550,17 +15714,6 @@ __metadata: languageName: node linkType: hard -"form-data@npm:^3.0.0": - version: 3.0.1 - resolution: "form-data@npm:3.0.1" - dependencies: - asynckit: "npm:^0.4.0" - combined-stream: "npm:^1.0.8" - mime-types: "npm:^2.1.12" - checksum: 1ccc3ae064a080a799923f754d49fcebdd90515a8924f0f54de557540b50e7f1fe48ba5f2bd0435a5664aa2d49729107e6aaf2155a9abf52339474c5638b4485 - languageName: node - linkType: hard - "form-data@npm:^4.0.0": version: 4.0.0 resolution: "form-data@npm:4.0.0" @@ -15613,7 +15766,7 @@ __metadata: languageName: node linkType: hard -"fraction.js@npm:^4.2.0": +"fraction.js@npm:^4.3.6": version: 4.3.7 resolution: "fraction.js@npm:4.3.7" checksum: df291391beea9ab4c263487ffd9d17fed162dbb736982dee1379b2a8cc94e4e24e46ed508c6d278aded9080ba51872f1bc5f3a5fd8d7c74e5f105b508ac28711 @@ -15629,7 +15782,7 @@ __metadata: languageName: node linkType: hard -"fresh@npm:0.5.2": +"fresh@npm:0.5.2, fresh@npm:^0.5.2": version: 0.5.2 resolution: "fresh@npm:0.5.2" checksum: c6d27f3ed86cc5b601404822f31c900dd165ba63fff8152a3ef714e2012e7535027063bc67ded4cb5b3a49fa596495d46cacd9f47d6328459cf570f08b7d9e5a @@ -15661,9 +15814,20 @@ __metadata: languageName: node linkType: hard -"fs-extra@npm:^10.0.0, fs-extra@npm:^10.1.0": - version: 10.1.0 - resolution: "fs-extra@npm:10.1.0" +"fs-extra@npm:3.0.1": + version: 3.0.1 + resolution: "fs-extra@npm:3.0.1" + dependencies: + graceful-fs: "npm:^4.1.2" + jsonfile: "npm:^3.0.0" + universalify: "npm:^0.1.0" + checksum: ac3a17c9355f80aa250e102dbc4939c50ec83fca49a144bdd432f43deb0a3c07f74ec313feb2b938d6b0c1de9bfb02c2358bc602efeed5174fca692b7d4694f1 + languageName: node + linkType: hard + +"fs-extra@npm:^10.0.0, fs-extra@npm:^10.1.0": + version: 10.1.0 + resolution: "fs-extra@npm:10.1.0" dependencies: graceful-fs: "npm:^4.2.0" jsonfile: "npm:^6.0.1" @@ -16399,17 +16563,6 @@ __metadata: languageName: node linkType: hard -"guess-parser@npm:0.4.22": - version: 0.4.22 - resolution: "guess-parser@npm:0.4.22" - dependencies: - "@wessberg/ts-evaluator": "npm:0.0.27" - peerDependencies: - typescript: ">=3.7.5" - checksum: 6ce6de87cf88f46b6f6fa52233f6b4b996080727e166231f1dc127e0705f78407fc95749ff0e38ad2f02c5e28e97eabee76b292ab6957ddb66e05cbf9f2273cf - languageName: node - linkType: hard - "gunzip-maybe@npm:^1.4.2": version: 1.4.2 resolution: "gunzip-maybe@npm:1.4.2" @@ -16733,12 +16886,12 @@ __metadata: languageName: node linkType: hard -"hosted-git-info@npm:^6.0.0": - version: 6.1.1 - resolution: "hosted-git-info@npm:6.1.1" +"hosted-git-info@npm:^7.0.0": + version: 7.0.1 + resolution: "hosted-git-info@npm:7.0.1" dependencies: - lru-cache: "npm:^7.5.1" - checksum: ba7158f81ae29c1b5a1e452fa517082f928051da8797a00788a84ff82b434996d34f78a875bbb688aec162bda1d4cf71d2312f44da3c896058803f5efa6ce77f + lru-cache: "npm:^10.0.1" + checksum: 361c4254f717f06d581a5a90aa0156a945e662e05ebbb533c1fa9935f10886d8247db48cbbcf9667f02e519e6479bf16dcdcf3124c3030e76c4c3ca2c88ee9d3 languageName: node linkType: hard @@ -16754,15 +16907,6 @@ __metadata: languageName: node linkType: hard -"html-encoding-sniffer@npm:^2.0.1": - version: 2.0.1 - resolution: "html-encoding-sniffer@npm:2.0.1" - dependencies: - whatwg-encoding: "npm:^1.0.5" - checksum: 6dc3aa2d35a8f0c8c7906ffb665dd24a88f7004f913fafdd3541d24a4da6182ab30c4a0a81387649a1234ecb90182c4136220ed12ae3dc1a57ed68e533dea416 - languageName: node - linkType: hard - "html-encoding-sniffer@npm:^3.0.0": version: 3.0.0 resolution: "html-encoding-sniffer@npm:3.0.0" @@ -16945,17 +17089,6 @@ __metadata: languageName: node linkType: hard -"http-proxy-agent@npm:^4.0.1": - version: 4.0.1 - resolution: "http-proxy-agent@npm:4.0.1" - dependencies: - "@tootallnate/once": "npm:1" - agent-base: "npm:6" - debug: "npm:4" - checksum: 4fa4774d65b5331814b74ac05cefea56854fc0d5989c80b13432c1b0d42a14c9f4342ca3ad9f0359a52e78da12b1744c9f8a28e50042136ea9171675d972a5fd - languageName: node - linkType: hard - "http-proxy-agent@npm:^5.0.0": version: 5.0.0 resolution: "http-proxy-agent@npm:5.0.0" @@ -16977,7 +17110,7 @@ __metadata: languageName: node linkType: hard -"http-proxy-middleware@npm:^2.0.3": +"http-proxy-middleware@npm:2.0.6, http-proxy-middleware@npm:^2.0.3": version: 2.0.6 resolution: "http-proxy-middleware@npm:2.0.6" dependencies: @@ -17046,23 +17179,23 @@ __metadata: languageName: node linkType: hard -"https-proxy-agent@npm:5.0.1, https-proxy-agent@npm:^5.0.0, https-proxy-agent@npm:^5.0.1": - version: 5.0.1 - resolution: "https-proxy-agent@npm:5.0.1" +"https-proxy-agent@npm:7.0.2, https-proxy-agent@npm:^7.0.1, https-proxy-agent@npm:^7.0.2": + version: 7.0.2 + resolution: "https-proxy-agent@npm:7.0.2" dependencies: - agent-base: "npm:6" + agent-base: "npm:^7.0.2" debug: "npm:4" - checksum: 6dd639f03434003577c62b27cafdb864784ef19b2de430d8ae2a1d45e31c4fd60719e5637b44db1a88a046934307da7089e03d6089ec3ddacc1189d8de8897d1 + checksum: 7735eb90073db087e7e79312e3d97c8c04baf7ea7ca7b013382b6a45abbaa61b281041a98f4e13c8c80d88f843785bcc84ba189165b4b4087b1e3496ba656d77 languageName: node linkType: hard -"https-proxy-agent@npm:^7.0.1, https-proxy-agent@npm:^7.0.2": - version: 7.0.2 - resolution: "https-proxy-agent@npm:7.0.2" +"https-proxy-agent@npm:^5.0.0, https-proxy-agent@npm:^5.0.1": + version: 5.0.1 + resolution: "https-proxy-agent@npm:5.0.1" dependencies: - agent-base: "npm:^7.0.2" + agent-base: "npm:6" debug: "npm:4" - checksum: 7735eb90073db087e7e79312e3d97c8c04baf7ea7ca7b013382b6a45abbaa61b281041a98f4e13c8c80d88f843785bcc84ba189165b4b4087b1e3496ba656d77 + checksum: 6dd639f03434003577c62b27cafdb864784ef19b2de430d8ae2a1d45e31c4fd60719e5637b44db1a88a046934307da7089e03d6089ec3ddacc1189d8de8897d1 languageName: node linkType: hard @@ -17175,11 +17308,11 @@ __metadata: linkType: hard "ignore-walk@npm:^6.0.0": - version: 6.0.3 - resolution: "ignore-walk@npm:6.0.3" + version: 6.0.4 + resolution: "ignore-walk@npm:6.0.4" dependencies: minimatch: "npm:^9.0.0" - checksum: 327759df98c7b4d4039e4c4913507ca372b2a38bb44a1c2bd7ff2ffc7eee7a379025301e478d7640672f0007807c5ec5cc2e41c5226b9058aa58f00b600d3731 + checksum: 6dd2ea369f3d32d90cb26ca6647bc6e112ed483433270ed89b8055dd708d00777c2cbc85b93b43f53e2100851277fd1539796a758ae4c64b84445d4f1da5fd8f languageName: node linkType: hard @@ -17217,6 +17350,13 @@ __metadata: languageName: node linkType: hard +"immutable@npm:^3": + version: 3.8.2 + resolution: "immutable@npm:3.8.2" + checksum: fb6a2999ad3bda9e51741721e42547076dd492635ee4df9241224055fe953ec843583a700088cc4915f23dc326e5084f4e17f1bbd7388c3e872ef5a242e0ac5e + languageName: node + linkType: hard + "immutable@npm:^4.0.0": version: 4.3.4 resolution: "immutable@npm:4.3.4" @@ -17312,26 +17452,26 @@ __metadata: languageName: node linkType: hard -"inquirer@npm:8.2.4": - version: 8.2.4 - resolution: "inquirer@npm:8.2.4" +"inquirer@npm:9.2.11": + version: 9.2.11 + resolution: "inquirer@npm:9.2.11" dependencies: - ansi-escapes: "npm:^4.2.1" - chalk: "npm:^4.1.1" + "@ljharb/through": "npm:^2.3.9" + ansi-escapes: "npm:^4.3.2" + chalk: "npm:^5.3.0" cli-cursor: "npm:^3.1.0" - cli-width: "npm:^3.0.0" - external-editor: "npm:^3.0.3" - figures: "npm:^3.0.0" + cli-width: "npm:^4.1.0" + external-editor: "npm:^3.1.0" + figures: "npm:^5.0.0" lodash: "npm:^4.17.21" - mute-stream: "npm:0.0.8" + mute-stream: "npm:1.0.0" ora: "npm:^5.4.1" - run-async: "npm:^2.4.0" - rxjs: "npm:^7.5.5" - string-width: "npm:^4.1.0" - strip-ansi: "npm:^6.0.0" - through: "npm:^2.3.6" - wrap-ansi: "npm:^7.0.0" - checksum: e8c6185548a2da6a04b6d2096d9173451ae8aa01432bfd8a5ffcd29fb871ed7764419a4fd693fbfb99621891b54c131f5473f21660d4808d25c6818618f2de73 + run-async: "npm:^3.0.0" + rxjs: "npm:^7.8.1" + string-width: "npm:^4.2.3" + strip-ansi: "npm:^6.0.1" + wrap-ansi: "npm:^6.2.0" + checksum: 4bc2db9a3c04432ba6f10b236b1975c5e112d42c2364ffa62e1b5bca5d3d358e7bee0c4d2b5b50294d05a8b452b66cf274b25b5d3c4a71df6c90c372102dee8a languageName: node linkType: hard @@ -17750,6 +17890,15 @@ __metadata: languageName: node linkType: hard +"is-number-like@npm:^1.0.3": + version: 1.0.8 + resolution: "is-number-like@npm:1.0.8" + dependencies: + lodash.isfinite: "npm:^3.3.2" + checksum: 082f407c5f463b3618b5941f7f54541f6cb58bd6af1a80e42daaba7f81ed49785bb11f7ef3010051f6916cc3f97ed6cb40e7e87d15cea81f95306d34a1926ead + languageName: node + linkType: hard + "is-number-object@npm:^1.0.4": version: 1.0.7 resolution: "is-number-object@npm:1.0.7" @@ -17930,6 +18079,13 @@ __metadata: languageName: node linkType: hard +"is-unicode-supported@npm:^1.2.0": + version: 1.3.0 + resolution: "is-unicode-supported@npm:1.3.0" + checksum: b8674ea95d869f6faabddc6a484767207058b91aea0250803cbf1221345cb0c56f466d4ecea375dc77f6633d248d33c47bd296fb8f4cdba0b4edba8917e83d8a + languageName: node + linkType: hard + "is-weakmap@npm:^2.0.1": version: 2.0.1 resolution: "is-weakmap@npm:2.0.1" @@ -17970,6 +18126,13 @@ __metadata: languageName: node linkType: hard +"is-wsl@npm:^1.1.0": + version: 1.1.0 + resolution: "is-wsl@npm:1.1.0" + checksum: 7ad0012f21092d6f586c7faad84755a8ef0da9b9ec295e4dc82313cce4e1a93a3da3c217265016461f9b141503fe55fa6eb1fd5457d3f05e8d1bdbb48e50c13a + languageName: node + linkType: hard + "is-wsl@npm:^2.2.0": version: 2.2.0 resolution: "is-wsl@npm:2.2.0" @@ -18892,46 +19055,6 @@ __metadata: languageName: node linkType: hard -"jsdom@npm:^16.4.0": - version: 16.7.0 - resolution: "jsdom@npm:16.7.0" - dependencies: - abab: "npm:^2.0.5" - acorn: "npm:^8.2.4" - acorn-globals: "npm:^6.0.0" - cssom: "npm:^0.4.4" - cssstyle: "npm:^2.3.0" - data-urls: "npm:^2.0.0" - decimal.js: "npm:^10.2.1" - domexception: "npm:^2.0.1" - escodegen: "npm:^2.0.0" - form-data: "npm:^3.0.0" - html-encoding-sniffer: "npm:^2.0.1" - http-proxy-agent: "npm:^4.0.1" - https-proxy-agent: "npm:^5.0.0" - is-potential-custom-element-name: "npm:^1.0.1" - nwsapi: "npm:^2.2.0" - parse5: "npm:6.0.1" - saxes: "npm:^5.0.1" - symbol-tree: "npm:^3.2.4" - tough-cookie: "npm:^4.0.0" - w3c-hr-time: "npm:^1.0.2" - w3c-xmlserializer: "npm:^2.0.0" - webidl-conversions: "npm:^6.1.0" - whatwg-encoding: "npm:^1.0.5" - whatwg-mimetype: "npm:^2.3.0" - whatwg-url: "npm:^8.5.0" - ws: "npm:^7.4.6" - xml-name-validator: "npm:^3.0.0" - peerDependencies: - canvas: ^2.5.0 - peerDependenciesMeta: - canvas: - optional: true - checksum: e9ba6ea5f5e0d18647ccedec16bc3c69c8c739732ffcb27c66ffd3cc3f876add291ca4f0b9c209ace939ce2aa3ba9e4d67b7f05317921a4d3eab02fe1cc164ef - languageName: node - linkType: hard - "jsdom@npm:^20.0.0": version: 20.0.3 resolution: "jsdom@npm:20.0.3" @@ -19104,6 +19227,18 @@ __metadata: languageName: node linkType: hard +"jsonfile@npm:^3.0.0": + version: 3.0.1 + resolution: "jsonfile@npm:3.0.1" + dependencies: + graceful-fs: "npm:^4.1.6" + dependenciesMeta: + graceful-fs: + optional: true + checksum: 159ec98712d5a0f77ddb96ddbde0ecc5fb1108fadab5b85cea18f508be78eabf03a3370b3769112fce1d8772b4e396f81d7c0d378ac5d7955bee5f1330cf1b19 + languageName: node + linkType: hard + "jsonfile@npm:^4.0.0": version: 4.0.0 resolution: "jsonfile@npm:4.0.0" @@ -19352,9 +19487,9 @@ __metadata: languageName: node linkType: hard -"less@npm:4.1.3": - version: 4.1.3 - resolution: "less@npm:4.1.3" +"less@npm:4.2.0": + version: 4.2.0 + resolution: "less@npm:4.2.0" dependencies: copy-anything: "npm:^2.0.1" errno: "npm:^0.1.1" @@ -19383,7 +19518,7 @@ __metadata: optional: true bin: lessc: bin/lessc - checksum: d67ca673a2c409a3069bb088c21976fa6a22eaf4428a23f486afa3ca57c2c004f424e7466dfc8d38a4dca25bc7b75943de5e3394d3a7841d8812cec696790e22 + checksum: 8593d547a3e7651555a2c51bac8b148b37ec14e75e6e28ee4ddf27eb49cbcb4b558e50cdefa97d6942a8120fc744ace0d61c43d4c246e098c8828269b14cf5fb languageName: node linkType: hard @@ -19443,6 +19578,13 @@ __metadata: languageName: node linkType: hard +"limiter@npm:^1.0.5": + version: 1.1.5 + resolution: "limiter@npm:1.1.5" + checksum: ebe2b20a820d1f67b8e1724051246434c419b2da041a7e9cd943f6daf113b8d17a52a1bd88fb79be5b624c10283ecb737f50edb5c1c88c71f4cd367108c97300 + languageName: node + linkType: hard + "lines-and-columns@npm:^1.1.6": version: 1.2.4 resolution: "lines-and-columns@npm:1.2.4" @@ -19584,6 +19726,20 @@ __metadata: languageName: node linkType: hard +"localtunnel@npm:^2.0.1": + version: 2.0.2 + resolution: "localtunnel@npm:2.0.2" + dependencies: + axios: "npm:0.21.4" + debug: "npm:4.3.2" + openurl: "npm:1.1.1" + yargs: "npm:17.1.1" + bin: + lt: bin/lt.js + checksum: 5021fc192e1e4bda9cd9179acffbe82cac1fe401dd4d95bb808d3077e9c74dbd99944ed55d56f9e595894e43962752d89229afada753a821835ca452cb214383 + languageName: node + linkType: hard + "locate-character@npm:^3.0.0": version: 3.0.0 resolution: "locate-character@npm:3.0.0" @@ -19680,6 +19836,13 @@ __metadata: languageName: node linkType: hard +"lodash.isfinite@npm:^3.3.2": + version: 3.3.2 + resolution: "lodash.isfinite@npm:3.3.2" + checksum: 997f5f2e96daf3f9f7e27a46cf5b409097d6426e137357f95b1aa357b3abfdf6c61225d451aab40be58941a87df5d5ca85617e85960f6fe50ee09aba41a974de + languageName: node + linkType: hard + "lodash.isinteger@npm:^4.0.4": version: 4.0.4 resolution: "lodash.isinteger@npm:4.0.4" @@ -19764,7 +19927,7 @@ __metadata: languageName: node linkType: hard -"lodash@npm:^4.17.14, lodash@npm:^4.17.15, lodash@npm:^4.17.19, lodash@npm:^4.17.20, lodash@npm:^4.17.21, lodash@npm:^4.7.0": +"lodash@npm:^4.17.10, lodash@npm:^4.17.14, lodash@npm:^4.17.15, lodash@npm:^4.17.19, lodash@npm:^4.17.20, lodash@npm:^4.17.21": version: 4.17.21 resolution: "lodash@npm:4.17.21" checksum: d8cbea072bb08655bb4c989da418994b073a608dffa608b09ac04b43a791b12aeae7cd7ad919aa4c925f33b48490b5cfe6c1f71d827956071dae2e7bb3a6b74c @@ -19889,7 +20052,7 @@ __metadata: languageName: node linkType: hard -"lru-cache@npm:^7.4.4, lru-cache@npm:^7.5.1, lru-cache@npm:^7.7.1": +"lru-cache@npm:^7.7.1": version: 7.18.3 resolution: "lru-cache@npm:7.18.3" checksum: b3a452b491433db885beed95041eb104c157ef7794b9c9b4d647be503be91769d11206bb573849a16b4cc0d03cbd15ffd22df7960997788b74c1d399ac7a4fed @@ -19919,12 +20082,12 @@ __metadata: languageName: node linkType: hard -"magic-string@npm:0.30.1": - version: 0.30.1 - resolution: "magic-string@npm:0.30.1" +"magic-string@npm:0.30.5, magic-string@npm:^0.30.0, magic-string@npm:^0.30.3, magic-string@npm:^0.30.4, magic-string@npm:^0.30.5": + version: 0.30.5 + resolution: "magic-string@npm:0.30.5" dependencies: "@jridgewell/sourcemap-codec": "npm:^1.4.15" - checksum: 30471bbe363196a57795f903025166ba9930f9a98ea4e23d2cfbb379756414aff01309eaa06d3ae23d3cc0497babf5c5d7d98c7aeca726335cddf2d9cd873e1c + checksum: 38ac220ca7539e96da7ea2f38d85796bdf5c69b6bcae728c4bc2565084e6dc326b9174ee9770bea345cf6c9b3a24041b767167874fab5beca874d2356a9d1520 languageName: node linkType: hard @@ -19946,15 +20109,6 @@ __metadata: languageName: node linkType: hard -"magic-string@npm:^0.30.0, magic-string@npm:^0.30.3, magic-string@npm:^0.30.4, magic-string@npm:^0.30.5": - version: 0.30.5 - resolution: "magic-string@npm:0.30.5" - dependencies: - "@jridgewell/sourcemap-codec": "npm:^1.4.15" - checksum: 38ac220ca7539e96da7ea2f38d85796bdf5c69b6bcae728c4bc2565084e6dc326b9174ee9770bea345cf6c9b3a24041b767167874fab5beca874d2356a9d1520 - languageName: node - linkType: hard - "make-dir@npm:^2.0.0, make-dir@npm:^2.1.0": version: 2.1.0 resolution: "make-dir@npm:2.1.0" @@ -20014,29 +20168,6 @@ __metadata: languageName: node linkType: hard -"make-fetch-happen@npm:^11.0.0, make-fetch-happen@npm:^11.0.1, make-fetch-happen@npm:^11.1.1": - version: 11.1.1 - resolution: "make-fetch-happen@npm:11.1.1" - dependencies: - agentkeepalive: "npm:^4.2.1" - cacache: "npm:^17.0.0" - http-cache-semantics: "npm:^4.1.1" - http-proxy-agent: "npm:^5.0.0" - https-proxy-agent: "npm:^5.0.0" - is-lambda: "npm:^1.0.1" - lru-cache: "npm:^7.7.1" - minipass: "npm:^5.0.0" - minipass-fetch: "npm:^3.0.0" - minipass-flush: "npm:^1.0.5" - minipass-pipeline: "npm:^1.2.4" - negotiator: "npm:^0.6.3" - promise-retry: "npm:^2.0.1" - socks-proxy-agent: "npm:^7.0.0" - ssri: "npm:^10.0.0" - checksum: c161bde51dbc03382f9fac091734526a64dd6878205db6c338f70d2133df797b5b5166bff3091cf7d4785869d4b21e99a58139c1790c2fb1b5eec00f528f5f0b - languageName: node - linkType: hard - "make-fetch-happen@npm:^13.0.0": version: 13.0.0 resolution: "make-fetch-happen@npm:13.0.0" @@ -21011,6 +21142,15 @@ __metadata: languageName: node linkType: hard +"mime@npm:1.4.1": + version: 1.4.1 + resolution: "mime@npm:1.4.1" + bin: + mime: cli.js + checksum: ba9db9f7eb3eaae61c072cf06d744db99c091b5c9fa49f68e44ada7c6cccc89568c7a830f9ae0a11f37c88ca3851cb59a138e4703895e01d55dbff274feb74be + languageName: node + linkType: hard + "mime@npm:1.6.0, mime@npm:^1.4.1, mime@npm:^1.6.0": version: 1.6.0 resolution: "mime@npm:1.6.0" @@ -21250,6 +21390,13 @@ __metadata: languageName: node linkType: hard +"mitt@npm:^1.1.3": + version: 1.2.0 + resolution: "mitt@npm:1.2.0" + checksum: 81a0f22b7ac1a0ab5f17489e811641ad589b5e9d2a46a25adac19c8c0ba9c3b50bef7b287582357de25eaa0a47e5d4ced63ea8b8641ba6ca1d1f39d3ec47bb11 + languageName: node + linkType: hard + "mixin-deep@npm:^1.2.0": version: 1.3.2 resolution: "mixin-deep@npm:1.3.2" @@ -21375,10 +21522,10 @@ __metadata: languageName: node linkType: hard -"mute-stream@npm:0.0.8": - version: 0.0.8 - resolution: "mute-stream@npm:0.0.8" - checksum: 18d06d92e5d6d45e2b63c0e1b8f25376af71748ac36f53c059baa8b76ffac31c5ab225480494e7d35d30215ecdb18fed26ec23cafcd2f7733f2f14406bcd19e2 +"mute-stream@npm:1.0.0": + version: 1.0.0 + resolution: "mute-stream@npm:1.0.0" + checksum: dce2a9ccda171ec979a3b4f869a102b1343dee35e920146776780de182f16eae459644d187e38d59a3d37adf85685e1c17c38cf7bfda7e39a9880f7a1d10a74c languageName: node linkType: hard @@ -21657,44 +21804,44 @@ __metadata: languageName: node linkType: hard -"node-gyp@npm:^9.0.0, node-gyp@npm:^9.3.1": - version: 9.4.1 - resolution: "node-gyp@npm:9.4.1" +"node-gyp@npm:^10.0.0, node-gyp@npm:latest": + version: 10.0.1 + resolution: "node-gyp@npm:10.0.1" dependencies: env-paths: "npm:^2.2.0" exponential-backoff: "npm:^3.1.1" - glob: "npm:^7.1.4" + glob: "npm:^10.3.10" graceful-fs: "npm:^4.2.6" - make-fetch-happen: "npm:^10.0.3" - nopt: "npm:^6.0.0" - npmlog: "npm:^6.0.0" - rimraf: "npm:^3.0.2" + make-fetch-happen: "npm:^13.0.0" + nopt: "npm:^7.0.0" + proc-log: "npm:^3.0.0" semver: "npm:^7.3.5" tar: "npm:^6.1.2" - which: "npm:^2.0.2" + which: "npm:^4.0.0" bin: node-gyp: bin/node-gyp.js - checksum: f7d676cfa79f27d35edf17fe9c80064123670362352d19729e5dc9393d7e99f1397491c3107eddc0c0e8941442a6244a7ba6c860cfbe4b433b4cae248a55fe10 + checksum: abddfff7d873312e4ed4a5fb75ce893a5c4fb69e7fcb1dfa71c28a6b92a7f1ef6b62790dffb39181b5a82728ba8f2f32d229cf8cbe66769fe02cea7db4a555aa languageName: node linkType: hard -"node-gyp@npm:latest": - version: 10.0.1 - resolution: "node-gyp@npm:10.0.1" +"node-gyp@npm:^9.3.1": + version: 9.4.1 + resolution: "node-gyp@npm:9.4.1" dependencies: env-paths: "npm:^2.2.0" exponential-backoff: "npm:^3.1.1" - glob: "npm:^10.3.10" + glob: "npm:^7.1.4" graceful-fs: "npm:^4.2.6" - make-fetch-happen: "npm:^13.0.0" - nopt: "npm:^7.0.0" - proc-log: "npm:^3.0.0" + make-fetch-happen: "npm:^10.0.3" + nopt: "npm:^6.0.0" + npmlog: "npm:^6.0.0" + rimraf: "npm:^3.0.2" semver: "npm:^7.3.5" tar: "npm:^6.1.2" - which: "npm:^4.0.0" + which: "npm:^2.0.2" bin: node-gyp: bin/node-gyp.js - checksum: abddfff7d873312e4ed4a5fb75ce893a5c4fb69e7fcb1dfa71c28a6b92a7f1ef6b62790dffb39181b5a82728ba8f2f32d229cf8cbe66769fe02cea7db4a555aa + checksum: f7d676cfa79f27d35edf17fe9c80064123670362352d19729e5dc9393d7e99f1397491c3107eddc0c0e8941442a6244a7ba6c860cfbe4b433b4cae248a55fe10 languageName: node linkType: hard @@ -21747,10 +21894,10 @@ __metadata: languageName: node linkType: hard -"node-releases@npm:^2.0.13": - version: 2.0.13 - resolution: "node-releases@npm:2.0.13" - checksum: 2fb44bf70fc949d27f3a48a7fd1a9d1d603ddad4ccd091f26b3fb8b1da976605d919330d7388ccd55ca2ade0dc8b2e12841ba19ef249c8bb29bf82532d401af7 +"node-releases@npm:^2.0.13, node-releases@npm:^2.0.14": + version: 2.0.14 + resolution: "node-releases@npm:2.0.14" + checksum: 199fc93773ae70ec9969bc6d5ac5b2bbd6eb986ed1907d751f411fef3ede0e4bfdb45ceb43711f8078bea237b6036db8b1bf208f6ff2b70c7d615afd157f3ab9 languageName: node linkType: hard @@ -21788,15 +21935,15 @@ __metadata: languageName: node linkType: hard -"normalize-package-data@npm:^5.0.0": - version: 5.0.0 - resolution: "normalize-package-data@npm:5.0.0" +"normalize-package-data@npm:^6.0.0": + version: 6.0.0 + resolution: "normalize-package-data@npm:6.0.0" dependencies: - hosted-git-info: "npm:^6.0.0" + hosted-git-info: "npm:^7.0.0" is-core-module: "npm:^2.8.1" semver: "npm:^7.3.5" validate-npm-package-license: "npm:^3.0.4" - checksum: 705fe66279edad2f93f6e504d5dc37984e404361a3df921a76ab61447eb285132d20ff261cc0bee9566b8ce895d75fcfec913417170add267e2873429fe38392 + checksum: dbd7c712c1e016a4b682640a53b44e9290c9db7b94355c71234bafee1534bef4c5dc3970c30c7ee2c4990a3c07e963e15e211b61624d58eb857d867ec71d3bb6 languageName: node linkType: hard @@ -21846,63 +21993,51 @@ __metadata: languageName: node linkType: hard -"npm-package-arg@npm:10.1.0, npm-package-arg@npm:^10.0.0": - version: 10.1.0 - resolution: "npm-package-arg@npm:10.1.0" +"npm-package-arg@npm:11.0.1, npm-package-arg@npm:^11.0.0": + version: 11.0.1 + resolution: "npm-package-arg@npm:11.0.1" dependencies: - hosted-git-info: "npm:^6.0.0" + hosted-git-info: "npm:^7.0.0" proc-log: "npm:^3.0.0" semver: "npm:^7.3.5" validate-npm-package-name: "npm:^5.0.0" - checksum: ab56ed775b48e22755c324536336e3749b6a17763602bc0fb0d7e8b298100c2de8b5e2fb1d4fb3f451e9e076707a27096782e9b3a8da0c5b7de296be184b5a90 + checksum: f5bc4056ffe46497847fb31e349c834efe01d36d170926d1032443e183219d5e6ce75a49c1d398caf2236d3a69180597d255bff685c68d6a81f2eac96262b94d languageName: node linkType: hard -"npm-packlist@npm:^7.0.0": - version: 7.0.4 - resolution: "npm-packlist@npm:7.0.4" +"npm-packlist@npm:^8.0.0": + version: 8.0.0 + resolution: "npm-packlist@npm:8.0.0" dependencies: ignore-walk: "npm:^6.0.0" - checksum: a6528b2d0aa09288166a21a04bb152231d29fd8c0e40e551ea5edb323a12d0580aace11b340387ba3a01c614db25bb4100a10c20d0ff53976eed786f95b82536 + checksum: 0085e64695f10c8d377d9f2f8eaecb06ee41881bfc2e6f1996578b016fc62f873cc76ad90796d3b41712a5252d2795ecb374954846346ab5d2636b1c2bc65aa2 languageName: node linkType: hard -"npm-pick-manifest@npm:8.0.1": - version: 8.0.1 - resolution: "npm-pick-manifest@npm:8.0.1" - dependencies: - npm-install-checks: "npm:^6.0.0" - npm-normalize-package-bin: "npm:^3.0.0" - npm-package-arg: "npm:^10.0.0" - semver: "npm:^7.3.5" - checksum: 920cc33167b52f5fb26a5cfcf78486ea62c3c04c7716a3a0c973754b4ea13dd00cedcd9bbd772845d914b91d0ad6d5d06c52e6be189fbcefcdeba7f8293deb14 - languageName: node - linkType: hard - -"npm-pick-manifest@npm:^8.0.0": - version: 8.0.2 - resolution: "npm-pick-manifest@npm:8.0.2" +"npm-pick-manifest@npm:9.0.0, npm-pick-manifest@npm:^9.0.0": + version: 9.0.0 + resolution: "npm-pick-manifest@npm:9.0.0" dependencies: npm-install-checks: "npm:^6.0.0" npm-normalize-package-bin: "npm:^3.0.0" - npm-package-arg: "npm:^10.0.0" + npm-package-arg: "npm:^11.0.0" semver: "npm:^7.3.5" - checksum: 9e58f7732203dbfdd7a338d6fd691c564017fd2ebfaa0ea39528a21db0c99f26370c759d99a0c5684307b79dbf76fa20e387010358a8651e273dc89930e922a0 + checksum: 930859b70fb7b8cd8aee1c9819c2fbe95db5ae246398fbd6eaa819793675e36be97da2b4d19e1b56a913a016f7a0a33070cd3ed363ad522d5dbced9c0d94d037 languageName: node linkType: hard -"npm-registry-fetch@npm:^14.0.0": - version: 14.0.5 - resolution: "npm-registry-fetch@npm:14.0.5" +"npm-registry-fetch@npm:^16.0.0": + version: 16.1.0 + resolution: "npm-registry-fetch@npm:16.1.0" dependencies: - make-fetch-happen: "npm:^11.0.0" - minipass: "npm:^5.0.0" + make-fetch-happen: "npm:^13.0.0" + minipass: "npm:^7.0.2" minipass-fetch: "npm:^3.0.0" minipass-json-stream: "npm:^1.0.1" minizlib: "npm:^2.1.2" - npm-package-arg: "npm:^10.0.0" + npm-package-arg: "npm:^11.0.0" proc-log: "npm:^3.0.0" - checksum: 6f556095feb20455d6dc3bb2d5f602df9c5725ab49bca8570135e2900d0ccd0a619427bb668639d94d42651fab0a9e8e234f5381767982a1af17d721799cfc2d + checksum: b1108c256a95ed8cb57710a4c8970cf5814c6f00fbf51b045d53ad75a6fc00793ac6c1de1134bb0f35fa53d6f26a0ff29098d67c48ad7656451bc75f1f5e3c8c languageName: node linkType: hard @@ -21975,7 +22110,7 @@ __metadata: languageName: node linkType: hard -"nwsapi@npm:^2.2.0, nwsapi@npm:^2.2.2": +"nwsapi@npm:^2.2.2": version: 2.2.7 resolution: "nwsapi@npm:2.2.7" checksum: 44be198adae99208487a1c886c0a3712264f7bbafa44368ad96c003512fed2753d4e22890ca1e6edb2690c3456a169f2a3c33bfacde1905cf3bf01c7722464db @@ -22067,7 +22202,7 @@ __metadata: languageName: node linkType: hard -"object-assign@npm:4.1.1, object-assign@npm:^4.1.0, object-assign@npm:^4.1.1": +"object-assign@npm:4.1.1, object-assign@npm:^4, object-assign@npm:^4.1.0, object-assign@npm:^4.1.1": version: 4.1.1 resolution: "object-assign@npm:4.1.1" checksum: 1f4df9945120325d041ccf7b86f31e8bcc14e73d29171e37a7903050e96b81323784ec59f93f102ec635bcf6fa8034ba3ea0a8c7e69fa202b87ae3b6cec5a414 @@ -22116,13 +22251,6 @@ __metadata: languageName: node linkType: hard -"object-path@npm:^0.11.5": - version: 0.11.8 - resolution: "object-path@npm:0.11.8" - checksum: 73b1f33bb30a7032d8cce2e3dcffd82b80a83d8304e80b4f83b4f456165625de9907f1ca7f7441d4dfb5e73429ace1e5bf9d9315636ac0aacc76392cc21d1672 - languageName: node - linkType: hard - "object-visit@npm:^1.0.0": version: 1.0.1 resolution: "object-visit@npm:1.0.1" @@ -22133,14 +22261,14 @@ __metadata: linkType: hard "object.assign@npm:^4.1.2, object.assign@npm:^4.1.4": - version: 4.1.4 - resolution: "object.assign@npm:4.1.4" + version: 4.1.5 + resolution: "object.assign@npm:4.1.5" dependencies: - call-bind: "npm:^1.0.2" - define-properties: "npm:^1.1.4" + call-bind: "npm:^1.0.5" + define-properties: "npm:^1.2.1" has-symbols: "npm:^1.0.3" object-keys: "npm:^1.1.1" - checksum: 2f286118c023e557757620e647b02e7c88d3d417e0c568fca0820de8ec9cca68928304854d5b03e99763eddad6e78a6716e2930f7e6372e4b9b843f3fd3056f3 + checksum: 60108e1fa2706f22554a4648299b0955236c62b3685c52abf4988d14fffb0e7731e00aa8c6448397e3eb63d087dcc124a9f21e1980f36d0b2667f3c18bacd469 languageName: node linkType: hard @@ -22231,6 +22359,15 @@ __metadata: languageName: node linkType: hard +"on-finished@npm:~2.3.0": + version: 2.3.0 + resolution: "on-finished@npm:2.3.0" + dependencies: + ee-first: "npm:1.1.1" + checksum: c904f9e518b11941eb60279a3cbfaf1289bd0001f600a950255b1dede9fe3df8cd74f38483550b3bb9485165166acb5db500c3b4c4337aec2815c88c96fcc2ea + languageName: node + linkType: hard + "on-headers@npm:~1.0.2": version: 1.0.2 resolution: "on-headers@npm:1.0.2" @@ -22294,6 +22431,22 @@ __metadata: languageName: node linkType: hard +"openurl@npm:1.1.1": + version: 1.1.1 + resolution: "openurl@npm:1.1.1" + checksum: 4899895f78e54ff5c7cc5c90565646bb2d0fd0ac6bc4b1028c77596f606f39cd80e63e161f24d631ce98abda8b4e99433a2ed50b0495a7dc95e11370264c9e19 + languageName: node + linkType: hard + +"opn@npm:5.3.0": + version: 5.3.0 + resolution: "opn@npm:5.3.0" + dependencies: + is-wsl: "npm:^1.1.0" + checksum: ac1c7a4176296c1f1190ab226a629535b9a9ef748b6c821fd6cc4353ef11d259dabdbafd610b2a46d53cfe8abd500396305eaffc1d4dffbc70dc931cd517a5b1 + languageName: node + linkType: hard + "optionator@npm:^0.9.3": version: 0.9.3 resolution: "optionator@npm:0.9.3" @@ -22516,31 +22669,31 @@ __metadata: languageName: node linkType: hard -"pacote@npm:15.2.0": - version: 15.2.0 - resolution: "pacote@npm:15.2.0" +"pacote@npm:17.0.4": + version: 17.0.4 + resolution: "pacote@npm:17.0.4" dependencies: - "@npmcli/git": "npm:^4.0.0" + "@npmcli/git": "npm:^5.0.0" "@npmcli/installed-package-contents": "npm:^2.0.1" - "@npmcli/promise-spawn": "npm:^6.0.1" - "@npmcli/run-script": "npm:^6.0.0" - cacache: "npm:^17.0.0" + "@npmcli/promise-spawn": "npm:^7.0.0" + "@npmcli/run-script": "npm:^7.0.0" + cacache: "npm:^18.0.0" fs-minipass: "npm:^3.0.0" - minipass: "npm:^5.0.0" - npm-package-arg: "npm:^10.0.0" - npm-packlist: "npm:^7.0.0" - npm-pick-manifest: "npm:^8.0.0" - npm-registry-fetch: "npm:^14.0.0" + minipass: "npm:^7.0.2" + npm-package-arg: "npm:^11.0.0" + npm-packlist: "npm:^8.0.0" + npm-pick-manifest: "npm:^9.0.0" + npm-registry-fetch: "npm:^16.0.0" proc-log: "npm:^3.0.0" promise-retry: "npm:^2.0.1" - read-package-json: "npm:^6.0.0" + read-package-json: "npm:^7.0.0" read-package-json-fast: "npm:^3.0.0" - sigstore: "npm:^1.3.0" + sigstore: "npm:^2.0.0" ssri: "npm:^10.0.0" tar: "npm:^6.1.11" bin: pacote: lib/bin.js - checksum: 0e680a360d7577df61c36c671dcc9c63a1ef176518a6ec19a3200f91da51205432559e701cba90f0ba6901372765dde68a07ff003474d656887eb09b54f35c5f + checksum: 7dab80013eed5e652b4b260a032bea617bfe14a59fb0e7cc9e4f1404f940f67493c52c6b32fbd73a373aa8e8668a8930d6f41c5d8ce6615edd4d1b08df237d6b languageName: node linkType: hard @@ -22712,7 +22865,7 @@ __metadata: languageName: node linkType: hard -"parse5@npm:6.0.1, parse5@npm:^6.0.1": +"parse5@npm:^6.0.1": version: 6.0.1 resolution: "parse5@npm:6.0.1" checksum: 595821edc094ecbcfb9ddcb46a3e1fe3a718540f8320eff08b8cf6742a5114cce2d46d45f95c26191c11b184dcaf4e2960abcd9c5ed9eb9393ac9a37efcfdecb @@ -22941,7 +23094,14 @@ __metadata: languageName: node linkType: hard -"picomatch@npm:2.3.1, picomatch@npm:^2.0.4, picomatch@npm:^2.2.1, picomatch@npm:^2.2.2, picomatch@npm:^2.2.3, picomatch@npm:^2.3.0, picomatch@npm:^2.3.1": +"picomatch@npm:3.0.1": + version: 3.0.1 + resolution: "picomatch@npm:3.0.1" + checksum: 70ec738569f1864658378b7abdab8939d15dae0718c1df994eae3346fd33daf6a3c1ff4e0c1a0cd1e2c0319130985b63a2cff34d192f2f2acbb78aca76111736 + languageName: node + linkType: hard + +"picomatch@npm:^2.0.4, picomatch@npm:^2.2.1, picomatch@npm:^2.2.2, picomatch@npm:^2.2.3, picomatch@npm:^2.3.0, picomatch@npm:^2.3.1": version: 2.3.1 resolution: "picomatch@npm:2.3.1" checksum: 26c02b8d06f03206fc2ab8d16f19960f2ff9e81a658f831ecb656d8f17d9edc799e8364b1f4a7873e89d9702dff96204be0fa26fe4181f6843f040f819dac4be @@ -23008,9 +23168,9 @@ __metadata: languageName: node linkType: hard -"piscina@npm:4.0.0": - version: 4.0.0 - resolution: "piscina@npm:4.0.0" +"piscina@npm:4.1.0": + version: 4.1.0 + resolution: "piscina@npm:4.1.0" dependencies: eventemitter-asyncresource: "npm:^1.0.0" hdr-histogram-js: "npm:^2.0.1" @@ -23019,7 +23179,7 @@ __metadata: dependenciesMeta: nice-napi: optional: true - checksum: 29b11b1c590a2c854ec42f71e9078fd7c3ea0cf9684e0a2d9df410d4cd3203016215b21b57820ab90bd37e49539b2885f33f03adfba1d6484a80bf10b09e08ad + checksum: cc249b9d37b7d6ae1c2230384be0b6baa4f8935d344905e0f711078fcb21ec3833fcba50ea0d84d3c1a9f4b42ee2790491a02c80a394dd8a397ea2f8b497d57a languageName: node linkType: hard @@ -23149,6 +23309,16 @@ __metadata: languageName: node linkType: hard +"portscanner@npm:2.2.0": + version: 2.2.0 + resolution: "portscanner@npm:2.2.0" + dependencies: + async: "npm:^2.6.0" + is-number-like: "npm:^1.0.3" + checksum: d61af2143af13b27be0be767f40a34801e203d811c81c637828e6b07f78e667f175df276832638eeefb4ecf88aad78777061cea101fdae15f2f1c4939a6bc14a + languageName: node + linkType: hard + "posix-character-classes@npm:^0.1.0": version: 0.1.1 resolution: "posix-character-classes@npm:0.1.1" @@ -23289,7 +23459,7 @@ __metadata: languageName: node linkType: hard -"postcss@npm:8.4.31, postcss@npm:^8.2.14, postcss@npm:^8.4.14, postcss@npm:^8.4.21, postcss@npm:^8.4.23, postcss@npm:^8.4.26, postcss@npm:^8.4.27, postcss@npm:^8.4.31": +"postcss@npm:8.4.31, postcss@npm:^8.2.14, postcss@npm:^8.4.14, postcss@npm:^8.4.21, postcss@npm:^8.4.23, postcss@npm:^8.4.27, postcss@npm:^8.4.31": version: 8.4.31 resolution: "postcss@npm:8.4.31" dependencies: @@ -23934,7 +24104,7 @@ __metadata: languageName: node linkType: hard -"range-parser@npm:^1.2.1, range-parser@npm:~1.2.1": +"range-parser@npm:^1.2.1, range-parser@npm:~1.2.0, range-parser@npm:~1.2.1": version: 1.2.1 resolution: "range-parser@npm:1.2.1" checksum: 96c032ac2475c8027b7a4e9fe22dc0dfe0f6d90b85e496e0f016fbdb99d6d066de0112e680805075bd989905e2123b3b3d002765149294dce0c1f7f01fcc2ea0 @@ -23953,6 +24123,18 @@ __metadata: languageName: node linkType: hard +"raw-body@npm:^2.3.2": + version: 2.5.2 + resolution: "raw-body@npm:2.5.2" + dependencies: + bytes: "npm:3.1.2" + http-errors: "npm:2.0.0" + iconv-lite: "npm:0.4.24" + unpipe: "npm:1.0.0" + checksum: b201c4b66049369a60e766318caff5cb3cc5a900efd89bdac431463822d976ad0670912c931fdbdcf5543207daf6f6833bca57aa116e1661d2ea91e12ca692c4 + languageName: node + linkType: hard + "rc@npm:^1.2.7": version: 1.2.8 resolution: "rc@npm:1.2.8" @@ -24331,15 +24513,15 @@ __metadata: languageName: node linkType: hard -"read-package-json@npm:^6.0.0": - version: 6.0.4 - resolution: "read-package-json@npm:6.0.4" +"read-package-json@npm:^7.0.0": + version: 7.0.0 + resolution: "read-package-json@npm:7.0.0" dependencies: glob: "npm:^10.2.2" json-parse-even-better-errors: "npm:^3.0.0" - normalize-package-data: "npm:^5.0.0" + normalize-package-data: "npm:^6.0.0" npm-normalize-package-bin: "npm:^3.0.0" - checksum: 0eb1110b35bc109a8d2789358a272c66b0fb8fd335a98df2ea9ff3423be564e2908f27d98f3f4b41da35495e04dc1763b33aad7cc24bfd58dfc6d60cca7d70c9 + checksum: a2d373d0f87613fe86ec49c7e4bcdaf2a14967c258c6ccfd9585dec8b21e3d5bfe422c460648fb30e8c93fc13579da0d9c9c65adc5ec4e95ec888d99e4bccc79 languageName: node linkType: hard @@ -24549,7 +24731,7 @@ __metadata: languageName: node linkType: hard -"regenerator-runtime@npm:^0.13.11, regenerator-runtime@npm:^0.13.2, regenerator-runtime@npm:^0.13.4, regenerator-runtime@npm:^0.13.9": +"regenerator-runtime@npm:^0.13.2, regenerator-runtime@npm:^0.13.4, regenerator-runtime@npm:^0.13.9": version: 0.13.11 resolution: "regenerator-runtime@npm:0.13.11" checksum: 12b069dc774001fbb0014f6a28f11c09ebfe3c0d984d88c9bced77fdb6fedbacbca434d24da9ae9371bfbf23f754869307fb51a4c98a8b8b18e5ef748677ca24 @@ -25150,22 +25332,9 @@ __metadata: languageName: node linkType: hard -"resolve@npm:1.22.2": - version: 1.22.2 - resolution: "resolve@npm:1.22.2" - dependencies: - is-core-module: "npm:^2.11.0" - path-parse: "npm:^1.0.7" - supports-preserve-symlinks-flag: "npm:^1.0.0" - bin: - resolve: bin/resolve - checksum: f9f424a8117d1c68371b4fbc64e6ac045115a3beacc4bd3617b751f7624b69ad40c47dc995585c7f13d4a09723a8f167847defb7d39fad70b0d43bbba05ff851 - languageName: node - linkType: hard - -"resolve@npm:^1.10.0, resolve@npm:^1.12.0, resolve@npm:^1.13.1, resolve@npm:^1.14.2, resolve@npm:^1.15.1, resolve@npm:^1.17.0, resolve@npm:^1.19.0, resolve@npm:^1.20.0, resolve@npm:^1.22.1, resolve@npm:^1.22.4, resolve@npm:^1.22.8, resolve@npm:^1.4.0": - version: 1.22.8 - resolution: "resolve@npm:1.22.8" +"resolve@npm:1.22.8, resolve@npm:^1.10.0, resolve@npm:^1.12.0, resolve@npm:^1.13.1, resolve@npm:^1.14.2, resolve@npm:^1.15.1, resolve@npm:^1.17.0, resolve@npm:^1.19.0, resolve@npm:^1.20.0, resolve@npm:^1.22.1, resolve@npm:^1.22.4, resolve@npm:^1.22.8, resolve@npm:^1.4.0": + version: 1.22.8 + resolution: "resolve@npm:1.22.8" dependencies: is-core-module: "npm:^2.13.0" path-parse: "npm:^1.0.7" @@ -25189,20 +25358,7 @@ __metadata: languageName: node linkType: hard -"resolve@patch:resolve@npm%3A1.22.2#optional!builtin": - version: 1.22.2 - resolution: "resolve@patch:resolve@npm%3A1.22.2#optional!builtin::version=1.22.2&hash=c3c19d" - dependencies: - is-core-module: "npm:^2.11.0" - path-parse: "npm:^1.0.7" - supports-preserve-symlinks-flag: "npm:^1.0.0" - bin: - resolve: bin/resolve - checksum: dcf068c4391941734efda06b6f778c013fd349cd4340f126de17c265a7b006c67de7e80e7aa06ecd29f3922e49f5561622b9faf98531f16aa9a896d22148c661 - languageName: node - linkType: hard - -"resolve@patch:resolve@npm%3A^1.10.0#optional!builtin, resolve@patch:resolve@npm%3A^1.12.0#optional!builtin, resolve@patch:resolve@npm%3A^1.13.1#optional!builtin, resolve@patch:resolve@npm%3A^1.14.2#optional!builtin, resolve@patch:resolve@npm%3A^1.15.1#optional!builtin, resolve@patch:resolve@npm%3A^1.17.0#optional!builtin, resolve@patch:resolve@npm%3A^1.19.0#optional!builtin, resolve@patch:resolve@npm%3A^1.20.0#optional!builtin, resolve@patch:resolve@npm%3A^1.22.1#optional!builtin, resolve@patch:resolve@npm%3A^1.22.4#optional!builtin, resolve@patch:resolve@npm%3A^1.22.8#optional!builtin, resolve@patch:resolve@npm%3A^1.4.0#optional!builtin": +"resolve@patch:resolve@npm%3A1.22.8#optional!builtin, resolve@patch:resolve@npm%3A^1.10.0#optional!builtin, resolve@patch:resolve@npm%3A^1.12.0#optional!builtin, resolve@patch:resolve@npm%3A^1.13.1#optional!builtin, resolve@patch:resolve@npm%3A^1.14.2#optional!builtin, resolve@patch:resolve@npm%3A^1.15.1#optional!builtin, resolve@patch:resolve@npm%3A^1.17.0#optional!builtin, resolve@patch:resolve@npm%3A^1.19.0#optional!builtin, resolve@patch:resolve@npm%3A^1.20.0#optional!builtin, resolve@patch:resolve@npm%3A^1.22.1#optional!builtin, resolve@patch:resolve@npm%3A^1.22.4#optional!builtin, resolve@patch:resolve@npm%3A^1.22.8#optional!builtin, resolve@patch:resolve@npm%3A^1.4.0#optional!builtin": version: 1.22.8 resolution: "resolve@patch:resolve@npm%3A1.22.8#optional!builtin::version=1.22.8&hash=c3c19d" dependencies: @@ -25228,6 +25384,16 @@ __metadata: languageName: node linkType: hard +"resp-modifier@npm:6.0.2": + version: 6.0.2 + resolution: "resp-modifier@npm:6.0.2" + dependencies: + debug: "npm:^2.2.0" + minimatch: "npm:^3.0.2" + checksum: 670703c372c83cc5821698ef92d7e4399d8c8e20c5d693eb28a4acbe82a5020c4cbedd166fb5946e83f605639803c780793e467bfa6f649148510983cfb17c99 + languageName: node + linkType: hard + "responselike@npm:^2.0.0": version: 2.0.1 resolution: "responselike@npm:2.0.1" @@ -25345,7 +25511,7 @@ __metadata: languageName: node linkType: hard -"rollup@npm:^3.20.1, rollup@npm:^3.25.2, rollup@npm:^3.27.1": +"rollup@npm:^3.20.1, rollup@npm:^3.27.1": version: 3.29.4 resolution: "rollup@npm:3.29.4" dependencies: @@ -25380,10 +25546,10 @@ __metadata: languageName: node linkType: hard -"run-async@npm:^2.4.0": - version: 2.4.1 - resolution: "run-async@npm:2.4.1" - checksum: 35a68c8f1d9664f6c7c2e153877ca1d6e4f886e5ca067c25cdd895a6891ff3a1466ee07c63d6a9be306e9619ff7d509494e6d9c129516a36b9fd82263d579ee1 +"run-async@npm:^3.0.0": + version: 3.0.0 + resolution: "run-async@npm:3.0.0" + checksum: b18b562ae37c3020083dcaae29642e4cc360c824fbfb6b7d50d809a9d5227bb986152d09310255842c8dce40526e82ca768f02f00806c91ba92a8dfa6159cb85 languageName: node linkType: hard @@ -25396,7 +25562,14 @@ __metadata: languageName: node linkType: hard -"rxjs@npm:7.8.1, rxjs@npm:^7.5.5, rxjs@npm:^7.8.1": +"rx@npm:4.1.0": + version: 4.1.0 + resolution: "rx@npm:4.1.0" + checksum: c2a2cf8cb350f38b5396f8ee6af1bc359c5ed5a409d710111a2da215bfb3fe77f75b5f0a0dd6fe6b57c5bdadf3b128ad1f8ad99de27da2c13ae9ba908a642cee + languageName: node + linkType: hard + +"rxjs@npm:7.8.1, rxjs@npm:^7.8.1": version: 7.8.1 resolution: "rxjs@npm:7.8.1" dependencies: @@ -25544,16 +25717,16 @@ __metadata: languageName: node linkType: hard -"sass@npm:1.64.1": - version: 1.64.1 - resolution: "sass@npm:1.64.1" +"sass@npm:1.69.5": + version: 1.69.5 + resolution: "sass@npm:1.69.5" dependencies: chokidar: "npm:>=3.0.0 <4.0.0" immutable: "npm:^4.0.0" source-map-js: "npm:>=0.6.2 <2.0.0" bin: sass: sass.js - checksum: 47fc8cd65b24f71ac6f107b250f3f3bf5ea1ba631c70211a8f99716ad25b6f42c2dde3ea606ec2394bc156e3c7136ea4cc2539beff082a3cbee127febc41a20e + checksum: a9003a9482f2e467fc412cfe58ba4fa14fb78bef7e1283ce5d64a065f8a31114ec3bbf5d4e724f94eb8512c32c768a6f91f228c7f16a26a300bbf4db293b5608 languageName: node linkType: hard @@ -25564,15 +25737,6 @@ __metadata: languageName: node linkType: hard -"saxes@npm:^5.0.1": - version: 5.0.1 - resolution: "saxes@npm:5.0.1" - dependencies: - xmlchars: "npm:^2.2.0" - checksum: b7476c41dbe1c3a89907d2546fecfba234de5e66743ef914cde2603f47b19bed09732ab51b528ad0f98b958369d8be72b6f5af5c9cfad69972a73d061f0b3952 - languageName: node - linkType: hard - "saxes@npm:^6.0.0": version: 6.0.0 resolution: "saxes@npm:6.0.0" @@ -25702,6 +25866,27 @@ __metadata: languageName: node linkType: hard +"send@npm:0.16.2": + version: 0.16.2 + resolution: "send@npm:0.16.2" + dependencies: + debug: "npm:2.6.9" + depd: "npm:~1.1.2" + destroy: "npm:~1.0.4" + encodeurl: "npm:~1.0.2" + escape-html: "npm:~1.0.3" + etag: "npm:~1.8.1" + fresh: "npm:0.5.2" + http-errors: "npm:~1.6.2" + mime: "npm:1.4.1" + ms: "npm:2.0.0" + on-finished: "npm:~2.3.0" + range-parser: "npm:~1.2.0" + statuses: "npm:~1.4.0" + checksum: 64681de4068c53aa7792d977d8c5b548966ea4aec018850ebf8516cc8bd5547c6e7189ec599907e6a41216058347f0e4fc72d3b37a5f38bf07d5cda168b2b84d + languageName: node + linkType: hard + "send@npm:0.18.0": version: 0.18.0 resolution: "send@npm:0.18.0" @@ -25732,7 +25917,7 @@ __metadata: languageName: node linkType: hard -"serve-index@npm:^1.9.1": +"serve-index@npm:1.9.1, serve-index@npm:^1.9.1": version: 1.9.1 resolution: "serve-index@npm:1.9.1" dependencies: @@ -25747,6 +25932,18 @@ __metadata: languageName: node linkType: hard +"serve-static@npm:1.13.2": + version: 1.13.2 + resolution: "serve-static@npm:1.13.2" + dependencies: + encodeurl: "npm:~1.0.2" + escape-html: "npm:~1.0.3" + parseurl: "npm:~1.3.2" + send: "npm:0.16.2" + checksum: 7d277284091ed3902ae1020149b45559b0af5ccc64dcb66331ae771756afb10da56275b363ec2e8fa40607eaa2a7e90c84a40b28ff18083a0f5e78b215aaa634 + languageName: node + linkType: hard + "serve-static@npm:1.15.0, serve-static@npm:^1.14.1": version: 1.15.0 resolution: "serve-static@npm:1.15.0" @@ -25759,6 +25956,13 @@ __metadata: languageName: node linkType: hard +"server-destroy@npm:1.0.1": + version: 1.0.1 + resolution: "server-destroy@npm:1.0.1" + checksum: ab771f12b24cde1bc622cce0c14a1365f3ab0685937c641c762916fb43aa7a03d6c577cc4375ea5361d6bc1bb20ab689ec5723086e5798c6781edb61287e24b8 + languageName: node + linkType: hard + "set-blocking@npm:^2.0.0": version: 2.0.0 resolution: "set-blocking@npm:2.0.0" @@ -25931,18 +26135,15 @@ __metadata: languageName: node linkType: hard -"sigstore@npm:^1.3.0": - version: 1.9.0 - resolution: "sigstore@npm:1.9.0" +"sigstore@npm:^2.0.0": + version: 2.1.0 + resolution: "sigstore@npm:2.1.0" dependencies: - "@sigstore/bundle": "npm:^1.1.0" - "@sigstore/protobuf-specs": "npm:^0.2.0" - "@sigstore/sign": "npm:^1.0.0" - "@sigstore/tuf": "npm:^1.0.3" - make-fetch-happen: "npm:^11.0.1" - bin: - sigstore: bin/sigstore.js - checksum: 64091a95f7a2073ab833bc172aadae0768b84c513a4e3dd3c6f55a1120ea774c293521b7eb6de510dd00562b4351acc2b9295b604c725a9c524fe4f81e4e8203 + "@sigstore/bundle": "npm:^2.1.0" + "@sigstore/protobuf-specs": "npm:^0.2.1" + "@sigstore/sign": "npm:^2.1.0" + "@sigstore/tuf": "npm:^2.1.0" + checksum: 44e9ed0ea337f5bb37cf54b065789be4fba4c2f45aa5c1cd19c33eee7bc5683a24df67e45b46698c6192bdf13e85052251ea994c4873c6d86d21392e0cd45618 languageName: node linkType: hard @@ -26086,6 +26287,52 @@ __metadata: languageName: node linkType: hard +"socket.io-adapter@npm:~2.5.2": + version: 2.5.2 + resolution: "socket.io-adapter@npm:2.5.2" + dependencies: + ws: "npm:~8.11.0" + checksum: 4272b643f58dd7d64d67bf56420a48046a262701427579e72a76880f15612617036a6c31ad7e4314cf477520aa4bcaf5485043223a75d9e0b653d7c5cc22a328 + languageName: node + linkType: hard + +"socket.io-client@npm:^4.4.1": + version: 4.7.2 + resolution: "socket.io-client@npm:4.7.2" + dependencies: + "@socket.io/component-emitter": "npm:~3.1.0" + debug: "npm:~4.3.2" + engine.io-client: "npm:~6.5.2" + socket.io-parser: "npm:~4.2.4" + checksum: 164931221deaa30278185c795772b6065273b751b4951ce16581eff0aed955196ae3e911489d66542409ef3629e4a5dc85908902c6aa9f8f79fee314732e624b + languageName: node + linkType: hard + +"socket.io-parser@npm:~4.2.4": + version: 4.2.4 + resolution: "socket.io-parser@npm:4.2.4" + dependencies: + "@socket.io/component-emitter": "npm:~3.1.0" + debug: "npm:~4.3.1" + checksum: 9383b30358fde4a801ea4ec5e6860915c0389a091321f1c1f41506618b5cf7cd685d0a31c587467a0c4ee99ef98c2b99fb87911f9dfb329716c43b587f29ca48 + languageName: node + linkType: hard + +"socket.io@npm:^4.4.1": + version: 4.7.2 + resolution: "socket.io@npm:4.7.2" + dependencies: + accepts: "npm:~1.3.4" + base64id: "npm:~2.0.0" + cors: "npm:~2.8.5" + debug: "npm:~4.3.2" + engine.io: "npm:~6.5.2" + socket.io-adapter: "npm:~2.5.2" + socket.io-parser: "npm:~4.2.4" + checksum: ce43f44e21513d8fcdc1a5e9bb7de4f28cea34536a51d52612ebcedb8634432cf5587976163a0d5fc361d1fe926abce65c5aee17c35dace3766420c2a264953c + languageName: node + linkType: hard + "sockjs@npm:^0.3.24": version: 0.3.24 resolution: "sockjs@npm:0.3.24" @@ -26466,6 +26713,20 @@ __metadata: languageName: node linkType: hard +"statuses@npm:~1.3.1": + version: 1.3.1 + resolution: "statuses@npm:1.3.1" + checksum: cdeccf298416555abe1a5ff632a1bf9d27a3546e013b5a456987a6a0c4fb4f277d138f14940a537ca05039be7fbc0734689331e697ef8d063928014a58ce1bdd + languageName: node + linkType: hard + +"statuses@npm:~1.4.0": + version: 1.4.0 + resolution: "statuses@npm:1.4.0" + checksum: 2877ece71af9f8dcefe6cdf0cc0d96d3cab20cef33594991396346e683923d36add1b08312450e9f8dfb9f1e6718d9e57482157bb190f8ea4fc5c7bc441f3f25 + languageName: node + linkType: hard + "stop-iteration-iterator@npm:^1.0.0": version: 1.0.0 resolution: "stop-iteration-iterator@npm:1.0.0" @@ -26531,6 +26792,18 @@ __metadata: languageName: node linkType: hard +"stream-throttle@npm:^0.1.3": + version: 0.1.3 + resolution: "stream-throttle@npm:0.1.3" + dependencies: + commander: "npm:^2.2.0" + limiter: "npm:^1.0.5" + bin: + throttleproxy: ./bin/throttleproxy.js + checksum: 34c418038b66f651b59250eae30afe2939b65a924d7493d43e249fef278069988706b61a3babc1da8af74061fef995aa88b2925949b46ceb7f737a71b2b9dce0 + languageName: node + linkType: hard + "streamsearch@npm:^1.1.0": version: 1.1.0 resolution: "streamsearch@npm:1.1.0" @@ -26906,9 +27179,9 @@ __metadata: languageName: node linkType: hard -"svelte-check@npm:3.4.6": - version: 3.4.6 - resolution: "svelte-check@npm:3.4.6" +"svelte-check@npm:^3.6.1": + version: 3.6.2 + resolution: "svelte-check@npm:3.6.2" dependencies: "@jridgewell/trace-mapping": "npm:^0.3.17" chokidar: "npm:^3.4.1" @@ -26916,13 +27189,13 @@ __metadata: import-fresh: "npm:^3.2.1" picocolors: "npm:^1.0.0" sade: "npm:^1.7.4" - svelte-preprocess: "npm:^5.0.4" + svelte-preprocess: "npm:^5.1.0" typescript: "npm:^5.0.3" peerDependencies: - svelte: ^3.55.0 || ^4.0.0-next.0 || ^4.0.0 + svelte: ^3.55.0 || ^4.0.0-next.0 || ^4.0.0 || ^5.0.0-next.0 bin: svelte-check: bin/svelte-check - checksum: 7f537831af8f2c47859ca72f4a929d24c58f2946f949f7c9721351be97ff9d0674c57db003e3ad3883fdd85761b7950c5c11513c2a917c91091f155e2d026350 + checksum: 3f389df29268d4df9b561d0b206566e827af84923c70150b2dadfd407bcbdaccbfd561bd8b93884597de62477d62826ff1a5108854641078b692130441a49a55 languageName: node linkType: hard @@ -26964,7 +27237,7 @@ __metadata: languageName: node linkType: hard -"svelte-preprocess@npm:^5.0.4": +"svelte-preprocess@npm:^5.1.0, svelte-preprocess@npm:^5.1.1": version: 5.1.1 resolution: "svelte-preprocess@npm:5.1.1" dependencies: @@ -27011,8 +27284,8 @@ __metadata: linkType: hard "svelte@npm:^4.0.0": - version: 4.2.7 - resolution: "svelte@npm:4.2.7" + version: 4.2.8 + resolution: "svelte@npm:4.2.8" dependencies: "@ampproject/remapping": "npm:^2.2.1" "@jridgewell/sourcemap-codec": "npm:^1.4.15" @@ -27027,7 +27300,27 @@ __metadata: locate-character: "npm:^3.0.0" magic-string: "npm:^0.30.4" periscopic: "npm:^3.1.0" - checksum: 7b03510364eea130c070b15066f66c82db29504c15e6e9678b709117ac47508c173709e75df418506cde3ac5e72571956df365168add41f97b13ae714039cdae + checksum: 13673a6211cc38224398f4bda8e0ba93edfb1338aa4f28f614a31ac31b152479038761cfc57f1668554f5ab70effcd8023dcf549d75e7b2a7ae703d213b7e9da + languageName: node + linkType: hard + +"svelte@npm:^5.0.0-next.15, svelte@npm:^5.0.0-next.16": + version: 5.0.0-next.19 + resolution: "svelte@npm:5.0.0-next.19" + dependencies: + "@ampproject/remapping": "npm:^2.2.1" + "@jridgewell/sourcemap-codec": "npm:^1.4.15" + acorn: "npm:^8.10.0" + acorn-typescript: "npm:^1.4.11" + aria-query: "npm:^5.3.0" + axobject-query: "npm:^4.0.0" + esm-env: "npm:^1.0.0" + esrap: "npm:^1.2.1" + is-reference: "npm:^3.0.1" + locate-character: "npm:^3.0.0" + magic-string: "npm:^0.30.4" + zimmerframe: "npm:^1.1.0" + checksum: 2efc415d3a51cd9094349aa0295e728ea74e10bad17dedd167b1fae64de8ee5d46cbd27b5cfb152e4af641e1326e233dfeb918d8fa0541f65cf149b85d00419a languageName: node linkType: hard @@ -27234,21 +27527,7 @@ __metadata: languageName: node linkType: hard -"terser@npm:5.19.2": - version: 5.19.2 - resolution: "terser@npm:5.19.2" - dependencies: - "@jridgewell/source-map": "npm:^0.3.3" - acorn: "npm:^8.8.2" - commander: "npm:^2.20.0" - source-map-support: "npm:~0.5.20" - bin: - terser: bin/terser - checksum: 95817b86619af33d8d143d7ae02dfcd9ac2cf4ea5b5cb7b208aaccff4cdc5594893960a4c3dcdac09863ebd43e2835ab173997041790aa77092c1d31ff40c95a - languageName: node - linkType: hard - -"terser@npm:^5.10.0, terser@npm:^5.16.8": +"terser@npm:5.24.0, terser@npm:^5.10.0, terser@npm:^5.16.8": version: 5.24.0 resolution: "terser@npm:5.24.0" dependencies: @@ -27297,7 +27576,7 @@ __metadata: languageName: node linkType: hard -"through@npm:^2.3.4, through@npm:^2.3.6": +"through@npm:^2.3.4": version: 2.3.8 resolution: "through@npm:2.3.8" checksum: 4b09f3774099de0d4df26d95c5821a62faee32c7e96fb1f4ebd54a2d7c11c57fe88b0a0d49cf375de5fee5ae6bf4eb56dbbf29d07366864e2ee805349970d3cc @@ -27460,7 +27739,7 @@ __metadata: languageName: node linkType: hard -"tough-cookie@npm:^4.0.0, tough-cookie@npm:^4.1.2": +"tough-cookie@npm:^4.1.2": version: 4.1.3 resolution: "tough-cookie@npm:4.1.3" dependencies: @@ -27472,15 +27751,6 @@ __metadata: languageName: node linkType: hard -"tr46@npm:^2.1.0": - version: 2.1.0 - resolution: "tr46@npm:2.1.0" - dependencies: - punycode: "npm:^2.1.1" - checksum: 397f5c39d97c5fe29fa9bab73b03853be18ad2738b2c66ee5ce84ecb36b091bdaec493f9b3cee711d45f7678f342452600843264cc8242b591c8dc983146a6c4 - languageName: node - linkType: hard - "tr46@npm:^3.0.0": version: 3.0.0 resolution: "tr46@npm:3.0.0" @@ -27720,10 +27990,10 @@ __metadata: languageName: node linkType: hard -"tslib@npm:2.6.1": - version: 2.6.1 - resolution: "tslib@npm:2.6.1" - checksum: a0382d386f5f1d6e3a39ab22bc56d1e08493da99ab3daf550e63bae6c08fdd6dd4fd20623ef387cad8262ce3fede98439257054fc025f2103cd4603b4509a052 +"tslib@npm:2.6.2, tslib@npm:^2.0.0, tslib@npm:^2.0.1, tslib@npm:^2.0.3, tslib@npm:^2.1.0, tslib@npm:^2.3.0, tslib@npm:^2.4.0": + version: 2.6.2 + resolution: "tslib@npm:2.6.2" + checksum: e03a8a4271152c8b26604ed45535954c0a45296e32445b4b87f8a5abdb2421f40b59b4ca437c4346af0f28179780d604094eb64546bee2019d903d01c6c19bdb languageName: node linkType: hard @@ -27734,13 +28004,6 @@ __metadata: languageName: node linkType: hard -"tslib@npm:^2.0.0, tslib@npm:^2.0.1, tslib@npm:^2.0.3, tslib@npm:^2.1.0, tslib@npm:^2.3.0, tslib@npm:^2.4.0": - version: 2.6.2 - resolution: "tslib@npm:2.6.2" - checksum: e03a8a4271152c8b26604ed45535954c0a45296e32445b4b87f8a5abdb2421f40b59b4ca437c4346af0f28179780d604094eb64546bee2019d903d01c6c19bdb - languageName: node - linkType: hard - "tsutils@npm:^3.21.0": version: 3.21.0 resolution: "tsutils@npm:3.21.0" @@ -27759,14 +28022,14 @@ __metadata: languageName: node linkType: hard -"tuf-js@npm:^1.1.7": - version: 1.1.7 - resolution: "tuf-js@npm:1.1.7" +"tuf-js@npm:^2.1.0": + version: 2.1.0 + resolution: "tuf-js@npm:2.1.0" dependencies: - "@tufjs/models": "npm:1.0.4" + "@tufjs/models": "npm:2.0.0" debug: "npm:^4.3.4" - make-fetch-happen: "npm:^11.1.1" - checksum: 7c4980ada7a55f2670b895e8d9345ef2eec4a471c47f6127543964a12a8b9b69f16002990e01a138cd775aa954880b461186a6eaf7b86633d090425b4273375b + make-fetch-happen: "npm:^13.0.0" + checksum: aba49761e5f06776632c1d7855488dc9f6fb030c483ce011cd5ffb168e2145c634bf3161e762cd7f90e5b5d009e6ac57b5e62dd11bdb9f20a072a98aae96709d languageName: node linkType: hard @@ -27920,6 +28183,13 @@ __metadata: languageName: node linkType: hard +"ua-parser-js@npm:^1.0.33": + version: 1.0.37 + resolution: "ua-parser-js@npm:1.0.37" + checksum: dac8cf82a55b2e097bd2286954e01454c4cfcf23c9d9b56961ce94bda3cec5a38ca536e6e84c20a4000a9d4b4a4abcbd98ec634ccebe21be36595ea3069126e4 + languageName: node + linkType: hard + "uglify-js@npm:^3.1.4": version: 3.17.4 resolution: "uglify-js@npm:3.17.4" @@ -27958,6 +28228,15 @@ __metadata: languageName: node linkType: hard +"undici@npm:5.27.2": + version: 5.27.2 + resolution: "undici@npm:5.27.2" + dependencies: + "@fastify/busboy": "npm:^2.0.0" + checksum: 0cb62c57edc938f242c116e41fb2a74f81ed20e7e2e554cf1ceae548520df0592385b53d444f8cf59e1e10e6b27acd153198d8a2353b3040d0a778a099aac92c + languageName: node + linkType: hard + "unicode-canonical-property-names-ecmascript@npm:^2.0.0": version: 2.0.0 resolution: "unicode-canonical-property-names-ecmascript@npm:2.0.0" @@ -28612,7 +28891,7 @@ __metadata: languageName: node linkType: hard -"vary@npm:~1.1.2": +"vary@npm:^1, vary@npm:~1.1.2": version: 1.1.2 resolution: "vary@npm:1.1.2" checksum: f15d588d79f3675135ba783c91a4083dcd290a2a5be9fcb6514220a1634e23df116847b1cc51f66bfb0644cf9353b2abb7815ae499bab06e46dd33c1a6bf1f4f @@ -28705,47 +28984,7 @@ __metadata: languageName: node linkType: hard -"vite@npm:4.4.7": - version: 4.4.7 - resolution: "vite@npm:4.4.7" - dependencies: - esbuild: "npm:^0.18.10" - fsevents: "npm:~2.3.2" - postcss: "npm:^8.4.26" - rollup: "npm:^3.25.2" - peerDependencies: - "@types/node": ">= 14" - less: "*" - lightningcss: ^1.21.0 - sass: "*" - stylus: "*" - sugarss: "*" - terser: ^5.4.0 - dependenciesMeta: - fsevents: - optional: true - peerDependenciesMeta: - "@types/node": - optional: true - less: - optional: true - lightningcss: - optional: true - sass: - optional: true - stylus: - optional: true - sugarss: - optional: true - terser: - optional: true - bin: - vite: bin/vite.js - checksum: f0cd995ffd6d0311af98fa28a5ed8502c29d3aa4b3a12c812030e688f327ec17a95db0994e569bfddd6cfa602608b6892fc18d2944cbc1150d75c1ab3299bc5c - languageName: node - linkType: hard - -"vite@npm:^4.0.0, vite@npm:^4.0.4": +"vite@npm:4.5.0, vite@npm:^4.0.0, vite@npm:^4.0.4": version: 4.5.0 resolution: "vite@npm:4.5.0" dependencies: @@ -28853,9 +29092,9 @@ __metadata: linkType: hard "vue-component-type-helpers@npm:latest": - version: 1.8.22 - resolution: "vue-component-type-helpers@npm:1.8.22" - checksum: 31b34ecdc4de3c69fb73802530380db1676497bda4e0ecb37ab098ebfbcad05bebd15b713520033866c0c1ddb6c56ff79d727b0a6777947dfcc434aaca3b11e2 + version: 1.8.24 + resolution: "vue-component-type-helpers@npm:1.8.24" + checksum: 6ab61470ec36254b49d611108fb6e1ea217a1981e241d74f8a7c5724bb2b03c39e38995aaae498478e83626cfc15377cc030da183412e5a3bbf35d164762bf2b languageName: node linkType: hard @@ -28975,24 +29214,17 @@ __metadata: linkType: hard "vue-tsc@npm:latest": - version: 1.8.22 - resolution: "vue-tsc@npm:1.8.22" + version: 1.8.24 + resolution: "vue-tsc@npm:1.8.24" dependencies: - "@volar/typescript": "npm:~1.10.5" - "@vue/language-core": "npm:1.8.22" + "@volar/typescript": "npm:~1.11.1" + "@vue/language-core": "npm:1.8.24" semver: "npm:^7.5.4" peerDependencies: typescript: "*" bin: vue-tsc: bin/vue-tsc.js - checksum: c58ebd9d9c1b10152b94b58ade850c34de75e241491c679f136b4c5a00d87ecc38460178d6721f7a39f86b43fc8abea4c94b6f8514191447eeb2a3a4c2d036a4 - languageName: node - linkType: hard - -"vue@npm:2.6.14": - version: 2.6.14 - resolution: "vue@npm:2.6.14" - checksum: efbe26ccc7c1bd025b88e464ebc81217b92350a77b98049122a46ac2242e249719f930d3914e2efdeaaa521a51e6e6b1cb9ffbf95b4835ed94dc92efb481040f + checksum: 09707b06ae05a3d15127b33b04d0ea4adb7d0b64e1f344d2ae413c010adf2be2efae3411bfc64e9f18924461fe6dd79d7ffe3cf97c5f8a24e5fe290bd7531102 languageName: node linkType: hard @@ -29007,7 +29239,7 @@ __metadata: languageName: node linkType: hard -"vue@npm:^2.6.12, vue@npm:^2.7.10": +"vue@npm:^2.6.12": version: 2.7.15 resolution: "vue@npm:2.7.15" dependencies: @@ -29035,24 +29267,6 @@ __metadata: languageName: node linkType: hard -"w3c-hr-time@npm:^1.0.2": - version: 1.0.2 - resolution: "w3c-hr-time@npm:1.0.2" - dependencies: - browser-process-hrtime: "npm:^1.0.0" - checksum: 7795b61fb51ce222414891eef8e6cb13240b62f64351b4474f99c84de2bc37d37dd0efa193f37391e9737097b881a111d1e003e3d7a9583693f8d5a858b02627 - languageName: node - linkType: hard - -"w3c-xmlserializer@npm:^2.0.0": - version: 2.0.0 - resolution: "w3c-xmlserializer@npm:2.0.0" - dependencies: - xml-name-validator: "npm:^3.0.0" - checksum: 92b8af34766f5bb8f37c505bc459ee1791b30af778d3a86551f7dd3b1716f79cb98c71d65d03f2bf6eba6b09861868eaf2be7e233b9202b26a9df7595f2bd290 - languageName: node - linkType: hard - "w3c-xmlserializer@npm:^4.0.0": version: 4.0.0 resolution: "w3c-xmlserializer@npm:4.0.0" @@ -29185,20 +29399,6 @@ __metadata: languageName: node linkType: hard -"webidl-conversions@npm:^5.0.0": - version: 5.0.0 - resolution: "webidl-conversions@npm:5.0.0" - checksum: bf31df332ed11e1114bfcae7712d9ab2c37e7faa60ba32d8fdbee785937c0b012eee235c19d2b5d84f5072db84a160e8d08dd382da7f850feec26a4f46add8ff - languageName: node - linkType: hard - -"webidl-conversions@npm:^6.1.0": - version: 6.1.0 - resolution: "webidl-conversions@npm:6.1.0" - checksum: 66ad3b9073cd1e0e173444d8c636673b016e25b5856694429072cc966229adb734a8d410188e031effadcfb837936d79bc9e87c48f4d5925a90d42dec97f6590 - languageName: node - linkType: hard - "webidl-conversions@npm:^7.0.0": version: 7.0.0 resolution: "webidl-conversions@npm:7.0.0" @@ -29297,13 +29497,14 @@ __metadata: languageName: node linkType: hard -"webpack-merge@npm:5.9.0": - version: 5.9.0 - resolution: "webpack-merge@npm:5.9.0" +"webpack-merge@npm:5.10.0": + version: 5.10.0 + resolution: "webpack-merge@npm:5.10.0" dependencies: clone-deep: "npm:^4.0.1" + flat: "npm:^5.0.2" wildcard: "npm:^2.0.0" - checksum: 74935a4b03612ee65c0867ca1050788ccfec3efa6d17bb5acceacbd4fbbd0356a073997723eff7380deccd88f13a55c52cb004e80e34f3a67808ac455da6ad64 + checksum: b607c84cabaf74689f965420051a55a08722d897bdd6c29cb0b2263b451c090f962d41ecf8c9bf56b0ab3de56e65476ace0a8ecda4f4a4663684243d90e0512b languageName: node linkType: hard @@ -29353,7 +29554,7 @@ __metadata: languageName: node linkType: hard -"webpack@npm:5, webpack@npm:^5, webpack@npm:^5.65.0": +"webpack@npm:5, webpack@npm:5.89.0, webpack@npm:^5, webpack@npm:^5.65.0": version: 5.89.0 resolution: "webpack@npm:5.89.0" dependencies: @@ -29390,43 +29591,6 @@ __metadata: languageName: node linkType: hard -"webpack@npm:5.88.2": - version: 5.88.2 - resolution: "webpack@npm:5.88.2" - dependencies: - "@types/eslint-scope": "npm:^3.7.3" - "@types/estree": "npm:^1.0.0" - "@webassemblyjs/ast": "npm:^1.11.5" - "@webassemblyjs/wasm-edit": "npm:^1.11.5" - "@webassemblyjs/wasm-parser": "npm:^1.11.5" - acorn: "npm:^8.7.1" - acorn-import-assertions: "npm:^1.9.0" - browserslist: "npm:^4.14.5" - chrome-trace-event: "npm:^1.0.2" - enhanced-resolve: "npm:^5.15.0" - es-module-lexer: "npm:^1.2.1" - eslint-scope: "npm:5.1.1" - events: "npm:^3.2.0" - glob-to-regexp: "npm:^0.4.1" - graceful-fs: "npm:^4.2.9" - json-parse-even-better-errors: "npm:^2.3.1" - loader-runner: "npm:^4.2.0" - mime-types: "npm:^2.1.27" - neo-async: "npm:^2.6.2" - schema-utils: "npm:^3.2.0" - tapable: "npm:^2.1.1" - terser-webpack-plugin: "npm:^5.3.7" - watchpack: "npm:^2.4.0" - webpack-sources: "npm:^3.2.3" - peerDependenciesMeta: - webpack-cli: - optional: true - bin: - webpack: bin/webpack.js - checksum: 743acf04cdb7f73ec059761d3921798014139005c88e136ab99fe158f544695eee2caf4be775cc06e7f481d84725d443df2c1c8e00ec24a130e8b8fd514ff7b9 - languageName: node - linkType: hard - "websocket-driver@npm:>=0.5.1, websocket-driver@npm:^0.7.4": version: 0.7.4 resolution: "websocket-driver@npm:0.7.4" @@ -29445,15 +29609,6 @@ __metadata: languageName: node linkType: hard -"whatwg-encoding@npm:^1.0.5": - version: 1.0.5 - resolution: "whatwg-encoding@npm:1.0.5" - dependencies: - iconv-lite: "npm:0.4.24" - checksum: 79d9f276234fd06bb27de4c1f9137a0471bfa578efaec0474ab46b6d64bf30bb14492e6f88eff0e6794bdd6fa48b44f4d7a2e9c41424a837a63bba9626e35c62 - languageName: node - linkType: hard - "whatwg-encoding@npm:^2.0.0": version: 2.0.0 resolution: "whatwg-encoding@npm:2.0.0" @@ -29463,13 +29618,6 @@ __metadata: languageName: node linkType: hard -"whatwg-mimetype@npm:^2.3.0": - version: 2.3.0 - resolution: "whatwg-mimetype@npm:2.3.0" - checksum: 81c5eaf660b1d1c27575406bcfdf58557b599e302211e13e3c8209020bbac903e73c17f9990f887232b39ce570cc8638331b0c3ff0842ba224a5c2925e830b06 - languageName: node - linkType: hard - "whatwg-mimetype@npm:^3.0.0": version: 3.0.0 resolution: "whatwg-mimetype@npm:3.0.0" @@ -29497,17 +29645,6 @@ __metadata: languageName: node linkType: hard -"whatwg-url@npm:^8.0.0, whatwg-url@npm:^8.5.0": - version: 8.7.0 - resolution: "whatwg-url@npm:8.7.0" - dependencies: - lodash: "npm:^4.7.0" - tr46: "npm:^2.1.0" - webidl-conversions: "npm:^6.1.0" - checksum: de0bc94387dba586b278e701cf5a1c1f5002725d22b8564dbca2cab1966ef24b839018e57ae2423fb514d8a2dd3aa3bf97323e2f89b55cd89e79141e432e9df1 - languageName: node - linkType: hard - "which-boxed-primitive@npm:^1.0.2": version: 1.0.2 resolution: "which-boxed-primitive@npm:1.0.2" @@ -29602,17 +29739,6 @@ __metadata: languageName: node linkType: hard -"which@npm:^3.0.0": - version: 3.0.1 - resolution: "which@npm:3.0.1" - dependencies: - isexe: "npm:^2.0.0" - bin: - node-which: bin/which.js - checksum: 15263b06161a7c377328fd2066cb1f093f5e8a8f429618b63212b5b8847489be7bcab0ab3eb07f3ecc0eda99a5a7ea52105cf5fa8266bedd083cc5a9f6da24f1 - languageName: node - linkType: hard - "which@npm:^4.0.0": version: 4.0.0 resolution: "which@npm:4.0.0" @@ -29777,33 +29903,33 @@ __metadata: languageName: node linkType: hard -"ws@npm:^7.4.6": - version: 7.5.9 - resolution: "ws@npm:7.5.9" +"ws@npm:^8.11.0, ws@npm:^8.13.0, ws@npm:^8.2.3": + version: 8.14.2 + resolution: "ws@npm:8.14.2" peerDependencies: bufferutil: ^4.0.1 - utf-8-validate: ^5.0.2 + utf-8-validate: ">=5.0.2" peerDependenciesMeta: bufferutil: optional: true utf-8-validate: optional: true - checksum: aec4ef4eb65821a7dde7b44790f8699cfafb7978c9b080f6d7a98a7f8fc0ce674c027073a78574c94786ba7112cc90fa2cc94fc224ceba4d4b1030cff9662494 + checksum: 35b4c2da048b8015c797fd14bcb5a5766216ce65c8a5965616a5440ca7b6c3681ee3cbd0ea0c184a59975556e9d58f2002abf8485a14d11d3371770811050a16 languageName: node linkType: hard -"ws@npm:^8.11.0, ws@npm:^8.13.0, ws@npm:^8.2.3": - version: 8.14.2 - resolution: "ws@npm:8.14.2" +"ws@npm:~8.11.0": + version: 8.11.0 + resolution: "ws@npm:8.11.0" peerDependencies: bufferutil: ^4.0.1 - utf-8-validate: ">=5.0.2" + utf-8-validate: ^5.0.2 peerDependenciesMeta: bufferutil: optional: true utf-8-validate: optional: true - checksum: 35b4c2da048b8015c797fd14bcb5a5766216ce65c8a5965616a5440ca7b6c3681ee3cbd0ea0c184a59975556e9d58f2002abf8485a14d11d3371770811050a16 + checksum: b672b312f357afba8568b9dbb9e08b9e8a20845659b35fa6b340dc848efe371379f5e22bb1dc89c4b2940d5e2dc52dd1de85dde41776875fce115a448f94754f languageName: node linkType: hard @@ -29833,13 +29959,6 @@ __metadata: languageName: node linkType: hard -"xml-name-validator@npm:^3.0.0": - version: 3.0.0 - resolution: "xml-name-validator@npm:3.0.0" - checksum: da310f6a7a52f8eb0fce3d04ffa1f97387ca68f47e8620ae3a259909c4e832f7003313b918e53840a6bf57fb38d5ae3c5f79f31f911b2818a7439f7898f8fbf1 - languageName: node - linkType: hard - "xml-name-validator@npm:^4.0.0": version: 4.0.0 resolution: "xml-name-validator@npm:4.0.0" @@ -29861,6 +29980,13 @@ __metadata: languageName: node linkType: hard +"xmlhttprequest-ssl@npm:~2.0.0": + version: 2.0.0 + resolution: "xmlhttprequest-ssl@npm:2.0.0" + checksum: b64ab371459bd5e3a4827e3c7535759047d285fd310aea6fd028973d547133f3be0d473c1fdae9f14d89bf509267759198ae1fbe89802079a7e217ddd990d734 + languageName: node + linkType: hard + "xtend@npm:^4.0.0, xtend@npm:^4.0.2, xtend@npm:~4.0.1": version: 4.0.2 resolution: "xtend@npm:4.0.2" @@ -29969,6 +30095,21 @@ __metadata: languageName: node linkType: hard +"yargs@npm:17.1.1": + version: 17.1.1 + resolution: "yargs@npm:17.1.1" + dependencies: + cliui: "npm:^7.0.2" + escalade: "npm:^3.1.1" + get-caller-file: "npm:^2.0.5" + require-directory: "npm:^2.1.1" + string-width: "npm:^4.2.0" + y18n: "npm:^5.0.5" + yargs-parser: "npm:^20.2.2" + checksum: 2042e57047af784bb900cbc715f32fee2bfeab7c4b30dd4b83bf4d57f7f228ada084ba367a588f311803e0db65c9e9b97962c02e7daf88ba08f08864f4f615a2 + languageName: node + linkType: hard + "yargs@npm:17.7.2, yargs@npm:^17.2.1, yargs@npm:^17.3.1, yargs@npm:^17.6.2": version: 17.7.2 resolution: "yargs@npm:17.7.2" @@ -30057,6 +30198,13 @@ __metadata: languageName: node linkType: hard +"zimmerframe@npm:^1.1.0": + version: 1.1.0 + resolution: "zimmerframe@npm:1.1.0" + checksum: dffe3f555bb000176ed9c7577e0fb0c3eddeceb6df9bb3ff870995bac3a51b40fab5443bd3dc47ce91c1f8ecf07282742efb80771ae6a088edc0340bb217f93d + languageName: node + linkType: hard + "zod@npm:^3.22.2": version: 3.22.4 resolution: "zod@npm:3.22.4" @@ -30064,12 +30212,12 @@ __metadata: languageName: node linkType: hard -"zone.js@npm:^0.13.0": - version: 0.13.3 - resolution: "zone.js@npm:0.13.3" +"zone.js@npm:^0.14.2": + version: 0.14.2 + resolution: "zone.js@npm:0.14.2" dependencies: tslib: "npm:^2.3.0" - checksum: c2bfa9470c54742b319e81b617a95ddd72bbd4ee03dd5d4d68ae04f153490123fd38c96d2c40d70cf88722e8214b012842836a62cefb23f8f6282d3f7cc1d2b8 + checksum: b3d6ea9e46fd0ffec27fd3e9c67cecb197ee31b83906e324884f446fe7dc36c384392312045b6db162053bdb082bce253836c49a47333fed244e4b73117fc323 languageName: node linkType: hard diff --git a/docs/addons/addons-api.md b/docs/addons/addons-api.md index e73907d61c87..41daafbe8009 100644 --- a/docs/addons/addons-api.md +++ b/docs/addons/addons-api.md @@ -93,7 +93,7 @@ Use the `makeDecorator` API to create decorators in the style of the official ad - If the story's parameters include `{ exampleParameter: { disable: true } }` (where `exampleParameter` is the `parameterName` of your addon), your decorator will not be called. +If the story's parameters include `{ exampleParameter: { disable: true } }` (where `exampleParameter` is the `parameterName` of your addon), your decorator will not be called. @@ -124,6 +124,7 @@ The `selectStory` API method allows you to select a single story. It accepts the 'vue/button-story-with-addon-example.ts.mdx', 'angular/button-story-with-addon-example.ts.mdx', 'svelte/button-story-with-addon-example.js.mdx', + 'svelte/button-story-with-addon-example.ts.mdx', 'web-components/button-story-with-addon-example.js.mdx', 'web-components/button-story-with-addon-example.ts.mdx', ]} diff --git a/docs/api/csf.md b/docs/api/csf.md index 9e494e151a7a..d5ed3eb7ec40 100644 --- a/docs/api/csf.md +++ b/docs/api/csf.md @@ -51,6 +51,7 @@ With CSF, every named export in the file represents a story object by default. 'vue/my-component-story-basic-and-props.js.mdx', 'vue/my-component-story-basic-and-props.ts.mdx', 'svelte/my-component-story-basic-and-props.js.mdx', + 'svelte/my-component-story-basic-and-props.ts.mdx', 'angular/my-component-story-basic-and-props.ts.mdx', 'web-components/my-component-story-basic-and-props.js.mdx', 'web-components/my-component-story-basic-and-props.ts.mdx', @@ -112,6 +113,7 @@ Consider Storybook’s ["Button" example](../writing-stories/index.md#defining-s 'vue/button-story-click-handler.3.js.mdx', 'vue/button-story-click-handler.3.ts.mdx', 'svelte/button-story-click-handler.js.mdx', + 'svelte/button-story-click-handler.ts.mdx', 'angular/button-story-click-handler.ts.mdx', 'web-components/button-story-click-handler.js.mdx', 'web-components/button-story-click-handler.ts.mdx', @@ -138,6 +140,7 @@ Now consider the same example, re-written with args: 'vue/button-story-click-handler-args.3.ts.mdx', 'angular/button-story-click-handler-args.ts.mdx', 'svelte/button-story-click-handler-args.js.mdx', + 'svelte/button-story-click-handler-args.ts.mdx', 'web-components/button-story-click-handler-args.js.mdx', 'web-components/button-story-click-handler-args.ts.mdx', 'solid/button-story-click-handler-args.js.mdx', @@ -162,6 +165,8 @@ Or even more simply: 'vue/button-story-click-handler-simplificated.ts.mdx', 'web-components/button-story-click-handler-simplificated.js.mdx', 'web-components/button-story-click-handler-simplificated.ts.mdx', + 'svelte/button-story-click-handler-simplificated.js.mdx', + 'svelte/button-story-click-handler-simplificated.ts.mdx', 'solid/button-story-click-handler-simplificated.js.mdx', 'solid/button-story-click-handler-simplificated.ts.mdx', ]} @@ -193,6 +198,7 @@ A good use case for the `play` function is a form component. With previous Story 'web-components/login-form-with-play-function.js.mdx', 'web-components/login-form-with-play-function.ts.mdx', 'svelte/login-form-with-play-function.js.mdx', + 'svelte/login-form-with-play-function.ts.mdx', 'solid/login-form-with-play-function.js.mdx', 'solid/login-form-with-play-function.ts.mdx', ]} @@ -204,6 +210,8 @@ A good use case for the `play` function is a form component. With previous Story When the story renders in the UI, Storybook executes each step defined in the `play` function and runs the assertions without the need for user interaction. + + ## Custom render functions Starting in Storybook 6.4, you can write your stories as JavaScript objects, reducing the boilerplate code you need to generate to test your components, thus improving functionality and usability. `Render` functions are helpful methods to give you additional control over how the story renders. For example, if you were writing a story as an object and you wanted to specify how your component should render, you could write the following: @@ -230,6 +238,8 @@ Starting in Storybook 6.4, you can write your stories as JavaScript objects, red When Storybook loads this story, it will detect the existence of a `render` function and adjust the component rendering accordingly based on what's defined. + + ## Storybook export vs. name handling Storybook handles named exports and the `name` option slightly differently. When should you use one vs. the other? @@ -271,10 +281,11 @@ Consider the following story file: 'react/my-component-story-with-nonstory.ts.mdx', 'vue/my-component-story-with-nonstory.js.mdx', 'vue/my-component-story-with-nonstory.ts.mdx', - 'svelte/my-component-story-with-nonstory.js.mdx', 'angular/my-component-story-with-nonstory.ts.mdx', 'web-components/my-component-story-with-nonstory.js.mdx', 'web-components/my-component-story-with-nonstory.ts.mdx', + 'svelte/my-component-story-with-nonstory.js.mdx', + 'svelte/my-component-story-with-nonstory.ts.mdx', 'solid/my-component-story-with-nonstory.js.mdx', 'solid/my-component-story-with-nonstory.ts.mdx', ]} @@ -316,6 +327,8 @@ In CSF 2, the named exports are always functions that instantiate a component, a 'web-components/csf-2-example-starter.ts.mdx', 'solid/csf-2-example-starter.js.mdx', 'solid/csf-2-example-starter.ts.mdx', + 'svelte/csf-2-example-starter.js.mdx', + 'svelte/csf-2-example-starter.ts.mdx', ]} /> @@ -336,6 +349,7 @@ Here's the CSF 3 equivalent: 'web-components/csf-3-example-starter.js.mdx', 'web-components/csf-3-example-starter.ts.mdx', 'solid/csf-3-example-starter.ts.mdx', + 'svelte/csf-3-example-starter.ts.mdx', ]} /> @@ -399,6 +413,8 @@ Let's start with a simple CSF 2 story function: 'web-components/csf-2-example-story.ts.mdx', 'solid/csf-2-example-story.js.mdx', 'solid/csf-2-example-story.ts.mdx', + 'svelte/csf-2-example-story.js.mdx', + 'svelte/csf-2-example-story.ts.mdx', ]} /> @@ -421,11 +437,17 @@ Now, let's rewrite it as a story object in CSF 3 with an explicit `render` funct 'web-components/csf-3-example-render.ts.mdx', 'solid/csf-3-example-render.js.mdx', 'solid/csf-3-example-render.ts.mdx', + 'svelte/csf-3-example-render.js.mdx', + 'svelte/csf-3-example-render.ts.mdx', ]} /> + + Learn more about [render functions](#custom-render-functions). + + But in CSF 2, a lot of story functions are identical: take the component specified in the default export and spread args into it. What's interesting about these stories is not the function, but the args passed into the function. @@ -442,8 +464,12 @@ CSF 3 provides default render functions for each renderer. If all you're doing i + + For more information, see the section on [custom render functions](#custom-render-functions). + + ### Generate titles automatically Finally, CSF 3 can automatically generate titles. diff --git a/docs/configure/images-and-assets.md b/docs/configure/images-and-assets.md index 8325aed14f6e..7b4a0c071ada 100644 --- a/docs/configure/images-and-assets.md +++ b/docs/configure/images-and-assets.md @@ -22,6 +22,7 @@ Afterward, you can use any asset in your stories: 'vue/component-story-static-asset-with-import.3.ts.mdx', 'angular/component-story-static-asset-with-import.ts.mdx', 'svelte/component-story-static-asset-with-import.js.mdx', + 'svelte/component-story-static-asset-with-import.ts.mdx', 'web-components/component-story-static-asset-with-import.js.mdx', 'web-components/component-story-static-asset-with-import.ts.mdx', 'solid/component-story-static-asset-with-import.js.mdx', @@ -62,6 +63,7 @@ Here `../public` is your static directory. Now use it in a component or story li 'vue/component-story-static-asset-without-import.ts.mdx', 'angular/component-story-static-asset-without-import.ts.mdx', 'svelte/component-story-static-asset-without-import.js.mdx', + 'svelte/component-story-static-asset-without-import.ts.mdx', 'web-components/component-story-static-asset-without-import.js.mdx', 'web-components/component-story-static-asset-without-import.ts.mdx', 'solid/component-story-static-asset-without-import.js.mdx', @@ -117,6 +119,7 @@ Upload your files to an online CDN and reference them. In this example, we’re 'vue/component-story-static-asset-cdn.ts.mdx', 'angular/component-story-static-asset-cdn.ts.mdx', 'svelte/component-story-static-asset-cdn.js.mdx', + 'svelte/component-story-static-asset-cdn.ts.mdx', 'web-components/component-story-static-asset-cdn.js.mdx', 'web-components/component-story-static-asset-cdn.ts.mdx', 'solid/component-story-static-asset-cdn.js.mdx', diff --git a/docs/essentials/controls.md b/docs/essentials/controls.md index 2fb67af32861..efff7222f5bd 100644 --- a/docs/essentials/controls.md +++ b/docs/essentials/controls.md @@ -121,6 +121,10 @@ If you haven't used the CLI to setup the configuration, or if you want to define + + + + ## Fully custom args Until now, we only used auto-generated controls based on the component we're writing stories for. If we are writing [complex stories](../writing-stories/stories-for-multiple-components.md), we may want to add controls for args that aren’t part of the component. For example, here's how you could use a `footer` arg to populate a child component: @@ -155,6 +159,8 @@ By default, Storybook will add controls for all args that: Using `argTypes`, you can change the display and behavior of each control. + + ### Dealing with complex values When dealing with non-primitive values, you'll notice that you'll run into some limitations. The most obvious issue is that not every value can be represented as part of the `args` param in the URL, losing the ability to share and deeplink to such a state. Beyond that, complex values such as JSX cannot be synchronized between the manager (e.g., Controls addon) and the preview (your story). @@ -171,6 +177,7 @@ One way to deal with this is to use primitive values (e.g., strings) as arg valu 'vue/component-story-custom-args-complex.ts.mdx', 'angular/component-story-custom-args-complex.ts.mdx', 'svelte/component-story-custom-args-complex.js.mdx', + 'svelte/component-story-custom-args-complex.ts.mdx', 'web-components/component-story-custom-args-complex.js.mdx', 'web-components/component-story-custom-args-complex.ts.mdx', 'solid/component-story-custom-args-complex.js.mdx', diff --git a/docs/essentials/toolbars-and-globals.md b/docs/essentials/toolbars-and-globals.md index ff169ff91aa8..7acb99956520 100644 --- a/docs/essentials/toolbars-and-globals.md +++ b/docs/essentials/toolbars-and-globals.md @@ -170,6 +170,7 @@ Using the example above, you can modify any story to retrieve the **Locale** `gl 'vue/my-component-story-use-globaltype.ts.mdx', 'angular/my-component-story-use-globaltype.ts.mdx', 'svelte/my-component-story-use-globaltype.js.mdx', + 'svelte/my-component-story-use-globaltype.ts.mdx', 'web-components/my-component-story-use-globaltype.js.mdx', 'web-components/my-component-story-use-globaltype.ts.mdx', 'solid/my-component-story-use-globaltype.js.mdx', @@ -193,6 +194,7 @@ In Storybook 6.0, if you set the global option `passArgsFirst: false` for backwa 'vue/my-component-story-use-globaltype-backwards-compat.js.mdx', 'angular/my-component-story-use-globaltype-backwards-compat.ts.mdx', 'svelte/my-component-story-use-globaltype-backwards-compat.js.mdx', + 'svelte/my-component-story-use-globaltype-backwards-compat.ts.mdx', 'web-components/my-component-story-use-globaltype-backwards-compat.js.mdx', 'web-components/my-component-story-use-globaltype-backwards-compat.ts.mdx', 'solid/my-component-story-use-globaltype-backwards-compat.js.mdx', diff --git a/docs/essentials/viewport.md b/docs/essentials/viewport.md index dd321d9f30ec..90bcae73da0c 100644 --- a/docs/essentials/viewport.md +++ b/docs/essentials/viewport.md @@ -132,6 +132,7 @@ Update your story through [parameters](../writing-stories/parameters.md) to incl 'web-components/my-component-story-configure-viewports.js.mdx', 'web-components/my-component-story-configure-viewports.ts.mdx', 'svelte/my-component-story-configure-viewports.js.mdx', + 'svelte/my-component-story-configure-viewports.ts.mdx', 'solid/my-component-story-configure-viewports.js.mdx', 'solid/my-component-story-configure-viewports.ts.mdx', ]} diff --git a/docs/sharing/design-integrations.md b/docs/sharing/design-integrations.md index d85530557e9c..ddd320a21ec1 100644 --- a/docs/sharing/design-integrations.md +++ b/docs/sharing/design-integrations.md @@ -110,6 +110,7 @@ In Storybook, add a new [parameter](../writing-stories/parameters.md) named `des 'vue/component-story-figma-integration.ts.mdx', 'angular/component-story-figma-integration.ts.mdx', 'svelte/component-story-figma-integration.js.mdx', + 'svelte/component-story-figma-integration.ts.mdx', 'web-components/component-story-figma-integration.js.mdx', 'web-components/component-story-figma-integration.ts.mdx', 'solid/component-story-figma-integration.js.mdx', diff --git a/docs/snippets/common/main-config-webpack-final.js.mdx b/docs/snippets/common/main-config-webpack-final.js.mdx index 65d346eb38db..4c583dca901f 100644 --- a/docs/snippets/common/main-config-webpack-final.js.mdx +++ b/docs/snippets/common/main-config-webpack-final.js.mdx @@ -5,7 +5,7 @@ export default { // Replace your-framework with the framework you are using (e.g., react-webpack5, vue3-vite) framework: '@storybook/your-framework', stories: ['../src/**/*.mdx', '../src/**/*.stories.@(js|jsx|mjs|ts|tsx)'], - async webpackFinal(config, { configType }) { + webpackFinal: async (config, { configType }) => { if (configType === 'DEVELOPMENT') { // Modify config for development } diff --git a/docs/snippets/common/main-config-webpack-final.ts.mdx b/docs/snippets/common/main-config-webpack-final.ts.mdx index c3d1e9aa2185..35d69858d07c 100644 --- a/docs/snippets/common/main-config-webpack-final.ts.mdx +++ b/docs/snippets/common/main-config-webpack-final.ts.mdx @@ -7,7 +7,7 @@ import type { StorybookConfig } from '@storybook/your-framework'; const config: StorybookConfig = { framework: '@storybook/your-framework', stories: ['../src/**/*.mdx', '../src/**/*.stories.@(js|jsx|mjs|ts|tsx)'], - async webpackFinal(config, { configType }) { + webpackFinal: async (config, { configType }) => { if (configType === 'DEVELOPMENT') { // Modify config for development } diff --git a/docs/snippets/common/storybook-addon-a11y-component-config.ts-4-9.mdx b/docs/snippets/common/storybook-addon-a11y-component-config.ts-4-9.mdx index dfd6f9b27b40..052bff290c02 100644 --- a/docs/snippets/common/storybook-addon-a11y-component-config.ts-4-9.mdx +++ b/docs/snippets/common/storybook-addon-a11y-component-config.ts-4-9.mdx @@ -4,8 +4,6 @@ // Replace your-framework with the name of your framework import type { Meta } from '@storybook/your-framework'; -import { userEvent, within } from '@storybook/test'; - import { MyComponent } from './MyComponent'; const meta = { diff --git a/docs/snippets/common/your-theme.js.mdx b/docs/snippets/common/your-theme.js.mdx index 54ce8c5d37fd..1e596e518813 100644 --- a/docs/snippets/common/your-theme.js.mdx +++ b/docs/snippets/common/your-theme.js.mdx @@ -32,6 +32,7 @@ export default create({ // Toolbar default and active colors barTextColor: '#9E9E9E', barSelectedColor: '#585C6D', + barHoverColor: '#585C6D', barBg: '#ffffff', // Form colors diff --git a/docs/snippets/svelte/apollo-wrapper-component.with-mock-implementation.js.mdx b/docs/snippets/svelte/apollo-wrapper-component.with-mock-implementation.js.mdx index 2793daec07b6..d43181fd25da 100644 --- a/docs/snippets/svelte/apollo-wrapper-component.with-mock-implementation.js.mdx +++ b/docs/snippets/svelte/apollo-wrapper-component.with-mock-implementation.js.mdx @@ -23,7 +23,5 @@ setClient(mockedClient); -
- -
+ ``` diff --git a/docs/snippets/svelte/apollo-wrapper-component.with-mock-implementation.ts.mdx b/docs/snippets/svelte/apollo-wrapper-component.with-mock-implementation.ts.mdx new file mode 100644 index 000000000000..3e2c29cb660b --- /dev/null +++ b/docs/snippets/svelte/apollo-wrapper-component.with-mock-implementation.ts.mdx @@ -0,0 +1,27 @@ +```html + + + + + +``` diff --git a/docs/snippets/svelte/badge-story.mdx.mdx b/docs/snippets/svelte/badge-story.mdx.mdx deleted file mode 100644 index f30d432b4d38..000000000000 --- a/docs/snippets/svelte/badge-story.mdx.mdx +++ /dev/null @@ -1,76 +0,0 @@ -```md - - -import { Canvas, Meta, Story } from '@storybook/addon-docs'; - -import Badge from './Badge.svelte'; - - - -# Badge - -Let's define a story for our `Badge` component: - - ({ - Component: Badge, - props: args, - })} /> - -We can drop it in a `Canvas` to get a code snippet: - - - ({ - Component: Badge, - props: args, - })} /> - - -We can even preview multiple Stories in a block. This -gets rendered as a group but defines individual stories -with unique URLs, which is great for review and testing. - - - ({ - Component: Badge, - props: args, - })} /> - ({ - Component: Badge, - props: args, - })} /> - ({ - Component: Badge, - props: args, - })} /> - -``` diff --git a/docs/snippets/svelte/button-group-story.js.mdx b/docs/snippets/svelte/button-group-story.js.mdx index b40b40322ee9..9304e1bfda12 100644 --- a/docs/snippets/svelte/button-group-story.js.mdx +++ b/docs/snippets/svelte/button-group-story.js.mdx @@ -10,16 +10,7 @@ export default { component: ButtonGroup, }; -/* - *πŸ‘‡ Render functions are a framework specific feature to allow you control on how the component renders. - * See https://storybook.js.org/docs/api/csf - * to learn how to use render functions. - */ export const Pair = { - render: (args) => ({ - Component: ButtonGroup, - props: args, - }), args: { buttons: [{ ...ButtonStories.Primary.args }, { ...ButtonStories.Secondary.args }], orientation: 'horizontal', diff --git a/docs/snippets/svelte/button-group-story.ts-4-9.mdx b/docs/snippets/svelte/button-group-story.ts-4-9.mdx new file mode 100644 index 000000000000..aab891afac53 --- /dev/null +++ b/docs/snippets/svelte/button-group-story.ts-4-9.mdx @@ -0,0 +1,24 @@ +```ts +// ButtonGroup.stories.ts + +import type { Meta, StoryObj } from '@storybook/svelte'; + +import ButtonGroup from './ButtonGroup.svelte'; + +//πŸ‘‡ Imports the Button stories +import * as ButtonStories from './Button.stories'; + +const meta = { + component: ButtonGroup, +} satisfies Meta; + +export default meta; +type Story = StoryObj; + +export const Pair: Story = { + args: { + buttons: [{ ...ButtonStories.Primary.args }, { ...ButtonStories.Secondary.args }], + orientation: 'horizontal', + }, +}; +``` diff --git a/docs/snippets/svelte/button-group-story.ts.mdx b/docs/snippets/svelte/button-group-story.ts.mdx new file mode 100644 index 000000000000..d0d9a8989620 --- /dev/null +++ b/docs/snippets/svelte/button-group-story.ts.mdx @@ -0,0 +1,24 @@ +```ts +// ButtonGroup.stories.ts + +import type { Meta, StoryObj } from '@storybook/svelte'; + +import ButtonGroup from './ButtonGroup.svelte'; + +//πŸ‘‡ Imports the Button stories +import * as ButtonStories from './Button.stories'; + +const meta: Meta = { + component: ButtonGroup, +}; + +export default meta; +type Story = StoryObj; + +export const Pair: Story = { + args: { + buttons: [{ ...ButtonStories.Primary.args }, { ...ButtonStories.Secondary.args }], + orientation: 'horizontal', + }, +}; +``` diff --git a/docs/snippets/svelte/button-story-auto-docs.js.mdx b/docs/snippets/svelte/button-story-auto-docs.js.mdx index 013999d572dd..b4bed93087ce 100644 --- a/docs/snippets/svelte/button-story-auto-docs.js.mdx +++ b/docs/snippets/svelte/button-story-auto-docs.js.mdx @@ -13,10 +13,6 @@ export default { }; export const Primary = { - render: (args) => ({ - Component: Button, - props: args, - }), args: { primary: true, label: 'Button', @@ -24,10 +20,6 @@ export const Primary = { }; export const Secondary = { - render: (args) => ({ - Component: Button, - props: args, - }), args: { ...Primary.args, primary: false, diff --git a/docs/snippets/svelte/button-story-auto-docs.ts-4-9.mdx b/docs/snippets/svelte/button-story-auto-docs.ts-4-9.mdx new file mode 100644 index 000000000000..a15d00516058 --- /dev/null +++ b/docs/snippets/svelte/button-story-auto-docs.ts-4-9.mdx @@ -0,0 +1,33 @@ +```ts +// Button.stories.ts + +import type { Meta, StoryObj } from '@storybook/svelte'; + +import Button from './Button.svelte'; + +const meta = { + component: Button, + //πŸ‘‡ Enables auto-generated documentation for the component story + tags: ['autodocs'], + argTypes: { + backgroundColor: { control: 'color' }, + }, +} satisfies Meta; + +export default meta; +type Story = StoryObj; + +export const Primary: Story = { + args: { + primary: true, + label: 'Button', + }, +}; + +export const Secondary: Story = { + args: { + ...Primary.args, + primary: false, + }, +}; +``` diff --git a/docs/snippets/svelte/button-story-auto-docs.ts.mdx b/docs/snippets/svelte/button-story-auto-docs.ts.mdx new file mode 100644 index 000000000000..26248d745aff --- /dev/null +++ b/docs/snippets/svelte/button-story-auto-docs.ts.mdx @@ -0,0 +1,33 @@ +```ts +// Button.stories.ts + +import type { Meta, StoryObj } from '@storybook/svelte'; + +import Button from './Button.svelte'; + +const meta: Meta = { + component: Button, + //πŸ‘‡ Enables auto-generated documentation for the component story + tags: ['autodocs'], + argTypes: { + backgroundColor: { control: 'color' }, + }, +}; + +export default meta; +type Story = StoryObj; + +export const Primary: Story = { + args: { + primary: true, + label: 'Button', + }, +}; + +export const Secondary: Story = { + args: { + ...Primary.args, + primary: false, + }, +}; +``` diff --git a/docs/snippets/svelte/button-story-click-handler-args.ts-4-9.mdx b/docs/snippets/svelte/button-story-click-handler-args.ts-4-9.mdx new file mode 100644 index 000000000000..ff23875fed16 --- /dev/null +++ b/docs/snippets/svelte/button-story-click-handler-args.ts-4-9.mdx @@ -0,0 +1,31 @@ +```ts +// Button.stories.ts + +import type { Meta, StoryObj } from '@storybook/svelte'; +import { action } from '@storybook/addon-actions'; + +import Button from './Button.svelte'; + +const meta = { + component: Button, +} satisfies Meta; + +export default meta; +type Story = StoryObj; + +export const Primary: Story = { + render: ({ label, click }) => ({ + Component: Button, + props: { + label, + }, + on: { + click, + }, + }), + args: { + label: 'Hello', + click: action('clicked'), + }, +}; +``` diff --git a/docs/snippets/svelte/button-story-click-handler-args.ts.mdx b/docs/snippets/svelte/button-story-click-handler-args.ts.mdx new file mode 100644 index 000000000000..0601a77f56e7 --- /dev/null +++ b/docs/snippets/svelte/button-story-click-handler-args.ts.mdx @@ -0,0 +1,31 @@ +```ts +// Button.stories.ts + +import type { Meta, StoryObj } from '@storybook/svelte'; +import { action } from '@storybook/addon-actions'; + +import Button from './Button.svelte'; + +const meta: Meta = { + component: Button, +}; + +export default meta; +type Story = StoryObj; + +export const Text: Story = { + render: ({ label, click }) => ({ + Component: Button, + props: { + label, + }, + on: { + click, + }, + }), + args: { + label: 'Hello', + click: action('clicked'), + }, +}; +``` diff --git a/docs/snippets/svelte/button-story-click-handler-simplificated.js.mdx b/docs/snippets/svelte/button-story-click-handler-simplificated.js.mdx new file mode 100644 index 000000000000..8f6a170584d3 --- /dev/null +++ b/docs/snippets/svelte/button-story-click-handler-simplificated.js.mdx @@ -0,0 +1,13 @@ +```js +// Button.stories.js + +import Button from './Button.svelte'; + +export default { + component: Button, +}; + +export const Text = { + args: {...}, +}; +``` diff --git a/docs/snippets/svelte/button-story-click-handler-simplificated.ts-4-9.mdx b/docs/snippets/svelte/button-story-click-handler-simplificated.ts-4-9.mdx new file mode 100644 index 000000000000..13eeb3c3b7c6 --- /dev/null +++ b/docs/snippets/svelte/button-story-click-handler-simplificated.ts-4-9.mdx @@ -0,0 +1,18 @@ +```ts +// Button.stories.ts + +import type { Meta, StoryObj } from '@storybook/svelte'; + +import Button from './Button.svelte'; + +const meta = { + component: Button, +} satisfies Meta; + +export default meta; +type Story = StoryObj; + +export const Text: Story = { + args: {...}, +}; +``` diff --git a/docs/snippets/svelte/button-story-click-handler-simplificated.ts.mdx b/docs/snippets/svelte/button-story-click-handler-simplificated.ts.mdx new file mode 100644 index 000000000000..860f8e586456 --- /dev/null +++ b/docs/snippets/svelte/button-story-click-handler-simplificated.ts.mdx @@ -0,0 +1,18 @@ +```ts +// Button.stories.ts + +import type { Meta, StoryObj } from '@storybook/svelte'; + +import Button from './Button.svelte'; + +const meta: Meta = { + component: Button, +}; + +export default meta; +type Story = StoryObj; + +export const Text: Story = { + args: {...}, +}; +``` diff --git a/docs/snippets/svelte/button-story-click-handler.js.mdx b/docs/snippets/svelte/button-story-click-handler.js.mdx index ff58c6e44a2c..06f272af6ca6 100644 --- a/docs/snippets/svelte/button-story-click-handler.js.mdx +++ b/docs/snippets/svelte/button-story-click-handler.js.mdx @@ -1,10 +1,10 @@ ```js // Button.stories.js -import Button from './Button.svelte'; - import { action } from '@storybook/addon-actions'; +import Button from './Button.svelte'; + export default { component: Button, }; diff --git a/docs/snippets/svelte/button-story-click-handler.ts-4-9.mdx b/docs/snippets/svelte/button-story-click-handler.ts-4-9.mdx new file mode 100644 index 000000000000..16db58d0a779 --- /dev/null +++ b/docs/snippets/svelte/button-story-click-handler.ts-4-9.mdx @@ -0,0 +1,26 @@ +```ts +// Button.stories.ts + +import type { Meta, StoryObj } from '@storybook/svelte'; +import { action } from '@storybook/addon-actions'; + +import Button from './Button.svelte'; + +const meta = { + component: Button, +} satisfies Meta; + +export default meta; +type Story = StoryObj; + +export const Primary: Story = { + render: (args) => ({ + Component: Button, + props: args, + }), + args: { + primary: true, + label: 'Button', + }, +}; +``` diff --git a/docs/snippets/svelte/button-story-click-handler.ts.mdx b/docs/snippets/svelte/button-story-click-handler.ts.mdx new file mode 100644 index 000000000000..f5e8c397eba5 --- /dev/null +++ b/docs/snippets/svelte/button-story-click-handler.ts.mdx @@ -0,0 +1,27 @@ +```ts +// Button.stories.ts + +import type { Meta, StoryObj } from '@storybook/svelte'; +import { action } from '@storybook/addon-actions'; + +import Button from './Button.svelte'; + +const meta: Meta = { + component: Button, +}; + +export default meta; +type Story = StoryObj; + +export const Text: Story = { + render: () => ({ + Component: Button, + props: { + label: 'Hello', + }, + on: { + click: action('clicked'), + }, + }), +}; +``` diff --git a/docs/snippets/svelte/button-story-component-args-primary.mdx.mdx b/docs/snippets/svelte/button-story-component-args-primary.mdx.mdx deleted file mode 100644 index 8dcda41aff7a..000000000000 --- a/docs/snippets/svelte/button-story-component-args-primary.mdx.mdx +++ /dev/null @@ -1,22 +0,0 @@ -```md - - -import { Meta, Story } from '@storybook/addon-docs'; - -import Button from './Button.svelte'; - - - - - - -``` \ No newline at end of file diff --git a/docs/snippets/svelte/button-story-component-args-primary.ts-4-9.mdx b/docs/snippets/svelte/button-story-component-args-primary.ts-4-9.mdx new file mode 100644 index 000000000000..7c83e880ac7f --- /dev/null +++ b/docs/snippets/svelte/button-story-component-args-primary.ts-4-9.mdx @@ -0,0 +1,21 @@ +```ts +// Button.stories.ts + +import type { Meta } from '@storybook/svelte'; + +import Button from './Button.svelte'; + +const meta = { + component: Button, + //πŸ‘‡ Creates specific argTypes + argTypes: { + backgroundColor: { control: 'color' }, + }, + args: { + //πŸ‘‡ Now all Button stories will be primary. + primary: true, + }, +} satisfies Meta; + +export default meta; +``` diff --git a/docs/snippets/svelte/button-story-component-args-primary.ts.mdx b/docs/snippets/svelte/button-story-component-args-primary.ts.mdx new file mode 100644 index 000000000000..2b5e54a6ea2d --- /dev/null +++ b/docs/snippets/svelte/button-story-component-args-primary.ts.mdx @@ -0,0 +1,21 @@ +```ts +// Button.stories.ts + +import type { Meta } from '@storybook/svelte'; + +import Button from './Button.svelte'; + +const meta: Meta = { + component: Button, + //πŸ‘‡ Creates specific argTypes + argTypes: { + backgroundColor: { control: 'color' }, + }, + args: { + //πŸ‘‡ Now all Button stories will be primary. + primary: true, + }, +}; + +export default meta; +``` diff --git a/docs/snippets/svelte/button-story-component-decorator.js.mdx b/docs/snippets/svelte/button-story-component-decorator.js.mdx index 75984c49a1ea..d777e387143f 100644 --- a/docs/snippets/svelte/button-story-component-decorator.js.mdx +++ b/docs/snippets/svelte/button-story-component-decorator.js.mdx @@ -8,22 +8,4 @@ export default { component: Button, decorators: [() => MarginDecorator], }; - -// Your stories here. - -// Don't forget to use the component you're testing and not the MarginDecorator component -``` - -```html - - -
- -
- - ``` diff --git a/docs/snippets/svelte/button-story-component-decorator.mdx.mdx b/docs/snippets/svelte/button-story-component-decorator.mdx.mdx deleted file mode 100644 index 843ae3a43f4c..000000000000 --- a/docs/snippets/svelte/button-story-component-decorator.mdx.mdx +++ /dev/null @@ -1,12 +0,0 @@ -```md - - -import { Story, Meta } from '@storybook/addon-docs'; - -import Button from './Button.svelte'; -import MarginDecorator from './MarginDecorator.svelte'; - - MarginDecorator]}/> - - -``` \ No newline at end of file diff --git a/docs/snippets/svelte/button-story-component-decorator.ts-4-9.mdx b/docs/snippets/svelte/button-story-component-decorator.ts-4-9.mdx new file mode 100644 index 000000000000..badb749d2732 --- /dev/null +++ b/docs/snippets/svelte/button-story-component-decorator.ts-4-9.mdx @@ -0,0 +1,15 @@ +```ts +// Button.stories.ts + +import type { Meta } from '@storybook/svelte'; + +import Button from './Button.svelte'; +import MarginDecorator from './MarginDecorator.svelte'; + +const meta = { + component: Button, + decorators: [() => MarginDecorator], +}; + +export default meta; +``` diff --git a/docs/snippets/svelte/button-story-component-decorator.ts.mdx b/docs/snippets/svelte/button-story-component-decorator.ts.mdx new file mode 100644 index 000000000000..67c72b7cc899 --- /dev/null +++ b/docs/snippets/svelte/button-story-component-decorator.ts.mdx @@ -0,0 +1,15 @@ +```ts +// Button.stories.ts + +import type { Meta } from '@storybook/svelte'; + +import Button from './Button.svelte'; +import MarginDecorator from './MarginDecorator.svelte'; + +const meta: Meta = { + component: Button, + decorators: [() => MarginDecorator], +}; + +export default meta; +``` diff --git a/docs/snippets/svelte/button-story-decorator.js.mdx b/docs/snippets/svelte/button-story-decorator.js.mdx index 30413fa807b4..94378724bb4d 100644 --- a/docs/snippets/svelte/button-story-decorator.js.mdx +++ b/docs/snippets/svelte/button-story-decorator.js.mdx @@ -8,15 +8,7 @@ export default { component: Button, }; -/* - *πŸ‘‡ Render functions are a framework specific feature to allow you control on how the component renders. - * See https://storybook.js.org/docs/api/csf - * to learn how to use render functions. - */ export const Primary = { - render: () => ({ - component: Button, - }), decorators: [() => MarginDecorator], }; ``` diff --git a/docs/snippets/svelte/button-story-decorator.mdx.mdx b/docs/snippets/svelte/button-story-decorator.mdx.mdx deleted file mode 100644 index 5abb2d2bf697..000000000000 --- a/docs/snippets/svelte/button-story-decorator.mdx.mdx +++ /dev/null @@ -1,25 +0,0 @@ -```md - - -import { Meta, Story } from '@storybook/addon-docs'; - -import Button from './Button.svelte'; -import MarginDecorator from './MarginDecorator.svelte'; - - - - - - MarginDecorator]} - render={(args) => ({ - Component: Badge, - props: args, - })} /> -``` \ No newline at end of file diff --git a/docs/snippets/svelte/button-story-decorator.ts-4-9.mdx b/docs/snippets/svelte/button-story-decorator.ts-4-9.mdx new file mode 100644 index 000000000000..94567b8b9ec1 --- /dev/null +++ b/docs/snippets/svelte/button-story-decorator.ts-4-9.mdx @@ -0,0 +1,19 @@ +```ts +// Button.stories.ts + +import { Meta, StoryObj } from '@storybook/svelte'; + +import Button from './Button.svelte'; +import MarginDecorator from './MarginDecorator.svelte'; + +const meta = { + component: Button, +} satisfies Meta; + +export default meta; +type Story = StoryObj; + +export const Primary: Story = { + decorators: [() => MarginDecorator], +}; +``` diff --git a/docs/snippets/svelte/button-story-decorator.ts.mdx b/docs/snippets/svelte/button-story-decorator.ts.mdx new file mode 100644 index 000000000000..22ba3a40c092 --- /dev/null +++ b/docs/snippets/svelte/button-story-decorator.ts.mdx @@ -0,0 +1,19 @@ +```ts +// Button.stories.ts + +import { Meta, StoryObj } from '@storybook/svelte'; + +import Button from './Button.svelte'; +import MarginDecorator from './MarginDecorator.svelte'; + +const meta: Meta = { + component: Button, +}; + +export default meta; +type Story = StoryObj; + +export const Primary: Story = { + decorators: [() => MarginDecorator], +}; +``` diff --git a/docs/snippets/svelte/button-story-default-docs-code.mdx.mdx b/docs/snippets/svelte/button-story-default-docs-code.mdx.mdx deleted file mode 100644 index 410d3fc6b0c1..000000000000 --- a/docs/snippets/svelte/button-story-default-docs-code.mdx.mdx +++ /dev/null @@ -1,45 +0,0 @@ -```md - - -import { Meta, Story } from '@storybook/addon-docs'; - -import Button from './Button.svelte'; - - - - - -export const someFunction = (someValue) => { - return `i am a ${someValue}`; -}; - - - - - {(args) => { - const { label } = args; - const functionResult = someFunction(label); - return { - Component: Button, - props: { - ...args, - label: functionResult, - }, - }; - }} - -``` \ No newline at end of file diff --git a/docs/snippets/svelte/button-story-default-export-with-component.ts-4-9.mdx b/docs/snippets/svelte/button-story-default-export-with-component.ts-4-9.mdx new file mode 100644 index 000000000000..62d8e08df1b7 --- /dev/null +++ b/docs/snippets/svelte/button-story-default-export-with-component.ts-4-9.mdx @@ -0,0 +1,13 @@ +```ts +// Button.stories.ts + +import type { Meta } from '@storybook/svelte'; + +import Button from './Button.svelte'; + +const meta = { + component: Button, +} satisfies Meta; + +export default meta; +``` diff --git a/docs/snippets/svelte/button-story-default-export-with-component.ts.mdx b/docs/snippets/svelte/button-story-default-export-with-component.ts.mdx new file mode 100644 index 000000000000..d0bf35d7af69 --- /dev/null +++ b/docs/snippets/svelte/button-story-default-export-with-component.ts.mdx @@ -0,0 +1,13 @@ +```ts +// Button.stories.ts + +import type { Meta } from '@storybook/svelte'; + +import Button from './Button.svelte'; + +const meta: Meta = { + component: Button, +}; + +export default meta; +``` diff --git a/docs/snippets/svelte/button-story-rename-story.ts-4-9.mdx b/docs/snippets/svelte/button-story-rename-story.ts-4-9.mdx new file mode 100644 index 000000000000..2bb5d69c5565 --- /dev/null +++ b/docs/snippets/svelte/button-story-rename-story.ts-4-9.mdx @@ -0,0 +1,30 @@ +```ts +// Button.stories.ts + +import type { Meta, StoryObj } from '@storybook/svelte'; + +import Button from './Button.svelte'; + +const meta = { + component: Button, +} satisfies Meta; + +export default meta; +type Story = StoryObj; + +/* + *πŸ‘‡ Render functions are a framework specific feature to allow you control on how the component renders. + * See https://storybook.js.org/docs/svelte/api/csf + * to learn how to use render functions. + */ +export const Primary: Story = ({ + name: 'I am the primary', + render: () => ({ + Component: Button, + props: { + primary: true, + label: 'Button', + }, + }), +}; +``` diff --git a/docs/snippets/svelte/button-story-rename-story.ts.mdx b/docs/snippets/svelte/button-story-rename-story.ts.mdx new file mode 100644 index 000000000000..ad254c10b73d --- /dev/null +++ b/docs/snippets/svelte/button-story-rename-story.ts.mdx @@ -0,0 +1,30 @@ +```ts +// Button.stories.ts + +import type { Meta, StoryObj } from '@storybook/svelte'; + +import Button from './Button.svelte'; + +const meta: Meta = { + component: Button, +}; + +export default meta; +type Story = StoryObj; + +/* + *πŸ‘‡ Render functions are a framework specific feature to allow you control on how the component renders. + * See https://storybook.js.org/docs/svelte/api/csf + * to learn how to use render functions. + */ +export const Primary: Story = ({ + name: 'I am the primary', + render: () => ({ + Component: Button, + props: { + primary: true, + label: 'Button', + }, + }), +}; +``` diff --git a/docs/snippets/svelte/button-story-using-args.js.mdx b/docs/snippets/svelte/button-story-using-args.js.mdx index 64dd4cd5f58b..8be69a92c46f 100644 --- a/docs/snippets/svelte/button-story-using-args.js.mdx +++ b/docs/snippets/svelte/button-story-using-args.js.mdx @@ -7,16 +7,7 @@ export default { component: Button, }; -/* - *πŸ‘‡ Render functions are a framework specific feature to allow you control on how the component renders. - * See https://storybook.js.org/docs/api/csf - * to learn how to use render functions. - */ export const Primary = { - render: (args) => ({ - Component: Button, - props: args, - }), args: { backgroundColor: '#ff0', label: 'Button', @@ -24,10 +15,6 @@ export const Primary = { }; export const Secondary = { - render: (args) => ({ - Component: Button, - props: args, - }), args: { ...Primary.args, label: 'πŸ˜„πŸ‘πŸ˜πŸ’―', @@ -35,10 +22,6 @@ export const Secondary = { }; export const Tertiary = { - render: (args) => ({ - Component: Button, - props: args, - }), args: { ...Primary.args, label: 'πŸ“šπŸ“•πŸ“ˆπŸ€“', diff --git a/docs/snippets/svelte/button-story-using-args.ts-4-9.mdx b/docs/snippets/svelte/button-story-using-args.ts-4-9.mdx new file mode 100644 index 000000000000..e5d5dc11f72d --- /dev/null +++ b/docs/snippets/svelte/button-story-using-args.ts-4-9.mdx @@ -0,0 +1,36 @@ +```ts +// Button.stories.ts + +import type { Meta, StoryObj } from '@storybook/svelte'; + +import Button from './Button.svelte'; + +//πŸ‘‡This default export determines where your story goes in the story list +const meta = { + component: Button, +} satisfies Meta; + +export default meta; +type Story = StoryObj; + +export const Primary: Story = { + args: { + backgroundColor: '#ff0', + label: 'Button', + }, +}; + +export const Secondary: Story = { + args: { + ...Primary.args, + label: 'πŸ˜„πŸ‘πŸ˜πŸ’―', + }, +}; + +export const Tertiary: Story = { + args: { + ...Primary.args, + label: 'πŸ“šπŸ“•πŸ“ˆπŸ€“', + }, +}; +``` diff --git a/docs/snippets/svelte/button-story-using-args.ts.mdx b/docs/snippets/svelte/button-story-using-args.ts.mdx new file mode 100644 index 000000000000..edcd9995e364 --- /dev/null +++ b/docs/snippets/svelte/button-story-using-args.ts.mdx @@ -0,0 +1,36 @@ +```ts +// Button.stories.ts + +import type { Meta, StoryObj } from '@storybook/svelte'; + +import Button from './Button.svelte'; + +//πŸ‘‡This default export determines where your story goes in the story list +const meta: Meta = { + component: Button, +}; + +export default meta; +type Story = StoryObj; + +export const Primary: Story = { + args: { + backgroundColor: '#ff0', + label: 'Button', + }, +}; + +export const Secondary: Story = { + args: { + ...Primary.args, + label: 'πŸ˜„πŸ‘πŸ˜πŸ’―', + }, +}; + +export const Tertiary: Story = { + args: { + ...Primary.args, + label: 'πŸ“šπŸ“•πŸ“ˆπŸ€“', + }, +}; +``` diff --git a/docs/snippets/svelte/button-story-with-addon-example.js.mdx b/docs/snippets/svelte/button-story-with-addon-example.js.mdx index d96a3c9c2cba..e1fcca24d96d 100644 --- a/docs/snippets/svelte/button-story-with-addon-example.js.mdx +++ b/docs/snippets/svelte/button-story-with-addon-example.js.mdx @@ -9,6 +9,7 @@ export default { * to learn how to generate automatic titles */ title: 'Button', + component: Button, //πŸ‘‡ Creates specific parameters for the story parameters: { myAddon: { @@ -17,15 +18,5 @@ export default { }, }; -/* - *πŸ‘‡ Render functions are a framework specific feature to allow you control on how the component renders. - * See https://storybook.js.org/docs/api/csf - * to learn how to use render functions. - */ -export const Basic = { - render: (args) => ({ - Component: Button, - props: args, - }), -}; +export const Basic = {}; ``` diff --git a/docs/snippets/svelte/button-story-with-addon-example.ts-4-9.mdx b/docs/snippets/svelte/button-story-with-addon-example.ts-4-9.mdx new file mode 100644 index 000000000000..697c27744174 --- /dev/null +++ b/docs/snippets/svelte/button-story-with-addon-example.ts-4-9.mdx @@ -0,0 +1,27 @@ +```ts +// Button.stories.ts + +import type { Meta, StoryObj } from '@storybook/svelte'; + +import Button from './Button.svelte'; + +const meta = { + /* πŸ‘‡ The title prop is optional. + * See https://storybook.js.org/docs/configure/#configure-story-loading + * to learn how to generate automatic titles + */ + title: 'Button', + component: Button, + //πŸ‘‡ Creates specific parameters for the story + parameters: { + myAddon: { + data: 'this data is passed to the addon', + }, + }, +} satisfies Meta; + +export default meta; +type Story = StoryObj; + +export const Basic: Story = {}; +``` diff --git a/docs/snippets/svelte/button-story-with-addon-example.ts.mdx b/docs/snippets/svelte/button-story-with-addon-example.ts.mdx new file mode 100644 index 000000000000..53aa9fe085fd --- /dev/null +++ b/docs/snippets/svelte/button-story-with-addon-example.ts.mdx @@ -0,0 +1,27 @@ +```ts +// Button.stories.ts + +import type { Meta, StoryObj } from '@storybook/svelte'; + +import Button from './Button.svelte'; + +const meta: Meta = { + /* πŸ‘‡ The title prop is optional. + * See https://storybook.js.org/docs/configure/#configure-story-loading + * to learn how to generate automatic titles + */ + title: 'Button', + component: Button, + //πŸ‘‡ Creates specific parameters for the story + parameters: { + myAddon: { + data: 'this data is passed to the addon', + }, + }, +}; + +export default meta; +type Story = StoryObj; + +export const Basic: Story = {}; +``` diff --git a/docs/snippets/svelte/button-story-with-args.js.mdx b/docs/snippets/svelte/button-story-with-args.js.mdx index 652c4b59d0d0..58cf0732e6be 100644 --- a/docs/snippets/svelte/button-story-with-args.js.mdx +++ b/docs/snippets/svelte/button-story-with-args.js.mdx @@ -7,16 +7,7 @@ export default { component: Button, }; -/* - *πŸ‘‡ Render functions are a framework specific feature to allow you control on how the component renders. - * See https://storybook.js.org/docs/api/csf - * to learn how to use render functions. - */ export const Primary = { - render: (args) => ({ - Component: Button, - props: args, - }), args: { primary: true, label: 'Button', diff --git a/docs/snippets/svelte/button-story-with-args.mdx.mdx b/docs/snippets/svelte/button-story-with-args.mdx.mdx deleted file mode 100644 index 365def163b33..000000000000 --- a/docs/snippets/svelte/button-story-with-args.mdx.mdx +++ /dev/null @@ -1,26 +0,0 @@ -```md - - -import { Meta, Story } from '@storybook/addon-docs'; - -import Button from './Button.svelte'; - - - - - - ({ - Component: Button, - props: args, - })} /> -``` \ No newline at end of file diff --git a/docs/snippets/svelte/button-story-with-args.ts-4-9.mdx b/docs/snippets/svelte/button-story-with-args.ts-4-9.mdx index 045361662c3e..059ecc250092 100644 --- a/docs/snippets/svelte/button-story-with-args.ts-4-9.mdx +++ b/docs/snippets/svelte/button-story-with-args.ts-4-9.mdx @@ -12,16 +12,7 @@ const meta = { export default meta; type Story = StoryObj; -/* - *πŸ‘‡ Render functions are a framework specific feature to allow you control on how the component renders. - * See https://storybook.js.org/docs/api/csf - * to learn how to use render functions. - */ export const Primary: Story = { - render: (args) => ({ - Component: Button, - props: args, - }), args: { primary: true, label: 'Button', diff --git a/docs/snippets/svelte/button-story-with-args.ts.mdx b/docs/snippets/svelte/button-story-with-args.ts.mdx index ee49e33b2069..0c481911787c 100644 --- a/docs/snippets/svelte/button-story-with-args.ts.mdx +++ b/docs/snippets/svelte/button-story-with-args.ts.mdx @@ -12,16 +12,7 @@ const meta: Meta = { export default meta; type Story = StoryObj; -/* - *πŸ‘‡ Render functions are a framework specific feature to allow you control on how the component renders. - * See https://storybook.js.org/docs/api/csf - * to learn how to use render functions. - */ export const Primary: Story = { - render: (args) => ({ - Component: Button, - props: args, - }), args: { primary: true, label: 'Button', diff --git a/docs/snippets/svelte/button-story-with-blue-args.mdx.mdx b/docs/snippets/svelte/button-story-with-blue-args.mdx.mdx deleted file mode 100644 index c6d410ddc632..000000000000 --- a/docs/snippets/svelte/button-story-with-blue-args.mdx.mdx +++ /dev/null @@ -1,24 +0,0 @@ -```md - - -import { Meta } from '@storybook/addon-docs'; - -import Button from './Button.svelte'; - - - - - -``` \ No newline at end of file diff --git a/docs/snippets/svelte/button-story-with-blue-args.ts-4-9.mdx b/docs/snippets/svelte/button-story-with-blue-args.ts-4-9.mdx new file mode 100644 index 000000000000..c45a9dcd99ab --- /dev/null +++ b/docs/snippets/svelte/button-story-with-blue-args.ts-4-9.mdx @@ -0,0 +1,23 @@ +```ts +// Button.stories.ts + +import type { Meta } from '@storybook/svelte'; + +import Button from './Button.svelte'; + +const meta = { + component: Button, + //πŸ‘‡ Creates specific parameters for the story + parameters: { + backgrounds: { + values: [ + { name: 'red', value: '#f00' }, + { name: 'green', value: '#0f0' }, + { name: 'blue', value: '#00f' }, + ], + }, + }, +} satisfies Meta; + +export default meta; +``` diff --git a/docs/snippets/svelte/button-story-with-blue-args.ts.mdx b/docs/snippets/svelte/button-story-with-blue-args.ts.mdx new file mode 100644 index 000000000000..4e2960f81120 --- /dev/null +++ b/docs/snippets/svelte/button-story-with-blue-args.ts.mdx @@ -0,0 +1,23 @@ +```ts +// Button.stories.ts + +import type { Meta } from '@storybook/svelte'; + +import Button from './Button.svelte'; + +const meta: Meta = { + component: Button, + //πŸ‘‡ Creates specific parameters for the story + parameters: { + backgrounds: { + values: [ + { name: 'red', value: '#f00' }, + { name: 'green', value: '#0f0' }, + { name: 'blue', value: '#00f' }, + ], + }, + }, +}; + +export default meta; +``` diff --git a/docs/snippets/svelte/button-story-with-emojis.mdx.mdx b/docs/snippets/svelte/button-story-with-emojis.mdx.mdx deleted file mode 100644 index 00fa74f2c06f..000000000000 --- a/docs/snippets/svelte/button-story-with-emojis.mdx.mdx +++ /dev/null @@ -1,43 +0,0 @@ -```md - - -import { Meta, Story } from '@storybook/addon-docs'; - -import Button from './Button.svelte'; - - - - - - ({ - Component: Button, - props: { - backgroundColor: '#ff0', - label: 'Button', - } - })} /> - ({ - Component: Button, - props: { - background: '#ff0', - label: 'πŸ˜„πŸ‘πŸ˜πŸ’―', - }, - })} /> - ({ - Component: Button, - props: { - background: '#ff0', - label: 'πŸ“šπŸ“•πŸ“ˆπŸ€“', - }, - })} /> -``` \ No newline at end of file diff --git a/docs/snippets/svelte/button-story-with-emojis.ts-4-9.mdx b/docs/snippets/svelte/button-story-with-emojis.ts-4-9.mdx new file mode 100644 index 000000000000..61c72830fa8f --- /dev/null +++ b/docs/snippets/svelte/button-story-with-emojis.ts-4-9.mdx @@ -0,0 +1,49 @@ +```ts +// Button.stories.ts + +import type { Meta, StoryObj } from '@storybook/svelte'; + +import Button from './Button.svelte'; + +const meta = { + component: Button, +} satisfies Meta; + +export default meta; +type Story = StoryObj; + +/* + *πŸ‘‡ Render functions are a framework specific feature to allow you control on how the component renders. + * See https://storybook.js.org/docs/svelte/api/csf + * to learn how to use render functions. + */ +export const Primary: Story = { + render: () => ({ + Component: Button, + props: { + backgroundColor: '#ff0', + label: 'Button', + }, + }), +}; + +export const Secondary: Story = { + render: () => ({ + Component: Button, + props: { + backgroundColor: '#ff0', + label: 'πŸ˜„πŸ‘πŸ˜πŸ’―', + }, + }), +}; + +export const Tertiary: Story = { + render: () => ({ + Component: Button, + props: { + backgroundColor: '#ff0', + label: 'πŸ“šπŸ“•πŸ“ˆπŸ€“', + }, + }), +}; +``` diff --git a/docs/snippets/svelte/button-story-with-emojis.ts.mdx b/docs/snippets/svelte/button-story-with-emojis.ts.mdx new file mode 100644 index 000000000000..8bcc1bd7c66a --- /dev/null +++ b/docs/snippets/svelte/button-story-with-emojis.ts.mdx @@ -0,0 +1,49 @@ +```ts +// Button.stories.ts + +import type { Meta, StoryObj } from '@storybook/svelte'; + +import Button from './Button.svelte'; + +const meta: Meta = { + component: Button, +}; + +export default meta; +type Story = StoryObj; + +/* + *πŸ‘‡ Render functions are a framework specific feature to allow you control on how the component renders. + * See https://storybook.js.org/docs/svelte/api/csf + * to learn how to use render functions. + */ +export const Primary: Story = { + render: () => ({ + Component: Button, + props: { + backgroundColor: '#ff0', + label: 'Button', + }, + }), +}; + +export const Secondary: Story = { + render: () => ({ + Component: Button, + props: { + backgroundColor: '#ff0', + label: 'πŸ˜„πŸ‘πŸ˜πŸ’―', + }, + }), +}; + +export const Tertiary: Story = { + render: () => ({ + Component: Button, + props: { + backgroundColor: '#ff0', + label: 'πŸ“šπŸ“•πŸ“ˆπŸ€“', + }, + }), +}; +``` diff --git a/docs/snippets/svelte/button-story.mdx.mdx b/docs/snippets/svelte/button-story.mdx.mdx deleted file mode 100644 index 863161bf7248..000000000000 --- a/docs/snippets/svelte/button-story.mdx.mdx +++ /dev/null @@ -1,27 +0,0 @@ -```md - - -import { Meta, Story } from '@storybook/addon-docs'; - -import Button from './Button.svelte'; - - - -# Button - - - - ({ - Component:Button, - props: { - primary: true, - label: 'Button', - }, - })} /> -``` \ No newline at end of file diff --git a/docs/snippets/svelte/checkbox-story.mdx.mdx b/docs/snippets/svelte/checkbox-story.mdx.mdx deleted file mode 100644 index 7359621ab606..000000000000 --- a/docs/snippets/svelte/checkbox-story.mdx.mdx +++ /dev/null @@ -1,55 +0,0 @@ -```md - - -import { Canvas, Meta, Story } from '@storybook/addon-docs'; - -import Checkbox from './Checkbox.svelte'; - - - - - -# Checkbox - -With `MDX`, we can define a story for `Checkbox` right in the middle of our -Markdown documentation. - - - ({ - Component: Checkbox, - props: args - })} /> - - ({ - Component: Checkbox, - props: args - })} /> - - ({ - Component: Checkbox, - props: args - })} /> - -``` \ No newline at end of file diff --git a/docs/snippets/svelte/component-story-custom-args-complex.ts-4-9.mdx b/docs/snippets/svelte/component-story-custom-args-complex.ts-4-9.mdx new file mode 100644 index 000000000000..e32f516fb01b --- /dev/null +++ b/docs/snippets/svelte/component-story-custom-args-complex.ts-4-9.mdx @@ -0,0 +1,46 @@ +```ts +// YourComponent.stories.ts + +import type { Meta, StoryObj } from '@storybook/svelte'; + +import YourComponent from './YourComponent.svelte'; + +const meta = { + component: YourComponent, + //πŸ‘‡ Creates specific argTypes + argTypes: { + propertyA: { + options: ['Item One', 'Item Two', 'Item Three'], + control: { type: 'select' }, // Automatically inferred when 'options' is defined + }, + propertyB: { + options: ['Another Item One', 'Another Item Two', 'Another Item Three'], + }, + }, +} satisfies Meta; + +export default meta; +type Story = StoryObj; + +const someFunction = (valuePropertyA, valuePropertyB) => { + // Do some logic here +}; + +export const ExampleStory: Story = { + render: ({ propertyA, propertyB }) => { + //πŸ‘‡ Assigns the function result to a variable + const someFunctionResult = someFunction(propertyA, propertyB); + return { + Component: YourComponent, + props: { + ...args, + someProperty: someFunctionResult, + }, + }; + }, + args: { + propertyA: 'Item One', + propertyB: 'Another Item One', + }, +}; +``` diff --git a/docs/snippets/svelte/component-story-custom-args-complex.ts.mdx b/docs/snippets/svelte/component-story-custom-args-complex.ts.mdx new file mode 100644 index 000000000000..eb0a45d9a1db --- /dev/null +++ b/docs/snippets/svelte/component-story-custom-args-complex.ts.mdx @@ -0,0 +1,46 @@ +```ts +// YourComponent.stories.ts + +import type { Meta, StoryObj } from '@storybook/svelte'; + +import YourComponent from './YourComponent.svelte'; + +const meta: Meta = { + component: YourComponent, + //πŸ‘‡ Creates specific argTypes + argTypes: { + propertyA: { + options: ['Item One', 'Item Two', 'Item Three'], + control: { type: 'select' }, // Automatically inferred when 'options' is defined + }, + propertyB: { + options: ['Another Item One', 'Another Item Two', 'Another Item Three'], + }, + }, +}; + +export default meta; +type Story = StoryObj; + +const someFunction = (valuePropertyA, valuePropertyB) => { + // Do some logic here +}; + +export const ExampleStory: Story = { + render: ({ propertyA, propertyB }) => { + //πŸ‘‡ Assigns the function result to a variable + const someFunctionResult = someFunction(propertyA, propertyB); + return { + Component: YourComponent, + props: { + ...args, + someProperty: someFunctionResult, + }, + }; + }, + args: { + propertyA: 'Item One', + propertyB: 'Another Item One', + }, +}; +``` diff --git a/docs/snippets/svelte/component-story-figma-integration.js.mdx b/docs/snippets/svelte/component-story-figma-integration.js.mdx index f77576417513..f6781fe6fe61 100644 --- a/docs/snippets/svelte/component-story-figma-integration.js.mdx +++ b/docs/snippets/svelte/component-story-figma-integration.js.mdx @@ -5,14 +5,10 @@ import MyComponent from './MyComponent.svelte'; // More on default export: https://storybook.js.org/docs/writing-stories/#default-export export default { - component: { MyComponent }, + component: MyComponent, }; export const Example = { - render: () => ({ - Component: MyComponent, - props: {}, - }), parameters: { design: { type: 'figma', diff --git a/docs/snippets/svelte/component-story-figma-integration.mdx.mdx b/docs/snippets/svelte/component-story-figma-integration.mdx.mdx deleted file mode 100644 index f28ee0608e39..000000000000 --- a/docs/snippets/svelte/component-story-figma-integration.mdx.mdx +++ /dev/null @@ -1,33 +0,0 @@ -```md - - -import { Canvas, Meta, Story } from '@storybook/addon-docs'; - -import MyComponent from './MyComponent.svelte'; - - - - - - - ({ - Component: MyComponent, - props: {} - })} /> - -``` \ No newline at end of file diff --git a/docs/snippets/svelte/component-story-figma-integration.ts-4-9.mdx b/docs/snippets/svelte/component-story-figma-integration.ts-4-9.mdx new file mode 100644 index 000000000000..bf5c42c553f4 --- /dev/null +++ b/docs/snippets/svelte/component-story-figma-integration.ts-4-9.mdx @@ -0,0 +1,24 @@ +```ts +// MyComponent.stories.ts + +import type { Meta, StoryObj } from '@storybook/svelte'; + +import MyComponent from './MyComponent.svelte'; + +// More on default export: https://storybook.js.org/docs/svelte/writing-stories/introduction#default-export +const meta = { + component: MyComponent, +} satisfies Meta; + +export default meta; +type Story = StoryObj; + +export const Example: Story = { + parameters: { + design: { + type: 'figma', + url: 'https://www.figma.com/file/Sample-File', + }, + }, +}; +``` diff --git a/docs/snippets/svelte/component-story-figma-integration.ts.mdx b/docs/snippets/svelte/component-story-figma-integration.ts.mdx new file mode 100644 index 000000000000..799438a116eb --- /dev/null +++ b/docs/snippets/svelte/component-story-figma-integration.ts.mdx @@ -0,0 +1,24 @@ +```ts +// MyComponent.stories.ts + +import type { Meta, StoryObj } from '@storybook/svelte'; + +import MyComponent from './MyComponent.svelte'; + +// More on default export: https://storybook.js.org/docs/svelte/writing-stories/introduction#default-export +const meta: Meta = { + component: MyComponent, +}; + +export default meta; +type Story = StoryObj; + +export const Example: Story = { + parameters: { + design: { + type: 'figma', + url: 'https://www.figma.com/file/Sample-File', + }, + }, +}; +``` diff --git a/docs/snippets/svelte/component-story-mdx-story-by-name.mdx.mdx b/docs/snippets/svelte/component-story-mdx-story-by-name.mdx.mdx deleted file mode 100644 index 449383141f75..000000000000 --- a/docs/snippets/svelte/component-story-mdx-story-by-name.mdx.mdx +++ /dev/null @@ -1,23 +0,0 @@ -```md - - -import { Meta, Story } from '@storybook/addon-docs'; - -import Button from './Button.svelte'; - - - - - - ({ - Component: Button, - props: args, - })} /> -``` \ No newline at end of file diff --git a/docs/snippets/svelte/component-story-static-asset-cdn.mdx.mdx b/docs/snippets/svelte/component-story-static-asset-cdn.mdx.mdx deleted file mode 100644 index c2704b49bbd4..000000000000 --- a/docs/snippets/svelte/component-story-static-asset-cdn.mdx.mdx +++ /dev/null @@ -1,25 +0,0 @@ -```md - - -import { Meta, Story } from '@storybook/addon-docs'; - -import MyComponent from './MyComponent.svelte'; - - - - - - ({ - Component: MyComponent, - props: { - src: 'https://storybook.js.org/images/placeholders/350x150.png', - alt: 'my image', - }, - })} /> -``` \ No newline at end of file diff --git a/docs/snippets/svelte/component-story-static-asset-cdn.ts-4-9.mdx b/docs/snippets/svelte/component-story-static-asset-cdn.ts-4-9.mdx new file mode 100644 index 000000000000..542c6ccefb33 --- /dev/null +++ b/docs/snippets/svelte/component-story-static-asset-cdn.ts-4-9.mdx @@ -0,0 +1,24 @@ +```ts +// MyComponent.stories.ts + +import type { Meta, StoryObj } from '@storybook/svelte'; + +import MyComponent from './MyComponent.svelte'; + +const meta = { + component: MyComponent, +} satisfies Meta; + +export default meta; +type Story = StoryObj; + +export const WithAnImage: Story = { + render: () => ({ + Component: MyComponent, + props: { + src: 'https://storybook.js.org/images/placeholders/350x150.png', + alt: 'My CDN placeholder', + }, + }), +}; +``` diff --git a/docs/snippets/svelte/component-story-static-asset-cdn.ts.mdx b/docs/snippets/svelte/component-story-static-asset-cdn.ts.mdx new file mode 100644 index 000000000000..3b21d2eed894 --- /dev/null +++ b/docs/snippets/svelte/component-story-static-asset-cdn.ts.mdx @@ -0,0 +1,24 @@ +```ts +// MyComponent.stories.ts + +import type { Meta, StoryObj } from '@storybook/svelte'; + +import MyComponent from './MyComponent.svelte'; + +const meta: Meta = { + component: MyComponent, +}; + +export default meta; +type Story = StoryObj; + +export const WithAnImage: Story = { + render: () => ({ + Component: MyComponent, + props: { + src: 'https://storybook.js.org/images/placeholders/350x150.png', + alt: 'My CDN placeholder', + }, + }), +}; +``` diff --git a/docs/snippets/svelte/component-story-static-asset-with-import.mdx.mdx b/docs/snippets/svelte/component-story-static-asset-with-import.mdx.mdx deleted file mode 100644 index 0b688fa554de..000000000000 --- a/docs/snippets/svelte/component-story-static-asset-with-import.mdx.mdx +++ /dev/null @@ -1,29 +0,0 @@ -```md - - -import { Meta, Story } from '@storybook/addon-docs'; - -import MyComponent from './MyComponent.svelte'; - -import imageFile from './static/image.png'; - - - - - -export const image = { - src: imageFile, - alt: 'my image', -}; - - ({ - Component: MyComponent, - props: image - })} /> -``` \ No newline at end of file diff --git a/docs/snippets/svelte/component-story-static-asset-with-import.ts-4-9.mdx b/docs/snippets/svelte/component-story-static-asset-with-import.ts-4-9.mdx new file mode 100644 index 000000000000..bc8eb9d4688c --- /dev/null +++ b/docs/snippets/svelte/component-story-static-asset-with-import.ts-4-9.mdx @@ -0,0 +1,28 @@ +```ts +// MyComponent.stories.ts + +import type { Meta, StoryObj } from '@storybook/svelte'; + +import MyComponent from './MyComponent.svelte'; + +import imageFile from './static/image.png'; + +const meta = { + component: MyComponent, +} satisfies Meta; + +export default meta; +type Story = StoryObj; + +const image = { + src: imageFile, + alt: 'my image', +}; + +export const WithAnImage: Story = { + render: () => ({ + Component: MyComponent, + props: image, + }), +}; +``` diff --git a/docs/snippets/svelte/component-story-static-asset-with-import.ts.mdx b/docs/snippets/svelte/component-story-static-asset-with-import.ts.mdx new file mode 100644 index 000000000000..9014220f808c --- /dev/null +++ b/docs/snippets/svelte/component-story-static-asset-with-import.ts.mdx @@ -0,0 +1,28 @@ +```ts +// MyComponent.stories.ts + +import type { Meta, StoryObj } from '@storybook/svelte'; + +import MyComponent from './MyComponent.svelte'; + +import imageFile from './static/image.png'; + +const meta: Meta = { + component: MyComponent, +}; + +export default meta; +type Story = StoryObj; + +const image = { + src: imageFile, + alt: 'my image', +}; + +export const WithAnImage: Story = { + render: () => ({ + Component: MyComponent, + props: image, + }), +}; +``` diff --git a/docs/snippets/svelte/component-story-static-asset-without-import.mdx.mdx b/docs/snippets/svelte/component-story-static-asset-without-import.mdx.mdx deleted file mode 100644 index 5d7141fd087e..000000000000 --- a/docs/snippets/svelte/component-story-static-asset-without-import.mdx.mdx +++ /dev/null @@ -1,21 +0,0 @@ -```md - - -import { Meta, Story } from '@storybook/addon-docs'; - -import MyComponent from './MyComponent.svelte0; - - - - - - ({ - Component: MyComponent, - props: { - src: '/image.png', - alt: 'my image', - }, - })} /> -``` \ No newline at end of file diff --git a/docs/snippets/svelte/component-story-static-asset-without-import.ts-4-9.mdx b/docs/snippets/svelte/component-story-static-asset-without-import.ts-4-9.mdx new file mode 100644 index 000000000000..894af1a2f567 --- /dev/null +++ b/docs/snippets/svelte/component-story-static-asset-without-import.ts-4-9.mdx @@ -0,0 +1,25 @@ +```ts +// MyComponent.stories.ts + +import type { Meta, StoryObj } from '@storybook/svelte'; + +import MyComponent from './MyComponent.svelte'; + +const meta = { + component: MyComponent, +} satisfies Meta; + +export default meta; +type Story = StoryObj; + +// Assume image.png is located in the "public" directory. +export const WithAnImage: Story = { + render: () => ({ + Component: MyComponent, + props: { + src: '/image.png', + alt: 'my image', + }, + }), +}; +``` diff --git a/docs/snippets/svelte/component-story-static-asset-without-import.ts.mdx b/docs/snippets/svelte/component-story-static-asset-without-import.ts.mdx new file mode 100644 index 000000000000..cfc54fb20623 --- /dev/null +++ b/docs/snippets/svelte/component-story-static-asset-without-import.ts.mdx @@ -0,0 +1,25 @@ +```ts +// MyComponent.stories.ts + +import type { Meta, StoryObj } from '@storybook/svelte'; + +import MyComponent from './MyComponent.svelte'; + +const meta: Meta = { + component: MyComponent, +}; + +export default meta; +type Story = StoryObj; + +// Assume image.png is located in the "public" directory. +export const WithAnImage: Story = { + render: () => ({ + Component: MyComponent, + props: { + src: '/image.png', + alt: 'my image', + }, + }), +}; +``` diff --git a/docs/snippets/svelte/component-story-with-accessibility.mdx.mdx b/docs/snippets/svelte/component-story-with-accessibility.mdx.mdx deleted file mode 100644 index 173dc60e1691..000000000000 --- a/docs/snippets/svelte/component-story-with-accessibility.mdx.mdx +++ /dev/null @@ -1,51 +0,0 @@ -```md - - -import { Meta, Story } from '@storybook/addon-docs'; - -import Button from './Button.svelte'; - - - - - -## This is an accessible story - - ({ - Component: Button, - props: args, - })} /> - -## This is not - - ({ - Component: Button, - props: args, - })} /> -``` \ No newline at end of file diff --git a/docs/snippets/svelte/component-story-with-accessibility.ts-4-9.mdx b/docs/snippets/svelte/component-story-with-accessibility.ts-4-9.mdx new file mode 100644 index 000000000000..fd54dd1393c1 --- /dev/null +++ b/docs/snippets/svelte/component-story-with-accessibility.ts-4-9.mdx @@ -0,0 +1,33 @@ +```ts +// Button.stories.ts + +import type { Meta, StoryObj } from '@storybook/svelte'; + +import Button from './Button.svelte'; + +const meta = { + component: Button, + argTypes: { + backgroundColor: { control: 'color' }, + }, +} satisfies Meta; + +export default meta; +type Story = StoryObj; + +// This is an accessible story +export const Accessible: Story = { + args: { + primary: false, + label: 'Button', + }, +}; + +// This is not +export const Inaccessible: Story = { + args: { + ...Accessible.args, + backgroundColor: 'red', + }, +}; +``` diff --git a/docs/snippets/svelte/component-story-with-accessibility.ts.mdx b/docs/snippets/svelte/component-story-with-accessibility.ts.mdx new file mode 100644 index 000000000000..c66dc1afb6e3 --- /dev/null +++ b/docs/snippets/svelte/component-story-with-accessibility.ts.mdx @@ -0,0 +1,33 @@ +```ts +// Button.stories.ts + +import type { Meta, StoryObj } from '@storybook/svelte'; + +import Button from './Button.svelte'; + +const meta: Meta = { + component: Button, + argTypes: { + backgroundColor: { control: 'color' }, + }, +}; + +export default meta; +type Story = StoryObj; + +// This is an accessible story +export const Accessible: Story = { + args: { + primary: false, + label: 'Button', + }, +}; + +// This is not +export const Inaccessible: Story = { + args: { + ...Accessible.args, + backgroundColor: 'red', + }, +}; +``` diff --git a/docs/snippets/svelte/component-test-with-testing-library.js.mdx b/docs/snippets/svelte/component-test-with-testing-library.js.mdx index f7e1702c3451..cd3da15a6bfc 100644 --- a/docs/snippets/svelte/component-test-with-testing-library.js.mdx +++ b/docs/snippets/svelte/component-test-with-testing-library.js.mdx @@ -1,5 +1,5 @@ ```js -// Form.test.js +// Form.test.js|ts import { render, fireEvent } from '@testing-library/svelte'; diff --git a/docs/snippets/svelte/csf-2-example-starter.js.mdx b/docs/snippets/svelte/csf-2-example-starter.js.mdx new file mode 100644 index 000000000000..025761271718 --- /dev/null +++ b/docs/snippets/svelte/csf-2-example-starter.js.mdx @@ -0,0 +1,16 @@ +```js +// Button.stories.js + +import Button from './Button.svelte'; + +export default { + title: 'Button', + component: Button, +}; + +export const Primary = (args) => ({ + Component: Button, + props: args, +}); +Primary.args = { primary: true }; +``` diff --git a/docs/snippets/svelte/csf-2-example-starter.ts.mdx b/docs/snippets/svelte/csf-2-example-starter.ts.mdx new file mode 100644 index 000000000000..67f72c6419ce --- /dev/null +++ b/docs/snippets/svelte/csf-2-example-starter.ts.mdx @@ -0,0 +1,18 @@ +```ts +// Button.stories.ts + +import type { Meta, StoryFn } from '@storybook/svelte'; + +import Button from './Button.svelte'; + +export default { + title: 'Button', + component: Button, +} as Meta; + +export const Primary: StoryFn = (args) => ({ + Component: Button, + props: args, +}); +Primary.args = { primary: true }; +``` diff --git a/docs/snippets/svelte/csf-2-example-story.js.mdx b/docs/snippets/svelte/csf-2-example-story.js.mdx new file mode 100644 index 000000000000..31654612ae2b --- /dev/null +++ b/docs/snippets/svelte/csf-2-example-story.js.mdx @@ -0,0 +1,9 @@ +```js +// CSF 2 + +// Other imports and story implementation +export const Default = (args) => ({ + Component: Button, + props: args, +}); +``` diff --git a/docs/snippets/svelte/csf-2-example-story.ts.mdx b/docs/snippets/svelte/csf-2-example-story.ts.mdx new file mode 100644 index 000000000000..3d479ca132fc --- /dev/null +++ b/docs/snippets/svelte/csf-2-example-story.ts.mdx @@ -0,0 +1,9 @@ +```ts +// CSF 2 + +// Other imports and story implementation +export const Primary: StoryFn = (args) => ({ + Component: Button, + props: args, +}); +``` diff --git a/docs/snippets/svelte/csf-3-example-render.js.mdx b/docs/snippets/svelte/csf-3-example-render.js.mdx new file mode 100644 index 000000000000..bf3cd564a422 --- /dev/null +++ b/docs/snippets/svelte/csf-3-example-render.js.mdx @@ -0,0 +1,11 @@ +```js +// CSF 3 - explicit render function + +// Other imports and story implementation +export const Default = { + render: (args) => ({ + Component: Button, + props: args, + }); +}; +``` diff --git a/docs/snippets/svelte/csf-3-example-render.ts.mdx b/docs/snippets/svelte/csf-3-example-render.ts.mdx new file mode 100644 index 000000000000..ea8603bdcf9a --- /dev/null +++ b/docs/snippets/svelte/csf-3-example-render.ts.mdx @@ -0,0 +1,11 @@ +```ts +// CSF 3 - explicit render function + +// Other imports and story implementation +export const Default: Story = { + render: (args) => ({ + Component: Button, + props: args, + }), +}; +``` diff --git a/docs/snippets/svelte/csf-3-example-starter.ts.mdx b/docs/snippets/svelte/csf-3-example-starter.ts.mdx new file mode 100644 index 000000000000..70a4585e5192 --- /dev/null +++ b/docs/snippets/svelte/csf-3-example-starter.ts.mdx @@ -0,0 +1,14 @@ +```ts +// Button.stories.ts + +import type { Meta, StoryObj } from '@storybook/svelte'; + +import Button from './Button.svelte'; + +const meta: Meta = { component: Button }; +export default meta; + +type Story = StoryObj; + +export const Primary: Story = { args: { primary: true } }; +``` diff --git a/docs/snippets/svelte/document-screen-fetch.js.mdx b/docs/snippets/svelte/document-screen-fetch.js.mdx index b50d0bc021bd..e36bec8be30b 100644 --- a/docs/snippets/svelte/document-screen-fetch.js.mdx +++ b/docs/snippets/svelte/document-screen-fetch.js.mdx @@ -7,6 +7,7 @@ import PageLayout from './PageLayout.svelte'; import DocumentHeader from './DocumentHeader.svelte'; import DocumentList from './DocumentList.svelte'; + export let user = {}; export let document = {}; export let subdocuments = []; @@ -35,7 +36,7 @@ {#if status === "error"}

There was an error fetching the data!

-{/if} {#if status === "loading"} +{:else if status === "loading"}

Loading...

{:else} diff --git a/docs/snippets/svelte/document-screen-fetch.ts.mdx b/docs/snippets/svelte/document-screen-fetch.ts.mdx new file mode 100644 index 000000000000..a64fa476ccad --- /dev/null +++ b/docs/snippets/svelte/document-screen-fetch.ts.mdx @@ -0,0 +1,47 @@ +```html + + + + +{#if status === "error"} +

There was an error fetching the data!

+{:else if status === "loading"} +

Loading...

+{:else} + + + + +{/if} +``` diff --git a/docs/snippets/svelte/document-screen-with-grapqhl.ts.mdx b/docs/snippets/svelte/document-screen-with-grapqhl.ts.mdx new file mode 100644 index 000000000000..df975e9da4b3 --- /dev/null +++ b/docs/snippets/svelte/document-screen-with-grapqhl.ts.mdx @@ -0,0 +1,46 @@ +```html + + + + +{#if $infoResult.loading} +

Loading...

+{:else if $infoResult.error} +

There was an error fetching the data!

+{:else} + + + + +{/if} +``` diff --git a/docs/snippets/svelte/documentscreen-story-msw-graphql-query.js.mdx b/docs/snippets/svelte/documentscreen-story-msw-graphql-query.js.mdx index 7f44a194d27d..2ef38ef65b84 100644 --- a/docs/snippets/svelte/documentscreen-story-msw-graphql-query.js.mdx +++ b/docs/snippets/svelte/documentscreen-story-msw-graphql-query.js.mdx @@ -8,7 +8,7 @@ import MockApolloWrapperClient from './MockApolloWrapperClient.svelte'; export default { component: DocumentScreen, - decorators: [() => MockGraphqlProvider], + decorators: [() => MockApolloWrapperClient], }; //πŸ‘‡The mocked data that will be used in the story diff --git a/docs/snippets/svelte/documentscreen-story-msw-graphql-query.ts-4-9.mdx b/docs/snippets/svelte/documentscreen-story-msw-graphql-query.ts-4-9.mdx new file mode 100644 index 000000000000..ab72000499cd --- /dev/null +++ b/docs/snippets/svelte/documentscreen-story-msw-graphql-query.ts-4-9.mdx @@ -0,0 +1,70 @@ +```ts +// YourPage.stories.ts + +import type { Meta, StoryObj } from '@storybook/svelte'; + +import { graphql } from 'msw'; + +import DocumentScreen from './YourPage.svelte'; +import MockApolloWrapperClient from './MockApolloWrapperClient.svelte'; + +const meta = { + component: DocumentScreen, + decorators: [() => MockApolloWrapperClient], +} satisfies Meta; + +export default meta; +type Story = StoryObj; + +//πŸ‘‡The mocked data that will be used in the story +const TestData = { + user: { + userID: 1, + name: 'Someone', + }, + document: { + id: 1, + userID: 1, + title: 'Something', + brief: 'Lorem ipsum dolor sit amet, consectetur adipiscing elit.', + status: 'approved', + }, + subdocuments: [ + { + id: 1, + userID: 1, + title: 'Something', + content: + 'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.', + status: 'approved', + }, + ], +}; + +export const MockedSuccess: Story = { + parameters: { + msw: [ + graphql.query('AllInfoQuery', (req, res, ctx) => { + return res(ctx.data(TestData)); + }), + ], + }, +}; + +export const MockedError: Story = { + parameters: { + msw: [ + graphql.query('AllInfoQuery', (req, res, ctx) => { + return res( + ctx.delay(800), + ctx.errors([ + { + message: 'Access denied', + }, + ]) + ); + }), + ], + }, +}; +``` diff --git a/docs/snippets/svelte/documentscreen-story-msw-graphql-query.ts.mdx b/docs/snippets/svelte/documentscreen-story-msw-graphql-query.ts.mdx new file mode 100644 index 000000000000..c61204cfd1ab --- /dev/null +++ b/docs/snippets/svelte/documentscreen-story-msw-graphql-query.ts.mdx @@ -0,0 +1,70 @@ +```ts +// YourPage.stories.ts + +import type { Meta, StoryObj } from '@storybook/svelte'; + +import { graphql } from 'msw'; + +import DocumentScreen from './YourPage.svelte'; +import MockApolloWrapperClient from './MockApolloWrapperClient.svelte'; + +const meta: Meta = { + component: DocumentScreen, + decorators: [() => MockApolloWrapperClient], +}; + +export default meta; +type Story = StoryObj; + +//πŸ‘‡The mocked data that will be used in the story +const TestData = { + user: { + userID: 1, + name: 'Someone', + }, + document: { + id: 1, + userID: 1, + title: 'Something', + brief: 'Lorem ipsum dolor sit amet, consectetur adipiscing elit.', + status: 'approved', + }, + subdocuments: [ + { + id: 1, + userID: 1, + title: 'Something', + content: + 'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.', + status: 'approved', + }, + ], +}; + +export const MockedSuccess: Story = { + parameters: { + msw: [ + graphql.query('AllInfoQuery', (req, res, ctx) => { + return res(ctx.data(TestData)); + }), + ], + }, +}; + +export const MockedError: Story = { + parameters: { + msw: [ + graphql.query('AllInfoQuery', (req, res, ctx) => { + return res( + ctx.delay(800), + ctx.errors([ + { + message: 'Access denied', + }, + ]) + ); + }), + ], + }, +}; +``` diff --git a/docs/snippets/svelte/histogram-story.mdx.mdx b/docs/snippets/svelte/histogram-story.mdx.mdx deleted file mode 100644 index c17806227f8d..000000000000 --- a/docs/snippets/svelte/histogram-story.mdx.mdx +++ /dev/null @@ -1,30 +0,0 @@ -```md - - -import { Canvas, Meta, Story } from '@storybook/addon-docs'; - -import Histogram from './Histogram.svelte'; - - - - - - - ({ - Component: Histogram, - props: args, - })} /> - -``` \ No newline at end of file diff --git a/docs/snippets/svelte/loader-story.mdx.mdx b/docs/snippets/svelte/loader-story.mdx.mdx deleted file mode 100644 index d6cc1e15fb76..000000000000 --- a/docs/snippets/svelte/loader-story.mdx.mdx +++ /dev/null @@ -1,34 +0,0 @@ -```md - - -import { Meta, Story } from '@storybook/addon-docs'; - -import TodoItem from './TodoItem.svelte'; - -import fetch from 'node-fetch'; - - - - - - ({ - todo: await ( - await fetch('https://jsonplaceholder.typicode.com/todos/1') - ).json(), - }), - ]} - render={(args, { loaded: { todo } }) => ({ - Component: TodoItem, - props: { - ...args, - todo, - }, - })} /> -``` \ No newline at end of file diff --git a/docs/snippets/svelte/loader-story.ts-4-9.mdx b/docs/snippets/svelte/loader-story.ts-4-9.mdx new file mode 100644 index 000000000000..3a0c52903ec4 --- /dev/null +++ b/docs/snippets/svelte/loader-story.ts-4-9.mdx @@ -0,0 +1,36 @@ +```ts +// TodoItem.stories.ts + +import type { Meta, StoryObj } from '@storybook/svelte'; + +import fetch from 'node-fetch'; + +import TodoItem from './TodoItem.svelte'; + +/* + *πŸ‘‡ Render functions are a framework specific feature to allow you control on how the component renders. + * See https://storybook.js.org/docs/svelte/api/csf + * to learn how to use render functions. + */ +const meta = { + component: TodoItem, + render: (args, { loaded: { todo } }) => ({ + Component: TodoItem, + props: { + ...args, + ...todo, + }, + }), +} satisfies Meta; + +export default meta; +type Story = StoryObj; + +export const Primary: Story = { + loaders: [ + async () => ({ + todo: await (await fetch('https://jsonplaceholder.typicode.com/todos/1')).json(), + }), + ], +}; +``` diff --git a/docs/snippets/svelte/loader-story.ts.mdx b/docs/snippets/svelte/loader-story.ts.mdx new file mode 100644 index 000000000000..5bea2892ef0c --- /dev/null +++ b/docs/snippets/svelte/loader-story.ts.mdx @@ -0,0 +1,36 @@ +```ts +// TodoItem.stories.ts + +import type { Meta, StoryObj } from '@storybook/svelte'; + +import fetch from 'node-fetch'; + +import TodoItem from './TodoItem.svelte'; + +/* + *πŸ‘‡ Render functions are a framework specific feature to allow you control on how the component renders. + * See https://storybook.js.org/docs/svelte/api/csf + * to learn how to use render functions. + */ +const meta: Meta = { + component: TodoItem, + render: (args, { loaded: { todo } }) => ({ + Component: TodoItem, + props: { + ...args, + ...todo, + }, + }), +}; + +export default meta; +type Story = StoryObj; + +export const Primary: Story = { + loaders: [ + async () => ({ + todo: await (await fetch('https://jsonplaceholder.typicode.com/todos/1')).json(), + }), + ], +}; +``` diff --git a/docs/snippets/svelte/login-form-with-play-function.js.mdx b/docs/snippets/svelte/login-form-with-play-function.js.mdx index c0fbce4a48fc..a73d16222c61 100644 --- a/docs/snippets/svelte/login-form-with-play-function.js.mdx +++ b/docs/snippets/svelte/login-form-with-play-function.js.mdx @@ -1,7 +1,8 @@ ```js // LoginForm.stories.js -import { userEvent, within, expect } from '@storybook/test'; +import { userEvent, within } from '@storybook/testing-library'; +import { expect } from '@storybook/jest'; import LoginForm from './LoginForm.svelte'; @@ -9,27 +10,13 @@ export default { component: LoginForm, }; -/* - *πŸ‘‡ Render functions are a framework specific feature to allow you control on how the component renders. - * See https://storybook.js.org/docs/api/csf - * to learn how to use render functions. - */ -export const EmptyForm = { - render: (args) => ({ - Component: LoginForm, - props: args, - }), -}; +export const EmptyForm = {}; /* * See https://storybook.js.org/docs/writing-stories/play-function#working-with-the-canvas * to learn more about using the canvasElement to query the DOM */ export const FilledForm = { - render: (args) => ({ - Component: LoginForm, - props: args, - }), play: async ({ canvasElement }) => { const canvas = within(canvasElement); diff --git a/docs/snippets/svelte/login-form-with-play-function.mdx.mdx b/docs/snippets/svelte/login-form-with-play-function.mdx.mdx deleted file mode 100644 index bc4fca63ad11..000000000000 --- a/docs/snippets/svelte/login-form-with-play-function.mdx.mdx +++ /dev/null @@ -1,53 +0,0 @@ -```md - - -import { Canvas, Meta, Story } from '@storybook/addon-docs'; - -import { within, userEvent } from '@storybook/testing-library'; - -import { expect } from '@storybook/jest'; - -import LoginForm from './LoginForm.svelte'; - - - - - - - ({ - Component: LoginForm, - props: args, - })} /> - ({ - Component: LoginForm, - props: args, - })} - play={ async ({ canvasElement }) => { - // Starts querying the component from its root element - const canvas = within(canvasElement); - - // πŸ‘‡ Simulate interactions - await userEvent.type(canvas.getByTestId('email'), 'email@provider.com'); - - await userEvent.type(canvas.getByTestId('password'), 'a-random-password'); - - // See https://storybook.js.org/docs/essentials/actions#automatically-matching-args to learn how to setup logging in the Actions panel - await userEvent.click(canvas.getByRole('button')); - - // πŸ‘‡ Assert DOM structure - await expect( - canvas.getByText( - 'Everything is perfect. Your account is ready and we should probably get you started!' - ) - ).toBeInTheDocument(); - }} /> - -``` \ No newline at end of file diff --git a/docs/snippets/svelte/login-form-with-play-function.ts-4-9.mdx b/docs/snippets/svelte/login-form-with-play-function.ts-4-9.mdx new file mode 100644 index 000000000000..6b4da3545731 --- /dev/null +++ b/docs/snippets/svelte/login-form-with-play-function.ts-4-9.mdx @@ -0,0 +1,43 @@ +```ts +// LoginForm.stories.ts + +import type { Meta, StoryObj } from '@storybook/svelte'; +import { userEvent, within } from '@storybook/testing-library'; +import { expect } from '@storybook/jest'; + +import LoginForm from './LoginForm.svelte'; + +const meta = { + component: LoginForm, +} satisfies Meta; + +export default meta; +type Story = StoryObj; + +export const EmptyForm: Story = {}; + +/* + * See https://storybook.js.org/docs/writing-stories/play-function#working-with-the-canvas + * to learn more about using the canvasElement to query the DOM + */ +export const FilledForm: Story = { + play: async ({ canvasElement }) => { + const canvas = within(canvasElement); + + // πŸ‘‡ Simulate interactions with the component + await userEvent.type(canvas.getByTestId('email'), 'email@provider.com'); + + await userEvent.type(canvas.getByTestId('password'), 'a-random-password'); + + // See https://storybook.js.org/docs/essentials/actions#automatically-matching-args to learn how to setup logging in the Actions panel + await userEvent.click(canvas.getByRole('button')); + + // πŸ‘‡ Assert DOM structure + await expect( + canvas.getByText( + 'Everything is perfect. Your account is ready and we should probably get you started!' + ) + ).toBeInTheDocument(); + }, +}; +``` diff --git a/docs/snippets/svelte/login-form-with-play-function.ts.mdx b/docs/snippets/svelte/login-form-with-play-function.ts.mdx new file mode 100644 index 000000000000..c89d3591d6d8 --- /dev/null +++ b/docs/snippets/svelte/login-form-with-play-function.ts.mdx @@ -0,0 +1,43 @@ +```ts +// LoginForm.stories.ts + +import type { Meta, StoryObj } from '@storybook/svelte'; +import { userEvent, within } from '@storybook/testing-library'; +import { expect } from '@storybook/jest'; + +import LoginForm from './LoginForm.svelte'; + +const meta: Meta = { + component: LoginForm, +}; + +export default meta; +type Story = StoryObj; + +export const EmptyForm: Story = {}; + +/* + * See https://storybook.js.org/docs/writing-stories/play-function#working-with-the-canvas + * to learn more about using the canvasElement to query the DOM + */ +export const FilledForm: Story = { + play: async ({ canvasElement }) => { + const canvas = within(canvasElement); + + // πŸ‘‡ Simulate interactions with the component + await userEvent.type(canvas.getByTestId('email'), 'email@provider.com'); + + await userEvent.type(canvas.getByTestId('password'), 'a-random-password'); + + // See https://storybook.js.org/docs/essentials/actions#automatically-matching-args to learn how to setup logging in the Actions panel + await userEvent.click(canvas.getByRole('button')); + + // πŸ‘‡ Assert DOM structure + await expect( + canvas.getByText( + 'Everything is perfect. Your account is ready and we should probably get you started!' + ) + ).toBeInTheDocument(); + }, +}; +``` diff --git a/docs/snippets/svelte/margindecorator.with-margin-component.js.mdx b/docs/snippets/svelte/margindecorator.with-margin-component.js.mdx new file mode 100644 index 000000000000..c7a129062935 --- /dev/null +++ b/docs/snippets/svelte/margindecorator.with-margin-component.js.mdx @@ -0,0 +1,13 @@ +```html + + +
+ +
+ + +``` diff --git a/docs/snippets/svelte/margindecorator.with-margin-component.ts.mdx b/docs/snippets/svelte/margindecorator.with-margin-component.ts.mdx new file mode 100644 index 000000000000..c7a129062935 --- /dev/null +++ b/docs/snippets/svelte/margindecorator.with-margin-component.ts.mdx @@ -0,0 +1,13 @@ +```html + + +
+ +
+ + +``` diff --git a/docs/snippets/svelte/mdx-canvas-multiple-stories.mdx.mdx b/docs/snippets/svelte/mdx-canvas-multiple-stories.mdx.mdx deleted file mode 100644 index 09c2626f435f..000000000000 --- a/docs/snippets/svelte/mdx-canvas-multiple-stories.mdx.mdx +++ /dev/null @@ -1,48 +0,0 @@ -```md - - -import { Canvas, Meta, Story } from '@storybook/addon-docs'; - -import Badge from './Badge.svelte'; - - - - - - - ({ - Component: Badge, - props: args, - })} /> - ({ - Component: Badge, - props: args, - })} /> - ({ - Component: Badge, - props: args, - })} /> - -``` diff --git a/docs/snippets/svelte/my-component-story-basic-and-props.js.mdx b/docs/snippets/svelte/my-component-story-basic-and-props.js.mdx index baaf11c2767c..42e11888b759 100644 --- a/docs/snippets/svelte/my-component-story-basic-and-props.js.mdx +++ b/docs/snippets/svelte/my-component-story-basic-and-props.js.mdx @@ -7,12 +7,13 @@ export default { component: MyComponent, }; -export const Basic = { - render: () => ({ - Component: MyComponent, - }), -}; +export const Basic = {}; +/* + *πŸ‘‡ Render functions are a framework specific feature to allow you control on how the component renders. + * See https://storybook.js.org/docs/api/csf + * to learn how to use render functions. + */ export const WithProp = { render: () => ({ Component: MyComponent, diff --git a/docs/snippets/svelte/my-component-story-basic-and-props.ts-4-9.mdx b/docs/snippets/svelte/my-component-story-basic-and-props.ts-4-9.mdx new file mode 100644 index 000000000000..486fd96d1ceb --- /dev/null +++ b/docs/snippets/svelte/my-component-story-basic-and-props.ts-4-9.mdx @@ -0,0 +1,30 @@ +```ts +// MyComponent.stories.ts + +import type { Meta, StoryObj } from '@storybook/svelte'; + +import MyComponent from './MyComponent.svelte'; + +const meta = { + component: MyComponent, +} satisfies Meta; + +export default meta; +type Story = StoryObj; + +export const Basic: Story = {}; + +/* + *πŸ‘‡ Render functions are a framework specific feature to allow you control on how the component renders. + * See https://storybook.js.org/docs/api/csf + * to learn how to use render functions. + */ +export const WithProp: Story = { + render: () => ({ + Component: MyComponent, + props: { + prop: 'value', + }, + }), +}; +``` diff --git a/docs/snippets/svelte/my-component-story-basic-and-props.ts.mdx b/docs/snippets/svelte/my-component-story-basic-and-props.ts.mdx new file mode 100644 index 000000000000..ad985f99262e --- /dev/null +++ b/docs/snippets/svelte/my-component-story-basic-and-props.ts.mdx @@ -0,0 +1,30 @@ +```ts +// MyComponent.stories.ts + +import type { Meta, StoryObj } from '@storybook/svelte'; + +import MyComponent from './MyComponent.svelte'; + +const meta: Meta = { + component: MyComponent, +}; + +export default meta; +type Story = StoryObj; + +export const Basic: Story = {}; + +/* + *πŸ‘‡ Render functions are a framework specific feature to allow you control on how the component renders. + * See https://storybook.js.org/docs/api/csf + * to learn how to use render functions. + */ +export const WithProp: Story = { + render: () => ({ + Component: MyComponent, + props: { + prop: 'value', + }, + }), +}; +``` diff --git a/docs/snippets/svelte/my-component-story-configure-viewports.js.mdx b/docs/snippets/svelte/my-component-story-configure-viewports.js.mdx index 075779bbb1bb..856aed93e83b 100644 --- a/docs/snippets/svelte/my-component-story-configure-viewports.js.mdx +++ b/docs/snippets/svelte/my-component-story-configure-viewports.js.mdx @@ -19,9 +19,6 @@ export default { }; export const MyStory = { - render: () => ({ - Component: MyComponent, - }), parameters: { viewport: { defaultViewport: 'iphonex', diff --git a/docs/snippets/svelte/my-component-story-configure-viewports.mdx.mdx b/docs/snippets/svelte/my-component-story-configure-viewports.mdx.mdx deleted file mode 100644 index b3b0ee79076e..000000000000 --- a/docs/snippets/svelte/my-component-story-configure-viewports.mdx.mdx +++ /dev/null @@ -1,37 +0,0 @@ -```md - - -import { Meta, Story } from '@storybook/addon-docs'; - -import { INITIAL_VIEWPORTS } from '@storybook/addon-viewport'; - -import MyComponent from './MyComponent.svelte'; - - - - - - ({ - Component: MyComponent, - props: {}, - })} /> -``` \ No newline at end of file diff --git a/docs/snippets/svelte/my-component-story-configure-viewports.ts-4-9.mdx b/docs/snippets/svelte/my-component-story-configure-viewports.ts-4-9.mdx new file mode 100644 index 000000000000..2395d688fb55 --- /dev/null +++ b/docs/snippets/svelte/my-component-story-configure-viewports.ts-4-9.mdx @@ -0,0 +1,32 @@ +```ts +// MyComponent.stories.ts + +import type { Meta, StoryObj } from '@storybook/svelte'; +import { INITIAL_VIEWPORTS } from '@storybook/addon-viewport'; + +import MyComponent from './MyComponent.svelte'; + +const meta = { + component: MyComponent, + parameters: { + //πŸ‘‡ The viewports object from the Essentials addon + viewport: { + //πŸ‘‡ The viewports you want to use + viewports: INITIAL_VIEWPORTS, + //πŸ‘‡ Your own default viewport + defaultViewport: 'iphone6', + }, + }, +} satisfies Meta; + +export default meta; +type Story = StoryObj; + +export const MyStory: Story = { + parameters: { + viewport: { + defaultViewport: 'iphonex', + }, + }, +}; +``` diff --git a/docs/snippets/svelte/my-component-story-configure-viewports.ts.mdx b/docs/snippets/svelte/my-component-story-configure-viewports.ts.mdx new file mode 100644 index 000000000000..93ab5bcf7ae0 --- /dev/null +++ b/docs/snippets/svelte/my-component-story-configure-viewports.ts.mdx @@ -0,0 +1,32 @@ +```ts +// MyComponent.stories.ts + +import type { Meta, StoryObj } from '@storybook/svelte'; +import { INITIAL_VIEWPORTS } from '@storybook/addon-viewport'; + +import MyComponent from './MyComponent.svelte'; + +const meta: Meta = { + component: MyComponent, + parameters: { + //πŸ‘‡ The viewports object from the Essentials addon + viewport: { + //πŸ‘‡ The viewports you want to use + viewports: INITIAL_VIEWPORTS, + //πŸ‘‡ Your own default viewport + defaultViewport: 'iphone6', + }, + }, +}; + +export default meta; +type Story = StoryObj; + +export const MyStory: Story = { + parameters: { + viewport: { + defaultViewport: 'iphonex', + }, + }, +}; +``` diff --git a/docs/snippets/svelte/my-component-story-use-globaltype-backwards-compat.js.mdx b/docs/snippets/svelte/my-component-story-use-globaltype-backwards-compat.js.mdx index 8ee73b34422d..c25aa876eb7d 100644 --- a/docs/snippets/svelte/my-component-story-use-globaltype-backwards-compat.js.mdx +++ b/docs/snippets/svelte/my-component-story-use-globaltype-backwards-compat.js.mdx @@ -4,7 +4,7 @@ export const StoryWithLocale = ({ globals: { locale } }) => { const caption = getCaptionForLocale(locale); return { - component: MyComponent, + Component: MyComponent, props: { locale: caption, }, diff --git a/docs/snippets/svelte/my-component-story-use-globaltype-backwards-compat.ts-4-9.mdx b/docs/snippets/svelte/my-component-story-use-globaltype-backwards-compat.ts-4-9.mdx new file mode 100644 index 000000000000..f48fa95463e0 --- /dev/null +++ b/docs/snippets/svelte/my-component-story-use-globaltype-backwards-compat.ts-4-9.mdx @@ -0,0 +1,13 @@ +```ts +// MyComponent.stories.ts + +export const StoryWithLocale: Story = ({ globals: { locale } }) => { + const caption = getCaptionForLocale(locale); + return { + Component: MyComponent, + props: { + locale: caption, + }, + }; +}; +``` diff --git a/docs/snippets/svelte/my-component-story-use-globaltype-backwards-compat.ts.mdx b/docs/snippets/svelte/my-component-story-use-globaltype-backwards-compat.ts.mdx new file mode 100644 index 000000000000..f48fa95463e0 --- /dev/null +++ b/docs/snippets/svelte/my-component-story-use-globaltype-backwards-compat.ts.mdx @@ -0,0 +1,13 @@ +```ts +// MyComponent.stories.ts + +export const StoryWithLocale: Story = ({ globals: { locale } }) => { + const caption = getCaptionForLocale(locale); + return { + Component: MyComponent, + props: { + locale: caption, + }, + }; +}; +``` diff --git a/docs/snippets/svelte/my-component-story-use-globaltype.js.mdx b/docs/snippets/svelte/my-component-story-use-globaltype.js.mdx index 176e9cae2381..8542b37240a7 100644 --- a/docs/snippets/svelte/my-component-story-use-globaltype.js.mdx +++ b/docs/snippets/svelte/my-component-story-use-globaltype.js.mdx @@ -26,7 +26,7 @@ export const StoryWithLocale = { render: (args, { globals: { locale } }) => { const caption = getCaptionForLocale(locale); return { - component: MyComponent, + Component: MyComponent, props: { locale: caption, }, diff --git a/docs/snippets/svelte/my-component-story-use-globaltype.mdx.mdx b/docs/snippets/svelte/my-component-story-use-globaltype.mdx.mdx deleted file mode 100644 index 56de0d43fdc5..000000000000 --- a/docs/snippets/svelte/my-component-story-use-globaltype.mdx.mdx +++ /dev/null @@ -1,38 +0,0 @@ -```md - - -import { Meta, Story } from '@storybook/addon-docs'; - -import MyComponent from './MyComponent.svelte'; - - - -export const getCaptionForLocale = (locale) => { - switch(locale) { - case 'es': return 'Hola!'; - case 'fr': return 'Bonjour!'; - case 'kr': return 'μ•ˆλ…•ν•˜μ„Έμš”!'; - case 'zh': return 'δ½ ε₯½!'; - default: - return 'Hello!'; - } -}; - - - - { - const caption = getCaptionForLocale(locale); - return { - component: MyComponent, - props: { - locale: caption, - }, - }; - }} /> -``` \ No newline at end of file diff --git a/docs/snippets/svelte/my-component-story-use-globaltype.ts-4-9.mdx b/docs/snippets/svelte/my-component-story-use-globaltype.ts-4-9.mdx new file mode 100644 index 000000000000..59e0feecc847 --- /dev/null +++ b/docs/snippets/svelte/my-component-story-use-globaltype.ts-4-9.mdx @@ -0,0 +1,41 @@ +```ts +// MyComponent.stories.ts + +import type { Meta, StoryObj } from '@storybook/svelte'; + +import MyComponent from './YourComponent.svelte'; + +const meta = { + component: MyComponent, +} satisfies Meta; + +export default meta; +type Story = StoryObj; + +const getCaptionForLocale = (locale) => { + switch (locale) { + case 'es': + return 'Hola!'; + case 'fr': + return 'Bonjour!'; + case 'kr': + return 'μ•ˆλ…•ν•˜μ„Έμš”!'; + case 'zh': + return 'δ½ ε₯½!'; + default: + return 'Hello!'; + } +}; + +export const StoryWithLocale: Story = { + render: (args, { globals: { locale } }) => { + const caption = getCaptionForLocale(locale); + return { + Component: MyComponent, + props: { + locale: caption, + }, + }; + }, +}; +``` diff --git a/docs/snippets/svelte/my-component-story-use-globaltype.ts.mdx b/docs/snippets/svelte/my-component-story-use-globaltype.ts.mdx new file mode 100644 index 000000000000..88847d3d9011 --- /dev/null +++ b/docs/snippets/svelte/my-component-story-use-globaltype.ts.mdx @@ -0,0 +1,41 @@ +```ts +// MyComponent.stories.ts + +import type { Meta, StoryObj } from '@storybook/svelte'; + +import MyComponent from './YourComponent.svelte'; + +const meta: Meta = { + component: MyComponent, +}; + +export default meta; +type Story = StoryObj; + +const getCaptionForLocale = (locale) => { + switch (locale) { + case 'es': + return 'Hola!'; + case 'fr': + return 'Bonjour!'; + case 'kr': + return 'μ•ˆλ…•ν•˜μ„Έμš”!'; + case 'zh': + return 'δ½ ε₯½!'; + default: + return 'Hello!'; + } +}; + +export const StoryWithLocale: Story = { + render: (args, { globals: { locale } }) => { + const caption = getCaptionForLocale(locale); + return { + Component: MyComponent, + props: { + locale: caption, + }, + }; + }, +}; +``` diff --git a/docs/snippets/svelte/my-component-story-with-nonstory.js.mdx b/docs/snippets/svelte/my-component-story-with-nonstory.js.mdx index a1d49428d9fa..0ca9319f8737 100644 --- a/docs/snippets/svelte/my-component-story-with-nonstory.js.mdx +++ b/docs/snippets/svelte/my-component-story-with-nonstory.js.mdx @@ -15,20 +15,12 @@ export const simpleData = { foo: 1, bar: 'baz' }; export const complexData = { foo: 1, foobar: { bar: 'baz', baz: someData } }; export const SimpleStory = { - render: (args) => ({ - Component: MyComponent, - props: args, - }), args: { data: simpleData, }, }; export const ComplexStory = { - render: (args) => ({ - Component: MyComponent, - props: args, - }), args: { data: complexData, }, diff --git a/docs/snippets/svelte/my-component-story-with-nonstory.ts-4-9.mdx b/docs/snippets/svelte/my-component-story-with-nonstory.ts-4-9.mdx new file mode 100644 index 000000000000..9bf8759217e1 --- /dev/null +++ b/docs/snippets/svelte/my-component-story-with-nonstory.ts-4-9.mdx @@ -0,0 +1,33 @@ +```ts +// MyComponent.stories.ts + +import type { Meta, StoryObj } from '@storybook/svelte'; + +import MyComponent from './MyComponent.svelte'; + +import someData from './data.json'; + +const meta = { + component: MyComponent, + includeStories: ['SimpleStory', 'ComplexStory'], // πŸ‘ˆ Storybook loads these stories + excludeStories: /.*Data$/, // πŸ‘ˆ Storybook ignores anything that contains Data +} satisfies Meta; + +export default meta; +type Story = StoryObj; + +export const simpleData = { foo: 1, bar: 'baz' }; +export const complexData = { foo: 1, foobar: { bar: 'baz', baz: someData } }; + +export const SimpleStory: Story = { + args: { + data: simpleData, + }, +}; + +export const ComplexStory: Story = { + args: { + data: complexData, + }, +}; +``` diff --git a/docs/snippets/svelte/my-component-story-with-nonstory.ts.mdx b/docs/snippets/svelte/my-component-story-with-nonstory.ts.mdx new file mode 100644 index 000000000000..97c183896eb9 --- /dev/null +++ b/docs/snippets/svelte/my-component-story-with-nonstory.ts.mdx @@ -0,0 +1,33 @@ +```ts +// MyComponent.stories.ts + +import type { Meta, StoryObj } from '@storybook/svelte'; + +import MyComponent from './MyComponent.svelte'; + +import someData from './data.json'; + +const meta: Meta = { + component: MyComponent, + includeStories: ['SimpleStory', 'ComplexStory'], // πŸ‘ˆ Storybook loads these stories + excludeStories: /.*Data$/, // πŸ‘ˆ Storybook ignores anything that contains Data +}; + +export default meta; +type Story = StoryObj; + +export const simpleData = { foo: 1, bar: 'baz' }; +export const complexData = { foo: 1, foobar: { bar: 'baz', baz: someData } }; + +export const SimpleStory: Story = { + args: { + data: simpleData, + }, +}; + +export const ComplexStory: Story = { + args: { + data: complexData, + }, +}; +``` diff --git a/docs/snippets/svelte/my-component-with-env-variables.mdx.mdx b/docs/snippets/svelte/my-component-with-env-variables.mdx.mdx deleted file mode 100644 index 75d7cbe6b30a..000000000000 --- a/docs/snippets/svelte/my-component-with-env-variables.mdx.mdx +++ /dev/null @@ -1,27 +0,0 @@ -```md - - -import { Canvas, Meta, Story } from '@storybook/addon-docs'; - -import MyComponent from './MyComponent.svelte'; - - - - - - - ({ - Component: MyComponent, - props: args, - })} /> - -``` \ No newline at end of file diff --git a/docs/snippets/svelte/page-story.js.mdx b/docs/snippets/svelte/page-story.js.mdx index 287abf710838..ec72dc32448c 100644 --- a/docs/snippets/svelte/page-story.js.mdx +++ b/docs/snippets/svelte/page-story.js.mdx @@ -10,16 +10,7 @@ export default { component: Page, }; -/* - *πŸ‘‡ Render functions are a framework specific feature to allow you control on how the component renders. - * See https://storybook.js.org/docs/api/csf - * to learn how to use render functions. - */ export const LoggedIn = { - render: (args) => ({ - Component: Page, - props: args, - }), args: { ...HeaderStories.LoggedIn.args, }, diff --git a/docs/snippets/svelte/page-story.ts-4-9.mdx b/docs/snippets/svelte/page-story.ts-4-9.mdx new file mode 100644 index 000000000000..7184cc7ce31f --- /dev/null +++ b/docs/snippets/svelte/page-story.ts-4-9.mdx @@ -0,0 +1,23 @@ +```ts +// Page.stories.ts + +import type { Meta, StoryObj } from '@storybook/svelte'; + +import Page from './Page.svelte'; + +//πŸ‘‡ Imports all Header stories +import * as HeaderStories from './Header.stories'; + +const meta = { + component: Page, +} satisfies Meta; + +export default meta; +type Story = StoryObj; + +export const LoggedIn: Story = { + args: { + ...HeaderStories.LoggedIn.args, + }, +}; +``` diff --git a/docs/snippets/svelte/page-story.ts.mdx b/docs/snippets/svelte/page-story.ts.mdx new file mode 100644 index 000000000000..897a7f6db039 --- /dev/null +++ b/docs/snippets/svelte/page-story.ts.mdx @@ -0,0 +1,23 @@ +```ts +// Page.stories.ts + +import type { Meta, StoryObj } from '@storybook/svelte'; + +import Page from './Page.svelte'; + +//πŸ‘‡ Imports all Header stories +import * as HeaderStories from './Header.stories'; + +const meta: Meta = { + component: Page, +}; + +export default meta; +type Story = StoryObj; + +export const LoggedIn: Story = { + args: { + ...HeaderStories.LoggedIn.args, + }, +}; +``` diff --git a/docs/snippets/svelte/simple-page-implementation.ts.mdx b/docs/snippets/svelte/simple-page-implementation.ts.mdx new file mode 100644 index 000000000000..95fb6c5b988a --- /dev/null +++ b/docs/snippets/svelte/simple-page-implementation.ts.mdx @@ -0,0 +1,20 @@ +```html + + + + +
+ + + + +
+``` diff --git a/docs/snippets/svelte/storybook-addon-a11y-disable.js.mdx b/docs/snippets/svelte/storybook-addon-a11y-disable.js.mdx index 448436303a53..7ddea5b9cef4 100644 --- a/docs/snippets/svelte/storybook-addon-a11y-disable.js.mdx +++ b/docs/snippets/svelte/storybook-addon-a11y-disable.js.mdx @@ -8,10 +8,6 @@ export default { }; export const NonA11yStory = { - render: (args) => ({ - Component: MyComponent, - props: args, - }), parameters: { a11y: { // This option disables all a11y checks on this story diff --git a/docs/snippets/svelte/storybook-addon-a11y-disable.mdx.mdx b/docs/snippets/svelte/storybook-addon-a11y-disable.mdx.mdx deleted file mode 100644 index c2e5d4ff3ee5..000000000000 --- a/docs/snippets/svelte/storybook-addon-a11y-disable.mdx.mdx +++ /dev/null @@ -1,30 +0,0 @@ -```md - - -import { Meta, Story } from '@storybook/addon-docs'; - -import MyComponent from './MyComponent.svelte'; - - - - - - ({ - Component: MyComponent, - props: {}, - })} /> -``` \ No newline at end of file diff --git a/docs/snippets/svelte/storybook-addon-a11y-disable.ts-4-9.mdx b/docs/snippets/svelte/storybook-addon-a11y-disable.ts-4-9.mdx new file mode 100644 index 000000000000..a88af48d41e6 --- /dev/null +++ b/docs/snippets/svelte/storybook-addon-a11y-disable.ts-4-9.mdx @@ -0,0 +1,23 @@ +```ts +// MyComponent.stories.ts + +import type { Meta, StoryObj } from '@storybook/svelte'; + +import MyComponent from './MyComponent.svelte'; + +const meta = { + component: MyComponent, +} satisfies Meta; + +export default meta; +type Story = StoryObj; + +export const NonA11yStory: Story = { + parameters: { + a11y: { + // This option disables all a11y checks on this story + disable: true, + }, + }, +}; +``` diff --git a/docs/snippets/svelte/storybook-addon-a11y-disable.ts.mdx b/docs/snippets/svelte/storybook-addon-a11y-disable.ts.mdx new file mode 100644 index 000000000000..d9b1abb6a04e --- /dev/null +++ b/docs/snippets/svelte/storybook-addon-a11y-disable.ts.mdx @@ -0,0 +1,23 @@ +```ts +// MyComponent.stories.ts + +import type { Meta, StoryObj } from '@storybook/svelte'; + +import MyComponent from './MyComponent.svelte'; + +const meta: Meta = { + component: MyComponent, +}; + +export default meta; +type Story = StoryObj; + +export const NonA11yStory: Story = { + parameters: { + a11y: { + // This option disables all a11y checks on this story + disable: true, + }, + }, +}; +``` diff --git a/docs/snippets/svelte/storybook-addon-a11y-story-config.js.mdx b/docs/snippets/svelte/storybook-addon-a11y-story-config.js.mdx index 65635998e178..d26c9049ae24 100644 --- a/docs/snippets/svelte/storybook-addon-a11y-story-config.js.mdx +++ b/docs/snippets/svelte/storybook-addon-a11y-story-config.js.mdx @@ -8,10 +8,6 @@ export default { }; export const ExampleStory = { - render: (args) => ({ - Component: MyComponent, - props: args, - }), parameters: { a11y: { element: '#storybook-root', diff --git a/docs/snippets/svelte/storybook-addon-a11y-story-config.mdx.mdx b/docs/snippets/svelte/storybook-addon-a11y-story-config.ts-4-9.mdx similarity index 55% rename from docs/snippets/svelte/storybook-addon-a11y-story-config.mdx.mdx rename to docs/snippets/svelte/storybook-addon-a11y-story-config.ts-4-9.mdx index 503c7230d71f..405228dd4df8 100644 --- a/docs/snippets/svelte/storybook-addon-a11y-story-config.mdx.mdx +++ b/docs/snippets/svelte/storybook-addon-a11y-story-config.ts-4-9.mdx @@ -1,23 +1,19 @@ -```md - +```ts +// MyComponent.stories.ts -import { Meta, Story } from '@storybook/addon-docs'; +import type { Meta, StoryObj } from '@storybook/svelte'; import MyComponent from './MyComponent.svelte'; - +const meta = { + component: MyComponent, +} satisfies Meta; - +export default meta; +type Story = StoryObj; - ({ - Component: MyComponent, - props: {}, - })} /> -``` \ No newline at end of file + }, +}; +``` diff --git a/docs/snippets/svelte/storybook-addon-a11y-story-config.ts.mdx b/docs/snippets/svelte/storybook-addon-a11y-story-config.ts.mdx new file mode 100644 index 000000000000..a2516ffa6464 --- /dev/null +++ b/docs/snippets/svelte/storybook-addon-a11y-story-config.ts.mdx @@ -0,0 +1,38 @@ +```ts +// MyComponent.stories.ts + +import type { Meta, StoryObj } from '@storybook/svelte'; + +import MyComponent from './MyComponent.svelte'; + +const meta: Meta = { + component: MyComponent, +}; + +export default meta; +type Story = StoryObj; + +export const ExampleStory: Story = { + parameters: { + a11y: { + element: '#storybook-root', + config: { + rules: [ + { + // The autocomplete rule will not run based on the CSS selector provided + id: 'autocomplete-valid', + selector: '*:not([autocomplete="nope"])', + }, + { + // Setting the enabled option to false will disable checks for this particular rule on all stories. + id: 'image-alt', + enabled: false, + }, + ], + }, + options: {}, + manual: true, + }, + }, +}; +``` diff --git a/docs/snippets/svelte/storybook-preview-global-decorator.ts.mdx b/docs/snippets/svelte/storybook-preview-global-decorator.ts.mdx new file mode 100644 index 000000000000..9e6cf557f9c3 --- /dev/null +++ b/docs/snippets/svelte/storybook-preview-global-decorator.ts.mdx @@ -0,0 +1,13 @@ +```ts +// .storybook/preview.ts + +import type { Preview } from '@storybook/svelte'; + +import MarginDecorator from './MarginDecorator.svelte'; + +const preview: Preview = { + decorators: [() => MarginDecorator], +}; + +export default preview; +``` diff --git a/docs/snippets/svelte/your-component-with-decorator.js.mdx b/docs/snippets/svelte/your-component-with-decorator.js.mdx index a5dfce20e711..c9d943052349 100644 --- a/docs/snippets/svelte/your-component-with-decorator.js.mdx +++ b/docs/snippets/svelte/your-component-with-decorator.js.mdx @@ -9,21 +9,4 @@ export default { component: YourComponent, decorators: [() => MarginDecorator], }; - -// Your templates and stories here. -// Don't forget to use the component you're testing and not the MarginDecorator component -``` - -```html - - -
- -
- - ``` diff --git a/docs/snippets/svelte/your-component-with-decorator.mdx.mdx b/docs/snippets/svelte/your-component-with-decorator.mdx.mdx deleted file mode 100644 index 8cc0313e5d30..000000000000 --- a/docs/snippets/svelte/your-component-with-decorator.mdx.mdx +++ /dev/null @@ -1,13 +0,0 @@ -```md - - -import { Meta } from '@storybook/addon-docs'; - -import YourComponent from './YourComponent.svelte'; -import MarginDecorator from './MarginDecorator.svelte'; - - MarginDecorator]}/> -``` \ No newline at end of file diff --git a/docs/snippets/svelte/your-component-with-decorator.ts-4-9.mdx b/docs/snippets/svelte/your-component-with-decorator.ts-4-9.mdx new file mode 100644 index 000000000000..b840eb852abe --- /dev/null +++ b/docs/snippets/svelte/your-component-with-decorator.ts-4-9.mdx @@ -0,0 +1,15 @@ +```ts +// YourComponent.stories.ts + +import type { Meta } from '@storybook/svelte'; + +import YourComponent from './YourComponent.svelte'; +import MarginDecorator from './MarginDecorator.svelte'; + +const meta = { + component: Button, + decorators: [() => MarginDecorator], +} satisfies Meta; + +export default meta; +``` diff --git a/docs/snippets/svelte/your-component-with-decorator.ts.mdx b/docs/snippets/svelte/your-component-with-decorator.ts.mdx new file mode 100644 index 000000000000..d7698d42c35d --- /dev/null +++ b/docs/snippets/svelte/your-component-with-decorator.ts.mdx @@ -0,0 +1,15 @@ +```ts +// YourComponent.stories.ts + +import type { Meta } from '@storybook/svelte'; + +import YourComponent from './YourComponent.svelte'; +import MarginDecorator from './MarginDecorator.svelte'; + +const meta: Meta = { + component: YourComponent, + decorators: [() => MarginDecorator], +}; + +export default meta; +``` diff --git a/docs/snippets/svelte/your-component.mdx.mdx b/docs/snippets/svelte/your-component.mdx.mdx deleted file mode 100644 index 8f63ceffc626..000000000000 --- a/docs/snippets/svelte/your-component.mdx.mdx +++ /dev/null @@ -1,20 +0,0 @@ -```md - - -import { Meta, Story } from '@storybook/addon-docs'; - -import YourComponent from './YourComponent.svelte'; - - - - - - - ({ - component: YourComponent, - props: args, - })} /> -``` \ No newline at end of file diff --git a/docs/writing-docs/autodocs.md b/docs/writing-docs/autodocs.md index 61026e2d981b..96c42c8ba831 100644 --- a/docs/writing-docs/autodocs.md +++ b/docs/writing-docs/autodocs.md @@ -20,6 +20,7 @@ To enable auto-generated documentation for your stories, you'll need to add the 'vue/button-story-auto-docs.ts.mdx', 'angular/button-story-auto-docs.ts.mdx', 'svelte/button-story-auto-docs.js.mdx', + 'svelte/button-story-auto-docs.ts.mdx', 'web-components/button-story-auto-docs.js.mdx', 'web-components/button-story-auto-docs.ts.mdx', ]} diff --git a/docs/writing-stories/args.md b/docs/writing-stories/args.md index c4595f31c783..5a3d7cbd14a6 100644 --- a/docs/writing-stories/args.md +++ b/docs/writing-stories/args.md @@ -32,6 +32,7 @@ To define the args of a single story, use the `args` CSF story key: 'web-components/button-story-with-args.js.mdx', 'web-components/button-story-with-args.ts.mdx', 'svelte/button-story-with-args.js.mdx', + 'svelte/button-story-with-args.ts.mdx', 'html/button-story-with-args.ts.mdx', 'html/button-story-with-args.js.mdx', 'solid/button-story-with-args.js.mdx', @@ -80,6 +81,7 @@ You can also define args at the component level; they will apply to all the comp 'web-components/button-story-component-args-primary.js.mdx', 'web-components/button-story-component-args-primary.ts.mdx', 'svelte/button-story-component-args-primary.js.mdx', + 'svelte/button-story-component-args-primary.ts.mdx', 'solid/button-story-component-args-primary.js.mdx', 'solid/button-story-component-args-primary.ts.mdx', ]} @@ -152,6 +154,7 @@ Args are useful when writing stories for composite components that are assembled 'web-components/page-story.js.mdx', 'web-components/page-story.ts.mdx', 'svelte/page-story.js.mdx', + 'svelte/page-story.ts.mdx', 'solid/page-story.js.mdx', 'solid/page-story.ts.mdx', ]} @@ -161,6 +164,10 @@ Args are useful when writing stories for composite components that are assembled + + + + ## Args can modify any aspect of your component You can use args in your stories to configure the component's appearance, similar to what you would do in an application. For example, here's how you could use a `footer` arg to populate a child component: @@ -187,6 +194,8 @@ You can use args in your stories to configure the component's appearance, simila + + ## Setting args through the URL You can also override the set of initial args for the active story by adding an `args` query parameter to the URL. Typically you would use the [Controls addon](../essentials/controls.md) to handle this. For example, here's how you could set a `size` and `style` arg in the Storybook's URL: diff --git a/docs/writing-stories/build-pages-with-storybook.md b/docs/writing-stories/build-pages-with-storybook.md index d8c1b8f5b3b7..fecddea8921a 100644 --- a/docs/writing-stories/build-pages-with-storybook.md +++ b/docs/writing-stories/build-pages-with-storybook.md @@ -44,6 +44,7 @@ When you are building screens in this way, it is typical that the inputs of a co 'web-components/simple-page-implementation.js.mdx', 'web-components/simple-page-implementation.ts.mdx', 'svelte/simple-page-implementation.js.mdx', + 'svelte/simple-page-implementation.ts.mdx', 'solid/simple-page-implementation.js.mdx', 'solid/simple-page-implementation.ts.mdx', ]} @@ -146,6 +147,7 @@ If you're working with pure presentational screens, adding stories through [args 'vue/document-screen-fetch.3.ts.mdx', 'angular/document-screen-fetch.ts.mdx', 'svelte/document-screen-fetch.js.mdx', + 'svelte/document-screen-fetch.ts.mdx', 'web-components/document-screen-fetch.js.mdx', 'solid/document-screen-fetch.js.mdx', ]} @@ -193,6 +195,7 @@ In addition to mocking RESTful requests, the other noteworthy feature of the [MS 'vue/document-screen-with-graphql.3.ts.mdx', 'angular/document-screen-with-graphql.ts.mdx', 'svelte/document-screen-with-grapqhl.js.mdx', + 'svelte/document-screen-with-grapqhl.ts.mdx', ]} /> @@ -212,7 +215,9 @@ To test your screen with the GraphQL mocked data, you could write the following 'angular/apollo-module.mock-apollo-module.ts.mdx', 'angular/documentscreen-story-msw-graphql-query.ts.mdx', 'svelte/documentscreen-story-msw-graphql-query.js.mdx', + 'svelte/documentscreen-story-msw-graphql-query.ts.mdx', 'svelte/apollo-wrapper-component.with-mock-implementation.js.mdx', + 'svelte/apollo-wrapper-component.with-mock-implementation.ts.mdx', ]} usesCsf3 csf2Path="writing-stories/build-pages-with-storybook#snippet-documentscreen-story-msw-graphql-query" diff --git a/docs/writing-stories/decorators.md b/docs/writing-stories/decorators.md index f6c5305877cd..3f213ca28058 100644 --- a/docs/writing-stories/decorators.md +++ b/docs/writing-stories/decorators.md @@ -26,6 +26,9 @@ Some components require a β€œharness” to render in a useful way. For instance, 'web-components/your-component-with-decorator.js.mdx', 'web-components/your-component-with-decorator.ts.mdx', 'svelte/your-component-with-decorator.js.mdx', + 'svelte/your-component-with-decorator.ts.mdx', + 'svelte/margindecorator.with-margin-component.js.mdx', + 'svelte/margindecorator.with-margin-component.ts.mdx', 'solid/your-component-with-decorator.js.mdx', 'solid/your-component-with-decorator.ts.mdx' ]} @@ -103,6 +106,9 @@ To define a decorator for a single story, use the `decorators` key on a named ex 'web-components/button-story-decorator.js.mdx', 'web-components/button-story-decorator.ts.mdx', 'svelte/button-story-decorator.js.mdx', + 'svelte/button-story-decorator.ts.mdx', + 'svelte/margindecorator.with-margin-component.js.mdx', + 'svelte/margindecorator.with-margin-component.ts.mdx', 'solid/button-story-decorator.js.mdx', 'solid/button-story-decorator.ts.mdx', ]} @@ -131,6 +137,9 @@ To define a decorator for all stories of a component, use the `decorators` key o 'web-components/button-story-component-decorator.js.mdx', 'web-components/button-story-component-decorator.ts.mdx', 'svelte/button-story-component-decorator.js.mdx', + 'svelte/button-story-component-decorator.ts.mdx', + 'svelte/margindecorator.with-margin-component.js.mdx', + 'svelte/margindecorator.with-margin-component.ts.mdx', 'solid/button-story-component-decorator.js.mdx', 'solid/button-story-component-decorator.ts.mdx', ]} @@ -153,6 +162,9 @@ We can also set a decorator for **all stories** via the `decorators` export of y 'angular/storybook-preview-global-decorator.ts.mdx', 'web-components/storybook-preview-global-decorator.js.mdx', 'svelte/storybook-preview-global-decorator.js.mdx', + 'svelte/storybook-preview-global-decorator.ts.mdx', + 'svelte/margindecorator.with-margin-component.js.mdx', + 'svelte/margindecorator.with-margin-component.ts.mdx', 'solid/storybook-preview-global-decorator.js.mdx', 'solid/storybook-preview-global-decorator.ts.mdx', ]} diff --git a/docs/writing-stories/index.md b/docs/writing-stories/index.md index e7dab69ec876..c938a3f60929 100644 --- a/docs/writing-stories/index.md +++ b/docs/writing-stories/index.md @@ -37,6 +37,7 @@ The _default_ export metadata controls how Storybook lists your stories and prov 'vue/button-story-default-export-with-component.ts.mdx', 'angular/button-story-default-export-with-component.ts.mdx', 'svelte/button-story-default-export-with-component.js.mdx', + 'svelte/button-story-default-export-with-component.ts.mdx', 'web-components/button-story-default-export-with-component.js.mdx', 'html/button-story-default-export.js.mdx', 'html/button-story-default-export.ts.mdx', @@ -69,6 +70,7 @@ Use the _named_ exports of a CSF file to define your component’s stories. We r 'web-components/button-story.js.mdx', 'web-components/button-story.ts.mdx', 'svelte/button-story.js.mdx', + 'svelte/button-story.ts.mdx', 'html/button-story.js.mdx', 'html/button-story.ts.mdx', 'solid/button-story.js.mdx', @@ -150,6 +152,7 @@ You can rename any particular story you need. For instance, to give it a more ac 'web-components/button-story-rename-story.js.mdx', 'web-components/button-story-rename-story.ts.mdx', 'svelte/button-story-rename-story.js.mdx', + 'svelte/button-story-rename-story.ts.mdx', 'html/button-story-rename-story.js.mdx', 'html/button-story-rename-story.ts.mdx', 'solid/button-story-rename-story.js.mdx', @@ -179,6 +182,7 @@ A story is a function that describes how to render a component. You can have mul 'web-components/button-story-with-emojis.js.mdx', 'web-components/button-story-with-emojis.ts.mdx', 'svelte/button-story-with-emojis.js.mdx', + 'svelte/button-story-with-emojis.ts.mdx', 'html/button-story-with-emojis.js.mdx', 'html/button-story-with-emojis.ts.mdx', 'solid/button-story-with-emojis.js.mdx', @@ -210,6 +214,7 @@ Refine this pattern by introducing `args` for your component's stories. It reduc 'web-components/button-story-using-args.js.mdx', 'web-components/button-story-using-args.ts.mdx', 'svelte/button-story-using-args.js.mdx', + 'svelte/button-story-using-args.ts.mdx', 'html/button-story-using-args.js.mdx', 'html/button-story-using-args.ts.mdx', 'solid/button-story-using-args.js.mdx', @@ -239,6 +244,7 @@ What’s more, you can import `args` to reuse when writing stories for other com 'web-components/button-group-story.js.mdx', 'web-components/button-group-story.ts.mdx', 'svelte/button-group-story.js.mdx', + 'svelte/button-group-story.ts.mdx', 'solid/button-group-story.js.mdx', 'solid/button-group-story.ts.mdx', ]} @@ -285,6 +291,7 @@ Storybook's `play` function and the [`@storybook/addon-interactions`](https://st 'web-components/login-form-with-play-function.js.mdx', 'web-components/login-form-with-play-function.ts.mdx', 'svelte/login-form-with-play-function.js.mdx', + 'svelte/login-form-with-play-function.ts.mdx', 'solid/login-form-with-play-function.js.mdx', 'solid/login-form-with-play-function.ts.mdx', ]} @@ -312,6 +319,7 @@ For instance, suppose you wanted to test your Button component against a differe 'web-components/button-story-with-blue-args.js.mdx', 'web-components/button-story-with-blue-args.ts.mdx', 'svelte/button-story-with-blue-args.js.mdx', + 'svelte/button-story-with-blue-args.ts.mdx', 'html/button-story-with-blue-args.js.mdx', 'html/button-story-with-blue-args.ts.mdx', 'solid/button-story-with-blue-args.js.mdx', @@ -343,6 +351,9 @@ A simple example is adding padding to a component’s stories. Accomplish this u 'web-components/button-story-component-decorator.js.mdx', 'web-components/button-story-component-decorator.ts.mdx', 'svelte/button-story-component-decorator.js.mdx', + 'svelte/button-story-component-decorator.ts.mdx', + 'svelte/margindecorator.with-margin-component.js.mdx', + 'svelte/margindecorator.with-margin-component.ts.mdx', 'html/button-story-component-decorator.js.mdx', 'html/button-story-component-decorator.ts.mdx', 'solid/button-story-component-decorator.js.mdx', diff --git a/docs/writing-stories/loaders.md b/docs/writing-stories/loaders.md index b0b5c11fd123..663670d6e1e9 100644 --- a/docs/writing-stories/loaders.md +++ b/docs/writing-stories/loaders.md @@ -26,6 +26,7 @@ Loaders are helpful when you need to load story data externally (e.g., from a re 'web-components/loader-story.js.mdx', 'web-components/loader-story.ts.mdx', 'svelte/loader-story.js.mdx', + 'svelte/loader-story.ts.mdx', 'solid/loader-story.js.mdx', 'solid/loader-story.ts.mdx', ]} diff --git a/docs/writing-stories/parameters.md b/docs/writing-stories/parameters.md index b697330ec848..9ec6b5c73225 100644 --- a/docs/writing-stories/parameters.md +++ b/docs/writing-stories/parameters.md @@ -44,6 +44,7 @@ We can set the parameters for all stories of a component using the `parameters` 'web-components/button-story-with-blue-args.js.mdx', 'web-components/button-story-with-blue-args.ts.mdx', 'svelte/button-story-with-blue-args.js.mdx', + 'svelte/button-story-with-blue-args.ts.mdx', 'solid/button-story-with-blue-args.js.mdx', 'solid/button-story-with-blue-args.ts.mdx', ]} diff --git a/docs/writing-tests/accessibility-testing.md b/docs/writing-tests/accessibility-testing.md index 4285fa95eaa8..14506ae979e2 100644 --- a/docs/writing-tests/accessibility-testing.md +++ b/docs/writing-tests/accessibility-testing.md @@ -70,6 +70,7 @@ Storybook's a11y addon runs [Axe](https://github.com/dequelabs/axe-core) on the 'vue/component-story-with-accessibility.3.js.mdx', 'vue/component-story-with-accessibility.3.ts.mdx', 'svelte/component-story-with-accessibility.js.mdx', + 'svelte/component-story-with-accessibility.ts.mdx', 'web-components/component-story-with-accessibility.js.mdx', 'web-components/component-story-with-accessibility.ts.mdx', ]} @@ -134,6 +135,7 @@ Customize the a11y ruleset at the story level by updating your story to include 'vue/storybook-addon-a11y-story-config.js.mdx', 'vue/storybook-addon-a11y-story-config.ts.mdx', 'svelte/storybook-addon-a11y-story-config.js.mdx', + 'svelte/storybook-addon-a11y-story-config.ts.mdx', 'web-components/storybook-addon-a11y-story-config.js.mdx', 'web-components/storybook-addon-a11y-story-config.ts.mdx', ]} @@ -157,6 +159,7 @@ Disable accessibility testing for stories or components by adding the following 'vue/storybook-addon-a11y-disable.js.mdx', 'vue/storybook-addon-a11y-disable.ts.mdx', 'svelte/storybook-addon-a11y-disable.js.mdx', + 'svelte/storybook-addon-a11y-disable.ts.mdx', 'web-components/storybook-addon-a11y-disable.js.mdx', 'web-components/storybook-addon-a11y-disable.ts.mdx', ]} diff --git a/docs/writing-tests/interaction-testing.md b/docs/writing-tests/interaction-testing.md index 90c7e2fc8a06..4cc94872b15f 100644 --- a/docs/writing-tests/interaction-testing.md +++ b/docs/writing-tests/interaction-testing.md @@ -71,6 +71,7 @@ The test itself is defined inside a `play` function connected to a story. Here's 'web-components/login-form-with-play-function.js.mdx', 'web-components/login-form-with-play-function.ts.mdx', 'svelte/login-form-with-play-function.js.mdx', + 'svelte/login-form-with-play-function.ts.mdx', 'solid/login-form-with-play-function.js.mdx', 'solid/login-form-with-play-function.ts.mdx', ]} diff --git a/docs/writing-tests/stories-in-end-to-end-tests.md b/docs/writing-tests/stories-in-end-to-end-tests.md index 50fa58ae0688..6699ea352cbe 100644 --- a/docs/writing-tests/stories-in-end-to-end-tests.md +++ b/docs/writing-tests/stories-in-end-to-end-tests.md @@ -22,6 +22,7 @@ An example of an end-to-end test with Cypress and Storybook is testing a login c 'web-components/login-form-with-play-function.js.mdx', 'web-components/login-form-with-play-function.ts.mdx', 'svelte/login-form-with-play-function.js.mdx', + 'svelte/login-form-with-play-function.ts.mdx', ]} usesCsf3 csf2Path="writing-tests/importing-stories-in-tests#snippet-login-form-with-play-function" @@ -69,6 +70,7 @@ A real-life scenario of user flow testing with Playwright would be how to test a 'web-components/login-form-with-play-function.js.mdx', 'web-components/login-form-with-play-function.ts.mdx', 'svelte/login-form-with-play-function.js.mdx', + 'svelte/login-form-with-play-function.ts.mdx', ]} usesCsf3 csf2Path="writing-tests/importing-stories-in-tests#snippet-login-form-with-play-function" diff --git a/scripts/task.ts b/scripts/task.ts index 20dad32716c3..1247cc89351a 100644 --- a/scripts/task.ts +++ b/scripts/task.ts @@ -496,7 +496,7 @@ async function run() { controller.abort(); }); - return 1; + throw err; } statuses.set(task, task.service ? 'serving' : 'complete'); diff --git a/scripts/tasks/generate.ts b/scripts/tasks/generate.ts index cbce6c66a1c5..f453fc3222e8 100644 --- a/scripts/tasks/generate.ts +++ b/scripts/tasks/generate.ts @@ -1,3 +1,4 @@ +/* eslint-disable import/extensions */ import { pathExists, remove } from 'fs-extra'; import { join } from 'path'; import { REPROS_DIRECTORY } from '../utils/constants'; @@ -27,7 +28,8 @@ export const generate: Task = { } // This uses an async import as it depends on `lib/cli` which requires `code` to be installed. - const { generate: generateRepro } = await import('../sandbox/generate'); + // @ts-expect-error Default import required for dynamic import processed by esbuild + const { generate: generateRepro } = (await import('../sandbox/generate.ts')).default; await generateRepro({ templates: [details.key], diff --git a/scripts/tasks/sandbox-parts.ts b/scripts/tasks/sandbox-parts.ts index 5fe9abe66813..d35edced9abc 100644 --- a/scripts/tasks/sandbox-parts.ts +++ b/scripts/tasks/sandbox-parts.ts @@ -8,10 +8,12 @@ import { ensureDir, existsSync, pathExists, + readFileSync, readJson, writeJson, } from 'fs-extra'; import { join, resolve, sep } from 'path'; +import JSON5 from 'json5'; import { createRequire } from 'module'; import slash from 'slash'; @@ -37,6 +39,7 @@ import { JsPackageManagerFactory } from '../../code/lib/cli/src/js-package-manag import { workspacePath } from '../utils/workspace'; import { babelParse } from '../../code/lib/csf-tools/src/babelParse'; import { CODE_DIRECTORY, REPROS_DIRECTORY } from '../utils/constants'; +import type { TemplateKey } from '../../code/lib/cli/src/sandbox-templates'; const logger = console; @@ -73,7 +76,7 @@ export const create: Task['run'] = async ({ key, template, sandboxDir }, { dryRu } }; -export const install: Task['run'] = async ({ sandboxDir }, { link, dryRun, debug }) => { +export const install: Task['run'] = async ({ sandboxDir, key }, { link, dryRun, debug }) => { const cwd = sandboxDir; await installYarn2({ cwd, dryRun, debug }); @@ -91,24 +94,22 @@ export const install: Task['run'] = async ({ sandboxDir }, { link, dryRun, debug // of any storybook packages as verdaccio is not able to both proxy to npm and publish over // the top. In theory this could mask issues where different versions cause problems. await addPackageResolutions({ cwd, dryRun, debug }); - await configureYarn2ForVerdaccio({ cwd, dryRun, debug }); + await configureYarn2ForVerdaccio({ cwd, dryRun, debug, key }); // Add vite plugin workarounds for frameworks that need it // (to support vite 5 without peer dep errors) - if ( - [ - 'bench-react-vite-default-ts', - 'bench-react-vite-default-ts-nodocs', - 'bench-react-vite-default-ts-test-build', - 'internal-ssv6-vite', - 'react-vite-default-js', - 'react-vite-default-ts', - 'svelte-vite-default-js', - 'svelte-vite-default-ts', - 'vue3-vite-default-js', - 'vue3-vite-default-ts', - ].includes(sandboxDir.split(sep).at(-1)) - ) { + const sandboxesNeedingWorkarounds: TemplateKey[] = [ + 'bench/react-vite-default-ts', + 'bench/react-vite-default-ts-nodocs', + 'bench/react-vite-default-ts-test-build', + 'react-vite/default-js', + 'react-vite/default-ts', + 'svelte-vite/default-js', + 'svelte-vite/default-ts', + 'vue3-vite/default-js', + 'vue3-vite/default-ts', + ]; + if (sandboxesNeedingWorkarounds.includes(key)) { await addWorkaroundResolutions({ cwd, dryRun, debug }); } @@ -168,7 +169,7 @@ export const init: Task['run'] = async ( switch (template.expected.framework) { case '@storybook/angular': - await prepareAngularSandbox(cwd); + await prepareAngularSandbox(cwd, template.name); break; default: } @@ -585,7 +586,7 @@ export const extendMain: Task['run'] = async ({ template, sandboxDir }, { disabl * In a second step a docs:json script is placed into the package.json to generate the * Compodoc documentation.json, which respects symlinks * */ -async function prepareAngularSandbox(cwd: string) { +async function prepareAngularSandbox(cwd: string, templateName: string) { const angularJson = await readJson(join(cwd, 'angular.json')); Object.keys(angularJson.projects).forEach((projectName: string) => { @@ -607,4 +608,24 @@ async function prepareAngularSandbox(cwd: string) { }; await writeJson(packageJsonPath, packageJson, { spaces: 2 }); + + // Set tsConfig compilerOptions + + const tsConfigPath = join(cwd, 'tsconfig.json'); + const tsConfigContent = readFileSync(tsConfigPath, { encoding: 'utf-8' }); + // This does not preserve comments, but that shouldn't be an issue for sandboxes + const tsConfigJson = JSON5.parse(tsConfigContent); + + tsConfigJson.compilerOptions.noImplicitOverride = false; + tsConfigJson.compilerOptions.noPropertyAccessFromIndexSignature = false; + tsConfigJson.compilerOptions.jsx = 'react'; + tsConfigJson.compilerOptions.skipLibCheck = true; + + if (templateName === 'Angular CLI (Version 15)') { + tsConfigJson.compilerOptions.paths = { + '@angular-devkit/*': ['node_modules/@angular-devkit/*'], + }; + } + + await writeJson(tsConfigPath, tsConfigJson, { spaces: 2 }); } diff --git a/scripts/tasks/sandbox.ts b/scripts/tasks/sandbox.ts index 5e3bade5d5d3..be1e5f72999a 100644 --- a/scripts/tasks/sandbox.ts +++ b/scripts/tasks/sandbox.ts @@ -11,17 +11,11 @@ const logger = console; export const sandbox: Task = { description: 'Create the sandbox from a template', dependsOn: ({ template }, { link }) => { - let shouldLink = link; - - if (template.expected.framework === '@storybook/angular') { - shouldLink = false; - } - if ('inDevelopment' in template && template.inDevelopment) { return ['run-registry', 'generate']; } - if (shouldLink) { + if (link) { return ['compile']; } @@ -31,24 +25,12 @@ export const sandbox: Task = { return pathExists(sandboxDir); }, async run(details, options) { - if (options.link) { - if (details.template.expected.framework === '@storybook/angular') { - // In Angular, tsc is spawn via Webpack and for some reason it follows the symlinks and doesn’t recognize it as node_modules. Hence, it does type checking on regular files. - // Angular's tsconfig compilerOptions are more strict than the ones in the mono-repo and results in many errors, therefore we use --no-link to circumvent them. - logger.log( - `Detected an Angular sandbox, which cannot be linked. Enabling --no-link mode..` - ); - // eslint-disable-next-line no-param-reassign - options.link = false; - } - - if (details.template.inDevelopment) { - logger.log( - `The ${options.template} has inDevelopment property enabled, therefore the sandbox for that template cannot be linked. Enabling --no-link mode..` - ); - // eslint-disable-next-line no-param-reassign - options.link = false; - } + if (options.link && details.template.inDevelopment) { + logger.log( + `The ${options.template} has inDevelopment property enabled, therefore the sandbox for that template cannot be linked. Enabling --no-link mode..` + ); + // eslint-disable-next-line no-param-reassign + options.link = false; } if (await this.ready(details)) { logger.info('πŸ—‘ Removing old sandbox dir'); diff --git a/scripts/tasks/test-runner-build.ts b/scripts/tasks/test-runner-build.ts index b57d4c803233..f902777fc63c 100644 --- a/scripts/tasks/test-runner-build.ts +++ b/scripts/tasks/test-runner-build.ts @@ -17,6 +17,7 @@ export const testRunnerBuild: Task & { port: number } = { '--junit', '--maxWorkers=2', '--failOnConsole', + '--skipTags="test-skip"', ]; // index-json mode is only supported in ssv7 diff --git a/scripts/utils/yarn.ts b/scripts/utils/yarn.ts index 19f87d1c0182..2f1fdc8b838e 100644 --- a/scripts/utils/yarn.ts +++ b/scripts/utils/yarn.ts @@ -1,6 +1,7 @@ import { pathExists, readJSON, writeJSON } from 'fs-extra'; import path from 'path'; +import type { TemplateKey } from 'get-template'; import { exec } from './exec'; // TODO -- should we generate this file a second time outside of CLI? import storybookVersions from '../../code/lib/cli/src/versions'; @@ -75,7 +76,12 @@ export const addWorkaroundResolutions = async ({ cwd, dryRun }: YarnOptions) => await writeJSON(packageJsonPath, packageJson, { spaces: 2 }); }; -export const configureYarn2ForVerdaccio = async ({ cwd, dryRun, debug }: YarnOptions) => { +export const configureYarn2ForVerdaccio = async ({ + cwd, + dryRun, + debug, + key, +}: YarnOptions & { key: TemplateKey }) => { const command = [ // We don't want to use the cache or we might get older copies of our built packages // (with identical versions), as yarn (correctly I guess) assumes the same version hasn't changed @@ -89,10 +95,20 @@ export const configureYarn2ForVerdaccio = async ({ cwd, dryRun, debug }: YarnOpt `yarn config set pnpFallbackMode none`, // We need to be able to update lockfile when bootstrapping the examples `yarn config set enableImmutableInstalls false`, + ]; + + if (key === 'svelte-kit/prerelease-ts') { + // Don't error with INCOMPATIBLE_PEER_DEPENDENCY for SvelteKit prerelease, it is expected + command.push( + `yarn config set logFilters --json '[ { "code": "YN0013", "level": "discard" } ]'` + ); + } else { // Discard all YN0013 - FETCH_NOT_CACHED messages // Error on YN0060 - INCOMPATIBLE_PEER_DEPENDENCY - `yarn config set logFilters --json '[ { "code": "YN0013", "level": "discard" }, { "code": "YN0060", "level": "error" } ]'`, - ]; + command.push( + `yarn config set logFilters --json '[ { "code": "YN0013", "level": "discard" }, { "code": "YN0060", "level": "error" } ]'` + ); + } await exec( command,