Merge branch 'next' into vite/mdx1-version

This commit is contained in:
Norbert de Langen 2023-02-16 17:47:50 +01:00
commit 388596af16
No known key found for this signature in database
GPG Key ID: FD0E78AF9A837762
187 changed files with 3569 additions and 2637 deletions

View File

@ -26,7 +26,6 @@ body:
placeholder: >-
Paste your repository and deployed reproduction here. We prioritize
issues with reproductions over those without.
render: shell
- type: textarea
id: system
attributes:

View File

@ -1,3 +1,23 @@
## 7.0.0-beta.49 (February 17, 2023)
#### Bug Fixes
- NextJS: Fix static dirs lookup [#21119](https://github.com/storybooks/storybook/pull/21119)
- Svelte/Vue: Use Vite by default [#21002](https://github.com/storybooks/storybook/pull/21002)
- Storyshots: Fix issue with default export in main.js [#21097](https://github.com/storybooks/storybook/pull/21097)
- Args: Fix boolean arg types parsing and encoding [#21102](https://github.com/storybooks/storybook/pull/21102)
#### Maintenance
- CRA: Add CRA preset to monorepo [#21107](https://github.com/storybooks/storybook/pull/21107)
- Web-components: Drop lit1 support [#21106](https://github.com/storybooks/storybook/pull/21106)
- NextJS: Fix some dependency warnings [#21117](https://github.com/storybooks/storybook/pull/21117)
- Types: Remove unnecessary dependencies [#20993](https://github.com/storybooks/storybook/pull/20993)
#### Build
- Build: regen lockfiles [#21126](https://github.com/storybooks/storybook/pull/21126)
## 7.0.0-beta.48 (February 15, 2023)
#### Features

View File

@ -2,7 +2,6 @@
- [From version 6.5.x to 7.0.0](#from-version-65x-to-700)
- [7.0 breaking changes](#70-breaking-changes)
- [Story context is prepared before for supporting fine grained updates](#story-context-is-prepared-before-for-supporting-fine-grained-updates)
- [Dropped support for Node 15 and below](#dropped-support-for-node-15-and-below)
- [ESM format in Main.js](#esm-format-in-mainjs)
- [Modern browser support](#modern-browser-support)
@ -37,6 +36,7 @@
- [Angular: Removed legacy renderer](#angular-removed-legacy-renderer)
- [SvelteKit: needs the `@storybook/sveltekit` framework](#sveltekit-needs-the-storybooksveltekit-framework)
- [Vue3: replaced app export with setup](#vue3-replaced-app-export-with-setup)
- [Web-components: dropped lit-html v1 support](#web-components-dropped-lit-html-v1-support)
- [Addon authors](#addon-authors)
- [register.js removed](#registerjs-removed)
- [No more default export from `@storybook/addons`](#no-more-default-export-from-storybookaddons)
@ -756,6 +756,10 @@ setup((app) => {
});
```
#### Web-components: dropped lit-html v1 support
In v6.x `@storybook/web-components` had a peer dependency on `lit-html` v1 or v2. In 7.0 we've dropped support for `lit-html` v1 and now uses `lit` v2 instead. Please upgrade your project's `lit-html` dependency if you're still on 1.x.
### Addon authors
#### register.js removed

View File

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

View File

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

View File

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

View File

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

View File

@ -1,6 +1,6 @@
{
"name": "@storybook/addon-docs",
"version": "7.0.0-beta.48",
"version": "7.0.0-beta.49",
"description": "Document component usage and properties in Markdown",
"keywords": [
"addon",
@ -103,18 +103,18 @@
"@babel/plugin-transform-react-jsx": "^7.19.0",
"@jest/transform": "^29.3.1",
"@mdx-js/react": "^2.1.5",
"@storybook/blocks": "7.0.0-beta.48",
"@storybook/client-logger": "7.0.0-beta.48",
"@storybook/components": "7.0.0-beta.48",
"@storybook/csf-plugin": "7.0.0-beta.48",
"@storybook/csf-tools": "7.0.0-beta.48",
"@storybook/blocks": "7.0.0-beta.49",
"@storybook/client-logger": "7.0.0-beta.49",
"@storybook/components": "7.0.0-beta.49",
"@storybook/csf-plugin": "7.0.0-beta.49",
"@storybook/csf-tools": "7.0.0-beta.49",
"@storybook/global": "^5.0.0",
"@storybook/mdx2-csf": "next",
"@storybook/node-logger": "7.0.0-beta.48",
"@storybook/postinstall": "7.0.0-beta.48",
"@storybook/preview-api": "7.0.0-beta.48",
"@storybook/theming": "7.0.0-beta.48",
"@storybook/types": "7.0.0-beta.48",
"@storybook/node-logger": "7.0.0-beta.49",
"@storybook/postinstall": "7.0.0-beta.49",
"@storybook/preview-api": "7.0.0-beta.49",
"@storybook/theming": "7.0.0-beta.49",
"@storybook/types": "7.0.0-beta.49",
"fs-extra": "^11.1.0",
"remark-external-links": "^8.0.0",
"remark-slug": "^6.0.0",
@ -147,7 +147,7 @@
"./src/shims/mdx-react-shim.ts"
]
},
"gitHead": "8c9765f9cd204fc63b928526941d8d8bffaf7c38",
"gitHead": "a2b4f0b42ee2b071390794bbdf99d0366fa32472",
"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-beta.48",
"version": "7.0.0-beta.49",
"description": "Curated addons to bring out the best of Storybook",
"keywords": [
"addon",
@ -119,23 +119,23 @@
"prep": "../../../scripts/prepare/bundle.ts"
},
"dependencies": {
"@storybook/addon-actions": "7.0.0-beta.48",
"@storybook/addon-backgrounds": "7.0.0-beta.48",
"@storybook/addon-controls": "7.0.0-beta.48",
"@storybook/addon-docs": "7.0.0-beta.48",
"@storybook/addon-highlight": "7.0.0-beta.48",
"@storybook/addon-measure": "7.0.0-beta.48",
"@storybook/addon-outline": "7.0.0-beta.48",
"@storybook/addon-toolbars": "7.0.0-beta.48",
"@storybook/addon-viewport": "7.0.0-beta.48",
"@storybook/core-common": "7.0.0-beta.48",
"@storybook/manager-api": "7.0.0-beta.48",
"@storybook/node-logger": "7.0.0-beta.48",
"@storybook/preview-api": "7.0.0-beta.48",
"@storybook/addon-actions": "7.0.0-beta.49",
"@storybook/addon-backgrounds": "7.0.0-beta.49",
"@storybook/addon-controls": "7.0.0-beta.49",
"@storybook/addon-docs": "7.0.0-beta.49",
"@storybook/addon-highlight": "7.0.0-beta.49",
"@storybook/addon-measure": "7.0.0-beta.49",
"@storybook/addon-outline": "7.0.0-beta.49",
"@storybook/addon-toolbars": "7.0.0-beta.49",
"@storybook/addon-viewport": "7.0.0-beta.49",
"@storybook/core-common": "7.0.0-beta.49",
"@storybook/manager-api": "7.0.0-beta.49",
"@storybook/node-logger": "7.0.0-beta.49",
"@storybook/preview-api": "7.0.0-beta.49",
"ts-dedent": "^2.0.0"
},
"devDependencies": {
"@storybook/vue": "7.0.0-beta.48",
"@storybook/vue": "7.0.0-beta.49",
"typescript": "^4.9.3"
},
"peerDependencies": {
@ -166,5 +166,5 @@
],
"platform": "node"
},
"gitHead": "8c9765f9cd204fc63b928526941d8d8bffaf7c38"
"gitHead": "a2b4f0b42ee2b071390794bbdf99d0366fa32472"
}

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -1,6 +1,6 @@
{
"name": "@storybook/angular",
"version": "7.0.0-beta.48",
"version": "7.0.0-beta.49",
"description": "Storybook for Angular: Develop Angular components in isolation with hot reloading.",
"keywords": [
"storybook",
@ -36,20 +36,20 @@
"prep": "../../../scripts/prepare/tsc.ts"
},
"dependencies": {
"@storybook/builder-webpack5": "7.0.0-beta.48",
"@storybook/cli": "7.0.0-beta.48",
"@storybook/client-logger": "7.0.0-beta.48",
"@storybook/core-client": "7.0.0-beta.48",
"@storybook/core-common": "7.0.0-beta.48",
"@storybook/core-events": "7.0.0-beta.48",
"@storybook/core-server": "7.0.0-beta.48",
"@storybook/core-webpack": "7.0.0-beta.48",
"@storybook/docs-tools": "7.0.0-beta.48",
"@storybook/builder-webpack5": "7.0.0-beta.49",
"@storybook/cli": "7.0.0-beta.49",
"@storybook/client-logger": "7.0.0-beta.49",
"@storybook/core-client": "7.0.0-beta.49",
"@storybook/core-common": "7.0.0-beta.49",
"@storybook/core-events": "7.0.0-beta.49",
"@storybook/core-server": "7.0.0-beta.49",
"@storybook/core-webpack": "7.0.0-beta.49",
"@storybook/docs-tools": "7.0.0-beta.49",
"@storybook/global": "^5.0.0",
"@storybook/manager-api": "7.0.0-beta.48",
"@storybook/node-logger": "7.0.0-beta.48",
"@storybook/preview-api": "7.0.0-beta.48",
"@storybook/types": "7.0.0-beta.48",
"@storybook/manager-api": "7.0.0-beta.49",
"@storybook/node-logger": "7.0.0-beta.49",
"@storybook/preview-api": "7.0.0-beta.49",
"@storybook/types": "7.0.0-beta.49",
"@types/node": "^16.0.0",
"@types/react": "^16.14.34",
"@types/react-dom": "^16.9.14",
@ -123,5 +123,5 @@
"bundler": {
"tsConfig": "tsconfig.build.json"
},
"gitHead": "8c9765f9cd204fc63b928526941d8d8bffaf7c38"
"gitHead": "a2b4f0b42ee2b071390794bbdf99d0366fa32472"
}

View File

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

View File

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

View File

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

View File

@ -1,6 +1,6 @@
{
"name": "@storybook/nextjs",
"version": "7.0.0-beta.48",
"version": "7.0.0-beta.49",
"description": "Storybook for Next.js",
"keywords": [
"storybook",
@ -60,20 +60,21 @@
},
"dependencies": {
"@next/font": "^13.0.7",
"@storybook/addon-actions": "7.0.0-beta.48",
"@storybook/builder-webpack5": "7.0.0-beta.48",
"@storybook/core-common": "7.0.0-beta.48",
"@storybook/node-logger": "7.0.0-beta.48",
"@storybook/preset-react-webpack": "7.0.0-beta.48",
"@storybook/preview-api": "7.0.0-beta.48",
"@storybook/react": "7.0.0-beta.48",
"@storybook/addon-actions": "7.0.0-beta.49",
"@storybook/builder-webpack5": "7.0.0-beta.49",
"@storybook/core-common": "7.0.0-beta.49",
"@storybook/node-logger": "7.0.0-beta.49",
"@storybook/preset-react-webpack": "7.0.0-beta.49",
"@storybook/preview-api": "7.0.0-beta.49",
"@storybook/react": "7.0.0-beta.49",
"@types/node": "^16.0.0",
"find-up": "^5.0.0",
"fs-extra": "^11.1.0",
"image-size": "^1.0.0",
"loader-utils": "^3.2.0",
"pnp-webpack-plugin": "^1.7.0",
"postcss-loader": "^6.2.1",
"postcss": "^8.4.21",
"postcss-loader": "^7.0.2",
"resolve-url-loader": "^5.0.0",
"sass-loader": "^12.4.0",
"semver": "^7.3.5",
@ -105,6 +106,9 @@
},
"typescript": {
"optional": true
},
"webpack": {
"optional": true
}
},
"engines": {
@ -123,5 +127,5 @@
],
"platform": "node"
},
"gitHead": "8c9765f9cd204fc63b928526941d8d8bffaf7c38"
"gitHead": "a2b4f0b42ee2b071390794bbdf99d0366fa32472"
}

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -1,6 +1,6 @@
{
"name": "@storybook/vue3-vite",
"version": "7.0.0-beta.48",
"version": "7.0.0-beta.49",
"description": "Storybook for Vue3 and Vite: Develop Vue3 components in isolation with Hot Reloading.",
"keywords": [
"storybook"
@ -48,9 +48,9 @@
"prep": "../../../scripts/prepare/bundle.ts"
},
"dependencies": {
"@storybook/builder-vite": "7.0.0-beta.48",
"@storybook/core-server": "7.0.0-beta.48",
"@storybook/vue3": "7.0.0-beta.48",
"@storybook/builder-vite": "7.0.0-beta.49",
"@storybook/core-server": "7.0.0-beta.49",
"@storybook/vue3": "7.0.0-beta.49",
"@vitejs/plugin-vue": "^4.0.0",
"magic-string": "^0.27.0",
"vue-docgen-api": "^4.40.0"
@ -78,5 +78,5 @@
],
"platform": "node"
},
"gitHead": "8c9765f9cd204fc63b928526941d8d8bffaf7c38"
"gitHead": "a2b4f0b42ee2b071390794bbdf99d0366fa32472"
}

View File

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

View File

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

View File

@ -1,8 +1,9 @@
{
"name": "@storybook/web-components-webpack5",
"version": "7.0.0-beta.48",
"version": "7.0.0-beta.49",
"description": "Storybook for web-components: View web components snippets in isolation with Hot Reloading.",
"keywords": [
"lit",
"lit-html",
"storybook",
"web-components"
@ -51,18 +52,18 @@
},
"dependencies": {
"@babel/preset-env": "^7.20.2",
"@storybook/builder-webpack5": "7.0.0-beta.48",
"@storybook/core-common": "7.0.0-beta.48",
"@storybook/preset-web-components-webpack": "7.0.0-beta.48",
"@storybook/web-components": "7.0.0-beta.48",
"@storybook/builder-webpack5": "7.0.0-beta.49",
"@storybook/core-common": "7.0.0-beta.49",
"@storybook/preset-web-components-webpack": "7.0.0-beta.49",
"@storybook/web-components": "7.0.0-beta.49",
"@types/node": "^16.0.0"
},
"devDependencies": {
"lit-html": "2.0.2",
"lit": "2.3.1",
"typescript": "~4.9.3"
},
"peerDependencies": {
"lit-html": "^1.4.1 || ^2.0.0",
"lit": "^2.0.0",
"react": "^16.8.0 || ^17.0.0 || ^18.0.0",
"react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0"
},
@ -79,5 +80,5 @@
],
"platform": "node"
},
"gitHead": "8c9765f9cd204fc63b928526941d8d8bffaf7c38"
"gitHead": "a2b4f0b42ee2b071390794bbdf99d0366fa32472"
}

View File

@ -30,7 +30,9 @@ module.exports = {
'^.+\\.(t|j)sx?$': '@swc/jest',
'^.+\\.mdx$': '@storybook/addon-docs/jest-transform-mdx',
},
transformIgnorePatterns: ['/node_modules/(?!@angular|rxjs|nanoid|uuid|lit-html|@mdx-js)'],
transformIgnorePatterns: [
'/node_modules/(?!@angular|rxjs|nanoid|uuid|lit-html|lit|@mdx-js|@lit)',
],
testMatch: ['**/__tests__/**/*.[jt]s?(x)', '**/?(*.)+(spec|test).[jt]s?(x)'],
testPathIgnorePatterns: [
'/storybook-static/',

View File

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

View File

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

View File

@ -1,6 +1,6 @@
{
"name": "@storybook/builder-manager",
"version": "7.0.0-beta.48",
"version": "7.0.0-beta.49",
"description": "Storybook manager builder",
"keywords": [
"storybook"
@ -44,9 +44,9 @@
},
"dependencies": {
"@fal-works/esbuild-plugin-global-externals": "^2.1.2",
"@storybook/core-common": "7.0.0-beta.48",
"@storybook/manager": "7.0.0-beta.48",
"@storybook/node-logger": "7.0.0-beta.48",
"@storybook/core-common": "7.0.0-beta.49",
"@storybook/manager": "7.0.0-beta.49",
"@storybook/node-logger": "7.0.0-beta.49",
"@types/ejs": "^3.1.1",
"@types/find-cache-dir": "^3.2.1",
"@yarnpkg/esbuild-plugin-pnp": "^3.0.0-rc.10",
@ -73,5 +73,5 @@
],
"platform": "node"
},
"gitHead": "8c9765f9cd204fc63b928526941d8d8bffaf7c38"
"gitHead": "a2b4f0b42ee2b071390794bbdf99d0366fa32472"
}

View File

@ -1,6 +1,6 @@
{
"name": "@storybook/builder-vite",
"version": "7.0.0-beta.48",
"version": "7.0.0-beta.49",
"description": "A plugin to run and build Storybooks with Vite",
"homepage": "https://github.com/storybookjs/storybook/tree/main/code/lib/builder-vite/#readme",
"bugs": {
@ -43,17 +43,17 @@
"prep": "../../../scripts/prepare/bundle.ts"
},
"dependencies": {
"@storybook/channel-postmessage": "7.0.0-beta.48",
"@storybook/channel-websocket": "7.0.0-beta.48",
"@storybook/client-logger": "7.0.0-beta.48",
"@storybook/core-common": "7.0.0-beta.48",
"@storybook/csf-plugin": "7.0.0-beta.48",
"@storybook/channel-postmessage": "7.0.0-beta.49",
"@storybook/channel-websocket": "7.0.0-beta.49",
"@storybook/client-logger": "7.0.0-beta.49",
"@storybook/core-common": "7.0.0-beta.49",
"@storybook/csf-plugin": "7.0.0-beta.49",
"@storybook/mdx2-csf": "next",
"@storybook/node-logger": "7.0.0-beta.48",
"@storybook/preview": "7.0.0-beta.48",
"@storybook/preview-api": "7.0.0-beta.48",
"@storybook/source-loader": "7.0.0-beta.48",
"@storybook/types": "7.0.0-beta.48",
"@storybook/node-logger": "7.0.0-beta.49",
"@storybook/preview": "7.0.0-beta.49",
"@storybook/preview-api": "7.0.0-beta.49",
"@storybook/source-loader": "7.0.0-beta.49",
"@storybook/types": "7.0.0-beta.49",
"browser-assert": "^1.2.1",
"es-module-lexer": "^0.9.3",
"express": "^4.17.3",
@ -102,5 +102,5 @@
],
"platform": "node"
},
"gitHead": "8c9765f9cd204fc63b928526941d8d8bffaf7c38"
"gitHead": "a2b4f0b42ee2b071390794bbdf99d0366fa32472"
}

View File

@ -1,6 +1,6 @@
{
"name": "@storybook/builder-webpack5",
"version": "7.0.0-beta.48",
"version": "7.0.0-beta.49",
"description": "Storybook framework-agnostic API",
"keywords": [
"storybook"
@ -58,25 +58,25 @@
},
"dependencies": {
"@babel/core": "^7.12.10",
"@storybook/addons": "7.0.0-beta.48",
"@storybook/api": "7.0.0-beta.48",
"@storybook/channel-postmessage": "7.0.0-beta.48",
"@storybook/channel-websocket": "7.0.0-beta.48",
"@storybook/channels": "7.0.0-beta.48",
"@storybook/client-api": "7.0.0-beta.48",
"@storybook/client-logger": "7.0.0-beta.48",
"@storybook/components": "7.0.0-beta.48",
"@storybook/core-common": "7.0.0-beta.48",
"@storybook/core-events": "7.0.0-beta.48",
"@storybook/core-webpack": "7.0.0-beta.48",
"@storybook/addons": "7.0.0-beta.49",
"@storybook/api": "7.0.0-beta.49",
"@storybook/channel-postmessage": "7.0.0-beta.49",
"@storybook/channel-websocket": "7.0.0-beta.49",
"@storybook/channels": "7.0.0-beta.49",
"@storybook/client-api": "7.0.0-beta.49",
"@storybook/client-logger": "7.0.0-beta.49",
"@storybook/components": "7.0.0-beta.49",
"@storybook/core-common": "7.0.0-beta.49",
"@storybook/core-events": "7.0.0-beta.49",
"@storybook/core-webpack": "7.0.0-beta.49",
"@storybook/global": "^5.0.0",
"@storybook/manager-api": "7.0.0-beta.48",
"@storybook/node-logger": "7.0.0-beta.48",
"@storybook/preview": "7.0.0-beta.48",
"@storybook/preview-api": "7.0.0-beta.48",
"@storybook/router": "7.0.0-beta.48",
"@storybook/store": "7.0.0-beta.48",
"@storybook/theming": "7.0.0-beta.48",
"@storybook/manager-api": "7.0.0-beta.49",
"@storybook/node-logger": "7.0.0-beta.49",
"@storybook/preview": "7.0.0-beta.49",
"@storybook/preview-api": "7.0.0-beta.49",
"@storybook/router": "7.0.0-beta.49",
"@storybook/store": "7.0.0-beta.49",
"@storybook/theming": "7.0.0-beta.49",
"@types/node": "^16.0.0",
"@types/semver": "^7.3.4",
"babel-loader": "^9.0.0",
@ -131,5 +131,5 @@
],
"platform": "node"
},
"gitHead": "8c9765f9cd204fc63b928526941d8d8bffaf7c38"
"gitHead": "a2b4f0b42ee2b071390794bbdf99d0366fa32472"
}

View File

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

View File

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

View File

@ -1,6 +1,6 @@
{
"name": "@storybook/channels",
"version": "7.0.0-beta.48",
"version": "7.0.0-beta.49",
"description": "",
"keywords": [
"storybook"
@ -53,5 +53,5 @@
"./src/index.ts"
]
},
"gitHead": "8c9765f9cd204fc63b928526941d8d8bffaf7c38"
"gitHead": "a2b4f0b42ee2b071390794bbdf99d0366fa32472"
}

View File

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

View File

@ -1,6 +1,6 @@
{
"name": "storybook",
"version": "7.0.0-beta.48",
"version": "7.0.0-beta.49",
"description": "Storybook CLI",
"keywords": [
"storybook"
@ -24,10 +24,10 @@
"storybook": "./index.js"
},
"dependencies": {
"@storybook/cli": "7.0.0-beta.48"
"@storybook/cli": "7.0.0-beta.49"
},
"publishConfig": {
"access": "public"
},
"gitHead": "8c9765f9cd204fc63b928526941d8d8bffaf7c38"
"gitHead": "a2b4f0b42ee2b071390794bbdf99d0366fa32472"
}

View File

@ -1,6 +1,6 @@
{
"name": "@storybook/cli",
"version": "7.0.0-beta.48",
"version": "7.0.0-beta.49",
"description": "Storybook's CLI - easiest method of adding storybook to your projects",
"keywords": [
"cli",
@ -56,13 +56,13 @@
"dependencies": {
"@babel/core": "^7.20.2",
"@babel/preset-env": "^7.20.2",
"@storybook/codemod": "7.0.0-beta.48",
"@storybook/core-common": "7.0.0-beta.48",
"@storybook/core-server": "7.0.0-beta.48",
"@storybook/csf-tools": "7.0.0-beta.48",
"@storybook/node-logger": "7.0.0-beta.48",
"@storybook/telemetry": "7.0.0-beta.48",
"@storybook/types": "7.0.0-beta.48",
"@storybook/codemod": "7.0.0-beta.49",
"@storybook/core-common": "7.0.0-beta.49",
"@storybook/core-server": "7.0.0-beta.49",
"@storybook/csf-tools": "7.0.0-beta.49",
"@storybook/node-logger": "7.0.0-beta.49",
"@storybook/telemetry": "7.0.0-beta.49",
"@storybook/types": "7.0.0-beta.49",
"@types/semver": "^7.3.4",
"boxen": "^5.1.2",
"chalk": "^4.1.0",
@ -93,7 +93,7 @@
"util-deprecate": "^1.0.2"
},
"devDependencies": {
"@storybook/client-api": "7.0.0-beta.48",
"@storybook/client-api": "7.0.0-beta.49",
"@types/cross-spawn": "^6.0.2",
"@types/prompts": "^2.0.9",
"@types/puppeteer-core": "^2.1.0",
@ -113,5 +113,5 @@
],
"platform": "node"
},
"gitHead": "8c9765f9cd204fc63b928526941d8d8bffaf7c38"
"gitHead": "a2b4f0b42ee2b071390794bbdf99d0366fa32472"
}

View File

@ -1,53 +0,0 @@
import { detectNextJS } from './detect-nextjs';
test('detect nothing if it fails', () => {
const out = detectNextJS({
type: 'npm',
executeCommand: () => {
throw new Error('test error');
},
});
expect(out).toEqual(false);
});
test('detect from npm ls', () => {
const outputFromCommand = `
/path/to/cwd
next@12.0.7
`;
const out = detectNextJS({ type: 'npm', executeCommand: () => outputFromCommand });
expect(out).toEqual(12);
});
test('detect from npm why', () => {
const outputFromCommand = `
next@12.0.7
node_modules/next
next@"^12.0.7" from the root project
peer next@">=10.2.0" from eslint-config-next@12.0.7
node_modules/eslint-config-next
dev eslint-config-next@"^12.0.7" from the root project
`;
const out = detectNextJS({ type: 'npm', executeCommand: () => outputFromCommand });
expect(out).toEqual(12);
});
test('detect from yarn why', () => {
const outputFromCommand = `
yarn why v1.22.18
[1/4] 🤔 Why do we have the module "next"...?
[2/4] 🚚 Initialising dependency graph...
[3/4] 🔍 Finding dependency...
[4/4] 🚡 Calculating file sizes...
=> Found "next@12.0.7"
info Has been hoisted to "next"
info This module exists because it's specified in "dependencies".
info Disk size without dependencies: "XX.XXMB"
info Disk size with unique dependencies: "XX.XXMB"
info Disk size with transitive dependencies: "XX.XXMB"
info Number of shared dependencies: XXX
Done in 0.XXs.
`;
const out = detectNextJS({ type: 'npm', executeCommand: () => outputFromCommand });
expect(out).toEqual(12);
});

View File

@ -1,30 +0,0 @@
import type { JsPackageManager } from './js-package-manager';
const regex = /[\s"\n]next.*?(\d+).*/;
export const detectNextJS = (
packageManager: Pick<JsPackageManager, 'type' | 'executeCommand'>
): number | false => {
try {
let out = '';
if (packageManager.type === 'npm') {
try {
// npm <= v7
out = packageManager.executeCommand('npm', ['ls', 'next']);
} catch (e2) {
// npm >= v8
out = packageManager.executeCommand('npm', ['why', 'next']);
}
} else {
out = packageManager.executeCommand('yarn', ['why', 'next']);
}
const [, version] = out.match(regex);
return version && parseInt(version, 10) ? parseInt(version, 10) : false;
} catch (err) {
//
}
return false;
};

View File

@ -16,7 +16,7 @@ import {
} from './project_types';
import { getBowerJson, paddedLog } from './helpers';
import type { JsPackageManager, PackageJson, PackageJsonWithMaybeDeps } from './js-package-manager';
import { detectNextJS } from './detect-nextjs';
import { detectWebpack } from './detect-webpack';
const viteConfigFiles = ['vite.config.ts', 'vite.config.js', 'vite.config.mjs'];
@ -104,28 +104,34 @@ export function detectFrameworkPreset(
}
/**
* Attempts to detect which builder to use, by searching for a vite config file. If one is found, the vite builder
* will be used, otherwise, webpack5 is the default.
* Attempts to detect which builder to use, by searching for a vite config file or webpack installation.
* If neither are found it will choose the default builder based on the project type.
*
* @returns CoreBuilder
*/
export function detectBuilder(packageManager: JsPackageManager) {
export function detectBuilder(packageManager: JsPackageManager, projectType: ProjectType) {
const viteConfig = findUp.sync(viteConfigFiles);
if (viteConfig) {
paddedLog('Detected vite project, setting builder to @storybook/builder-vite');
paddedLog('Detected Vite project. Setting builder to Vite');
return CoreBuilder.Vite;
}
const nextJSVersion = detectNextJS(packageManager);
if (nextJSVersion) {
if (nextJSVersion >= 11) {
return CoreBuilder.Webpack5;
}
if (detectWebpack(packageManager)) {
paddedLog('Detected webpack project. Setting builder to webpack');
return CoreBuilder.Webpack5;
}
// Fallback to webpack5
return CoreBuilder.Webpack5;
// Fallback to Vite or Webpack based on project type
switch (projectType) {
case ProjectType.SVELTE:
case ProjectType.SVELTEKIT:
case ProjectType.VUE:
case ProjectType.VUE3:
case ProjectType.SFC_VUE:
return CoreBuilder.Vite;
default:
return CoreBuilder.Webpack5;
}
}
export function isStorybookInstalled(

View File

@ -3,7 +3,7 @@ import type { Generator } from '../types';
const generator: Generator = async (packageManager, npmOptions, options) => {
return baseGenerator(packageManager, npmOptions, options, 'web-components', {
extraPackages: ['lit-html'],
extraPackages: ['lit'],
});
};

View File

@ -61,7 +61,7 @@ const installStorybook = <Project extends ProjectType>(
const generatorOptions = {
language,
builder: options.builder || detectBuilder(packageManager),
builder: options.builder || detectBuilder(packageManager, projectType),
linkable: !!options.linkable,
pnp: pnp || options.usePnp,
};

View File

@ -104,11 +104,6 @@ export const link = async ({ target, local, start }: LinkOptions) => {
await exec(`yarn install`, { cwd: reproDir });
if (!reproPackageJson.devDependencies?.vite) {
// ⚠️ TODO: Fix peer deps in `@storybook/preset-create-react-app`
logger.info(
`Magic stuff related to @storybook/preset-create-react-app, we need to fix peerDependencies`
);
await exec(`yarn add -D webpack-hot-middleware`, { cwd: reproDir });
}

View File

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

View File

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

View File

@ -1,6 +1,6 @@
{
"name": "@storybook/client-logger",
"version": "7.0.0-beta.48",
"version": "7.0.0-beta.49",
"description": "",
"keywords": [
"storybook"
@ -56,5 +56,5 @@
"./src/index.ts"
]
},
"gitHead": "8c9765f9cd204fc63b928526941d8d8bffaf7c38"
"gitHead": "a2b4f0b42ee2b071390794bbdf99d0366fa32472"
}

View File

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

View File

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

View File

@ -1,6 +1,6 @@
{
"name": "@storybook/core-common",
"version": "7.0.0-beta.48",
"version": "7.0.0-beta.49",
"description": "Storybook framework-agnostic API",
"keywords": [
"storybook"
@ -43,8 +43,8 @@
"prep": "../../../scripts/prepare/bundle.ts"
},
"dependencies": {
"@storybook/node-logger": "7.0.0-beta.48",
"@storybook/types": "7.0.0-beta.48",
"@storybook/node-logger": "7.0.0-beta.49",
"@storybook/types": "7.0.0-beta.49",
"@types/node": "^16.0.0",
"@types/pretty-hrtime": "^1.0.0",
"chalk": "^4.1.0",
@ -80,5 +80,5 @@
],
"platform": "node"
},
"gitHead": "8c9765f9cd204fc63b928526941d8d8bffaf7c38"
"gitHead": "a2b4f0b42ee2b071390794bbdf99d0366fa32472"
}

View File

@ -1,6 +1,6 @@
{
"name": "@storybook/core-events",
"version": "7.0.0-beta.48",
"version": "7.0.0-beta.49",
"description": "Event names used in storybook core",
"keywords": [
"storybook"
@ -53,5 +53,5 @@
"./src/index.ts"
]
},
"gitHead": "8c9765f9cd204fc63b928526941d8d8bffaf7c38"
"gitHead": "a2b4f0b42ee2b071390794bbdf99d0366fa32472"
}

View File

@ -1,6 +1,6 @@
{
"name": "@storybook/core-server",
"version": "7.0.0-beta.48",
"version": "7.0.0-beta.49",
"description": "Storybook framework-agnostic API",
"keywords": [
"storybook"
@ -58,18 +58,18 @@
"dependencies": {
"@aw-web-design/x-default-browser": "1.4.88",
"@discoveryjs/json-ext": "^0.5.3",
"@storybook/builder-manager": "7.0.0-beta.48",
"@storybook/core-common": "7.0.0-beta.48",
"@storybook/core-events": "7.0.0-beta.48",
"@storybook/builder-manager": "7.0.0-beta.49",
"@storybook/core-common": "7.0.0-beta.49",
"@storybook/core-events": "7.0.0-beta.49",
"@storybook/csf": "next",
"@storybook/csf-tools": "7.0.0-beta.48",
"@storybook/csf-tools": "7.0.0-beta.49",
"@storybook/docs-mdx": "next",
"@storybook/global": "^5.0.0",
"@storybook/manager": "7.0.0-beta.48",
"@storybook/node-logger": "7.0.0-beta.48",
"@storybook/preview-api": "7.0.0-beta.48",
"@storybook/telemetry": "7.0.0-beta.48",
"@storybook/types": "7.0.0-beta.48",
"@storybook/manager": "7.0.0-beta.49",
"@storybook/node-logger": "7.0.0-beta.49",
"@storybook/preview-api": "7.0.0-beta.49",
"@storybook/telemetry": "7.0.0-beta.49",
"@storybook/types": "7.0.0-beta.49",
"@types/detect-port": "^1.3.0",
"@types/node": "^16.0.0",
"@types/node-fetch": "^2.5.7",
@ -120,5 +120,5 @@
],
"platform": "node"
},
"gitHead": "8c9765f9cd204fc63b928526941d8d8bffaf7c38"
"gitHead": "a2b4f0b42ee2b071390794bbdf99d0366fa32472"
}

View File

@ -49,9 +49,6 @@ export async function storybookDevServer(options: Options) {
app.use(getAccessControlMiddleware(core?.crossOriginIsolated));
// User's own static files
const usingStatics = useStatics(router, options);
getMiddleware(options.configDir)(router);
app.use(router);
@ -70,6 +67,7 @@ export async function storybookDevServer(options: Options) {
const [previewBuilder, managerBuilder] = await Promise.all([
getPreviewBuilder(builderName, options.configDir),
getManagerBuilder(),
useStatics(router, options),
]);
if (options.debugWebpack) {
@ -116,13 +114,11 @@ export async function storybookDevServer(options: Options) {
previewStarted.catch(() => {}).then(() => next());
});
await Promise.all([initializedStoryIndexGenerator, listening, usingStatics]).then(
async ([indexGenerator]) => {
if (indexGenerator && !options.ci && !options.smokeTest && options.open) {
openInBrowser(host ? networkAddress : address);
}
await Promise.all([initializedStoryIndexGenerator, listening]).then(async ([indexGenerator]) => {
if (indexGenerator && !options.ci && !options.smokeTest && options.open) {
openInBrowser(host ? networkAddress : address);
}
);
});
if (indexError) {
await managerBuilder?.bail().catch();
await previewBuilder?.bail().catch();

View File

@ -15,7 +15,7 @@ export async function useStatics(router: any, options: Options) {
const staticDirs = await options.presets.apply<StorybookConfig['staticDirs']>('staticDirs');
const faviconPath = await options.presets.apply<string>('favicon');
if (staticDirs && options.staticDir && !isEqual(staticDirs, defaultStaticDirs)) {
if (options.staticDir && !isEqual(staticDirs, defaultStaticDirs)) {
throw new Error(dedent`
Conflict when trying to read staticDirs:
* Storybook's configuration option: 'staticDirs'
@ -25,10 +25,10 @@ export async function useStatics(router: any, options: Options) {
`);
}
const statics =
staticDirs && !isEqual(staticDirs, defaultStaticDirs)
? staticDirs.map((dir) => (typeof dir === 'string' ? dir : `${dir.from}:${dir.to}`))
: options.staticDir;
const statics = [
...staticDirs.map((dir) => (typeof dir === 'string' ? dir : `${dir.from}:${dir.to}`)),
...(options.staticDir || []),
];
if (statics && statics.length > 0) {
await Promise.all(

View File

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

View File

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

View File

@ -1,6 +1,6 @@
{
"name": "@storybook/csf-tools",
"version": "7.0.0-beta.48",
"version": "7.0.0-beta.49",
"description": "",
"keywords": [
"storybook"
@ -43,7 +43,7 @@
"dependencies": {
"@babel/types": "^7.20.2",
"@storybook/csf": "next",
"@storybook/types": "7.0.0-beta.48",
"@storybook/types": "7.0.0-beta.49",
"fs-extra": "^11.1.0",
"recast": "^0.23.1",
"ts-dedent": "^2.0.0"
@ -68,5 +68,5 @@
"cjs"
]
},
"gitHead": "8c9765f9cd204fc63b928526941d8d8bffaf7c38"
"gitHead": "a2b4f0b42ee2b071390794bbdf99d0366fa32472"
}

View File

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

View File

@ -1,6 +1,6 @@
{
"name": "@storybook/instrumenter",
"version": "7.0.0-beta.48",
"version": "7.0.0-beta.49",
"description": "",
"keywords": [
"storybook"
@ -43,11 +43,11 @@
"prep": "../../../scripts/prepare/bundle.ts"
},
"dependencies": {
"@storybook/channels": "7.0.0-beta.48",
"@storybook/client-logger": "7.0.0-beta.48",
"@storybook/core-events": "7.0.0-beta.48",
"@storybook/channels": "7.0.0-beta.49",
"@storybook/client-logger": "7.0.0-beta.49",
"@storybook/core-events": "7.0.0-beta.49",
"@storybook/global": "^5.0.0",
"@storybook/preview-api": "7.0.0-beta.48"
"@storybook/preview-api": "7.0.0-beta.49"
},
"devDependencies": {
"typescript": "~4.9.3"
@ -60,5 +60,5 @@
"./src/index.ts"
]
},
"gitHead": "8c9765f9cd204fc63b928526941d8d8bffaf7c38"
"gitHead": "a2b4f0b42ee2b071390794bbdf99d0366fa32472"
}

View File

@ -1,6 +1,6 @@
{
"name": "@storybook/api",
"version": "7.0.0-beta.48",
"version": "7.0.0-beta.49",
"description": "Storybook Manager API (facade)",
"keywords": [
"storybook"
@ -42,8 +42,20 @@
"prep": "../../../scripts/prepare/facade.ts"
},
"dependencies": {
"@storybook/client-logger": "7.0.0-beta.48",
"@storybook/manager-api": "7.0.0-beta.48"
"@storybook/client-logger": "7.0.0-beta.49",
"@storybook/manager-api": "7.0.0-beta.49"
},
"peerDependencies": {
"react": "^16.8.0 || ^17.0.0 || ^18.0.0",
"react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0"
},
"peerDependenciesMeta": {
"react": {
"optional": true
},
"react-dom": {
"optional": true
}
},
"publishConfig": {
"access": "public"
@ -54,5 +66,5 @@
],
"shim": "@storybook/manager-api"
},
"gitHead": "8c9765f9cd204fc63b928526941d8d8bffaf7c38"
"gitHead": "a2b4f0b42ee2b071390794bbdf99d0366fa32472"
}

View File

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

View File

@ -1 +1 @@
export const version = '7.0.0-beta.48';
export const version = '7.0.0-beta.49';

View File

@ -1,6 +1,6 @@
{
"name": "@storybook/node-logger",
"version": "7.0.0-beta.48",
"version": "7.0.0-beta.49",
"description": "",
"keywords": [
"storybook"
@ -60,5 +60,5 @@
"./src/index.ts"
]
},
"gitHead": "8c9765f9cd204fc63b928526941d8d8bffaf7c38"
"gitHead": "a2b4f0b42ee2b071390794bbdf99d0366fa32472"
}

View File

@ -1,6 +1,6 @@
{
"name": "@storybook/postinstall",
"version": "7.0.0-beta.48",
"version": "7.0.0-beta.49",
"description": "Storybook addons postinstall utilities",
"keywords": [
"api",
@ -57,5 +57,5 @@
"./src/index.ts"
]
},
"gitHead": "8c9765f9cd204fc63b928526941d8d8bffaf7c38"
"gitHead": "a2b4f0b42ee2b071390794bbdf99d0366fa32472"
}

View File

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

View File

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

View File

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

View File

@ -1,6 +1,6 @@
{
"name": "@storybook/router",
"version": "7.0.0-beta.48",
"version": "7.0.0-beta.49",
"description": "Core Storybook Router",
"keywords": [
"storybook"
@ -48,7 +48,7 @@
"prep": "../../../scripts/prepare/bundle.ts"
},
"dependencies": {
"@storybook/client-logger": "7.0.0-beta.48",
"@storybook/client-logger": "7.0.0-beta.49",
"memoizerific": "^1.11.3",
"qs": "^6.10.0"
},
@ -74,5 +74,5 @@
"./src/utils.ts"
]
},
"gitHead": "8c9765f9cd204fc63b928526941d8d8bffaf7c38"
"gitHead": "a2b4f0b42ee2b071390794bbdf99d0366fa32472"
}

View File

@ -1,6 +1,6 @@
{
"name": "@storybook/source-loader",
"version": "7.0.0-beta.48",
"version": "7.0.0-beta.49",
"description": "Source loader",
"keywords": [
"lib",
@ -45,7 +45,7 @@
},
"dependencies": {
"@storybook/csf": "next",
"@storybook/types": "7.0.0-beta.48",
"@storybook/types": "7.0.0-beta.49",
"estraverse": "^5.2.0",
"lodash": "^4.17.21",
"prettier": "^2.8.0"
@ -67,5 +67,5 @@
],
"platform": "node"
},
"gitHead": "8c9765f9cd204fc63b928526941d8d8bffaf7c38"
"gitHead": "a2b4f0b42ee2b071390794bbdf99d0366fa32472"
}

View File

@ -1,6 +1,6 @@
{
"name": "@storybook/store",
"version": "7.0.0-beta.48",
"version": "7.0.0-beta.49",
"description": "",
"keywords": [
"storybook"
@ -42,8 +42,8 @@
"prep": "../../../scripts/prepare/facade.ts"
},
"dependencies": {
"@storybook/client-logger": "7.0.0-beta.48",
"@storybook/preview-api": "7.0.0-beta.48"
"@storybook/client-logger": "7.0.0-beta.49",
"@storybook/preview-api": "7.0.0-beta.49"
},
"publishConfig": {
"access": "public"
@ -55,5 +55,5 @@
"platform": "node",
"shim": "@storybook/preview-api/dist/store"
},
"gitHead": "8c9765f9cd204fc63b928526941d8d8bffaf7c38"
"gitHead": "a2b4f0b42ee2b071390794bbdf99d0366fa32472"
}

View File

@ -1,6 +1,6 @@
{
"name": "@storybook/telemetry",
"version": "7.0.0-beta.48",
"version": "7.0.0-beta.49",
"description": "Telemetry logging for crash reports and usage statistics",
"keywords": [
"storybook"
@ -43,8 +43,8 @@
"prep": "../../../scripts/prepare/bundle.ts"
},
"dependencies": {
"@storybook/client-logger": "7.0.0-beta.48",
"@storybook/core-common": "7.0.0-beta.48",
"@storybook/client-logger": "7.0.0-beta.49",
"@storybook/core-common": "7.0.0-beta.49",
"chalk": "^4.1.0",
"detect-package-manager": "^2.0.1",
"fetch-retry": "^5.0.2",
@ -65,5 +65,5 @@
],
"platform": "node"
},
"gitHead": "8c9765f9cd204fc63b928526941d8d8bffaf7c38"
"gitHead": "a2b4f0b42ee2b071390794bbdf99d0366fa32472"
}

View File

@ -1,6 +1,6 @@
{
"name": "@storybook/theming",
"version": "7.0.0-beta.48",
"version": "7.0.0-beta.49",
"description": "Core Storybook Components",
"keywords": [
"storybook"
@ -49,7 +49,7 @@
},
"dependencies": {
"@emotion/use-insertion-effect-with-fallbacks": "^1.0.0",
"@storybook/client-logger": "7.0.0-beta.48",
"@storybook/client-logger": "7.0.0-beta.49",
"@storybook/global": "^5.0.0",
"memoizerific": "^1.11.3"
},
@ -80,5 +80,5 @@
],
"post": "./scripts/fix-theme-type-export.ts"
},
"gitHead": "8c9765f9cd204fc63b928526941d8d8bffaf7c38"
"gitHead": "a2b4f0b42ee2b071390794bbdf99d0366fa32472"
}

View File

@ -1,6 +1,6 @@
{
"name": "@storybook/types",
"version": "7.0.0-beta.48",
"version": "7.0.0-beta.49",
"description": "Core Storybook Types",
"keywords": [
"storybook"
@ -43,11 +43,9 @@
"prep": "../../../scripts/prepare/bundle.ts"
},
"dependencies": {
"@babel/core": "^7.12.10",
"@storybook/channels": "7.0.0-beta.48",
"@storybook/channels": "7.0.0-beta.49",
"@types/babel__core": "^7.0.0",
"@types/express": "^4.7.0",
"express": "^4.17.3",
"file-system-cache": "^2.0.0"
},
"devDependencies": {
@ -63,5 +61,5 @@
"./src/index.ts"
]
},
"gitHead": "8c9765f9cd204fc63b928526941d8d8bffaf7c38"
"gitHead": "a2b4f0b42ee2b071390794bbdf99d0366fa32472"
}

View File

@ -1,6 +1,6 @@
{
"name": "@storybook/root",
"version": "7.0.0-beta.48",
"version": "7.0.0-beta.49",
"private": true,
"homepage": "https://storybook.js.org/",
"repository": {
@ -157,6 +157,7 @@
"@storybook/preact": "workspace:*",
"@storybook/preact-vite": "workspace:*",
"@storybook/preact-webpack5": "workspace:*",
"@storybook/preset-create-react-app": "workspace:*",
"@storybook/preset-html-webpack": "workspace:*",
"@storybook/preset-preact-webpack": "workspace:*",
"@storybook/preset-react-webpack": "workspace:*",

View File

@ -0,0 +1,89 @@
## 4.1.2
- Use overrides from SB rather than defining ourselves [#254](https://github.com/storybookjs/presets/pull/254)
## 4.1.1
- Update peer dependencies and add a note about versions [#252](https://github.com/storybookjs/presets/pull/252)
## 4.1.0
- Add support for builder.core options to CRA preset [#240](https://github.com/storybookjs/presets/pull/240)
## 4.0.2
- Fix bug merging core presets [#238](https://github.com/storybookjs/presets/pull/238) [#239](https://github.com/storybookjs/presets/pull/239)
## 4.0.1
- Support CJS files using Storybook's config [#229](https://github.com/storybookjs/presets/pull/229)
## 4.0.0
- CRA: Add compatibility for CRA v5 [#214](https://github.com/storybookjs/presets/pull/214)
## 3.2.0
- Add disableWebpackDefaults for forward-compatibility with SB core
## 3.1.7
- CRA: Fix fast refresh config [#193](https://github.com/storybookjs/presets/pull/193)
## 3.1.6
- Fix monorepos and PnP [#181](https://github.com/storybookjs/presets/pull/181)
## 3.1.5
- Fix duplicate ReactDocgenTypescriptPlugin [#173](https://github.com/storybookjs/presets/pull/173)
- Bump react-docgen-typescript-plugin to 0.6.2 [#174](https://github.com/storybookjs/presets/pull/174)
## 3.1.4
- Upgrade react-docgen-typescript-plugin to 0.5.x [#158](https://github.com/storybookjs/presets/pull/158)
## 3.1.3
- Move node-logger to peer deps [#156](https://github.com/storybookjs/presets/pull/156)
## 3.1.2
- Restore node@10 compatibility [#154](https://github.com/storybookjs/presets/pull/154)
## 3.1.1
- Fix react-docgen-typescript-plugin deps [#151](https://github.com/storybookjs/presets/pull/151)
## 3.1.0
- Move to react-docgen-typescript-plugin [#149](https://github.com/storybookjs/presets/pull/149)
## 3.0.1
- Ignore default babel Config from Storybook [#147](https://github.com/storybookjs/presets/pull/147)
## 3.0.0
Reverse course on typescript docgen handling [#142](https://github.com/storybookjs/presets/pull/142)
- Add back `react-docgen-typescript-loader` to the preset
- Add compatibility with SB6's main.js `typescript` setting
## 2.1.2
- Make `@storybook/node-logger` dependency less strict [#138](https://github.com/storybookjs/presets/pull/138)
## 2.1.1
- Set PUBLIC_URL if not set [#104](https://github.com/storybookjs/presets/pull/104)
## 2.1.0
- Yarn PNP compatibility [#104](https://github.com/storybookjs/presets/pull/104)
## 2.0.0
- Remove `react-docgen-typescript-loader` from the preset [#103](https://github.com/storybookjs/presets/pull/103)
Starting in `v5.x`, `react-docgen` supports typescript natively, so we no longer recommend `react-docgen-typescript-loader` and have removed it from the preset. This is a breaking change and the migration is documented in [Storybook](https://github.com/storybookjs/storybook/blob/next/MIGRATION.md#react-prop-tables-with-typescript).

View File

@ -0,0 +1,130 @@
# Create React App preset for Storybook
One-line [Create React App](https://github.com/facebook/create-react-app) configuration for Storybook.
This preset is designed to use alongside [`@storybook/react`](https://github.com/storybookjs/storybook/tree/master/app/react).
## Compatibility
This version (4.x) of `@storybook/preset-create-react-app` is compatibly with Create React App version 5 and above. Earlier versions are compatible with earlier version of the preset.
## Basic usage
**Note: you don't need to do this manually** if you used `npx -p @storybook/cli sb init` on a create-react-app, everything should properly setup already ✅.
First, install this preset to your project.
```sh
# Yarn
yarn add -D @storybook/preset-create-react-app
# npm
npm install -D @storybook/preset-create-react-app
```
Once installed, add this preset to the appropriate file:
- `./.storybook/main.js` (for Storybook 5.3.0 and newer)
```js
module.exports = {
addons: ['@storybook/preset-create-react-app'],
};
```
- `./.storybook/presets.js` (for all Storybook versions)
```js
module.exports = ['@storybook/preset-create-react-app'];
```
## Advanced usage
### Usage with Docs
When working with Storybook Docs, simply add the following config to your `main.js` file.
```js
module.exports = {
addons: [
'@storybook/preset-create-react-app',
{
name: '@storybook/addon-docs',
options: {
configureJSX: true,
},
},
],
};
```
### CRA overrides
This preset uses CRA's Webpack/Babel configurations, so that Storybook's behavior matches your app's behavior.
However, there may be some cases where you'd rather override CRA's default behavior. If that is something you need, you can use the `craOverrides` object.
| Option | Default | Behaviour | Type | Description |
| -------------------- | ---------------- | --------- | ---------- | ------------------------------------------------------------------------------------------------------------------ |
| `fileLoaderExcludes` | `['ejs', 'mdx']` | Extends | `string[]` | Excludes file types (by extension) from CRA's `file-loader` configuration. The defaults are required by Storybook. |
Here's how you might configure this preset to ignore PDF files so they can be processed by another preset or loader:
```js
module.exports = {
addons: [
{
name: '@storybook/preset-create-react-app',
options: {
craOverrides: {
fileLoaderExcludes: ['pdf'],
},
},
},
],
};
```
### Custom `react-scripts` packages
In most cases, this preset will find your `react-scripts` package, even if it's a fork of the offical `react-scripts`.
In the event that it doesn't, you can set the package's name with `scriptsPackageName`.
```js
module.exports = {
addons: [
{
name: '@storybook/preset-create-react-app',
options: {
scriptsPackageName: '@my/react-scripts',
},
},
],
};
```
### Warning for forks of 'react-scripts'
One of the tasks that this preset does is inject the storybook config directory (the default is `.storybook`)
into the `includes` key of the webpack babel-loader config that react-scripts (or your fork) provides. This is
nice because then any components/code you've defined in your storybook config directory will be run through the
babel-loader as well.
The potential gotcha exists if you have tweaked the Conditions of the webpack babel-loader rule in your fork of
react-scripts. This preset will make the `include` condition an array (if not already), and inject the storybook
config directory. If you have changed the conditions to utilize an `exclude`, then BOTH conditions will need to
be true (which isn't likely going to work as expected).
The steps to remedy this would be to follow the steps for customizing the webpack config within the storybook
side of things. [Details for storybook custom webpack config](https://storybook.js.org/docs/configurations/custom-webpack-config/)
You'll have access to all of the rules in `config.module.rules`. You'll need to find the offending rule,
and customize it how you need it to be to be compatible with your fork.
See [Webpack Rule Conditions](https://webpack.js.org/configuration/module/#rule-conditions) for more details
concerning the conditions.
## Resources
- [Walkthrough to set up Storybook Docs with CRA & typescript](https://gist.github.com/shilman/bc9cbedb2a7efb5ec6710337cbd20c0c)
- [Example projects (used for testing this preset)](https://github.com/storybookjs/presets/tree/master/examples)

View File

@ -0,0 +1,81 @@
{
"name": "@storybook/preset-create-react-app",
"version": "7.0.0-beta.49",
"description": "Create React App preset for Storybook",
"keywords": [
"storybook"
],
"homepage": "https://github.com/storybookjs/storybook/tree/main/presets/html-webpack",
"bugs": {
"url": "https://github.com/storybookjs/storybook/issues"
},
"repository": {
"type": "git",
"url": "https://github.com/storybookjs/storybook.git",
"directory": "presets/html-webpack"
},
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/storybook"
},
"license": "MIT",
"exports": {
".": {
"node": "./dist/index.js",
"require": "./dist/index.js",
"import": "./dist/index.mjs",
"types": "./dist/index.d.ts"
},
"./preset": {
"node": "./dist/index.js",
"require": "./dist/index.js",
"import": "./dist/index.mjs",
"types": "./dist/index.d.ts"
},
"./package.json": "./package.json"
},
"main": "dist/index.js",
"module": "dist/index.mjs",
"types": "dist/index.d.ts",
"files": [
"dist/**/*",
"README.md",
"*.js",
"*.d.ts"
],
"scripts": {
"check": "../../../scripts/node_modules/.bin/tsc --noEmit",
"prep": "../../../scripts/prepare/bundle.ts"
},
"dependencies": {
"@pmmmwh/react-refresh-webpack-plugin": "^0.5.1",
"@storybook/react-docgen-typescript-plugin": "canary",
"@storybook/types": "7.0.0-beta.49",
"@types/babel__core": "^7.1.7",
"babel-plugin-react-docgen": "^4.1.0",
"pnp-webpack-plugin": "^1.7.0",
"semver": "^7.3.5"
},
"devDependencies": {
"@storybook/node-logger": "7.0.0-beta.49",
"@types/node": "^16.0.0",
"@types/semver": "^7.3.6",
"typescript": "~4.9.3"
},
"peerDependencies": {
"@babel/core": "*",
"react-scripts": ">=5.0.0"
},
"publishConfig": {
"access": "public"
},
"bundler": {
"entries": [
"./src/index.ts"
],
"formats": [
"cjs"
]
},
"gitHead": "a2b4f0b42ee2b071390794bbdf99d0366fa32472"
}

View File

@ -0,0 +1,6 @@
{
"name": "@storybook/preset-create-react-app",
"$schema": "../../node_modules/nx/schemas/project-schema.json",
"implicitDependencies": [],
"type": "library"
}

View File

@ -0,0 +1,18 @@
/* eslint-disable import/no-extraneous-dependencies */
import { logger } from '@storybook/node-logger';
import type { PluginOptions } from '../types';
const incompatiblePresets = ['@storybook/preset-scss', '@storybook/preset-typescript'];
export const checkPresets = (options: PluginOptions): void => {
const { presetsList } = options;
presetsList.forEach((preset: string | { name: string }) => {
const presetName = typeof preset === 'string' ? preset : preset.name;
if (incompatiblePresets.includes(presetName)) {
logger.warn(
`\`${presetName}\` may not be compatible with \`@storybook/preset-create-react-app\``
);
}
});
};

View File

@ -0,0 +1,30 @@
import { existsSync } from 'fs';
import { join } from 'path';
interface PartialTSConfig {
compilerOptions: {
baseUrl?: string;
};
}
const JSCONFIG = 'jsconfig.json';
const TSCONFIG = 'tsconfig.json';
export const getModulePath = (appDirectory: string): string[] => {
// CRA only supports `jsconfig.json` if `tsconfig.json` doesn't exist.
let configName = '';
if (existsSync(join(appDirectory, TSCONFIG))) {
configName = TSCONFIG;
} else if (existsSync(join(appDirectory, JSCONFIG))) {
configName = JSCONFIG;
}
try {
// eslint-disable-next-line global-require, import/no-dynamic-require
const { baseUrl } = (require(join(appDirectory, configName)) as PartialTSConfig)
.compilerOptions;
return (baseUrl ? [baseUrl] : []) as string[];
} catch (e) {
return [];
}
};

View File

@ -0,0 +1,59 @@
import { readFileSync, realpathSync, lstatSync } from 'fs';
import { join, dirname } from 'path';
export const getReactScriptsPath = (): string => {
const cwd = process.cwd();
const scriptsBinPath = join(cwd, '/node_modules/.bin/react-scripts');
if (process.platform === 'win32') {
/*
* Try to find the scripts package on Windows by following the `react-scripts` CMD file.
* https://github.com/storybookjs/storybook/issues/5801
*/
try {
const content = readFileSync(scriptsBinPath, 'utf8');
const packagePathMatch = content.match(
/"\$basedir[\\/](\S+?)[\\/]bin[\\/]react-scripts\.js"/i
);
if (packagePathMatch && packagePathMatch.length > 1) {
const scriptsPath = join(cwd, '/node_modules/.bin/', packagePathMatch[1]);
return scriptsPath;
}
} catch (e) {
// NOOP
}
} else {
/*
* Try to find the scripts package by following the `react-scripts` symlink.
* This won't work for Windows users, unless within WSL.
*/
try {
const scriptsBinPathStat = lstatSync(scriptsBinPath);
if (scriptsBinPathStat.isSymbolicLink() === true) {
const resolvedBinPath = realpathSync(scriptsBinPath);
const scriptsPath = join(resolvedBinPath, '..', '..');
return scriptsPath;
}
if (scriptsBinPathStat.isFile() === true) {
const scriptsPath = join(cwd, '/node_modules/react-scripts');
return scriptsPath;
}
} catch (e) {
// NOOP
}
}
/*
* Try to find the `react-scripts` package by name (won't catch forked scripts packages).
*/
try {
const scriptsPath = dirname(require.resolve('react-scripts/package.json'));
return scriptsPath;
} catch (e) {
// NOOP
}
return '';
};

View File

@ -0,0 +1,26 @@
import type { WebpackPluginInstance } from 'webpack';
import ReactRefreshWebpackPlugin from '@pmmmwh/react-refresh-webpack-plugin';
export const mergePlugins = (...args: WebpackPluginInstance[]): WebpackPluginInstance[] =>
args.reduce((plugins, plugin) => {
if (
plugins.some(
(includedPlugin) => includedPlugin.constructor.name === plugin.constructor.name
) ||
plugin.constructor.name === 'WebpackManifestPlugin'
) {
return plugins;
}
let updatedPlugin = plugin;
if (plugin.constructor.name === 'ReactRefreshPlugin') {
// Storybook uses webpack-hot-middleware
// https://github.com/storybookjs/presets/issues/177
updatedPlugin = new ReactRefreshWebpackPlugin({
overlay: {
sockIntegration: 'whm',
},
});
}
return [...plugins, updatedPlugin];
}, [] as WebpackPluginInstance[]);

View File

@ -0,0 +1,147 @@
/* eslint-disable @typescript-eslint/naming-convention */
import { resolve } from 'path';
import type { Configuration, RuleSetCondition, RuleSetRule } from 'webpack';
import semver from 'semver';
import type { PluginItem, TransformOptions } from '@babel/core';
import type { PluginOptions } from '../types';
type RuleSetConditions = RuleSetCondition[];
const isRegExp = (value: RegExp | unknown): value is RegExp => value instanceof RegExp;
const isString = (value: string | unknown): value is string => typeof value === 'string';
// This handles arrays in Webpack rule tests.
const testMatch = (rule: RuleSetRule, string: string): boolean => {
if (!rule.test) return false;
return Array.isArray(rule.test)
? rule.test.some((test) => isRegExp(test) && test.test(string))
: isRegExp(rule.test) && rule.test.test(string);
};
export const processCraConfig = (
craWebpackConfig: Configuration,
options: PluginOptions
): RuleSetRule[] => {
const configDir = resolve(options.configDir);
/*
* NOTE: As of version 5.3.0 of Storybook, Storybook's default loaders are no
* longer appended when using this preset, meaning less customisation is
* needed when used alongside that version.
*
* When loaders were appended in previous Storybook versions, some CRA loaders
* had to be disabled or modified to avoid conflicts.
*
* See: https://github.com/storybookjs/storybook/pull/9157
*/
const storybookVersion = semver.coerce(options.packageJson.version) || '';
const isStorybook530 = semver.gte(storybookVersion, '5.3.0');
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
return craWebpackConfig.module!.rules.reduce((rules, rule): RuleSetRule[] => {
const { oneOf, include } = rule as RuleSetRule;
// Add our `configDir` to support JSX and TypeScript in that folder.
if (testMatch(rule as RuleSetRule, '.jsx')) {
const newRule = {
...(rule as RuleSetRule),
include: [include as string, configDir].filter(Boolean),
};
return [...rules, newRule];
}
/*
* CRA makes use of Webpack's `oneOf` feature.
* https://webpack.js.org/configuration/module/#ruleoneof
*
* Here, we map over those rules and add our `configDir` as above.
*/
if (oneOf) {
return [
...rules,
{
oneOf: oneOf.map((oneOfRule: RuleSetRule): RuleSetRule => {
if (oneOfRule.type === 'asset/resource') {
if (isStorybook530) {
const excludes = [
'ejs', // Used within Storybook.
'md', // Used with Storybook Notes.
'mdx', // Used with Storybook Docs.
'cjs', // Used for CommonJS modules.
...(options.craOverrides?.fileLoaderExcludes || []),
];
const excludeRegex = new RegExp(`\\.(${excludes.join('|')})$`);
return {
...oneOfRule,
exclude: [...(oneOfRule.exclude as RuleSetConditions), excludeRegex],
};
}
return {};
}
// This rule causes conflicts with Storybook addons like `addon-info`.
if (testMatch(oneOfRule, '.css')) {
return {
...oneOfRule,
include: isStorybook530 ? undefined : [configDir],
exclude: [oneOfRule.exclude as RegExp, /@storybook/],
};
}
// Used for the next two rules modifications.
const isBabelLoader =
isString(oneOfRule.loader) && /[/\\]babel-loader[/\\]/.test(oneOfRule.loader);
// Target `babel-loader` and add user's Babel config.
if (isBabelLoader && isRegExp(oneOfRule.test) && oneOfRule.test.test('.jsx')) {
const { include: _include, options: ruleOptions } = oneOfRule;
const {
plugins: rulePlugins,
presets: rulePresets,
overrides: ruleOverrides,
} = (typeof ruleOptions === 'object' ? ruleOptions : {}) as {
plugins: PluginItem[] | null;
presets: PluginItem[] | null;
overrides: TransformOptions[] | null;
};
const {
extends: _extends,
plugins,
presets,
overrides,
} = (options as any).babelOptions;
return {
...oneOfRule,
include: [_include as string, configDir].filter(Boolean),
options: {
...(ruleOptions as Record<string, unknown>),
extends: _extends,
plugins: [...(plugins ?? []), ...(rulePlugins ?? [])],
presets: [...(presets ?? []), ...(rulePresets ?? [])],
overrides: [...(overrides ?? []), ...(ruleOverrides ?? [])],
},
};
}
// Target `babel-loader` that processes `node_modules`, and add Storybook config dir.
if (isBabelLoader && isRegExp(oneOfRule.test) && oneOfRule.test.test('.js')) {
return {
...oneOfRule,
include: [configDir],
};
}
return oneOfRule;
}),
},
];
}
return [...rules, rule as RuleSetRule];
}, [] as RuleSetRule[]);
};

View File

@ -0,0 +1,159 @@
/* eslint-disable import/no-extraneous-dependencies */
import { join, relative, dirname } from 'path';
import type { Configuration, RuleSetRule } from 'webpack';
import semver from 'semver';
import { logger } from '@storybook/node-logger';
import PnpWebpackPlugin from 'pnp-webpack-plugin';
import ReactDocgenTypescriptPlugin from '@storybook/react-docgen-typescript-plugin';
import { mergePlugins } from './helpers/mergePlugins';
import { getReactScriptsPath } from './helpers/getReactScriptsPath';
import { processCraConfig } from './helpers/processCraConfig';
import { checkPresets } from './helpers/checkPresets';
import { getModulePath } from './helpers/getModulePath';
import type { PluginOptions, CoreConfig } from './types';
const CWD = process.cwd();
const REACT_SCRIPTS_PATH = getReactScriptsPath();
const OPTION_SCRIPTS_PACKAGE = 'scriptsPackageName';
// Ensures that assets are served from the correct path when Storybook is built.
// Resolves: https://github.com/storybookjs/storybook/issues/4645
if (!process.env.PUBLIC_URL) {
process.env.PUBLIC_URL = '.';
}
type ResolveLoader = Configuration['resolveLoader'];
// This loader is shared by both the `managerWebpack` and `webpack` functions.
const resolveLoader: ResolveLoader = {
modules: ['node_modules', join(REACT_SCRIPTS_PATH, 'node_modules')],
plugins: [PnpWebpackPlugin.moduleLoader(module)],
};
// TODO: Replace with exported type from Storybook.
const core = (existing: { disableWebpackDefaults: boolean }) => ({
...existing,
disableWebpackDefaults: true,
});
// Don't use Storybook's default Babel config.
const babelDefault = (): Record<string, (string | [string, object])[]> => ({
presets: [],
plugins: [],
});
// Update the core Webpack config.
const webpack = async (
webpackConfig: Configuration = {},
options: PluginOptions
): Promise<Configuration> => {
let scriptsPath = REACT_SCRIPTS_PATH;
// Flag any potentially conflicting presets.
checkPresets(options);
// If the user has provided a package by name, try to resolve it.
const scriptsPackageName = options[OPTION_SCRIPTS_PACKAGE];
if (typeof scriptsPackageName === 'string') {
try {
scriptsPath = dirname(
require.resolve(`${scriptsPackageName}/package.json`, {
paths: [options.configDir],
})
);
} catch (e) {
logger.warn(`A \`${OPTION_SCRIPTS_PACKAGE}\` was provided, but couldn't be resolved.`);
}
}
// If there isn't a scripts-path set, return the Webpack config unmodified.
if (!scriptsPath) {
logger.error('Failed to resolve a `react-scripts` package.');
return webpackConfig;
}
logger.info(`=> Loading Webpack configuration from \`${relative(CWD, scriptsPath)}\``);
// Remove existing rules related to JavaScript and TypeScript.
logger.info(`=> Removing existing JavaScript and TypeScript rules.`);
const filteredRules =
webpackConfig.module &&
webpackConfig.module.rules.filter(
({ test }: RuleSetRule) =>
!(test instanceof RegExp && ((test && test.test('.js')) || test.test('.ts')))
);
// Require the CRA config and set the appropriate mode.
const craWebpackConfigPath = join(scriptsPath, 'config', 'webpack.config');
// eslint-disable-next-line global-require, import/no-dynamic-require
const craWebpackConfig = require(craWebpackConfigPath)(webpackConfig.mode) as Configuration;
// Select the relevant CRA rules and add the Storybook config directory.
logger.info(`=> Modifying Create React App rules.`);
const craRules = processCraConfig(craWebpackConfig, options);
// NOTE: These are set by default in Storybook 6.
const isStorybook6 = semver.gte(options.packageJson.version || '', '6.0.0');
const {
typescriptOptions = {
reactDocgen: 'react-docgen-typescript',
reactDocgenTypescriptOptions: {},
},
} = options;
const tsDocgenPlugin =
!isStorybook6 && typescriptOptions.reactDocgen === 'react-docgen-typescript'
? [new ReactDocgenTypescriptPlugin(typescriptOptions.reactDocgenTypescriptOptions)]
: [];
// NOTE: This is code replicated from
// https://github.com/storybookjs/storybook/blob/89830ad76384faeaeb0c19df3cb44232cdde261b/lib/builder-webpack5/src/preview/base-webpack.config.ts#L45-L53
// as we are not applying SB's default webpack config here.
// We need to figure out a better way to apply various layers of webpack config; perhaps
// these options need to be in a separate preset.
const isProd = webpackConfig.mode !== 'development';
const coreOptions = await options.presets.apply<CoreConfig>('core');
const builderOptions = coreOptions?.builder?.options;
const cacheConfig = builderOptions?.fsCache ? { cache: { type: 'filesystem' } } : {};
const lazyCompilationConfig =
builderOptions?.lazyCompilation && !isProd
? { experiments: { lazyCompilation: { entries: false } } }
: {};
// Return the new config.
return {
...webpackConfig,
...cacheConfig,
...lazyCompilationConfig,
module: {
...webpackConfig.module,
rules: [...(filteredRules || []), ...craRules],
},
// NOTE: this prioritizes the storybook version of a plugin
// when there are duplicates between SB and CRA
plugins: mergePlugins(
...(webpackConfig.plugins || []),
...(craWebpackConfig.plugins ?? []),
...tsDocgenPlugin
),
resolve: {
...webpackConfig.resolve,
extensions: craWebpackConfig.resolve?.extensions,
modules: [
...((webpackConfig.resolve && webpackConfig.resolve.modules) || []),
join(REACT_SCRIPTS_PATH, 'node_modules'),
...getModulePath(CWD),
],
plugins: [PnpWebpackPlugin as any],
},
resolveLoader,
} as Configuration;
};
// we do not care of the typings exported from this package
const exportedCore = core as any;
const exportedWebpack = webpack as any;
const exportedBabelDefault = babelDefault as any;
export { exportedCore as core, exportedWebpack as webpack, exportedBabelDefault as babelDefault };

View File

@ -0,0 +1,31 @@
import type { Options } from '@storybook/types';
import type { PluginOptions as RDTSPluginOptions } from '@storybook/react-docgen-typescript-plugin';
export interface PluginOptions extends Options {
/**
* Optionally set the package name of a react-scripts fork.
* In most cases, the package is located automatically by this preset.
*/
scriptsPackageName?: string;
/**
* Overrides for Create React App's Webpack configuration.
*/
craOverrides?: {
fileLoaderExcludes?: string[];
};
typescriptOptions?: {
reactDocgen: 'react-docgen-typescript' | 'react-docgen' | false;
reactDocgenTypescriptOptions: RDTSPluginOptions;
};
}
export interface CoreConfig {
builder: {
options?: {
fsCache?: boolean;
lazyCompilation?: boolean;
};
};
}

View File

@ -0,0 +1 @@
declare module 'pnp-webpack-plugin';

View File

@ -0,0 +1,7 @@
{
"extends": "../../tsconfig.json",
"compilerOptions": {
"strict": false
},
"include": ["src/**/*"]
}

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