Merge branch 'next' of github.com:storybookjs/storybook into pr/webblocksapp/20755

This commit is contained in:
Jeppe Reinhold 2023-01-25 21:05:46 +01:00
commit d10328f253
181 changed files with 3380 additions and 2103 deletions

View File

@ -43,7 +43,7 @@ executors:
default: 'small'
working_directory: /tmp/storybook
docker:
- image: mcr.microsoft.com/playwright:v1.29.1-focal
- image: mcr.microsoft.com/playwright:v1.30.0-focal
environment:
NODE_OPTIONS: --max_old_space_size=6144
resource_class: <<parameters.class>>

View File

@ -1,3 +1,74 @@
## 7.0.0-beta.34 (January 26, 2023)
#### Features
- Addon-docs: Add legacy transitional support for MDX1 [#20747](https://github.com/storybooks/storybook/pull/20747)
#### Bug Fixes
- CLI: Fix global flag corner case [#20776](https://github.com/storybooks/storybook/pull/20776)
- Csf-tools: Fix ConfigFile string literal property handling [#20785](https://github.com/storybooks/storybook/pull/20785)
- Angular: Ensure docsMode flag has effect [#20711](https://github.com/storybooks/storybook/pull/20711)
- Angular: Use Providers in boostrapApplication option [#20746](https://github.com/storybooks/storybook/pull/20746)
- WebComponents: Fix Button type error [#20722](https://github.com/storybooks/storybook/pull/20722)
#### Build
- Verify consistency of anonymous id [#20781](https://github.com/storybooks/storybook/pull/20781)
- Build: fix playwright unsynced version in CI [#20778](https://github.com/storybooks/storybook/pull/20778)
- Upgrade playwright [#20777](https://github.com/storybooks/storybook/pull/20777)
#### Dependency Upgrades
- Deps: Upgrade fs-extra to 11.1.0 [#20772](https://github.com/storybooks/storybook/pull/20772)
## 7.0.0-beta.33 (January 24, 2023)
#### Features
- Addon-docs: Allow `<Story/>` to reference the first story [#20765](https://github.com/storybooks/storybook/pull/20765)
#### Bug Fixes
- Angular: Fix issue if BrowserAnimationsModule is imported [#20709](https://github.com/storybooks/storybook/pull/20709)
- Core: Fix issue with inconsistent CSF ordering in sandboxes [#20705](https://github.com/storybooks/storybook/pull/20705)
- Fixed paths in generated main.cjs for the default sandbox on Windows [#20724](https://github.com/storybooks/storybook/pull/20724)
- Blocks: Ignore known blocks with global CSS selector [#20757](https://github.com/storybooks/storybook/pull/20757)
#### Maintenance
- Docs: Make reference stories consistent [#20759](https://github.com/storybooks/storybook/pull/20759)
- Blocks: New Canvas API [#20723](https://github.com/storybooks/storybook/pull/20723)
#### Build
- Fix vue sandbox: remove the lang=ts in a file, that should remain agnostic [#20768](https://github.com/storybooks/storybook/pull/20768)
- Build: do not treat check as a cache-able operation && cleanup [#20762](https://github.com/storybooks/storybook/pull/20762)
## 7.0.0-beta.32 (January 24, 2023)
#### Features
- CLI: Add init support for qwik projects [#20411](https://github.com/storybooks/storybook/pull/20411)
#### Bug Fixes
- Vue3: Fix reactive args + many vue app creation issue [#20712](https://github.com/storybooks/storybook/pull/20712)
- Docs: Allow "declaring" stories with `story={}` [#20702](https://github.com/storybooks/storybook/pull/20702)
- Addon-links: Fix the d.ts file, deprecate LinkTo [#20671](https://github.com/storybooks/storybook/pull/20671)
- CLI: Fix package execution for npm package manager [#20708](https://github.com/storybooks/storybook/pull/20708)
#### Maintenance
- Upgrade react-popper-tooltip [#20736](https://github.com/storybooks/storybook/pull/20736)
- CLI: Upgrade automigrations to use new safe helpers [#20693](https://github.com/storybooks/storybook/pull/20693)
- Csf-tools: Add helpers to get name from node path [#20691](https://github.com/storybooks/storybook/pull/20691)
- Build: remove preact-webpack5 from babelrc automigration [#20706](https://github.com/storybooks/storybook/pull/20706)
#### Build
- Fix windows snapshot [#20707](https://github.com/storybooks/storybook/pull/20707)
## 7.0.0-beta.31 (January 20, 2023)
#### Features

View File

@ -40,13 +40,19 @@
- [Icons API changed](#icons-api-changed)
- [Removed global client APIs](#removed-global-client-apis)
- [Docs Changes](#docs-changes)
- [Standalone docs files](#standalone-docs-files)
- [Referencing stories in docs files](#referencing-stories-in-docs-files)
- [Description block, `parameters.notes` and `parameters.info`](#description-block-parametersnotes-and-parametersinfo)
- [Autodocs](#autodocs)
- [Configuring the Docs Container](#configuring-the-docs-container)
- [External Docs](#external-docs)
- [Autodocs changes](#autodocs-changes)
- [MDX docs files](#mdx-docs-files)
- [Unattached docs files](#unattached-docs-files)
- [Doc Blocks](#doc-blocks)
- [Meta block](#meta-block)
- [Description block, `parameters.notes` and `parameters.info`](#description-block-parametersnotes-and-parametersinfo)
- [Story block](#story-block)
- [Source block](#source-block)
- [Canvas block](#canvas-block)
- [ArgsTable block](#argstable-block)
- [Configuring Autodocs](#configuring-autodocs)
- [MDX2 upgrade](#mdx2-upgrade)
- [Legacy MDX1 support](#legacy-mdx1-support)
- [Default docs styles will leak into non-story user components](#default-docs-styles-will-leak-into-non-story-user-components)
- [Explicit `<code>` elements are no longer syntax highlighted](#explicit-code-elements-are-no-longer-syntax-highlighted)
- [Dropped source loader / storiesOf static snippets](#dropped-source-loader--storiesof-static-snippets)
@ -749,68 +755,11 @@ Instead, use `export const parameters = {};` and `export const decorators = [];`
### Docs Changes
The information hierarchy of docs in Storybook has changed in 7.0. The main difference is that each docs is listed in the sidebar as a separate entry, rather than attached to individual stories.
The information hierarchy of docs in Storybook has changed in 7.0. The main difference is that each docs is listed in the sidebar as a separate entry underneath the component, rather than attached to individual stories. You can also opt-in to a Autodocs entry rather than having one for every component (previously stories).
These changes are encapsulated in the following:
We've also modernized the API for all the doc blocks (the MDX components you use to write custom docs pages), which we'll describe below.
#### Standalone docs files
In Storybook 6.x, to create a standalone docs MDX file, you'd have to create a `.stories.mdx` file, and describe its location with the `Meta` doc block:
```mdx
import { Meta } from '@storybook/addon-docs';
<Meta title="Introduction" />
```
In 7.0, things are a little simpler -- you should call the file `.mdx` (drop the `.stories`). This will mean behind the scenes there is no story attached to this entry. You may also drop the `title` and use autotitle (and leave the `Meta` component out entirely).
Additionally, you can attach a standalone docs entry to a component, using the new `of={}` syntax on the `Meta` component:
```mdx
import { Meta } from '@storybook/blocks';
import * as ComponentStories from './some-component.stories';
<Meta of={ComponentStories} />
```
You can create as many docs entries as you like for a given component. Note that if you attach a docs entry to a component it will replace the automatically generated entry from `DocsPage` (See below).
By default docs entries are listed first for the component. You can sort them using story sorting.
#### Referencing stories in docs files
To reference a story in a MDX file, you should reference it with `of`:
```mdx
import { Meta, Story } from '@storybook/blocks';
import * as ComponentStories from './some-component.stories';
<Meta of={ComponentStories} />
<Story of={ComponentStories.standard} />
```
You can also reference a story from a different component:
```mdx
import { Meta, Story } from '@storybook/blocks';
import * as ComponentStories from './some-component.stories';
import * as SecondComponentStories from './second-component.stories';
<Meta of={ComponentStories} />
<Story of={SecondComponentStories.standard} meta={SecondComponentStories} />
```
#### Description block, `parameters.notes` and `parameters.info`
In 6.5 the Description doc block accepted a range of different props, `markdown`, `type` and `children` as a way to customize the content.
The props have been simplified and the block now only accepts an `of` prop, which can be a reference to either a CSF file, a default export (meta) or a story export, depending on which description you want to be shown. See TDB DOCS LINK for a deeper explanation of the new prop.
`parameters.notes` and `parameters.info` have been deprecated as a way to specify descriptions. Instead use JSDoc comments above the default export or story export, or use `parameters.docs.description.story | component` directly. See TDB DOCS LINK for a deeper explanation on how to write descriptions.
#### Autodocs
#### Autodocs changes
In 7.0, rather than rendering each story in "docs view mode", Autodocs (formerly known as "Docs Page") operates by adding additional sidebar entries for each component. By default it uses the same template as was used in 6.x, and the entries are entitled `Docs`.
@ -835,11 +784,159 @@ export default {
}
```
You can also set `autodocs: false` to opt-out of Autodocs entirely.
You can also set `autodocs: false` to opt-out of Autodocs entirely. Further configuration of Autodocs is described below.
You can change the default template in the same way as in 6.x, using the `docs.page` parameter.
**Parameter changes**
#### Configuring the Docs Container
We've renamed many of the parameters that control docs rendering for consistency with the blocks (see below). The old parameters are now deprecated and will be removed in 8.0. Here is a full list of changes:
- `docs.inlineStories` has been renamed `docs.story.inline`
- `docs.iframeHeight` has been renamed `docs.story.iframeHeight`
- `notes` and `info` are no longer supported, instead use `docs.description.story | component`
#### MDX docs files
Previously `.stories.mdx` files were used to both define and document stories. In 7.0, we have deprecated defining stories in MDX files, and consequently have changed the suffix to simply `.mdx`. Our default `stories` glob in `main.js` will now match such files -- if you want to write MDX files that do not appear in Storybook, you may need to adjust the glob accordingly.
If you were using `.stories.mdx` files to write stories, we encourage you to move the stories to a CSF file, and _attach_ an `.mdx` file to that CSF file to document them. You can use the `Meta` block to attach a MDX file to a CSF file, and the `Story` block to render the stories:
```mdx
import { Meta, Story } from '@storybook/blocks';
import * as ComponentStories from './some-component.stories';
<Meta of={ComponentStories} />
<Story of={ComponentStories.Primary} />
```
You can create as many docs entries as you like for a given component. Note that if you attach a docs entry to a component it will replace the automatically generated entry from Autodocs.
By default docs entries are listed first for the component. You can sort them using story sorting.
#### Unattached docs files
In Storybook 6.x, to create a unattached docs MDX file (that is, one not attached to story or a CSF file), you'd have to create a `.stories.mdx` file, and describe its location with the `Meta` doc block:
```mdx
import { Meta } from '@storybook/addon-docs';
<Meta title="Introduction" />
```
In 7.0, things are a little simpler -- you should call the file `.mdx` (drop the `.stories`). This will mean behind the scenes there is no story attached to this entry. You may also drop the `title` and use autotitle (and leave the `Meta` component out entirely, potentially).
#### Doc Blocks
Additionally to changing the docs information architecture, we've updated the API of the doc blocks themselves to be more consistent and future proof.
**General changes**
- Each block now uses `of={}` as a primary API -- where the argument to the `of` prop is a CSF or story _export_.
- When you've attached to a CSF file (with the `Meta` block, or in Autodocs), you can drop the `of` and the block will reference the first story or the CSF file as a whole.
- Most other props controlling rendering of blocks now correspond precisely to the parameters for that block [defined for autodocs above](#autodocs-changes).
##### Meta block
The primary change of the `Meta` block is the ability to attach to CSF files with `<Meta of={}>` as described above.
##### Description block, `parameters.notes` and `parameters.info`
In 6.5 the Description doc block accepted a range of different props, `markdown`, `type` and `children` as a way to customize the content.
The props have been simplified and the block now only accepts an `of` prop, which can be a reference to either a CSF file, a default export (meta) or a story export, depending on which description you want to be shown. See TDB DOCS LINK for a deeper explanation of the new prop.
`parameters.notes` and `parameters.info` have been deprecated as a way to specify descriptions. Instead use JSDoc comments above the default export or story export, or use `parameters.docs.description.story | component` directly. See TDB DOCS LINK for a deeper explanation on how to write descriptions.
##### Story block
To reference a story in a MDX file, you should reference it with `of`:
```mdx
import { Meta, Story } from '@storybook/blocks';
import * as ComponentStories from './some-component.stories';
<Meta of={ComponentStories} />
<Story of={ComponentStories.standard} />
```
You can also reference a story from a different component:
```mdx
import { Meta, Story } from '@storybook/blocks';
import * as ComponentStories from './some-component.stories';
import * as SecondComponentStories from './second-component.stories';
<Meta of={ComponentStories} />
<Story of={SecondComponentStories.standard} meta={SecondComponentStories} />
```
Referencing stories by `id="xyz--abc"` is deprecated and should be replaced with `of={}` as above.
##### Source block
The source block now references a single story, the component, or a CSF file itself via the `of={}` parameter.
Referencing stories by `id="xyz--abc"` is deprecated and should be replaced with `of={}` as above. Referencing multiple stories via `ids={["xyz--abc"]}` is now deprecated and should be avoided (instead use two source blocks).
#### Canvas block
The Canvas block follows the same changes as [the Story block described above](#story-block).
Previously the Canvas block accepted children (Story blocks) as a way to reference stories. That has now been replaced with the `of={}` prop that accepts a reference to _a story_.
That also means the Canvas block no longer supports containing multiple stories or elements, and thus the props related to that - `isColumn` and `columns` - have also been deprecated.
- To pass props to the inner Story block use the `story={{ }}` prop
- Similarly, to pass props to the inner Source block use the `source={{ }}` prop.
- The `mdxSource` prop has been deprecated in favor of using `source={{ code: '...' }}`
- The `withSource` prop has been renamed to `sourceState`
Here's a full example of the new API:
```mdx
import { Meta, Canvas } from '@storybook/blocks';
import * as ComponentStories from './some-component.stories';
<Meta of={ComponentStories} />
<Canvas
of={ComponentStories.standard}
story={{
inline: false,
height: '200px'
}}
source={{
language: 'html',
code: 'custom code...'
}}
withToolbar={true}
additionalActions={[...]}
layout="fullscreen"
className="custom-class"
/>
```
##### ArgsTable block
The `ArgsTable` block is now deprecated, and two new blocks: `ArgsTypes` and `Controls` should be preferred.
- `<ArgTypes of={storyExports OR metaExports OR component} />` will render a readonly table of args/props descriptions for a story, CSF file or component. If `of` ommitted and the MDX file is attached it will render the arg types defined at the CSF file level.
- `<Controls of={storyExports} />` will render the controls for a story (or the primary story if `of` is omitted and the MDX file is attached).
The following props are not supported in the new blocks:
- `components` - to render more than one component in a single table
- `showComponent` to show the component's props as well as the story's args
- the `subcomponents` annotation to show more components on the table.
- `of="^"` to reference the meta (just omit `of` in that case, for `ArgTypes`).
- `story="^"` to reference the primary story (just omit `of` in that case, for `Controls`).
- `story="."` to reference the current story (this no longer makes sense in Docs 2).
- `story="name"` to reference a story (use `of={}`).
#### Configuring Autodocs
As in 6.x, you can override the docs container to configure docs further. This is the container that each docs entry is rendered inside:
@ -853,6 +950,8 @@ export const parameters = {
}
```
Note that the container must be implemented as a _React component_.
You likely want to use the `DocsContainer` component exported by `@storybook/blocks` and consider the following examples:
**Overriding theme**:
@ -882,37 +981,39 @@ export const MyDocsContainer = (props) => (
**_NOTE_**: due to breaking changes in MDX2, such override will _only_ apply to elements you create via the MDX syntax, not pure HTML -- ie. `## content` not `<h2>content</h2>`.
#### External Docs
Storybook 7.0 can be used in the above way in externally created projects (i.e. custom docs sites). Your `.mdx` files defined as above should be portable to other contexts. You simply need to render them in an `ExternalDocs` component:
```js
// In your project somewhere:
import { ExternalDocs } from '@storybook/blocks';
// Import all the preview entries from addons that need to operate in your external docs,
// at a minimum likely your project's and your renderer's.
import * as reactAnnotations from '@storybook/react/preview';
import * as previewAnnotations from '../.storybook/preview';
export default function App({ Component, pageProps }) {
return (
<ExternalDocs projectAnnotationsList={[reactAnnotations, previewAnnotations]}>
<Component {...pageProps} />
</ExternalDocs>
);
}
```
#### MDX2 upgrade
Storybook 7 Docs uses MDXv2 instead of MDXv1. This means an improved syntax, support for inline JS expression, and improved performance among [other benefits](https://mdxjs.com/blog/v2/).
If you use `.stories.mdx` files in your project, you may need to edit them since MDX2 contains [breaking changes](https://mdxjs.com/migrating/v2/#update-mdx-files).
If you use `.stories.mdx` files in your project, you'll probably need to edit them since MDX2 contains [breaking changes](https://mdxjs.com/migrating/v2/#update-mdx-files). In general, MDX2 is stricter and more structured than MDX1.
We will update this section with specific pointers based on user feedback during the prerelease period and probably add an codemod to help streamline the upgrade before final 7.0 release.
We've provided an automigration, `mdx1to2` that makes a few of these changes automatically. For example, `mdx1to2` automatically converts MDX1-style HTML comments into MDX2-style JSX comments to save you time.
As part of the upgrade we deleted the codemod `mdx-to-csf` and will be replacing it with a more sophisticated version prior to release.
Unfortunately, the set of changes from MDX1 to MDX2 is vast, and many changes are subtle, so the bulk of the migration will be manual. You can use the [MDX Playground](https://mdxjs.com/playground/) to try out snippets interactively.
#### Legacy MDX1 support
If you get stuck with the [MDX2 upgrade](#mdx2-upgrade), we also provide opt-in legacy MDX1 support. This is intended as a temporary solution while you upgrade your Storybook; MDX1 will be discontinued in Storybook 8.0. The MDX1 library is no longer maintained and installing it results in `npm audit` security warnings.
To process your `.stories.mdx` files with MDX1, first install the `@storybook/mdx1-csf` package in your project:
```
yarn add -D @storybook/mdx1-csf@next
```
Then enable the `legacyMdx1` feature flag in your `.storybook/main.js` file:
```js
export default {
features: {
legacyMdx1: true,
}
}
```
NOTE: This only affects `.(stories|story).mdx` files. Notably, if you want to use Storybook 7's "pure" `.mdx` format, you'll need to use MDX2 for that.
NOTE: Legacy MDX1 support is only for Webpack projects. There is currently no legacy support for Vite.
#### Default docs styles will leak into non-story user components

View File

@ -1,6 +1,6 @@
{
"name": "@storybook/addon-a11y",
"version": "7.0.0-beta.31",
"version": "7.0.0-beta.34",
"description": "Test component compliance with web accessibility standards",
"keywords": [
"a11y",
@ -63,16 +63,16 @@
"prep": "../../../scripts/prepare/bundle.ts"
},
"dependencies": {
"@storybook/addon-highlight": "7.0.0-beta.31",
"@storybook/channels": "7.0.0-beta.31",
"@storybook/client-logger": "7.0.0-beta.31",
"@storybook/components": "7.0.0-beta.31",
"@storybook/core-events": "7.0.0-beta.31",
"@storybook/addon-highlight": "7.0.0-beta.34",
"@storybook/channels": "7.0.0-beta.34",
"@storybook/client-logger": "7.0.0-beta.34",
"@storybook/components": "7.0.0-beta.34",
"@storybook/core-events": "7.0.0-beta.34",
"@storybook/global": "^5.0.0",
"@storybook/manager-api": "7.0.0-beta.31",
"@storybook/preview-api": "7.0.0-beta.31",
"@storybook/theming": "7.0.0-beta.31",
"@storybook/types": "7.0.0-beta.31",
"@storybook/manager-api": "7.0.0-beta.34",
"@storybook/preview-api": "7.0.0-beta.34",
"@storybook/theming": "7.0.0-beta.34",
"@storybook/types": "7.0.0-beta.34",
"axe-core": "^4.2.0",
"lodash": "^4.17.21",
"react-resize-detector": "^7.1.2"
@ -104,7 +104,7 @@
"./src/preview.tsx"
]
},
"gitHead": "6d1ea7647fce605b2029077cbd02f655cafe1807",
"gitHead": "b8c17b23e92257c5a09b592dc6b557ba7b94ccea",
"storybook": {
"displayName": "Accessibility",
"icon": "https://user-images.githubusercontent.com/263385/101991665-47042f80-3c7c-11eb-8f00-64b5a18f498a.png",

View File

@ -1,6 +1,6 @@
{
"name": "@storybook/addon-actions",
"version": "7.0.0-beta.31",
"version": "7.0.0-beta.34",
"description": "Get UI feedback when an action is performed on an interactive element",
"keywords": [
"storybook",
@ -77,14 +77,14 @@
"prep": "../../../scripts/prepare/bundle.ts"
},
"dependencies": {
"@storybook/client-logger": "7.0.0-beta.31",
"@storybook/components": "7.0.0-beta.31",
"@storybook/core-events": "7.0.0-beta.31",
"@storybook/client-logger": "7.0.0-beta.34",
"@storybook/components": "7.0.0-beta.34",
"@storybook/core-events": "7.0.0-beta.34",
"@storybook/global": "^5.0.0",
"@storybook/manager-api": "7.0.0-beta.31",
"@storybook/preview-api": "7.0.0-beta.31",
"@storybook/theming": "7.0.0-beta.31",
"@storybook/types": "7.0.0-beta.31",
"@storybook/manager-api": "7.0.0-beta.34",
"@storybook/preview-api": "7.0.0-beta.34",
"@storybook/theming": "7.0.0-beta.34",
"@storybook/types": "7.0.0-beta.34",
"dequal": "^2.0.2",
"lodash": "^4.17.21",
"polished": "^4.2.2",
@ -121,7 +121,7 @@
"./src/preview.ts"
]
},
"gitHead": "6d1ea7647fce605b2029077cbd02f655cafe1807",
"gitHead": "b8c17b23e92257c5a09b592dc6b557ba7b94ccea",
"storybook": {
"displayName": "Actions",
"unsupportedFrameworks": [

View File

@ -1,6 +1,6 @@
{
"name": "@storybook/addon-backgrounds",
"version": "7.0.0-beta.31",
"version": "7.0.0-beta.34",
"description": "Switch backgrounds to view components in different settings",
"keywords": [
"addon",
@ -76,14 +76,14 @@
"prep": "../../../scripts/prepare/bundle.ts"
},
"dependencies": {
"@storybook/client-logger": "7.0.0-beta.31",
"@storybook/components": "7.0.0-beta.31",
"@storybook/core-events": "7.0.0-beta.31",
"@storybook/client-logger": "7.0.0-beta.34",
"@storybook/components": "7.0.0-beta.34",
"@storybook/core-events": "7.0.0-beta.34",
"@storybook/global": "^5.0.0",
"@storybook/manager-api": "7.0.0-beta.31",
"@storybook/preview-api": "7.0.0-beta.31",
"@storybook/theming": "7.0.0-beta.31",
"@storybook/types": "7.0.0-beta.31",
"@storybook/manager-api": "7.0.0-beta.34",
"@storybook/preview-api": "7.0.0-beta.34",
"@storybook/theming": "7.0.0-beta.34",
"@storybook/types": "7.0.0-beta.34",
"memoizerific": "^1.11.3",
"ts-dedent": "^2.0.0"
},
@ -112,7 +112,7 @@
"./src/preview.tsx"
]
},
"gitHead": "6d1ea7647fce605b2029077cbd02f655cafe1807",
"gitHead": "b8c17b23e92257c5a09b592dc6b557ba7b94ccea",
"storybook": {
"displayName": "Backgrounds",
"icon": "https://user-images.githubusercontent.com/263385/101991667-479cc600-3c7c-11eb-96d3-410e936252e7.png",

View File

@ -1,6 +1,6 @@
{
"name": "@storybook/addon-controls",
"version": "7.0.0-beta.31",
"version": "7.0.0-beta.34",
"description": "Interact with component inputs dynamically in the Storybook UI",
"keywords": [
"addon",
@ -68,15 +68,15 @@
"prep": "../../../scripts/prepare/bundle.ts"
},
"dependencies": {
"@storybook/blocks": "7.0.0-beta.31",
"@storybook/client-logger": "7.0.0-beta.31",
"@storybook/components": "7.0.0-beta.31",
"@storybook/core-common": "7.0.0-beta.31",
"@storybook/manager-api": "7.0.0-beta.31",
"@storybook/node-logger": "7.0.0-beta.31",
"@storybook/preview-api": "7.0.0-beta.31",
"@storybook/theming": "7.0.0-beta.31",
"@storybook/types": "7.0.0-beta.31",
"@storybook/blocks": "7.0.0-beta.34",
"@storybook/client-logger": "7.0.0-beta.34",
"@storybook/components": "7.0.0-beta.34",
"@storybook/core-common": "7.0.0-beta.34",
"@storybook/manager-api": "7.0.0-beta.34",
"@storybook/node-logger": "7.0.0-beta.34",
"@storybook/preview-api": "7.0.0-beta.34",
"@storybook/theming": "7.0.0-beta.34",
"@storybook/types": "7.0.0-beta.34",
"lodash": "^4.17.21",
"ts-dedent": "^2.0.0"
},
@ -102,7 +102,7 @@
],
"platform": "browser"
},
"gitHead": "6d1ea7647fce605b2029077cbd02f655cafe1807",
"gitHead": "b8c17b23e92257c5a09b592dc6b557ba7b94ccea",
"storybook": {
"displayName": "Controls",
"icon": "https://user-images.githubusercontent.com/263385/101991669-479cc600-3c7c-11eb-93d9-38b67e8371f2.png",

View File

@ -1,6 +1,6 @@
{
"name": "@storybook/addon-docs",
"version": "7.0.0-beta.31",
"version": "7.0.0-beta.34",
"description": "Document component usage and properties in Markdown",
"keywords": [
"addon",
@ -103,19 +103,19 @@
"@babel/plugin-transform-react-jsx": "^7.19.0",
"@jest/transform": "^29.3.1",
"@mdx-js/react": "^2.1.5",
"@storybook/blocks": "7.0.0-beta.31",
"@storybook/client-logger": "7.0.0-beta.31",
"@storybook/components": "7.0.0-beta.31",
"@storybook/csf-plugin": "7.0.0-beta.31",
"@storybook/csf-tools": "7.0.0-beta.31",
"@storybook/blocks": "7.0.0-beta.34",
"@storybook/client-logger": "7.0.0-beta.34",
"@storybook/components": "7.0.0-beta.34",
"@storybook/csf-plugin": "7.0.0-beta.34",
"@storybook/csf-tools": "7.0.0-beta.34",
"@storybook/global": "^5.0.0",
"@storybook/mdx2-csf": "next",
"@storybook/node-logger": "7.0.0-beta.31",
"@storybook/postinstall": "7.0.0-beta.31",
"@storybook/preview-api": "7.0.0-beta.31",
"@storybook/theming": "7.0.0-beta.31",
"@storybook/types": "7.0.0-beta.31",
"fs-extra": "^9.0.1",
"@storybook/node-logger": "7.0.0-beta.34",
"@storybook/postinstall": "7.0.0-beta.34",
"@storybook/preview-api": "7.0.0-beta.34",
"@storybook/theming": "7.0.0-beta.34",
"@storybook/types": "7.0.0-beta.34",
"fs-extra": "^11.1.0",
"remark-external-links": "^8.0.0",
"remark-slug": "^6.0.0",
"ts-dedent": "^2.0.0"
@ -126,9 +126,15 @@
"typescript": "~4.9.3"
},
"peerDependencies": {
"@storybook/mdx1-csf": ">=1.0.0-0",
"react": "^16.8.0 || ^17.0.0 || ^18.0.0",
"react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0"
},
"peerDependenciesMeta": {
"@storybook/mdx1-csf": {
"optional": true
}
},
"publishConfig": {
"access": "public"
},
@ -141,7 +147,7 @@
"./src/shims/mdx-react-shim.ts"
]
},
"gitHead": "6d1ea7647fce605b2029077cbd02f655cafe1807",
"gitHead": "b8c17b23e92257c5a09b592dc6b557ba7b94ccea",
"storybook": {
"displayName": "Docs",
"icon": "https://user-images.githubusercontent.com/263385/101991672-48355c80-3c7c-11eb-82d9-95fa12438f64.png",

View File

@ -6,7 +6,9 @@ import { dedent } from 'ts-dedent';
import type { IndexerOptions, StoryIndexer, DocsOptions, Options } from '@storybook/types';
import type { CsfPluginOptions } from '@storybook/csf-plugin';
import type { JSXOptions } from '@storybook/mdx2-csf';
import { global } from '@storybook/global';
import { loadCsf } from '@storybook/csf-tools';
import { logger } from '@storybook/node-logger';
import { ensureReactPeerDeps } from './ensure-react-peer-deps';
async function webpack(
@ -73,7 +75,12 @@ async function webpack(
`);
}
const mdxLoader = require.resolve('@storybook/mdx2-csf/loader');
const mdxVersion = global.FEATURES?.legacyMdx1 ? 'MDX1' : 'MDX2';
logger.info(`Addon-docs: using ${mdxVersion}`);
const mdxLoader = global.FEATURES?.legacyMdx1
? require.resolve('@storybook/mdx1-csf/loader')
: require.resolve('@storybook/mdx2-csf/loader');
let rules = module.rules || [];
if (transcludeMarkdown) {
@ -135,7 +142,9 @@ async function webpack(
const storyIndexers = (indexers: StoryIndexer[] | null) => {
const mdxIndexer = async (fileName: string, opts: IndexerOptions) => {
let code = (await fs.readFile(fileName, 'utf-8')).toString();
const { compile } = await import('@storybook/mdx2-csf');
const { compile } = global.FEATURES?.legacyMdx1
? await import('@storybook/mdx1-csf')
: await import('@storybook/mdx2-csf');
code = await compile(code, {});
return loadCsf(code, { ...opts, fileName }).parse();
};

View File

@ -4,9 +4,20 @@ declare module 'remark-external-links';
declare module 'babel-plugin-react-docgen';
declare module 'acorn-jsx';
declare module 'vue/dist/vue';
declare module '@storybook/mdx1-csf';
declare module 'sveltedoc-parser' {
export function parse(options: any): Promise<any>;
}
declare var FEATURES:
| {
storyStoreV7?: boolean;
interactionsDebugger?: boolean;
breakingChangesV7?: boolean;
argTypeTargetsV7?: boolean;
legacyMdx1?: boolean;
}
| undefined;
declare var LOGLEVEL: 'trace' | 'debug' | 'info' | 'warn' | 'error' | 'silent' | undefined;

View File

@ -1,6 +1,6 @@
{
"name": "@storybook/addon-essentials",
"version": "7.0.0-beta.31",
"version": "7.0.0-beta.34",
"description": "Curated addons to bring out the best of Storybook",
"keywords": [
"addon",
@ -119,23 +119,23 @@
"prep": "../../../scripts/prepare/bundle.ts"
},
"dependencies": {
"@storybook/addon-actions": "7.0.0-beta.31",
"@storybook/addon-backgrounds": "7.0.0-beta.31",
"@storybook/addon-controls": "7.0.0-beta.31",
"@storybook/addon-docs": "7.0.0-beta.31",
"@storybook/addon-highlight": "7.0.0-beta.31",
"@storybook/addon-measure": "7.0.0-beta.31",
"@storybook/addon-outline": "7.0.0-beta.31",
"@storybook/addon-toolbars": "7.0.0-beta.31",
"@storybook/addon-viewport": "7.0.0-beta.31",
"@storybook/core-common": "7.0.0-beta.31",
"@storybook/manager-api": "7.0.0-beta.31",
"@storybook/node-logger": "7.0.0-beta.31",
"@storybook/preview-api": "7.0.0-beta.31",
"@storybook/addon-actions": "7.0.0-beta.34",
"@storybook/addon-backgrounds": "7.0.0-beta.34",
"@storybook/addon-controls": "7.0.0-beta.34",
"@storybook/addon-docs": "7.0.0-beta.34",
"@storybook/addon-highlight": "7.0.0-beta.34",
"@storybook/addon-measure": "7.0.0-beta.34",
"@storybook/addon-outline": "7.0.0-beta.34",
"@storybook/addon-toolbars": "7.0.0-beta.34",
"@storybook/addon-viewport": "7.0.0-beta.34",
"@storybook/core-common": "7.0.0-beta.34",
"@storybook/manager-api": "7.0.0-beta.34",
"@storybook/node-logger": "7.0.0-beta.34",
"@storybook/preview-api": "7.0.0-beta.34",
"ts-dedent": "^2.0.0"
},
"devDependencies": {
"@storybook/vue": "7.0.0-beta.31",
"@storybook/vue": "7.0.0-beta.34",
"typescript": "^4.9.3"
},
"peerDependencies": {
@ -166,5 +166,5 @@
],
"platform": "node"
},
"gitHead": "6d1ea7647fce605b2029077cbd02f655cafe1807"
"gitHead": "b8c17b23e92257c5a09b592dc6b557ba7b94ccea"
}

View File

@ -1,6 +1,6 @@
{
"name": "@storybook/addon-highlight",
"version": "7.0.0-beta.31",
"version": "7.0.0-beta.34",
"description": "Highlight DOM nodes within your stories",
"keywords": [
"storybook-addons",
@ -61,9 +61,9 @@
"prep": "../../../scripts/prepare/bundle.ts"
},
"dependencies": {
"@storybook/core-events": "7.0.0-beta.31",
"@storybook/core-events": "7.0.0-beta.34",
"@storybook/global": "^5.0.0",
"@storybook/preview-api": "7.0.0-beta.31"
"@storybook/preview-api": "7.0.0-beta.34"
},
"devDependencies": {
"@types/webpack-env": "^1.16.0",
@ -78,7 +78,7 @@
"./src/preview.ts"
]
},
"gitHead": "6d1ea7647fce605b2029077cbd02f655cafe1807",
"gitHead": "b8c17b23e92257c5a09b592dc6b557ba7b94ccea",
"sbmodern": "dist/modern/index.js",
"storybook": {
"displayName": "Highlight",

View File

@ -1,6 +1,6 @@
{
"name": "@storybook/addon-interactions",
"version": "7.0.0-beta.31",
"version": "7.0.0-beta.34",
"description": "Automate, test and debug user interactions",
"keywords": [
"storybook-addons",
@ -72,16 +72,16 @@
"prep": "../../../scripts/prepare/bundle.ts"
},
"dependencies": {
"@storybook/client-logger": "7.0.0-beta.31",
"@storybook/components": "7.0.0-beta.31",
"@storybook/core-common": "7.0.0-beta.31",
"@storybook/core-events": "7.0.0-beta.31",
"@storybook/client-logger": "7.0.0-beta.34",
"@storybook/components": "7.0.0-beta.34",
"@storybook/core-common": "7.0.0-beta.34",
"@storybook/core-events": "7.0.0-beta.34",
"@storybook/global": "^5.0.0",
"@storybook/instrumenter": "7.0.0-beta.31",
"@storybook/manager-api": "7.0.0-beta.31",
"@storybook/preview-api": "7.0.0-beta.31",
"@storybook/theming": "7.0.0-beta.31",
"@storybook/types": "7.0.0-beta.31",
"@storybook/instrumenter": "7.0.0-beta.34",
"@storybook/manager-api": "7.0.0-beta.34",
"@storybook/preview-api": "7.0.0-beta.34",
"@storybook/theming": "7.0.0-beta.34",
"@storybook/types": "7.0.0-beta.34",
"jest-mock": "^27.0.6",
"polished": "^4.2.2",
"ts-dedent": "^2.2.0"
@ -118,7 +118,7 @@
],
"platform": "node"
},
"gitHead": "6d1ea7647fce605b2029077cbd02f655cafe1807",
"gitHead": "b8c17b23e92257c5a09b592dc6b557ba7b94ccea",
"storybook": {
"displayName": "Interactions",
"unsupportedFrameworks": [

View File

@ -1,6 +1,6 @@
{
"name": "@storybook/addon-jest",
"version": "7.0.0-beta.31",
"version": "7.0.0-beta.34",
"description": "React storybook addon that show component jest report",
"keywords": [
"addon",
@ -70,13 +70,13 @@
"prep": "../../../scripts/prepare/bundle.ts"
},
"dependencies": {
"@storybook/client-logger": "7.0.0-beta.31",
"@storybook/components": "7.0.0-beta.31",
"@storybook/core-events": "7.0.0-beta.31",
"@storybook/client-logger": "7.0.0-beta.34",
"@storybook/components": "7.0.0-beta.34",
"@storybook/core-events": "7.0.0-beta.34",
"@storybook/global": "^5.0.0",
"@storybook/manager-api": "7.0.0-beta.31",
"@storybook/preview-api": "7.0.0-beta.31",
"@storybook/theming": "7.0.0-beta.31",
"@storybook/manager-api": "7.0.0-beta.34",
"@storybook/preview-api": "7.0.0-beta.34",
"@storybook/theming": "7.0.0-beta.34",
"react-resize-detector": "^7.1.2",
"upath": "^1.2.0"
},
@ -105,7 +105,7 @@
],
"platform": "browser"
},
"gitHead": "6d1ea7647fce605b2029077cbd02f655cafe1807",
"gitHead": "b8c17b23e92257c5a09b592dc6b557ba7b94ccea",
"storybook": {
"displayName": "Jest",
"icon": "https://pbs.twimg.com/profile_images/821713465245102080/mMtKIMax_400x400.jpg",

View File

@ -1,6 +1,6 @@
{
"name": "@storybook/addon-links",
"version": "7.0.0-beta.31",
"version": "7.0.0-beta.34",
"description": "Link stories together to build demos and prototypes with your UI components",
"keywords": [
"addon",
@ -80,19 +80,19 @@
"prep": "../../../scripts/prepare/bundle.ts"
},
"dependencies": {
"@storybook/client-logger": "7.0.0-beta.31",
"@storybook/core-events": "7.0.0-beta.31",
"@storybook/client-logger": "7.0.0-beta.34",
"@storybook/core-events": "7.0.0-beta.34",
"@storybook/csf": "next",
"@storybook/global": "^5.0.0",
"@storybook/manager-api": "7.0.0-beta.31",
"@storybook/preview-api": "7.0.0-beta.31",
"@storybook/router": "7.0.0-beta.31",
"@storybook/types": "7.0.0-beta.31",
"@storybook/manager-api": "7.0.0-beta.34",
"@storybook/preview-api": "7.0.0-beta.34",
"@storybook/router": "7.0.0-beta.34",
"@storybook/types": "7.0.0-beta.34",
"prop-types": "^15.7.2",
"ts-dedent": "^2.0.0"
},
"devDependencies": {
"fs-extra": "^9.0.1",
"fs-extra": "^11.1.0",
"typescript": "~4.9.3"
},
"peerDependencies": {
@ -119,7 +119,7 @@
],
"post": "./scripts/fix-preview-api-reference.ts"
},
"gitHead": "6d1ea7647fce605b2029077cbd02f655cafe1807",
"gitHead": "b8c17b23e92257c5a09b592dc6b557ba7b94ccea",
"storybook": {
"displayName": "Links",
"icon": "https://user-images.githubusercontent.com/263385/101991673-48355c80-3c7c-11eb-9b6e-b627c96a75f6.png",

View File

@ -1,6 +1,6 @@
{
"name": "@storybook/addon-measure",
"version": "7.0.0-beta.31",
"version": "7.0.0-beta.34",
"description": "Inspect layouts by visualizing the box model",
"keywords": [
"storybook-addons",
@ -75,13 +75,13 @@
"prep": "../../../scripts/prepare/bundle.ts"
},
"dependencies": {
"@storybook/client-logger": "7.0.0-beta.31",
"@storybook/components": "7.0.0-beta.31",
"@storybook/core-events": "7.0.0-beta.31",
"@storybook/client-logger": "7.0.0-beta.34",
"@storybook/components": "7.0.0-beta.34",
"@storybook/core-events": "7.0.0-beta.34",
"@storybook/global": "^5.0.0",
"@storybook/manager-api": "7.0.0-beta.31",
"@storybook/preview-api": "7.0.0-beta.31",
"@storybook/types": "7.0.0-beta.31"
"@storybook/manager-api": "7.0.0-beta.34",
"@storybook/preview-api": "7.0.0-beta.34",
"@storybook/types": "7.0.0-beta.34"
},
"devDependencies": {
"typescript": "~4.9.3"
@ -108,7 +108,7 @@
"./src/preview.tsx"
]
},
"gitHead": "6d1ea7647fce605b2029077cbd02f655cafe1807",
"gitHead": "b8c17b23e92257c5a09b592dc6b557ba7b94ccea",
"storybook": {
"displayName": "Measure",
"unsupportedFrameworks": [

View File

@ -1,6 +1,6 @@
{
"name": "@storybook/addon-outline",
"version": "7.0.0-beta.31",
"version": "7.0.0-beta.34",
"description": "Outline all elements with CSS to help with layout placement and alignment",
"keywords": [
"storybook-addons",
@ -78,13 +78,13 @@
"prep": "../../../scripts/prepare/bundle.ts"
},
"dependencies": {
"@storybook/client-logger": "7.0.0-beta.31",
"@storybook/components": "7.0.0-beta.31",
"@storybook/core-events": "7.0.0-beta.31",
"@storybook/client-logger": "7.0.0-beta.34",
"@storybook/components": "7.0.0-beta.34",
"@storybook/core-events": "7.0.0-beta.34",
"@storybook/global": "^5.0.0",
"@storybook/manager-api": "7.0.0-beta.31",
"@storybook/preview-api": "7.0.0-beta.31",
"@storybook/types": "7.0.0-beta.31",
"@storybook/manager-api": "7.0.0-beta.34",
"@storybook/preview-api": "7.0.0-beta.34",
"@storybook/types": "7.0.0-beta.34",
"ts-dedent": "^2.0.0"
},
"devDependencies": {
@ -112,7 +112,7 @@
"./src/preview.tsx"
]
},
"gitHead": "6d1ea7647fce605b2029077cbd02f655cafe1807",
"gitHead": "b8c17b23e92257c5a09b592dc6b557ba7b94ccea",
"storybook": {
"displayName": "Outline",
"unsupportedFrameworks": [

View File

@ -1,6 +1,6 @@
{
"name": "@storybook/addon-storyshots",
"version": "7.0.0-beta.31",
"version": "7.0.0-beta.34",
"description": "Take a code snapshot of every story automatically with Jest",
"keywords": [
"addon",
@ -37,12 +37,12 @@
"dependencies": {
"@jest/transform": "^29.3.1",
"@storybook/babel-plugin-require-context-hook": "1.0.1",
"@storybook/client-api": "7.0.0-beta.31",
"@storybook/core-common": "7.0.0-beta.31",
"@storybook/core-webpack": "7.0.0-beta.31",
"@storybook/client-api": "7.0.0-beta.34",
"@storybook/core-common": "7.0.0-beta.34",
"@storybook/core-webpack": "7.0.0-beta.34",
"@storybook/global": "^5.0.0",
"@storybook/preview-api": "7.0.0-beta.31",
"@storybook/types": "7.0.0-beta.31",
"@storybook/preview-api": "7.0.0-beta.34",
"@storybook/types": "7.0.0-beta.34",
"@types/glob": "^7.1.3",
"@types/jest-specific-snapshot": "^0.5.6",
"core-js": "^3.8.2",
@ -58,11 +58,11 @@
"@angular/core": "^13.3.6",
"@angular/platform-browser-dynamic": "^13.3.6",
"@emotion/jest": "^11.8.0",
"@storybook/addon-docs": "7.0.0-beta.31",
"@storybook/angular": "7.0.0-beta.31",
"@storybook/react": "7.0.0-beta.31",
"@storybook/vue": "7.0.0-beta.31",
"@storybook/vue3": "7.0.0-beta.31",
"@storybook/addon-docs": "7.0.0-beta.34",
"@storybook/angular": "7.0.0-beta.34",
"@storybook/react": "7.0.0-beta.34",
"@storybook/vue": "7.0.0-beta.34",
"@storybook/vue3": "7.0.0-beta.34",
"babel-loader": "^9.1.2",
"enzyme": "^3.11.0",
"enzyme-adapter-react-16": "^1.15.5",
@ -143,7 +143,7 @@
"access": "public"
},
"bundler": {},
"gitHead": "6d1ea7647fce605b2029077cbd02f655cafe1807",
"gitHead": "b8c17b23e92257c5a09b592dc6b557ba7b94ccea",
"storybook": {
"displayName": "Storyshots",
"icon": "https://user-images.githubusercontent.com/263385/101991676-48cdf300-3c7c-11eb-8aa1-944dab6ab29b.png",

View File

@ -1,6 +1,6 @@
{
"name": "@storybook/addon-storyshots-puppeteer",
"version": "7.0.0-beta.31",
"version": "7.0.0-beta.34",
"description": "Image snapshots addition to StoryShots based on puppeteer",
"keywords": [
"addon",
@ -36,8 +36,8 @@
"dependencies": {
"@axe-core/puppeteer": "^4.2.0",
"@storybook/csf": "next",
"@storybook/node-logger": "7.0.0-beta.31",
"@storybook/types": "7.0.0-beta.31",
"@storybook/node-logger": "7.0.0-beta.34",
"@storybook/types": "7.0.0-beta.34",
"@types/jest-image-snapshot": "^5.1.0",
"jest-image-snapshot": "^6.0.0"
},
@ -49,7 +49,7 @@
"rimraf": "^3.0.2"
},
"peerDependencies": {
"@storybook/addon-storyshots": "7.0.0-beta.31",
"@storybook/addon-storyshots": "7.0.0-beta.34",
"puppeteer": ">=2.0.0"
},
"peerDependenciesMeta": {
@ -61,5 +61,5 @@
"access": "public"
},
"bundler": {},
"gitHead": "6d1ea7647fce605b2029077cbd02f655cafe1807"
"gitHead": "b8c17b23e92257c5a09b592dc6b557ba7b94ccea"
}

View File

@ -1,6 +1,6 @@
{
"name": "@storybook/addon-storysource",
"version": "7.0.0-beta.31",
"version": "7.0.0-beta.34",
"description": "View a storys source code to see how it works and paste into your app",
"keywords": [
"addon",
@ -54,13 +54,13 @@
"prep": "../../../scripts/prepare/bundle.ts"
},
"dependencies": {
"@storybook/client-logger": "7.0.0-beta.31",
"@storybook/components": "7.0.0-beta.31",
"@storybook/manager-api": "7.0.0-beta.31",
"@storybook/preview-api": "7.0.0-beta.31",
"@storybook/router": "7.0.0-beta.31",
"@storybook/source-loader": "7.0.0-beta.31",
"@storybook/theming": "7.0.0-beta.31",
"@storybook/client-logger": "7.0.0-beta.34",
"@storybook/components": "7.0.0-beta.34",
"@storybook/manager-api": "7.0.0-beta.34",
"@storybook/preview-api": "7.0.0-beta.34",
"@storybook/router": "7.0.0-beta.34",
"@storybook/source-loader": "7.0.0-beta.34",
"@storybook/theming": "7.0.0-beta.34",
"estraverse": "^5.2.0",
"prop-types": "^15.7.2",
"react-syntax-highlighter": "^15.5.0"
@ -92,7 +92,7 @@
"./src/preset.ts"
]
},
"gitHead": "6d1ea7647fce605b2029077cbd02f655cafe1807",
"gitHead": "b8c17b23e92257c5a09b592dc6b557ba7b94ccea",
"storybook": {
"displayName": "Storysource",
"icon": "https://user-images.githubusercontent.com/263385/101991675-48cdf300-3c7c-11eb-9400-58de5ac6daa7.png",

View File

@ -1,6 +1,6 @@
{
"name": "@storybook/addon-toolbars",
"version": "7.0.0-beta.31",
"version": "7.0.0-beta.34",
"description": "Create your own toolbar items that control story rendering",
"keywords": [
"addon",
@ -68,11 +68,11 @@
"prep": "../../../scripts/prepare/bundle.ts"
},
"dependencies": {
"@storybook/client-logger": "7.0.0-beta.31",
"@storybook/components": "7.0.0-beta.31",
"@storybook/manager-api": "7.0.0-beta.31",
"@storybook/preview-api": "7.0.0-beta.31",
"@storybook/theming": "7.0.0-beta.31"
"@storybook/client-logger": "7.0.0-beta.34",
"@storybook/components": "7.0.0-beta.34",
"@storybook/manager-api": "7.0.0-beta.34",
"@storybook/preview-api": "7.0.0-beta.34",
"@storybook/theming": "7.0.0-beta.34"
},
"devDependencies": {
"typescript": "~4.9.3"
@ -99,7 +99,7 @@
],
"platform": "browser"
},
"gitHead": "6d1ea7647fce605b2029077cbd02f655cafe1807",
"gitHead": "b8c17b23e92257c5a09b592dc6b557ba7b94ccea",
"storybook": {
"displayName": "Toolbars",
"icon": "https://user-images.githubusercontent.com/263385/101991677-48cdf300-3c7c-11eb-93b4-19b0e3366959.png",

View File

@ -1,6 +1,6 @@
{
"name": "@storybook/addon-viewport",
"version": "7.0.0-beta.31",
"version": "7.0.0-beta.34",
"description": "Build responsive components by adjusting Storybooks viewport size and orientation",
"keywords": [
"addon",
@ -73,13 +73,13 @@
"prep": "../../../scripts/prepare/bundle.ts"
},
"dependencies": {
"@storybook/client-logger": "7.0.0-beta.31",
"@storybook/components": "7.0.0-beta.31",
"@storybook/core-events": "7.0.0-beta.31",
"@storybook/client-logger": "7.0.0-beta.34",
"@storybook/components": "7.0.0-beta.34",
"@storybook/core-events": "7.0.0-beta.34",
"@storybook/global": "^5.0.0",
"@storybook/manager-api": "7.0.0-beta.31",
"@storybook/preview-api": "7.0.0-beta.31",
"@storybook/theming": "7.0.0-beta.31",
"@storybook/manager-api": "7.0.0-beta.34",
"@storybook/preview-api": "7.0.0-beta.34",
"@storybook/theming": "7.0.0-beta.34",
"memoizerific": "^1.11.3",
"prop-types": "^15.7.2"
},
@ -109,7 +109,7 @@
"./src/preview.ts"
]
},
"gitHead": "6d1ea7647fce605b2029077cbd02f655cafe1807",
"gitHead": "b8c17b23e92257c5a09b592dc6b557ba7b94ccea",
"storybook": {
"displayName": "Viewport",
"icon": "https://user-images.githubusercontent.com/263385/101991678-48cdf300-3c7c-11eb-9764-f8af293c1b28.png",

View File

@ -1,6 +1,6 @@
{
"name": "@storybook/angular",
"version": "7.0.0-beta.31",
"version": "7.0.0-beta.34",
"description": "Storybook for Angular: Develop Angular components in isolation with hot reloading.",
"keywords": [
"storybook",
@ -36,20 +36,20 @@
"prep": "../../../scripts/prepare/tsc.ts"
},
"dependencies": {
"@storybook/builder-webpack5": "7.0.0-beta.31",
"@storybook/cli": "7.0.0-beta.31",
"@storybook/client-logger": "7.0.0-beta.31",
"@storybook/core-client": "7.0.0-beta.31",
"@storybook/core-common": "7.0.0-beta.31",
"@storybook/core-events": "7.0.0-beta.31",
"@storybook/core-server": "7.0.0-beta.31",
"@storybook/core-webpack": "7.0.0-beta.31",
"@storybook/docs-tools": "7.0.0-beta.31",
"@storybook/builder-webpack5": "7.0.0-beta.34",
"@storybook/cli": "7.0.0-beta.34",
"@storybook/client-logger": "7.0.0-beta.34",
"@storybook/core-client": "7.0.0-beta.34",
"@storybook/core-common": "7.0.0-beta.34",
"@storybook/core-events": "7.0.0-beta.34",
"@storybook/core-server": "7.0.0-beta.34",
"@storybook/core-webpack": "7.0.0-beta.34",
"@storybook/docs-tools": "7.0.0-beta.34",
"@storybook/global": "^5.0.0",
"@storybook/manager-api": "7.0.0-beta.31",
"@storybook/node-logger": "7.0.0-beta.31",
"@storybook/preview-api": "7.0.0-beta.31",
"@storybook/types": "7.0.0-beta.31",
"@storybook/manager-api": "7.0.0-beta.34",
"@storybook/node-logger": "7.0.0-beta.34",
"@storybook/preview-api": "7.0.0-beta.34",
"@storybook/types": "7.0.0-beta.34",
"@types/node": "^16.0.0",
"@types/react": "^16.14.34",
"@types/react-dom": "^16.9.14",
@ -67,16 +67,17 @@
},
"devDependencies": {
"@angular-devkit/architect": "^0.1500.4",
"@angular-devkit/build-angular": "^15.0.4",
"@angular-devkit/core": "^15.0.4",
"@angular/cli": "^15.0.4",
"@angular/common": "^15.0.4",
"@angular/compiler": "^15.0.4",
"@angular/compiler-cli": "^15.0.4",
"@angular/core": "^15.0.4",
"@angular/forms": "^15.0.4",
"@angular/platform-browser": "^15.0.4",
"@angular/platform-browser-dynamic": "^15.0.4",
"@angular-devkit/build-angular": "^15.1.1",
"@angular-devkit/core": "^15.1.1",
"@angular/animations": "^15.1.1",
"@angular/cli": "^15.1.1",
"@angular/common": "^15.1.1",
"@angular/compiler": "^15.1.1",
"@angular/compiler-cli": "^15.1.1",
"@angular/core": "^15.1.1",
"@angular/forms": "^15.1.1",
"@angular/platform-browser": "^15.1.1",
"@angular/platform-browser-dynamic": "^15.1.1",
"@types/rimraf": "^3.0.2",
"@types/tmp": "^0.2.3",
"cross-spawn": "^7.0.3",
@ -90,17 +91,17 @@
"zone.js": "^0.12.0"
},
"peerDependencies": {
"@angular-devkit/architect": ">=0.1400.0",
"@angular-devkit/build-angular": ">=14.0.0",
"@angular-devkit/core": ">=14.0.0",
"@angular/cli": ">=14.0.0",
"@angular/common": ">=14.0.0",
"@angular/compiler": ">=14.0.0",
"@angular/compiler-cli": ">=14.0.0",
"@angular/core": ">=14.0.0",
"@angular/forms": ">=14.0.0",
"@angular/platform-browser": ">=14.0.0",
"@angular/platform-browser-dynamic": ">=14.0.0",
"@angular-devkit/architect": ">=0.1400.0 < 0.1600.0",
"@angular-devkit/build-angular": ">=14.1.0 < 16.0.0",
"@angular-devkit/core": ">=14.1.0 < 16.0.0",
"@angular/cli": ">=14.1.0 < 16.0.0",
"@angular/common": ">=14.1.0 < 16.0.0",
"@angular/compiler": ">=14.1.0 < 16.0.0",
"@angular/compiler-cli": ">=14.1.0 < 16.0.0",
"@angular/core": ">=14.1.0 < 16.0.0",
"@angular/forms": ">=14.1.0 < 16.0.0",
"@angular/platform-browser": ">=14.1.0 < 16.0.0",
"@angular/platform-browser-dynamic": ">=14.1.0 < 16.0.0",
"@babel/core": "*",
"react": "^16.8.0 || ^17.0.0 || ^18.0.0",
"react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0",
@ -123,5 +124,5 @@
"bundler": {
"tsConfig": "tsconfig.build.json"
},
"gitHead": "6d1ea7647fce605b2029077cbd02f655cafe1807"
"gitHead": "b8c17b23e92257c5a09b592dc6b557ba7b94ccea"
}

View File

@ -22,7 +22,7 @@ import { buildStandaloneErrorHandler } from '../utils/build-standalone-errors-ha
export type StorybookBuilderOptions = JsonObject & {
browserTarget?: string | null;
tsConfig?: string;
docsMode: boolean;
docs: boolean;
compodoc: boolean;
compodocArgs: string[];
styles?: StyleElement[];
@ -59,7 +59,7 @@ function commandBuilder(
stylePreprocessorOptions,
styles,
configDir,
docsMode,
docs,
loglevel,
outputDir,
quiet,
@ -70,7 +70,7 @@ function commandBuilder(
const standaloneOptions: StandaloneBuildOptions = {
packageJson: readUpSync({ cwd: __dirname }).packageJson,
configDir,
docsMode,
...(docs ? { docs } : {}),
loglevel,
outputDir,
quiet,

View File

@ -34,7 +34,7 @@
"description": "Suppress verbose build output.",
"default": false
},
"docsMode": {
"docs": {
"type": "boolean",
"description": "Starts Storybook in documentation mode. Learn more about it : https://storybook.js.org/docs/react/writing-docs/build-documentation#preview-storybooks-documentation.",
"default": false
@ -47,13 +47,19 @@
"compodocArgs": {
"type": "array",
"description": "Compodoc options : https://compodoc.app/guides/options.html. Options `-p` with tsconfig path and `-d` with workspace root is always given.",
"default": ["-e", "json"],
"default": [
"-e",
"json"
],
"items": {
"type": "string"
}
},
"webpackStatsJson": {
"type": ["boolean", "string"],
"type": [
"boolean",
"string"
],
"description": "Write Webpack Stats JSON to disk",
"default": false
},
@ -104,7 +110,9 @@
}
},
"additionalProperties": false,
"required": ["input"]
"required": [
"input"
]
},
{
"type": "string",
@ -113,4 +121,4 @@
]
}
}
}
}

View File

@ -22,7 +22,7 @@ import { buildStandaloneErrorHandler } from '../utils/build-standalone-errors-ha
export type StorybookBuilderOptions = JsonObject & {
browserTarget?: string | null;
tsConfig?: string;
docsMode: boolean;
docs: boolean;
compodoc: boolean;
compodocArgs: string[];
styles?: StyleElement[];
@ -68,7 +68,7 @@ function commandBuilder(
styles,
ci,
configDir,
docsMode,
docs,
host,
https,
port,
@ -84,7 +84,7 @@ function commandBuilder(
packageJson: readUpSync({ cwd: __dirname }).packageJson,
ci,
configDir,
docsMode,
...(docs ? { docs } : {}),
host,
https,
port,

View File

@ -61,7 +61,7 @@
"description": "Suppress verbose build output.",
"default": false
},
"docsMode": {
"docs": {
"type": "boolean",
"description": "Starts Storybook in documentation mode. Learn more about it : https://storybook.js.org/docs/react/writing-docs/build-documentation#preview-storybooks-documentation.",
"default": false
@ -74,7 +74,10 @@
"compodocArgs": {
"type": "array",
"description": "Compodoc options : https://compodoc.app/guides/options.html. Options `-p` with tsconfig path and `-d` with workspace root is always given.",
"default": ["-e", "json"],
"default": [
"-e",
"json"
],
"items": {
"type": "string"
}
@ -126,7 +129,9 @@
}
},
"additionalProperties": false,
"required": ["input"]
"required": [
"input"
]
},
{
"type": "string",
@ -135,4 +140,4 @@
]
}
}
}
}

View File

@ -1,4 +1,3 @@
import { BuilderContext } from '@angular-devkit/architect';
import { LoggerApi } from '@angular-devkit/core/src/logger';
import { take } from 'rxjs/operators';
@ -41,7 +40,7 @@ describe('runCompodoc', () => {
{
workspaceRoot: 'path/to/project',
logger: builderContextLoggerMock,
} as BuilderContext
}
)
.pipe(take(1))
.subscribe();
@ -65,7 +64,7 @@ describe('runCompodoc', () => {
{
workspaceRoot: 'path/to/project',
logger: builderContextLoggerMock,
} as BuilderContext
}
)
.pipe(take(1))
.subscribe();
@ -89,7 +88,7 @@ describe('runCompodoc', () => {
{
workspaceRoot: 'path/to/project',
logger: builderContextLoggerMock,
} as BuilderContext
}
)
.pipe(take(1))
.subscribe();
@ -112,7 +111,7 @@ describe('runCompodoc', () => {
{
workspaceRoot: 'path/to/project',
logger: builderContextLoggerMock,
} as BuilderContext
}
)
.pipe(take(1))
.subscribe();
@ -135,7 +134,7 @@ describe('runCompodoc', () => {
{
workspaceRoot: 'path/to/project',
logger: builderContextLoggerMock,
} as BuilderContext
}
)
.pipe(take(1))
.subscribe();

View File

@ -1,9 +1,10 @@
import { NgModule, enableProdMode, Type, ApplicationRef } from '@angular/core';
import { ApplicationRef, enableProdMode, NgModule } from '@angular/core';
import { bootstrapApplication } from '@angular/platform-browser';
import { provideAnimations, BrowserAnimationsModule } from '@angular/platform-browser/animations';
import { Subject, BehaviorSubject } from 'rxjs';
import { BehaviorSubject, Subject } from 'rxjs';
import { stringify } from 'telejson';
import { ICollection, StoryFnAngularReturnType, Parameters } from '../types';
import { ICollection, Parameters, StoryFnAngularReturnType } from '../types';
import { getApplication } from './StorybookModule';
import { storyPropsProvider } from './StorybookProvider';
import { componentNgModules } from './StorybookWrapperComponent';
@ -97,6 +98,16 @@ export abstract class AbstractRenderer {
const newStoryProps$ = new BehaviorSubject<ICollection>(storyFnAngular.props);
const hasAnimationsDefined =
!!storyFnAngular.moduleMetadata?.imports?.includes(BrowserAnimationsModule);
if (hasAnimationsDefined && storyFnAngular?.moduleMetadata?.imports) {
// eslint-disable-next-line no-param-reassign
storyFnAngular.moduleMetadata.imports = storyFnAngular.moduleMetadata.imports.filter(
(importedModule) => importedModule !== BrowserAnimationsModule
);
}
if (
!this.fullRendererRequired({
storyFnAngular,
@ -122,7 +133,10 @@ export abstract class AbstractRenderer {
const application = getApplication({ storyFnAngular, component, targetSelector });
const applicationRef = await bootstrapApplication(application, {
providers: [storyPropsProvider(newStoryProps$)],
providers: [
...(hasAnimationsDefined ? [provideAnimations()] : []),
storyPropsProvider(newStoryProps$),
],
});
applicationRefs.add(applicationRef);

View File

@ -1,28 +1,22 @@
import { CommonModule } from '@angular/common';
import {
AfterViewInit,
ElementRef,
OnDestroy,
Type,
ChangeDetectorRef,
Component,
ElementRef,
Inject,
NgModule,
OnDestroy,
Type,
ViewChild,
ViewContainerRef,
NgModule,
} from '@angular/core';
import { Subscription, Subject } from 'rxjs';
import { Subject, Subscription } from 'rxjs';
import { map, skip } from 'rxjs/operators';
import { ICollection, NgModuleMetadata } from '../types';
import { STORY_PROPS } from './StorybookProvider';
import {
ComponentInputsOutputs,
getComponentInputsOutputs,
isDeclarable,
isStandaloneComponent,
} from './utils/NgComponentAnalyzer';
import { isComponentAlreadyDeclaredInModules } from './utils/NgModulesAnalyzer';
import { ComponentInputsOutputs, getComponentInputsOutputs } from './utils/NgComponentAnalyzer';
import { extractDeclarations, extractImports, extractProviders } from './utils/PropertyExtractor';
const getNonInputsOutputsProps = (
ngComponentInputsOutputs: ComponentInputsOutputs,
@ -37,6 +31,7 @@ const getNonInputsOutputsProps = (
return Object.keys(props).filter((k) => ![...inputs, ...outputs].includes(k));
};
// component modules cache
export const componentNgModules = new Map<any, Type<any>>();
/**
@ -57,56 +52,33 @@ export const createStorybookWrapperComponent = (
// storyComponent was not provided.
const viewChildSelector = storyComponent ?? '__storybook-noop';
const isStandalone = isStandaloneComponent(storyComponent);
// Look recursively (deep) if the component is not already declared by an import module
const requiresComponentDeclaration =
isDeclarable(storyComponent) &&
!isComponentAlreadyDeclaredInModules(
storyComponent,
moduleMetadata.declarations,
moduleMetadata.imports
) &&
!isStandalone;
const providersNgModules = (moduleMetadata.providers ?? []).map((provider) => {
if (!componentNgModules.get(provider)) {
@NgModule({
providers: [provider],
})
class ProviderModule {}
componentNgModules.set(provider, ProviderModule);
}
return componentNgModules.get(provider);
});
if (!componentNgModules.get(storyComponent)) {
const declarations = [
...(requiresComponentDeclaration ? [storyComponent] : []),
...(moduleMetadata.declarations ?? []),
];
const imports = extractImports(moduleMetadata);
const declarations = extractDeclarations(moduleMetadata, storyComponent);
const providers = extractProviders(moduleMetadata);
// Only create a new module if it doesn't already exist
// This is to prevent the module from being recreated on every story change
// Declarations & Imports are only added once
// Providers are added on every story change to allow for story-specific providers
let ngModule = componentNgModules.get(storyComponent);
if (!ngModule) {
@NgModule({
declarations,
imports: [CommonModule, ...(moduleMetadata.imports ?? [])],
exports: [...declarations, ...(moduleMetadata.imports ?? [])],
imports,
exports: [...declarations, ...imports],
})
class StorybookComponentModule {}
componentNgModules.set(storyComponent, StorybookComponentModule);
ngModule = componentNgModules.get(storyComponent);
}
@Component({
selector,
template,
standalone: true,
imports: [
CommonModule,
componentNgModules.get(storyComponent),
...providersNgModules,
...(isStandalone ? [storyComponent] : []),
],
imports: [ngModule],
providers,
styles,
schemas: moduleMetadata.schemas,
})

View File

@ -1,5 +1,5 @@
import { Component, NgModule } from '@angular/core';
import { isComponentAlreadyDeclaredInModules } from './NgModulesAnalyzer';
import { isComponentAlreadyDeclared } from './NgModulesAnalyzer';
const FooComponent = Component({})(class {});
@ -11,16 +11,14 @@ const AlphaModule = NgModule({ imports: [BetaModule] })(class {});
describe('isComponentAlreadyDeclaredInModules', () => {
it('should return true when the component is already declared in one of modules', () => {
expect(isComponentAlreadyDeclaredInModules(FooComponent, [], [AlphaModule])).toEqual(true);
expect(isComponentAlreadyDeclared(FooComponent, [], [AlphaModule])).toEqual(true);
});
it('should return true if the component is in moduleDeclarations', () => {
expect(
isComponentAlreadyDeclaredInModules(BarComponent, [BarComponent], [AlphaModule])
).toEqual(true);
expect(isComponentAlreadyDeclared(BarComponent, [BarComponent], [AlphaModule])).toEqual(true);
});
it('should return false if the component is not declared', () => {
expect(isComponentAlreadyDeclaredInModules(BarComponent, [], [AlphaModule])).toEqual(false);
expect(isComponentAlreadyDeclared(BarComponent, [], [AlphaModule])).toEqual(false);
});
});

View File

@ -7,7 +7,7 @@ const reflectionCapabilities = new ReflectionCapabilities();
*
* Checks recursively if the component has already been declared in all import Module
*/
export const isComponentAlreadyDeclaredInModules = (
export const isComponentAlreadyDeclared = (
componentToFind: any,
moduleDeclarations: any[],
moduleImports: any[]
@ -29,7 +29,7 @@ export const isComponentAlreadyDeclaredInModules = (
// Not an NgModule
return false;
}
return isComponentAlreadyDeclaredInModules(
return isComponentAlreadyDeclared(
componentToFind,
extractedNgModuleMetadata.declarations,
extractedNgModuleMetadata.imports

View File

@ -0,0 +1,107 @@
import { CommonModule } from '@angular/common';
import { Component, Directive, Injectable, InjectionToken, NgModule } from '@angular/core';
import { extractDeclarations, extractImports, extractProviders } from './PropertyExtractor';
const TEST_TOKEN = new InjectionToken('testToken');
const TestTokenProvider = { provide: TEST_TOKEN, useValue: 123 };
const TestService = Injectable()(class {});
const TestComponent1 = Component({})(class {});
const TestComponent2 = Component({})(class {});
const StandaloneTestComponent = Component({ standalone: true })(class {});
const TestDirective = Directive({})(class {});
const TestModuleWithDeclarations = NgModule({ declarations: [TestComponent1] })(class {});
const TestModuleWithImportsAndProviders = NgModule({
imports: [TestModuleWithDeclarations],
providers: [TestTokenProvider],
})(class {});
describe('PropertyExtractor', () => {
describe('extractImports', () => {
it('should return an array of imports', () => {
const imports = extractImports({ imports: [TestModuleWithImportsAndProviders] });
expect(imports).toEqual([CommonModule, TestModuleWithImportsAndProviders]);
});
it('should return an array of unique imports without providers', () => {
const imports = extractImports({
imports: [
TestModuleWithImportsAndProviders,
{ ngModule: TestModuleWithImportsAndProviders, providers: [] },
],
});
expect(imports).toEqual([CommonModule, TestModuleWithImportsAndProviders]);
});
});
describe('extractDeclarations', () => {
it('should return an array of declarations', () => {
const declarations = extractDeclarations({ declarations: [TestComponent1] }, TestComponent2);
expect(declarations).toEqual([TestComponent1, TestComponent2]);
});
it('should ignore pre-declared components', () => {
// TestComponent1 is declared as part of TestModuleWithDeclarations
// TestModuleWithDeclarations is imported by TestModuleWithImportsAndProviders
const declarations = extractDeclarations(
{
imports: [TestModuleWithImportsAndProviders],
declarations: [TestComponent2, StandaloneTestComponent, TestDirective],
},
TestComponent1
);
expect(declarations).toEqual([TestComponent2, StandaloneTestComponent, TestDirective]);
});
it('should ignore standalone components', () => {
const declarations = extractDeclarations(
{
imports: [TestModuleWithImportsAndProviders],
declarations: [TestComponent1, TestComponent2, TestDirective],
},
StandaloneTestComponent
);
expect(declarations).toEqual([TestComponent1, TestComponent2, TestDirective]);
});
it('should ignore non components/directives/pipes', () => {
const declarations = extractDeclarations(
{
imports: [TestModuleWithImportsAndProviders],
declarations: [TestComponent1, TestComponent2, StandaloneTestComponent],
},
TestService
);
expect(declarations).toEqual([TestComponent1, TestComponent2, StandaloneTestComponent]);
});
});
describe('extractProviders', () => {
it('should return an array of providers', () => {
const providers = extractProviders({
providers: [TestService],
});
expect(providers).toEqual([TestService]);
});
it('should return an array of providers extracted from ModuleWithProviders', () => {
const providers = extractProviders({
imports: [{ ngModule: TestModuleWithImportsAndProviders, providers: [TestService] }],
});
expect(providers).toEqual([TestService]);
});
it('should return an array of unique providers', () => {
const providers = extractProviders({
imports: [{ ngModule: TestModuleWithImportsAndProviders, providers: [TestService] }],
providers: [TestService, { provide: TEST_TOKEN, useValue: 123 }],
});
expect(providers).toEqual([
TestService,
{
provide: new InjectionToken('testToken'),
useValue: 123,
},
]);
});
});
});

View File

@ -0,0 +1,78 @@
import { CommonModule } from '@angular/common';
import { Provider } from '@angular/core';
import { NgModuleMetadata } from '../../types';
import { isDeclarable, isStandaloneComponent } from './NgComponentAnalyzer';
import { isComponentAlreadyDeclared } from './NgModulesAnalyzer';
const uniqueArray = (arr: any[]) => {
return arr.flat(Number.MAX_VALUE).filter((value, index, self) => self.indexOf(value) === index);
};
/**
* Extract Imports from NgModule
*
* CommonModule is always imported
*
* metadata.imports are flattened deeply and extracted into a new array
*
* - If ModuleWithProviders (e.g. forRoot() & forChild() ) is used, the ngModule is extracted without providers.
*
*/
export const extractImports = (metadata: NgModuleMetadata) => {
const imports = [CommonModule];
const modules = (metadata.imports || []).flat(Number.MAX_VALUE);
const withProviders = modules.filter((moduleDef) => !!moduleDef?.ngModule);
const withoutProviders = modules.filter((moduleDef) => !withProviders.includes(moduleDef));
return uniqueArray([
imports,
withoutProviders,
withProviders.map((moduleDef) => moduleDef.ngModule),
]);
};
/**
* Extract providers from NgModule
*
* - A new array is returned with:
* - metadata.providers
* - providers from each **ModuleWithProviders** (e.g. forRoot() & forChild() )
*
* - Use this in combination with extractImports to get all providers for a specific module
*
*/
export const extractProviders = (metadata: NgModuleMetadata): Provider[] => {
const providers = (metadata.providers || []) as Provider[];
const moduleProviders: Provider[] = (metadata.imports || [])
.flat(Number.MAX_VALUE)
.filter((moduleDef) => !!moduleDef?.ngModule)
.map((moduleDef) => moduleDef.providers || []);
return uniqueArray([].concat(moduleProviders, providers));
};
/**
* Extract declarations from NgModule
*
* - If a story component is provided, it will be added to the declarations array if:
* - It is a component or directive or pipe
* - It is not already declared
* - It is not a standalone component
*
*/
export const extractDeclarations = (metadata: NgModuleMetadata, storyComponent?: any) => {
const declarations = metadata.declarations || [];
if (storyComponent) {
const isStandalone = isStandaloneComponent(storyComponent);
const isDeclared = isComponentAlreadyDeclared(storyComponent, declarations, metadata.imports);
const requiresDeclaration = isDeclarable(storyComponent) && !isDeclared && !isStandalone;
if (requiresDeclaration) {
declarations.push(storyComponent);
}
}
return uniqueArray(declarations);
};

View File

@ -0,0 +1,13 @@
:host {
display: block;
margin-top: 1rem;
}
.open-close-container {
border: 1px solid #dddddd;
margin-top: 1em;
padding: 20px 20px 0px 20px;
color: #000000;
font-weight: bold;
font-size: 20px;
}

View File

@ -0,0 +1,7 @@
<nav>
<button type="button" (click)="toggle()">Toggle Open/Close</button>
</nav>
<div [@openClose]="isOpen ? 'open' : 'closed'" class="open-close-container">
<p>The box is now {{ isOpen ? 'Open' : 'Closed' }}!</p>
</div>

View File

@ -0,0 +1,39 @@
import { Component } from '@angular/core';
// eslint-disable-next-line import/no-extraneous-dependencies
import { trigger, state, style, transition, animate } from '@angular/animations';
@Component({
selector: 'app-open-close',
animations: [
trigger('openClose', [
// ...
state(
'open',
style({
height: '200px',
opacity: 1,
backgroundColor: 'yellow',
})
),
state(
'closed',
style({
height: '100px',
opacity: 0.8,
backgroundColor: 'blue',
})
),
transition('open => closed', [animate('0.1s')]),
transition('closed => open', [animate('0.1s')]),
]),
],
templateUrl: 'open-close.component.html',
styleUrls: ['open-close.component.css'],
})
export class OpenCloseComponent {
isOpen = true;
toggle() {
this.isOpen = !this.isOpen;
}
}

View File

@ -0,0 +1,30 @@
import { Meta, StoryFn } from '@storybook/angular';
import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
import { within, userEvent } from '@storybook/testing-library';
import { expect } from '@storybook/jest';
import { OpenCloseComponent } from './angular-src/open-close-component/open-close.component';
export default {
component: OpenCloseComponent,
parameters: {
chromatic: { delay: 100 },
},
} as Meta;
export const WithBrowserAnimations: StoryFn = () => ({
template: `<app-open-close></app-open-close>`,
moduleMetadata: {
declarations: [OpenCloseComponent],
imports: [BrowserAnimationsModule],
},
});
WithBrowserAnimations.play = async ({ canvasElement }) => {
const canvas = within(canvasElement);
const opened = canvas.getByText('The box is now Open!');
expect(opened).toBeDefined();
const submitButton = canvas.getByRole('button');
await userEvent.click(submitButton);
const closed = canvas.getByText('The box is now Closed!');
expect(closed).toBeDefined();
};

View File

@ -1,6 +1,6 @@
{
"name": "@storybook/ember",
"version": "7.0.0-beta.31",
"version": "7.0.0-beta.34",
"description": "Storybook for Ember: Develop Ember Component in isolation with Hot Reloading.",
"homepage": "https://github.com/storybookjs/storybook/tree/main/frameworks/ember",
"bugs": {
@ -31,12 +31,12 @@
"prep": "../../../scripts/prepare/tsc.ts"
},
"dependencies": {
"@storybook/builder-webpack5": "7.0.0-beta.31",
"@storybook/core-common": "7.0.0-beta.31",
"@storybook/docs-tools": "7.0.0-beta.31",
"@storybook/builder-webpack5": "7.0.0-beta.34",
"@storybook/core-common": "7.0.0-beta.34",
"@storybook/docs-tools": "7.0.0-beta.34",
"@storybook/global": "^5.0.0",
"@storybook/preview-api": "7.0.0-beta.31",
"@storybook/types": "7.0.0-beta.31",
"@storybook/preview-api": "7.0.0-beta.34",
"@storybook/types": "7.0.0-beta.34",
"ts-dedent": "^2.0.0"
},
"devDependencies": {
@ -59,5 +59,5 @@
"access": "public"
},
"bundler": {},
"gitHead": "6d1ea7647fce605b2029077cbd02f655cafe1807"
"gitHead": "b8c17b23e92257c5a09b592dc6b557ba7b94ccea"
}

View File

@ -1,6 +1,6 @@
{
"name": "@storybook/html-vite",
"version": "7.0.0-beta.31",
"version": "7.0.0-beta.34",
"description": "Storybook for HTML and Vite: Develop HTML in isolation with Hot Reloading.",
"keywords": [
"storybook"
@ -48,15 +48,15 @@
"prep": "../../../scripts/prepare/bundle.ts"
},
"dependencies": {
"@storybook/addons": "7.0.0-beta.31",
"@storybook/builder-vite": "7.0.0-beta.31",
"@storybook/channel-postmessage": "7.0.0-beta.31",
"@storybook/channel-websocket": "7.0.0-beta.31",
"@storybook/client-api": "7.0.0-beta.31",
"@storybook/core-server": "7.0.0-beta.31",
"@storybook/html": "7.0.0-beta.31",
"@storybook/node-logger": "7.0.0-beta.31",
"@storybook/preview-web": "7.0.0-beta.31",
"@storybook/addons": "7.0.0-beta.34",
"@storybook/builder-vite": "7.0.0-beta.34",
"@storybook/channel-postmessage": "7.0.0-beta.34",
"@storybook/channel-websocket": "7.0.0-beta.34",
"@storybook/client-api": "7.0.0-beta.34",
"@storybook/core-server": "7.0.0-beta.34",
"@storybook/html": "7.0.0-beta.34",
"@storybook/node-logger": "7.0.0-beta.34",
"@storybook/preview-web": "7.0.0-beta.34",
"magic-string": "^0.26.1"
},
"devDependencies": {
@ -76,5 +76,5 @@
],
"platform": "node"
},
"gitHead": "6d1ea7647fce605b2029077cbd02f655cafe1807"
"gitHead": "b8c17b23e92257c5a09b592dc6b557ba7b94ccea"
}

View File

@ -1,6 +1,6 @@
{
"name": "@storybook/html-webpack5",
"version": "7.0.0-beta.31",
"version": "7.0.0-beta.34",
"description": "Storybook for HTML: View HTML snippets in isolation with Hot Reloading.",
"keywords": [
"storybook"
@ -48,11 +48,11 @@
"prep": "../../../scripts/prepare/bundle.ts"
},
"dependencies": {
"@storybook/builder-webpack5": "7.0.0-beta.31",
"@storybook/core-common": "7.0.0-beta.31",
"@storybook/builder-webpack5": "7.0.0-beta.34",
"@storybook/core-common": "7.0.0-beta.34",
"@storybook/global": "^5.0.0",
"@storybook/html": "7.0.0-beta.31",
"@storybook/preset-html-webpack": "7.0.0-beta.31",
"@storybook/html": "7.0.0-beta.34",
"@storybook/preset-html-webpack": "7.0.0-beta.34",
"@types/node": "^16.0.0"
},
"devDependencies": {
@ -76,5 +76,5 @@
],
"platform": "node"
},
"gitHead": "6d1ea7647fce605b2029077cbd02f655cafe1807"
"gitHead": "b8c17b23e92257c5a09b592dc6b557ba7b94ccea"
}

View File

@ -1,6 +1,6 @@
{
"name": "@storybook/nextjs",
"version": "7.0.0-beta.31",
"version": "7.0.0-beta.34",
"description": "Storybook for Next.js",
"keywords": [
"storybook",
@ -60,16 +60,16 @@
},
"dependencies": {
"@next/font": "^13.0.7",
"@storybook/addon-actions": "7.0.0-beta.31",
"@storybook/builder-webpack5": "7.0.0-beta.31",
"@storybook/core-common": "7.0.0-beta.31",
"@storybook/node-logger": "7.0.0-beta.31",
"@storybook/preset-react-webpack": "7.0.0-beta.31",
"@storybook/preview-api": "7.0.0-beta.31",
"@storybook/react": "7.0.0-beta.31",
"@storybook/addon-actions": "7.0.0-beta.34",
"@storybook/builder-webpack5": "7.0.0-beta.34",
"@storybook/core-common": "7.0.0-beta.34",
"@storybook/node-logger": "7.0.0-beta.34",
"@storybook/preset-react-webpack": "7.0.0-beta.34",
"@storybook/preview-api": "7.0.0-beta.34",
"@storybook/react": "7.0.0-beta.34",
"@types/node": "^16.0.0",
"find-up": "^5.0.0",
"fs-extra": "^9.0.1",
"fs-extra": "^11.1.0",
"image-size": "^1.0.0",
"loader-utils": "^3.2.0",
"pnp-webpack-plugin": "^1.7.0",
@ -123,5 +123,5 @@
],
"platform": "node"
},
"gitHead": "6d1ea7647fce605b2029077cbd02f655cafe1807"
"gitHead": "b8c17b23e92257c5a09b592dc6b557ba7b94ccea"
}

View File

@ -1,6 +1,6 @@
{
"name": "@storybook/preact-vite",
"version": "7.0.0-beta.31",
"version": "7.0.0-beta.34",
"description": "Storybook for Preact and Vite: Develop Preact components in isolation with Hot Reloading.",
"keywords": [
"storybook"
@ -48,8 +48,8 @@
},
"dependencies": {
"@preact/preset-vite": "^2.0.0",
"@storybook/builder-vite": "7.0.0-beta.31",
"@storybook/preact": "7.0.0-beta.31"
"@storybook/builder-vite": "7.0.0-beta.34",
"@storybook/preact": "7.0.0-beta.34"
},
"devDependencies": {
"@types/node": "^16.0.0",
@ -73,5 +73,5 @@
],
"platform": "node"
},
"gitHead": "6d1ea7647fce605b2029077cbd02f655cafe1807"
"gitHead": "b8c17b23e92257c5a09b592dc6b557ba7b94ccea"
}

View File

@ -1,6 +1,6 @@
{
"name": "@storybook/preact-webpack5",
"version": "7.0.0-beta.31",
"version": "7.0.0-beta.34",
"description": "Storybook for Preact: Develop Preact Component in isolation.",
"keywords": [
"storybook"
@ -48,10 +48,10 @@
"prep": "../../../scripts/prepare/bundle.ts"
},
"dependencies": {
"@storybook/builder-webpack5": "7.0.0-beta.31",
"@storybook/core-common": "7.0.0-beta.31",
"@storybook/preact": "7.0.0-beta.31",
"@storybook/preset-preact-webpack": "7.0.0-beta.31",
"@storybook/builder-webpack5": "7.0.0-beta.34",
"@storybook/core-common": "7.0.0-beta.34",
"@storybook/preact": "7.0.0-beta.34",
"@storybook/preset-preact-webpack": "7.0.0-beta.34",
"@types/node": "^16.0.0"
},
"devDependencies": {
@ -77,5 +77,5 @@
],
"platform": "node"
},
"gitHead": "6d1ea7647fce605b2029077cbd02f655cafe1807"
"gitHead": "b8c17b23e92257c5a09b592dc6b557ba7b94ccea"
}

View File

@ -1,6 +1,6 @@
{
"name": "@storybook/react-vite",
"version": "7.0.0-beta.31",
"version": "7.0.0-beta.34",
"description": "Storybook for React and Vite: Develop React components in isolation with Hot Reloading.",
"keywords": [
"storybook"
@ -50,8 +50,8 @@
"dependencies": {
"@joshwooding/vite-plugin-react-docgen-typescript": "^0.2.1",
"@rollup/pluginutils": "^4.2.0",
"@storybook/builder-vite": "7.0.0-beta.31",
"@storybook/react": "7.0.0-beta.31",
"@storybook/builder-vite": "7.0.0-beta.34",
"@storybook/react": "7.0.0-beta.34",
"@vitejs/plugin-react": "^3.0.1",
"ast-types": "^0.14.2",
"magic-string": "^0.26.1",
@ -80,5 +80,5 @@
],
"platform": "node"
},
"gitHead": "6d1ea7647fce605b2029077cbd02f655cafe1807"
"gitHead": "b8c17b23e92257c5a09b592dc6b557ba7b94ccea"
}

View File

@ -1,6 +1,6 @@
{
"name": "@storybook/react-webpack5",
"version": "7.0.0-beta.31",
"version": "7.0.0-beta.34",
"description": "Storybook for React: Develop React Component in isolation with Hot Reloading.",
"keywords": [
"storybook"
@ -48,9 +48,9 @@
"prep": "../../../scripts/prepare/bundle.ts"
},
"dependencies": {
"@storybook/builder-webpack5": "7.0.0-beta.31",
"@storybook/preset-react-webpack": "7.0.0-beta.31",
"@storybook/react": "7.0.0-beta.31",
"@storybook/builder-webpack5": "7.0.0-beta.34",
"@storybook/preset-react-webpack": "7.0.0-beta.34",
"@storybook/react": "7.0.0-beta.34",
"@types/node": "^16.0.0"
},
"devDependencies": {
@ -83,5 +83,5 @@
],
"platform": "node"
},
"gitHead": "6d1ea7647fce605b2029077cbd02f655cafe1807"
"gitHead": "b8c17b23e92257c5a09b592dc6b557ba7b94ccea"
}

View File

@ -1,6 +1,6 @@
{
"name": "@storybook/server-webpack5",
"version": "7.0.0-beta.31",
"version": "7.0.0-beta.34",
"description": "Storybook for Server: View HTML snippets from a server in isolation with Hot Reloading.",
"keywords": [
"storybook"
@ -48,10 +48,10 @@
"prep": "../../../scripts/prepare/bundle.ts"
},
"dependencies": {
"@storybook/builder-webpack5": "7.0.0-beta.31",
"@storybook/core-common": "7.0.0-beta.31",
"@storybook/preset-server-webpack": "7.0.0-beta.31",
"@storybook/server": "7.0.0-beta.31",
"@storybook/builder-webpack5": "7.0.0-beta.34",
"@storybook/core-common": "7.0.0-beta.34",
"@storybook/preset-server-webpack": "7.0.0-beta.34",
"@storybook/server": "7.0.0-beta.34",
"@types/node": "^16.0.0"
},
"devDependencies": {
@ -74,5 +74,5 @@
],
"platform": "node"
},
"gitHead": "6d1ea7647fce605b2029077cbd02f655cafe1807"
"gitHead": "b8c17b23e92257c5a09b592dc6b557ba7b94ccea"
}

View File

@ -1,6 +1,6 @@
{
"name": "@storybook/svelte-vite",
"version": "7.0.0-beta.31",
"version": "7.0.0-beta.34",
"description": "Storybook for Svelte and Vite: Develop Svelte components in isolation with Hot Reloading.",
"keywords": [
"storybook"
@ -48,9 +48,9 @@
"prep": "../../../scripts/prepare/bundle.ts"
},
"dependencies": {
"@storybook/builder-vite": "7.0.0-beta.31",
"@storybook/node-logger": "7.0.0-beta.31",
"@storybook/svelte": "7.0.0-beta.31",
"@storybook/builder-vite": "7.0.0-beta.34",
"@storybook/node-logger": "7.0.0-beta.34",
"@storybook/svelte": "7.0.0-beta.34",
"@sveltejs/vite-plugin-svelte": "^2.0.0",
"magic-string": "^0.26.1",
"svelte": "^3.0.0",
@ -80,5 +80,5 @@
],
"platform": "node"
},
"gitHead": "6d1ea7647fce605b2029077cbd02f655cafe1807"
"gitHead": "b8c17b23e92257c5a09b592dc6b557ba7b94ccea"
}

View File

@ -1,6 +1,6 @@
{
"name": "@storybook/svelte-webpack5",
"version": "7.0.0-beta.31",
"version": "7.0.0-beta.34",
"description": "Storybook for Svelte: Develop Svelte Component in isolation with Hot Reloading.",
"keywords": [
"storybook"
@ -48,10 +48,10 @@
"prep": "../../../scripts/prepare/bundle.ts"
},
"dependencies": {
"@storybook/builder-webpack5": "7.0.0-beta.31",
"@storybook/core-common": "7.0.0-beta.31",
"@storybook/preset-svelte-webpack": "7.0.0-beta.31",
"@storybook/svelte": "7.0.0-beta.31"
"@storybook/builder-webpack5": "7.0.0-beta.34",
"@storybook/core-common": "7.0.0-beta.34",
"@storybook/preset-svelte-webpack": "7.0.0-beta.34",
"@storybook/svelte": "7.0.0-beta.34"
},
"devDependencies": {
"svelte": "^3.48.0",
@ -78,5 +78,5 @@
],
"platform": "node"
},
"gitHead": "6d1ea7647fce605b2029077cbd02f655cafe1807"
"gitHead": "b8c17b23e92257c5a09b592dc6b557ba7b94ccea"
}

View File

@ -1,6 +1,6 @@
{
"name": "@storybook/sveltekit",
"version": "7.0.0-beta.31",
"version": "7.0.0-beta.34",
"description": "Storybook for SvelteKit",
"keywords": [
"storybook",
@ -51,9 +51,9 @@
"prep": "../../../scripts/prepare/bundle.ts"
},
"dependencies": {
"@storybook/builder-vite": "7.0.0-beta.31",
"@storybook/svelte": "7.0.0-beta.31",
"@storybook/svelte-vite": "7.0.0-beta.31"
"@storybook/builder-vite": "7.0.0-beta.34",
"@storybook/svelte": "7.0.0-beta.34",
"@storybook/svelte-vite": "7.0.0-beta.34"
},
"devDependencies": {
"@types/node": "^16.0.0",
@ -76,5 +76,5 @@
],
"platform": "node"
},
"gitHead": "6d1ea7647fce605b2029077cbd02f655cafe1807"
"gitHead": "b8c17b23e92257c5a09b592dc6b557ba7b94ccea"
}

View File

@ -1,6 +1,6 @@
{
"name": "@storybook/vue-vite",
"version": "7.0.0-beta.31",
"version": "7.0.0-beta.34",
"description": "Storybook for Vue2 and Vite: Develop Vue2 Components in isolation with Hot Reloading.",
"keywords": [
"storybook"
@ -48,10 +48,10 @@
"prep": "../../../scripts/prepare/bundle.ts"
},
"dependencies": {
"@storybook/builder-vite": "7.0.0-beta.31",
"@storybook/core-common": "7.0.0-beta.31",
"@storybook/core-server": "7.0.0-beta.31",
"@storybook/vue": "7.0.0-beta.31",
"@storybook/builder-vite": "7.0.0-beta.34",
"@storybook/core-common": "7.0.0-beta.34",
"@storybook/core-server": "7.0.0-beta.34",
"@storybook/vue": "7.0.0-beta.34",
"magic-string": "^0.26.1",
"vue-docgen-api": "^4.40.0"
},
@ -79,5 +79,5 @@
],
"platform": "node"
},
"gitHead": "6d1ea7647fce605b2029077cbd02f655cafe1807"
"gitHead": "b8c17b23e92257c5a09b592dc6b557ba7b94ccea"
}

View File

@ -1,6 +1,6 @@
{
"name": "@storybook/vue-webpack5",
"version": "7.0.0-beta.31",
"version": "7.0.0-beta.34",
"description": "Storybook for Vue: Develop Vue Component in isolation with Hot Reloading.",
"keywords": [
"storybook"
@ -48,10 +48,10 @@
"prep": "../../../scripts/prepare/bundle.ts"
},
"dependencies": {
"@storybook/builder-webpack5": "7.0.0-beta.31",
"@storybook/core-common": "7.0.0-beta.31",
"@storybook/preset-vue-webpack": "7.0.0-beta.31",
"@storybook/vue": "7.0.0-beta.31",
"@storybook/builder-webpack5": "7.0.0-beta.34",
"@storybook/core-common": "7.0.0-beta.34",
"@storybook/preset-vue-webpack": "7.0.0-beta.34",
"@storybook/vue": "7.0.0-beta.34",
"@types/node": "^16.0.0"
},
"devDependencies": {
@ -83,5 +83,5 @@
],
"platform": "node"
},
"gitHead": "6d1ea7647fce605b2029077cbd02f655cafe1807"
"gitHead": "b8c17b23e92257c5a09b592dc6b557ba7b94ccea"
}

View File

@ -1,6 +1,6 @@
{
"name": "@storybook/vue3-vite",
"version": "7.0.0-beta.31",
"version": "7.0.0-beta.34",
"description": "Storybook for Vue3 and Vite: Develop Vue3 components in isolation with Hot Reloading.",
"keywords": [
"storybook"
@ -48,9 +48,9 @@
"prep": "../../../scripts/prepare/bundle.ts"
},
"dependencies": {
"@storybook/builder-vite": "7.0.0-beta.31",
"@storybook/core-server": "7.0.0-beta.31",
"@storybook/vue3": "7.0.0-beta.31",
"@storybook/builder-vite": "7.0.0-beta.34",
"@storybook/core-server": "7.0.0-beta.34",
"@storybook/vue3": "7.0.0-beta.34",
"magic-string": "^0.26.1",
"vue-docgen-api": "^4.40.0"
},
@ -83,5 +83,5 @@
],
"platform": "node"
},
"gitHead": "6d1ea7647fce605b2029077cbd02f655cafe1807"
"gitHead": "b8c17b23e92257c5a09b592dc6b557ba7b94ccea"
}

View File

@ -1,6 +1,6 @@
{
"name": "@storybook/vue3-webpack5",
"version": "7.0.0-beta.31",
"version": "7.0.0-beta.34",
"description": "Storybook for Vue 3: Develop Vue 3 Components in isolation with Hot Reloading.",
"keywords": [
"storybook"
@ -48,10 +48,10 @@
"prep": "../../../scripts/prepare/bundle.ts"
},
"dependencies": {
"@storybook/builder-webpack5": "7.0.0-beta.31",
"@storybook/core-common": "7.0.0-beta.31",
"@storybook/preset-vue3-webpack": "7.0.0-beta.31",
"@storybook/vue3": "7.0.0-beta.31",
"@storybook/builder-webpack5": "7.0.0-beta.34",
"@storybook/core-common": "7.0.0-beta.34",
"@storybook/preset-vue3-webpack": "7.0.0-beta.34",
"@storybook/vue3": "7.0.0-beta.34",
"@types/node": "^16.0.0"
},
"devDependencies": {
@ -80,5 +80,5 @@
],
"platform": "node"
},
"gitHead": "6d1ea7647fce605b2029077cbd02f655cafe1807"
"gitHead": "b8c17b23e92257c5a09b592dc6b557ba7b94ccea"
}

View File

@ -1,6 +1,6 @@
{
"name": "@storybook/web-components-vite",
"version": "7.0.0-beta.31",
"version": "7.0.0-beta.34",
"description": "Storybook for web-components and Vite: Develop Web Components in isolation with Hot Reloading.",
"keywords": [
"storybook"
@ -48,10 +48,10 @@
"prep": "../../../scripts/prepare/bundle.ts"
},
"dependencies": {
"@storybook/builder-vite": "7.0.0-beta.31",
"@storybook/core-server": "7.0.0-beta.31",
"@storybook/node-logger": "7.0.0-beta.31",
"@storybook/web-components": "7.0.0-beta.31",
"@storybook/builder-vite": "7.0.0-beta.34",
"@storybook/core-server": "7.0.0-beta.34",
"@storybook/node-logger": "7.0.0-beta.34",
"@storybook/web-components": "7.0.0-beta.34",
"magic-string": "^0.26.1"
},
"devDependencies": {
@ -75,5 +75,5 @@
],
"platform": "node"
},
"gitHead": "6d1ea7647fce605b2029077cbd02f655cafe1807"
"gitHead": "b8c17b23e92257c5a09b592dc6b557ba7b94ccea"
}

View File

@ -1,6 +1,6 @@
{
"name": "@storybook/web-components-webpack5",
"version": "7.0.0-beta.31",
"version": "7.0.0-beta.34",
"description": "Storybook for web-components: View web components snippets in isolation with Hot Reloading.",
"keywords": [
"lit-html",
@ -51,10 +51,10 @@
},
"dependencies": {
"@babel/preset-env": "^7.20.2",
"@storybook/builder-webpack5": "7.0.0-beta.31",
"@storybook/core-common": "7.0.0-beta.31",
"@storybook/preset-web-components-webpack": "7.0.0-beta.31",
"@storybook/web-components": "7.0.0-beta.31",
"@storybook/builder-webpack5": "7.0.0-beta.34",
"@storybook/core-common": "7.0.0-beta.34",
"@storybook/preset-web-components-webpack": "7.0.0-beta.34",
"@storybook/web-components": "7.0.0-beta.34",
"@types/node": "^16.0.0"
},
"devDependencies": {
@ -79,5 +79,5 @@
],
"platform": "node"
},
"gitHead": "6d1ea7647fce605b2029077cbd02f655cafe1807"
"gitHead": "b8c17b23e92257c5a09b592dc6b557ba7b94ccea"
}

View File

@ -2,5 +2,5 @@
"npmClient": "yarn",
"useWorkspaces": true,
"registry": "https://registry.npmjs.org",
"version": "7.0.0-beta.31"
"version": "7.0.0-beta.34"
}

View File

@ -1,6 +1,6 @@
{
"name": "@storybook/addons",
"version": "7.0.0-beta.31",
"version": "7.0.0-beta.34",
"description": "Storybook addons store",
"keywords": [
"storybook"
@ -44,9 +44,9 @@
"prep": "../../../scripts/prepare/bundle.ts"
},
"dependencies": {
"@storybook/manager-api": "7.0.0-beta.31",
"@storybook/preview-api": "7.0.0-beta.31",
"@storybook/types": "7.0.0-beta.31"
"@storybook/manager-api": "7.0.0-beta.34",
"@storybook/preview-api": "7.0.0-beta.34",
"@storybook/types": "7.0.0-beta.34"
},
"peerDependencies": {
"react": "^16.8.0 || ^17.0.0 || ^18.0.0",
@ -60,5 +60,5 @@
"./src/index.ts"
]
},
"gitHead": "6d1ea7647fce605b2029077cbd02f655cafe1807"
"gitHead": "b8c17b23e92257c5a09b592dc6b557ba7b94ccea"
}

View File

@ -1,6 +1,6 @@
{
"name": "@storybook/builder-manager",
"version": "7.0.0-beta.31",
"version": "7.0.0-beta.34",
"description": "Storybook manager builder",
"keywords": [
"storybook"
@ -44,9 +44,9 @@
},
"dependencies": {
"@fal-works/esbuild-plugin-global-externals": "^2.1.2",
"@storybook/core-common": "7.0.0-beta.31",
"@storybook/manager": "7.0.0-beta.31",
"@storybook/node-logger": "7.0.0-beta.31",
"@storybook/core-common": "7.0.0-beta.34",
"@storybook/manager": "7.0.0-beta.34",
"@storybook/node-logger": "7.0.0-beta.34",
"@types/ejs": "^3.1.1",
"@types/find-cache-dir": "^3.2.1",
"@yarnpkg/esbuild-plugin-pnp": "^3.0.0-rc.10",
@ -56,7 +56,7 @@
"esbuild-plugin-alias": "^0.2.1",
"express": "^4.17.3",
"find-cache-dir": "^3.0.0",
"fs-extra": "^9.0.1",
"fs-extra": "^11.1.0",
"process": "^0.11.10",
"slash": "^3.0.0",
"util": "^0.12.4"
@ -73,5 +73,5 @@
],
"platform": "node"
},
"gitHead": "6d1ea7647fce605b2029077cbd02f655cafe1807"
"gitHead": "b8c17b23e92257c5a09b592dc6b557ba7b94ccea"
}

View File

@ -1,6 +1,6 @@
{
"name": "@storybook/builder-vite",
"version": "7.0.0-beta.31",
"version": "7.0.0-beta.34",
"description": "A plugin to run and build Storybooks with Vite",
"homepage": "https://github.com/storybookjs/storybook/tree/main/code/lib/builder-vite/#readme",
"bugs": {
@ -43,20 +43,20 @@
"prep": "../../../scripts/prepare/bundle.ts"
},
"dependencies": {
"@storybook/channel-postmessage": "7.0.0-beta.31",
"@storybook/channel-websocket": "7.0.0-beta.31",
"@storybook/client-logger": "7.0.0-beta.31",
"@storybook/core-common": "7.0.0-beta.31",
"@storybook/csf-plugin": "7.0.0-beta.31",
"@storybook/channel-postmessage": "7.0.0-beta.34",
"@storybook/channel-websocket": "7.0.0-beta.34",
"@storybook/client-logger": "7.0.0-beta.34",
"@storybook/core-common": "7.0.0-beta.34",
"@storybook/csf-plugin": "7.0.0-beta.34",
"@storybook/mdx2-csf": "next",
"@storybook/node-logger": "7.0.0-beta.31",
"@storybook/preview": "7.0.0-beta.31",
"@storybook/preview-api": "7.0.0-beta.31",
"@storybook/types": "7.0.0-beta.31",
"@storybook/node-logger": "7.0.0-beta.34",
"@storybook/preview": "7.0.0-beta.34",
"@storybook/preview-api": "7.0.0-beta.34",
"@storybook/types": "7.0.0-beta.34",
"browser-assert": "^1.2.1",
"es-module-lexer": "^0.9.3",
"express": "^4.17.3",
"fs-extra": "^9.0.1",
"fs-extra": "^11.1.0",
"glob": "^7.2.0",
"glob-promise": "^4.2.0",
"magic-string": "^0.26.1",
@ -97,5 +97,5 @@
],
"platform": "node"
},
"gitHead": "6d1ea7647fce605b2029077cbd02f655cafe1807"
"gitHead": "b8c17b23e92257c5a09b592dc6b557ba7b94ccea"
}

View File

@ -1,6 +1,6 @@
{
"name": "@storybook/builder-webpack5",
"version": "7.0.0-beta.31",
"version": "7.0.0-beta.34",
"description": "Storybook framework-agnostic API",
"keywords": [
"storybook"
@ -58,25 +58,25 @@
},
"dependencies": {
"@babel/core": "^7.12.10",
"@storybook/addons": "7.0.0-beta.31",
"@storybook/api": "7.0.0-beta.31",
"@storybook/channel-postmessage": "7.0.0-beta.31",
"@storybook/channel-websocket": "7.0.0-beta.31",
"@storybook/channels": "7.0.0-beta.31",
"@storybook/client-api": "7.0.0-beta.31",
"@storybook/client-logger": "7.0.0-beta.31",
"@storybook/components": "7.0.0-beta.31",
"@storybook/core-common": "7.0.0-beta.31",
"@storybook/core-events": "7.0.0-beta.31",
"@storybook/core-webpack": "7.0.0-beta.31",
"@storybook/addons": "7.0.0-beta.34",
"@storybook/api": "7.0.0-beta.34",
"@storybook/channel-postmessage": "7.0.0-beta.34",
"@storybook/channel-websocket": "7.0.0-beta.34",
"@storybook/channels": "7.0.0-beta.34",
"@storybook/client-api": "7.0.0-beta.34",
"@storybook/client-logger": "7.0.0-beta.34",
"@storybook/components": "7.0.0-beta.34",
"@storybook/core-common": "7.0.0-beta.34",
"@storybook/core-events": "7.0.0-beta.34",
"@storybook/core-webpack": "7.0.0-beta.34",
"@storybook/global": "^5.0.0",
"@storybook/manager-api": "7.0.0-beta.31",
"@storybook/node-logger": "7.0.0-beta.31",
"@storybook/preview": "7.0.0-beta.31",
"@storybook/preview-api": "7.0.0-beta.31",
"@storybook/router": "7.0.0-beta.31",
"@storybook/store": "7.0.0-beta.31",
"@storybook/theming": "7.0.0-beta.31",
"@storybook/manager-api": "7.0.0-beta.34",
"@storybook/node-logger": "7.0.0-beta.34",
"@storybook/preview": "7.0.0-beta.34",
"@storybook/preview-api": "7.0.0-beta.34",
"@storybook/router": "7.0.0-beta.34",
"@storybook/store": "7.0.0-beta.34",
"@storybook/theming": "7.0.0-beta.34",
"@types/node": "^16.0.0",
"@types/semver": "^7.3.4",
"babel-loader": "^9.0.0",
@ -86,7 +86,7 @@
"css-loader": "^6.7.1",
"express": "^4.17.3",
"fork-ts-checker-webpack-plugin": "^7.2.8",
"fs-extra": "^9.0.1",
"fs-extra": "^11.1.0",
"html-webpack-plugin": "^5.5.0",
"path-browserify": "^1.0.1",
"process": "^0.11.10",
@ -131,5 +131,5 @@
],
"platform": "node"
},
"gitHead": "6d1ea7647fce605b2029077cbd02f655cafe1807"
"gitHead": "b8c17b23e92257c5a09b592dc6b557ba7b94ccea"
}

View File

@ -1,6 +1,6 @@
{
"name": "@storybook/channel-postmessage",
"version": "7.0.0-beta.31",
"version": "7.0.0-beta.34",
"description": "",
"keywords": [
"storybook"
@ -43,9 +43,9 @@
"prep": "../../../scripts/prepare/bundle.ts"
},
"dependencies": {
"@storybook/channels": "7.0.0-beta.31",
"@storybook/client-logger": "7.0.0-beta.31",
"@storybook/core-events": "7.0.0-beta.31",
"@storybook/channels": "7.0.0-beta.34",
"@storybook/client-logger": "7.0.0-beta.34",
"@storybook/core-events": "7.0.0-beta.34",
"@storybook/global": "^5.0.0",
"qs": "^6.10.0",
"telejson": "^7.0.3"
@ -61,5 +61,5 @@
"./src/index.ts"
]
},
"gitHead": "6d1ea7647fce605b2029077cbd02f655cafe1807"
"gitHead": "b8c17b23e92257c5a09b592dc6b557ba7b94ccea"
}

View File

@ -1,6 +1,6 @@
{
"name": "@storybook/channel-websocket",
"version": "7.0.0-beta.31",
"version": "7.0.0-beta.34",
"description": "",
"keywords": [
"storybook"
@ -43,8 +43,8 @@
"prep": "../../../scripts/prepare/bundle.ts"
},
"dependencies": {
"@storybook/channels": "7.0.0-beta.31",
"@storybook/client-logger": "7.0.0-beta.31",
"@storybook/channels": "7.0.0-beta.34",
"@storybook/client-logger": "7.0.0-beta.34",
"@storybook/global": "^5.0.0",
"telejson": "^7.0.3"
},
@ -59,5 +59,5 @@
"./src/index.ts"
]
},
"gitHead": "6d1ea7647fce605b2029077cbd02f655cafe1807"
"gitHead": "b8c17b23e92257c5a09b592dc6b557ba7b94ccea"
}

View File

@ -1,6 +1,6 @@
{
"name": "@storybook/channels",
"version": "7.0.0-beta.31",
"version": "7.0.0-beta.34",
"description": "",
"keywords": [
"storybook"
@ -53,5 +53,5 @@
"./src/index.ts"
]
},
"gitHead": "6d1ea7647fce605b2029077cbd02f655cafe1807"
"gitHead": "b8c17b23e92257c5a09b592dc6b557ba7b94ccea"
}

View File

@ -1,6 +1,6 @@
{
"name": "sb",
"version": "7.0.0-beta.31",
"version": "7.0.0-beta.34",
"description": "Storybook CLI",
"keywords": [
"storybook"
@ -21,10 +21,10 @@
"license": "MIT",
"bin": "./index.js",
"dependencies": {
"@storybook/cli": "7.0.0-beta.31"
"@storybook/cli": "7.0.0-beta.34"
},
"publishConfig": {
"access": "public"
},
"gitHead": "6d1ea7647fce605b2029077cbd02f655cafe1807"
"gitHead": "b8c17b23e92257c5a09b592dc6b557ba7b94ccea"
}

View File

@ -1,6 +1,6 @@
{
"name": "storybook",
"version": "7.0.0-beta.31",
"version": "7.0.0-beta.34",
"description": "Storybook CLI",
"keywords": [
"storybook"
@ -24,10 +24,10 @@
"storybook": "./index.js"
},
"dependencies": {
"@storybook/cli": "7.0.0-beta.31"
"@storybook/cli": "7.0.0-beta.34"
},
"publishConfig": {
"access": "public"
},
"gitHead": "6d1ea7647fce605b2029077cbd02f655cafe1807"
"gitHead": "b8c17b23e92257c5a09b592dc6b557ba7b94ccea"
}

View File

@ -1,6 +1,6 @@
{
"name": "@storybook/cli",
"version": "7.0.0-beta.31",
"version": "7.0.0-beta.34",
"description": "Storybook's CLI - easiest method of adding storybook to your projects",
"keywords": [
"cli",
@ -56,13 +56,13 @@
"dependencies": {
"@babel/core": "^7.20.2",
"@babel/preset-env": "^7.20.2",
"@storybook/codemod": "7.0.0-beta.31",
"@storybook/core-common": "7.0.0-beta.31",
"@storybook/core-server": "7.0.0-beta.31",
"@storybook/csf-tools": "7.0.0-beta.31",
"@storybook/node-logger": "7.0.0-beta.31",
"@storybook/telemetry": "7.0.0-beta.31",
"@storybook/types": "7.0.0-beta.31",
"@storybook/codemod": "7.0.0-beta.34",
"@storybook/core-common": "7.0.0-beta.34",
"@storybook/core-server": "7.0.0-beta.34",
"@storybook/csf-tools": "7.0.0-beta.34",
"@storybook/node-logger": "7.0.0-beta.34",
"@storybook/telemetry": "7.0.0-beta.34",
"@storybook/types": "7.0.0-beta.34",
"@types/semver": "^7.3.4",
"boxen": "^5.1.2",
"chalk": "^4.1.0",
@ -73,7 +73,7 @@
"execa": "^5.0.0",
"express": "^4.17.3",
"find-up": "^5.0.0",
"fs-extra": "^9.0.1",
"fs-extra": "^11.1.0",
"get-port": "^5.1.1",
"giget": "^1.0.0",
"globby": "^11.0.2",
@ -91,7 +91,7 @@
"util-deprecate": "^1.0.2"
},
"devDependencies": {
"@storybook/client-api": "7.0.0-beta.31",
"@storybook/client-api": "7.0.0-beta.34",
"@types/cross-spawn": "^6.0.2",
"@types/prompts": "^2.0.9",
"@types/puppeteer-core": "^2.1.0",
@ -111,5 +111,5 @@
],
"platform": "node"
},
"gitHead": "6d1ea7647fce605b2029077cbd02f655cafe1807"
"gitHead": "b8c17b23e92257c5a09b592dc6b557ba7b94ccea"
}

View File

@ -10,7 +10,6 @@ export const build = async (cliOptions: any) => {
configDir: cliOptions.configDir || './.storybook',
outputDir: cliOptions.outputDir || './storybook-static',
ignorePreview: !!cliOptions.previewUrl && !cliOptions.forceBuildPreview,
docsMode: !!cliOptions.docs,
configType: 'PRODUCTION',
cache,
packageJson: readUpSync({ cwd: __dirname }).packageJson,

View File

@ -13,7 +13,6 @@ export const dev = async (cliOptions: any) => {
configDir: cliOptions.configDir || './.storybook',
configType: 'DEVELOPMENT',
ignorePreview: !!cliOptions.previewUrl && !cliOptions.forceBuildPreview,
docsMode: !!cliOptions.docs,
cache,
packageJson: readUpSync({ cwd: __dirname }).packageJson,
};

View File

@ -24,18 +24,19 @@ import { parseList, getEnvConfig } from './utils';
const pkg = readUpSync({ cwd: __dirname }).packageJson;
const consoleLogger = console;
program
.option(
'--disable-telemetry',
'disable sending telemetry data',
// default value is false, but if the user sets STORYBOOK_DISABLE_TELEMETRY, it can be true
process.env.STORYBOOK_DISABLE_TELEMETRY && process.env.STORYBOOK_DISABLE_TELEMETRY !== 'false'
)
.option('--debug', 'Get more logs in debug mode', false)
.option('--enable-crash-reports', 'enable sending crash reports to telemetry data');
const command = (name: string) =>
program
.command(name)
.option(
'--disable-telemetry',
'disable sending telemetry data',
// default value is false, but if the user sets STORYBOOK_DISABLE_TELEMETRY, it can be true
process.env.STORYBOOK_DISABLE_TELEMETRY && process.env.STORYBOOK_DISABLE_TELEMETRY !== 'false'
)
.option('--debug', 'Get more logs in debug mode', false)
.option('--enable-crash-reports', 'enable sending crash reports to telemetry data');
program
.command('init')
command('init')
.description('Initialize Storybook into your project.')
.option('-f --force', 'Force add Storybook')
.option('-s --skip-install', 'Skip installing deps')
@ -47,15 +48,14 @@ program
.option('-y --yes', 'Answer yes to all prompts')
.option('-b --builder <webpack5 | vite>', 'Builder library')
.option('-l --linkable', 'Prepare installation for link (contributor helper)')
.action((options: CommandOptions) =>
.action((options: CommandOptions) => {
initiate(options, pkg).catch((err) => {
logger.error(err);
process.exit(1);
})
);
});
});
program
.command('add <addon>')
command('add <addon>')
.description('Add an addon to your Storybook')
.option(
'--package-manager <npm|pnpm|yarn1|yarn2>',
@ -65,13 +65,11 @@ program
.option('-s --skip-postinstall', 'Skip package specific postinstall config modifications')
.action((addonName: string, options: any) => add(addonName, options));
program
.command('babelrc')
command('babelrc')
.description('generate the default storybook babel config into your current working directory')
.action(() => generateStorybookBabelConfigInCWD());
program
.command('upgrade')
command('upgrade')
.description('Upgrade your Storybook packages to the latest')
.option(
'--package-manager <npm|pnpm|yarn1|yarn2>',
@ -85,8 +83,7 @@ program
.option('-s --skip-check', 'Skip postinstall version and automigration checks')
.action((options: UpgradeOptions) => upgrade(options));
program
.command('info')
command('info')
.description('Prints debugging information about the local environment')
.action(() => {
consoleLogger.log(chalk.bold('\nEnvironment Info:'));
@ -101,8 +98,7 @@ program
.then(consoleLogger.log);
});
program
.command('migrate [migration]')
command('migrate [migration]')
.description('Run a Storybook codemod migration on your source files')
.option('-l --list', 'List available migrations')
.option('-g --glob <glob>', 'Glob for files upon which to apply the migration', '**/*.js')
@ -130,8 +126,7 @@ program
});
});
program
.command('extract [location] [output]')
command('extract [location] [output]')
.description('extract stories.json from a built version')
.action((location = 'storybook-static', output = path.join(location, 'stories.json')) =>
extract(location, output).catch((e) => {
@ -140,8 +135,7 @@ program
})
);
program
.command('sandbox [filterValue]')
command('sandbox [filterValue]')
.alias('repro') // for retrocompatibility purposes
.description('Create a sandbox from a set of possible templates')
.option('-o --output <outDir>', 'Define an output directory')
@ -154,8 +148,7 @@ program
})
);
program
.command('link <repo-url-or-directory>')
command('link <repo-url-or-directory>')
.description('Pull down a repro from a URL (or a local directory), link it, and run storybook')
.option('--local', 'Link a local directory already in your file system')
.option('--no-start', 'Start the storybook', true)
@ -166,8 +159,7 @@ program
})
);
program
.command('automigrate [fixId]')
command('automigrate [fixId]')
.description('Check storybook for known problems or migrations and apply fixes')
.option('-y --yes', 'Skip prompting the user')
.option('-n --dry-run', 'Only check for fixes, do not actually run them')
@ -181,8 +173,7 @@ program
});
});
program
.command('dev')
command('dev')
.option('-p, --port <number>', 'Port to run Storybook', (str) => parseInt(str, 10))
.option('-h, --host <string>', 'Host to run Storybook')
.option('-s, --static-dir <dir-names>', 'Directory where to load static files from', parseList)
@ -239,8 +230,7 @@ program
dev({ ...options, packageJson: pkg });
});
program
.command('build')
command('build')
.option('-s, --static-dir <dir-names>', 'Directory where to load static files from', parseList)
.option('-o, --output-dir <dir-name>', 'Directory where to store built files')
.option('-c, --config-dir <dir-name>', 'Directory where to load Storybook configurations from')

View File

@ -52,4 +52,6 @@ export type CommandOptions = {
linkable?: boolean;
commonJs?: boolean;
disableTelemetry?: boolean;
enableCrashReports?: boolean;
debug?: boolean;
};

View File

@ -186,7 +186,7 @@ const addAdditionalFiles = async ({ additionalFiles, cwd }: Options) => {
await Promise.all(
additionalFiles.map(async (file) => {
await outputFile(path.resolve(cwd, file.path), file.contents, { encoding: 'UTF-8' });
await outputFile(path.resolve(cwd, file.path), file.contents, { encoding: 'utf-8' });
})
);
};

View File

@ -1,90 +1,90 @@
// auto generated file, do not edit
export default {
'@storybook/addon-a11y': '7.0.0-beta.31',
'@storybook/addon-actions': '7.0.0-beta.31',
'@storybook/addon-backgrounds': '7.0.0-beta.31',
'@storybook/addon-controls': '7.0.0-beta.31',
'@storybook/addon-docs': '7.0.0-beta.31',
'@storybook/addon-essentials': '7.0.0-beta.31',
'@storybook/addon-highlight': '7.0.0-beta.31',
'@storybook/addon-interactions': '7.0.0-beta.31',
'@storybook/addon-jest': '7.0.0-beta.31',
'@storybook/addon-links': '7.0.0-beta.31',
'@storybook/addon-measure': '7.0.0-beta.31',
'@storybook/addon-outline': '7.0.0-beta.31',
'@storybook/addon-storyshots': '7.0.0-beta.31',
'@storybook/addon-storyshots-puppeteer': '7.0.0-beta.31',
'@storybook/addon-storysource': '7.0.0-beta.31',
'@storybook/addon-toolbars': '7.0.0-beta.31',
'@storybook/addon-viewport': '7.0.0-beta.31',
'@storybook/addons': '7.0.0-beta.31',
'@storybook/angular': '7.0.0-beta.31',
'@storybook/manager-api': '7.0.0-beta.31',
'@storybook/blocks': '7.0.0-beta.31',
'@storybook/builder-manager': '7.0.0-beta.31',
'@storybook/builder-vite': '7.0.0-beta.31',
'@storybook/builder-webpack5': '7.0.0-beta.31',
'@storybook/channel-postmessage': '7.0.0-beta.31',
'@storybook/channel-websocket': '7.0.0-beta.31',
'@storybook/channels': '7.0.0-beta.31',
'@storybook/cli': '7.0.0-beta.31',
'@storybook/client-api': '7.0.0-beta.31',
'@storybook/client-logger': '7.0.0-beta.31',
'@storybook/codemod': '7.0.0-beta.31',
'@storybook/components': '7.0.0-beta.31',
'@storybook/core-client': '7.0.0-beta.31',
'@storybook/core-common': '7.0.0-beta.31',
'@storybook/core-events': '7.0.0-beta.31',
'@storybook/core-server': '7.0.0-beta.31',
'@storybook/core-webpack': '7.0.0-beta.31',
'@storybook/csf-tools': '7.0.0-beta.31',
'@storybook/docs-tools': '7.0.0-beta.31',
'@storybook/ember': '7.0.0-beta.31',
'@storybook/html': '7.0.0-beta.31',
'@storybook/html-webpack5': '7.0.0-beta.31',
'@storybook/html-vite': '7.0.0-beta.31',
'@storybook/instrumenter': '7.0.0-beta.31',
'@storybook/nextjs': '7.0.0-beta.31',
'@storybook/node-logger': '7.0.0-beta.31',
'@storybook/postinstall': '7.0.0-beta.31',
'@storybook/preact': '7.0.0-beta.31',
'@storybook/preact-vite': '7.0.0-beta.31',
'@storybook/preact-webpack5': '7.0.0-beta.31',
'@storybook/preset-html-webpack': '7.0.0-beta.31',
'@storybook/preset-preact-webpack': '7.0.0-beta.31',
'@storybook/preset-react-webpack': '7.0.0-beta.31',
'@storybook/preset-server-webpack': '7.0.0-beta.31',
'@storybook/preset-svelte-webpack': '7.0.0-beta.31',
'@storybook/preset-vue-webpack': '7.0.0-beta.31',
'@storybook/preset-vue3-webpack': '7.0.0-beta.31',
'@storybook/preset-web-components-webpack': '7.0.0-beta.31',
'@storybook/preview': '7.0.0-beta.31',
'@storybook/preview-api': '7.0.0-beta.31',
'@storybook/preview-web': '7.0.0-beta.31',
'@storybook/react': '7.0.0-beta.31',
'@storybook/react-vite': '7.0.0-beta.31',
'@storybook/react-webpack5': '7.0.0-beta.31',
'@storybook/router': '7.0.0-beta.31',
'@storybook/server': '7.0.0-beta.31',
'@storybook/server-webpack5': '7.0.0-beta.31',
'@storybook/source-loader': '7.0.0-beta.31',
'@storybook/store': '7.0.0-beta.31',
'@storybook/svelte': '7.0.0-beta.31',
'@storybook/sveltekit': '7.0.0-beta.31',
'@storybook/svelte-vite': '7.0.0-beta.31',
'@storybook/svelte-webpack5': '7.0.0-beta.31',
'@storybook/telemetry': '7.0.0-beta.31',
'@storybook/theming': '7.0.0-beta.31',
'@storybook/manager': '7.0.0-beta.31',
'@storybook/vue': '7.0.0-beta.31',
'@storybook/vue-vite': '7.0.0-beta.31',
'@storybook/vue-webpack5': '7.0.0-beta.31',
'@storybook/vue3': '7.0.0-beta.31',
'@storybook/vue3-vite': '7.0.0-beta.31',
'@storybook/vue3-webpack5': '7.0.0-beta.31',
'@storybook/web-components': '7.0.0-beta.31',
'@storybook/web-components-webpack5': '7.0.0-beta.31',
'@storybook/web-components-vite': '7.0.0-beta.31',
sb: '7.0.0-beta.31',
storybook: '7.0.0-beta.31',
'@storybook/addon-a11y': '7.0.0-beta.34',
'@storybook/addon-actions': '7.0.0-beta.34',
'@storybook/addon-backgrounds': '7.0.0-beta.34',
'@storybook/addon-controls': '7.0.0-beta.34',
'@storybook/addon-docs': '7.0.0-beta.34',
'@storybook/addon-essentials': '7.0.0-beta.34',
'@storybook/addon-highlight': '7.0.0-beta.34',
'@storybook/addon-interactions': '7.0.0-beta.34',
'@storybook/addon-jest': '7.0.0-beta.34',
'@storybook/addon-links': '7.0.0-beta.34',
'@storybook/addon-measure': '7.0.0-beta.34',
'@storybook/addon-outline': '7.0.0-beta.34',
'@storybook/addon-storyshots': '7.0.0-beta.34',
'@storybook/addon-storyshots-puppeteer': '7.0.0-beta.34',
'@storybook/addon-storysource': '7.0.0-beta.34',
'@storybook/addon-toolbars': '7.0.0-beta.34',
'@storybook/addon-viewport': '7.0.0-beta.34',
'@storybook/addons': '7.0.0-beta.34',
'@storybook/angular': '7.0.0-beta.34',
'@storybook/manager-api': '7.0.0-beta.34',
'@storybook/blocks': '7.0.0-beta.34',
'@storybook/builder-manager': '7.0.0-beta.34',
'@storybook/builder-vite': '7.0.0-beta.34',
'@storybook/builder-webpack5': '7.0.0-beta.34',
'@storybook/channel-postmessage': '7.0.0-beta.34',
'@storybook/channel-websocket': '7.0.0-beta.34',
'@storybook/channels': '7.0.0-beta.34',
'@storybook/cli': '7.0.0-beta.34',
'@storybook/client-api': '7.0.0-beta.34',
'@storybook/client-logger': '7.0.0-beta.34',
'@storybook/codemod': '7.0.0-beta.34',
'@storybook/components': '7.0.0-beta.34',
'@storybook/core-client': '7.0.0-beta.34',
'@storybook/core-common': '7.0.0-beta.34',
'@storybook/core-events': '7.0.0-beta.34',
'@storybook/core-server': '7.0.0-beta.34',
'@storybook/core-webpack': '7.0.0-beta.34',
'@storybook/csf-tools': '7.0.0-beta.34',
'@storybook/docs-tools': '7.0.0-beta.34',
'@storybook/ember': '7.0.0-beta.34',
'@storybook/html': '7.0.0-beta.34',
'@storybook/html-webpack5': '7.0.0-beta.34',
'@storybook/html-vite': '7.0.0-beta.34',
'@storybook/instrumenter': '7.0.0-beta.34',
'@storybook/nextjs': '7.0.0-beta.34',
'@storybook/node-logger': '7.0.0-beta.34',
'@storybook/postinstall': '7.0.0-beta.34',
'@storybook/preact': '7.0.0-beta.34',
'@storybook/preact-vite': '7.0.0-beta.34',
'@storybook/preact-webpack5': '7.0.0-beta.34',
'@storybook/preset-html-webpack': '7.0.0-beta.34',
'@storybook/preset-preact-webpack': '7.0.0-beta.34',
'@storybook/preset-react-webpack': '7.0.0-beta.34',
'@storybook/preset-server-webpack': '7.0.0-beta.34',
'@storybook/preset-svelte-webpack': '7.0.0-beta.34',
'@storybook/preset-vue-webpack': '7.0.0-beta.34',
'@storybook/preset-vue3-webpack': '7.0.0-beta.34',
'@storybook/preset-web-components-webpack': '7.0.0-beta.34',
'@storybook/preview': '7.0.0-beta.34',
'@storybook/preview-api': '7.0.0-beta.34',
'@storybook/preview-web': '7.0.0-beta.34',
'@storybook/react': '7.0.0-beta.34',
'@storybook/react-vite': '7.0.0-beta.34',
'@storybook/react-webpack5': '7.0.0-beta.34',
'@storybook/router': '7.0.0-beta.34',
'@storybook/server': '7.0.0-beta.34',
'@storybook/server-webpack5': '7.0.0-beta.34',
'@storybook/source-loader': '7.0.0-beta.34',
'@storybook/store': '7.0.0-beta.34',
'@storybook/svelte': '7.0.0-beta.34',
'@storybook/sveltekit': '7.0.0-beta.34',
'@storybook/svelte-vite': '7.0.0-beta.34',
'@storybook/svelte-webpack5': '7.0.0-beta.34',
'@storybook/telemetry': '7.0.0-beta.34',
'@storybook/theming': '7.0.0-beta.34',
'@storybook/manager': '7.0.0-beta.34',
'@storybook/vue': '7.0.0-beta.34',
'@storybook/vue-vite': '7.0.0-beta.34',
'@storybook/vue-webpack5': '7.0.0-beta.34',
'@storybook/vue3': '7.0.0-beta.34',
'@storybook/vue3-vite': '7.0.0-beta.34',
'@storybook/vue3-webpack5': '7.0.0-beta.34',
'@storybook/web-components': '7.0.0-beta.34',
'@storybook/web-components-webpack5': '7.0.0-beta.34',
'@storybook/web-components-vite': '7.0.0-beta.34',
sb: '7.0.0-beta.34',
storybook: '7.0.0-beta.34',
};

View File

@ -1,6 +1,6 @@
{
"name": "@storybook/client-api",
"version": "7.0.0-beta.31",
"version": "7.0.0-beta.34",
"description": "Storybook Client API",
"keywords": [
"storybook"
@ -42,8 +42,8 @@
"prep": "../../../scripts/prepare/facade.ts"
},
"dependencies": {
"@storybook/client-logger": "7.0.0-beta.31",
"@storybook/preview-api": "7.0.0-beta.31"
"@storybook/client-logger": "7.0.0-beta.34",
"@storybook/preview-api": "7.0.0-beta.34"
},
"publishConfig": {
"access": "public"
@ -54,5 +54,5 @@
],
"shim": "@storybook/preview-api/dist/client-api"
},
"gitHead": "6d1ea7647fce605b2029077cbd02f655cafe1807"
"gitHead": "b8c17b23e92257c5a09b592dc6b557ba7b94ccea"
}

View File

@ -1,6 +1,6 @@
{
"name": "@storybook/client-logger",
"version": "7.0.0-beta.31",
"version": "7.0.0-beta.34",
"description": "",
"keywords": [
"storybook"
@ -56,5 +56,5 @@
"./src/index.ts"
]
},
"gitHead": "6d1ea7647fce605b2029077cbd02f655cafe1807"
"gitHead": "b8c17b23e92257c5a09b592dc6b557ba7b94ccea"
}

View File

@ -1,6 +1,6 @@
{
"name": "@storybook/codemod",
"version": "7.0.0-beta.31",
"version": "7.0.0-beta.34",
"description": "A collection of codemod scripts written with JSCodeshift",
"keywords": [
"storybook"
@ -50,9 +50,9 @@
"@babel/preset-env": "^7.20.2",
"@babel/types": "^7.20.7",
"@storybook/csf": "next",
"@storybook/csf-tools": "7.0.0-beta.31",
"@storybook/node-logger": "7.0.0-beta.31",
"@storybook/types": "7.0.0-beta.31",
"@storybook/csf-tools": "7.0.0-beta.34",
"@storybook/node-logger": "7.0.0-beta.34",
"@storybook/types": "7.0.0-beta.34",
"cross-spawn": "^7.0.3",
"globby": "^11.0.2",
"jscodeshift": "^0.13.1",
@ -86,5 +86,5 @@
"./src/transforms/upgrade-hierarchy-separators.js"
]
},
"gitHead": "6d1ea7647fce605b2029077cbd02f655cafe1807"
"gitHead": "b8c17b23e92257c5a09b592dc6b557ba7b94ccea"
}

View File

@ -1,6 +1,6 @@
{
"name": "@storybook/core-client",
"version": "7.0.0-beta.31",
"version": "7.0.0-beta.34",
"description": "Storybook framework-agnostic API",
"keywords": [
"storybook"
@ -35,8 +35,8 @@
"prep": "../../../scripts/prepare/facade.ts"
},
"dependencies": {
"@storybook/client-logger": "7.0.0-beta.31",
"@storybook/preview-api": "7.0.0-beta.31"
"@storybook/client-logger": "7.0.0-beta.34",
"@storybook/preview-api": "7.0.0-beta.34"
},
"publishConfig": {
"access": "public"
@ -47,5 +47,5 @@
],
"shim": "@storybook/preview-api/dist/core-client"
},
"gitHead": "6d1ea7647fce605b2029077cbd02f655cafe1807"
"gitHead": "b8c17b23e92257c5a09b592dc6b557ba7b94ccea"
}

View File

@ -1,6 +1,6 @@
{
"name": "@storybook/core-common",
"version": "7.0.0-beta.31",
"version": "7.0.0-beta.34",
"description": "Storybook framework-agnostic API",
"keywords": [
"storybook"
@ -44,8 +44,8 @@
},
"dependencies": {
"@babel/core": "^7.20.2",
"@storybook/node-logger": "7.0.0-beta.31",
"@storybook/types": "7.0.0-beta.31",
"@storybook/node-logger": "7.0.0-beta.34",
"@storybook/types": "7.0.0-beta.34",
"@types/babel__core": "^7.1.20",
"@types/express": "^4.7.0",
"@types/node": "^16.0.0",
@ -56,7 +56,7 @@
"express": "^4.17.3",
"file-system-cache": "^2.0.0",
"find-up": "^5.0.0",
"fs-extra": "^9.0.1",
"fs-extra": "^11.1.0",
"glob": "^7.1.6",
"handlebars": "^4.7.7",
"lazy-universal-dotenv": "^3.0.1",
@ -83,5 +83,5 @@
],
"platform": "node"
},
"gitHead": "6d1ea7647fce605b2029077cbd02f655cafe1807"
"gitHead": "b8c17b23e92257c5a09b592dc6b557ba7b94ccea"
}

View File

@ -1,6 +1,6 @@
{
"name": "@storybook/core-events",
"version": "7.0.0-beta.31",
"version": "7.0.0-beta.34",
"description": "Event names used in storybook core",
"keywords": [
"storybook"
@ -53,5 +53,5 @@
"./src/index.ts"
]
},
"gitHead": "6d1ea7647fce605b2029077cbd02f655cafe1807"
"gitHead": "b8c17b23e92257c5a09b592dc6b557ba7b94ccea"
}

View File

@ -1,6 +1,6 @@
{
"name": "@storybook/core-server",
"version": "7.0.0-beta.31",
"version": "7.0.0-beta.34",
"description": "Storybook framework-agnostic API",
"keywords": [
"storybook"
@ -58,17 +58,17 @@
"dependencies": {
"@aw-web-design/x-default-browser": "1.4.88",
"@discoveryjs/json-ext": "^0.5.3",
"@storybook/builder-manager": "7.0.0-beta.31",
"@storybook/core-common": "7.0.0-beta.31",
"@storybook/core-events": "7.0.0-beta.31",
"@storybook/builder-manager": "7.0.0-beta.34",
"@storybook/core-common": "7.0.0-beta.34",
"@storybook/core-events": "7.0.0-beta.34",
"@storybook/csf": "next",
"@storybook/csf-tools": "7.0.0-beta.31",
"@storybook/csf-tools": "7.0.0-beta.34",
"@storybook/docs-mdx": "next",
"@storybook/global": "^5.0.0",
"@storybook/node-logger": "7.0.0-beta.31",
"@storybook/preview-api": "7.0.0-beta.31",
"@storybook/telemetry": "7.0.0-beta.31",
"@storybook/types": "7.0.0-beta.31",
"@storybook/node-logger": "7.0.0-beta.34",
"@storybook/preview-api": "7.0.0-beta.34",
"@storybook/telemetry": "7.0.0-beta.34",
"@storybook/types": "7.0.0-beta.34",
"@types/detect-port": "^1.3.0",
"@types/node": "^16.0.0",
"@types/node-fetch": "^2.5.7",
@ -81,7 +81,7 @@
"compression": "^1.7.4",
"detect-port": "^1.3.0",
"express": "^4.17.3",
"fs-extra": "^9.0.1",
"fs-extra": "^11.1.0",
"globby": "^11.0.2",
"ip": "^2.0.0",
"lodash": "^4.17.21",
@ -119,5 +119,5 @@
],
"platform": "node"
},
"gitHead": "6d1ea7647fce605b2029077cbd02f655cafe1807"
"gitHead": "b8c17b23e92257c5a09b592dc6b557ba7b94ccea"
}

View File

@ -15,5 +15,6 @@ declare var FEATURES:
interactionsDebugger?: boolean;
breakingChangesV7?: boolean;
argTypeTargetsV7?: boolean;
legacyMdx1?: boolean;
}
| undefined;

View File

@ -113,7 +113,7 @@ export class StoryIndexGenerator {
async initialize() {
// Find all matching paths for each specifier
await Promise.all(
const specifiersAndCaches = await Promise.all(
this.specifiers.map(async (specifier) => {
const pathToSubIndex = {} as SpecifierStoriesCache;
@ -132,10 +132,16 @@ export class StoryIndexGenerator {
pathToSubIndex[absolutePath] = false;
});
this.specifierToCache.set(specifier, pathToSubIndex);
return [specifier, pathToSubIndex] as const;
})
);
// We do this in a second step to avoid timing issues with the Promise.all above -- to ensure
// the keys in the `specifierToCache` object are consistent with the order of specifiers.
specifiersAndCaches.forEach(([specifier, cache]) =>
this.specifierToCache.set(specifier, cache)
);
// Extract stories for each file
await this.ensureExtracted();
}

View File

@ -1,6 +1,6 @@
{
"name": "@storybook/core-webpack",
"version": "7.0.0-beta.31",
"version": "7.0.0-beta.34",
"description": "Storybook framework-agnostic API",
"keywords": [
"storybook"
@ -43,9 +43,9 @@
"prep": "../../../scripts/prepare/bundle.ts"
},
"dependencies": {
"@storybook/core-common": "7.0.0-beta.31",
"@storybook/node-logger": "7.0.0-beta.31",
"@storybook/types": "7.0.0-beta.31",
"@storybook/core-common": "7.0.0-beta.34",
"@storybook/node-logger": "7.0.0-beta.34",
"@storybook/types": "7.0.0-beta.34",
"@types/node": "^16.0.0",
"ts-dedent": "^2.0.0"
},
@ -62,5 +62,5 @@
],
"platform": "node"
},
"gitHead": "6d1ea7647fce605b2029077cbd02f655cafe1807"
"gitHead": "b8c17b23e92257c5a09b592dc6b557ba7b94ccea"
}

View File

@ -1,6 +1,6 @@
{
"name": "@storybook/csf-plugin",
"version": "7.0.0-beta.31",
"version": "7.0.0-beta.34",
"description": "Enrich CSF files via static analysis",
"keywords": [
"storybook"
@ -43,7 +43,7 @@
"prep": "../../../scripts/prepare/bundle.ts"
},
"dependencies": {
"@storybook/csf-tools": "7.0.0-beta.31",
"@storybook/csf-tools": "7.0.0-beta.34",
"unplugin": "^0.10.2"
},
"devDependencies": {
@ -64,5 +64,5 @@
],
"platform": "node"
},
"gitHead": "6d1ea7647fce605b2029077cbd02f655cafe1807"
"gitHead": "b8c17b23e92257c5a09b592dc6b557ba7b94ccea"
}

View File

@ -1,6 +1,6 @@
{
"name": "@storybook/csf-tools",
"version": "7.0.0-beta.31",
"version": "7.0.0-beta.34",
"description": "",
"keywords": [
"storybook"
@ -45,8 +45,8 @@
"dependencies": {
"@babel/types": "^7.20.2",
"@storybook/csf": "next",
"@storybook/types": "7.0.0-beta.31",
"fs-extra": "^9.0.1",
"@storybook/types": "7.0.0-beta.34",
"fs-extra": "^11.1.0",
"recast": "^0.23.1",
"ts-dedent": "^2.0.0"
},
@ -54,7 +54,7 @@
"@babel/generator": "^7.20.4",
"@babel/parser": "^7.20.3",
"@babel/traverse": "^7.20.1",
"@types/fs-extra": "^9.0.6",
"@types/fs-extra": "^11.0.1",
"@types/js-yaml": "^3.12.6",
"js-yaml": "^3.14.1",
"typescript": "~4.9.3"
@ -67,5 +67,5 @@
"./src/index.ts"
]
},
"gitHead": "6d1ea7647fce605b2029077cbd02f655cafe1807"
"gitHead": "b8c17b23e92257c5a09b592dc6b557ba7b94ccea"
}

View File

@ -769,11 +769,13 @@ describe('ConfigFile', () => {
const config: StorybookConfig = {
framework: { name: 'foo', options: { bar: require('baz') } },
"otherField": { "name": 'foo', options: { bar: require('baz') } },
}
export default config;
`;
const config = loadConfig(source).parse();
expect(config.getNameFromPath(['framework'])).toEqual('foo');
expect(config.getNameFromPath(['otherField'])).toEqual('foo');
});
it(`returns undefined when accessing a field that does not exist`, () => {
@ -812,12 +814,17 @@ describe('ConfigFile', () => {
addons: [
'foo',
{ name: 'bar', options: {} },
]
],
"otherField": [
"foo",
{ "name": 'bar', options: {} },
],
}
export default config;
`;
const config = loadConfig(source).parse();
expect(config.getNamesFromPath(['addons'])).toEqual(['foo', 'bar']);
expect(config.getNamesFromPath(['otherField'])).toEqual(['foo', 'bar']);
});
});

View File

@ -315,6 +315,7 @@ export class ConfigFile {
value = node.value;
} else if (t.isObjectExpression(node)) {
node.properties.forEach((prop) => {
// { framework: { name: 'value' } }
if (
t.isObjectProperty(prop) &&
t.isIdentifier(prop.key) &&
@ -324,6 +325,16 @@ export class ConfigFile {
value = prop.value.value;
}
}
// { "framework": { "name": "value" } }
if (
t.isObjectProperty(prop) &&
t.isStringLiteral(prop.key) &&
prop.key.value === 'name' &&
t.isStringLiteral(prop.value)
) {
value = prop.value.value;
}
});
}

View File

@ -1,6 +1,6 @@
{
"name": "@storybook/docs-tools",
"version": "7.0.0-beta.31",
"version": "7.0.0-beta.34",
"description": "Shared utility functions for frameworks to implement docs",
"keywords": [
"storybook"
@ -44,9 +44,9 @@
},
"dependencies": {
"@babel/core": "^7.12.10",
"@storybook/core-common": "7.0.0-beta.31",
"@storybook/preview-api": "7.0.0-beta.31",
"@storybook/types": "7.0.0-beta.31",
"@storybook/core-common": "7.0.0-beta.34",
"@storybook/preview-api": "7.0.0-beta.34",
"@storybook/types": "7.0.0-beta.34",
"@types/doctrine": "^0.0.3",
"doctrine": "^3.0.0",
"lodash": "^4.17.21"
@ -64,5 +64,5 @@
"./src/index.ts"
]
},
"gitHead": "6d1ea7647fce605b2029077cbd02f655cafe1807"
"gitHead": "b8c17b23e92257c5a09b592dc6b557ba7b94ccea"
}

View File

@ -1,6 +1,6 @@
{
"name": "@storybook/instrumenter",
"version": "7.0.0-beta.31",
"version": "7.0.0-beta.34",
"description": "",
"keywords": [
"storybook"
@ -43,11 +43,11 @@
"prep": "../../../scripts/prepare/bundle.ts"
},
"dependencies": {
"@storybook/channels": "7.0.0-beta.31",
"@storybook/client-logger": "7.0.0-beta.31",
"@storybook/core-events": "7.0.0-beta.31",
"@storybook/channels": "7.0.0-beta.34",
"@storybook/client-logger": "7.0.0-beta.34",
"@storybook/core-events": "7.0.0-beta.34",
"@storybook/global": "^5.0.0",
"@storybook/preview-api": "7.0.0-beta.31",
"@storybook/preview-api": "7.0.0-beta.34",
"core-js": "^3.8.2"
},
"devDependencies": {
@ -61,5 +61,5 @@
"./src/index.ts"
]
},
"gitHead": "6d1ea7647fce605b2029077cbd02f655cafe1807"
"gitHead": "b8c17b23e92257c5a09b592dc6b557ba7b94ccea"
}

View File

@ -1,6 +1,6 @@
{
"name": "@storybook/api",
"version": "7.0.0-beta.31",
"version": "7.0.0-beta.34",
"description": "Storybook Manager API (facade)",
"keywords": [
"storybook"
@ -42,8 +42,8 @@
"prep": "../../../scripts/prepare/facade.ts"
},
"dependencies": {
"@storybook/client-logger": "7.0.0-beta.31",
"@storybook/manager-api": "7.0.0-beta.31"
"@storybook/client-logger": "7.0.0-beta.34",
"@storybook/manager-api": "7.0.0-beta.34"
},
"publishConfig": {
"access": "public"
@ -54,5 +54,5 @@
],
"shim": "@storybook/manager-api"
},
"gitHead": "6d1ea7647fce605b2029077cbd02f655cafe1807"
"gitHead": "b8c17b23e92257c5a09b592dc6b557ba7b94ccea"
}

View File

@ -1,6 +1,6 @@
{
"name": "@storybook/manager-api",
"version": "7.0.0-beta.31",
"version": "7.0.0-beta.34",
"description": "Core Storybook API & Context",
"keywords": [
"storybook"
@ -42,14 +42,14 @@
"prep": "../../../scripts/prepare/bundle.ts"
},
"dependencies": {
"@storybook/channels": "7.0.0-beta.31",
"@storybook/client-logger": "7.0.0-beta.31",
"@storybook/core-events": "7.0.0-beta.31",
"@storybook/channels": "7.0.0-beta.34",
"@storybook/client-logger": "7.0.0-beta.34",
"@storybook/core-events": "7.0.0-beta.34",
"@storybook/csf": "next",
"@storybook/global": "^5.0.0",
"@storybook/router": "7.0.0-beta.31",
"@storybook/theming": "7.0.0-beta.31",
"@storybook/types": "7.0.0-beta.31",
"@storybook/router": "7.0.0-beta.34",
"@storybook/theming": "7.0.0-beta.34",
"@storybook/types": "7.0.0-beta.34",
"dequal": "^2.0.2",
"lodash": "^4.17.21",
"memoizerific": "^1.11.3",
@ -78,5 +78,5 @@
"./src/index.tsx"
]
},
"gitHead": "6d1ea7647fce605b2029077cbd02f655cafe1807"
"gitHead": "b8c17b23e92257c5a09b592dc6b557ba7b94ccea"
}

View File

@ -1 +1 @@
export const version = '7.0.0-beta.31';
export const version = '7.0.0-beta.34';

View File

@ -1,6 +1,6 @@
{
"name": "@storybook/node-logger",
"version": "7.0.0-beta.31",
"version": "7.0.0-beta.34",
"description": "",
"keywords": [
"storybook"
@ -60,5 +60,5 @@
"./src/index.ts"
]
},
"gitHead": "6d1ea7647fce605b2029077cbd02f655cafe1807"
"gitHead": "b8c17b23e92257c5a09b592dc6b557ba7b94ccea"
}

View File

@ -1,6 +1,6 @@
{
"name": "@storybook/postinstall",
"version": "7.0.0-beta.31",
"version": "7.0.0-beta.34",
"description": "Storybook addons postinstall utilities",
"keywords": [
"api",
@ -57,5 +57,5 @@
"./src/index.ts"
]
},
"gitHead": "6d1ea7647fce605b2029077cbd02f655cafe1807"
"gitHead": "b8c17b23e92257c5a09b592dc6b557ba7b94ccea"
}

View File

@ -1,6 +1,6 @@
{
"name": "@storybook/preview-api",
"version": "7.0.0-beta.31",
"version": "7.0.0-beta.34",
"description": "",
"keywords": [
"storybook"
@ -67,13 +67,13 @@
"prep": "../../../scripts/prepare/bundle.ts"
},
"dependencies": {
"@storybook/channel-postmessage": "7.0.0-beta.31",
"@storybook/channels": "7.0.0-beta.31",
"@storybook/client-logger": "7.0.0-beta.31",
"@storybook/core-events": "7.0.0-beta.31",
"@storybook/channel-postmessage": "7.0.0-beta.34",
"@storybook/channels": "7.0.0-beta.34",
"@storybook/client-logger": "7.0.0-beta.34",
"@storybook/core-events": "7.0.0-beta.34",
"@storybook/csf": "next",
"@storybook/global": "^5.0.0",
"@storybook/types": "7.0.0-beta.31",
"@storybook/types": "7.0.0-beta.34",
"@types/qs": "^6.9.5",
"dequal": "^2.0.2",
"lodash": "^4.17.21",
@ -86,7 +86,7 @@
},
"devDependencies": {
"@jest/globals": "^26.6.2",
"@storybook/core-common": "7.0.0-beta.31",
"@storybook/core-common": "7.0.0-beta.34",
"ansi-to-html": "^0.6.11",
"react": "^16.14.0"
},
@ -103,5 +103,5 @@
"./src/store.ts"
]
},
"gitHead": "6d1ea7647fce605b2029077cbd02f655cafe1807"
"gitHead": "b8c17b23e92257c5a09b592dc6b557ba7b94ccea"
}

View File

@ -48,7 +48,7 @@ export class DocsContext<TRenderer extends Renderer> implements DocsContextProps
});
}
// This docs entry references this CSF file and can syncronously load the stories, as well
// This docs entry references this CSF file and can synchronously load the stories, as well
// as reference them by module export. If the CSF is part of the "component" stories, they
// can also be referenced by name and are in the componentStories list.
referenceCSFFile(csfFile: CSFFile<TRenderer>) {

View File

@ -8,8 +8,9 @@ import type {
NormalizedComponentAnnotations,
} from '@storybook/types';
import { isExportStory } from '@storybook/csf';
import { logger } from '@storybook/client-logger';
import { deprecate, logger } from '@storybook/client-logger';
import dedent from 'ts-dedent';
import { normalizeStory } from './normalizeStory';
import { normalizeComponentAnnotations } from './normalizeComponentAnnotations';
@ -38,6 +39,15 @@ const checkDisallowedParameters = (parameters?: Parameters) => {
checkStorySort(parameters);
};
const checkSubcomponents = (meta: ModuleExports) => {
if (meta.subcomponents) {
deprecate(dedent`The \`subcomponents\` annotation is deprecated.
Please refer to the migration guide: https://github.com/storybookjs/storybook/blob/next/MIGRATION.md#argstable-block'
`);
}
};
// Given the raw exports of a CSF file, check and normalize it.
export function processCSFFile<TRenderer extends Renderer>(
moduleExports: ModuleExports,
@ -53,6 +63,7 @@ export function processCSFFile<TRenderer extends Renderer>(
importPath
);
checkDisallowedParameters(meta.parameters);
checkSubcomponents(meta);
const csfFile: CSFFile<TRenderer> = { meta, stories: {}, moduleExports };

View File

@ -13,6 +13,7 @@ declare var FEATURES:
interactionsDebugger?: boolean;
breakingChangesV7?: boolean;
argTypeTargetsV7?: boolean;
legacyMdx1?: boolean;
}
| undefined;

View File

@ -1,6 +1,6 @@
{
"name": "@storybook/preview-web",
"version": "7.0.0-beta.31",
"version": "7.0.0-beta.34",
"description": "",
"keywords": [
"storybook"
@ -42,8 +42,8 @@
"prep": "../../../scripts/prepare/facade.ts"
},
"dependencies": {
"@storybook/client-logger": "7.0.0-beta.31",
"@storybook/preview-api": "7.0.0-beta.31"
"@storybook/client-logger": "7.0.0-beta.34",
"@storybook/preview-api": "7.0.0-beta.34"
},
"publishConfig": {
"access": "public"
@ -54,5 +54,5 @@
],
"shim": "@storybook/preview-api/dist/preview-web"
},
"gitHead": "6d1ea7647fce605b2029077cbd02f655cafe1807"
"gitHead": "b8c17b23e92257c5a09b592dc6b557ba7b94ccea"
}

View File

@ -1,6 +1,6 @@
{
"name": "@storybook/preview",
"version": "7.0.0-beta.31",
"version": "7.0.0-beta.34",
"description": "",
"keywords": [
"storybook"
@ -57,12 +57,12 @@
"prep": "../../../scripts/prepare/bundle.ts"
},
"devDependencies": {
"@storybook/channel-postmessage": "7.0.0-beta.31",
"@storybook/channel-websocket": "7.0.0-beta.31",
"@storybook/channels": "7.0.0-beta.31",
"@storybook/client-logger": "7.0.0-beta.31",
"@storybook/core-events": "7.0.0-beta.31",
"@storybook/preview-api": "7.0.0-beta.31",
"@storybook/channel-postmessage": "7.0.0-beta.34",
"@storybook/channel-websocket": "7.0.0-beta.34",
"@storybook/channels": "7.0.0-beta.34",
"@storybook/client-logger": "7.0.0-beta.34",
"@storybook/core-events": "7.0.0-beta.34",
"@storybook/preview-api": "7.0.0-beta.34",
"typescript": "~4.9.3"
},
"publishConfig": {
@ -74,5 +74,5 @@
"./src/globals.ts"
]
},
"gitHead": "6d1ea7647fce605b2029077cbd02f655cafe1807"
"gitHead": "b8c17b23e92257c5a09b592dc6b557ba7b94ccea"
}

Some files were not shown because too many files have changed in this diff Show More