Merge branch 'storybookjs:next' into fix/support-profiler-use-in-component

This commit is contained in:
Yadong Zhang 2022-09-01 10:30:01 +08:00 committed by GitHub
commit 2e1340bdd6
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
212 changed files with 6929 additions and 3416 deletions

View File

@ -42,6 +42,19 @@ executors:
environment:
NODE_OPTIONS: --max_old_space_size=3076
resource_class: <<parameters.class>>
sb_playwright:
parameters:
class:
description: The Resource class
type: enum
enum: ['small', 'medium', 'medium+', 'large', 'xlarge']
default: 'medium'
working_directory: /tmp/storybook
docker:
- image: mcr.microsoft.com/playwright:v1.25.1-focal
environment:
NODE_OPTIONS: --max_old_space_size=3076
resource_class: <<parameters.class>>
orbs:
git-shallow-clone: guitarrapc/git-shallow-clone@2.0.3
@ -257,7 +270,7 @@ jobs:
# executor:
# class: large
# name: sb_cypress_8_node_14
# parallelism: 2
# parallelism: 8
# steps:
# - git-shallow-clone/checkout_advanced:
# clone_options: '--depth 1 --verbose'
@ -276,19 +289,14 @@ jobs:
# no_output_timeout: 5m
cra-bench:
executor:
class: medium
name: sb_cypress_8_node_14
class: medium+
name: sb_playwright
working_directory: /tmp/storybook
steps:
- git-shallow-clone/checkout_advanced:
clone_options: '--depth 1 --verbose'
- attach_workspace:
at: .
- run:
name: install playright
command: |
cd code
npx playwright install
- run:
name: Running local registry
command: |
@ -309,7 +317,14 @@ jobs:
name: Run @storybook/bench on repro
command: |
cd ./cra-bench
npx @storybook/bench@1.0.0--canary.11.52d1ee7.1 'echo noop' --label cra
npx -p @storybook/bench@1.0.0--canary.12.7cccdee.0 sb-bench 'echo noop' --label cra
- run:
name: prep artifacts
when: always
command: tar cvzf /tmp/sb-bench.tar.gz ./cra-bench
- store_artifacts:
path: /tmp/sb-bench.tar.gz
destination: sb-bench.tar.gz
e2e-tests-pnp:
executor:
class: medium
@ -462,7 +477,7 @@ jobs:
executor:
class: medium+
name: sb_node_14_browsers
parallelism: 2
parallelism: 8
steps:
- git-shallow-clone/checkout_advanced:
clone_options: '--depth 1 --verbose'
@ -482,7 +497,7 @@ jobs:
executor:
class: medium+
name: sb_node_14_browsers
parallelism: 2
parallelism: 8
steps:
- git-shallow-clone/checkout_advanced:
clone_options: '--depth 1 --verbose'
@ -498,7 +513,7 @@ jobs:
executor:
class: medium+
name: sb_node_14_browsers
parallelism: 2
parallelism: 8
steps:
- git-shallow-clone/checkout_advanced:
clone_options: '--depth 1 --verbose'
@ -518,7 +533,7 @@ jobs:
executor:
class: medium+
name: sb_node_14_browsers
parallelism: 2
parallelism: 8
steps:
- git-shallow-clone/checkout_advanced:
clone_options: '--depth 1 --verbose'
@ -534,7 +549,7 @@ jobs:
executor:
class: medium+
name: sb_node_14_browsers
parallelism: 2
parallelism: 8
steps:
- git-shallow-clone/checkout_advanced:
clone_options: '--depth 1 --verbose'
@ -547,9 +562,10 @@ jobs:
- store_test_results:
path: code/test-results
e2e-sandboxes:
docker:
- image: mcr.microsoft.com/playwright:v1.24.0-focal
parallelism: 2
executor:
class: medium+
name: sb_playwright
parallelism: 8
steps:
- git-shallow-clone/checkout_advanced:
clone_options: '--depth 1 --verbose'

View File

@ -7,7 +7,7 @@ on:
# To remove when the branch will be merged
push:
branches:
- shilman/add-angular-repro-template
- vite-frameworks-xyz
jobs:
generate:
@ -15,6 +15,9 @@ jobs:
env:
YARN_ENABLE_IMMUTABLE_INSTALLS: false
steps:
- uses: actions/setup-node@v2
with:
node-version: 14
- uses: actions/checkout@v2
- name: Setup git user
run: |

1
.gitignore vendored
View File

@ -9,7 +9,6 @@ dist
junit.xml
/repros
/sandbox
/built-sandboxes
.verdaccio-cache
# Yarn stuff

1
.ignore Normal file
View File

@ -0,0 +1 @@
!/sandbox

View File

