diff --git a/MIGRATION.md b/MIGRATION.md index 72fd9adff5f0..f6dcfbf3b109 100644 --- a/MIGRATION.md +++ b/MIGRATION.md @@ -105,17 +105,17 @@ - [Tab addons cannot manually route, Tool addons can filter their visibility via tabId](#tab-addons-cannot-manually-route-tool-addons-can-filter-their-visibility-via-tabid) - [Removed `config` preset](#removed-config-preset-1) - [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) - - [typescript.skipBabel deprecated](#typescriptskipbabel-deprecated) - - [Primary doc block accepts of prop](#primary-doc-block-accepts-of-prop) - - [Addons no longer need a peer dependency on React](#addons-no-longer-need-a-peer-dependency-on-react) + - [CommonJS with Vite is deprecated](#commonjs-with-vite-is-deprecated) + - [Using implicit actions during rendering is deprecated](#using-implicit-actions-during-rendering-is-deprecated) + - [typescript.skipBabel deprecated](#typescriptskipbabel-deprecated) + - [Primary doc block accepts of prop](#primary-doc-block-accepts-of-prop) + - [Addons no longer need a peer dependency on React](#addons-no-longer-need-a-peer-dependency-on-react) - [From version 7.4.0 to 7.5.0](#from-version-740-to-750) - - [`storyStoreV6` and `storiesOf` is deprecated](#storystorev6-and-storiesof-is-deprecated) - - [`storyIndexers` is replaced with `experimental_indexers`](#storyindexers-is-replaced-with-experimental_indexers) + - [`storyStoreV6` and `storiesOf` is deprecated](#storystorev6-and-storiesof-is-deprecated) + - [`storyIndexers` is replaced with `experimental_indexers`](#storyindexers-is-replaced-with-experimental_indexers) - [From version 7.0.0 to 7.2.0](#from-version-700-to-720) - - [Addon API is more type-strict](#addon-api-is-more-type-strict) - - [Addon-controls hideNoControlsWarning parameter is deprecated](#addon-controls-hidenocontrolswarning-parameter-is-deprecated) + - [Addon API is more type-strict](#addon-api-is-more-type-strict) + - [Addon-controls hideNoControlsWarning parameter is deprecated](#addon-controls-hidenocontrolswarning-parameter-is-deprecated) - [From version 6.5.x to 7.0.0](#from-version-65x-to-700) - [7.0 breaking changes](#70-breaking-changes) - [Dropped support for Node 15 and below](#dropped-support-for-node-15-and-below) @@ -141,7 +141,7 @@ - [Deploying build artifacts](#deploying-build-artifacts) - [Dropped support for file URLs](#dropped-support-for-file-urls) - [Serving with nginx](#serving-with-nginx) - - [Ignore story files from node_modules](#ignore-story-files-from-node_modules) + - [Ignore story files from node\_modules](#ignore-story-files-from-node_modules) - [7.0 Core changes](#70-core-changes) - [7.0 feature flags removed](#70-feature-flags-removed) - [Story context is prepared before for supporting fine grained updates](#story-context-is-prepared-before-for-supporting-fine-grained-updates) @@ -155,7 +155,7 @@ - [Addon-interactions: Interactions debugger is now default](#addon-interactions-interactions-debugger-is-now-default) - [7.0 Vite changes](#70-vite-changes) - [Vite builder uses Vite config automatically](#vite-builder-uses-vite-config-automatically) - - [Vite cache moved to node_modules/.cache/.vite-storybook](#vite-cache-moved-to-node_modulescachevite-storybook) + - [Vite cache moved to node\_modules/.cache/.vite-storybook](#vite-cache-moved-to-node_modulescachevite-storybook) - [7.0 Webpack changes](#70-webpack-changes) - [Webpack4 support discontinued](#webpack4-support-discontinued) - [Babel mode v7 exclusively](#babel-mode-v7-exclusively) @@ -205,7 +205,7 @@ - [Dropped addon-docs manual babel configuration](#dropped-addon-docs-manual-babel-configuration) - [Dropped addon-docs manual configuration](#dropped-addon-docs-manual-configuration) - [Autoplay in docs](#autoplay-in-docs) - - [Removed STORYBOOK_REACT_CLASSES global](#removed-storybook_react_classes-global) + - [Removed STORYBOOK\_REACT\_CLASSES global](#removed-storybook_react_classes-global) - [7.0 Deprecations and default changes](#70-deprecations-and-default-changes) - [storyStoreV7 enabled by default](#storystorev7-enabled-by-default) - [`Story` type deprecated](#story-type-deprecated) @@ -428,35 +428,41 @@ These APIs allowed addons to render arbitrary content in the Storybook sidebar. ### New parameters format for addon backgrounds -The `addon-backgrounds` addon now uses a new format for parameters. The `backgrounds` parameter is now an object with a `values` key that contains the background values. +> [!NOTE] +> You need to set the feature flag `backgroundsStoryGlobals` to `true` in your `.storybook/main.ts` to use the new format and set the value with `globals`. -> ! You need to set the feature flag `backgroundsStoryGlobals` to `true` in your `.storybook/main.ts` to use the new format. +The `addon-backgrounds` addon now uses a new format for parameters. The `backgrounds` parameter is now an object with an `options` property that is assigned to an object of background values, where the key is used when setting the global value. ```diff // .storybook/preview.js export const parameters = { backgrounds: { -- values: [ -- { name: 'twitter', value: '#00aced' }, -- { name: 'facebook', value: '#3b5998' }, -- ], -+ options: { -+ twitter: { name: 'twitter', value: '#00aced' }, -+ facebook: { name: 'facebook', value: '#3b5998' }, -+ }, +- values: [ +- { name: 'twitter', value: '#00aced' }, +- { name: 'facebook', value: '#3b5998' }, +- ], ++ options: { ++ twitter: { name: 'Twitter', value: '#00aced' }, ++ facebook: { name: 'Facebook', value: '#3b5998' }, ++ }, }, }; ``` Setting an override value should now be done via a `globals` property on your component/meta or story itself: -```ts +```diff // Button.stories.ts export default { component: Button, - globals: { - backgrounds: { value: "twitter" }, - }, +- parameters: { +- backgrounds: { +- default: "twitter", +- }, +- }, ++ globals: { ++ backgrounds: { value: "twitter" }, ++ }, }; ``` @@ -464,49 +470,59 @@ This locks that story to the `twitter` background, it cannot be changed by the a ### New parameters format for addon viewport -> ! You need to set the feature flag `viewportStoryGlobals` to `true` in your `.storybook/main.ts` to use the new format. +> [!NOTE] +> You need to set the feature flag `viewportStoryGlobals` to `true` in your `.storybook/main.ts` to use the new format and set the value with `globals`. -The `addon-viewport` addon now uses a new format for parameters. The `viewport` parameter is now an object with a `viewports` key that contains the viewport values. +The `addon-viewport` addon now uses a new format for parameters. The `viewport` parameter is now an object with an `options` property that is assigned to an object of viewport values, where the key is used when setting the global value. ```diff // .storybook/preview.js export const parameters = { viewport: { -- viewports: { -- iphone5: { -- name: 'phone', -- styles: { -- width: '320px', -- height: '568px', -- }, -- }, +- viewports: { +- iphone5: { +- name: 'phone', +- styles: { +- width: '320px', +- height: '568px', +- }, - }, -+ options: { -+ iphone5: { -+ name: 'phone', -+ styles: { -+ width: '320px', -+ height: '568px', -+ }, -+ }, -+ }, +- }, ++ options: { ++ iphone5: { ++ name: 'phone', ++ styles: { ++ width: '320px', ++ height: '568px', ++ }, ++ }, ++ }, }, }; ``` -Setting an override value should now be done via a `globals` property on your component/meta or story itself: +Setting an override value should now be done via a `globals` property on your component/meta or story itself. Also note the change from `defaultOrientation: "landscape"` to `isRotated: true`. -```ts +```diff // Button.stories.ts export default { component: Button, - globals: { - viewport: { value: "phone" }, - }, +- parameters: { +- viewport: { +- defaultViewport: "iphone5", +- defaultOrientation: "landscape", +- }, +- }, ++ globals: { ++ viewport: { ++ value: "iphone5", ++ isRotated: true, ++ }, ++ }, }; ``` -This locks that story to the `phone` viewport, it cannot be changed by the addon UI. +This locks that story to the `iphone5` viewport in landscape orientation, it cannot be changed by the addon UI. ## From version 8.1.x to 8.2.x @@ -2497,13 +2513,13 @@ This means also, that there is no root ngModule anymore. Previously you were abl For example, if you want to configure BrowserAnimationModule in your stories, please extract the necessary providers the following way and provide them via the `applicationConfig` decorator: ```js -import { BrowserAnimationsModule } from '@angular/platform-browser/animations'; -import { importProvidersFrom } from '@angular/core'; -import { applicationConfig, Meta, StoryObj } from '@storybook/angular'; -import {ExampleComponent} from './example.component'; +import { BrowserAnimationsModule } from "@angular/platform-browser/animations"; +import { importProvidersFrom } from "@angular/core"; +import { applicationConfig, Meta, StoryObj } from "@storybook/angular"; +import { ExampleComponent } from "./example.component"; const meta: Meta = { - title: 'Example', + title: "Example", component: ExampleComponent, decorators: [ // Define application-wide providers with the applicationConfig decorator @@ -2519,14 +2535,14 @@ const meta: Meta = { export default meta; -type Story = StoryObj +type Story = StoryObj; export const Default: Story = { render: () => ({ // Define application-wide providers directly in the render function applicationConfig: { providers: [importProvidersFrom(BrowserAnimationsModule)], - } + }, }), }; ``` diff --git a/docs/_snippets/storybook-addon-backgrounds-global-api.md b/docs/_snippets/addon-backgrounds-define-default.md similarity index 55% rename from docs/_snippets/storybook-addon-backgrounds-global-api.md rename to docs/_snippets/addon-backgrounds-define-default.md index bdf01ca550f5..b0b8205499f1 100644 --- a/docs/_snippets/storybook-addon-backgrounds-global-api.md +++ b/docs/_snippets/addon-backgrounds-define-default.md @@ -7,9 +7,8 @@ const meta: Meta