diff --git a/CHANGELOG.md b/CHANGELOG.md index 32d3d51cbc00..3115c6b4c070 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,14 @@ +## 8.3.3 + +- CLI: Show constraints in error when getting depndencies - [#29187](https://github.com/storybookjs/storybook/pull/29187), thanks @andrasczeh! +- React-Vite: Downgrade react-docgen-typescript plugin - [#29184](https://github.com/storybookjs/storybook/pull/29184), thanks @shilman! +- UI: Fix composed storybook TooltipLinkList bug where href isn't passed forward - [#29175](https://github.com/storybookjs/storybook/pull/29175), thanks @JSMike! + +## 8.3.2 + +- CLI: Fix skip-install for stable latest releases - [#29133](https://github.com/storybookjs/storybook/pull/29133), thanks @valentinpalkovic! +- Core: Do not add packageManager field to package.json during `storybook dev` - [#29152](https://github.com/storybookjs/storybook/pull/29152), thanks @valentinpalkovic! + ## 8.3.1 - Angular: Fix sourceDecorator to apply excludeDecorators flag - [#29069](https://github.com/storybookjs/storybook/pull/29069), thanks @JSMike! diff --git a/CHANGELOG.prerelease.md b/CHANGELOG.prerelease.md index 692c7edaf2e9..b9179e8d6dcc 100644 --- a/CHANGELOG.prerelease.md +++ b/CHANGELOG.prerelease.md @@ -1,3 +1,22 @@ +## 8.4.0-alpha.1 + +- Addon Test: Support story name as test description - [#29147](https://github.com/storybookjs/storybook/pull/29147), thanks @InfiniteXyy! +- Addon-Interactions: Use ansi-to-html for colored test errors - [#29110](https://github.com/storybookjs/storybook/pull/29110), thanks @kasperpeulen! +- Angular: Fix sourceDecorator to apply excludeDecorators flag - [#29069](https://github.com/storybookjs/storybook/pull/29069), thanks @JSMike! +- Builder-vite: Replace .at() call with [] in codegen - [#29048](https://github.com/storybookjs/storybook/pull/29048), thanks @Chudesnov! +- CLI: Ensure `.gitignore` updated via CLI ends with a newline - [#29124](https://github.com/storybookjs/storybook/pull/29124), thanks @3w36zj6! +- CLI: Fix skip-install for stable latest releases - [#29133](https://github.com/storybookjs/storybook/pull/29133), thanks @valentinpalkovic! +- CLI: Show constraints in error when getting depndencies - [#29187](https://github.com/storybookjs/storybook/pull/29187), thanks @andrasczeh! +- Core: Do not add packageManager field to package.json during `storybook dev` - [#29152](https://github.com/storybookjs/storybook/pull/29152), thanks @valentinpalkovic! +- Core: Do not prebundle better-opn - [#29137](https://github.com/storybookjs/storybook/pull/29137), thanks @valentinpalkovic! +- Core: Do not prebundle jsdoc-type-pratt-parser - [#29134](https://github.com/storybookjs/storybook/pull/29134), thanks @valentinpalkovic! +- Core: Replace `fs-extra` with the native APIs - [#29126](https://github.com/storybookjs/storybook/pull/29126), thanks @ziebam! +- Next.js: Upgrade sass-loader from ^12 to ^13 - [#29040](https://github.com/storybookjs/storybook/pull/29040), thanks @HoncharenkoZhenya! +- React-Vite: Downgrade react-docgen-typescript plugin - [#29184](https://github.com/storybookjs/storybook/pull/29184), thanks @shilman! +- UI: Fix composed storybook TooltipLinkList bug where href isn't passed forward - [#29175](https://github.com/storybookjs/storybook/pull/29175), thanks @JSMike! +- Viewport-addon: Add InitialViewportKeys type to viewport addon - [#29182](https://github.com/storybookjs/storybook/pull/29182), thanks @hyeongrok7874! +- Vite: Add jsdoc-type-pratt-parser to `optimizeDeps` - [#29179](https://github.com/storybookjs/storybook/pull/29179), thanks @tobiasdiez! + ## 8.4.0-alpha.0 diff --git a/code/addons/a11y/package.json b/code/addons/a11y/package.json index 82f3c87c1375..83a5e8b395c6 100644 --- a/code/addons/a11y/package.json +++ b/code/addons/a11y/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/addon-a11y", - "version": "8.4.0-alpha.0", + "version": "8.4.0-alpha.1", "description": "Test component compliance with web accessibility standards", "keywords": [ "a11y", diff --git a/code/addons/actions/package.json b/code/addons/actions/package.json index c646b66260db..b2d07e4a6d44 100644 --- a/code/addons/actions/package.json +++ b/code/addons/actions/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/addon-actions", - "version": "8.4.0-alpha.0", + "version": "8.4.0-alpha.1", "description": "Get UI feedback when an action is performed on an interactive element", "keywords": [ "storybook", diff --git a/code/addons/backgrounds/package.json b/code/addons/backgrounds/package.json index 51cb0ada1bc4..825f3d5ee846 100644 --- a/code/addons/backgrounds/package.json +++ b/code/addons/backgrounds/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/addon-backgrounds", - "version": "8.4.0-alpha.0", + "version": "8.4.0-alpha.1", "description": "Switch backgrounds to view components in different settings", "keywords": [ "addon", diff --git a/code/addons/controls/package.json b/code/addons/controls/package.json index 3dabde260726..3eb2df924349 100644 --- a/code/addons/controls/package.json +++ b/code/addons/controls/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/addon-controls", - "version": "8.4.0-alpha.0", + "version": "8.4.0-alpha.1", "description": "Interact with component inputs dynamically in the Storybook UI", "keywords": [ "addon", diff --git a/code/addons/docs/package.json b/code/addons/docs/package.json index 7e38a4d00383..1edb8870f13b 100644 --- a/code/addons/docs/package.json +++ b/code/addons/docs/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/addon-docs", - "version": "8.4.0-alpha.0", + "version": "8.4.0-alpha.1", "description": "Document component usage and properties in Markdown", "keywords": [ "addon", diff --git a/code/addons/essentials/package.json b/code/addons/essentials/package.json index 6a1611d0a48e..89a11b3820b0 100644 --- a/code/addons/essentials/package.json +++ b/code/addons/essentials/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/addon-essentials", - "version": "8.4.0-alpha.0", + "version": "8.4.0-alpha.1", "description": "Curated addons to bring out the best of Storybook", "keywords": [ "addon", diff --git a/code/addons/gfm/package.json b/code/addons/gfm/package.json index 37a490a15e46..61b66decc090 100644 --- a/code/addons/gfm/package.json +++ b/code/addons/gfm/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/addon-mdx-gfm", - "version": "8.4.0-alpha.0", + "version": "8.4.0-alpha.1", "description": "GitHub Flavored Markdown in Storybook", "keywords": [ "addon", diff --git a/code/addons/highlight/package.json b/code/addons/highlight/package.json index 88bab3c462b3..b3194e2a8610 100644 --- a/code/addons/highlight/package.json +++ b/code/addons/highlight/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/addon-highlight", - "version": "8.4.0-alpha.0", + "version": "8.4.0-alpha.1", "description": "Highlight DOM nodes within your stories", "keywords": [ "storybook-addons", diff --git a/code/addons/interactions/package.json b/code/addons/interactions/package.json index 9deb3a01105f..b59e42d1167a 100644 --- a/code/addons/interactions/package.json +++ b/code/addons/interactions/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/addon-interactions", - "version": "8.4.0-alpha.0", + "version": "8.4.0-alpha.1", "description": "Automate, test and debug user interactions", "keywords": [ "storybook-addons", diff --git a/code/addons/jest/package.json b/code/addons/jest/package.json index 8fb9fc0b47d7..d1420346c537 100644 --- a/code/addons/jest/package.json +++ b/code/addons/jest/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/addon-jest", - "version": "8.4.0-alpha.0", + "version": "8.4.0-alpha.1", "description": "React storybook addon that show component jest report", "keywords": [ "addon", diff --git a/code/addons/links/package.json b/code/addons/links/package.json index ca95baea88ac..42d4b1bc15f4 100644 --- a/code/addons/links/package.json +++ b/code/addons/links/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/addon-links", - "version": "8.4.0-alpha.0", + "version": "8.4.0-alpha.1", "description": "Link stories together to build demos and prototypes with your UI components", "keywords": [ "addon", diff --git a/code/addons/measure/package.json b/code/addons/measure/package.json index b09da705f4e1..f30683e14138 100644 --- a/code/addons/measure/package.json +++ b/code/addons/measure/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/addon-measure", - "version": "8.4.0-alpha.0", + "version": "8.4.0-alpha.1", "description": "Inspect layouts by visualizing the box model", "keywords": [ "storybook-addons", diff --git a/code/addons/onboarding/package.json b/code/addons/onboarding/package.json index c33ab5d84d22..b9236520bb73 100644 --- a/code/addons/onboarding/package.json +++ b/code/addons/onboarding/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/addon-onboarding", - "version": "8.4.0-alpha.0", + "version": "8.4.0-alpha.1", "description": "Storybook Addon Onboarding - Introduces a new onboarding experience", "keywords": [ "storybook-addons", diff --git a/code/addons/outline/package.json b/code/addons/outline/package.json index 918c00c7945f..7410c7255772 100644 --- a/code/addons/outline/package.json +++ b/code/addons/outline/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/addon-outline", - "version": "8.4.0-alpha.0", + "version": "8.4.0-alpha.1", "description": "Outline all elements with CSS to help with layout placement and alignment", "keywords": [ "storybook-addons", diff --git a/code/addons/storysource/package.json b/code/addons/storysource/package.json index e79924cda4db..43bac6318cba 100644 --- a/code/addons/storysource/package.json +++ b/code/addons/storysource/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/addon-storysource", - "version": "8.4.0-alpha.0", + "version": "8.4.0-alpha.1", "description": "View a story’s source code to see how it works and paste into your app", "keywords": [ "addon", diff --git a/code/addons/test/package.json b/code/addons/test/package.json index 09f9235271f4..ab78d5cc6840 100644 --- a/code/addons/test/package.json +++ b/code/addons/test/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/experimental-addon-test", - "version": "8.4.0-alpha.0", + "version": "8.4.0-alpha.1", "description": "Integrate Vitest with Storybook", "keywords": [ "storybook-addons", diff --git a/code/addons/themes/docs/api.md b/code/addons/themes/docs/api.md index 143178b00047..a45818ab724e 100644 --- a/code/addons/themes/docs/api.md +++ b/code/addons/themes/docs/api.md @@ -148,7 +148,7 @@ export const myCustomDecorator = ({ themes, defaultState, ...rest }) => { Let's use Vuetify as an example. Vuetify uses it's own global state to know which theme to render. To build a custom decorator to accommodate this method we'll need to do the following ```js -// .storybook/withVeutifyTheme.decorator.js +// .storybook/withVuetifyTheme.decorator.js import { DecoratorHelpers } from '@storybook/addon-themes'; import { useTheme } from 'vuetify'; diff --git a/code/addons/themes/package.json b/code/addons/themes/package.json index 87c826276318..b97dea94c2c8 100644 --- a/code/addons/themes/package.json +++ b/code/addons/themes/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/addon-themes", - "version": "8.4.0-alpha.0", + "version": "8.4.0-alpha.1", "description": "Switch between multiple themes for you components in Storybook", "keywords": [ "css", diff --git a/code/addons/toolbars/package.json b/code/addons/toolbars/package.json index 87d838129b7b..a7e596d63f9a 100644 --- a/code/addons/toolbars/package.json +++ b/code/addons/toolbars/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/addon-toolbars", - "version": "8.4.0-alpha.0", + "version": "8.4.0-alpha.1", "description": "Create your own toolbar items that control story rendering", "keywords": [ "addon", diff --git a/code/addons/viewport/package.json b/code/addons/viewport/package.json index d1c6c85fe942..d0363cb96de7 100644 --- a/code/addons/viewport/package.json +++ b/code/addons/viewport/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/addon-viewport", - "version": "8.4.0-alpha.0", + "version": "8.4.0-alpha.1", "description": "Build responsive components by adjusting Storybook’s viewport size and orientation", "keywords": [ "addon", diff --git a/code/addons/viewport/src/defaults.ts b/code/addons/viewport/src/defaults.ts index 4190ccb7f3cc..d29e380ac230 100644 --- a/code/addons/viewport/src/defaults.ts +++ b/code/addons/viewport/src/defaults.ts @@ -1,6 +1,6 @@ import type { ViewportMap } from './types'; -export const INITIAL_VIEWPORTS: ViewportMap = { +const INITIAL_VIEWPORTS_DATA = { iphone5: { name: 'iPhone 5', styles: { @@ -225,7 +225,12 @@ export const INITIAL_VIEWPORTS: ViewportMap = { }, type: 'mobile', }, -}; +} as const; + +export type InitialViewportKeys = keyof typeof INITIAL_VIEWPORTS_DATA; + +export const INITIAL_VIEWPORTS: ViewportMap = INITIAL_VIEWPORTS_DATA; + export const DEFAULT_VIEWPORT = 'responsive'; export const MINIMAL_VIEWPORTS: ViewportMap = { diff --git a/code/builders/builder-vite/package.json b/code/builders/builder-vite/package.json index 94fde0bf8cfb..f32b264c1495 100644 --- a/code/builders/builder-vite/package.json +++ b/code/builders/builder-vite/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/builder-vite", - "version": "8.4.0-alpha.0", + "version": "8.4.0-alpha.1", "description": "A plugin to run and build Storybooks with Vite", "homepage": "https://github.com/storybookjs/storybook/tree/next/code/builders/builder-vite/#readme", "bugs": { diff --git a/code/builders/builder-vite/src/codegen-modern-iframe-script.ts b/code/builders/builder-vite/src/codegen-modern-iframe-script.ts index 7ad50afec12f..4abf4c22f315 100644 --- a/code/builders/builder-vite/src/codegen-modern-iframe-script.ts +++ b/code/builders/builder-vite/src/codegen-modern-iframe-script.ts @@ -27,7 +27,7 @@ export async function generateModernIframeScriptCode(options: Options, projectRo .map( (previewAnnotation, index) => // Prefer the updated module from an HMR update, otherwise import the original module - `hmrPreviewAnnotationModules.at(${index}) ?? import('${previewAnnotation}')` + `hmrPreviewAnnotationModules[${index}] ?? import('${previewAnnotation}')` ) .join(',\n')}]) return composeConfigs(configs); diff --git a/code/builders/builder-vite/src/optimizeDeps.ts b/code/builders/builder-vite/src/optimizeDeps.ts index 0e81d7d5afc4..cbade7a268a6 100644 --- a/code/builders/builder-vite/src/optimizeDeps.ts +++ b/code/builders/builder-vite/src/optimizeDeps.ts @@ -32,6 +32,7 @@ const INCLUDE_CANDIDATES = [ 'fast-deep-equal', 'html-tags', 'isobject', + 'jsdoc-type-pratt-parser', // TODO: Remove this once it's converted to ESM: https://github.com/jsdoc-type-pratt-parser/jsdoc-type-pratt-parser/issues/173 'loader-utils', 'lodash/camelCase.js', 'lodash/camelCase', diff --git a/code/builders/builder-webpack5/package.json b/code/builders/builder-webpack5/package.json index 2d4c5330bd01..65d0b7ba22e8 100644 --- a/code/builders/builder-webpack5/package.json +++ b/code/builders/builder-webpack5/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/builder-webpack5", - "version": "8.4.0-alpha.0", + "version": "8.4.0-alpha.1", "description": "Storybook framework-agnostic API", "keywords": [ "storybook" diff --git a/code/core/package.json b/code/core/package.json index e4d64b8fb473..c00274613588 100644 --- a/code/core/package.json +++ b/code/core/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/core", - "version": "8.4.0-alpha.0", + "version": "8.4.0-alpha.1", "description": "Storybook framework-agnostic API", "keywords": [ "storybook" @@ -376,6 +376,7 @@ "glob": "^10.0.0", "globby": "^14.0.1", "handlebars": "^4.7.7", + "jiti": "^1.21.6", "js-yaml": "^4.1.0", "lazy-universal-dotenv": "^4.0.0", "leven": "^4.0.0", diff --git a/code/core/src/common/js-package-manager/JsPackageManager.ts b/code/core/src/common/js-package-manager/JsPackageManager.ts index 305ba8d99ed2..1d1f2ef5367c 100644 --- a/code/core/src/common/js-package-manager/JsPackageManager.ts +++ b/code/core/src/common/js-package-manager/JsPackageManager.ts @@ -418,7 +418,7 @@ export abstract class JsPackageManager { .find((version) => satisfies(version, constraint)); invariant( latestVersionSatisfyingTheConstraint != null, - 'No version satisfying the constraint.' + `No version satisfying the constraint: ${packageName}${constraint}` ); return latestVersionSatisfyingTheConstraint; } diff --git a/code/core/src/common/js-package-manager/JsPackageManagerFactory.ts b/code/core/src/common/js-package-manager/JsPackageManagerFactory.ts index 7477a1e5f2c0..4b3c6184e59f 100644 --- a/code/core/src/common/js-package-manager/JsPackageManagerFactory.ts +++ b/code/core/src/common/js-package-manager/JsPackageManagerFactory.ts @@ -125,17 +125,35 @@ export class JsPackageManagerFactory { } function hasNPM(cwd?: string) { - const npmVersionCommand = spawnSync('npm', ['--version'], { cwd, shell: true }); + const npmVersionCommand = spawnSync('npm', ['--version'], { + cwd, + shell: true, + env: { + COREPACK_ENABLE_STRICT: '0', + }, + }); return npmVersionCommand.status === 0; } function hasPNPM(cwd?: string) { - const pnpmVersionCommand = spawnSync('pnpm', ['--version'], { cwd, shell: true }); + const pnpmVersionCommand = spawnSync('pnpm', ['--version'], { + cwd, + shell: true, + env: { + COREPACK_ENABLE_STRICT: '0', + }, + }); return pnpmVersionCommand.status === 0; } function getYarnVersion(cwd?: string): 1 | 2 | undefined { - const yarnVersionCommand = spawnSync('yarn', ['--version'], { cwd, shell: true }); + const yarnVersionCommand = spawnSync('yarn', ['--version'], { + cwd, + shell: true, + env: { + COREPACK_ENABLE_STRICT: '0', + }, + }); if (yarnVersionCommand.status !== 0) { return undefined; diff --git a/code/core/src/common/versions.ts b/code/core/src/common/versions.ts index 11ac53790fcd..cafd27429125 100644 --- a/code/core/src/common/versions.ts +++ b/code/core/src/common/versions.ts @@ -1,87 +1,87 @@ // auto generated file, do not edit export default { - '@storybook/addon-a11y': '8.4.0-alpha.0', - '@storybook/addon-actions': '8.4.0-alpha.0', - '@storybook/addon-backgrounds': '8.4.0-alpha.0', - '@storybook/addon-controls': '8.4.0-alpha.0', - '@storybook/addon-docs': '8.4.0-alpha.0', - '@storybook/addon-essentials': '8.4.0-alpha.0', - '@storybook/addon-mdx-gfm': '8.4.0-alpha.0', - '@storybook/addon-highlight': '8.4.0-alpha.0', - '@storybook/addon-interactions': '8.4.0-alpha.0', - '@storybook/addon-jest': '8.4.0-alpha.0', - '@storybook/addon-links': '8.4.0-alpha.0', - '@storybook/addon-measure': '8.4.0-alpha.0', - '@storybook/addon-onboarding': '8.4.0-alpha.0', - '@storybook/addon-outline': '8.4.0-alpha.0', - '@storybook/addon-storysource': '8.4.0-alpha.0', - '@storybook/experimental-addon-test': '8.4.0-alpha.0', - '@storybook/addon-themes': '8.4.0-alpha.0', - '@storybook/addon-toolbars': '8.4.0-alpha.0', - '@storybook/addon-viewport': '8.4.0-alpha.0', - '@storybook/builder-vite': '8.4.0-alpha.0', - '@storybook/builder-webpack5': '8.4.0-alpha.0', - '@storybook/core': '8.4.0-alpha.0', - '@storybook/builder-manager': '8.4.0-alpha.0', - '@storybook/channels': '8.4.0-alpha.0', - '@storybook/client-logger': '8.4.0-alpha.0', - '@storybook/components': '8.4.0-alpha.0', - '@storybook/core-common': '8.4.0-alpha.0', - '@storybook/core-events': '8.4.0-alpha.0', - '@storybook/core-server': '8.4.0-alpha.0', - '@storybook/csf-tools': '8.4.0-alpha.0', - '@storybook/docs-tools': '8.4.0-alpha.0', - '@storybook/manager': '8.4.0-alpha.0', - '@storybook/manager-api': '8.4.0-alpha.0', - '@storybook/node-logger': '8.4.0-alpha.0', - '@storybook/preview': '8.4.0-alpha.0', - '@storybook/preview-api': '8.4.0-alpha.0', - '@storybook/router': '8.4.0-alpha.0', - '@storybook/telemetry': '8.4.0-alpha.0', - '@storybook/theming': '8.4.0-alpha.0', - '@storybook/types': '8.4.0-alpha.0', - '@storybook/angular': '8.4.0-alpha.0', - '@storybook/ember': '8.4.0-alpha.0', - '@storybook/experimental-nextjs-vite': '8.4.0-alpha.0', - '@storybook/html-vite': '8.4.0-alpha.0', - '@storybook/html-webpack5': '8.4.0-alpha.0', - '@storybook/nextjs': '8.4.0-alpha.0', - '@storybook/preact-vite': '8.4.0-alpha.0', - '@storybook/preact-webpack5': '8.4.0-alpha.0', - '@storybook/react-vite': '8.4.0-alpha.0', - '@storybook/react-webpack5': '8.4.0-alpha.0', - '@storybook/server-webpack5': '8.4.0-alpha.0', - '@storybook/svelte-vite': '8.4.0-alpha.0', - '@storybook/svelte-webpack5': '8.4.0-alpha.0', - '@storybook/sveltekit': '8.4.0-alpha.0', - '@storybook/vue3-vite': '8.4.0-alpha.0', - '@storybook/vue3-webpack5': '8.4.0-alpha.0', - '@storybook/web-components-vite': '8.4.0-alpha.0', - '@storybook/web-components-webpack5': '8.4.0-alpha.0', - '@storybook/blocks': '8.4.0-alpha.0', - storybook: '8.4.0-alpha.0', - sb: '8.4.0-alpha.0', - '@storybook/cli': '8.4.0-alpha.0', - '@storybook/codemod': '8.4.0-alpha.0', - '@storybook/core-webpack': '8.4.0-alpha.0', - 'create-storybook': '8.4.0-alpha.0', - '@storybook/csf-plugin': '8.4.0-alpha.0', - '@storybook/instrumenter': '8.4.0-alpha.0', - '@storybook/react-dom-shim': '8.4.0-alpha.0', - '@storybook/source-loader': '8.4.0-alpha.0', - '@storybook/test': '8.4.0-alpha.0', - '@storybook/preset-create-react-app': '8.4.0-alpha.0', - '@storybook/preset-html-webpack': '8.4.0-alpha.0', - '@storybook/preset-preact-webpack': '8.4.0-alpha.0', - '@storybook/preset-react-webpack': '8.4.0-alpha.0', - '@storybook/preset-server-webpack': '8.4.0-alpha.0', - '@storybook/preset-svelte-webpack': '8.4.0-alpha.0', - '@storybook/preset-vue3-webpack': '8.4.0-alpha.0', - '@storybook/html': '8.4.0-alpha.0', - '@storybook/preact': '8.4.0-alpha.0', - '@storybook/react': '8.4.0-alpha.0', - '@storybook/server': '8.4.0-alpha.0', - '@storybook/svelte': '8.4.0-alpha.0', - '@storybook/vue3': '8.4.0-alpha.0', - '@storybook/web-components': '8.4.0-alpha.0', + '@storybook/addon-a11y': '8.4.0-alpha.1', + '@storybook/addon-actions': '8.4.0-alpha.1', + '@storybook/addon-backgrounds': '8.4.0-alpha.1', + '@storybook/addon-controls': '8.4.0-alpha.1', + '@storybook/addon-docs': '8.4.0-alpha.1', + '@storybook/addon-essentials': '8.4.0-alpha.1', + '@storybook/addon-mdx-gfm': '8.4.0-alpha.1', + '@storybook/addon-highlight': '8.4.0-alpha.1', + '@storybook/addon-interactions': '8.4.0-alpha.1', + '@storybook/addon-jest': '8.4.0-alpha.1', + '@storybook/addon-links': '8.4.0-alpha.1', + '@storybook/addon-measure': '8.4.0-alpha.1', + '@storybook/addon-onboarding': '8.4.0-alpha.1', + '@storybook/addon-outline': '8.4.0-alpha.1', + '@storybook/addon-storysource': '8.4.0-alpha.1', + '@storybook/experimental-addon-test': '8.4.0-alpha.1', + '@storybook/addon-themes': '8.4.0-alpha.1', + '@storybook/addon-toolbars': '8.4.0-alpha.1', + '@storybook/addon-viewport': '8.4.0-alpha.1', + '@storybook/builder-vite': '8.4.0-alpha.1', + '@storybook/builder-webpack5': '8.4.0-alpha.1', + '@storybook/core': '8.4.0-alpha.1', + '@storybook/builder-manager': '8.4.0-alpha.1', + '@storybook/channels': '8.4.0-alpha.1', + '@storybook/client-logger': '8.4.0-alpha.1', + '@storybook/components': '8.4.0-alpha.1', + '@storybook/core-common': '8.4.0-alpha.1', + '@storybook/core-events': '8.4.0-alpha.1', + '@storybook/core-server': '8.4.0-alpha.1', + '@storybook/csf-tools': '8.4.0-alpha.1', + '@storybook/docs-tools': '8.4.0-alpha.1', + '@storybook/manager': '8.4.0-alpha.1', + '@storybook/manager-api': '8.4.0-alpha.1', + '@storybook/node-logger': '8.4.0-alpha.1', + '@storybook/preview': '8.4.0-alpha.1', + '@storybook/preview-api': '8.4.0-alpha.1', + '@storybook/router': '8.4.0-alpha.1', + '@storybook/telemetry': '8.4.0-alpha.1', + '@storybook/theming': '8.4.0-alpha.1', + '@storybook/types': '8.4.0-alpha.1', + '@storybook/angular': '8.4.0-alpha.1', + '@storybook/ember': '8.4.0-alpha.1', + '@storybook/experimental-nextjs-vite': '8.4.0-alpha.1', + '@storybook/html-vite': '8.4.0-alpha.1', + '@storybook/html-webpack5': '8.4.0-alpha.1', + '@storybook/nextjs': '8.4.0-alpha.1', + '@storybook/preact-vite': '8.4.0-alpha.1', + '@storybook/preact-webpack5': '8.4.0-alpha.1', + '@storybook/react-vite': '8.4.0-alpha.1', + '@storybook/react-webpack5': '8.4.0-alpha.1', + '@storybook/server-webpack5': '8.4.0-alpha.1', + '@storybook/svelte-vite': '8.4.0-alpha.1', + '@storybook/svelte-webpack5': '8.4.0-alpha.1', + '@storybook/sveltekit': '8.4.0-alpha.1', + '@storybook/vue3-vite': '8.4.0-alpha.1', + '@storybook/vue3-webpack5': '8.4.0-alpha.1', + '@storybook/web-components-vite': '8.4.0-alpha.1', + '@storybook/web-components-webpack5': '8.4.0-alpha.1', + '@storybook/blocks': '8.4.0-alpha.1', + storybook: '8.4.0-alpha.1', + sb: '8.4.0-alpha.1', + '@storybook/cli': '8.4.0-alpha.1', + '@storybook/codemod': '8.4.0-alpha.1', + '@storybook/core-webpack': '8.4.0-alpha.1', + 'create-storybook': '8.4.0-alpha.1', + '@storybook/csf-plugin': '8.4.0-alpha.1', + '@storybook/instrumenter': '8.4.0-alpha.1', + '@storybook/react-dom-shim': '8.4.0-alpha.1', + '@storybook/source-loader': '8.4.0-alpha.1', + '@storybook/test': '8.4.0-alpha.1', + '@storybook/preset-create-react-app': '8.4.0-alpha.1', + '@storybook/preset-html-webpack': '8.4.0-alpha.1', + '@storybook/preset-preact-webpack': '8.4.0-alpha.1', + '@storybook/preset-react-webpack': '8.4.0-alpha.1', + '@storybook/preset-server-webpack': '8.4.0-alpha.1', + '@storybook/preset-svelte-webpack': '8.4.0-alpha.1', + '@storybook/preset-vue3-webpack': '8.4.0-alpha.1', + '@storybook/html': '8.4.0-alpha.1', + '@storybook/preact': '8.4.0-alpha.1', + '@storybook/react': '8.4.0-alpha.1', + '@storybook/server': '8.4.0-alpha.1', + '@storybook/svelte': '8.4.0-alpha.1', + '@storybook/vue3': '8.4.0-alpha.1', + '@storybook/web-components': '8.4.0-alpha.1', }; diff --git a/code/core/src/components/components/tooltip/ListItem.tsx b/code/core/src/components/components/tooltip/ListItem.tsx index 068ab88d59c2..8d50a05273de 100644 --- a/code/core/src/components/components/tooltip/ListItem.tsx +++ b/code/core/src/components/components/tooltip/ListItem.tsx @@ -169,7 +169,7 @@ const getItemProps = memoize(100)((onClick, href, LinkWrapper) => ({ export type LinkWrapperType = (props: any) => ReactNode; -export interface ListItemProps extends Omit, 'href' | 'title'> { +export interface ListItemProps extends Omit, 'title'> { loading?: boolean; title?: ReactNode; center?: ReactNode; diff --git a/code/core/src/components/components/tooltip/TooltipLinkList.tsx b/code/core/src/components/components/tooltip/TooltipLinkList.tsx index 51540335d034..f1467babec3a 100644 --- a/code/core/src/components/components/tooltip/TooltipLinkList.tsx +++ b/code/core/src/components/components/tooltip/TooltipLinkList.tsx @@ -22,7 +22,7 @@ export interface Link extends Omit { id: string; onClick?: ( event: SyntheticEvent, - item: Pick + item: Pick ) => void; } @@ -31,11 +31,11 @@ interface ItemProps extends Link { } const Item = ({ id, onClick, ...rest }: ItemProps) => { - const { active, disabled, title } = rest; + const { active, disabled, title, href } = rest; const handleClick = useCallback( - (event: SyntheticEvent) => onClick?.(event, { id, active, disabled, title }), - [onClick, id, active, disabled, title] + (event: SyntheticEvent) => onClick?.(event, { id, active, disabled, title, href }), + [onClick, id, active, disabled, title, href] ); return ; diff --git a/code/core/src/csf-tools/vitest-plugin/transformer.test.ts b/code/core/src/csf-tools/vitest-plugin/transformer.test.ts index 72a1d05ab403..84d9ac273718 100644 --- a/code/core/src/csf-tools/vitest-plugin/transformer.test.ts +++ b/code/core/src/csf-tools/vitest-plugin/transformer.test.ts @@ -213,6 +213,55 @@ describe('transformer', () => { `); }); + describe("use the story's name as test title", () => { + it('should support CSF v3 via name property', async () => { + const code = ` + export default { component: Button } + export const Primary = { name: "custom name" };`; + const result = await transform({ code }); + + expect(result.code).toMatchInlineSnapshot(` + import { test as _test, expect as _expect } from "vitest"; + import { testStory as _testStory } from "@storybook/experimental-addon-test/internal/test-utils"; + const _meta = { + component: Button, + title: "automatic/calculated/title" + }; + export default _meta; + export const Primary = { + name: "custom name" + }; + const _isRunningFromThisFile = import.meta.url.includes(globalThis.__vitest_worker__.filepath ?? _expect.getState().testPath); + if (_isRunningFromThisFile) { + _test("custom name", _testStory("Primary", Primary, _meta, [])); + } + `); + }); + + it('should support CSF v1/v2 via storyName property', async () => { + const code = ` + export default { component: Button } + export const Story = () => {} + Story.storyName = 'custom name';`; + const result = await transform({ code: code }); + expect(result.code).toMatchInlineSnapshot(` + import { test as _test, expect as _expect } from "vitest"; + import { testStory as _testStory } from "@storybook/experimental-addon-test/internal/test-utils"; + const _meta = { + component: Button, + title: "automatic/calculated/title" + }; + export default _meta; + export const Story = () => {}; + Story.storyName = 'custom name'; + const _isRunningFromThisFile = import.meta.url.includes(globalThis.__vitest_worker__.filepath ?? _expect.getState().testPath); + if (_isRunningFromThisFile) { + _test("custom name", _testStory("Story", Story, _meta, [])); + } + `); + }); + }); + it('should add test statement to const declared exported stories', async () => { const code = ` export default {}; diff --git a/code/core/src/csf-tools/vitest-plugin/transformer.ts b/code/core/src/csf-tools/vitest-plugin/transformer.ts index 51ea1169f6c3..778ea752f1d0 100644 --- a/code/core/src/csf-tools/vitest-plugin/transformer.ts +++ b/code/core/src/csf-tools/vitest-plugin/transformer.ts @@ -202,15 +202,17 @@ export async function vitestTransform({ const getTestStatementForStory = ({ exportName, + testTitle, node, }: { exportName: string; + testTitle: string; node: t.Node; }): t.ExpressionStatement => { // Create the _test expression directly using the exportName identifier const testStoryCall = t.expressionStatement( t.callExpression(vitestTestId, [ - t.stringLiteral(exportName), + t.stringLiteral(testTitle), t.callExpression(testStoryId, [ t.stringLiteral(exportName), t.identifier(exportName), @@ -239,10 +241,9 @@ export async function vitestTransform({ return; } - return getTestStatementForStory({ - exportName, - node, - }); + // use the story's name as the test title for vitest, and fallback to exportName + const testTitle = parsed._stories[exportName].name ?? exportName; + return getTestStatementForStory({ testTitle, exportName, node }); }) .filter((st) => !!st) as t.ExpressionStatement[]; diff --git a/code/core/src/manager-api/version.ts b/code/core/src/manager-api/version.ts index 83c9913763e5..1a5e51781450 100644 --- a/code/core/src/manager-api/version.ts +++ b/code/core/src/manager-api/version.ts @@ -1 +1 @@ -export const version = '8.4.0-alpha.0'; +export const version = '8.4.0-alpha.1'; diff --git a/code/deprecated/builder-manager/package.json b/code/deprecated/builder-manager/package.json index cd56ab5e48b0..8ff3caca0b47 100644 --- a/code/deprecated/builder-manager/package.json +++ b/code/deprecated/builder-manager/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/builder-manager", - "version": "8.4.0-alpha.0", + "version": "8.4.0-alpha.1", "description": "Storybook manager builder", "keywords": [ "storybook" diff --git a/code/deprecated/channels/package.json b/code/deprecated/channels/package.json index 0c5d9207f286..f4b6a3bce98c 100644 --- a/code/deprecated/channels/package.json +++ b/code/deprecated/channels/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/channels", - "version": "8.4.0-alpha.0", + "version": "8.4.0-alpha.1", "description": "", "keywords": [ "storybook" diff --git a/code/deprecated/client-logger/package.json b/code/deprecated/client-logger/package.json index e925983b6e29..4dda619212f4 100644 --- a/code/deprecated/client-logger/package.json +++ b/code/deprecated/client-logger/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/client-logger", - "version": "8.4.0-alpha.0", + "version": "8.4.0-alpha.1", "description": "", "keywords": [ "storybook" diff --git a/code/deprecated/components/package.json b/code/deprecated/components/package.json index f05ba78d1004..51f910d53a55 100644 --- a/code/deprecated/components/package.json +++ b/code/deprecated/components/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/components", - "version": "8.4.0-alpha.0", + "version": "8.4.0-alpha.1", "description": "Core Storybook Components", "keywords": [ "storybook" diff --git a/code/deprecated/core-common/package.json b/code/deprecated/core-common/package.json index 6f5d1305fac6..be1a0bddfadb 100644 --- a/code/deprecated/core-common/package.json +++ b/code/deprecated/core-common/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/core-common", - "version": "8.4.0-alpha.0", + "version": "8.4.0-alpha.1", "description": "Storybook framework-agnostic API", "keywords": [ "storybook" diff --git a/code/deprecated/core-events/package.json b/code/deprecated/core-events/package.json index b7f3d3b567a5..b86e168d2b05 100644 --- a/code/deprecated/core-events/package.json +++ b/code/deprecated/core-events/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/core-events", - "version": "8.4.0-alpha.0", + "version": "8.4.0-alpha.1", "description": "Event names used in storybook core", "keywords": [ "storybook" diff --git a/code/deprecated/core-server/package.json b/code/deprecated/core-server/package.json index 057ed66ca4a6..fd4ef20f09c3 100644 --- a/code/deprecated/core-server/package.json +++ b/code/deprecated/core-server/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/core-server", - "version": "8.4.0-alpha.0", + "version": "8.4.0-alpha.1", "description": "Storybook framework-agnostic API", "keywords": [ "storybook" diff --git a/code/deprecated/csf-tools/package.json b/code/deprecated/csf-tools/package.json index 95a5ea0c608d..6971cc20c9ca 100644 --- a/code/deprecated/csf-tools/package.json +++ b/code/deprecated/csf-tools/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/csf-tools", - "version": "8.4.0-alpha.0", + "version": "8.4.0-alpha.1", "description": "Parse and manipulate CSF and Storybook config files", "keywords": [ "storybook" diff --git a/code/deprecated/docs-tools/package.json b/code/deprecated/docs-tools/package.json index c591880ff39b..4ec233812e5d 100644 --- a/code/deprecated/docs-tools/package.json +++ b/code/deprecated/docs-tools/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/docs-tools", - "version": "8.4.0-alpha.0", + "version": "8.4.0-alpha.1", "description": "Shared utility functions for frameworks to implement docs", "keywords": [ "storybook" diff --git a/code/deprecated/manager-api/package.json b/code/deprecated/manager-api/package.json index f2a9d61f34fc..22545b213f7f 100644 --- a/code/deprecated/manager-api/package.json +++ b/code/deprecated/manager-api/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/manager-api", - "version": "8.4.0-alpha.0", + "version": "8.4.0-alpha.1", "description": "Core Storybook Manager API & Context", "keywords": [ "storybook" diff --git a/code/deprecated/manager/package.json b/code/deprecated/manager/package.json index b1d991cdbb19..2208447a22cd 100644 --- a/code/deprecated/manager/package.json +++ b/code/deprecated/manager/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/manager", - "version": "8.4.0-alpha.0", + "version": "8.4.0-alpha.1", "description": "Core Storybook UI", "keywords": [ "storybook" diff --git a/code/deprecated/node-logger/package.json b/code/deprecated/node-logger/package.json index 2b5121aa0fc9..4f6a30fd6af1 100644 --- a/code/deprecated/node-logger/package.json +++ b/code/deprecated/node-logger/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/node-logger", - "version": "8.4.0-alpha.0", + "version": "8.4.0-alpha.1", "description": "", "keywords": [ "storybook" diff --git a/code/deprecated/preview-api/package.json b/code/deprecated/preview-api/package.json index 736cd04c8338..d07bbf8a4a58 100644 --- a/code/deprecated/preview-api/package.json +++ b/code/deprecated/preview-api/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/preview-api", - "version": "8.4.0-alpha.0", + "version": "8.4.0-alpha.1", "description": "", "keywords": [ "storybook" diff --git a/code/deprecated/preview/package.json b/code/deprecated/preview/package.json index e55184702d1b..891d441d6421 100644 --- a/code/deprecated/preview/package.json +++ b/code/deprecated/preview/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/preview", - "version": "8.4.0-alpha.0", + "version": "8.4.0-alpha.1", "description": "", "keywords": [ "storybook" diff --git a/code/deprecated/router/package.json b/code/deprecated/router/package.json index 66d026f73f2e..c24c02c726e9 100644 --- a/code/deprecated/router/package.json +++ b/code/deprecated/router/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/router", - "version": "8.4.0-alpha.0", + "version": "8.4.0-alpha.1", "description": "Core Storybook Router", "keywords": [ "storybook" diff --git a/code/deprecated/telemetry/package.json b/code/deprecated/telemetry/package.json index faffe3105862..959c456b40ca 100644 --- a/code/deprecated/telemetry/package.json +++ b/code/deprecated/telemetry/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/telemetry", - "version": "8.4.0-alpha.0", + "version": "8.4.0-alpha.1", "description": "Telemetry logging for crash reports and usage statistics", "keywords": [ "storybook" diff --git a/code/deprecated/theming/package.json b/code/deprecated/theming/package.json index 90bd9362026f..0041fd26f2ef 100644 --- a/code/deprecated/theming/package.json +++ b/code/deprecated/theming/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/theming", - "version": "8.4.0-alpha.0", + "version": "8.4.0-alpha.1", "description": "Core Storybook Components", "keywords": [ "storybook" diff --git a/code/deprecated/types/package.json b/code/deprecated/types/package.json index 1adbdeea218f..1cad186effe6 100644 --- a/code/deprecated/types/package.json +++ b/code/deprecated/types/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/types", - "version": "8.4.0-alpha.0", + "version": "8.4.0-alpha.1", "description": "Core Storybook TS Types", "keywords": [ "storybook" diff --git a/code/frameworks/angular/package.json b/code/frameworks/angular/package.json index 0dd1fa78ba0b..4f4b3fcd9514 100644 --- a/code/frameworks/angular/package.json +++ b/code/frameworks/angular/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/angular", - "version": "8.4.0-alpha.0", + "version": "8.4.0-alpha.1", "description": "Storybook for Angular: Develop Angular components in isolation with hot reloading.", "keywords": [ "storybook", diff --git a/code/frameworks/ember/package.json b/code/frameworks/ember/package.json index d2c853d602b1..4b37a03e2e9d 100644 --- a/code/frameworks/ember/package.json +++ b/code/frameworks/ember/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/ember", - "version": "8.4.0-alpha.0", + "version": "8.4.0-alpha.1", "description": "Storybook for Ember: Develop Ember Component in isolation with Hot Reloading.", "homepage": "https://github.com/storybookjs/storybook/tree/next/code/frameworks/ember", "bugs": { diff --git a/code/frameworks/experimental-nextjs-vite/package.json b/code/frameworks/experimental-nextjs-vite/package.json index a3b13a8430af..6b9b5a107a45 100644 --- a/code/frameworks/experimental-nextjs-vite/package.json +++ b/code/frameworks/experimental-nextjs-vite/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/experimental-nextjs-vite", - "version": "8.4.0-alpha.0", + "version": "8.4.0-alpha.1", "description": "Storybook for Next.js and Vite", "keywords": [ "storybook", diff --git a/code/frameworks/html-vite/package.json b/code/frameworks/html-vite/package.json index fdf1b4aaca73..084261623282 100644 --- a/code/frameworks/html-vite/package.json +++ b/code/frameworks/html-vite/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/html-vite", - "version": "8.4.0-alpha.0", + "version": "8.4.0-alpha.1", "description": "Storybook for HTML and Vite: Develop HTML in isolation with Hot Reloading.", "keywords": [ "storybook" diff --git a/code/frameworks/html-webpack5/package.json b/code/frameworks/html-webpack5/package.json index eb68bb0405bf..8c242521f6a4 100644 --- a/code/frameworks/html-webpack5/package.json +++ b/code/frameworks/html-webpack5/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/html-webpack5", - "version": "8.4.0-alpha.0", + "version": "8.4.0-alpha.1", "description": "Storybook for HTML: View HTML snippets in isolation with Hot Reloading.", "keywords": [ "storybook" diff --git a/code/frameworks/nextjs/package.json b/code/frameworks/nextjs/package.json index d5d81422b9fb..6c5914e9d16f 100644 --- a/code/frameworks/nextjs/package.json +++ b/code/frameworks/nextjs/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/nextjs", - "version": "8.4.0-alpha.0", + "version": "8.4.0-alpha.1", "description": "Storybook for Next.js", "keywords": [ "storybook", diff --git a/code/frameworks/preact-vite/package.json b/code/frameworks/preact-vite/package.json index 160fcae2c060..5dc513559e85 100644 --- a/code/frameworks/preact-vite/package.json +++ b/code/frameworks/preact-vite/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/preact-vite", - "version": "8.4.0-alpha.0", + "version": "8.4.0-alpha.1", "description": "Storybook for Preact and Vite: Develop Preact components in isolation with Hot Reloading.", "keywords": [ "storybook" diff --git a/code/frameworks/preact-webpack5/package.json b/code/frameworks/preact-webpack5/package.json index 95ecb773d3d8..4383074ffd8d 100644 --- a/code/frameworks/preact-webpack5/package.json +++ b/code/frameworks/preact-webpack5/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/preact-webpack5", - "version": "8.4.0-alpha.0", + "version": "8.4.0-alpha.1", "description": "Storybook for Preact: Develop Preact Component in isolation.", "keywords": [ "storybook" diff --git a/code/frameworks/react-vite/package.json b/code/frameworks/react-vite/package.json index ba7b57702d3f..be405505cfed 100644 --- a/code/frameworks/react-vite/package.json +++ b/code/frameworks/react-vite/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/react-vite", - "version": "8.4.0-alpha.0", + "version": "8.4.0-alpha.1", "description": "Storybook for React and Vite: Develop React components in isolation with Hot Reloading.", "keywords": [ "storybook" @@ -47,7 +47,7 @@ "prep": "jiti ../../../scripts/prepare/bundle.ts" }, "dependencies": { - "@joshwooding/vite-plugin-react-docgen-typescript": "0.3.1", + "@joshwooding/vite-plugin-react-docgen-typescript": "0.3.0", "@rollup/pluginutils": "^5.0.2", "@storybook/builder-vite": "workspace:*", "@storybook/react": "workspace:*", diff --git a/code/frameworks/react-webpack5/package.json b/code/frameworks/react-webpack5/package.json index 1117894ced7e..59d184118461 100644 --- a/code/frameworks/react-webpack5/package.json +++ b/code/frameworks/react-webpack5/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/react-webpack5", - "version": "8.4.0-alpha.0", + "version": "8.4.0-alpha.1", "description": "Storybook for React: Develop React Component in isolation with Hot Reloading.", "keywords": [ "storybook" diff --git a/code/frameworks/server-webpack5/package.json b/code/frameworks/server-webpack5/package.json index 4ee3f6eca929..900db60f42cc 100644 --- a/code/frameworks/server-webpack5/package.json +++ b/code/frameworks/server-webpack5/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/server-webpack5", - "version": "8.4.0-alpha.0", + "version": "8.4.0-alpha.1", "description": "Storybook for Server: View HTML snippets from a server in isolation with Hot Reloading.", "keywords": [ "storybook" diff --git a/code/frameworks/svelte-vite/package.json b/code/frameworks/svelte-vite/package.json index 7ee073acf0bf..6032523e1fdf 100644 --- a/code/frameworks/svelte-vite/package.json +++ b/code/frameworks/svelte-vite/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/svelte-vite", - "version": "8.4.0-alpha.0", + "version": "8.4.0-alpha.1", "description": "Storybook for Svelte and Vite: Develop Svelte components in isolation with Hot Reloading.", "keywords": [ "storybook" diff --git a/code/frameworks/svelte-webpack5/package.json b/code/frameworks/svelte-webpack5/package.json index 4a6a2a541cb0..147ae4eee69d 100644 --- a/code/frameworks/svelte-webpack5/package.json +++ b/code/frameworks/svelte-webpack5/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/svelte-webpack5", - "version": "8.4.0-alpha.0", + "version": "8.4.0-alpha.1", "description": "Storybook for Svelte: Develop Svelte Component in isolation with Hot Reloading.", "keywords": [ "storybook" diff --git a/code/frameworks/sveltekit/package.json b/code/frameworks/sveltekit/package.json index 54e060c0191e..8b241ae57597 100644 --- a/code/frameworks/sveltekit/package.json +++ b/code/frameworks/sveltekit/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/sveltekit", - "version": "8.4.0-alpha.0", + "version": "8.4.0-alpha.1", "description": "Storybook for SvelteKit", "keywords": [ "storybook", diff --git a/code/frameworks/vue3-vite/package.json b/code/frameworks/vue3-vite/package.json index 92d6ab4d41fa..79e91644ecb2 100644 --- a/code/frameworks/vue3-vite/package.json +++ b/code/frameworks/vue3-vite/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/vue3-vite", - "version": "8.4.0-alpha.0", + "version": "8.4.0-alpha.1", "description": "Storybook for Vue3 and Vite: Develop Vue3 components in isolation with Hot Reloading.", "keywords": [ "storybook" diff --git a/code/frameworks/vue3-webpack5/package.json b/code/frameworks/vue3-webpack5/package.json index 554f5d92370d..d1e0e89ba0db 100644 --- a/code/frameworks/vue3-webpack5/package.json +++ b/code/frameworks/vue3-webpack5/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/vue3-webpack5", - "version": "8.4.0-alpha.0", + "version": "8.4.0-alpha.1", "description": "Storybook for Vue 3: Develop Vue 3 Components in isolation with Hot Reloading.", "keywords": [ "storybook" diff --git a/code/frameworks/web-components-vite/package.json b/code/frameworks/web-components-vite/package.json index 2f617925837b..b65a79ce706e 100644 --- a/code/frameworks/web-components-vite/package.json +++ b/code/frameworks/web-components-vite/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/web-components-vite", - "version": "8.4.0-alpha.0", + "version": "8.4.0-alpha.1", "description": "Storybook for web-components and Vite: Develop Web Components in isolation with Hot Reloading.", "keywords": [ "storybook" diff --git a/code/frameworks/web-components-webpack5/package.json b/code/frameworks/web-components-webpack5/package.json index b6ff71516042..e4d1ebf5c601 100644 --- a/code/frameworks/web-components-webpack5/package.json +++ b/code/frameworks/web-components-webpack5/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/web-components-webpack5", - "version": "8.4.0-alpha.0", + "version": "8.4.0-alpha.1", "description": "Storybook for web-components: View web components snippets in isolation with Hot Reloading.", "keywords": [ "lit", diff --git a/code/lib/blocks/package.json b/code/lib/blocks/package.json index ca92f5fffac7..ec2042de6a4f 100644 --- a/code/lib/blocks/package.json +++ b/code/lib/blocks/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/blocks", - "version": "8.4.0-alpha.0", + "version": "8.4.0-alpha.1", "description": "Storybook Doc Blocks", "keywords": [ "storybook" diff --git a/code/lib/cli-sb/package.json b/code/lib/cli-sb/package.json index 25a66aa344ed..82b056b5c7dd 100644 --- a/code/lib/cli-sb/package.json +++ b/code/lib/cli-sb/package.json @@ -1,6 +1,6 @@ { "name": "sb", - "version": "8.4.0-alpha.0", + "version": "8.4.0-alpha.1", "description": "Storybook CLI", "keywords": [ "storybook" diff --git a/code/lib/cli-storybook/package.json b/code/lib/cli-storybook/package.json index 7623c68b2f4d..92d41a40276c 100644 --- a/code/lib/cli-storybook/package.json +++ b/code/lib/cli-storybook/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/cli", - "version": "8.4.0-alpha.0", + "version": "8.4.0-alpha.1", "description": "Storybook CLI", "keywords": [ "storybook" diff --git a/code/lib/cli/package.json b/code/lib/cli/package.json index 8dead94de633..bba18dfd8280 100644 --- a/code/lib/cli/package.json +++ b/code/lib/cli/package.json @@ -1,6 +1,6 @@ { "name": "storybook", - "version": "8.4.0-alpha.0", + "version": "8.4.0-alpha.1", "description": "Storybook's CLI - install, dev, build, upgrade, and more", "keywords": [ "cli", diff --git a/code/lib/codemod/package.json b/code/lib/codemod/package.json index 28445891eb3c..0d933878b1fd 100644 --- a/code/lib/codemod/package.json +++ b/code/lib/codemod/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/codemod", - "version": "8.4.0-alpha.0", + "version": "8.4.0-alpha.1", "description": "A collection of codemod scripts written with JSCodeshift", "keywords": [ "storybook" diff --git a/code/lib/core-webpack/package.json b/code/lib/core-webpack/package.json index ca73db9d84de..deff5d56652a 100644 --- a/code/lib/core-webpack/package.json +++ b/code/lib/core-webpack/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/core-webpack", - "version": "8.4.0-alpha.0", + "version": "8.4.0-alpha.1", "description": "Storybook framework-agnostic API", "keywords": [ "storybook" diff --git a/code/lib/create-storybook/package.json b/code/lib/create-storybook/package.json index 612b559bcae2..21e8fcfcc2c2 100644 --- a/code/lib/create-storybook/package.json +++ b/code/lib/create-storybook/package.json @@ -1,6 +1,6 @@ { "name": "create-storybook", - "version": "8.4.0-alpha.0", + "version": "8.4.0-alpha.1", "description": "Initialize Storybook into your project", "homepage": "https://github.com/storybookjs/storybook/tree/next/code/lib/create-storybook", "bugs": { diff --git a/code/lib/create-storybook/src/initiate.ts b/code/lib/create-storybook/src/initiate.ts index 787e16288cc2..bed1870fd2a9 100644 --- a/code/lib/create-storybook/src/initiate.ts +++ b/code/lib/create-storybook/src/initiate.ts @@ -375,7 +375,7 @@ export async function doInitiate(options: CommandOptions): Promise< if (foundGitIgnoreFile && foundGitIgnoreFile.includes(rootDirectory)) { const contents = await readFile(foundGitIgnoreFile, 'utf-8'); if (!contents.includes('*storybook.log')) { - await appendFile(foundGitIgnoreFile, '\n*storybook.log'); + await appendFile(foundGitIgnoreFile, '\n*storybook.log\n'); } } diff --git a/code/lib/csf-plugin/package.json b/code/lib/csf-plugin/package.json index 709c14d03eda..939a970d24ee 100644 --- a/code/lib/csf-plugin/package.json +++ b/code/lib/csf-plugin/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/csf-plugin", - "version": "8.4.0-alpha.0", + "version": "8.4.0-alpha.1", "description": "Enrich CSF files via static analysis", "keywords": [ "storybook" diff --git a/code/lib/instrumenter/package.json b/code/lib/instrumenter/package.json index 0393a36e1f8e..470d64270fdf 100644 --- a/code/lib/instrumenter/package.json +++ b/code/lib/instrumenter/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/instrumenter", - "version": "8.4.0-alpha.0", + "version": "8.4.0-alpha.1", "description": "", "keywords": [ "storybook" diff --git a/code/lib/react-dom-shim/package.json b/code/lib/react-dom-shim/package.json index f9c6fdf7d3b5..8380516e3524 100644 --- a/code/lib/react-dom-shim/package.json +++ b/code/lib/react-dom-shim/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/react-dom-shim", - "version": "8.4.0-alpha.0", + "version": "8.4.0-alpha.1", "description": "", "keywords": [ "storybook" diff --git a/code/lib/source-loader/package.json b/code/lib/source-loader/package.json index 7372daad6416..7ee6a46a1ed0 100644 --- a/code/lib/source-loader/package.json +++ b/code/lib/source-loader/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/source-loader", - "version": "8.4.0-alpha.0", + "version": "8.4.0-alpha.1", "description": "Source loader", "keywords": [ "lib", diff --git a/code/lib/test/package.json b/code/lib/test/package.json index f103259c54c5..d6d3dcd561de 100644 --- a/code/lib/test/package.json +++ b/code/lib/test/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/test", - "version": "8.4.0-alpha.0", + "version": "8.4.0-alpha.1", "description": "", "keywords": [ "storybook" diff --git a/code/package.json b/code/package.json index af2a344764ec..247d6630af96 100644 --- a/code/package.json +++ b/code/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/root", - "version": "8.4.0-alpha.0", + "version": "8.4.0-alpha.1", "private": true, "description": "Storybook root", "homepage": "https://storybook.js.org/", diff --git a/code/presets/create-react-app/package.json b/code/presets/create-react-app/package.json index 5dab09ec6c19..c71dcce29024 100644 --- a/code/presets/create-react-app/package.json +++ b/code/presets/create-react-app/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/preset-create-react-app", - "version": "8.4.0-alpha.0", + "version": "8.4.0-alpha.1", "description": "Storybook for Create React App preset", "keywords": [ "storybook" diff --git a/code/presets/html-webpack/package.json b/code/presets/html-webpack/package.json index 7c9fd1d7cebb..e2d7ff55c38b 100644 --- a/code/presets/html-webpack/package.json +++ b/code/presets/html-webpack/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/preset-html-webpack", - "version": "8.4.0-alpha.0", + "version": "8.4.0-alpha.1", "description": "Storybook for HTML: View HTML snippets in isolation with Hot Reloading.", "keywords": [ "storybook" diff --git a/code/presets/preact-webpack/package.json b/code/presets/preact-webpack/package.json index ee4f7b1d79ab..02fc37d2a22e 100644 --- a/code/presets/preact-webpack/package.json +++ b/code/presets/preact-webpack/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/preset-preact-webpack", - "version": "8.4.0-alpha.0", + "version": "8.4.0-alpha.1", "description": "Storybook for Preact: Develop Preact Component in isolation.", "keywords": [ "storybook" diff --git a/code/presets/react-webpack/package.json b/code/presets/react-webpack/package.json index 8f3e04e671b7..05372f1e0852 100644 --- a/code/presets/react-webpack/package.json +++ b/code/presets/react-webpack/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/preset-react-webpack", - "version": "8.4.0-alpha.0", + "version": "8.4.0-alpha.1", "description": "Storybook for React: Develop React Component in isolation with Hot Reloading", "keywords": [ "storybook" diff --git a/code/presets/server-webpack/package.json b/code/presets/server-webpack/package.json index 0dcf0288a02e..e53478b000a4 100644 --- a/code/presets/server-webpack/package.json +++ b/code/presets/server-webpack/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/preset-server-webpack", - "version": "8.4.0-alpha.0", + "version": "8.4.0-alpha.1", "description": "Storybook for Server: View HTML snippets from a server in isolation with Hot Reloading.", "keywords": [ "storybook" diff --git a/code/presets/svelte-webpack/package.json b/code/presets/svelte-webpack/package.json index d3f4f143e6c7..0a95bad78f08 100644 --- a/code/presets/svelte-webpack/package.json +++ b/code/presets/svelte-webpack/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/preset-svelte-webpack", - "version": "8.4.0-alpha.0", + "version": "8.4.0-alpha.1", "description": "Storybook for Svelte: Develop Svelte Component in isolation with Hot Reloading.", "keywords": [ "storybook" diff --git a/code/presets/vue3-webpack/package.json b/code/presets/vue3-webpack/package.json index defa498c49be..a90fa54db1e2 100644 --- a/code/presets/vue3-webpack/package.json +++ b/code/presets/vue3-webpack/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/preset-vue3-webpack", - "version": "8.4.0-alpha.0", + "version": "8.4.0-alpha.1", "description": "Storybook for Vue 3: Develop Vue 3 Components in isolation with Hot Reloading.", "keywords": [ "storybook" diff --git a/code/renderers/html/package.json b/code/renderers/html/package.json index 610953c43199..c7e76c8170a7 100644 --- a/code/renderers/html/package.json +++ b/code/renderers/html/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/html", - "version": "8.4.0-alpha.0", + "version": "8.4.0-alpha.1", "description": "Storybook HTML renderer", "keywords": [ "storybook" diff --git a/code/renderers/preact/package.json b/code/renderers/preact/package.json index fd75078890cf..418437f7fffb 100644 --- a/code/renderers/preact/package.json +++ b/code/renderers/preact/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/preact", - "version": "8.4.0-alpha.0", + "version": "8.4.0-alpha.1", "description": "Storybook Preact renderer", "keywords": [ "storybook" diff --git a/code/renderers/react/package.json b/code/renderers/react/package.json index 3a2e94742328..0af622fe37b4 100644 --- a/code/renderers/react/package.json +++ b/code/renderers/react/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/react", - "version": "8.4.0-alpha.0", + "version": "8.4.0-alpha.1", "description": "Storybook React renderer", "keywords": [ "storybook" diff --git a/code/renderers/server/package.json b/code/renderers/server/package.json index 67d3343a72b3..8a2f31e3b51c 100644 --- a/code/renderers/server/package.json +++ b/code/renderers/server/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/server", - "version": "8.4.0-alpha.0", + "version": "8.4.0-alpha.1", "description": "Storybook Server renderer", "keywords": [ "storybook" diff --git a/code/renderers/svelte/package.json b/code/renderers/svelte/package.json index 5972c0ef2ac8..f77c1e12be27 100644 --- a/code/renderers/svelte/package.json +++ b/code/renderers/svelte/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/svelte", - "version": "8.4.0-alpha.0", + "version": "8.4.0-alpha.1", "description": "Storybook Svelte renderer", "keywords": [ "storybook" diff --git a/code/renderers/vue3/package.json b/code/renderers/vue3/package.json index be6775754ba9..7080f5e2cd09 100644 --- a/code/renderers/vue3/package.json +++ b/code/renderers/vue3/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/vue3", - "version": "8.4.0-alpha.0", + "version": "8.4.0-alpha.1", "description": "Storybook Vue 3 renderer", "keywords": [ "storybook" diff --git a/code/renderers/web-components/package.json b/code/renderers/web-components/package.json index 37413d6a4fd7..bf346a32ca38 100644 --- a/code/renderers/web-components/package.json +++ b/code/renderers/web-components/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/web-components", - "version": "8.4.0-alpha.0", + "version": "8.4.0-alpha.1", "description": "Storybook web-components renderer", "keywords": [ "lit", diff --git a/code/yarn.lock b/code/yarn.lock index 33d11fccd4f5..08b73cfd20cc 100644 --- a/code/yarn.lock +++ b/code/yarn.lock @@ -3677,9 +3677,9 @@ __metadata: languageName: node linkType: hard -"@joshwooding/vite-plugin-react-docgen-typescript@npm:0.3.1": - version: 0.3.1 - resolution: "@joshwooding/vite-plugin-react-docgen-typescript@npm:0.3.1" +"@joshwooding/vite-plugin-react-docgen-typescript@npm:0.3.0": + version: 0.3.0 + resolution: "@joshwooding/vite-plugin-react-docgen-typescript@npm:0.3.0" dependencies: glob: "npm:^7.2.0" glob-promise: "npm:^4.2.0" @@ -3691,7 +3691,7 @@ __metadata: peerDependenciesMeta: typescript: optional: true - checksum: 10c0/a9c7a03d7d1daf5bd64949255516ba64c88d5600366c8c74dcdb6f37c2a6099daaec02860b7587d2220e61afa47a0b2de17ef70d723c2db02f24e0890edfd9f3 + checksum: 10c0/31098ad8fcc2440437534599c111d9f2951dd74821e8ba46c521b969bae4c918d830b7bb0484efbad29a51711bb62d3bc623d5a1ed5b1695b5b5594ea9dd4ca0 languageName: node linkType: hard @@ -6091,6 +6091,7 @@ __metadata: glob: "npm:^10.0.0" globby: "npm:^14.0.1" handlebars: "npm:^4.7.7" + jiti: "npm:^1.21.6" js-yaml: "npm:^4.1.0" jsdoc-type-pratt-parser: "npm:^4.0.0" lazy-universal-dotenv: "npm:^4.0.0" @@ -6699,7 +6700,7 @@ __metadata: version: 0.0.0-use.local resolution: "@storybook/react-vite@workspace:frameworks/react-vite" dependencies: - "@joshwooding/vite-plugin-react-docgen-typescript": "npm:0.3.1" + "@joshwooding/vite-plugin-react-docgen-typescript": "npm:0.3.0" "@rollup/pluginutils": "npm:^5.0.2" "@storybook/builder-vite": "workspace:*" "@storybook/react": "workspace:*" @@ -18340,6 +18341,15 @@ __metadata: languageName: node linkType: hard +"jiti@npm:^1.21.6": + version: 1.21.6 + resolution: "jiti@npm:1.21.6" + bin: + jiti: bin/jiti.js + checksum: 10c0/05b9ed58cd30d0c3ccd3c98209339e74f50abd9a17e716f65db46b6a35812103f6bde6e134be7124d01745586bca8cc5dae1d0d952267c3ebe55171949c32e56 + languageName: node + linkType: hard + "jju@npm:^1.4.0": version: 1.4.0 resolution: "jju@npm:1.4.0" diff --git a/docs/versions/next.json b/docs/versions/next.json index 9963ff265181..144772e63ef6 100644 --- a/docs/versions/next.json +++ b/docs/versions/next.json @@ -1 +1 @@ -{"version":"8.4.0-alpha.0","info":{"plain":""}} +{"version":"8.4.0-alpha.1","info":{"plain":"- Addon Test: Support story name as test description - [#29147](https://github.com/storybookjs/storybook/pull/29147), thanks @InfiniteXyy!\n- Addon-Interactions: Use ansi-to-html for colored test errors - [#29110](https://github.com/storybookjs/storybook/pull/29110), thanks @kasperpeulen!\n- Angular: Fix sourceDecorator to apply excludeDecorators flag - [#29069](https://github.com/storybookjs/storybook/pull/29069), thanks @JSMike!\n- Builder-vite: Replace .at() call with [] in codegen - [#29048](https://github.com/storybookjs/storybook/pull/29048), thanks @Chudesnov!\n- CLI: Ensure `.gitignore` updated via CLI ends with a newline - [#29124](https://github.com/storybookjs/storybook/pull/29124), thanks @3w36zj6!\n- CLI: Fix skip-install for stable latest releases - [#29133](https://github.com/storybookjs/storybook/pull/29133), thanks @valentinpalkovic!\n- CLI: Show constraints in error when getting depndencies - [#29187](https://github.com/storybookjs/storybook/pull/29187), thanks @andrasczeh!\n- Core: Do not add packageManager field to package.json during `storybook dev` - [#29152](https://github.com/storybookjs/storybook/pull/29152), thanks @valentinpalkovic!\n- Core: Do not prebundle better-opn - [#29137](https://github.com/storybookjs/storybook/pull/29137), thanks @valentinpalkovic!\n- Core: Do not prebundle jsdoc-type-pratt-parser - [#29134](https://github.com/storybookjs/storybook/pull/29134), thanks @valentinpalkovic!\n- Core: Replace `fs-extra` with the native APIs - [#29126](https://github.com/storybookjs/storybook/pull/29126), thanks @ziebam!\n- Next.js: Upgrade sass-loader from ^12 to ^13 - [#29040](https://github.com/storybookjs/storybook/pull/29040), thanks @HoncharenkoZhenya!\n- React-Vite: Downgrade react-docgen-typescript plugin - [#29184](https://github.com/storybookjs/storybook/pull/29184), thanks @shilman!\n- UI: Fix composed storybook TooltipLinkList bug where href isn't passed forward - [#29175](https://github.com/storybookjs/storybook/pull/29175), thanks @JSMike!\n- Viewport-addon: Add InitialViewportKeys type to viewport addon - [#29182](https://github.com/storybookjs/storybook/pull/29182), thanks @hyeongrok7874!\n- Vite: Add jsdoc-type-pratt-parser to `optimizeDeps` - [#29179](https://github.com/storybookjs/storybook/pull/29179), thanks @tobiasdiez!"}} diff --git a/docs/writing-tests/vitest-plugin.mdx b/docs/writing-tests/vitest-plugin.mdx index 09940ef230d9..1a0e4b9708b2 100644 --- a/docs/writing-tests/vitest-plugin.mdx +++ b/docs/writing-tests/vitest-plugin.mdx @@ -379,6 +379,16 @@ We recommend running tests in a browser using Playwright, but you can use WebDri We recommend using Chromium, because it is most likely to best match the experience of a majority of your users. However, you can use other browsers by adjusting the [browser name in the Vitest configuration file](https://vitest.dev/config/#browser-name). Note that [Playwright and WebDriverIO support different browsers](https://vitest.dev/guide/browser/#browser-option-types). +### How do I customize a test name? + +By default, the export name of a story is mapped to the test name. To create a more descriptive test description, you can provide a `name` property for the story. This allows you to include spaces, brackets, or other special characters. + +```js +export const Story = { + name: 'custom, descriptive name' +}; +``` + ## API ### Exports