@ -1,3 +1,51 @@
## 7.0.0-alpha.27 (August 31, 2022)
#### Features
- Vite: Set `resolve.preserveSymlinks` based on env vars [#19039](https://github.com/storybooks/storybook/pull/19039)
#### Bug Fixes
- Core: Restore `/preview` etc package exports; return unresolved path from presets. [#19045](https://github.com/storybooks/storybook/pull/19045)
#### Maintenance
- Core: Add previewHead and previewBody to StorybookConfig interface [#19047](https://github.com/storybooks/storybook/pull/19047)
- Build: Fix the sb-bench CI step [#19029](https://github.com/storybooks/storybook/pull/19029)
- Remove sandbox from `.ignore` [#19040](https://github.com/storybooks/storybook/pull/19040)
- Build: Use new test runner with builtin junit [#19028](https://github.com/storybooks/storybook/pull/19028)
#### Dependency Upgrades
- Vite: Clean up framework dependencies / unused files [#19035](https://github.com/storybooks/storybook/pull/19035)
## 7.0.0-alpha.26 (August 26, 2022)
#### Features
- CLI: Add react, vue3, and svelte vite to new-frameworks automigration [#19016](https://github.com/storybooks/storybook/pull/19016)
- Svelte: Add svelte-vite framework [#18978](https://github.com/storybooks/storybook/pull/18978)
#### Bug Fixes
- Core: Fix default story glob [#19018](https://github.com/storybooks/storybook/pull/19018)
#### Dependency Upgrades
- React-vite: update/cleanup dependencies [#19025](https://github.com/storybooks/storybook/pull/19025)
- Remove babel-loader from core-common [#19022](https://github.com/storybooks/storybook/pull/19022)
## 7.0.0-alpha.25 (August 25, 2022)
#### Features
- Vite: Add builder-vite, react-vite, and vue3-vite [#19007](https://github.com/storybooks/storybook/pull/19007)
#### Maintenance
- CI: use runner with playwright installed for cra_bench [#18951](https://github.com/storybooks/storybook/pull/18951)
- Replace rollup-plugin-node-polyfills to analogs [#18975](https://github.com/storybooks/storybook/pull/18975)
## 7.0.0-alpha.24 (August 24, 2022)
#### Breaking changes

View File

@ -3,6 +3,7 @@
- [From version 6.5.x to 7.0.0](#from-version-65x-to-700)
- [Alpha release notes](#alpha-release-notes)
- [Breaking changes](#breaking-changes)
- [`Story` type change to `StoryFn`, and the new `Story` type now refers to `StoryObj`](#story-type-change-to-storyfn-and-the-new-story-type-now-refers-to-storyobj)
- [Change of root html IDs](#change-of-root-html-ids)
- [No more default export from `@storybook/addons`](#no-more-default-export-from-storybookaddons)
- [Modern browser support](#modern-browser-support)
@ -236,6 +237,46 @@ In the meantime, these migration notes are the best available documentation on t
### Breaking changes
#### `Story` type change to `StoryFn`, and the new `Story` type now refers to `StoryObj`
In 6.x you were able to do this:
```js
import type { Story } from '@storybook/react';
export const MyStory: Story = () => <div />;
```
But this will produce an error in 7.0 because `Story` is now a type that refers to the `StoryObj` type.
You must now use the new `StoryFn` type:
```js
import type { StoryFn } from '@storybook/react';
export const MyStory: StoryFn = () => <div />;
```
This change was done to improve the experience of writing CSF3 stories, which is the recommended way of writing stories in 7.0:
```js
import type { Story } from '@storybook/react';
import { Button, ButtonProps } from './Button';
export default {
component: Button,
};
export const Primary: Story<ButtonProps> = {
variant: 'primary',
};
```
If you want to be explicit, you can also import `StoryObj` instead of `Story`, they are the same type.
For Storybook for react users: We also changed `ComponentStory` to refer to `ComponentStoryObj` instead of `ComponentStoryFn`, so if you were using `ComponentStory` you should now import/use `ComponentStoryFn` instead.
You can read more about the CSF3 format here: https://storybook.js.org/blog/component-story-format-3-0/
#### Change of root html IDs
The root ID unto which storybook renders stories is renamed from `root` to `#storybook-root` to avoid conflicts with user's code.
@ -479,7 +520,7 @@ It is no longer possible to set `parameters.docs.getContainer()` and `getPage()`
#### Icons API changed
For addon authors who use the `Icons` component, its API has been udpated in Storybook 7.
For addon authors who use the `Icons` component, its API has been updated in Storybook 7.
```diff
export interface IconsProps extends ComponentProps<typeof Svg> {

View File

@ -73,7 +73,7 @@ It allows you to browse a component library, view the different states of each c
## Getting Started
Visit [Storybook's website](https://storybook.js.org) to learn more about Storybook, and to get started.
Visit [Storybook's website](https://storybook.js.org) to learn more about Storybook and to get started.
### Documentation
@ -127,12 +127,12 @@ For additional help, join us in the [Storybook Discord](https://discord.gg/story
| [graphql](https://github.com/storybookjs/addon-graphql) | Query a GraphQL server within Storybook stories |
| [jest](code/addons/jest/) | View the results of components' unit tests in Storybook |
| [links](code/addons/links/) | Create links between stories |
| [measure](code/addons/measure/) | Visually inspect the layout and box model within the Storybook UI |
| [outline](code/addons/outline/) | Visuallly debug the CSS layout and alignment within the Storybook UI |
| [query params](https://github.com/storybookjs/addon-queryparams) | Mock query params |
| [storyshots](code/addons/storyshots/) | Snapshot testing for components in Storybook |
| [storysource](code/addons/storysource/) | View the code of your stories within the Storybook UI |
| [viewport](code/addons/viewport/) | Change display sizes and layouts for responsive components using Storybook |
| [outline](code/addons/outline/) | Visuallly debug the CSS layout and alignment within the Storybook UI |
| [measure](code/addons/measure/) | Visually inspect the layout and box model within the Storybook UI |
See [Addon / Framework Support Table](https://storybook.js.org/docs/react/api/frameworks-feature-support)
@ -140,11 +140,11 @@ See [Addon / Framework Support Table](https://storybook.js.org/docs/react/api/fr
| Addons | |
| ---------------------------------------------------------------------------------- | ---------------------------------------------------------- |
| [info](https://github.com/storybookjs/deprecated-addons/tree/master/addons/info) | Annotate stories with extra component usage information |
| [notes](https://github.com/storybookjs/deprecated-addons/tree/master/addons/notes) | Annotate Storybook stories with notes |
| [contexts](https://storybook.js.org/addons/@storybook/addon-contexts/) | Addon for driving your components under dynamic contexts |
| [options](https://www.npmjs.com/package/@storybook/addon-options) | Customize the Storybook UI in code |
| [info](https://github.com/storybookjs/deprecated-addons/tree/master/addons/info) | Annotate stories with extra component usage information |
| [knobs](https://github.com/storybookjs/addon-knobs) | Interactively edit component prop data in the Storybook UI |
| [notes](https://github.com/storybookjs/deprecated-addons/tree/master/addons/notes) | Annotate Storybook stories with notes |
| [options](https://www.npmjs.com/package/@storybook/addon-options) | Customize the Storybook UI in code |
In order to continue improving your experience, we have to eventually deprecate certain addons in favor of new, better tools.
@ -177,7 +177,7 @@ We welcome contributions to Storybook!
- 📥 Pull requests and 🌟 Stars are always welcome.
- Read our [contributing guide](CONTRIBUTING.md) to get started,
or find us on [Discord](https://discord.gg/storybook), we will take the time to guide you
or find us on [Discord](https://discord.gg/storybook), we will take the time to guide you.
Looking for a first issue to tackle?

View File

@ -101,5 +101,11 @@ module.exports = {
'jest/no-test-callback': 'off', // These aren't jest tests
},
},
{
files: ['**/builder-vite/input/iframe.html'],
rules: {
'no-undef': 'off', // ignore "window" undef errors
},
},
],
};

3
code/.vscode/settings.json vendored Normal file
View File

@ -0,0 +1,3 @@
{
"typescript.tsdk": "node_modules/typescript/lib"
}

View File

@ -1,6 +1,6 @@
{
"name": "@storybook/addon-a11y",
"version": "7.0.0-alpha.24",
"version": "7.0.0-alpha.27",
"description": "Test component compliance with web accessibility standards",
"keywords": [
"a11y",
@ -41,7 +41,7 @@
"import": "./dist/preview.mjs",
"types": "./dist/preview.d.ts"
},
"./register.js": {
"./register": {
"require": "./dist/manager.js",
"import": "./dist/manager.mjs",
"types": "./dist/manager.d.ts"
@ -62,15 +62,15 @@
"prepare": "../../../scripts/prepare/bundle.ts"
},
"dependencies": {
"@storybook/addon-highlight": "7.0.0-alpha.24",
"@storybook/addons": "7.0.0-alpha.24",
"@storybook/api": "7.0.0-alpha.24",
"@storybook/channels": "7.0.0-alpha.24",
"@storybook/client-logger": "7.0.0-alpha.24",
"@storybook/components": "7.0.0-alpha.24",
"@storybook/core-events": "7.0.0-alpha.24",
"@storybook/addon-highlight": "7.0.0-alpha.27",
"@storybook/addons": "7.0.0-alpha.27",
"@storybook/api": "7.0.0-alpha.27",
"@storybook/channels": "7.0.0-alpha.27",
"@storybook/client-logger": "7.0.0-alpha.27",
"@storybook/components": "7.0.0-alpha.27",
"@storybook/core-events": "7.0.0-alpha.27",
"@storybook/csf": "0.0.2--canary.0899bb7.0",
"@storybook/theming": "7.0.0-alpha.24",
"@storybook/theming": "7.0.0-alpha.27",
"axe-core": "^4.2.0",
"core-js": "^3.8.2",
"global": "^4.4.0",
@ -105,7 +105,7 @@
"./src/preview.tsx"
]
},
"gitHead": "e3232cb426b8381afa48f42e6baa45fd9af9bc3a",
"gitHead": "3e33f0709dd97151b7dfd86fd9858d13fd1c5738",
"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-alpha.24",
"version": "7.0.0-alpha.27",
"description": "Get UI feedback when an action is performed on an interactive element",
"keywords": [
"storybook",
@ -35,13 +35,13 @@
"prepare": "node ../../../scripts/prepare.js"
},
"dependencies": {
"@storybook/addons": "7.0.0-alpha.24",
"@storybook/api": "7.0.0-alpha.24",
"@storybook/client-logger": "7.0.0-alpha.24",
"@storybook/components": "7.0.0-alpha.24",
"@storybook/core-events": "7.0.0-alpha.24",
"@storybook/addons": "7.0.0-alpha.27",
"@storybook/api": "7.0.0-alpha.27",
"@storybook/client-logger": "7.0.0-alpha.27",
"@storybook/components": "7.0.0-alpha.27",
"@storybook/core-events": "7.0.0-alpha.27",
"@storybook/csf": "0.0.2--canary.0899bb7.0",
"@storybook/theming": "7.0.0-alpha.24",
"@storybook/theming": "7.0.0-alpha.27",
"core-js": "^3.8.2",
"dequal": "^2.0.2",
"global": "^4.4.0",
@ -73,7 +73,7 @@
"publishConfig": {
"access": "public"
},
"gitHead": "e3232cb426b8381afa48f42e6baa45fd9af9bc3a",
"gitHead": "3e33f0709dd97151b7dfd86fd9858d13fd1c5738",
"storybook": {
"displayName": "Actions",
"unsupportedFrameworks": [

View File

@ -1,6 +1,6 @@
{
"name": "@storybook/addon-backgrounds",
"version": "7.0.0-alpha.24",
"version": "7.0.0-alpha.27",
"description": "Switch backgrounds to view components in different settings",
"keywords": [
"addon",
@ -41,7 +41,7 @@
"import": "./dist/preview.mjs",
"types": "./dist/preview.d.ts"
},
"./register.js": {
"./register": {
"require": "./dist/manager.js",
"import": "./dist/manager.mjs",
"types": "./dist/manager.d.ts"
@ -62,13 +62,13 @@
"prepare": "../../../scripts/prepare/bundle.ts"
},
"dependencies": {
"@storybook/addons": "7.0.0-alpha.24",
"@storybook/api": "7.0.0-alpha.24",
"@storybook/client-logger": "7.0.0-alpha.24",
"@storybook/components": "7.0.0-alpha.24",
"@storybook/core-events": "7.0.0-alpha.24",
"@storybook/addons": "7.0.0-alpha.27",
"@storybook/api": "7.0.0-alpha.27",
"@storybook/client-logger": "7.0.0-alpha.27",
"@storybook/components": "7.0.0-alpha.27",
"@storybook/core-events": "7.0.0-alpha.27",
"@storybook/csf": "0.0.2--canary.0899bb7.0",
"@storybook/theming": "7.0.0-alpha.24",
"@storybook/theming": "7.0.0-alpha.27",
"core-js": "^3.8.2",
"global": "^4.4.0",
"memoizerific": "^1.11.3",
@ -100,7 +100,7 @@
"./src/preview.tsx"
]
},
"gitHead": "e3232cb426b8381afa48f42e6baa45fd9af9bc3a",
"gitHead": "3e33f0709dd97151b7dfd86fd9858d13fd1c5738",
"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-alpha.24",
"version": "7.0.0-alpha.27",
"description": "Interact with component inputs dynamically in the Storybook UI",
"keywords": [
"addon",
@ -36,7 +36,7 @@
"import": "./dist/manager.mjs",
"types": "./dist/manager.d.ts"
},
"./register.js": {
"./register": {
"require": "./dist/manager.js",
"import": "./dist/manager.mjs",
"types": "./dist/manager.d.ts"
@ -57,16 +57,16 @@
"prepare": "../../../scripts/prepare/bundle.ts"
},
"dependencies": {
"@storybook/addons": "7.0.0-alpha.24",
"@storybook/api": "7.0.0-alpha.24",
"@storybook/blocks": "7.0.0-alpha.24",
"@storybook/client-logger": "7.0.0-alpha.24",
"@storybook/components": "7.0.0-alpha.24",
"@storybook/core-common": "7.0.0-alpha.24",
"@storybook/addons": "7.0.0-alpha.27",
"@storybook/api": "7.0.0-alpha.27",
"@storybook/blocks": "7.0.0-alpha.27",
"@storybook/client-logger": "7.0.0-alpha.27",
"@storybook/components": "7.0.0-alpha.27",
"@storybook/core-common": "7.0.0-alpha.27",
"@storybook/csf": "0.0.2--canary.0899bb7.0",
"@storybook/node-logger": "7.0.0-alpha.24",
"@storybook/store": "7.0.0-alpha.24",
"@storybook/theming": "7.0.0-alpha.24",
"@storybook/node-logger": "7.0.0-alpha.27",
"@storybook/store": "7.0.0-alpha.27",
"@storybook/theming": "7.0.0-alpha.27",
"core-js": "^3.8.2",
"lodash": "^4.17.21",
"ts-dedent": "^2.0.0"
@ -93,7 +93,7 @@
],
"platform": "browser"
},
"gitHead": "e3232cb426b8381afa48f42e6baa45fd9af9bc3a",
"gitHead": "3e33f0709dd97151b7dfd86fd9858d13fd1c5738",
"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-alpha.24",
"version": "7.0.0-alpha.27",
"description": "Document component usage and properties in Markdown",
"keywords": [
"addon",
@ -53,22 +53,22 @@
"@babel/preset-env": "^7.12.11",
"@jest/transform": "^26.6.2",
"@mdx-js/react": "^1.6.22",
"@storybook/addons": "7.0.0-alpha.24",
"@storybook/api": "7.0.0-alpha.24",
"@storybook/blocks": "7.0.0-alpha.24",
"@storybook/components": "7.0.0-alpha.24",
"@storybook/core-common": "7.0.0-alpha.24",
"@storybook/core-events": "7.0.0-alpha.24",
"@storybook/addons": "7.0.0-alpha.27",
"@storybook/api": "7.0.0-alpha.27",
"@storybook/blocks": "7.0.0-alpha.27",
"@storybook/components": "7.0.0-alpha.27",
"@storybook/core-common": "7.0.0-alpha.27",
"@storybook/core-events": "7.0.0-alpha.27",
"@storybook/csf": "0.0.2--canary.0899bb7.0",
"@storybook/csf-tools": "7.0.0-alpha.24",
"@storybook/docs-tools": "7.0.0-alpha.24",
"@storybook/csf-tools": "7.0.0-alpha.27",
"@storybook/docs-tools": "7.0.0-alpha.27",
"@storybook/mdx1-csf": "0.0.5-canary.13.9ce928a.0",
"@storybook/node-logger": "7.0.0-alpha.24",
"@storybook/postinstall": "7.0.0-alpha.24",
"@storybook/preview-web": "7.0.0-alpha.24",
"@storybook/source-loader": "7.0.0-alpha.24",
"@storybook/store": "7.0.0-alpha.24",
"@storybook/theming": "7.0.0-alpha.24",
"@storybook/node-logger": "7.0.0-alpha.27",
"@storybook/postinstall": "7.0.0-alpha.27",
"@storybook/preview-web": "7.0.0-alpha.27",
"@storybook/source-loader": "7.0.0-alpha.27",
"@storybook/store": "7.0.0-alpha.27",
"@storybook/theming": "7.0.0-alpha.27",
"babel-loader": "^8.2.5",
"core-js": "^3.8.2",
"dequal": "^2.0.2",
@ -104,7 +104,7 @@
"publishConfig": {
"access": "public"
},
"gitHead": "e3232cb426b8381afa48f42e6baa45fd9af9bc3a",
"gitHead": "3e33f0709dd97151b7dfd86fd9858d13fd1c5738",
"storybook": {
"displayName": "Docs",
"icon": "https://user-images.githubusercontent.com/263385/101991672-48355c80-3c7c-11eb-82d9-95fa12438f64.png",

View File

@ -1,6 +1,6 @@
{
"name": "@storybook/addon-essentials",
"version": "7.0.0-alpha.24",
"version": "7.0.0-alpha.27",
"description": "Curated addons to bring out the best of Storybook",
"keywords": [
"addon",
@ -33,25 +33,25 @@
"prepare": "node ../../../scripts/prepare.js"
},
"dependencies": {
"@storybook/addon-actions": "7.0.0-alpha.24",
"@storybook/addon-backgrounds": "7.0.0-alpha.24",
"@storybook/addon-controls": "7.0.0-alpha.24",
"@storybook/addon-docs": "7.0.0-alpha.24",
"@storybook/addon-highlight": "7.0.0-alpha.24",
"@storybook/addon-measure": "7.0.0-alpha.24",
"@storybook/addon-outline": "7.0.0-alpha.24",
"@storybook/addon-toolbars": "7.0.0-alpha.24",
"@storybook/addon-viewport": "7.0.0-alpha.24",
"@storybook/addons": "7.0.0-alpha.24",
"@storybook/api": "7.0.0-alpha.24",
"@storybook/core-common": "7.0.0-alpha.24",
"@storybook/node-logger": "7.0.0-alpha.24",
"@storybook/addon-actions": "7.0.0-alpha.27",
"@storybook/addon-backgrounds": "7.0.0-alpha.27",
"@storybook/addon-controls": "7.0.0-alpha.27",
"@storybook/addon-docs": "7.0.0-alpha.27",
"@storybook/addon-highlight": "7.0.0-alpha.27",
"@storybook/addon-measure": "7.0.0-alpha.27",
"@storybook/addon-outline": "7.0.0-alpha.27",
"@storybook/addon-toolbars": "7.0.0-alpha.27",
"@storybook/addon-viewport": "7.0.0-alpha.27",
"@storybook/addons": "7.0.0-alpha.27",
"@storybook/api": "7.0.0-alpha.27",
"@storybook/core-common": "7.0.0-alpha.27",
"@storybook/node-logger": "7.0.0-alpha.27",
"core-js": "^3.8.2",
"ts-dedent": "^2.0.0"
},
"devDependencies": {
"@babel/core": "^7.12.10",
"@storybook/vue": "7.0.0-alpha.24",
"@storybook/vue": "7.0.0-alpha.27",
"@types/jest": "^26.0.16",
"typescript": "~4.6.3"
},
@ -99,5 +99,5 @@
"publishConfig": {
"access": "public"
},
"gitHead": "e3232cb426b8381afa48f42e6baa45fd9af9bc3a"
"gitHead": "3e33f0709dd97151b7dfd86fd9858d13fd1c5738"
}

View File

@ -1,6 +1,6 @@
{
"name": "@storybook/addon-highlight",
"version": "7.0.0-alpha.24",
"version": "7.0.0-alpha.27",
"description": "Highlight DOM nodes within your stories",
"keywords": [
"storybook-addons",
@ -37,8 +37,8 @@
"prepare": "node ../../../scripts/prepare.js"
},
"dependencies": {
"@storybook/addons": "7.0.0-alpha.24",
"@storybook/core-events": "7.0.0-alpha.24",
"@storybook/addons": "7.0.0-alpha.27",
"@storybook/core-events": "7.0.0-alpha.27",
"core-js": "^3.8.2",
"global": "^4.4.0"
},
@ -49,7 +49,7 @@
"publishConfig": {
"access": "public"
},
"gitHead": "e3232cb426b8381afa48f42e6baa45fd9af9bc3a",
"gitHead": "3e33f0709dd97151b7dfd86fd9858d13fd1c5738",
"sbmodern": "dist/modern/index.js",
"storybook": {
"displayName": "Highlight",

View File

@ -1,6 +1,6 @@
{
"name": "@storybook/addon-interactions",
"version": "7.0.0-alpha.24",
"version": "7.0.0-alpha.27",
"description": "Automate, test and debug user interactions",
"keywords": [
"storybook-addons",
@ -36,15 +36,15 @@
},
"dependencies": {
"@devtools-ds/object-inspector": "^1.1.2",
"@storybook/addons": "7.0.0-alpha.24",
"@storybook/api": "7.0.0-alpha.24",
"@storybook/client-logger": "7.0.0-alpha.24",
"@storybook/components": "7.0.0-alpha.24",
"@storybook/core-common": "7.0.0-alpha.24",
"@storybook/core-events": "7.0.0-alpha.24",
"@storybook/addons": "7.0.0-alpha.27",
"@storybook/api": "7.0.0-alpha.27",
"@storybook/client-logger": "7.0.0-alpha.27",
"@storybook/components": "7.0.0-alpha.27",
"@storybook/core-common": "7.0.0-alpha.27",
"@storybook/core-events": "7.0.0-alpha.27",
"@storybook/csf": "0.0.2--canary.0899bb7.0",
"@storybook/instrumenter": "7.0.0-alpha.24",
"@storybook/theming": "7.0.0-alpha.24",
"@storybook/instrumenter": "7.0.0-alpha.27",
"@storybook/theming": "7.0.0-alpha.27",
"core-js": "^3.8.2",
"global": "^4.4.0",
"jest-mock": "^27.0.6",
@ -72,7 +72,7 @@
"publishConfig": {
"access": "public"
},
"gitHead": "e3232cb426b8381afa48f42e6baa45fd9af9bc3a",
"gitHead": "3e33f0709dd97151b7dfd86fd9858d13fd1c5738",
"storybook": {
"displayName": "Interactions",
"unsupportedFrameworks": [

View File

@ -1,6 +1,6 @@
{
"name": "@storybook/addon-jest",
"version": "7.0.0-alpha.24",
"version": "7.0.0-alpha.27",
"description": "React storybook addon that show component jest report",
"keywords": [
"addon",
@ -38,7 +38,7 @@
"import": "./dist/manager.mjs",
"types": "./dist/manager.d.ts"
},
"./register.js": {
"./register": {
"require": "./dist/manager.js",
"import": "./dist/manager.mjs",
"types": "./dist/manager.d.ts"
@ -59,12 +59,12 @@
"prepare": "../../../scripts/prepare/bundle.ts"
},
"dependencies": {
"@storybook/addons": "7.0.0-alpha.24",
"@storybook/api": "7.0.0-alpha.24",
"@storybook/client-logger": "7.0.0-alpha.24",
"@storybook/components": "7.0.0-alpha.24",
"@storybook/core-events": "7.0.0-alpha.24",
"@storybook/theming": "7.0.0-alpha.24",
"@storybook/addons": "7.0.0-alpha.27",
"@storybook/api": "7.0.0-alpha.27",
"@storybook/client-logger": "7.0.0-alpha.27",
"@storybook/components": "7.0.0-alpha.27",
"@storybook/core-events": "7.0.0-alpha.27",
"@storybook/theming": "7.0.0-alpha.27",
"core-js": "^3.8.2",
"global": "^4.4.0",
"react-sizeme": "^3.0.1",
@ -95,7 +95,7 @@
],
"platform": "browser"
},
"gitHead": "e3232cb426b8381afa48f42e6baa45fd9af9bc3a",
"gitHead": "3e33f0709dd97151b7dfd86fd9858d13fd1c5738",
"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-alpha.24",
"version": "7.0.0-alpha.27",
"description": "Link stories together to build demos and prototypes with your UI components",
"keywords": [
"addon",
@ -42,7 +42,7 @@
"import": "./dist/react/index.mjs",
"types": "./dist/react.d.ts"
},
"./register.js": {
"./register": {
"require": "./dist/manager.js",
"import": "./dist/manager.mjs",
"types": "./dist/manager.d.ts"
@ -63,11 +63,11 @@
"prepare": "../../../scripts/prepare/bundle.ts"
},
"dependencies": {
"@storybook/addons": "7.0.0-alpha.24",
"@storybook/client-logger": "7.0.0-alpha.24",
"@storybook/core-events": "7.0.0-alpha.24",
"@storybook/addons": "7.0.0-alpha.27",
"@storybook/client-logger": "7.0.0-alpha.27",
"@storybook/core-events": "7.0.0-alpha.27",
"@storybook/csf": "0.0.2--canary.0899bb7.0",
"@storybook/router": "7.0.0-alpha.24",
"@storybook/router": "7.0.0-alpha.27",
"core-js": "^3.8.2",
"global": "^4.4.0",
"prop-types": "^15.7.2",
@ -99,7 +99,7 @@
"./src/react/index.ts"
]
},
"gitHead": "e3232cb426b8381afa48f42e6baa45fd9af9bc3a",
"gitHead": "3e33f0709dd97151b7dfd86fd9858d13fd1c5738",
"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-alpha.24",
"version": "7.0.0-alpha.27",
"description": "Inspect layouts by visualizing the box model",
"keywords": [
"storybook-addons",
@ -40,7 +40,7 @@
"import": "./dist/preview.mjs",
"types": "./dist/preview.d.ts"
},
"./register.js": {
"./register": {
"require": "./dist/manager.js",
"import": "./dist/manager.mjs",
"types": "./dist/manager.d.ts"
@ -61,11 +61,11 @@
"prepare": "../../../scripts/prepare/bundle.ts"
},
"dependencies": {
"@storybook/addons": "7.0.0-alpha.24",
"@storybook/api": "7.0.0-alpha.24",
"@storybook/client-logger": "7.0.0-alpha.24",
"@storybook/components": "7.0.0-alpha.24",
"@storybook/core-events": "7.0.0-alpha.24",
"@storybook/addons": "7.0.0-alpha.27",
"@storybook/api": "7.0.0-alpha.27",
"@storybook/client-logger": "7.0.0-alpha.27",
"@storybook/components": "7.0.0-alpha.27",
"@storybook/core-events": "7.0.0-alpha.27",
"@storybook/csf": "0.0.2--canary.0899bb7.0",
"core-js": "^3.8.2",
"global": "^4.4.0"
@ -95,7 +95,7 @@
"./src/preview.tsx"
]
},
"gitHead": "e3232cb426b8381afa48f42e6baa45fd9af9bc3a",
"gitHead": "3e33f0709dd97151b7dfd86fd9858d13fd1c5738",
"storybook": {
"displayName": "Measure",
"unsupportedFrameworks": [

View File

@ -1,6 +1,6 @@
{
"name": "@storybook/addon-outline",
"version": "7.0.0-alpha.24",
"version": "7.0.0-alpha.27",
"description": "Outline all elements with CSS to help with layout placement and alignment",
"keywords": [
"storybook-addons",
@ -43,7 +43,7 @@
"import": "./dist/preset/preview.mjs",
"types": "./dist/preview.d.ts"
},
"./register.js": {
"./register": {
"require": "./dist/manager.js",
"import": "./dist/manager.mjs",
"types": "./dist/manager.d.ts"
@ -64,11 +64,11 @@
"prepare": "../../../scripts/prepare/bundle.ts"
},
"dependencies": {
"@storybook/addons": "7.0.0-alpha.24",
"@storybook/api": "7.0.0-alpha.24",
"@storybook/client-logger": "7.0.0-alpha.24",
"@storybook/components": "7.0.0-alpha.24",
"@storybook/core-events": "7.0.0-alpha.24",
"@storybook/addons": "7.0.0-alpha.27",
"@storybook/api": "7.0.0-alpha.27",
"@storybook/client-logger": "7.0.0-alpha.27",
"@storybook/components": "7.0.0-alpha.27",
"@storybook/core-events": "7.0.0-alpha.27",
"@storybook/csf": "0.0.2--canary.0899bb7.0",
"core-js": "^3.8.2",
"global": "^4.4.0",
@ -99,7 +99,7 @@
"./src/preset/preview.tsx"
]
},
"gitHead": "e3232cb426b8381afa48f42e6baa45fd9af9bc3a",
"gitHead": "3e33f0709dd97151b7dfd86fd9858d13fd1c5738",
"storybook": {
"displayName": "Outline",
"unsupportedFrameworks": [

View File

@ -1,6 +1,6 @@
{
"name": "@storybook/addon-storyshots",
"version": "7.0.0-alpha.24",
"version": "7.0.0-alpha.27",
"description": "Take a code snapshot of every story automatically with Jest",
"keywords": [
"addon",
@ -38,12 +38,12 @@
},
"dependencies": {
"@jest/transform": "^26.6.2",
"@storybook/addons": "7.0.0-alpha.24",
"@storybook/addons": "7.0.0-alpha.27",
"@storybook/babel-plugin-require-context-hook": "1.0.1",
"@storybook/client-api": "7.0.0-alpha.24",
"@storybook/core-client": "7.0.0-alpha.24",
"@storybook/core-common": "7.0.0-alpha.24",
"@storybook/core-webpack": "7.0.0-alpha.24",
"@storybook/client-api": "7.0.0-alpha.27",
"@storybook/core-client": "7.0.0-alpha.27",
"@storybook/core-common": "7.0.0-alpha.27",
"@storybook/core-webpack": "7.0.0-alpha.27",
"@storybook/csf": "0.0.2--canary.0899bb7.0",
"@types/glob": "^7.1.3",
"@types/jest": "^26.0.16",
@ -62,11 +62,11 @@
"@angular/core": "^13.3.6",
"@angular/platform-browser-dynamic": "^13.3.6",
"@emotion/jest": "^11.8.0",
"@storybook/addon-docs": "7.0.0-alpha.24",
"@storybook/angular": "7.0.0-alpha.24",
"@storybook/react": "7.0.0-alpha.24",
"@storybook/vue": "7.0.0-alpha.24",
"@storybook/vue3": "7.0.0-alpha.24",
"@storybook/addon-docs": "7.0.0-alpha.27",
"@storybook/angular": "7.0.0-alpha.27",
"@storybook/react": "7.0.0-alpha.27",
"@storybook/vue": "7.0.0-alpha.27",
"@storybook/vue3": "7.0.0-alpha.27",
"babel-loader": "^8.2.5",
"enzyme": "^3.11.0",
"enzyme-to-json": "^3.6.1",
@ -144,7 +144,7 @@
"publishConfig": {
"access": "public"
},
"gitHead": "e3232cb426b8381afa48f42e6baa45fd9af9bc3a",
"gitHead": "3e33f0709dd97151b7dfd86fd9858d13fd1c5738",
"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-alpha.24",
"version": "7.0.0-alpha.27",
"description": "Image snapshots addition to StoryShots based on puppeteer",
"keywords": [
"addon",
@ -35,7 +35,7 @@
"dependencies": {
"@axe-core/puppeteer": "^4.2.0",
"@storybook/csf": "0.0.2--canary.0899bb7.0",
"@storybook/node-logger": "7.0.0-alpha.24",
"@storybook/node-logger": "7.0.0-alpha.27",
"@types/jest-image-snapshot": "^4.1.3",
"core-js": "^3.8.2",
"jest-image-snapshot": "^4.3.0"
@ -45,7 +45,7 @@
"puppeteer": "^2.0.0 || ^3.0.0"
},
"peerDependencies": {
"@storybook/addon-storyshots": "7.0.0-alpha.24",
"@storybook/addon-storyshots": "7.0.0-alpha.27",
"puppeteer": ">=2.0.0"
},
"peerDependenciesMeta": {
@ -56,5 +56,5 @@
"publishConfig": {
"access": "public"
},
"gitHead": "e3232cb426b8381afa48f42e6baa45fd9af9bc3a"
"gitHead": "3e33f0709dd97151b7dfd86fd9858d13fd1c5738"
}

View File

@ -1,6 +1,6 @@
{
"name": "@storybook/addon-storysource",
"version": "7.0.0-alpha.24",
"version": "7.0.0-alpha.27",
"description": "View a storys source code to see how it works and paste into your app",
"keywords": [
"addon",
@ -35,13 +35,13 @@
"prepare": "node ../../../scripts/prepare.js"
},
"dependencies": {
"@storybook/addons": "7.0.0-alpha.24",
"@storybook/api": "7.0.0-alpha.24",
"@storybook/client-logger": "7.0.0-alpha.24",
"@storybook/components": "7.0.0-alpha.24",
"@storybook/router": "7.0.0-alpha.24",
"@storybook/source-loader": "7.0.0-alpha.24",
"@storybook/theming": "7.0.0-alpha.24",
"@storybook/addons": "7.0.0-alpha.27",
"@storybook/api": "7.0.0-alpha.27",
"@storybook/client-logger": "7.0.0-alpha.27",
"@storybook/components": "7.0.0-alpha.27",
"@storybook/router": "7.0.0-alpha.27",
"@storybook/source-loader": "7.0.0-alpha.27",
"@storybook/theming": "7.0.0-alpha.27",
"core-js": "^3.8.2",
"estraverse": "^5.2.0",
"prop-types": "^15.7.2",
@ -67,7 +67,7 @@
"publishConfig": {
"access": "public"
},
"gitHead": "e3232cb426b8381afa48f42e6baa45fd9af9bc3a",
"gitHead": "3e33f0709dd97151b7dfd86fd9858d13fd1c5738",
"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-alpha.24",
"version": "7.0.0-alpha.27",
"description": "Create your own toolbar items that control story rendering",
"keywords": [
"addon",
@ -36,7 +36,7 @@
"import": "./dist/manager.mjs",
"types": "./dist/manager.d.ts"
},
"./register.js": {
"./register": {
"require": "./dist/manager.js",
"import": "./dist/manager.mjs",
"types": "./dist/manager.d.ts"
@ -57,11 +57,11 @@
"prepare": "../../../scripts/prepare/bundle.ts"
},
"dependencies": {
"@storybook/addons": "7.0.0-alpha.24",
"@storybook/api": "7.0.0-alpha.24",
"@storybook/client-logger": "7.0.0-alpha.24",
"@storybook/components": "7.0.0-alpha.24",
"@storybook/theming": "7.0.0-alpha.24",
"@storybook/addons": "7.0.0-alpha.27",
"@storybook/api": "7.0.0-alpha.27",
"@storybook/client-logger": "7.0.0-alpha.27",
"@storybook/components": "7.0.0-alpha.27",
"@storybook/theming": "7.0.0-alpha.27",
"core-js": "^3.8.2"
},
"devDependencies": {
@ -89,7 +89,7 @@
],
"platform": "browser"
},
"gitHead": "e3232cb426b8381afa48f42e6baa45fd9af9bc3a",
"gitHead": "3e33f0709dd97151b7dfd86fd9858d13fd1c5738",
"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-alpha.24",
"version": "7.0.0-alpha.27",
"description": "Build responsive components by adjusting Storybooks viewport size and orientation",
"keywords": [
"addon",
@ -38,7 +38,7 @@
"import": "./dist/preview.mjs",
"types": "./dist/preview.d.ts"
},
"./register.js": {
"./register": {
"require": "./dist/manager.js",
"import": "./dist/manager.mjs",
"types": "./dist/manager.d.ts"
@ -59,12 +59,12 @@
"prepare": "../../../scripts/prepare/bundle.ts"
},
"dependencies": {
"@storybook/addons": "7.0.0-alpha.24",
"@storybook/api": "7.0.0-alpha.24",
"@storybook/client-logger": "7.0.0-alpha.24",
"@storybook/components": "7.0.0-alpha.24",
"@storybook/core-events": "7.0.0-alpha.24",
"@storybook/theming": "7.0.0-alpha.24",
"@storybook/addons": "7.0.0-alpha.27",
"@storybook/api": "7.0.0-alpha.27",
"@storybook/client-logger": "7.0.0-alpha.27",
"@storybook/components": "7.0.0-alpha.27",
"@storybook/core-events": "7.0.0-alpha.27",
"@storybook/theming": "7.0.0-alpha.27",
"core-js": "^3.8.2",
"global": "^4.4.0",
"memoizerific": "^1.11.3",
@ -96,7 +96,7 @@
"./src/preview.ts"
]
},
"gitHead": "e3232cb426b8381afa48f42e6baa45fd9af9bc3a",
"gitHead": "3e33f0709dd97151b7dfd86fd9858d13fd1c5738",
"storybook": {
"displayName": "Viewport",
"icon": "https://user-images.githubusercontent.com/263385/101991678-48cdf300-3c7c-11eb-9764-f8af293c1b28.png",

View File

@ -7,6 +7,7 @@ const storybookUrl = process.env.STORYBOOK_URL || 'http://localhost:8001';
test.describe('addon-actions', () => {
test.beforeEach(async ({ page }) => {
await page.goto(storybookUrl);
await new SbPage(page).waitUntilLoaded();
});
test('should trigger an action', async ({ page }) => {

View File

@ -7,6 +7,7 @@ const storybookUrl = process.env.STORYBOOK_URL || 'http://localhost:8001';
test.describe('addon-backgrounds', () => {
test.beforeEach(async ({ page }) => {
await page.goto(storybookUrl);
await new SbPage(page).waitUntilLoaded();
});
test('should have a dark background', async ({ page }) => {

View File

@ -8,6 +8,7 @@ test.describe('addon-controls', () => {
test('should change component when changing controls', async ({ page }) => {
await page.goto(storybookUrl);
const sbPage = new SbPage(page);
await sbPage.waitUntilLoaded();
await sbPage.navigateToStory('example-button', 'primary');
await sbPage.viewAddonPanel('Controls');
@ -62,6 +63,7 @@ test.describe('addon-controls', () => {
await page.goto(`${storybookUrl}?path=/story/example-button--primary&args=label:Hello+world`);
const sbPage = new SbPage(page);
await sbPage.waitUntilLoaded();
await expect(sbPage.previewRoot().locator('button')).toContainText('Hello world');
await sbPage.viewAddonPanel('Controls');

View File

@ -10,6 +10,7 @@ const templateName = process.env.STORYBOOK_TEMPLATE_NAME || '';
test.describe('addon-docs', () => {
test.beforeEach(async ({ page }) => {
await page.goto(storybookUrl);
await new SbPage(page).waitUntilLoaded();
});
test('should provide source snippet', async ({ page }) => {

View File

@ -7,6 +7,7 @@ const storybookUrl = process.env.STORYBOOK_URL || 'http://localhost:8001';
test.describe('addon-interactions', () => {
test.beforeEach(async ({ page }) => {
await page.goto(storybookUrl);
await new SbPage(page).waitUntilLoaded();
});
// FIXME: skip xxx

View File

@ -7,6 +7,7 @@ const storybookUrl = process.env.STORYBOOK_URL || 'http://localhost:8001';
test.describe('addon-viewport', () => {
test.beforeEach(async ({ page }) => {
await page.goto(storybookUrl);
await new SbPage(page).waitUntilLoaded();
});
test('should have viewport button in the toolbar', async ({ page }) => {

View File

@ -1,14 +0,0 @@
import { test, expect } from '@playwright/test';
import process from 'process';
const storybookUrl = process.env.STORYBOOK_URL || 'http://localhost:8001';
test('Basic story test', async ({ page }) => {
await page.goto(storybookUrl);
const preview = page.frameLocator('#storybook-preview-iframe');
const root = preview.locator('#storybook-root:visible, #storybook-docs:visible');
// Specific check for introduction story
await expect(root).toContainText('Welcome');
});

View File

@ -32,6 +32,14 @@ export class SbPage {
await expect(selected).toBe('true');
}
async waitUntilLoaded() {
const root = this.previewRoot();
const docsLoadingPage = root.locator('.sb-preparing-docs');
const storyLoadingPage = root.locator('.sb-preparing-story');
await docsLoadingPage.waitFor({ state: 'hidden' });
await storyLoadingPage.waitFor({ state: 'hidden' });
}
previewIframe() {
return this.page.frameLocator('#storybook-preview-iframe');
}

View File

@ -1,6 +1,6 @@
{
"name": "angular-cli",
"version": "7.0.0-alpha.24",
"version": "7.0.0-alpha.27",
"private": true,
"license": "MIT",
"workspaces": {
@ -44,22 +44,22 @@
"@angular/compiler-cli": "^13.3.6",
"@angular/elements": "^13.3.6",
"@compodoc/compodoc": "^1.1.18",
"@storybook/addon-a11y": "7.0.0-alpha.24",
"@storybook/addon-actions": "7.0.0-alpha.24",
"@storybook/addon-backgrounds": "7.0.0-alpha.24",
"@storybook/addon-controls": "7.0.0-alpha.24",
"@storybook/addon-docs": "7.0.0-alpha.24",
"@storybook/addon-highlight": "7.0.0-alpha.24",
"@storybook/addon-interactions": "7.0.0-alpha.24",
"@storybook/addon-jest": "7.0.0-alpha.24",
"@storybook/addon-links": "7.0.0-alpha.24",
"@storybook/addon-storyshots": "7.0.0-alpha.24",
"@storybook/addon-storysource": "7.0.0-alpha.24",
"@storybook/addons": "7.0.0-alpha.24",
"@storybook/angular": "7.0.0-alpha.24",
"@storybook/addon-a11y": "7.0.0-alpha.27",
"@storybook/addon-actions": "7.0.0-alpha.27",
"@storybook/addon-backgrounds": "7.0.0-alpha.27",
"@storybook/addon-controls": "7.0.0-alpha.27",
"@storybook/addon-docs": "7.0.0-alpha.27",
"@storybook/addon-highlight": "7.0.0-alpha.27",
"@storybook/addon-interactions": "7.0.0-alpha.27",
"@storybook/addon-jest": "7.0.0-alpha.27",
"@storybook/addon-links": "7.0.0-alpha.27",
"@storybook/addon-storyshots": "7.0.0-alpha.27",
"@storybook/addon-storysource": "7.0.0-alpha.27",
"@storybook/addons": "7.0.0-alpha.27",
"@storybook/angular": "7.0.0-alpha.27",
"@storybook/babel-plugin-require-context-hook": "1.0.1",
"@storybook/jest": "^0.0.10",
"@storybook/source-loader": "7.0.0-alpha.24",
"@storybook/source-loader": "7.0.0-alpha.27",
"@storybook/testing-library": "0.0.14-next.0",
"@types/core-js": "^2.5.4",
"@types/jest": "^26.0.16",
@ -72,7 +72,7 @@
"jest": "^26.6.3",
"jest-preset-angular": "^8.3.2",
"protractor": "~7.0.0",
"storybook": "7.0.0-alpha.24",
"storybook": "7.0.0-alpha.27",
"storybook-addon-angular-ivy": "^0.0.1",
"ts-jest": "^26.4.4",
"ts-node": "^10.4.0",

View File

@ -1,6 +1,6 @@
{
"name": "cra-kitchen-sink",
"version": "7.0.0-alpha.24",
"version": "7.0.0-alpha.27",
"private": true,
"scripts": {
"build": "react-scripts build",
@ -11,7 +11,7 @@
"test": "react-scripts test --env=jsdom"
},
"dependencies": {
"@storybook/client-logger": "7.0.0-alpha.24",
"@storybook/client-logger": "7.0.0-alpha.27",
"global": "^4.4.0",
"prop-types": "^15.7.2",
"react": "16.14.0",
@ -21,21 +21,21 @@
},
"devDependencies": {
"@pmmmwh/react-refresh-webpack-plugin": "^0.5.5",
"@storybook/addon-a11y": "7.0.0-alpha.24",
"@storybook/addon-actions": "7.0.0-alpha.24",
"@storybook/addon-backgrounds": "7.0.0-alpha.24",
"@storybook/addon-docs": "7.0.0-alpha.24",
"@storybook/addon-highlight": "7.0.0-alpha.24",
"@storybook/addon-jest": "7.0.0-alpha.24",
"@storybook/addon-links": "7.0.0-alpha.24",
"@storybook/addon-storyshots": "7.0.0-alpha.24",
"@storybook/addons": "7.0.0-alpha.24",
"@storybook/builder-webpack5": "7.0.0-alpha.24",
"@storybook/addon-a11y": "7.0.0-alpha.27",
"@storybook/addon-actions": "7.0.0-alpha.27",
"@storybook/addon-backgrounds": "7.0.0-alpha.27",
"@storybook/addon-docs": "7.0.0-alpha.27",
"@storybook/addon-highlight": "7.0.0-alpha.27",
"@storybook/addon-jest": "7.0.0-alpha.27",
"@storybook/addon-links": "7.0.0-alpha.27",
"@storybook/addon-storyshots": "7.0.0-alpha.27",
"@storybook/addons": "7.0.0-alpha.27",
"@storybook/builder-webpack5": "7.0.0-alpha.27",
"@storybook/preset-create-react-app": "^4.1.0",
"@storybook/react": "7.0.0-alpha.24",
"@storybook/react-webpack5": "7.0.0-alpha.24",
"@storybook/theming": "7.0.0-alpha.24",
"storybook": "7.0.0-alpha.24",
"@storybook/react": "7.0.0-alpha.27",
"@storybook/react-webpack5": "7.0.0-alpha.27",
"@storybook/theming": "7.0.0-alpha.27",
"storybook": "7.0.0-alpha.27",
"webpack": "5"
},
"storybook": {

View File

@ -1,6 +1,6 @@
{
"name": "cra-ts-essentials",
"version": "7.0.0-alpha.24",
"version": "7.0.0-alpha.27",
"private": true,
"scripts": {
"build": "react-scripts build",
@ -23,8 +23,8 @@
]
},
"dependencies": {
"@storybook/components": "7.0.0-alpha.24",
"@storybook/theming": "7.0.0-alpha.24",
"@storybook/components": "7.0.0-alpha.27",
"@storybook/theming": "7.0.0-alpha.27",
"@types/jest": "^26.0.16",
"@types/node": "^14.14.20 || ^16.0.0",
"@types/react": "^16.14.23",
@ -37,15 +37,15 @@
"typescript": "~4.6.3"
},
"devDependencies": {
"@storybook/addon-essentials": "7.0.0-alpha.24",
"@storybook/addon-interactions": "7.0.0-alpha.24",
"@storybook/addons": "7.0.0-alpha.24",
"@storybook/builder-webpack5": "7.0.0-alpha.24",
"@storybook/addon-essentials": "7.0.0-alpha.27",
"@storybook/addon-interactions": "7.0.0-alpha.27",
"@storybook/addons": "7.0.0-alpha.27",
"@storybook/builder-webpack5": "7.0.0-alpha.27",
"@storybook/preset-create-react-app": "^4.1.0",
"@storybook/react": "7.0.0-alpha.24",
"@storybook/react-webpack5": "7.0.0-alpha.24",
"@storybook/react": "7.0.0-alpha.27",
"@storybook/react-webpack5": "7.0.0-alpha.27",
"@storybook/testing-library": "^0.0.9",
"storybook": "7.0.0-alpha.24",
"storybook": "7.0.0-alpha.27",
"ts-node": "^10.4.0",
"webpack": "5"
},

View File

@ -1,6 +1,6 @@
{
"name": "cra-ts-kitchen-sink",
"version": "7.0.0-alpha.24",
"version": "7.0.0-alpha.27",
"private": true,
"scripts": {
"build": "react-scripts build",
@ -34,23 +34,23 @@
"typescript": "~4.6.3"
},
"devDependencies": {
"@storybook/addon-a11y": "7.0.0-alpha.24",
"@storybook/addon-actions": "7.0.0-alpha.24",
"@storybook/addon-docs": "7.0.0-alpha.24",
"@storybook/addon-highlight": "7.0.0-alpha.24",
"@storybook/addon-links": "7.0.0-alpha.24",
"@storybook/addons": "7.0.0-alpha.24",
"@storybook/builder-webpack5": "7.0.0-alpha.24",
"@storybook/addon-a11y": "7.0.0-alpha.27",
"@storybook/addon-actions": "7.0.0-alpha.27",
"@storybook/addon-docs": "7.0.0-alpha.27",
"@storybook/addon-highlight": "7.0.0-alpha.27",
"@storybook/addon-links": "7.0.0-alpha.27",
"@storybook/addons": "7.0.0-alpha.27",
"@storybook/builder-webpack5": "7.0.0-alpha.27",
"@storybook/preset-create-react-app": "^4.1.0",
"@storybook/react": "7.0.0-alpha.24",
"@storybook/react-webpack5": "7.0.0-alpha.24",
"@storybook/react": "7.0.0-alpha.27",
"@storybook/react-webpack5": "7.0.0-alpha.27",
"@types/enzyme": "^3.10.8",
"enzyme": "^3.11.0",
"enzyme-adapter-react-16": "^1.9.1",
"enzyme-to-json": "^3.6.1",
"fork-ts-checker-webpack-plugin": "^7.2.6",
"react-moment-proptypes": "^1.7.0",
"storybook": "7.0.0-alpha.24",
"storybook": "7.0.0-alpha.27",
"ts-node": "^10.4.0",
"webpack": "5"
},

View File

@ -1,6 +1,6 @@
{
"name": "@storybook/example-doc-blocks",
"version": "7.0.0-alpha.24",
"version": "7.0.0-alpha.27",
"private": true,
"scripts": {
"build-storybook": "cross-env STORYBOOK_DISPLAY_WARNING=true DISPLAY_WARNING=true sb build",
@ -15,20 +15,20 @@
"@babel/preset-env": "^7.12.11",
"@babel/preset-react": "^7.12.10",
"@babel/preset-typescript": "^7.12.7",
"@storybook/addon-essentials": "7.0.0-alpha.24",
"@storybook/addon-storyshots": "7.0.0-alpha.24",
"@storybook/addon-storysource": "7.0.0-alpha.24",
"@storybook/addons": "7.0.0-alpha.24",
"@storybook/cli": "7.0.0-alpha.24",
"@storybook/components": "7.0.0-alpha.24",
"@storybook/react-webpack5": "7.0.0-alpha.24",
"@storybook/theming": "7.0.0-alpha.24",
"@storybook/addon-essentials": "7.0.0-alpha.27",
"@storybook/addon-storyshots": "7.0.0-alpha.27",
"@storybook/addon-storysource": "7.0.0-alpha.27",
"@storybook/addons": "7.0.0-alpha.27",
"@storybook/cli": "7.0.0-alpha.27",
"@storybook/components": "7.0.0-alpha.27",
"@storybook/react-webpack5": "7.0.0-alpha.27",
"@storybook/theming": "7.0.0-alpha.27",
"@types/babel__preset-env": "^7",
"@types/react": "^16.14.23",
"@types/react-dom": "^16.9.14",
"cross-env": "^7.0.3",
"lodash": "^4.17.21",
"sb": "7.0.0-alpha.24",
"sb": "7.0.0-alpha.27",
"typescript": "~4.6.3",
"webpack": "5"
},

View File

@ -1,6 +1,6 @@
{
"name": "ember-example",
"version": "7.0.0-alpha.24",
"version": "7.0.0-alpha.27",
"private": true,
"scripts": {
"--build-storybook": "yarn storybook-prebuild && storybook build",
@ -17,19 +17,19 @@
"devDependencies": {
"@babel/core": "^7.12.10",
"@ember/optional-features": "^2.0.0",
"@storybook/addon-a11y": "7.0.0-alpha.24",
"@storybook/addon-actions": "7.0.0-alpha.24",
"@storybook/addon-backgrounds": "7.0.0-alpha.24",
"@storybook/addon-controls": "7.0.0-alpha.24",
"@storybook/addon-docs": "7.0.0-alpha.24",
"@storybook/addon-highlight": "7.0.0-alpha.24",
"@storybook/addon-links": "7.0.0-alpha.24",
"@storybook/addon-storysource": "7.0.0-alpha.24",
"@storybook/addon-viewport": "7.0.0-alpha.24",
"@storybook/addons": "7.0.0-alpha.24",
"@storybook/ember": "7.0.0-alpha.24",
"@storybook/addon-a11y": "7.0.0-alpha.27",
"@storybook/addon-actions": "7.0.0-alpha.27",
"@storybook/addon-backgrounds": "7.0.0-alpha.27",
"@storybook/addon-controls": "7.0.0-alpha.27",
"@storybook/addon-docs": "7.0.0-alpha.27",
"@storybook/addon-highlight": "7.0.0-alpha.27",
"@storybook/addon-links": "7.0.0-alpha.27",
"@storybook/addon-storysource": "7.0.0-alpha.27",
"@storybook/addon-viewport": "7.0.0-alpha.27",
"@storybook/addons": "7.0.0-alpha.27",
"@storybook/ember": "7.0.0-alpha.27",
"@storybook/ember-cli-storybook": "^0.2.1",
"@storybook/source-loader": "7.0.0-alpha.24",
"@storybook/source-loader": "7.0.0-alpha.27",
"babel-loader": "^8.2.5",
"broccoli-asset-rev": "^3.0.0",
"browserify-zlib": "^0.2.0",
@ -49,7 +49,7 @@
"loader.js": "^4.7.0",
"os-browserify": "^0.3.0",
"shx": "^0.3.2",
"storybook": "7.0.0-alpha.24",
"storybook": "7.0.0-alpha.27",
"stream-browserify": "^3.0.0",
"vm-browserify": "^1.1.2",
"webpack": "5",

View File

@ -1,6 +1,6 @@
{
"name": "@storybook/external-docs",
"version": "7.0.0-alpha.24",
"version": "7.0.0-alpha.27",
"private": true,
"scripts": {
"build": "next build",
@ -11,15 +11,15 @@
"storybook": "cross-env STORYBOOK_DISPLAY_WARNING=true DISPLAY_WARNING=true storybook dev -p 9011 --no-manager-cache -c .storybook"
},
"dependencies": {
"@storybook/addon-docs": "7.0.0-alpha.24",
"@storybook/addon-essentials": "7.0.0-alpha.24",
"@storybook/blocks": "7.0.0-alpha.24",
"@storybook/components": "7.0.0-alpha.24",
"@storybook/addon-docs": "7.0.0-alpha.27",
"@storybook/addon-essentials": "7.0.0-alpha.27",
"@storybook/blocks": "7.0.0-alpha.27",
"@storybook/components": "7.0.0-alpha.27",
"@storybook/csf": "0.0.2--canary.0899bb7.0",
"@storybook/preview-web": "7.0.0-alpha.24",
"@storybook/react": "7.0.0-alpha.24",
"@storybook/react-webpack5": "7.0.0-alpha.24",
"@storybook/theming": "7.0.0-alpha.24",
"@storybook/preview-web": "7.0.0-alpha.27",
"@storybook/react": "7.0.0-alpha.27",
"@storybook/react-webpack5": "7.0.0-alpha.27",
"@storybook/theming": "7.0.0-alpha.27",
"formik": "^2.2.9",
"next": "^12.1.0",
"nextra": "^1.1.0",
@ -38,7 +38,7 @@
"cross-env": "^7.0.3",
"eslint": "8.7.0",
"eslint-config-next": "12.0.8",
"storybook": "7.0.0-alpha.24",
"storybook": "7.0.0-alpha.27",
"typescript": "~4.6.3",
"webpack": "5"
}

View File

@ -1,6 +1,6 @@
{
"name": "html-kitchen-sink",
"version": "7.0.0-alpha.24",
"version": "7.0.0-alpha.27",
"private": true,
"description": "",
"keywords": [],
@ -13,31 +13,31 @@
"storybook": "storybook dev -p 9006 --no-manager-cache"
},
"devDependencies": {
"@storybook/addon-a11y": "7.0.0-alpha.24",
"@storybook/addon-actions": "7.0.0-alpha.24",
"@storybook/addon-backgrounds": "7.0.0-alpha.24",
"@storybook/addon-controls": "7.0.0-alpha.24",
"@storybook/addon-docs": "7.0.0-alpha.24",
"@storybook/addon-highlight": "7.0.0-alpha.24",
"@storybook/addon-jest": "7.0.0-alpha.24",
"@storybook/addon-links": "7.0.0-alpha.24",
"@storybook/addon-a11y": "7.0.0-alpha.27",
"@storybook/addon-actions": "7.0.0-alpha.27",
"@storybook/addon-backgrounds": "7.0.0-alpha.27",
"@storybook/addon-controls": "7.0.0-alpha.27",
"@storybook/addon-docs": "7.0.0-alpha.27",
"@storybook/addon-highlight": "7.0.0-alpha.27",
"@storybook/addon-jest": "7.0.0-alpha.27",
"@storybook/addon-links": "7.0.0-alpha.27",
"@storybook/addon-postcss": "^2.0.0",
"@storybook/addon-storyshots": "7.0.0-alpha.24",
"@storybook/addon-storysource": "7.0.0-alpha.24",
"@storybook/addon-viewport": "7.0.0-alpha.24",
"@storybook/addons": "7.0.0-alpha.24",
"@storybook/client-api": "7.0.0-alpha.24",
"@storybook/core-events": "7.0.0-alpha.24",
"@storybook/html": "7.0.0-alpha.24",
"@storybook/html-webpack5": "7.0.0-alpha.24",
"@storybook/source-loader": "7.0.0-alpha.24",
"@storybook/addon-storyshots": "7.0.0-alpha.27",
"@storybook/addon-storysource": "7.0.0-alpha.27",
"@storybook/addon-viewport": "7.0.0-alpha.27",
"@storybook/addons": "7.0.0-alpha.27",
"@storybook/client-api": "7.0.0-alpha.27",
"@storybook/core-events": "7.0.0-alpha.27",
"@storybook/html": "7.0.0-alpha.27",
"@storybook/html-webpack5": "7.0.0-alpha.27",
"@storybook/source-loader": "7.0.0-alpha.27",
"autoprefixer": "^10.0.1",
"eventemitter3": "^4.0.7",
"format-json": "^1.0.3",
"global": "^4.4.0",
"postcss": "^8.2.4",
"postcss-color-rebeccapurple": "^6.0.0",
"storybook": "7.0.0-alpha.24"
"storybook": "7.0.0-alpha.27"
},
"storybook": {
"chromatic": {

View File

@ -1,6 +1,6 @@
{
"name": "official-storybook",
"version": "7.0.0-alpha.24",
"version": "7.0.0-alpha.27",
"private": true,
"scripts": {
"build-storybook": "cross-env STORYBOOK_DISPLAY_WARNING=true DISPLAY_WARNING=true storybook build -c ./",
@ -13,33 +13,33 @@
"devDependencies": {
"@emotion/jest": "^11.8.0",
"@pmmmwh/react-refresh-webpack-plugin": "^0.5.5",
"@storybook/addon-a11y": "7.0.0-alpha.24",
"@storybook/addon-actions": "7.0.0-alpha.24",
"@storybook/addon-backgrounds": "7.0.0-alpha.24",
"@storybook/addon-controls": "7.0.0-alpha.24",
"@storybook/addon-docs": "7.0.0-alpha.24",
"@storybook/addon-highlight": "7.0.0-alpha.24",
"@storybook/addon-interactions": "7.0.0-alpha.24",
"@storybook/addon-jest": "7.0.0-alpha.24",
"@storybook/addon-links": "7.0.0-alpha.24",
"@storybook/addon-storyshots": "7.0.0-alpha.24",
"@storybook/addon-storyshots-puppeteer": "7.0.0-alpha.24",
"@storybook/addon-storysource": "7.0.0-alpha.24",
"@storybook/addon-toolbars": "7.0.0-alpha.24",
"@storybook/addon-viewport": "7.0.0-alpha.24",
"@storybook/addons": "7.0.0-alpha.24",
"@storybook/cli": "7.0.0-alpha.24",
"@storybook/components": "7.0.0-alpha.24",
"@storybook/core-events": "7.0.0-alpha.24",
"@storybook/addon-a11y": "7.0.0-alpha.27",
"@storybook/addon-actions": "7.0.0-alpha.27",
"@storybook/addon-backgrounds": "7.0.0-alpha.27",
"@storybook/addon-controls": "7.0.0-alpha.27",
"@storybook/addon-docs": "7.0.0-alpha.27",
"@storybook/addon-highlight": "7.0.0-alpha.27",
"@storybook/addon-interactions": "7.0.0-alpha.27",
"@storybook/addon-jest": "7.0.0-alpha.27",
"@storybook/addon-links": "7.0.0-alpha.27",
"@storybook/addon-storyshots": "7.0.0-alpha.27",
"@storybook/addon-storyshots-puppeteer": "7.0.0-alpha.27",
"@storybook/addon-storysource": "7.0.0-alpha.27",
"@storybook/addon-toolbars": "7.0.0-alpha.27",
"@storybook/addon-viewport": "7.0.0-alpha.27",
"@storybook/addons": "7.0.0-alpha.27",
"@storybook/cli": "7.0.0-alpha.27",
"@storybook/components": "7.0.0-alpha.27",
"@storybook/core-events": "7.0.0-alpha.27",
"@storybook/design-system": "^5.4.7",
"@storybook/jest": "^0.0.10",
"@storybook/node-logger": "7.0.0-alpha.24",
"@storybook/react": "7.0.0-alpha.24",
"@storybook/react-webpack5": "7.0.0-alpha.24",
"@storybook/router": "7.0.0-alpha.24",
"@storybook/source-loader": "7.0.0-alpha.24",
"@storybook/node-logger": "7.0.0-alpha.27",
"@storybook/react": "7.0.0-alpha.27",
"@storybook/react-webpack5": "7.0.0-alpha.27",
"@storybook/router": "7.0.0-alpha.27",
"@storybook/source-loader": "7.0.0-alpha.27",
"@storybook/testing-library": "0.0.14-next.0",
"@storybook/theming": "7.0.0-alpha.24",
"@storybook/theming": "7.0.0-alpha.27",
"@testing-library/dom": "^7.31.2",
"@testing-library/user-event": "^13.1.9",
"chromatic": "^6.0.2",
@ -55,7 +55,7 @@
"prop-types": "^15.7.2",
"react": "16.14.0",
"react-dom": "16.14.0",
"storybook": "7.0.0-alpha.24",
"storybook": "7.0.0-alpha.27",
"terser-webpack-plugin": "^5.3.1",
"uuid-browser": "^3.1.0",
"webpack": "5"

View File

@ -1,6 +1,6 @@
{
"name": "preact-example",
"version": "7.0.0-alpha.24",
"version": "7.0.0-alpha.27",
"private": true,
"scripts": {
"build": "cross-env NODE_ENV=production webpack --progress --hide-modules",
@ -14,18 +14,18 @@
},
"devDependencies": {
"@babel/core": "^7.12.10",
"@storybook/addon-a11y": "7.0.0-alpha.24",
"@storybook/addon-actions": "7.0.0-alpha.24",
"@storybook/addon-backgrounds": "7.0.0-alpha.24",
"@storybook/addon-highlight": "7.0.0-alpha.24",
"@storybook/addon-links": "7.0.0-alpha.24",
"@storybook/addon-storyshots": "7.0.0-alpha.24",
"@storybook/addon-storysource": "7.0.0-alpha.24",
"@storybook/addon-viewport": "7.0.0-alpha.24",
"@storybook/addons": "7.0.0-alpha.24",
"@storybook/preact": "7.0.0-alpha.24",
"@storybook/preact-webpack5": "7.0.0-alpha.24",
"@storybook/source-loader": "7.0.0-alpha.24",
"@storybook/addon-a11y": "7.0.0-alpha.27",
"@storybook/addon-actions": "7.0.0-alpha.27",
"@storybook/addon-backgrounds": "7.0.0-alpha.27",
"@storybook/addon-highlight": "7.0.0-alpha.27",
"@storybook/addon-links": "7.0.0-alpha.27",
"@storybook/addon-storyshots": "7.0.0-alpha.27",
"@storybook/addon-storysource": "7.0.0-alpha.27",
"@storybook/addon-viewport": "7.0.0-alpha.27",
"@storybook/addons": "7.0.0-alpha.27",
"@storybook/preact": "7.0.0-alpha.27",
"@storybook/preact-webpack5": "7.0.0-alpha.27",
"@storybook/source-loader": "7.0.0-alpha.27",
"@types/prop-types": "^15.7.3",
"@types/react": "^17",
"@types/react-dom": "^17",
@ -38,7 +38,7 @@
"raw-loader": "^4.0.2",
"react": "^17.0.2",
"react-dom": "^17.0.2",
"storybook": "7.0.0-alpha.24",
"storybook": "7.0.0-alpha.27",
"svg-url-loader": "^7.1.1",
"webpack": "5",
"webpack-dev-server": "^4.8.1"

View File

@ -1,6 +1,6 @@
{
"name": "@storybook/example-react-ts",
"version": "7.0.0-alpha.24",
"version": "7.0.0-alpha.27",
"private": true,
"scripts": {
"build-storybook": "cross-env STORYBOOK_DISPLAY_WARNING=true DISPLAY_WARNING=true storybook build",
@ -17,15 +17,15 @@
"@babel/preset-env": "^7.12.11",
"@babel/preset-react": "^7.12.10",
"@babel/preset-typescript": "^7.12.7",
"@storybook/addon-essentials": "7.0.0-alpha.24",
"@storybook/addon-storyshots": "7.0.0-alpha.24",
"@storybook/addon-storysource": "7.0.0-alpha.24",
"@storybook/addons": "7.0.0-alpha.24",
"@storybook/cli": "7.0.0-alpha.24",
"@storybook/components": "7.0.0-alpha.24",
"@storybook/react": "7.0.0-alpha.24",
"@storybook/react-webpack5": "7.0.0-alpha.24",
"@storybook/theming": "7.0.0-alpha.24",
"@storybook/addon-essentials": "7.0.0-alpha.27",
"@storybook/addon-storyshots": "7.0.0-alpha.27",
"@storybook/addon-storysource": "7.0.0-alpha.27",
"@storybook/addons": "7.0.0-alpha.27",
"@storybook/cli": "7.0.0-alpha.27",
"@storybook/components": "7.0.0-alpha.27",
"@storybook/react": "7.0.0-alpha.27",
"@storybook/react-webpack5": "7.0.0-alpha.27",
"@storybook/theming": "7.0.0-alpha.27",
"@testing-library/dom": "^7.31.2",
"@testing-library/react": "12.1.2",
"@testing-library/user-event": "^13.1.9",
@ -34,7 +34,7 @@
"@types/react-dom": "^16.9.14",
"cross-env": "^7.0.3",
"lodash": "^4.17.21",
"storybook": "7.0.0-alpha.24",
"storybook": "7.0.0-alpha.27",
"typescript": "~4.6.3",
"webpack": "5"
}

View File

@ -1,6 +1,6 @@
{
"name": "server-kitchen-sink",
"version": "7.0.0-alpha.24",
"version": "7.0.0-alpha.27",
"private": true,
"description": "",
"keywords": [],
@ -14,15 +14,15 @@
"storybook": "SERVER_PORT=1137 storybook dev -p 9006 --quiet"
},
"devDependencies": {
"@storybook/addon-a11y": "7.0.0-alpha.24",
"@storybook/addon-actions": "7.0.0-alpha.24",
"@storybook/addon-backgrounds": "7.0.0-alpha.24",
"@storybook/addon-controls": "7.0.0-alpha.24",
"@storybook/addon-highlight": "7.0.0-alpha.24",
"@storybook/addon-links": "7.0.0-alpha.24",
"@storybook/node-logger": "7.0.0-alpha.24",
"@storybook/server": "7.0.0-alpha.24",
"@storybook/server-webpack5": "7.0.0-alpha.24",
"@storybook/addon-a11y": "7.0.0-alpha.27",
"@storybook/addon-actions": "7.0.0-alpha.27",
"@storybook/addon-backgrounds": "7.0.0-alpha.27",
"@storybook/addon-controls": "7.0.0-alpha.27",
"@storybook/addon-highlight": "7.0.0-alpha.27",
"@storybook/addon-links": "7.0.0-alpha.27",
"@storybook/node-logger": "7.0.0-alpha.27",
"@storybook/server": "7.0.0-alpha.27",
"@storybook/server-webpack5": "7.0.0-alpha.27",
"concurrently": "^5.3.0",
"cors": "^2.8.5",
"express": "~4.17.1",
@ -30,6 +30,6 @@
"nodemon": "^2.0.7",
"pug": "^3.0.0",
"safe-identifier": "^0.4.1",
"storybook": "7.0.0-alpha.24"
"storybook": "7.0.0-alpha.27"
}
}

View File

@ -1,20 +1,20 @@
{
"name": "standalone-preview",
"version": "7.0.0-alpha.24",
"version": "7.0.0-alpha.27",
"private": true,
"scripts": {
"storybook": "cross-env STORYBOOK_DISPLAY_WARNING=true DISPLAY_WARNING=true storybook dev -p 9011 -c ../official-storybook --no-manager-cache --preview-url=http://localhost:1337/external-iframe.html",
"storybook-preview": "cross-env PREVIEW_URL=external-iframe.html parcel ./storybook.html --port 1337"
},
"devDependencies": {
"@storybook/addon-docs": "7.0.0-alpha.24",
"@storybook/cli": "7.0.0-alpha.24",
"@storybook/react": "7.0.0-alpha.24",
"@storybook/react-webpack5": "7.0.0-alpha.24",
"@storybook/addon-docs": "7.0.0-alpha.27",
"@storybook/cli": "7.0.0-alpha.27",
"@storybook/react": "7.0.0-alpha.27",
"@storybook/react-webpack5": "7.0.0-alpha.27",
"cross-env": "^7.0.3",
"parcel": "2.0.1",
"react": "16.14.0",
"react-dom": "16.14.0",
"storybook": "7.0.0-alpha.24"
"storybook": "7.0.0-alpha.27"
}
}

View File

@ -1,6 +1,6 @@
{
"name": "svelte-example",
"version": "7.0.0-alpha.24",
"version": "7.0.0-alpha.27",
"private": true,
"scripts": {
"build-storybook": "storybook build",
@ -10,24 +10,24 @@
"global": "^4.4.0"
},
"devDependencies": {
"@storybook/addon-a11y": "7.0.0-alpha.24",
"@storybook/addon-actions": "7.0.0-alpha.24",
"@storybook/addon-backgrounds": "7.0.0-alpha.24",
"@storybook/addon-controls": "7.0.0-alpha.24",
"@storybook/addon-docs": "7.0.0-alpha.24",
"@storybook/addon-highlight": "7.0.0-alpha.24",
"@storybook/addon-interactions": "7.0.0-alpha.24",
"@storybook/addon-links": "7.0.0-alpha.24",
"@storybook/addon-storyshots": "7.0.0-alpha.24",
"@storybook/addon-storysource": "7.0.0-alpha.24",
"@storybook/addon-viewport": "7.0.0-alpha.24",
"@storybook/addons": "7.0.0-alpha.24",
"@storybook/addon-a11y": "7.0.0-alpha.27",
"@storybook/addon-actions": "7.0.0-alpha.27",
"@storybook/addon-backgrounds": "7.0.0-alpha.27",
"@storybook/addon-controls": "7.0.0-alpha.27",
"@storybook/addon-docs": "7.0.0-alpha.27",
"@storybook/addon-highlight": "7.0.0-alpha.27",
"@storybook/addon-interactions": "7.0.0-alpha.27",
"@storybook/addon-links": "7.0.0-alpha.27",
"@storybook/addon-storyshots": "7.0.0-alpha.27",
"@storybook/addon-storysource": "7.0.0-alpha.27",
"@storybook/addon-viewport": "7.0.0-alpha.27",
"@storybook/addons": "7.0.0-alpha.27",
"@storybook/jest": "^0.0.10",
"@storybook/source-loader": "7.0.0-alpha.24",
"@storybook/svelte": "7.0.0-alpha.24",
"@storybook/svelte-webpack5": "7.0.0-alpha.24",
"@storybook/source-loader": "7.0.0-alpha.27",
"@storybook/svelte": "7.0.0-alpha.27",
"@storybook/svelte-webpack5": "7.0.0-alpha.27",
"@storybook/testing-library": "0.0.14-next.0",
"storybook": "7.0.0-alpha.24",
"storybook": "7.0.0-alpha.27",
"svelte-jester": "^2.3.2",
"svelte-preprocess": "^4.10.6"
},

View File

@ -1,6 +1,6 @@
{
"name": "vue-3-cli-example",
"version": "7.0.0-alpha.24",
"version": "7.0.0-alpha.27",
"private": true,
"scripts": {
"build": "vue-cli-service build",
@ -14,21 +14,21 @@
},
"devDependencies": {
"@babel/core": "^7.12.10",
"@storybook/addon-actions": "7.0.0-alpha.24",
"@storybook/addon-essentials": "7.0.0-alpha.24",
"@storybook/addon-interactions": "7.0.0-alpha.24",
"@storybook/addon-links": "7.0.0-alpha.24",
"@storybook/addon-storyshots": "7.0.0-alpha.24",
"@storybook/addon-actions": "7.0.0-alpha.27",
"@storybook/addon-essentials": "7.0.0-alpha.27",
"@storybook/addon-interactions": "7.0.0-alpha.27",
"@storybook/addon-links": "7.0.0-alpha.27",
"@storybook/addon-storyshots": "7.0.0-alpha.27",
"@storybook/jest": "^0.0.10",
"@storybook/testing-library": "0.0.14-next.0",
"@storybook/vue3": "7.0.0-alpha.24",
"@storybook/vue3-webpack5": "7.0.0-alpha.24",
"@storybook/vue3": "7.0.0-alpha.27",
"@storybook/vue3-webpack5": "7.0.0-alpha.27",
"@vue/cli-plugin-babel": "^5.0.4",
"@vue/cli-plugin-typescript": "^5.0.4",
"@vue/cli-service": "^5.0.4",
"@vue/compiler-sfc": "^3.2.36",
"babel-loader": "^8.2.5",
"storybook": "7.0.0-alpha.24",
"storybook": "7.0.0-alpha.27",
"typescript": "~4.6.3",
"vue-jest": "^5.0.0-alpha.8",
"vue-loader": "^16.0.0"

View File

@ -1,6 +1,6 @@
{
"name": "vue-cli-example",
"version": "7.0.0-alpha.24",
"version": "7.0.0-alpha.27",
"private": true,
"scripts": {
"build": "vue-cli-service build",
@ -15,16 +15,16 @@
"vue-property-decorator": "^9.1.2"
},
"devDependencies": {
"@storybook/addon-controls": "7.0.0-alpha.24",
"@storybook/addon-essentials": "7.0.0-alpha.24",
"@storybook/addon-controls": "7.0.0-alpha.27",
"@storybook/addon-essentials": "7.0.0-alpha.27",
"@storybook/preset-scss": "^1.0.3",
"@storybook/source-loader": "7.0.0-alpha.24",
"@storybook/vue": "7.0.0-alpha.24",
"@storybook/vue-webpack5": "7.0.0-alpha.24",
"@storybook/source-loader": "7.0.0-alpha.27",
"@storybook/vue": "7.0.0-alpha.27",
"@storybook/vue-webpack5": "7.0.0-alpha.27",
"@vue/cli-plugin-babel": "^5.0.4",
"@vue/cli-plugin-typescript": "^5.0.4",
"@vue/cli-service": "^5.0.4",
"storybook": "7.0.0-alpha.24",
"storybook": "7.0.0-alpha.27",
"typescript": "~4.6.3",
"vue-template-compiler": "^2.6.14"
}

View File

@ -1,6 +1,6 @@
{
"name": "vue-example",
"version": "7.0.0-alpha.24",
"version": "7.0.0-alpha.27",
"private": true,
"scripts": {
"build": "cross-env NODE_ENV=production webpack --progress --hide-modules",
@ -14,29 +14,29 @@
},
"devDependencies": {
"@babel/core": "^7.12.10",
"@storybook/addon-a11y": "7.0.0-alpha.24",
"@storybook/addon-actions": "7.0.0-alpha.24",
"@storybook/addon-backgrounds": "7.0.0-alpha.24",
"@storybook/addon-controls": "7.0.0-alpha.24",
"@storybook/addon-docs": "7.0.0-alpha.24",
"@storybook/addon-highlight": "7.0.0-alpha.24",
"@storybook/addon-interactions": "7.0.0-alpha.24",
"@storybook/addon-links": "7.0.0-alpha.24",
"@storybook/addon-storyshots": "7.0.0-alpha.24",
"@storybook/addon-storysource": "7.0.0-alpha.24",
"@storybook/addon-viewport": "7.0.0-alpha.24",
"@storybook/addons": "7.0.0-alpha.24",
"@storybook/addon-a11y": "7.0.0-alpha.27",
"@storybook/addon-actions": "7.0.0-alpha.27",
"@storybook/addon-backgrounds": "7.0.0-alpha.27",
"@storybook/addon-controls": "7.0.0-alpha.27",
"@storybook/addon-docs": "7.0.0-alpha.27",
"@storybook/addon-highlight": "7.0.0-alpha.27",
"@storybook/addon-interactions": "7.0.0-alpha.27",
"@storybook/addon-links": "7.0.0-alpha.27",
"@storybook/addon-storyshots": "7.0.0-alpha.27",
"@storybook/addon-storysource": "7.0.0-alpha.27",
"@storybook/addon-viewport": "7.0.0-alpha.27",
"@storybook/addons": "7.0.0-alpha.27",
"@storybook/jest": "^0.0.10",
"@storybook/source-loader": "7.0.0-alpha.24",
"@storybook/source-loader": "7.0.0-alpha.27",
"@storybook/testing-library": "0.0.14-next.0",
"@storybook/vue": "7.0.0-alpha.24",
"@storybook/vue-webpack5": "7.0.0-alpha.24",
"@storybook/vue": "7.0.0-alpha.27",
"@storybook/vue-webpack5": "7.0.0-alpha.27",
"@vue/babel-preset-jsx": "^1.2.4",
"babel-loader": "^8.2.5",
"cross-env": "^7.0.3",
"file-loader": "^6.2.0",
"prop-types": "^15.7.2",
"storybook": "7.0.0-alpha.24",
"storybook": "7.0.0-alpha.27",
"svg-url-loader": "^7.1.1",
"vue-loader": "^15.9.6",
"vue-style-loader": "^4.1.3",

View File

@ -1,6 +1,6 @@
{
"name": "web-components-kitchen-sink",
"version": "7.0.0-alpha.24",
"version": "7.0.0-alpha.27",
"private": true,
"description": "",
"keywords": [],

View File

@ -1,6 +1,6 @@
{
"name": "@storybook/angular",
"version": "7.0.0-alpha.24",
"version": "7.0.0-alpha.27",
"description": "Storybook for Angular: Develop Angular components in isolation with hot reloading.",
"keywords": [
"storybook",
@ -34,19 +34,19 @@
"prepare": "node ../../../scripts/prepare.js"
},
"dependencies": {
"@storybook/addons": "7.0.0-alpha.24",
"@storybook/api": "7.0.0-alpha.24",
"@storybook/builder-webpack5": "7.0.0-alpha.24",
"@storybook/client-logger": "7.0.0-alpha.24",
"@storybook/core-client": "7.0.0-alpha.24",
"@storybook/core-common": "7.0.0-alpha.24",
"@storybook/core-events": "7.0.0-alpha.24",
"@storybook/core-server": "7.0.0-alpha.24",
"@storybook/addons": "7.0.0-alpha.27",
"@storybook/api": "7.0.0-alpha.27",
"@storybook/builder-webpack5": "7.0.0-alpha.27",
"@storybook/client-logger": "7.0.0-alpha.27",
"@storybook/core-client": "7.0.0-alpha.27",
"@storybook/core-common": "7.0.0-alpha.27",
"@storybook/core-events": "7.0.0-alpha.27",
"@storybook/core-server": "7.0.0-alpha.27",
"@storybook/csf": "0.0.2--canary.0899bb7.0",
"@storybook/docs-tools": "7.0.0-alpha.24",
"@storybook/node-logger": "7.0.0-alpha.24",
"@storybook/docs-tools": "7.0.0-alpha.27",
"@storybook/node-logger": "7.0.0-alpha.27",
"@storybook/semver": "^7.3.2",
"@storybook/store": "7.0.0-alpha.24",
"@storybook/store": "7.0.0-alpha.27",
"@types/node": "^14.14.20 || ^16.0.0",
"@types/react": "^16.14.23",
"@types/react-dom": "^16.9.14",
@ -128,5 +128,5 @@
"access": "public"
},
"builders": "dist/types/builders/builders.json",
"gitHead": "e3232cb426b8381afa48f42e6baa45fd9af9bc3a"
"gitHead": "3e33f0709dd97151b7dfd86fd9858d13fd1c5738"
}

View File

@ -1,6 +1,6 @@
{
"name": "@storybook/ember",
"version": "7.0.0-alpha.24",
"version": "7.0.0-alpha.27",
"description": "Storybook for Ember: Develop Ember Component in isolation with Hot Reloading.",
"homepage": "https://github.com/storybookjs/storybook/tree/main/frameworks/ember",
"bugs": {
@ -30,11 +30,11 @@
"prepare": "node ../../../scripts/prepare.js"
},
"dependencies": {
"@storybook/builder-webpack5": "7.0.0-alpha.24",
"@storybook/core-client": "7.0.0-alpha.24",
"@storybook/core-common": "7.0.0-alpha.24",
"@storybook/docs-tools": "7.0.0-alpha.24",
"@storybook/store": "7.0.0-alpha.24",
"@storybook/builder-webpack5": "7.0.0-alpha.27",
"@storybook/core-client": "7.0.0-alpha.27",
"@storybook/core-common": "7.0.0-alpha.27",
"@storybook/docs-tools": "7.0.0-alpha.27",
"@storybook/store": "7.0.0-alpha.27",
"core-js": "^3.8.2",
"global": "^4.4.0",
"react": "16.14.0",
@ -58,5 +58,5 @@
"publishConfig": {
"access": "public"
},
"gitHead": "e3232cb426b8381afa48f42e6baa45fd9af9bc3a"
"gitHead": "3e33f0709dd97151b7dfd86fd9858d13fd1c5738"
}

View File

@ -1,6 +1,6 @@
{
"name": "@storybook/html-webpack5",
"version": "7.0.0-alpha.24",
"version": "7.0.0-alpha.27",
"description": "Storybook for HTML: View HTML snippets in isolation with Hot Reloading.",
"keywords": [
"storybook"
@ -50,10 +50,10 @@
"prepare": "../../../scripts/prepare/bundle.ts"
},
"dependencies": {
"@storybook/builder-webpack5": "7.0.0-alpha.24",
"@storybook/core-common": "7.0.0-alpha.24",
"@storybook/html": "7.0.0-alpha.24",
"@storybook/preset-html-webpack": "7.0.0-alpha.24",
"@storybook/builder-webpack5": "7.0.0-alpha.27",
"@storybook/core-common": "7.0.0-alpha.27",
"@storybook/html": "7.0.0-alpha.27",
"@storybook/preset-html-webpack": "7.0.0-alpha.27",
"@types/node": "^14.14.20 || ^16.0.0",
"core-js": "^3.8.2",
"global": "^4.4.0",
@ -79,5 +79,5 @@
],
"platform": "node"
},
"gitHead": "e3232cb426b8381afa48f42e6baa45fd9af9bc3a"
"gitHead": "3e33f0709dd97151b7dfd86fd9858d13fd1c5738"
}

View File

@ -1,6 +1,6 @@
{
"name": "@storybook/preact-webpack5",
"version": "7.0.0-alpha.24",
"version": "7.0.0-alpha.27",
"description": "Storybook for Preact: Develop Preact Component in isolation.",
"keywords": [
"storybook"
@ -50,10 +50,10 @@
"prepare": "../../../scripts/prepare/bundle.ts"
},
"dependencies": {
"@storybook/builder-webpack5": "7.0.0-alpha.24",
"@storybook/core-common": "7.0.0-alpha.24",
"@storybook/preact": "7.0.0-alpha.24",
"@storybook/preset-preact-webpack": "7.0.0-alpha.24",
"@storybook/builder-webpack5": "7.0.0-alpha.27",
"@storybook/core-common": "7.0.0-alpha.27",
"@storybook/preact": "7.0.0-alpha.27",
"@storybook/preset-preact-webpack": "7.0.0-alpha.27",
"@types/node": "^14.14.20 || ^16.0.0",
"core-js": "^3.8.2",
"react": "16.14.0",
@ -80,5 +80,5 @@
],
"platform": "node"
},
"gitHead": "e3232cb426b8381afa48f42e6baa45fd9af9bc3a"
"gitHead": "3e33f0709dd97151b7dfd86fd9858d13fd1c5738"
}

View File

@ -0,0 +1 @@
# Storybook for React

View File

@ -0,0 +1,85 @@
{
"name": "@storybook/react-vite",
"version": "7.0.0-alpha.27",
"description": "Storybook for React and Vite: Develop React components in isolation with Hot Reloading.",
"keywords": [
"storybook"
],
"homepage": "https://github.com/storybookjs/storybook/tree/main/frameworks/react-vite",
"bugs": {
"url": "https://github.com/storybookjs/storybook/issues"
},
"repository": {
"type": "git",
"url": "https://github.com/storybookjs/storybook.git",
"directory": "frameworks/react-vite"
},
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/storybook"
},
"license": "MIT",
"exports": {
".": {
"require": "./dist/index.js",
"import": "./dist/index.mjs",
"types": "./dist/index.d.ts"
},
"./preset": {
"require": "./dist/preset.js",
"import": "./dist/preset.mjs",
"types": "./dist/preset.d.ts"
},
"./package.json": {
"require": "./package.json",
"import": "./package.json",
"types": "./package.json"
}
},
"main": "dist/index.js",
"module": "dist/index.mjs",
"types": "dist/index.d.ts",
"files": [
"dist/**/*",
"types/**/*",
"README.md",
"*.js",
"*.d.ts"
],
"scripts": {
"check": "tsc --noEmit",
"prepare": "../../../scripts/prepare/bundle.ts"
},
"dependencies": {
"@joshwooding/vite-plugin-react-docgen-typescript": "^0.0.5",
"@rollup/pluginutils": "^4.2.0",
"@storybook/builder-vite": "7.0.0-alpha.27",
"@storybook/react": "7.0.0-alpha.27",
"@vitejs/plugin-react": "^2.0.1",
"ast-types": "^0.14.2",
"magic-string": "^0.26.1",
"react-docgen": "^6.0.0-alpha.3"
},
"devDependencies": {
"@types/node": "^14.14.20 || ^16.0.0",
"typescript": "~4.6.3"
},
"peerDependencies": {
"react": "^16.8.0 || ^17.0.0 || ^18.0.0",
"react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0"
},
"engines": {
"node": "^14.18 || >=16"
},
"publishConfig": {
"access": "public"
},
"bundler": {
"entries": [
"./src/index.ts",
"./src/preset.ts"
],
"platform": "node"
},
"gitHead": "3e33f0709dd97151b7dfd86fd9858d13fd1c5738"
}

1
code/frameworks/react-vite/preset.js vendored Normal file
View File

@ -0,0 +1 @@
module.exports = require('./dist/preset');

View File

@ -0,0 +1,2 @@
export * from '@storybook/react';
export type { StorybookConfig } from '@storybook/builder-vite';

View File

@ -0,0 +1,48 @@
/**
* This is heavily based on the react-docgen `displayNameHandler`
* (https://github.com/reactjs/react-docgen/blob/26c90c0dd105bf83499a83826f2a6ff7a724620d/src/handlers/displayNameHandler.ts)
* but instead defines an `actualName` property on the generated docs that is taken first from the component's actual name.
* This addresses an issue where the name that the generated docs are stored under is incorrectly named with the `displayName`
* and not the component's actual name.
*
* This is inspired by `actualNameHandler` from https://github.com/storybookjs/babel-plugin-react-docgen, but is modified
* directly from displayNameHandler, using the same approach as babel-plugin-react-docgen.
*/
import { namedTypes as t } from 'ast-types';
import type { NodePath } from 'ast-types/lib/node-path';
import { getNameOrValue, isReactForwardRefCall } from 'react-docgen/dist/utils';
import type { Importer } from 'react-docgen/dist/parse';
import type Documentation from 'react-docgen/dist/Documentation';
export default function actualNameHandler(
documentation: Documentation,
path: NodePath,
importer: Importer
): void {
if (t.ClassDeclaration.check(path.node) || t.FunctionDeclaration.check(path.node)) {
documentation.set('actualName', getNameOrValue(path.get('id')));
} else if (
t.ArrowFunctionExpression.check(path.node) ||
t.FunctionExpression.check(path.node) ||
isReactForwardRefCall(path, importer)
) {
let currentPath = path;
while (currentPath.parent) {
if (t.VariableDeclarator.check(currentPath.parent.node)) {
documentation.set('actualName', getNameOrValue(currentPath.parent.get('id')));
return;
}
if (t.AssignmentExpression.check(currentPath.parent.node)) {
const leftPath = currentPath.parent.get('left');
if (t.Identifier.check(leftPath.node) || t.Literal.check(leftPath.node)) {
documentation.set('actualName', getNameOrValue(leftPath));
return;
}
}
currentPath = currentPath.parent;
}
// Could not find an actual name
documentation.set('actualName', '');
}
}

View File

@ -0,0 +1,69 @@
import path from 'path';
import { createFilter } from '@rollup/pluginutils';
import {
parse,
handlers as docgenHandlers,
resolver as docgenResolver,
importers as docgenImporters,
} from 'react-docgen';
import type { DocumentationObject } from 'react-docgen/lib/Documentation';
import MagicString from 'magic-string';
import type { Plugin } from 'vite';
import actualNameHandler from './docgen-handlers/actualNameHandler';
type DocObj = DocumentationObject & { actualName: string };
// TODO: None of these are able to be overridden, so `default` is aspirational here.
const defaultHandlers = Object.values(docgenHandlers).map((handler) => handler);
const defaultResolver = docgenResolver.findAllExportedComponentDefinitions;
const defaultImporter = docgenImporters.makeFsImporter();
const handlers = [...defaultHandlers, actualNameHandler];
type Options = {
include?: string | RegExp | (string | RegExp)[];
exclude?: string | RegExp | (string | RegExp)[];
};
export function reactDocgen({
include = /\.(mjs|tsx?|jsx?)$/,
exclude = [/node_modules\/.*/],
}: Options = {}): Plugin {
const cwd = process.cwd();
const filter = createFilter(include, exclude);
return {
name: 'react-docgen',
enforce: 'pre',
async transform(src: string, id: string) {
const relPath = path.relative(cwd, id);
if (!filter(relPath)) return;
try {
// Since we're using `findAllExportedComponentDefinitions`, this will always be an array.
const docgenResults = parse(src, defaultResolver, handlers, {
importer: defaultImporter,
filename: id,
}) as DocObj[];
const s = new MagicString(src);
docgenResults.forEach((info) => {
const { actualName, ...docgenInfo } = info;
if (actualName) {
const docNode = JSON.stringify(docgenInfo);
s.append(`;${actualName}.__docgenInfo=${docNode}`);
}
});
// eslint-disable-next-line consistent-return
return {
code: s.toString(),
map: s.generateMap(),
};
} catch (e) {
// Usually this is just an error from react-docgen that it couldn't find a component
// Only uncomment for troubleshooting
// console.error(e);
}
},
};
}

View File

@ -0,0 +1,50 @@
/* eslint-disable global-require */
import path from 'path';
import fs from 'fs';
import type { StorybookConfig, TypescriptOptions } from '@storybook/builder-vite';
export const addons: StorybookConfig['addons'] = ['@storybook/react'];
export const core: StorybookConfig['core'] = {
builder: '@storybook/builder-vite',
};
export function readPackageJson(): Record<string, any> | false {
const packageJsonPath = path.resolve('package.json');
if (!fs.existsSync(packageJsonPath)) {
return false;
}
const jsonContent = fs.readFileSync(packageJsonPath, 'utf8');
return JSON.parse(jsonContent);
}
export const viteFinal: StorybookConfig['viteFinal'] = async (config, { presets }) => {
const { plugins = [] } = config;
const { reactDocgen, reactDocgenTypescriptOptions } = await presets.apply<any>(
'typescript',
{} as TypescriptOptions
);
let typescriptPresent;
try {
const pkgJson = readPackageJson();
typescriptPresent =
pkgJson && (pkgJson.devDependencies?.typescript || pkgJson.dependencies?.typescript);
} catch (e) {
typescriptPresent = false;
}
if (reactDocgen === 'react-docgen-typescript' && typescriptPresent) {
plugins.push(
require('@joshwooding/vite-plugin-react-docgen-typescript')(reactDocgenTypescriptOptions)
);
} else if (reactDocgen) {
const { reactDocgen } = await import('./plugins/react-docgen');
// Needs to run before the react plugin, so add to the front
plugins.unshift(reactDocgen());
}
return config;
};

View File

@ -0,0 +1,43 @@
// TODO: Replace, as soon as @types/react-dom 17.0.14 is used
// Source: https://github.com/DefinitelyTyped/DefinitelyTyped/blob/fb0f14b7a35cde26ffaa82e7536c062e593e9ae6/types/react-dom/client.d.ts
declare module 'react-dom/client' {
import React = require('react');
export interface HydrationOptions {
onHydrated?(suspenseInstance: Comment): void;
onDeleted?(suspenseInstance: Comment): void;
/**
* Prefix for `useId`.
*/
identifierPrefix?: string;
onRecoverableError?: (error: unknown) => void;
}
export interface RootOptions {
/**
* Prefix for `useId`.
*/
identifierPrefix?: string;
onRecoverableError?: (error: unknown) => void;
}
export interface Root {
render(children: React.ReactChild | Iterable<React.ReactNode>): void;
unmount(): void;
}
/**
* Replaces `ReactDOM.render` when the `.render` method is called and enables Concurrent Mode.
*
* @see https://reactjs.org/docs/concurrent-mode-reference.html#createroot
*/
export function createRoot(
container: Element | Document | DocumentFragment | Comment,
options?: RootOptions
): Root;
export function hydrateRoot(
container: Element | Document | DocumentFragment | Comment,
initialChildren: React.ReactChild | Iterable<React.ReactNode>,
options?: HydrationOptions
): Root;
}

View File

@ -0,0 +1,10 @@
{
"extends": "../../tsconfig.json",
"compilerOptions": {
"rootDir": "./src",
"types": ["node"],
"resolveJsonModule": true
},
"include": ["src/**/*"],
"exclude": ["src/**/*.test.*", "src/**/__testfixtures__/**"]
}

View File

@ -1,6 +1,6 @@
{
"name": "@storybook/react-webpack5",
"version": "7.0.0-alpha.24",
"version": "7.0.0-alpha.27",
"description": "Storybook for React: Develop React Component in isolation with Hot Reloading.",
"keywords": [
"storybook"
@ -51,9 +51,9 @@
"prepare": "../../../scripts/prepare/bundle.ts"
},
"dependencies": {
"@storybook/builder-webpack5": "7.0.0-alpha.24",
"@storybook/preset-react-webpack": "7.0.0-alpha.24",
"@storybook/react": "7.0.0-alpha.24",
"@storybook/builder-webpack5": "7.0.0-alpha.27",
"@storybook/preset-react-webpack": "7.0.0-alpha.27",
"@storybook/react": "7.0.0-alpha.27",
"@types/node": "^14.14.20 || ^16.0.0",
"core-js": "^3.8.2"
},
@ -87,5 +87,5 @@
],
"platform": "node"
},
"gitHead": "e3232cb426b8381afa48f42e6baa45fd9af9bc3a"
"gitHead": "3e33f0709dd97151b7dfd86fd9858d13fd1c5738"
}

View File

@ -1,6 +1,6 @@
{
"name": "@storybook/server-webpack5",
"version": "7.0.0-alpha.24",
"version": "7.0.0-alpha.27",
"description": "Storybook for Server: View HTML snippets from a server in isolation with Hot Reloading.",
"keywords": [
"storybook"
@ -50,10 +50,10 @@
"prepare": "../../../scripts/prepare/bundle.ts"
},
"dependencies": {
"@storybook/builder-webpack5": "7.0.0-alpha.24",
"@storybook/core-common": "7.0.0-alpha.24",
"@storybook/preset-server-webpack": "7.0.0-alpha.24",
"@storybook/server": "7.0.0-alpha.24",
"@storybook/builder-webpack5": "7.0.0-alpha.27",
"@storybook/core-common": "7.0.0-alpha.27",
"@storybook/preset-server-webpack": "7.0.0-alpha.27",
"@storybook/server": "7.0.0-alpha.27",
"@types/node": "^14.14.20 || ^16.0.0",
"core-js": "^3.8.2",
"react": "16.14.0",
@ -75,5 +75,5 @@
],
"platform": "node"
},
"gitHead": "e3232cb426b8381afa48f42e6baa45fd9af9bc3a"
"gitHead": "3e33f0709dd97151b7dfd86fd9858d13fd1c5738"
}

View File

@ -0,0 +1 @@
# Storybook for Svelte

View File

@ -0,0 +1,82 @@
{
"name": "@storybook/svelte-vite",
"version": "7.0.0-alpha.27",
"description": "Storybook for Svelte and Vite: Develop Svelte components in isolation with Hot Reloading.",
"keywords": [
"storybook"
],
"homepage": "https://github.com/storybookjs/storybook/tree/main/frameworks/svelte-vite",
"bugs": {
"url": "https://github.com/storybookjs/storybook/issues"
},
"repository": {
"type": "git",
"url": "https://github.com/storybookjs/storybook.git",
"directory": "frameworks/svelte-vite"
},
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/storybook"
},
"license": "MIT",
"exports": {
".": {
"require": "./dist/index.js",
"import": "./dist/index.mjs",
"types": "./dist/index.d.ts"
},
"./preset": {
"require": "./dist/preset.js",
"import": "./dist/preset.mjs",
"types": "./dist/preset.d.ts"
},
"./package.json": {
"require": "./package.json",
"import": "./package.json",
"types": "./package.json"
}
},
"main": "dist/index.js",
"module": "dist/index.mjs",
"types": "dist/index.d.ts",
"files": [
"dist/**/*",
"types/**/*",
"README.md",
"*.js",
"*.d.ts"
],
"scripts": {
"check": "tsc --noEmit",
"prepare": "../../../scripts/prepare/bundle.ts"
},
"dependencies": {
"@storybook/addon-svelte-csf": "^2.0.0",
"@storybook/builder-vite": "7.0.0-alpha.27",
"@storybook/node-logger": "7.0.0-alpha.27",
"@storybook/svelte": "7.0.0-alpha.27",
"@sveltejs/vite-plugin-svelte": "^1.0.0",
"magic-string": "^0.26.1",
"svelte": "^3.0.0",
"sveltedoc-parser": "^4.2.1",
"vite": "3"
},
"devDependencies": {
"@types/node": "^14.14.20 || ^16.0.0",
"typescript": "~4.6.3"
},
"engines": {
"node": "^14.18 || >=16"
},
"publishConfig": {
"access": "public"
},
"bundler": {
"entries": [
"./src/index.ts",
"./src/preset.ts"
],
"platform": "node"
},
"gitHead": "3e33f0709dd97151b7dfd86fd9858d13fd1c5738"
}

View File

@ -0,0 +1 @@
module.exports = require('./dist/preset');

View File

@ -0,0 +1,2 @@
export * from '@storybook/svelte';
export type { StorybookConfig } from '@storybook/builder-vite';

View File

@ -0,0 +1,59 @@
import { getNameFromFilename } from '@storybook/addon-svelte-csf/dist/cjs/parser/svelte-stories-loader';
import { readFileSync } from 'fs';
import { extractStories } from '@storybook/addon-svelte-csf/dist/cjs/parser/extract-stories';
import type { Options } from '@sveltejs/vite-plugin-svelte';
import * as svelte from 'svelte/compiler';
import MagicString from 'magic-string';
import { createFilter } from 'vite';
const parser = require
.resolve('@storybook/addon-svelte-csf/dist/esm/parser/collect-stories')
.replace(/[/\\]/g, '/');
export default function csfPlugin(svelteOptions?: Options) {
const include = /\.stories\.svelte$/;
const filter = createFilter(include);
return {
name: 'storybook-addon-svelte-csf',
enforce: 'post',
async transform(code: string, id: string) {
if (!filter(id)) return undefined;
const s = new MagicString(code);
const component = getNameFromFilename(id);
let source = readFileSync(id).toString();
if (svelteOptions && svelteOptions.preprocess) {
source = (await svelte.preprocess(source, svelteOptions.preprocess, { filename: id })).code;
}
const all = extractStories(source);
const { stories } = all;
const storyDef = Object.entries<any>(stories)
.filter(([, def]) => !def.template)
.map(([id]) => `export const ${id} = __storiesMetaData.stories[${JSON.stringify(id)}];`)
.join('\n');
s.replace('export default', '// export default');
const namedExportsOrder = Object.entries<any>(stories)
.filter(([, def]) => !def.template)
.map(([id]) => id);
const output = [
'',
`import parser from '${parser}';`,
`const __storiesMetaData = parser(${component}, ${JSON.stringify(all)});`,
'export default __storiesMetaData.meta;',
`export const __namedExportsOrder = ${JSON.stringify(namedExportsOrder)};`,
storyDef,
].join('\n');
s.append(output);
return {
code: s.toString(),
map: s.generateMap({ hires: true, source: id }),
};
},
};
}

View File

@ -0,0 +1,102 @@
import type { Plugin } from 'vite';
import MagicString from 'magic-string';
import path from 'path';
import fs from 'fs';
import svelteDoc from 'sveltedoc-parser';
import type { SvelteParserOptions } from 'sveltedoc-parser';
import { logger } from '@storybook/node-logger';
import { preprocess } from 'svelte/compiler';
import { createFilter } from 'vite';
// Most of the code here should probably be exported by @storybook/svelte and reused here.
// See: https://github.com/storybookjs/storybook/blob/next/app/svelte/src/server/svelte-docgen-loader.ts
// From https://github.com/sveltejs/svelte/blob/8db3e8d0297e052556f0b6dde310ef6e197b8d18/src/compiler/compile/utils/get_name_from_filename.ts
// Copied because it is not exported from the compiler
function getNameFromFilename(filename: string) {
if (!filename) return null;
const parts = filename.split(/[/\\]/).map(encodeURI);
if (parts.length > 1) {
const indexMatch = parts[parts.length - 1].match(/^index(\.\w+)/);
if (indexMatch) {
parts.pop();
parts[parts.length - 1] += indexMatch[1];
}
}
const base = parts
.pop()
?.replace(/%/g, 'u')
.replace(/\.[^.]+$/, '')
.replace(/[^a-zA-Z_$0-9]+/g, '_')
.replace(/^_/, '')
.replace(/_$/, '')
.replace(/^(\d)/, '_$1');
if (!base) {
throw new Error(`Could not derive component name from file ${filename}`);
}
return base[0].toUpperCase() + base.slice(1);
}
export function svelteDocgen(svelteOptions: Record<string, any>): Plugin {
const cwd = process.cwd();
const { preprocess: preprocessOptions, logDocgen = false } = svelteOptions;
const include = /\.(svelte)$/;
const filter = createFilter(include);
return {
name: 'svelte-docgen',
async transform(src: string, id: string) {
if (!filter(id)) return undefined;
const resource = path.relative(cwd, id);
let docOptions;
if (preprocessOptions) {
const src = fs.readFileSync(resource).toString();
const { code: fileContent } = await preprocess(src, preprocessOptions, {
filename: resource,
});
docOptions = {
fileContent,
};
} else {
docOptions = { filename: resource };
}
// set SvelteDoc options
const options: SvelteParserOptions = {
...docOptions,
version: 3,
};
const s = new MagicString(src);
try {
const componentDoc = await svelteDoc.parse(options);
// get filename for source content
const file = path.basename(resource);
componentDoc.name = path.basename(file);
const componentName = getNameFromFilename(resource);
s.append(`;${componentName}.__docgen = ${JSON.stringify(componentDoc)}`);
} catch (error: any) {
if (logDocgen) {
logger.error(error);
}
}
return {
code: s.toString(),
map: s.generateMap({ hires: true, source: id }),
};
},
};
}

View File

@ -0,0 +1,93 @@
import path from 'path';
import fs from 'fs';
import type { StorybookConfig } from '@storybook/builder-vite';
export const addons: StorybookConfig['addons'] = ['@storybook/svelte'];
export const core: StorybookConfig['core'] = {
builder: '@storybook/builder-vite',
};
export function readPackageJson(): Record<string, any> | false {
const packageJsonPath = path.resolve('package.json');
if (!fs.existsSync(packageJsonPath)) {
return false;
}
const jsonContent = fs.readFileSync(packageJsonPath, 'utf8');
return JSON.parse(jsonContent);
}
export const viteFinal: StorybookConfig['viteFinal'] = async (config, { presets }) => {
const { plugins = [] } = config;
const svelteOptions = await presets.apply<Record<string, any>>('frameworkOptions');
try {
// eslint-disable-next-line global-require
const sveltePlugin = require('@sveltejs/vite-plugin-svelte').svelte;
// We need to create two separate svelte plugins, one for stories, and one for other svelte files
// because stories.svelte files cannot be hot-module-reloaded.
// Suggested in: https://github.com/sveltejs/vite-plugin-svelte/issues/321#issuecomment-1113205509
// First, create an array containing user exclude patterns, to combine with ours.
let userExclude = [];
if (Array.isArray(svelteOptions?.exclude)) {
userExclude = svelteOptions?.exclude;
} else if (svelteOptions?.exclude) {
userExclude = [svelteOptions?.exclude];
}
// These are the svelte stories we need to exclude from HMR
const storyPatterns = ['**/*.story.svelte', '**/*.stories.svelte'];
// Non-story svelte files
// Starting in 1.0.0-next.42, svelte.config.js is included by default.
// We disable that, but allow it to be overridden in svelteOptions
plugins.push(sveltePlugin({ ...svelteOptions, exclude: [...userExclude, ...storyPatterns] }));
// Svelte stories without HMR
const storySveltePlugin = sveltePlugin({
...svelteOptions,
exclude: userExclude,
include: storyPatterns,
hot: false,
});
plugins.push({
// Starting in 1.0.0-next.43, the plugin function returns an array of plugins. We only want the first one here.
...(Array.isArray(storySveltePlugin) ? storySveltePlugin[0] : storySveltePlugin),
name: 'vite-plugin-svelte-stories',
});
} catch (err) {
if ((err as NodeJS.ErrnoException).code === 'MODULE_NOT_FOUND') {
throw new Error(
'@storybook/builder-vite requires @sveltejs/vite-plugin-svelte to be installed' +
' when using @storybook/svelte.' +
' Please install it and start storybook again.'
);
}
throw err;
}
// eslint-disable-next-line global-require
const { loadSvelteConfig } = require('@sveltejs/vite-plugin-svelte');
const csfConfig = { ...loadSvelteConfig(), ...svelteOptions };
try {
// eslint-disable-next-line global-require
const csfPlugin = require('./plugins/csf-plugin').default;
plugins.push(csfPlugin(csfConfig));
} catch (err) {
// Not all projects use `.stories.svelte` for stories, and by default 6.5+ does not auto-install @storybook/addon-svelte-csf.
// If it's any other kind of error, re-throw.
if ((err as NodeJS.ErrnoException).code !== 'MODULE_NOT_FOUND') {
throw err;
}
}
const { svelteDocgen } = await import('./plugins/svelte-docgen');
plugins.push(svelteDocgen(config));
return {
...config,
plugins,
};
};

View File

@ -0,0 +1,10 @@
{
"extends": "../../tsconfig.json",
"compilerOptions": {
"rootDir": "./src",
"types": ["node"],
"resolveJsonModule": true
},
"include": ["src/**/*"],
"exclude": ["src/**/*.test.*", "src/**/__testfixtures__/**"]
}

View File

@ -1,6 +1,6 @@
{
"name": "@storybook/svelte-webpack5",
"version": "7.0.0-alpha.24",
"version": "7.0.0-alpha.27",
"description": "Storybook for Svelte: Develop Svelte Component in isolation with Hot Reloading.",
"keywords": [
"storybook"
@ -51,10 +51,10 @@
"prepare": "../../../scripts/prepare/bundle.ts"
},
"dependencies": {
"@storybook/builder-webpack5": "7.0.0-alpha.24",
"@storybook/core-common": "7.0.0-alpha.24",
"@storybook/preset-svelte-webpack": "7.0.0-alpha.24",
"@storybook/svelte": "7.0.0-alpha.24",
"@storybook/builder-webpack5": "7.0.0-alpha.27",
"@storybook/core-common": "7.0.0-alpha.27",
"@storybook/preset-svelte-webpack": "7.0.0-alpha.27",
"@storybook/svelte": "7.0.0-alpha.27",
"core-js": "^3.8.2",
"react": "16.14.0",
"react-dom": "16.14.0"
@ -82,5 +82,5 @@
],
"platform": "node"
},
"gitHead": "e3232cb426b8381afa48f42e6baa45fd9af9bc3a"
"gitHead": "3e33f0709dd97151b7dfd86fd9858d13fd1c5738"
}

View File

@ -1,6 +1,6 @@
{
"name": "@storybook/vue-webpack5",
"version": "7.0.0-alpha.24",
"version": "7.0.0-alpha.27",
"description": "Storybook for Vue: Develop Vue Component in isolation with Hot Reloading.",
"keywords": [
"storybook"
@ -50,10 +50,10 @@
"prepare": "../../../scripts/prepare/bundle.ts"
},
"dependencies": {
"@storybook/builder-webpack5": "7.0.0-alpha.24",
"@storybook/core-common": "7.0.0-alpha.24",
"@storybook/preset-vue-webpack": "7.0.0-alpha.24",
"@storybook/vue": "7.0.0-alpha.24",
"@storybook/builder-webpack5": "7.0.0-alpha.27",
"@storybook/core-common": "7.0.0-alpha.27",
"@storybook/preset-vue-webpack": "7.0.0-alpha.27",
"@storybook/vue": "7.0.0-alpha.27",
"@types/node": "^14.14.20 || ^16.0.0",
"core-js": "^3.8.2",
"react": "16.14.0",
@ -86,5 +86,5 @@
],
"platform": "node"
},
"gitHead": "e3232cb426b8381afa48f42e6baa45fd9af9bc3a"
"gitHead": "3e33f0709dd97151b7dfd86fd9858d13fd1c5738"
}

View File

@ -0,0 +1 @@
# Storybook for React

View File

@ -0,0 +1,80 @@
{
"name": "@storybook/vue3-vite",
"version": "7.0.0-alpha.27",
"description": "Storybook for Vue3 and Vite: Develop Vue3 components in isolation with Hot Reloading.",
"keywords": [
"storybook"
],
"homepage": "https://github.com/storybookjs/storybook/tree/main/frameworks/vue3-vite",
"bugs": {
"url": "https://github.com/storybookjs/storybook/issues"
},
"repository": {
"type": "git",
"url": "https://github.com/storybookjs/storybook.git",
"directory": "frameworks/vue3-vite"
},
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/storybook"
},
"license": "MIT",
"exports": {
".": {
"require": "./dist/index.js",
"import": "./dist/index.mjs",
"types": "./dist/index.d.ts"
},
"./preset": {
"require": "./dist/preset.js",
"import": "./dist/preset.mjs",
"types": "./dist/preset.d.ts"
},
"./package.json": {
"require": "./package.json",
"import": "./package.json",
"types": "./package.json"
}
},
"main": "dist/index.js",
"module": "dist/index.mjs",
"types": "dist/index.d.ts",
"files": [
"dist/**/*",
"types/**/*",
"README.md",
"*.js",
"*.d.ts"
],
"scripts": {
"check": "tsc --noEmit",
"prepare": "../../../scripts/prepare/bundle.ts"
},
"dependencies": {
"@storybook/builder-vite": "7.0.0-alpha.27",
"@storybook/core-server": "7.0.0-alpha.27",
"@storybook/vue3": "7.0.0-alpha.27",
"@vitejs/plugin-vue": "^3.0.3",
"magic-string": "^0.26.1",
"vite": "3",
"vue-docgen-api": "^4.40.0"
},
"devDependencies": {
"@types/node": "^14.14.20 || ^16.0.0",
"typescript": "~4.6.3"
},
"engines": {
"node": "^14.18 || >=16"
},
"publishConfig": {
"access": "public"
},
"bundler": {
"entries": [
"./src/index.ts",
"./src/preset.ts"
],
"platform": "node"
},
"gitHead": "3e33f0709dd97151b7dfd86fd9858d13fd1c5738"
}

View File

@ -0,0 +1,2 @@
console.log('vue3-vite preset!')
module.exports = require('./dist/preset');

View File

@ -0,0 +1,2 @@
export * from '@storybook/vue3';
export type { StorybookConfig } from '@storybook/builder-vite';

View File

@ -0,0 +1,27 @@
import { parse } from 'vue-docgen-api';
import type { Plugin } from 'vite';
import { createFilter } from 'vite';
import MagicString from 'magic-string';
export function vueDocgen(): Plugin {
const include = /\.(vue)$/;
const filter = createFilter(include);
return {
name: 'vue-docgen',
async transform(src: string, id: string) {
if (!filter(id)) return undefined;
const metaData = await parse(id);
const metaSource = JSON.stringify(metaData);
const s = new MagicString(src);
s.append(`;_sfc_main.__docgenInfo = ${metaSource}`);
return {
code: s.toString(),
map: s.generateMap({ hires: true, source: id }),
};
},
};
}

View File

@ -0,0 +1,53 @@
import path from 'path';
import fs from 'fs';
import type { StorybookConfig } from '@storybook/builder-vite';
export const addons: StorybookConfig['addons'] = ['@storybook/vue3'];
export const core: StorybookConfig['core'] = {
builder: '@storybook/builder-vite',
};
export function readPackageJson(): Record<string, any> | false {
const packageJsonPath = path.resolve('package.json');
if (!fs.existsSync(packageJsonPath)) {
return false;
}
const jsonContent = fs.readFileSync(packageJsonPath, 'utf8');
return JSON.parse(jsonContent);
}
export const viteFinal: StorybookConfig['viteFinal'] = async (config, { presets }) => {
const { plugins = [] } = config;
try {
// eslint-disable-next-line global-require
const vuePlugin = require('@vitejs/plugin-vue');
plugins.push(vuePlugin());
const { vueDocgen } = await import('./plugins/vue-docgen');
plugins.push(vueDocgen());
} catch (err) {
if ((err as NodeJS.ErrnoException).code === 'MODULE_NOT_FOUND') {
throw new Error(
'@storybook/builder-vite requires @vitejs/plugin-vue to be installed ' +
'when using @storybook/vue or @storybook/vue3.' +
' Please install it and start storybook again.'
);
}
throw err;
}
const updated = {
...config,
plugins,
resolve: {
...config.resolve,
alias: {
...config.resolve?.alias,
vue: 'vue/dist/vue.esm-bundler.js',
},
},
};
return updated;
};

View File

@ -0,0 +1,10 @@
{
"extends": "../../tsconfig.json",
"compilerOptions": {
"rootDir": "./src",
"types": ["node"],
"resolveJsonModule": true
},
"include": ["src/**/*"],
"exclude": ["src/**/*.test.*", "src/**/__testfixtures__/**"]
}

View File

@ -1,6 +1,6 @@
{
"name": "@storybook/vue3-webpack5",
"version": "7.0.0-alpha.24",
"version": "7.0.0-alpha.27",
"description": "Storybook for Vue 3: Develop Vue 3 Components in isolation with Hot Reloading.",
"keywords": [
"storybook"
@ -50,10 +50,10 @@
"prepare": "../../../scripts/prepare/bundle.ts"
},
"dependencies": {
"@storybook/builder-webpack5": "7.0.0-alpha.24",
"@storybook/core-common": "7.0.0-alpha.24",
"@storybook/preset-vue3-webpack": "7.0.0-alpha.24",
"@storybook/vue3": "7.0.0-alpha.24",
"@storybook/builder-webpack5": "7.0.0-alpha.27",
"@storybook/core-common": "7.0.0-alpha.27",
"@storybook/preset-vue3-webpack": "7.0.0-alpha.27",
"@storybook/vue3": "7.0.0-alpha.27",
"@types/node": "^14.14.20 || ^16.0.0",
"core-js": "^3.8.2",
"react": "16.14.0",
@ -83,5 +83,5 @@
],
"platform": "node"
},
"gitHead": "e3232cb426b8381afa48f42e6baa45fd9af9bc3a"
"gitHead": "3e33f0709dd97151b7dfd86fd9858d13fd1c5738"
}

View File

@ -1,6 +1,6 @@
{
"name": "@storybook/web-components-webpack5",
"version": "7.0.0-alpha.24",
"version": "7.0.0-alpha.27",
"description": "Storybook for web-components: View web components snippets in isolation with Hot Reloading.",
"keywords": [
"lit-html",
@ -53,10 +53,10 @@
},
"dependencies": {
"@babel/preset-env": "^7.12.11",
"@storybook/builder-webpack5": "7.0.0-alpha.24",
"@storybook/core-common": "7.0.0-alpha.24",
"@storybook/preset-web-components-webpack": "7.0.0-alpha.24",
"@storybook/web-components": "7.0.0-alpha.24",
"@storybook/builder-webpack5": "7.0.0-alpha.27",
"@storybook/core-common": "7.0.0-alpha.27",
"@storybook/preset-web-components-webpack": "7.0.0-alpha.27",
"@storybook/web-components": "7.0.0-alpha.27",
"@types/node": "^14.14.20 || ^16.0.0",
"core-js": "^3.8.2",
"react": "16.14.0",
@ -82,5 +82,5 @@
],
"platform": "node"
},
"gitHead": "e3232cb426b8381afa48f42e6baa45fd9af9bc3a"
"gitHead": "3e33f0709dd97151b7dfd86fd9858d13fd1c5738"
}

View File

@ -2,5 +2,5 @@
"npmClient": "yarn",
"useWorkspaces": true,
"registry": "https://registry.npmjs.org",
"version": "7.0.0-alpha.24"
"version": "7.0.0-alpha.27"
}

View File

@ -1,6 +1,6 @@
{
"name": "@storybook/addons",
"version": "7.0.0-alpha.24",
"version": "7.0.0-alpha.27",
"description": "Storybook addons store",
"keywords": [
"storybook"
@ -34,13 +34,13 @@
"prepare": "node ../../../scripts/prepare.js"
},
"dependencies": {
"@storybook/api": "7.0.0-alpha.24",
"@storybook/channels": "7.0.0-alpha.24",
"@storybook/client-logger": "7.0.0-alpha.24",
"@storybook/core-events": "7.0.0-alpha.24",
"@storybook/api": "7.0.0-alpha.27",
"@storybook/channels": "7.0.0-alpha.27",
"@storybook/client-logger": "7.0.0-alpha.27",
"@storybook/core-events": "7.0.0-alpha.27",
"@storybook/csf": "0.0.2--canary.0899bb7.0",
"@storybook/router": "7.0.0-alpha.24",
"@storybook/theming": "7.0.0-alpha.24",
"@storybook/router": "7.0.0-alpha.27",
"@storybook/theming": "7.0.0-alpha.27",
"@types/webpack-env": "^1.16.4",
"core-js": "^3.8.2",
"global": "^4.4.0"
@ -52,5 +52,5 @@
"publishConfig": {
"access": "public"
},
"gitHead": "e3232cb426b8381afa48f42e6baa45fd9af9bc3a"
"gitHead": "3e33f0709dd97151b7dfd86fd9858d13fd1c5738"
}

View File

@ -1,6 +1,6 @@
{
"name": "@storybook/api",
"version": "7.0.0-alpha.24",
"version": "7.0.0-alpha.27",
"description": "Core Storybook API & Context",
"keywords": [
"storybook"
@ -32,13 +32,13 @@
"prepare": "node ../../../scripts/prepare.js"
},
"dependencies": {
"@storybook/channels": "7.0.0-alpha.24",
"@storybook/client-logger": "7.0.0-alpha.24",
"@storybook/core-events": "7.0.0-alpha.24",
"@storybook/channels": "7.0.0-alpha.27",
"@storybook/client-logger": "7.0.0-alpha.27",
"@storybook/core-events": "7.0.0-alpha.27",
"@storybook/csf": "0.0.2--canary.0899bb7.0",
"@storybook/router": "7.0.0-alpha.24",
"@storybook/router": "7.0.0-alpha.27",
"@storybook/semver": "^7.3.2",
"@storybook/theming": "7.0.0-alpha.24",
"@storybook/theming": "7.0.0-alpha.27",
"core-js": "^3.8.2",
"dequal": "^2.0.2",
"global": "^4.4.0",
@ -65,5 +65,5 @@
"publishConfig": {
"access": "public"
},
"gitHead": "e3232cb426b8381afa48f42e6baa45fd9af9bc3a"
"gitHead": "3e33f0709dd97151b7dfd86fd9858d13fd1c5738"
}

View File

@ -1 +1 @@
export const version = '7.0.0-alpha.24';
export const version = '7.0.0-alpha.27';

View File

@ -1,6 +1,6 @@
{
"name": "@storybook/blocks",
"version": "7.0.0-alpha.24",
"version": "7.0.0-alpha.27",
"description": "Storybook Doc Blocks",
"keywords": [
"storybook"
@ -41,16 +41,16 @@
"prepare": "../../../scripts/prepare/bundle.ts"
},
"dependencies": {
"@storybook/api": "7.0.0-alpha.24",
"@storybook/channels": "7.0.0-alpha.24",
"@storybook/client-logger": "7.0.0-alpha.24",
"@storybook/components": "7.0.0-alpha.24",
"@storybook/core-events": "7.0.0-alpha.24",
"@storybook/api": "7.0.0-alpha.27",
"@storybook/channels": "7.0.0-alpha.27",
"@storybook/client-logger": "7.0.0-alpha.27",
"@storybook/components": "7.0.0-alpha.27",
"@storybook/core-events": "7.0.0-alpha.27",
"@storybook/csf": "0.0.2--canary.0899bb7.0",
"@storybook/docs-tools": "7.0.0-alpha.24",
"@storybook/preview-web": "7.0.0-alpha.24",
"@storybook/store": "7.0.0-alpha.24",
"@storybook/theming": "7.0.0-alpha.24",
"@storybook/docs-tools": "7.0.0-alpha.27",
"@storybook/preview-web": "7.0.0-alpha.27",
"@storybook/store": "7.0.0-alpha.27",
"@storybook/theming": "7.0.0-alpha.27",
"color-convert": "^2.0.1",
"core-js": "^3.8.2",
"dequal": "^2.0.2",
@ -64,7 +64,7 @@
"util-deprecate": "^1.0.2"
},
"devDependencies": {
"@storybook/addons": "7.0.0-alpha.24"
"@storybook/addons": "7.0.0-alpha.27"
},
"peerDependencies": {
"react": "^16.8.0 || ^17.0.0 || ^18.0.0"
@ -77,5 +77,5 @@
"./src/index.ts"
]
},
"gitHead": "e3232cb426b8381afa48f42e6baa45fd9af9bc3a"
"gitHead": "3e33f0709dd97151b7dfd86fd9858d13fd1c5738"
}

View File

@ -1,3 +1,12 @@
# Manager-Builder
TODO
> NOTE: Do not use this package unless you know what you are doing.
This package is used internally by Storybook to create the manager side (UI) of Storybook.
This package uses `esbuild` to bundle the manager-side of addons, and prepare it for modern, ESM supporting browsers.
Each addon is bundled into a separate file, and the manager is responsible for loading them.
If a `manager.*` file exists in the config dir (e.g. `.storybook`), it's also bundled, and loaded in the browser.
Additionally, this package also will add the manager ui via the `@storybook/ui` package, which is already built by `esbuild` in our build process before publishing.

View File

@ -1,6 +1,6 @@
{
"name": "@storybook/builder-manager",
"version": "7.0.0-alpha.24",
"version": "7.0.0-alpha.27",
"description": "Storybook manager builder",
"keywords": [
"storybook"
@ -42,9 +42,9 @@
},
"dependencies": {
"@fal-works/esbuild-plugin-global-externals": "^2.1.2",
"@storybook/core-common": "7.0.0-alpha.24",
"@storybook/node-logger": "7.0.0-alpha.24",
"@storybook/ui": "7.0.0-alpha.24",
"@storybook/core-common": "7.0.0-alpha.27",
"@storybook/node-logger": "7.0.0-alpha.27",
"@storybook/ui": "7.0.0-alpha.27",
"@types/ejs": "^3.1.1",
"@yarnpkg/esbuild-plugin-pnp": "^3.0.0-rc.10",
"browser-assert": "^1.2.1",
@ -54,7 +54,8 @@
"esbuild-plugin-alias": "^0.2.1",
"express": "^4.17.1",
"fs-extra": "^9.0.1",
"rollup-plugin-node-polyfills": "^0.2.1"
"process": "^0.11.10",
"util": "^0.12.4"
},
"devDependencies": {
"typescript": "~4.6.3"
@ -68,5 +69,5 @@
],
"platform": "node"
},
"gitHead": "e3232cb426b8381afa48f42e6baa45fd9af9bc3a"
"gitHead": "3e33f0709dd97151b7dfd86fd9858d13fd1c5738"
}

View File

@ -60,8 +60,8 @@ export const getConfig: ManagerBuilder['getConfig'] = async (options) => {
legalComments: 'external',
plugins: [
aliasPlugin({
process: require.resolve('rollup-plugin-node-polyfills/polyfills/process-es6.js'),
util: require.resolve('rollup-plugin-node-polyfills/polyfills/util.js'),
process: require.resolve('process/browser.js'),
util: require.resolve('util/util.js'),
assert: require.resolve('browser-assert'),
}),
globalExternals(definitions),

View File

@ -0,0 +1,225 @@
# Storybook builder for Vite <!-- omit in toc -->
Build your stories with [vite](https://vitejs.dev/) for fast startup times and near-instant HMR.
# Table of Contents <!-- omit in toc -->
- [Migration from storybook-builder-vite](#migration-from-storybook-builder-vite)
- [Installation](#installation)
- [Usage](#usage)
- [Getting started with Vite and Storybook (on a new project)](#getting-started-with-vite-and-storybook-on-a-new-project)
- [Migration from webpack / CRA](#migration-from-webpack--cra)
- [Customize Vite config](#customize-vite-config)
- [Svelte Customization](#svelte-customization)
- [TypeScript](#typescript)
- [React Docgen](#react-docgen)
- [Note about working directory](#note-about-working-directory)
- [Known issues](#known-issues)
- [Contributing](#contributing)
- [About this codebase](#about-this-codebase)
## Migration from storybook-builder-vite
This project has moved from `storybook-builder-vite` to `@storybook/builder-vite` as part of a larger effort to improve Vite support in Storybook. To automatically migrate your existing project, you can run
```bash
npx sb@next automigrate
```
To manually migrate:
1. Remove `storybook-builder-vite` from your `package.json` dependencies
2. Install `@storybook/builder-vite`
3. Update your `core.builder` setting in `.storybook/main.js` to `@storybook/builder-vite`.
## Installation
Requirements:
- Vite 3.0 or newer (for Vite v2 (2.5+), use `@storybook/builder-vite@0.1.x`)
- Storybook 6.4.0 or newer (for storybook 6.3, use `storybook-builder-vite@0.1.16`)
```bash
npm install @storybook/builder-vite --save-dev
```
or
```bash
yarn add --dev @storybook/builder-vite
```
or
```bash
pnpm add --save-dev @storybook/builder-vite
```
Note: when using `pnpm`, you may need to enable [shamefully-hoist](https://pnpm.io/npmrc#shamefully-hoist), until https://github.com/storybookjs/builder-vite/issues/55 can be fixed.
## Usage
In your `main.js` configuration file,
set `core: { builder: "@storybook/builder-vite" }`.
> For autoreload of react stories to work, they need to have a `.stories.tsx` or `.stories.jsx` file suffix.
> See also [#53](https://github.com/storybookjs/builder-vite/pull/53)
The builder supports both development mode in Storybook, and building a static production version.
### Getting started with Vite and Storybook (on a new project)
See https://vitejs.dev/guide/#scaffolding-your-first-vite-project,
```
npm create vite@latest # follow the prompts
npx sb init --builder @storybook/builder-vite && npm run storybook
```
### Migration from webpack / CRA
1. Install `vite` and `@storybook/builder-vite`
2. Remove any explicit project dependencies on `webpack`, `react-scripts`, and any other webpack plugins or loaders.
3. If you were previously using `@storybook/manager-webpack5`, you'll need to remove it, since currently the vite builder only works with `manager-webpack4`, which is the default and does not need to be installed manually. Also remove `@storybook/builder-webpack5` or `@storybook/builder-webpack4` if they are installed.
4. Set `core: { builder: "@storybook/builder-vite" }` in your `.storybook/main.js` file.
5. Remove storybook webpack cache (`rm -rf node_modules/.cache`)
6. Update your `/public/index.html` file for vite (be sure there are no `%PUBLIC_URL%` inside it, which is a CRA variable)
7. Be sure that any files containing JSX syntax use a `.jsx` or `.tsx` file extension, which [vite requires](https://vitejs.dev/guide/features.html#jsx). This includes `.storybook/preview.jsx` if it contains JSX syntax.
8. If you are using `@storybook/addon-interactions`, for now you'll need to add a [workaround](https://github.com/storybookjs/storybook/issues/18399) for jest-mock relying on the node `global` variable by creating a `.storybook/preview-head.html` file containing the following:
```html
<script>
window.global = window;
</script>
```
9. Start up your storybook using the same `yarn storybook` or `npm run storybook` commands you are used to.
For other details about the differences between vite and webpack projects, be sure to read through the [vite documentation](https://vitejs.dev/).
### Customize Vite config
The builder will _not_ read your `vite.config.js` file by default.
In `.storybook/main.js` (or whatever your Storybook config file is named)
you can override the Vite config:
```javascript
// use `mergeConfig` to recursively merge Vite options
const { mergeConfig } = require('vite');
module.exports = {
async viteFinal(config, { configType }) {
// return the customized config
return mergeConfig(config, {
// customize the Vite config here
resolve: {
alias: { foo: 'bar' },
},
});
},
// ... other options here
};
```
The `viteFinal` function will give you `config` which is
the builder's own Vite config. You can tweak this as you want,
for example to set up aliases, add new plugins etc.
The `configType` variable will be either `"DEVELOPMENT"` or `"PRODUCTION"`.
The function should return the updated Vite configuration.
### Svelte Customization
When using this builder with Svelte, your `.storybook/main.js` (or equivalent)
can contain a `svelteOptions` object to pass custom options to
[`vite-plugin-svelte`](https://github.com/sveltejs/vite-plugin-svelte/tree/main/packages/vite-plugin-svelte):
```javascript
const preprocess = require('svelte-preprocess');
module.exports = {
svelteOptions: {
preprocess: preprocess({
typescript: true,
postcss: true,
sourceMap: true,
}),
},
};
```
### TypeScript
Configure your `.storybook/main.ts` to use TypeScript:
```typescript
import type { StorybookViteConfig } from '@storybook/builder-vite';
const config: StorybookViteConfig = {
// other storybook options...,
async viteFinal(config, options) {
// modify and return config
},
};
export default config;
```
Or alternatively, you can use named exports:
```typescript
import type { ViteFinal } from '@storybook/builder-vite';
export const viteFinal: ViteFinal = async (config, options) => {
// modify and return config
};
```
See [Customize Vite config](#customize-vite-config) for details about using `viteFinal`.
### React Docgen
Docgen is used in Storybook to populate the props table in docs view, the controls panel, and for several other addons. Docgen is supported in vue and react, and there are two docgen options when using react, `react-docgen` and `react-docgen-typescript`. You can learn more about the pros/cons of each in [this gist](https://gist.github.com/shilman/036313ffa3af52ca986b375d90ea46b0). By default, if we find a `typescript` dependency in your `package.json` file, we will assume you're using typescript and will choose `react-docgen-typescript`. You can change this by setting the `typescript.reactDocgen` option in your `.storybook/main.js` file:
```javascript
module.exports = {
typescript: {
reactDocgen: 'react-docgen`
}
}
```
If you're using TypeScript, we encourage you to experiment and see which option works better for your project.
### Note about working directory
The builder will by default enable Vite's [server.fs.strict](https://vitejs.dev/config/#server-fs-strict)
option, for increased security. The default project `root` is set to the parent directory of the
storybook configuration directory. This can be overridden in viteFinal.
## Known issues
- HMR: saving a story file does not hot-module-reload, a full reload happens instead. HMR works correctly when saving component files.
## Contributing
The Vite builder cannot build itself.
Are you willing to contribute? We are especially looking for vue and svelte experts, as the current maintainers are react users.
https://github.com/storybookjs/builder-vite/issues/11
Have a look at the GitHub issues for known bugs. If you find any new bugs,
feel free to create an issue or send a pull request!
Please read the [How to contribute](/CONTRIBUTING.md) guide.
### About this codebase
The code is a monorepo with the core `@storybook/builder-vite` package,
and examples (like `examples/react`) to test the builder implementation.
Similar to the main storybook monorepo, you need yarn to develop this builder, because the project is organized as yarn workspaces.
This lets you write new code in the core builder package, and instantly use them from
the example packages.

View File

@ -0,0 +1,29 @@
<!DOCTYPE html>
<!--suppress HtmlUnknownTarget -->
<html lang="en">
<head>
<meta charset="utf-8" />
<title><!-- [TITLE HERE] --></title>
<meta name="viewport" content="width=device-width, initial-scale=1" />
<script>
window.CONFIG_TYPE = '[CONFIG_TYPE HERE]';
window.LOGLEVEL = '[LOGLEVEL HERE]';
window.FRAMEWORK_OPTIONS = '[FRAMEWORK_OPTIONS HERE]';
window.CHANNEL_OPTIONS = '[CHANNEL_OPTIONS HERE]';
window.FEATURES = '[FEATURES HERE]';
window.STORIES = '[STORIES HERE]';
window.SERVER_CHANNEL_URL = '[SERVER_CHANNEL_URL HERE]';
// We do this so that "module && module.hot" etc. in Storybook source code
// doesn't fail (it will simply be disabled)
window.module = undefined;
</script>
<!-- [HEAD HTML SNIPPET HERE] -->
</head>
<body>
<!-- [BODY HTML SNIPPET HERE] -->
<div id="storybook-root"></div>
<div id="storybook-docs"></div>
<script type="module" src="/virtual:/@storybook/builder-vite/vite-app.js"></script>
</body>
</html>

View File

@ -0,0 +1,3 @@
// This file is to work around https://github.com/vitejs/vite/issues/6007
// For react < 18 projects, where `react-dom/client` does not exist, yet is
// conditionally imported by @storybook/react.

View File

@ -0,0 +1,60 @@
{
"name": "@storybook/builder-vite",
"version": "7.0.0-alpha.27",
"description": "A plugin to run and build Storybooks with Vite",
"homepage": "https://github.com/storybookjs/storybook/tree/main/code/lib/builder-vite/#readme",
"repository": {
"type": "git",
"url": "https://github.com/storybookjs/storybook.git",
"directory": "code/lib/builder-vite"
},
"license": "MIT",
"author": "Eirik Sletteberg",
"main": "dist/cjs/index.js",
"module": "dist/esm/index.js",
"types": "dist/types/index.d.ts",
"scripts": {
"check": "tsc --noEmit",
"prepare": "node ../../../scripts/prepare.js"
},
"dependencies": {
"@joshwooding/vite-plugin-react-docgen-typescript": "0.0.5",
"@storybook/addons": "7.0.0-alpha.27",
"@storybook/channel-postmessage": "7.0.0-alpha.27",
"@storybook/channel-websocket": "7.0.0-alpha.27",
"@storybook/client-api": "7.0.0-alpha.27",
"@storybook/client-logger": "7.0.0-alpha.27",
"@storybook/core-common": "7.0.0-alpha.27",
"@storybook/mdx1-csf": "0.0.5-canary.13.9ce928a.0",
"@storybook/node-logger": "7.0.0-alpha.27",
"@storybook/preview-web": "7.0.0-alpha.27",
"@storybook/source-loader": "7.0.0-alpha.27",
"@vitejs/plugin-react": "^2.0.0",
"ast-types": "^0.14.2",
"es-module-lexer": "^0.9.3",
"glob": "^7.2.0",
"glob-promise": "^4.2.0",
"magic-string": "^0.26.1",
"react-docgen": "^6.0.0-alpha.0",
"slash": "^3.0.0",
"vite": "3"
},
"devDependencies": {
"@storybook/mdx2-csf": "^0.0.3",
"@types/express": "^4.17.13",
"@types/node": "^17.0.23",
"typescript": "~4.6.3"
},
"peerDependencies": {
"@storybook/mdx2-csf": "^0.0.3"
},
"peerDependenciesMeta": {
"@storybook/mdx2-csf": {
"optional": true
}
},
"publishConfig": {
"access": "public"
},
"gitHead": "3e33f0709dd97151b7dfd86fd9858d13fd1c5738"
}

View File

@ -0,0 +1,32 @@
import { build as viteBuild } from 'vite';
import { stringifyProcessEnvs } from './envs';
import { commonConfig } from './vite-config';
import type { EnvsRaw, ExtendedOptions } from './types';
export async function build(options: ExtendedOptions) {
const { presets } = options;
const baseConfig = await commonConfig(options, 'build');
const config = {
...baseConfig,
build: {
outDir: options.outputDir,
emptyOutDir: false, // do not clean before running Vite build - Storybook has already added assets in there!
sourcemap: true,
},
};
const finalConfig = await presets.apply('viteFinal', config, options);
const envsRaw = await presets.apply<Promise<EnvsRaw>>('env');
// Stringify env variables after getting `envPrefix` from the final config
const envs = stringifyProcessEnvs(envsRaw, finalConfig.envPrefix);
// Update `define`
finalConfig.define = {
...finalConfig.define,
...envs,
};
await viteBuild(finalConfig);
}

View File

@ -0,0 +1,149 @@
/* eslint-disable no-param-reassign */
import * as fs from 'fs';
import * as path from 'path';
import { mergeConfig } from 'vite';
import type { Plugin } from 'vite';
import { transformIframeHtml } from './transform-iframe-html';
import { generateIframeScriptCode } from './codegen-iframe-script';
import { generateModernIframeScriptCode } from './codegen-modern-iframe-script';
import { generateImportFnScriptCode } from './codegen-importfn-script';
import { generateVirtualStoryEntryCode, generatePreviewEntryCode } from './codegen-entries';
import { generateAddonSetupCode } from './codegen-set-addon-channel';
import type { ExtendedOptions } from './types';
import {
virtualAddonSetupFile,
virtualFileId,
virtualPreviewFile,
virtualStoriesFile,
} from './virtual-file-names';
export function codeGeneratorPlugin(options: ExtendedOptions): Plugin {
const iframePath = path.resolve(__dirname, '../..', 'input', 'iframe.html');
let iframeId: string;
// noinspection JSUnusedGlobalSymbols
return {
name: 'storybook-vite-code-generator-plugin',
enforce: 'pre',
configureServer(server) {
// invalidate the whole vite-app.js script on every file change.
// (this might be a little too aggressive?)
server.watcher.on('change', () => {
const appModule = server.moduleGraph.getModuleById(virtualFileId);
if (appModule) {
server.moduleGraph.invalidateModule(appModule);
}
const storiesModule = server.moduleGraph.getModuleById(virtualStoriesFile);
if (storiesModule) {
server.moduleGraph.invalidateModule(storiesModule);
}
});
// Adding new story files is not covered by the change event above. So we need to detect this and trigger
// HMR to update the importFn.
server.watcher.on('add', (path) => {
// TODO maybe use the stories declaration in main
if (/\.stories\.([tj])sx?$/.test(path) || /\.(story|stories).mdx$/.test(path)) {
// We need to emit a change event to trigger HMR
server.watcher.emit('change', virtualStoriesFile);
}
});
},
config(config, { command }) {
// If we are building the static distribution, add iframe.html as an entry.
// In development mode, it's not an entry - instead, we use an express middleware
// to serve iframe.html. The reason is that Vite's dev server (at the time of writing)
// does not support virtual files as entry points.
if (command === 'build') {
if (!config.build) {
config.build = {};
}
config.build.rollupOptions = {
...config.build.rollupOptions,
input: iframePath,
};
}
// Detect if react 18 is installed. If not, alias it to a virtual placeholder file.
try {
require.resolve('react-dom/client', { paths: [config.root || process.cwd()] });
} catch (e) {
if (isNodeError(e) && e.code === 'MODULE_NOT_FOUND') {
config.resolve = mergeConfig(config.resolve ?? {}, {
alias: {
'react-dom/client': path.resolve(
__dirname,
'../..',
'input',
'react-dom-client-placeholder.js'
),
},
});
}
}
},
configResolved(config) {
iframeId = `${config.root}/iframe.html`;
},
resolveId(source) {
if (source === virtualFileId) {
return virtualFileId;
}
if (source === iframePath) {
return iframeId;
}
if (source === virtualStoriesFile) {
return virtualStoriesFile;
}
if (source === virtualPreviewFile) {
return virtualPreviewFile;
}
if (source === virtualAddonSetupFile) {
return virtualAddonSetupFile;
}
return undefined;
},
async load(id) {
const storyStoreV7 = options.features?.storyStoreV7;
if (id === virtualStoriesFile) {
if (storyStoreV7) {
return generateImportFnScriptCode(options);
}
return generateVirtualStoryEntryCode(options);
}
if (id === virtualAddonSetupFile) {
return generateAddonSetupCode();
}
if (id === virtualPreviewFile && !storyStoreV7) {
return generatePreviewEntryCode(options);
}
if (id === virtualFileId) {
if (storyStoreV7) {
return generateModernIframeScriptCode(options);
}
return generateIframeScriptCode(options);
}
if (id === iframeId) {
return fs.readFileSync(path.resolve(__dirname, '../..', 'input', 'iframe.html'), 'utf-8');
}
return undefined;
},
async transformIndexHtml(html, ctx) {
if (ctx.path !== '/iframe.html') {
return undefined;
}
return transformIframeHtml(html, options);
},
};
}
// Refines an error received from 'catch' to be a NodeJS exception
const isNodeError = (error: unknown): error is NodeJS.ErrnoException => error instanceof Error;

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