mirror of
https://github.com/storybookjs/storybook.git
synced 2025-04-09 00:19:13 +08:00
Merge branch 'next' into norbert/mdx2-comments-migration
This commit is contained in:
commit
97e8194914
@ -162,7 +162,7 @@ jobs:
|
||||
name: Running local registry
|
||||
command: |
|
||||
cd code
|
||||
yarn local-registry --port 6001 --open
|
||||
yarn local-registry --open
|
||||
background: true
|
||||
- run:
|
||||
name: Wait for registry
|
||||
@ -203,7 +203,7 @@ jobs:
|
||||
name: Running local registry
|
||||
command: |
|
||||
cd code
|
||||
yarn local-registry --port 6001 --open
|
||||
yarn local-registry --open
|
||||
background: true
|
||||
- run:
|
||||
name: Wait for registry
|
||||
|
2
.github/workflows/generate-repros-next.yml
vendored
2
.github/workflows/generate-repros-next.yml
vendored
@ -29,7 +29,7 @@ jobs:
|
||||
- name: Compile Storybook libraries
|
||||
run: yarn task --task publish --start-from=auto --no-link
|
||||
- name: Running local registry
|
||||
run: yarn local-registry --port 6001 --open &
|
||||
run: yarn local-registry --open &
|
||||
working-directory: ./code
|
||||
- name: Wait for registry
|
||||
run: yarn wait-on http://localhost:6001
|
||||
|
2
.github/workflows/linear-export.yml
vendored
2
.github/workflows/linear-export.yml
vendored
@ -8,7 +8,7 @@ on:
|
||||
|
||||
jobs:
|
||||
trigger:
|
||||
if: github.event.label.name == 'linear'
|
||||
if: github.event.label.name == 'linear-ghaction'
|
||||
name: Export to linear
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
|
58
CHANGELOG.md
58
CHANGELOG.md
@ -1,3 +1,61 @@
|
||||
## 7.0.0-beta.25 (January 12, 2023)
|
||||
|
||||
#### Features
|
||||
|
||||
- Vue3: Rendering slots passed from controls [#20536](https://github.com/storybooks/storybook/pull/20536)
|
||||
|
||||
#### Bug Fixes
|
||||
|
||||
- Core: Export build from core-server instead of standalone [#20574](https://github.com/storybooks/storybook/pull/20574)
|
||||
|
||||
#### Maintenance
|
||||
|
||||
- Blocks: New Description API, introduce useOf [#20563](https://github.com/storybooks/storybook/pull/20563)
|
||||
|
||||
## 7.0.0-beta.24 (January 11, 2023)
|
||||
|
||||
#### Maintenance
|
||||
|
||||
- Migrations: Add `preact-vite` to new frameworks automigration [#20542](https://github.com/storybooks/storybook/pull/20542)
|
||||
|
||||
#### Build
|
||||
|
||||
- Build: remove unneeded dependencies & upgrades [#20533](https://github.com/storybooks/storybook/pull/20533)
|
||||
- Build: upgrade verdaccio [#20561](https://github.com/storybooks/storybook/pull/20561)
|
||||
- Build: remove usage of enzyme [#20534](https://github.com/storybooks/storybook/pull/20534)
|
||||
|
||||
## 7.0.0-beta.23 (January 10, 2023)
|
||||
|
||||
#### Features
|
||||
|
||||
- Composition: Add basic auth support [#20488](https://github.com/storybooks/storybook/pull/20488)
|
||||
|
||||
#### Bug Fixes
|
||||
|
||||
- UI: Fix managerEntries containing long paths with hidden folders [#20550](https://github.com/storybooks/storybook/pull/20550)
|
||||
- Addon-docs: Fix attachment logic [#20531](https://github.com/storybooks/storybook/pull/20531)
|
||||
|
||||
#### Maintenance
|
||||
|
||||
- Addon-docs: Move reactPeerCheck to docs package [#20560](https://github.com/storybooks/storybook/pull/20560)
|
||||
- Addon-docs: Rename `storyByModuleExport` to `resolveModuleExport` [#20517](https://github.com/storybooks/storybook/pull/20517)
|
||||
- Telemetry: Filter out example stories/docs from summary [#20553](https://github.com/storybooks/storybook/pull/20553)
|
||||
- Telemetry: Count play function usage [#20541](https://github.com/storybooks/storybook/pull/20541)
|
||||
- Telemetry: Add pageStoryCount [#20539](https://github.com/storybooks/storybook/pull/20539)
|
||||
- Vite/Vue3: Pre-bundle @vitejs/plugin-vue [#20343](https://github.com/storybooks/storybook/pull/20343)
|
||||
|
||||
#### Build
|
||||
|
||||
- Build: downgrade slash to non-ESM [#20543](https://github.com/storybooks/storybook/pull/20543)
|
||||
|
||||
#### Other
|
||||
|
||||
- Update GH action to use "linear-ghaction" label for sync [#20546](https://github.com/storybooks/storybook/pull/20546)
|
||||
|
||||
## 7.0.0-beta.22 (January 10, 2023)
|
||||
|
||||
Failed publish
|
||||
|
||||
## 7.0.0-beta.21 (January 9, 2023)
|
||||
|
||||
#### Maintenance
|
||||
|
13
MIGRATION.md
13
MIGRATION.md
@ -41,6 +41,7 @@
|
||||
- [Docs Changes](#docs-changes)
|
||||
- [Standalone docs files](#standalone-docs-files)
|
||||
- [Referencing stories in docs files](#referencing-stories-in-docs-files)
|
||||
- [Description block, `parameters.notes` and `parameters.info`](#description-block-parametersnotes-and-parametersinfo)
|
||||
- [Autodocs](#autodocs)
|
||||
- [Configuring the Docs Container](#configuring-the-docs-container)
|
||||
- [External Docs](#external-docs)
|
||||
@ -306,8 +307,8 @@ To opt-out of the old behavior you can set the `storyStoreV7` feature flag to `f
|
||||
module.exports = {
|
||||
features: {
|
||||
storyStoreV7: false,
|
||||
}
|
||||
}
|
||||
},
|
||||
};
|
||||
```
|
||||
|
||||
#### Removed global client APIs
|
||||
@ -796,6 +797,13 @@ import * as SecondComponentStories from './second-component.stories';
|
||||
<Story of={SecondComponentStories.standard} meta={SecondComponentStories} />
|
||||
```
|
||||
|
||||
#### Description block, `parameters.notes` and `parameters.info`
|
||||
|
||||
In 6.5 the Description doc block accepted a range of different props, `markdown`, `type` and `children` as a way to customize the content.
|
||||
The props have been simplified and the block now only accepts an `of` prop, which can be a reference to either a CSF file, a default export (meta) or a story export, depending on which description you want to be shown. See TDB DOCS LINK for a deeper explanation of the new prop.
|
||||
|
||||
`parameters.notes` and `parameters.info` have been deprecated as a way to specify descriptions. Instead use JSDoc comments above the default export or story export, or use `parameters.docs.description.story | component` directly. See TDB DOCS LINK for a deeper explanation on how to write descriptions.
|
||||
|
||||
#### Autodocs
|
||||
|
||||
In 7.0, rather than rendering each story in "docs view mode", Autodocs (formerly known as "Docs Page") operates by adding additional sidebar entries for each component. By default it uses the same template as was used in 6.x, and the entries are entitled `Docs`.
|
||||
@ -3812,4 +3820,3 @@ If you **are** using these addons, it takes two steps to migrate:
|
||||
```
|
||||
|
||||
<!-- markdown-link-check-enable -->
|
||||
|
||||
|
@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@storybook/addon-a11y",
|
||||
"version": "7.0.0-beta.21",
|
||||
"version": "7.0.0-beta.25",
|
||||
"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.21",
|
||||
"@storybook/channels": "7.0.0-beta.21",
|
||||
"@storybook/client-logger": "7.0.0-beta.21",
|
||||
"@storybook/components": "7.0.0-beta.21",
|
||||
"@storybook/core-events": "7.0.0-beta.21",
|
||||
"@storybook/addon-highlight": "7.0.0-beta.25",
|
||||
"@storybook/channels": "7.0.0-beta.25",
|
||||
"@storybook/client-logger": "7.0.0-beta.25",
|
||||
"@storybook/components": "7.0.0-beta.25",
|
||||
"@storybook/core-events": "7.0.0-beta.25",
|
||||
"@storybook/global": "^5.0.0",
|
||||
"@storybook/manager-api": "7.0.0-beta.21",
|
||||
"@storybook/preview-api": "7.0.0-beta.21",
|
||||
"@storybook/theming": "7.0.0-beta.21",
|
||||
"@storybook/types": "7.0.0-beta.21",
|
||||
"@storybook/manager-api": "7.0.0-beta.25",
|
||||
"@storybook/preview-api": "7.0.0-beta.25",
|
||||
"@storybook/theming": "7.0.0-beta.25",
|
||||
"@storybook/types": "7.0.0-beta.25",
|
||||
"axe-core": "^4.2.0",
|
||||
"lodash": "^4.17.21",
|
||||
"react-resize-detector": "^7.1.2"
|
||||
@ -104,7 +104,7 @@
|
||||
"./src/preview.tsx"
|
||||
]
|
||||
},
|
||||
"gitHead": "fb45d854842e10fa119a65c628333e3a5d495e77",
|
||||
"gitHead": "2109ab8d7c0667e686db757abf5afcbf3d48a6ec",
|
||||
"storybook": {
|
||||
"displayName": "Accessibility",
|
||||
"icon": "https://user-images.githubusercontent.com/263385/101991665-47042f80-3c7c-11eb-8f00-64b5a18f498a.png",
|
||||
|
@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@storybook/addon-actions",
|
||||
"version": "7.0.0-beta.21",
|
||||
"version": "7.0.0-beta.25",
|
||||
"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.21",
|
||||
"@storybook/components": "7.0.0-beta.21",
|
||||
"@storybook/core-events": "7.0.0-beta.21",
|
||||
"@storybook/client-logger": "7.0.0-beta.25",
|
||||
"@storybook/components": "7.0.0-beta.25",
|
||||
"@storybook/core-events": "7.0.0-beta.25",
|
||||
"@storybook/global": "^5.0.0",
|
||||
"@storybook/manager-api": "7.0.0-beta.21",
|
||||
"@storybook/preview-api": "7.0.0-beta.21",
|
||||
"@storybook/theming": "7.0.0-beta.21",
|
||||
"@storybook/types": "7.0.0-beta.21",
|
||||
"@storybook/manager-api": "7.0.0-beta.25",
|
||||
"@storybook/preview-api": "7.0.0-beta.25",
|
||||
"@storybook/theming": "7.0.0-beta.25",
|
||||
"@storybook/types": "7.0.0-beta.25",
|
||||
"dequal": "^2.0.2",
|
||||
"lodash": "^4.17.21",
|
||||
"polished": "^4.2.2",
|
||||
@ -121,7 +121,7 @@
|
||||
"./src/preview.ts"
|
||||
]
|
||||
},
|
||||
"gitHead": "fb45d854842e10fa119a65c628333e3a5d495e77",
|
||||
"gitHead": "2109ab8d7c0667e686db757abf5afcbf3d48a6ec",
|
||||
"storybook": {
|
||||
"displayName": "Actions",
|
||||
"unsupportedFrameworks": [
|
||||
|
@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@storybook/addon-backgrounds",
|
||||
"version": "7.0.0-beta.21",
|
||||
"version": "7.0.0-beta.25",
|
||||
"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.21",
|
||||
"@storybook/components": "7.0.0-beta.21",
|
||||
"@storybook/core-events": "7.0.0-beta.21",
|
||||
"@storybook/client-logger": "7.0.0-beta.25",
|
||||
"@storybook/components": "7.0.0-beta.25",
|
||||
"@storybook/core-events": "7.0.0-beta.25",
|
||||
"@storybook/global": "^5.0.0",
|
||||
"@storybook/manager-api": "7.0.0-beta.21",
|
||||
"@storybook/preview-api": "7.0.0-beta.21",
|
||||
"@storybook/theming": "7.0.0-beta.21",
|
||||
"@storybook/types": "7.0.0-beta.21",
|
||||
"@storybook/manager-api": "7.0.0-beta.25",
|
||||
"@storybook/preview-api": "7.0.0-beta.25",
|
||||
"@storybook/theming": "7.0.0-beta.25",
|
||||
"@storybook/types": "7.0.0-beta.25",
|
||||
"memoizerific": "^1.11.3",
|
||||
"ts-dedent": "^2.0.0"
|
||||
},
|
||||
@ -112,7 +112,7 @@
|
||||
"./src/preview.tsx"
|
||||
]
|
||||
},
|
||||
"gitHead": "fb45d854842e10fa119a65c628333e3a5d495e77",
|
||||
"gitHead": "2109ab8d7c0667e686db757abf5afcbf3d48a6ec",
|
||||
"storybook": {
|
||||
"displayName": "Backgrounds",
|
||||
"icon": "https://user-images.githubusercontent.com/263385/101991667-479cc600-3c7c-11eb-96d3-410e936252e7.png",
|
||||
|
@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@storybook/addon-controls",
|
||||
"version": "7.0.0-beta.21",
|
||||
"version": "7.0.0-beta.25",
|
||||
"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.21",
|
||||
"@storybook/client-logger": "7.0.0-beta.21",
|
||||
"@storybook/components": "7.0.0-beta.21",
|
||||
"@storybook/core-common": "7.0.0-beta.21",
|
||||
"@storybook/manager-api": "7.0.0-beta.21",
|
||||
"@storybook/node-logger": "7.0.0-beta.21",
|
||||
"@storybook/blocks": "7.0.0-beta.25",
|
||||
"@storybook/client-logger": "7.0.0-beta.25",
|
||||
"@storybook/components": "7.0.0-beta.25",
|
||||
"@storybook/core-common": "7.0.0-beta.25",
|
||||
"@storybook/manager-api": "7.0.0-beta.25",
|
||||
"@storybook/node-logger": "7.0.0-beta.25",
|
||||
"@storybook/preview-api": "7.0.0-beta.8",
|
||||
"@storybook/theming": "7.0.0-beta.21",
|
||||
"@storybook/types": "7.0.0-beta.21",
|
||||
"@storybook/theming": "7.0.0-beta.25",
|
||||
"@storybook/types": "7.0.0-beta.25",
|
||||
"lodash": "^4.17.21",
|
||||
"ts-dedent": "^2.0.0"
|
||||
},
|
||||
@ -102,7 +102,7 @@
|
||||
],
|
||||
"platform": "browser"
|
||||
},
|
||||
"gitHead": "fb45d854842e10fa119a65c628333e3a5d495e77",
|
||||
"gitHead": "2109ab8d7c0667e686db757abf5afcbf3d48a6ec",
|
||||
"storybook": {
|
||||
"displayName": "Controls",
|
||||
"icon": "https://user-images.githubusercontent.com/263385/101991669-479cc600-3c7c-11eb-93d9-38b67e8371f2.png",
|
||||
|
@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@storybook/addon-docs",
|
||||
"version": "7.0.0-beta.21",
|
||||
"version": "7.0.0-beta.25",
|
||||
"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.21",
|
||||
"@storybook/client-logger": "7.0.0-beta.21",
|
||||
"@storybook/components": "7.0.0-beta.21",
|
||||
"@storybook/csf-plugin": "7.0.0-beta.21",
|
||||
"@storybook/csf-tools": "7.0.0-beta.21",
|
||||
"@storybook/blocks": "7.0.0-beta.25",
|
||||
"@storybook/client-logger": "7.0.0-beta.25",
|
||||
"@storybook/components": "7.0.0-beta.25",
|
||||
"@storybook/csf-plugin": "7.0.0-beta.25",
|
||||
"@storybook/csf-tools": "7.0.0-beta.25",
|
||||
"@storybook/global": "^5.0.0",
|
||||
"@storybook/mdx2-csf": "next",
|
||||
"@storybook/node-logger": "7.0.0-beta.21",
|
||||
"@storybook/postinstall": "7.0.0-beta.21",
|
||||
"@storybook/preview-api": "7.0.0-beta.21",
|
||||
"@storybook/theming": "7.0.0-beta.21",
|
||||
"@storybook/types": "7.0.0-beta.21",
|
||||
"@storybook/node-logger": "7.0.0-beta.25",
|
||||
"@storybook/postinstall": "7.0.0-beta.25",
|
||||
"@storybook/preview-api": "7.0.0-beta.25",
|
||||
"@storybook/theming": "7.0.0-beta.25",
|
||||
"@storybook/types": "7.0.0-beta.25",
|
||||
"fs-extra": "^9.0.1",
|
||||
"remark-external-links": "^8.0.0",
|
||||
"remark-slug": "^6.0.0",
|
||||
@ -141,7 +141,7 @@
|
||||
"./src/shims/mdx-react-shim.ts"
|
||||
]
|
||||
},
|
||||
"gitHead": "fb45d854842e10fa119a65c628333e3a5d495e77",
|
||||
"gitHead": "2109ab8d7c0667e686db757abf5afcbf3d48a6ec",
|
||||
"storybook": {
|
||||
"displayName": "Docs",
|
||||
"icon": "https://user-images.githubusercontent.com/263385/101991672-48355c80-3c7c-11eb-82d9-95fa12438f64.png",
|
||||
|
@ -7,6 +7,7 @@ import type { IndexerOptions, StoryIndexer, DocsOptions, Options } from '@storyb
|
||||
import type { CsfPluginOptions } from '@storybook/csf-plugin';
|
||||
import type { JSXOptions } from '@storybook/mdx2-csf';
|
||||
import { loadCsf } from '@storybook/csf-tools';
|
||||
import { ensureReactPeerDeps } from './ensure-react-peer-deps';
|
||||
|
||||
async function webpack(
|
||||
webpackConfig: any = {},
|
||||
@ -164,4 +165,6 @@ const webpackX = webpack as any;
|
||||
const storyIndexersX = storyIndexers as any;
|
||||
const docsX = docs as any;
|
||||
|
||||
ensureReactPeerDeps();
|
||||
|
||||
export { webpackX as webpack, storyIndexersX as storyIndexers, docsX as docs };
|
||||
|
@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@storybook/addon-essentials",
|
||||
"version": "7.0.0-beta.21",
|
||||
"version": "7.0.0-beta.25",
|
||||
"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.21",
|
||||
"@storybook/addon-backgrounds": "7.0.0-beta.21",
|
||||
"@storybook/addon-controls": "7.0.0-beta.21",
|
||||
"@storybook/addon-docs": "7.0.0-beta.21",
|
||||
"@storybook/addon-highlight": "7.0.0-beta.21",
|
||||
"@storybook/addon-measure": "7.0.0-beta.21",
|
||||
"@storybook/addon-outline": "7.0.0-beta.21",
|
||||
"@storybook/addon-toolbars": "7.0.0-beta.21",
|
||||
"@storybook/addon-viewport": "7.0.0-beta.21",
|
||||
"@storybook/core-common": "7.0.0-beta.21",
|
||||
"@storybook/manager-api": "7.0.0-beta.21",
|
||||
"@storybook/node-logger": "7.0.0-beta.21",
|
||||
"@storybook/preview-api": "7.0.0-beta.21",
|
||||
"@storybook/addon-actions": "7.0.0-beta.25",
|
||||
"@storybook/addon-backgrounds": "7.0.0-beta.25",
|
||||
"@storybook/addon-controls": "7.0.0-beta.25",
|
||||
"@storybook/addon-docs": "7.0.0-beta.25",
|
||||
"@storybook/addon-highlight": "7.0.0-beta.25",
|
||||
"@storybook/addon-measure": "7.0.0-beta.25",
|
||||
"@storybook/addon-outline": "7.0.0-beta.25",
|
||||
"@storybook/addon-toolbars": "7.0.0-beta.25",
|
||||
"@storybook/addon-viewport": "7.0.0-beta.25",
|
||||
"@storybook/core-common": "7.0.0-beta.25",
|
||||
"@storybook/manager-api": "7.0.0-beta.25",
|
||||
"@storybook/node-logger": "7.0.0-beta.25",
|
||||
"@storybook/preview-api": "7.0.0-beta.25",
|
||||
"ts-dedent": "^2.0.0"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@storybook/vue": "7.0.0-beta.21",
|
||||
"@storybook/vue": "7.0.0-beta.25",
|
||||
"typescript": "^4.9.3"
|
||||
},
|
||||
"peerDependencies": {
|
||||
@ -166,5 +166,5 @@
|
||||
],
|
||||
"platform": "node"
|
||||
},
|
||||
"gitHead": "fb45d854842e10fa119a65c628333e3a5d495e77"
|
||||
"gitHead": "2109ab8d7c0667e686db757abf5afcbf3d48a6ec"
|
||||
}
|
||||
|
@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@storybook/addon-highlight",
|
||||
"version": "7.0.0-beta.21",
|
||||
"version": "7.0.0-beta.25",
|
||||
"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.21",
|
||||
"@storybook/core-events": "7.0.0-beta.25",
|
||||
"@storybook/global": "^5.0.0",
|
||||
"@storybook/preview-api": "7.0.0-beta.21"
|
||||
"@storybook/preview-api": "7.0.0-beta.25"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@types/webpack-env": "^1.16.0",
|
||||
@ -78,7 +78,7 @@
|
||||
"./src/preview.ts"
|
||||
]
|
||||
},
|
||||
"gitHead": "fb45d854842e10fa119a65c628333e3a5d495e77",
|
||||
"gitHead": "2109ab8d7c0667e686db757abf5afcbf3d48a6ec",
|
||||
"sbmodern": "dist/modern/index.js",
|
||||
"storybook": {
|
||||
"displayName": "Highlight",
|
||||
|
@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@storybook/addon-interactions",
|
||||
"version": "7.0.0-beta.21",
|
||||
"version": "7.0.0-beta.25",
|
||||
"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.21",
|
||||
"@storybook/components": "7.0.0-beta.21",
|
||||
"@storybook/core-common": "7.0.0-beta.21",
|
||||
"@storybook/core-events": "7.0.0-beta.21",
|
||||
"@storybook/client-logger": "7.0.0-beta.25",
|
||||
"@storybook/components": "7.0.0-beta.25",
|
||||
"@storybook/core-common": "7.0.0-beta.25",
|
||||
"@storybook/core-events": "7.0.0-beta.25",
|
||||
"@storybook/global": "^5.0.0",
|
||||
"@storybook/instrumenter": "7.0.0-beta.21",
|
||||
"@storybook/manager-api": "7.0.0-beta.21",
|
||||
"@storybook/preview-api": "7.0.0-beta.21",
|
||||
"@storybook/theming": "7.0.0-beta.21",
|
||||
"@storybook/types": "7.0.0-beta.21",
|
||||
"@storybook/instrumenter": "7.0.0-beta.25",
|
||||
"@storybook/manager-api": "7.0.0-beta.25",
|
||||
"@storybook/preview-api": "7.0.0-beta.25",
|
||||
"@storybook/theming": "7.0.0-beta.25",
|
||||
"@storybook/types": "7.0.0-beta.25",
|
||||
"jest-mock": "^27.0.6",
|
||||
"polished": "^4.2.2",
|
||||
"ts-dedent": "^2.2.0"
|
||||
@ -118,7 +118,7 @@
|
||||
],
|
||||
"platform": "node"
|
||||
},
|
||||
"gitHead": "fb45d854842e10fa119a65c628333e3a5d495e77",
|
||||
"gitHead": "2109ab8d7c0667e686db757abf5afcbf3d48a6ec",
|
||||
"storybook": {
|
||||
"displayName": "Interactions",
|
||||
"unsupportedFrameworks": [
|
||||
|
@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@storybook/addon-jest",
|
||||
"version": "7.0.0-beta.21",
|
||||
"version": "7.0.0-beta.25",
|
||||
"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.21",
|
||||
"@storybook/components": "7.0.0-beta.21",
|
||||
"@storybook/core-events": "7.0.0-beta.21",
|
||||
"@storybook/client-logger": "7.0.0-beta.25",
|
||||
"@storybook/components": "7.0.0-beta.25",
|
||||
"@storybook/core-events": "7.0.0-beta.25",
|
||||
"@storybook/global": "^5.0.0",
|
||||
"@storybook/manager-api": "7.0.0-beta.21",
|
||||
"@storybook/preview-api": "7.0.0-beta.21",
|
||||
"@storybook/theming": "7.0.0-beta.21",
|
||||
"@storybook/manager-api": "7.0.0-beta.25",
|
||||
"@storybook/preview-api": "7.0.0-beta.25",
|
||||
"@storybook/theming": "7.0.0-beta.25",
|
||||
"react-resize-detector": "^7.1.2",
|
||||
"upath": "^1.2.0"
|
||||
},
|
||||
@ -105,7 +105,7 @@
|
||||
],
|
||||
"platform": "browser"
|
||||
},
|
||||
"gitHead": "fb45d854842e10fa119a65c628333e3a5d495e77",
|
||||
"gitHead": "2109ab8d7c0667e686db757abf5afcbf3d48a6ec",
|
||||
"storybook": {
|
||||
"displayName": "Jest",
|
||||
"icon": "https://pbs.twimg.com/profile_images/821713465245102080/mMtKIMax_400x400.jpg",
|
||||
|
@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@storybook/addon-links",
|
||||
"version": "7.0.0-beta.21",
|
||||
"version": "7.0.0-beta.25",
|
||||
"description": "Link stories together to build demos and prototypes with your UI components",
|
||||
"keywords": [
|
||||
"addon",
|
||||
@ -77,14 +77,14 @@
|
||||
"prep": "../../../scripts/prepare/bundle.ts"
|
||||
},
|
||||
"dependencies": {
|
||||
"@storybook/client-logger": "7.0.0-beta.21",
|
||||
"@storybook/core-events": "7.0.0-beta.21",
|
||||
"@storybook/client-logger": "7.0.0-beta.25",
|
||||
"@storybook/core-events": "7.0.0-beta.25",
|
||||
"@storybook/csf": "next",
|
||||
"@storybook/global": "^5.0.0",
|
||||
"@storybook/manager-api": "7.0.0-beta.21",
|
||||
"@storybook/preview-api": "7.0.0-beta.21",
|
||||
"@storybook/router": "7.0.0-beta.21",
|
||||
"@storybook/types": "7.0.0-beta.21",
|
||||
"@storybook/manager-api": "7.0.0-beta.25",
|
||||
"@storybook/preview-api": "7.0.0-beta.25",
|
||||
"@storybook/router": "7.0.0-beta.25",
|
||||
"@storybook/types": "7.0.0-beta.25",
|
||||
"prop-types": "^15.7.2",
|
||||
"ts-dedent": "^2.0.0"
|
||||
},
|
||||
@ -114,7 +114,7 @@
|
||||
"./src/react/index.ts"
|
||||
]
|
||||
},
|
||||
"gitHead": "fb45d854842e10fa119a65c628333e3a5d495e77",
|
||||
"gitHead": "2109ab8d7c0667e686db757abf5afcbf3d48a6ec",
|
||||
"storybook": {
|
||||
"displayName": "Links",
|
||||
"icon": "https://user-images.githubusercontent.com/263385/101991673-48355c80-3c7c-11eb-9b6e-b627c96a75f6.png",
|
||||
|
@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@storybook/addon-measure",
|
||||
"version": "7.0.0-beta.21",
|
||||
"version": "7.0.0-beta.25",
|
||||
"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.21",
|
||||
"@storybook/components": "7.0.0-beta.21",
|
||||
"@storybook/core-events": "7.0.0-beta.21",
|
||||
"@storybook/client-logger": "7.0.0-beta.25",
|
||||
"@storybook/components": "7.0.0-beta.25",
|
||||
"@storybook/core-events": "7.0.0-beta.25",
|
||||
"@storybook/global": "^5.0.0",
|
||||
"@storybook/manager-api": "7.0.0-beta.21",
|
||||
"@storybook/preview-api": "7.0.0-beta.21",
|
||||
"@storybook/types": "7.0.0-beta.21"
|
||||
"@storybook/manager-api": "7.0.0-beta.25",
|
||||
"@storybook/preview-api": "7.0.0-beta.25",
|
||||
"@storybook/types": "7.0.0-beta.25"
|
||||
},
|
||||
"devDependencies": {
|
||||
"typescript": "~4.9.3"
|
||||
@ -108,7 +108,7 @@
|
||||
"./src/preview.tsx"
|
||||
]
|
||||
},
|
||||
"gitHead": "fb45d854842e10fa119a65c628333e3a5d495e77",
|
||||
"gitHead": "2109ab8d7c0667e686db757abf5afcbf3d48a6ec",
|
||||
"storybook": {
|
||||
"displayName": "Measure",
|
||||
"unsupportedFrameworks": [
|
||||
|
@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@storybook/addon-outline",
|
||||
"version": "7.0.0-beta.21",
|
||||
"version": "7.0.0-beta.25",
|
||||
"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.21",
|
||||
"@storybook/components": "7.0.0-beta.21",
|
||||
"@storybook/core-events": "7.0.0-beta.21",
|
||||
"@storybook/client-logger": "7.0.0-beta.25",
|
||||
"@storybook/components": "7.0.0-beta.25",
|
||||
"@storybook/core-events": "7.0.0-beta.25",
|
||||
"@storybook/global": "^5.0.0",
|
||||
"@storybook/manager-api": "7.0.0-beta.21",
|
||||
"@storybook/preview-api": "7.0.0-beta.21",
|
||||
"@storybook/types": "7.0.0-beta.21",
|
||||
"@storybook/manager-api": "7.0.0-beta.25",
|
||||
"@storybook/preview-api": "7.0.0-beta.25",
|
||||
"@storybook/types": "7.0.0-beta.25",
|
||||
"ts-dedent": "^2.0.0"
|
||||
},
|
||||
"devDependencies": {
|
||||
@ -112,7 +112,7 @@
|
||||
"./src/preview.tsx"
|
||||
]
|
||||
},
|
||||
"gitHead": "fb45d854842e10fa119a65c628333e3a5d495e77",
|
||||
"gitHead": "2109ab8d7c0667e686db757abf5afcbf3d48a6ec",
|
||||
"storybook": {
|
||||
"displayName": "Outline",
|
||||
"unsupportedFrameworks": [
|
||||
|
@ -7,7 +7,6 @@ module.exports = {
|
||||
'@storybook/preact',
|
||||
'@storybook/vue',
|
||||
'@storybook/svelte',
|
||||
'enzyme',
|
||||
],
|
||||
},
|
||||
};
|
||||
|
@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@storybook/addon-storyshots",
|
||||
"version": "7.0.0-beta.21",
|
||||
"version": "7.0.0-beta.25",
|
||||
"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.21",
|
||||
"@storybook/core-common": "7.0.0-beta.21",
|
||||
"@storybook/core-webpack": "7.0.0-beta.21",
|
||||
"@storybook/client-api": "7.0.0-beta.25",
|
||||
"@storybook/core-common": "7.0.0-beta.25",
|
||||
"@storybook/core-webpack": "7.0.0-beta.25",
|
||||
"@storybook/global": "^5.0.0",
|
||||
"@storybook/preview-api": "7.0.0-beta.21",
|
||||
"@storybook/types": "7.0.0-beta.21",
|
||||
"@storybook/preview-api": "7.0.0-beta.25",
|
||||
"@storybook/types": "7.0.0-beta.25",
|
||||
"@types/glob": "^7.1.3",
|
||||
"@types/jest-specific-snapshot": "^0.5.6",
|
||||
"core-js": "^3.8.2",
|
||||
@ -58,13 +58,14 @@
|
||||
"@angular/core": "^13.3.6",
|
||||
"@angular/platform-browser-dynamic": "^13.3.6",
|
||||
"@emotion/jest": "^11.8.0",
|
||||
"@storybook/addon-docs": "7.0.0-beta.21",
|
||||
"@storybook/angular": "7.0.0-beta.21",
|
||||
"@storybook/react": "7.0.0-beta.21",
|
||||
"@storybook/vue": "7.0.0-beta.21",
|
||||
"@storybook/vue3": "7.0.0-beta.21",
|
||||
"@storybook/addon-docs": "7.0.0-beta.25",
|
||||
"@storybook/angular": "7.0.0-beta.25",
|
||||
"@storybook/react": "7.0.0-beta.25",
|
||||
"@storybook/vue": "7.0.0-beta.25",
|
||||
"@storybook/vue3": "7.0.0-beta.25",
|
||||
"babel-loader": "^8.3.0",
|
||||
"enzyme": "^3.11.0",
|
||||
"enzyme-adapter-react-16": "^1.15.5",
|
||||
"enzyme-to-json": "^3.6.1",
|
||||
"jest-preset-angular": "^8.3.2",
|
||||
"jest-vue-preprocessor": "^1.7.1",
|
||||
@ -142,7 +143,7 @@
|
||||
"access": "public"
|
||||
},
|
||||
"bundler": {},
|
||||
"gitHead": "fb45d854842e10fa119a65c628333e3a5d495e77",
|
||||
"gitHead": "2109ab8d7c0667e686db757abf5afcbf3d48a6ec",
|
||||
"storybook": {
|
||||
"displayName": "Storyshots",
|
||||
"icon": "https://user-images.githubusercontent.com/263385/101991676-48cdf300-3c7c-11eb-8aa1-944dab6ab29b.png",
|
||||
|
@ -1,7 +1,11 @@
|
||||
import path from 'path';
|
||||
import { mount } from 'enzyme';
|
||||
import { mount, configure } from 'enzyme';
|
||||
// @ts-expect-error (Converted from ts-ignore)
|
||||
import Adapter from 'enzyme-adapter-react-16';
|
||||
import initStoryshots from '../src';
|
||||
|
||||
configure({ adapter: new Adapter() });
|
||||
|
||||
initStoryshots({
|
||||
framework: 'react',
|
||||
configPath: path.join(__dirname, 'exported_metadata'),
|
||||
|
@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@storybook/addon-storyshots-puppeteer",
|
||||
"version": "7.0.0-beta.21",
|
||||
"version": "7.0.0-beta.25",
|
||||
"description": "Image snapshots addition to StoryShots based on puppeteer",
|
||||
"keywords": [
|
||||
"addon",
|
||||
@ -36,18 +36,20 @@
|
||||
"dependencies": {
|
||||
"@axe-core/puppeteer": "^4.2.0",
|
||||
"@storybook/csf": "next",
|
||||
"@storybook/node-logger": "7.0.0-beta.21",
|
||||
"@storybook/types": "7.0.0-beta.21",
|
||||
"@storybook/node-logger": "7.0.0-beta.25",
|
||||
"@storybook/types": "7.0.0-beta.25",
|
||||
"@types/jest-image-snapshot": "^5.1.0",
|
||||
"jest-image-snapshot": "^6.0.0"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@types/puppeteer": "^5.4.0",
|
||||
"enzyme": "^3.11.0",
|
||||
"enzyme-to-json": "^3.6.1",
|
||||
"puppeteer": "^2.0.0 || ^3.0.0",
|
||||
"rimraf": "^3.0.2"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"@storybook/addon-storyshots": "7.0.0-beta.21",
|
||||
"@storybook/addon-storyshots": "7.0.0-beta.25",
|
||||
"puppeteer": ">=2.0.0"
|
||||
},
|
||||
"peerDependenciesMeta": {
|
||||
@ -59,5 +61,5 @@
|
||||
"access": "public"
|
||||
},
|
||||
"bundler": {},
|
||||
"gitHead": "fb45d854842e10fa119a65c628333e3a5d495e77"
|
||||
"gitHead": "2109ab8d7c0667e686db757abf5afcbf3d48a6ec"
|
||||
}
|
||||
|
@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@storybook/addon-storysource",
|
||||
"version": "7.0.0-beta.21",
|
||||
"version": "7.0.0-beta.25",
|
||||
"description": "View a story’s 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.21",
|
||||
"@storybook/components": "7.0.0-beta.21",
|
||||
"@storybook/manager-api": "7.0.0-beta.21",
|
||||
"@storybook/preview-api": "7.0.0-beta.21",
|
||||
"@storybook/router": "7.0.0-beta.21",
|
||||
"@storybook/source-loader": "7.0.0-beta.21",
|
||||
"@storybook/theming": "7.0.0-beta.21",
|
||||
"@storybook/client-logger": "7.0.0-beta.25",
|
||||
"@storybook/components": "7.0.0-beta.25",
|
||||
"@storybook/manager-api": "7.0.0-beta.25",
|
||||
"@storybook/preview-api": "7.0.0-beta.25",
|
||||
"@storybook/router": "7.0.0-beta.25",
|
||||
"@storybook/source-loader": "7.0.0-beta.25",
|
||||
"@storybook/theming": "7.0.0-beta.25",
|
||||
"estraverse": "^5.2.0",
|
||||
"prop-types": "^15.7.2",
|
||||
"react-syntax-highlighter": "^15.5.0"
|
||||
@ -92,7 +92,7 @@
|
||||
"./src/preset.ts"
|
||||
]
|
||||
},
|
||||
"gitHead": "fb45d854842e10fa119a65c628333e3a5d495e77",
|
||||
"gitHead": "2109ab8d7c0667e686db757abf5afcbf3d48a6ec",
|
||||
"storybook": {
|
||||
"displayName": "Storysource",
|
||||
"icon": "https://user-images.githubusercontent.com/263385/101991675-48cdf300-3c7c-11eb-9400-58de5ac6daa7.png",
|
||||
|
@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@storybook/addon-toolbars",
|
||||
"version": "7.0.0-beta.21",
|
||||
"version": "7.0.0-beta.25",
|
||||
"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.21",
|
||||
"@storybook/components": "7.0.0-beta.21",
|
||||
"@storybook/manager-api": "7.0.0-beta.21",
|
||||
"@storybook/preview-api": "7.0.0-beta.21",
|
||||
"@storybook/theming": "7.0.0-beta.21"
|
||||
"@storybook/client-logger": "7.0.0-beta.25",
|
||||
"@storybook/components": "7.0.0-beta.25",
|
||||
"@storybook/manager-api": "7.0.0-beta.25",
|
||||
"@storybook/preview-api": "7.0.0-beta.25",
|
||||
"@storybook/theming": "7.0.0-beta.25"
|
||||
},
|
||||
"devDependencies": {
|
||||
"typescript": "~4.9.3"
|
||||
@ -99,7 +99,7 @@
|
||||
],
|
||||
"platform": "browser"
|
||||
},
|
||||
"gitHead": "fb45d854842e10fa119a65c628333e3a5d495e77",
|
||||
"gitHead": "2109ab8d7c0667e686db757abf5afcbf3d48a6ec",
|
||||
"storybook": {
|
||||
"displayName": "Toolbars",
|
||||
"icon": "https://user-images.githubusercontent.com/263385/101991677-48cdf300-3c7c-11eb-93b4-19b0e3366959.png",
|
||||
|
@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@storybook/addon-viewport",
|
||||
"version": "7.0.0-beta.21",
|
||||
"version": "7.0.0-beta.25",
|
||||
"description": "Build responsive components by adjusting Storybook’s viewport size and orientation",
|
||||
"keywords": [
|
||||
"addon",
|
||||
@ -73,13 +73,13 @@
|
||||
"prep": "../../../scripts/prepare/bundle.ts"
|
||||
},
|
||||
"dependencies": {
|
||||
"@storybook/client-logger": "7.0.0-beta.21",
|
||||
"@storybook/components": "7.0.0-beta.21",
|
||||
"@storybook/core-events": "7.0.0-beta.21",
|
||||
"@storybook/client-logger": "7.0.0-beta.25",
|
||||
"@storybook/components": "7.0.0-beta.25",
|
||||
"@storybook/core-events": "7.0.0-beta.25",
|
||||
"@storybook/global": "^5.0.0",
|
||||
"@storybook/manager-api": "7.0.0-beta.21",
|
||||
"@storybook/preview-api": "7.0.0-beta.21",
|
||||
"@storybook/theming": "7.0.0-beta.21",
|
||||
"@storybook/manager-api": "7.0.0-beta.25",
|
||||
"@storybook/preview-api": "7.0.0-beta.25",
|
||||
"@storybook/theming": "7.0.0-beta.25",
|
||||
"memoizerific": "^1.11.3",
|
||||
"prop-types": "^15.7.2"
|
||||
},
|
||||
@ -109,7 +109,7 @@
|
||||
"./src/preview.ts"
|
||||
]
|
||||
},
|
||||
"gitHead": "fb45d854842e10fa119a65c628333e3a5d495e77",
|
||||
"gitHead": "2109ab8d7c0667e686db757abf5afcbf3d48a6ec",
|
||||
"storybook": {
|
||||
"displayName": "Viewport",
|
||||
"icon": "https://user-images.githubusercontent.com/263385/101991678-48cdf300-3c7c-11eb-9764-f8af293c1b28.png",
|
||||
|
@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@storybook/angular",
|
||||
"version": "7.0.0-beta.21",
|
||||
"version": "7.0.0-beta.25",
|
||||
"description": "Storybook for Angular: Develop Angular components in isolation with hot reloading.",
|
||||
"keywords": [
|
||||
"storybook",
|
||||
@ -36,19 +36,19 @@
|
||||
"prep": "../../../scripts/prepare/tsc.ts"
|
||||
},
|
||||
"dependencies": {
|
||||
"@storybook/builder-webpack5": "7.0.0-beta.21",
|
||||
"@storybook/client-logger": "7.0.0-beta.21",
|
||||
"@storybook/core-client": "7.0.0-beta.21",
|
||||
"@storybook/core-common": "7.0.0-beta.21",
|
||||
"@storybook/core-events": "7.0.0-beta.21",
|
||||
"@storybook/core-server": "7.0.0-beta.21",
|
||||
"@storybook/core-webpack": "7.0.0-beta.21",
|
||||
"@storybook/docs-tools": "7.0.0-beta.21",
|
||||
"@storybook/builder-webpack5": "7.0.0-beta.25",
|
||||
"@storybook/client-logger": "7.0.0-beta.25",
|
||||
"@storybook/core-client": "7.0.0-beta.25",
|
||||
"@storybook/core-common": "7.0.0-beta.25",
|
||||
"@storybook/core-events": "7.0.0-beta.25",
|
||||
"@storybook/core-server": "7.0.0-beta.25",
|
||||
"@storybook/core-webpack": "7.0.0-beta.25",
|
||||
"@storybook/docs-tools": "7.0.0-beta.25",
|
||||
"@storybook/global": "^5.0.0",
|
||||
"@storybook/manager-api": "7.0.0-beta.21",
|
||||
"@storybook/node-logger": "7.0.0-beta.21",
|
||||
"@storybook/preview-api": "7.0.0-beta.21",
|
||||
"@storybook/types": "7.0.0-beta.21",
|
||||
"@storybook/manager-api": "7.0.0-beta.25",
|
||||
"@storybook/node-logger": "7.0.0-beta.25",
|
||||
"@storybook/preview-api": "7.0.0-beta.25",
|
||||
"@storybook/types": "7.0.0-beta.25",
|
||||
"@types/node": "^16.0.0",
|
||||
"@types/react": "^16.14.34",
|
||||
"@types/react-dom": "^16.9.14",
|
||||
@ -127,5 +127,5 @@
|
||||
"bundler": {
|
||||
"tsConfig": "tsconfig.build.json"
|
||||
},
|
||||
"gitHead": "fb45d854842e10fa119a65c628333e3a5d495e77"
|
||||
"gitHead": "2109ab8d7c0667e686db757abf5afcbf3d48a6ec"
|
||||
}
|
||||
|
@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@storybook/ember",
|
||||
"version": "7.0.0-beta.21",
|
||||
"version": "7.0.0-beta.25",
|
||||
"description": "Storybook for Ember: Develop Ember Component in isolation with Hot Reloading.",
|
||||
"homepage": "https://github.com/storybookjs/storybook/tree/main/frameworks/ember",
|
||||
"bugs": {
|
||||
@ -31,13 +31,12 @@
|
||||
"prep": "../../../scripts/prepare/tsc.ts"
|
||||
},
|
||||
"dependencies": {
|
||||
"@storybook/builder-webpack5": "7.0.0-beta.21",
|
||||
"@storybook/core-common": "7.0.0-beta.21",
|
||||
"@storybook/docs-tools": "7.0.0-beta.21",
|
||||
"@storybook/builder-webpack5": "7.0.0-beta.25",
|
||||
"@storybook/core-common": "7.0.0-beta.25",
|
||||
"@storybook/docs-tools": "7.0.0-beta.25",
|
||||
"@storybook/global": "^5.0.0",
|
||||
"@storybook/preview-api": "7.0.0-beta.21",
|
||||
"@storybook/types": "7.0.0-beta.21",
|
||||
"read-pkg-up": "^7.0.1",
|
||||
"@storybook/preview-api": "7.0.0-beta.25",
|
||||
"@storybook/types": "7.0.0-beta.25",
|
||||
"ts-dedent": "^2.0.0"
|
||||
},
|
||||
"devDependencies": {
|
||||
@ -60,5 +59,5 @@
|
||||
"access": "public"
|
||||
},
|
||||
"bundler": {},
|
||||
"gitHead": "fb45d854842e10fa119a65c628333e3a5d495e77"
|
||||
"gitHead": "2109ab8d7c0667e686db757abf5afcbf3d48a6ec"
|
||||
}
|
||||
|
@ -12,6 +12,8 @@ export default {
|
||||
argTypes: {
|
||||
label: { control: 'text' },
|
||||
},
|
||||
// This component will have an automatically generated Autodocs entry: https://storybook.js.org/docs/7.0/react/writing-docs/docs-page
|
||||
tags: ['autodocs'],
|
||||
};
|
||||
|
||||
// More on writing stories with args: https://storybook.js.org/docs/7.0/ember/writing-stories/args
|
||||
|
@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@storybook/html-vite",
|
||||
"version": "7.0.0-beta.21",
|
||||
"version": "7.0.0-beta.25",
|
||||
"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.21",
|
||||
"@storybook/builder-vite": "7.0.0-beta.21",
|
||||
"@storybook/channel-postmessage": "7.0.0-beta.21",
|
||||
"@storybook/channel-websocket": "7.0.0-beta.21",
|
||||
"@storybook/client-api": "7.0.0-beta.21",
|
||||
"@storybook/core-server": "7.0.0-beta.21",
|
||||
"@storybook/html": "7.0.0-beta.21",
|
||||
"@storybook/node-logger": "7.0.0-beta.21",
|
||||
"@storybook/preview-web": "7.0.0-beta.21",
|
||||
"@storybook/addons": "7.0.0-beta.25",
|
||||
"@storybook/builder-vite": "7.0.0-beta.25",
|
||||
"@storybook/channel-postmessage": "7.0.0-beta.25",
|
||||
"@storybook/channel-websocket": "7.0.0-beta.25",
|
||||
"@storybook/client-api": "7.0.0-beta.25",
|
||||
"@storybook/core-server": "7.0.0-beta.25",
|
||||
"@storybook/html": "7.0.0-beta.25",
|
||||
"@storybook/node-logger": "7.0.0-beta.25",
|
||||
"@storybook/preview-web": "7.0.0-beta.25",
|
||||
"magic-string": "^0.26.1"
|
||||
},
|
||||
"devDependencies": {
|
||||
@ -76,5 +76,5 @@
|
||||
],
|
||||
"platform": "node"
|
||||
},
|
||||
"gitHead": "fb45d854842e10fa119a65c628333e3a5d495e77"
|
||||
"gitHead": "2109ab8d7c0667e686db757abf5afcbf3d48a6ec"
|
||||
}
|
||||
|
@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@storybook/html-webpack5",
|
||||
"version": "7.0.0-beta.21",
|
||||
"version": "7.0.0-beta.25",
|
||||
"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.21",
|
||||
"@storybook/core-common": "7.0.0-beta.21",
|
||||
"@storybook/builder-webpack5": "7.0.0-beta.25",
|
||||
"@storybook/core-common": "7.0.0-beta.25",
|
||||
"@storybook/global": "^5.0.0",
|
||||
"@storybook/html": "7.0.0-beta.21",
|
||||
"@storybook/preset-html-webpack": "7.0.0-beta.21",
|
||||
"@storybook/html": "7.0.0-beta.25",
|
||||
"@storybook/preset-html-webpack": "7.0.0-beta.25",
|
||||
"@types/node": "^16.0.0"
|
||||
},
|
||||
"devDependencies": {
|
||||
@ -76,5 +76,5 @@
|
||||
],
|
||||
"platform": "node"
|
||||
},
|
||||
"gitHead": "fb45d854842e10fa119a65c628333e3a5d495e77"
|
||||
"gitHead": "2109ab8d7c0667e686db757abf5afcbf3d48a6ec"
|
||||
}
|
||||
|
@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@storybook/nextjs",
|
||||
"version": "7.0.0-beta.21",
|
||||
"version": "7.0.0-beta.25",
|
||||
"description": "Storybook for Next.js",
|
||||
"keywords": [
|
||||
"storybook",
|
||||
@ -60,13 +60,13 @@
|
||||
},
|
||||
"dependencies": {
|
||||
"@next/font": "^13.0.7",
|
||||
"@storybook/addon-actions": "7.0.0-beta.21",
|
||||
"@storybook/builder-webpack5": "7.0.0-beta.21",
|
||||
"@storybook/core-common": "7.0.0-beta.21",
|
||||
"@storybook/node-logger": "7.0.0-beta.21",
|
||||
"@storybook/preset-react-webpack": "7.0.0-beta.21",
|
||||
"@storybook/preview-api": "7.0.0-beta.21",
|
||||
"@storybook/react": "7.0.0-beta.21",
|
||||
"@storybook/addon-actions": "7.0.0-beta.25",
|
||||
"@storybook/builder-webpack5": "7.0.0-beta.25",
|
||||
"@storybook/core-common": "7.0.0-beta.25",
|
||||
"@storybook/node-logger": "7.0.0-beta.25",
|
||||
"@storybook/preset-react-webpack": "7.0.0-beta.25",
|
||||
"@storybook/preview-api": "7.0.0-beta.25",
|
||||
"@storybook/react": "7.0.0-beta.25",
|
||||
"@types/node": "^16.0.0",
|
||||
"find-up": "^5.0.0",
|
||||
"fs-extra": "^9.0.1",
|
||||
@ -123,5 +123,5 @@
|
||||
],
|
||||
"platform": "node"
|
||||
},
|
||||
"gitHead": "fb45d854842e10fa119a65c628333e3a5d495e77"
|
||||
"gitHead": "2109ab8d7c0667e686db757abf5afcbf3d48a6ec"
|
||||
}
|
||||
|
@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@storybook/preact-vite",
|
||||
"version": "7.0.0-beta.21",
|
||||
"version": "7.0.0-beta.25",
|
||||
"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.21",
|
||||
"@storybook/preact": "7.0.0-beta.21"
|
||||
"@storybook/builder-vite": "7.0.0-beta.25",
|
||||
"@storybook/preact": "7.0.0-beta.25"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@types/node": "^16.0.0",
|
||||
@ -73,5 +73,5 @@
|
||||
],
|
||||
"platform": "node"
|
||||
},
|
||||
"gitHead": "fb45d854842e10fa119a65c628333e3a5d495e77"
|
||||
"gitHead": "2109ab8d7c0667e686db757abf5afcbf3d48a6ec"
|
||||
}
|
||||
|
@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@storybook/preact-webpack5",
|
||||
"version": "7.0.0-beta.21",
|
||||
"version": "7.0.0-beta.25",
|
||||
"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.21",
|
||||
"@storybook/core-common": "7.0.0-beta.21",
|
||||
"@storybook/preact": "7.0.0-beta.21",
|
||||
"@storybook/preset-preact-webpack": "7.0.0-beta.21",
|
||||
"@storybook/builder-webpack5": "7.0.0-beta.25",
|
||||
"@storybook/core-common": "7.0.0-beta.25",
|
||||
"@storybook/preact": "7.0.0-beta.25",
|
||||
"@storybook/preset-preact-webpack": "7.0.0-beta.25",
|
||||
"@types/node": "^16.0.0"
|
||||
},
|
||||
"devDependencies": {
|
||||
@ -77,5 +77,5 @@
|
||||
],
|
||||
"platform": "node"
|
||||
},
|
||||
"gitHead": "fb45d854842e10fa119a65c628333e3a5d495e77"
|
||||
"gitHead": "2109ab8d7c0667e686db757abf5afcbf3d48a6ec"
|
||||
}
|
||||
|
@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@storybook/react-vite",
|
||||
"version": "7.0.0-beta.21",
|
||||
"version": "7.0.0-beta.25",
|
||||
"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.21",
|
||||
"@storybook/react": "7.0.0-beta.21",
|
||||
"@storybook/builder-vite": "7.0.0-beta.25",
|
||||
"@storybook/react": "7.0.0-beta.25",
|
||||
"@vitejs/plugin-react": "^3.0.0",
|
||||
"ast-types": "^0.14.2",
|
||||
"magic-string": "^0.26.1",
|
||||
@ -80,5 +80,5 @@
|
||||
],
|
||||
"platform": "node"
|
||||
},
|
||||
"gitHead": "fb45d854842e10fa119a65c628333e3a5d495e77"
|
||||
"gitHead": "2109ab8d7c0667e686db757abf5afcbf3d48a6ec"
|
||||
}
|
||||
|
@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@storybook/react-webpack5",
|
||||
"version": "7.0.0-beta.21",
|
||||
"version": "7.0.0-beta.25",
|
||||
"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.21",
|
||||
"@storybook/preset-react-webpack": "7.0.0-beta.21",
|
||||
"@storybook/react": "7.0.0-beta.21",
|
||||
"@storybook/builder-webpack5": "7.0.0-beta.25",
|
||||
"@storybook/preset-react-webpack": "7.0.0-beta.25",
|
||||
"@storybook/react": "7.0.0-beta.25",
|
||||
"@types/node": "^16.0.0"
|
||||
},
|
||||
"devDependencies": {
|
||||
@ -83,5 +83,5 @@
|
||||
],
|
||||
"platform": "node"
|
||||
},
|
||||
"gitHead": "fb45d854842e10fa119a65c628333e3a5d495e77"
|
||||
"gitHead": "2109ab8d7c0667e686db757abf5afcbf3d48a6ec"
|
||||
}
|
||||
|
@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@storybook/server-webpack5",
|
||||
"version": "7.0.0-beta.21",
|
||||
"version": "7.0.0-beta.25",
|
||||
"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.21",
|
||||
"@storybook/core-common": "7.0.0-beta.21",
|
||||
"@storybook/preset-server-webpack": "7.0.0-beta.21",
|
||||
"@storybook/server": "7.0.0-beta.21",
|
||||
"@storybook/builder-webpack5": "7.0.0-beta.25",
|
||||
"@storybook/core-common": "7.0.0-beta.25",
|
||||
"@storybook/preset-server-webpack": "7.0.0-beta.25",
|
||||
"@storybook/server": "7.0.0-beta.25",
|
||||
"@types/node": "^16.0.0"
|
||||
},
|
||||
"devDependencies": {
|
||||
@ -74,5 +74,5 @@
|
||||
],
|
||||
"platform": "node"
|
||||
},
|
||||
"gitHead": "fb45d854842e10fa119a65c628333e3a5d495e77"
|
||||
"gitHead": "2109ab8d7c0667e686db757abf5afcbf3d48a6ec"
|
||||
}
|
||||
|
@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@storybook/svelte-vite",
|
||||
"version": "7.0.0-beta.21",
|
||||
"version": "7.0.0-beta.25",
|
||||
"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.21",
|
||||
"@storybook/node-logger": "7.0.0-beta.21",
|
||||
"@storybook/svelte": "7.0.0-beta.21",
|
||||
"@storybook/builder-vite": "7.0.0-beta.25",
|
||||
"@storybook/node-logger": "7.0.0-beta.25",
|
||||
"@storybook/svelte": "7.0.0-beta.25",
|
||||
"@sveltejs/vite-plugin-svelte": "^2.0.0",
|
||||
"magic-string": "^0.26.1",
|
||||
"svelte": "^3.0.0",
|
||||
@ -80,5 +80,5 @@
|
||||
],
|
||||
"platform": "node"
|
||||
},
|
||||
"gitHead": "fb45d854842e10fa119a65c628333e3a5d495e77"
|
||||
"gitHead": "2109ab8d7c0667e686db757abf5afcbf3d48a6ec"
|
||||
}
|
||||
|
@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@storybook/svelte-webpack5",
|
||||
"version": "7.0.0-beta.21",
|
||||
"version": "7.0.0-beta.25",
|
||||
"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.21",
|
||||
"@storybook/core-common": "7.0.0-beta.21",
|
||||
"@storybook/preset-svelte-webpack": "7.0.0-beta.21",
|
||||
"@storybook/svelte": "7.0.0-beta.21"
|
||||
"@storybook/builder-webpack5": "7.0.0-beta.25",
|
||||
"@storybook/core-common": "7.0.0-beta.25",
|
||||
"@storybook/preset-svelte-webpack": "7.0.0-beta.25",
|
||||
"@storybook/svelte": "7.0.0-beta.25"
|
||||
},
|
||||
"devDependencies": {
|
||||
"svelte": "^3.48.0",
|
||||
@ -78,5 +78,5 @@
|
||||
],
|
||||
"platform": "node"
|
||||
},
|
||||
"gitHead": "fb45d854842e10fa119a65c628333e3a5d495e77"
|
||||
"gitHead": "2109ab8d7c0667e686db757abf5afcbf3d48a6ec"
|
||||
}
|
||||
|
@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@storybook/sveltekit",
|
||||
"version": "7.0.0-beta.21",
|
||||
"version": "7.0.0-beta.25",
|
||||
"description": "Storybook for SvelteKit",
|
||||
"keywords": [
|
||||
"storybook",
|
||||
@ -51,9 +51,9 @@
|
||||
"prep": "../../../scripts/prepare/bundle.ts"
|
||||
},
|
||||
"dependencies": {
|
||||
"@storybook/builder-vite": "7.0.0-beta.21",
|
||||
"@storybook/svelte": "7.0.0-beta.21",
|
||||
"@storybook/svelte-vite": "7.0.0-beta.21"
|
||||
"@storybook/builder-vite": "7.0.0-beta.25",
|
||||
"@storybook/svelte": "7.0.0-beta.25",
|
||||
"@storybook/svelte-vite": "7.0.0-beta.25"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@types/node": "^16.0.0",
|
||||
@ -76,5 +76,5 @@
|
||||
],
|
||||
"platform": "node"
|
||||
},
|
||||
"gitHead": "fb45d854842e10fa119a65c628333e3a5d495e77"
|
||||
"gitHead": "2109ab8d7c0667e686db757abf5afcbf3d48a6ec"
|
||||
}
|
||||
|
@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@storybook/vue-vite",
|
||||
"version": "7.0.0-beta.21",
|
||||
"version": "7.0.0-beta.25",
|
||||
"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.21",
|
||||
"@storybook/core-common": "7.0.0-beta.21",
|
||||
"@storybook/core-server": "7.0.0-beta.21",
|
||||
"@storybook/vue": "7.0.0-beta.21",
|
||||
"@storybook/builder-vite": "7.0.0-beta.25",
|
||||
"@storybook/core-common": "7.0.0-beta.25",
|
||||
"@storybook/core-server": "7.0.0-beta.25",
|
||||
"@storybook/vue": "7.0.0-beta.25",
|
||||
"magic-string": "^0.26.1",
|
||||
"vue-docgen-api": "^4.40.0"
|
||||
},
|
||||
@ -79,5 +79,5 @@
|
||||
],
|
||||
"platform": "node"
|
||||
},
|
||||
"gitHead": "fb45d854842e10fa119a65c628333e3a5d495e77"
|
||||
"gitHead": "2109ab8d7c0667e686db757abf5afcbf3d48a6ec"
|
||||
}
|
||||
|
@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@storybook/vue-webpack5",
|
||||
"version": "7.0.0-beta.21",
|
||||
"version": "7.0.0-beta.25",
|
||||
"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.21",
|
||||
"@storybook/core-common": "7.0.0-beta.21",
|
||||
"@storybook/preset-vue-webpack": "7.0.0-beta.21",
|
||||
"@storybook/vue": "7.0.0-beta.21",
|
||||
"@storybook/builder-webpack5": "7.0.0-beta.25",
|
||||
"@storybook/core-common": "7.0.0-beta.25",
|
||||
"@storybook/preset-vue-webpack": "7.0.0-beta.25",
|
||||
"@storybook/vue": "7.0.0-beta.25",
|
||||
"@types/node": "^16.0.0"
|
||||
},
|
||||
"devDependencies": {
|
||||
@ -83,5 +83,5 @@
|
||||
],
|
||||
"platform": "node"
|
||||
},
|
||||
"gitHead": "fb45d854842e10fa119a65c628333e3a5d495e77"
|
||||
"gitHead": "2109ab8d7c0667e686db757abf5afcbf3d48a6ec"
|
||||
}
|
||||
|
@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@storybook/vue3-vite",
|
||||
"version": "7.0.0-beta.21",
|
||||
"version": "7.0.0-beta.25",
|
||||
"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.21",
|
||||
"@storybook/core-server": "7.0.0-beta.21",
|
||||
"@storybook/vue3": "7.0.0-beta.21",
|
||||
"@storybook/builder-vite": "7.0.0-beta.25",
|
||||
"@storybook/core-server": "7.0.0-beta.25",
|
||||
"@storybook/vue3": "7.0.0-beta.25",
|
||||
"magic-string": "^0.26.1",
|
||||
"vue-docgen-api": "^4.40.0"
|
||||
},
|
||||
@ -83,5 +83,5 @@
|
||||
],
|
||||
"platform": "node"
|
||||
},
|
||||
"gitHead": "fb45d854842e10fa119a65c628333e3a5d495e77"
|
||||
"gitHead": "2109ab8d7c0667e686db757abf5afcbf3d48a6ec"
|
||||
}
|
||||
|
@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@storybook/vue3-webpack5",
|
||||
"version": "7.0.0-beta.21",
|
||||
"version": "7.0.0-beta.25",
|
||||
"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.21",
|
||||
"@storybook/core-common": "7.0.0-beta.21",
|
||||
"@storybook/preset-vue3-webpack": "7.0.0-beta.21",
|
||||
"@storybook/vue3": "7.0.0-beta.21",
|
||||
"@storybook/builder-webpack5": "7.0.0-beta.25",
|
||||
"@storybook/core-common": "7.0.0-beta.25",
|
||||
"@storybook/preset-vue3-webpack": "7.0.0-beta.25",
|
||||
"@storybook/vue3": "7.0.0-beta.25",
|
||||
"@types/node": "^16.0.0"
|
||||
},
|
||||
"devDependencies": {
|
||||
@ -80,5 +80,5 @@
|
||||
],
|
||||
"platform": "node"
|
||||
},
|
||||
"gitHead": "fb45d854842e10fa119a65c628333e3a5d495e77"
|
||||
"gitHead": "2109ab8d7c0667e686db757abf5afcbf3d48a6ec"
|
||||
}
|
||||
|
@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@storybook/web-components-vite",
|
||||
"version": "7.0.0-beta.21",
|
||||
"version": "7.0.0-beta.25",
|
||||
"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.21",
|
||||
"@storybook/core-server": "7.0.0-beta.21",
|
||||
"@storybook/node-logger": "7.0.0-beta.21",
|
||||
"@storybook/web-components": "7.0.0-beta.21",
|
||||
"@storybook/builder-vite": "7.0.0-beta.25",
|
||||
"@storybook/core-server": "7.0.0-beta.25",
|
||||
"@storybook/node-logger": "7.0.0-beta.25",
|
||||
"@storybook/web-components": "7.0.0-beta.25",
|
||||
"magic-string": "^0.26.1"
|
||||
},
|
||||
"devDependencies": {
|
||||
@ -75,5 +75,5 @@
|
||||
],
|
||||
"platform": "node"
|
||||
},
|
||||
"gitHead": "fb45d854842e10fa119a65c628333e3a5d495e77"
|
||||
"gitHead": "2109ab8d7c0667e686db757abf5afcbf3d48a6ec"
|
||||
}
|
||||
|
@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@storybook/web-components-webpack5",
|
||||
"version": "7.0.0-beta.21",
|
||||
"version": "7.0.0-beta.25",
|
||||
"description": "Storybook for web-components: View web components snippets in isolation with Hot Reloading.",
|
||||
"keywords": [
|
||||
"lit-html",
|
||||
@ -51,10 +51,10 @@
|
||||
},
|
||||
"dependencies": {
|
||||
"@babel/preset-env": "^7.20.2",
|
||||
"@storybook/builder-webpack5": "7.0.0-beta.21",
|
||||
"@storybook/core-common": "7.0.0-beta.21",
|
||||
"@storybook/preset-web-components-webpack": "7.0.0-beta.21",
|
||||
"@storybook/web-components": "7.0.0-beta.21",
|
||||
"@storybook/builder-webpack5": "7.0.0-beta.25",
|
||||
"@storybook/core-common": "7.0.0-beta.25",
|
||||
"@storybook/preset-web-components-webpack": "7.0.0-beta.25",
|
||||
"@storybook/web-components": "7.0.0-beta.25",
|
||||
"@types/node": "^16.0.0"
|
||||
},
|
||||
"devDependencies": {
|
||||
@ -79,5 +79,5 @@
|
||||
],
|
||||
"platform": "node"
|
||||
},
|
||||
"gitHead": "fb45d854842e10fa119a65c628333e3a5d495e77"
|
||||
"gitHead": "2109ab8d7c0667e686db757abf5afcbf3d48a6ec"
|
||||
}
|
||||
|
@ -1,9 +1,6 @@
|
||||
import '@testing-library/jest-dom';
|
||||
|
||||
// setup file
|
||||
import { configure } from 'enzyme';
|
||||
// @ts-expect-error (Converted from ts-ignore)
|
||||
import Adapter from 'enzyme-adapter-react-16';
|
||||
import registerRequireContextHook from '@storybook/babel-plugin-require-context-hook/register';
|
||||
|
||||
registerRequireContextHook();
|
||||
@ -23,8 +20,6 @@ const localStorageMock = {
|
||||
// @ts-expect-error (Converted from ts-ignore)
|
||||
global.localStorage = localStorageMock;
|
||||
|
||||
configure({ adapter: new Adapter() });
|
||||
|
||||
/* Fail tests on PropType warnings
|
||||
This allows us to throw an error in tests environments when there are prop-type warnings.
|
||||
This should keep the tests free of warnings going forward.
|
||||
|
@ -2,5 +2,5 @@
|
||||
"npmClient": "yarn",
|
||||
"useWorkspaces": true,
|
||||
"registry": "https://registry.npmjs.org",
|
||||
"version": "7.0.0-beta.21"
|
||||
"version": "7.0.0-beta.25"
|
||||
}
|
||||
|
@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@storybook/addons",
|
||||
"version": "7.0.0-beta.21",
|
||||
"version": "7.0.0-beta.25",
|
||||
"description": "Storybook addons store",
|
||||
"keywords": [
|
||||
"storybook"
|
||||
@ -44,9 +44,9 @@
|
||||
"prep": "../../../scripts/prepare/bundle.ts"
|
||||
},
|
||||
"dependencies": {
|
||||
"@storybook/manager-api": "7.0.0-beta.21",
|
||||
"@storybook/preview-api": "7.0.0-beta.21",
|
||||
"@storybook/types": "7.0.0-beta.21"
|
||||
"@storybook/manager-api": "7.0.0-beta.25",
|
||||
"@storybook/preview-api": "7.0.0-beta.25",
|
||||
"@storybook/types": "7.0.0-beta.25"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"react": "^16.8.0 || ^17.0.0 || ^18.0.0",
|
||||
@ -60,5 +60,5 @@
|
||||
"./src/index.ts"
|
||||
]
|
||||
},
|
||||
"gitHead": "fb45d854842e10fa119a65c628333e3a5d495e77"
|
||||
"gitHead": "2109ab8d7c0667e686db757abf5afcbf3d48a6ec"
|
||||
}
|
||||
|
@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@storybook/builder-manager",
|
||||
"version": "7.0.0-beta.21",
|
||||
"version": "7.0.0-beta.25",
|
||||
"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.21",
|
||||
"@storybook/manager": "7.0.0-beta.21",
|
||||
"@storybook/node-logger": "7.0.0-beta.21",
|
||||
"@storybook/core-common": "7.0.0-beta.25",
|
||||
"@storybook/manager": "7.0.0-beta.25",
|
||||
"@storybook/node-logger": "7.0.0-beta.25",
|
||||
"@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": "fb45d854842e10fa119a65c628333e3a5d495e77"
|
||||
"gitHead": "2109ab8d7c0667e686db757abf5afcbf3d48a6ec"
|
||||
}
|
||||
|
@ -1,7 +1,18 @@
|
||||
import findCacheDirectory from 'find-cache-dir';
|
||||
import fs from 'fs-extra';
|
||||
import { join, parse, relative } from 'node:path';
|
||||
import { join, parse, relative, sep } from 'node:path';
|
||||
import slash from 'slash';
|
||||
|
||||
const sanitizeBase = (path: string) => {
|
||||
return path.replaceAll('.', '').replaceAll('@', '').replaceAll(sep, '-').replaceAll('/', '-');
|
||||
};
|
||||
|
||||
const sanitizeFinal = (path: string) => {
|
||||
const sections = path.split(/-?node_modules-?/);
|
||||
|
||||
return sections[sections.length - 1].replaceAll('storybook-addon-', '').replaceAll('dist-', '');
|
||||
};
|
||||
|
||||
/**
|
||||
* Manager entries should be **self-invoking** bits of code.
|
||||
* They can of-course import from modules, and ESbuild will bundle all of that into a single file.
|
||||
@ -20,7 +31,7 @@ import slash from 'slash';
|
||||
*/
|
||||
export async function wrapManagerEntries(entrypoints: string[]) {
|
||||
return Promise.all(
|
||||
entrypoints.map(async (entry) => {
|
||||
entrypoints.map(async (entry, i) => {
|
||||
const { name, dir } = parse(entry);
|
||||
const cacheLocation = findCacheDirectory({ name: 'sb-manager' });
|
||||
|
||||
@ -28,7 +39,12 @@ export async function wrapManagerEntries(entrypoints: string[]) {
|
||||
throw new Error('Could not create/find cache directory');
|
||||
}
|
||||
|
||||
const location = join(cacheLocation, relative(process.cwd(), dir), `${name}-bundle.mjs`);
|
||||
const base = relative(process.cwd(), dir);
|
||||
const location = join(
|
||||
cacheLocation,
|
||||
sanitizeFinal(join(`${sanitizeBase(base)}-${i}`, `${sanitizeBase(name)}-bundle.mjs`))
|
||||
);
|
||||
|
||||
await fs.ensureFile(location);
|
||||
await fs.writeFile(location, `import '${slash(entry)}';`);
|
||||
|
||||
|
@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@storybook/builder-vite",
|
||||
"version": "7.0.0-beta.21",
|
||||
"version": "7.0.0-beta.25",
|
||||
"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,14 +43,14 @@
|
||||
"prep": "../../../scripts/prepare/bundle.ts"
|
||||
},
|
||||
"dependencies": {
|
||||
"@storybook/client-logger": "7.0.0-beta.21",
|
||||
"@storybook/core-common": "7.0.0-beta.21",
|
||||
"@storybook/csf-plugin": "7.0.0-beta.21",
|
||||
"@storybook/client-logger": "7.0.0-beta.25",
|
||||
"@storybook/core-common": "7.0.0-beta.25",
|
||||
"@storybook/csf-plugin": "7.0.0-beta.25",
|
||||
"@storybook/mdx2-csf": "next",
|
||||
"@storybook/node-logger": "7.0.0-beta.21",
|
||||
"@storybook/preview": "7.0.0-beta.21",
|
||||
"@storybook/preview-api": "7.0.0-beta.21",
|
||||
"@storybook/types": "7.0.0-beta.21",
|
||||
"@storybook/node-logger": "7.0.0-beta.25",
|
||||
"@storybook/preview": "7.0.0-beta.25",
|
||||
"@storybook/preview-api": "7.0.0-beta.25",
|
||||
"@storybook/types": "7.0.0-beta.25",
|
||||
"browser-assert": "^1.2.1",
|
||||
"es-module-lexer": "^0.9.3",
|
||||
"express": "^4.17.3",
|
||||
@ -95,5 +95,5 @@
|
||||
],
|
||||
"platform": "node"
|
||||
},
|
||||
"gitHead": "fb45d854842e10fa119a65c628333e3a5d495e77"
|
||||
"gitHead": "2109ab8d7c0667e686db757abf5afcbf3d48a6ec"
|
||||
}
|
||||
|
@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@storybook/builder-webpack5",
|
||||
"version": "7.0.0-beta.21",
|
||||
"version": "7.0.0-beta.25",
|
||||
"description": "Storybook framework-agnostic API",
|
||||
"keywords": [
|
||||
"storybook"
|
||||
@ -58,25 +58,25 @@
|
||||
},
|
||||
"dependencies": {
|
||||
"@babel/core": "^7.12.10",
|
||||
"@storybook/addons": "7.0.0-beta.21",
|
||||
"@storybook/api": "7.0.0-beta.21",
|
||||
"@storybook/channel-postmessage": "7.0.0-beta.21",
|
||||
"@storybook/channel-websocket": "7.0.0-beta.21",
|
||||
"@storybook/channels": "7.0.0-beta.21",
|
||||
"@storybook/client-api": "7.0.0-beta.21",
|
||||
"@storybook/client-logger": "7.0.0-beta.21",
|
||||
"@storybook/components": "7.0.0-beta.21",
|
||||
"@storybook/core-common": "7.0.0-beta.21",
|
||||
"@storybook/core-events": "7.0.0-beta.21",
|
||||
"@storybook/core-webpack": "7.0.0-beta.21",
|
||||
"@storybook/addons": "7.0.0-beta.25",
|
||||
"@storybook/api": "7.0.0-beta.25",
|
||||
"@storybook/channel-postmessage": "7.0.0-beta.25",
|
||||
"@storybook/channel-websocket": "7.0.0-beta.25",
|
||||
"@storybook/channels": "7.0.0-beta.25",
|
||||
"@storybook/client-api": "7.0.0-beta.25",
|
||||
"@storybook/client-logger": "7.0.0-beta.25",
|
||||
"@storybook/components": "7.0.0-beta.25",
|
||||
"@storybook/core-common": "7.0.0-beta.25",
|
||||
"@storybook/core-events": "7.0.0-beta.25",
|
||||
"@storybook/core-webpack": "7.0.0-beta.25",
|
||||
"@storybook/global": "^5.0.0",
|
||||
"@storybook/manager-api": "7.0.0-beta.21",
|
||||
"@storybook/node-logger": "7.0.0-beta.21",
|
||||
"@storybook/preview": "7.0.0-beta.21",
|
||||
"@storybook/preview-api": "7.0.0-beta.21",
|
||||
"@storybook/router": "7.0.0-beta.21",
|
||||
"@storybook/store": "7.0.0-beta.21",
|
||||
"@storybook/theming": "7.0.0-beta.21",
|
||||
"@storybook/manager-api": "7.0.0-beta.25",
|
||||
"@storybook/node-logger": "7.0.0-beta.25",
|
||||
"@storybook/preview": "7.0.0-beta.25",
|
||||
"@storybook/preview-api": "7.0.0-beta.25",
|
||||
"@storybook/router": "7.0.0-beta.25",
|
||||
"@storybook/store": "7.0.0-beta.25",
|
||||
"@storybook/theming": "7.0.0-beta.25",
|
||||
"@types/node": "^16.0.0",
|
||||
"@types/semver": "^7.3.4",
|
||||
"babel-loader": "^8.3.0",
|
||||
@ -131,5 +131,5 @@
|
||||
],
|
||||
"platform": "node"
|
||||
},
|
||||
"gitHead": "fb45d854842e10fa119a65c628333e3a5d495e77"
|
||||
"gitHead": "2109ab8d7c0667e686db757abf5afcbf3d48a6ec"
|
||||
}
|
||||
|
@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@storybook/channel-postmessage",
|
||||
"version": "7.0.0-beta.21",
|
||||
"version": "7.0.0-beta.25",
|
||||
"description": "",
|
||||
"keywords": [
|
||||
"storybook"
|
||||
@ -43,9 +43,9 @@
|
||||
"prep": "../../../scripts/prepare/bundle.ts"
|
||||
},
|
||||
"dependencies": {
|
||||
"@storybook/channels": "7.0.0-beta.21",
|
||||
"@storybook/client-logger": "7.0.0-beta.21",
|
||||
"@storybook/core-events": "7.0.0-beta.21",
|
||||
"@storybook/channels": "7.0.0-beta.25",
|
||||
"@storybook/client-logger": "7.0.0-beta.25",
|
||||
"@storybook/core-events": "7.0.0-beta.25",
|
||||
"@storybook/global": "^5.0.0",
|
||||
"qs": "^6.10.0",
|
||||
"telejson": "^7.0.3"
|
||||
@ -61,5 +61,5 @@
|
||||
"./src/index.ts"
|
||||
]
|
||||
},
|
||||
"gitHead": "fb45d854842e10fa119a65c628333e3a5d495e77"
|
||||
"gitHead": "2109ab8d7c0667e686db757abf5afcbf3d48a6ec"
|
||||
}
|
||||
|
@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@storybook/channel-websocket",
|
||||
"version": "7.0.0-beta.21",
|
||||
"version": "7.0.0-beta.25",
|
||||
"description": "",
|
||||
"keywords": [
|
||||
"storybook"
|
||||
@ -43,8 +43,8 @@
|
||||
"prep": "../../../scripts/prepare/bundle.ts"
|
||||
},
|
||||
"dependencies": {
|
||||
"@storybook/channels": "7.0.0-beta.21",
|
||||
"@storybook/client-logger": "7.0.0-beta.21",
|
||||
"@storybook/channels": "7.0.0-beta.25",
|
||||
"@storybook/client-logger": "7.0.0-beta.25",
|
||||
"@storybook/global": "^5.0.0",
|
||||
"telejson": "^7.0.3"
|
||||
},
|
||||
@ -59,5 +59,5 @@
|
||||
"./src/index.ts"
|
||||
]
|
||||
},
|
||||
"gitHead": "fb45d854842e10fa119a65c628333e3a5d495e77"
|
||||
"gitHead": "2109ab8d7c0667e686db757abf5afcbf3d48a6ec"
|
||||
}
|
||||
|
@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@storybook/channels",
|
||||
"version": "7.0.0-beta.21",
|
||||
"version": "7.0.0-beta.25",
|
||||
"description": "",
|
||||
"keywords": [
|
||||
"storybook"
|
||||
@ -53,5 +53,5 @@
|
||||
"./src/index.ts"
|
||||
]
|
||||
},
|
||||
"gitHead": "fb45d854842e10fa119a65c628333e3a5d495e77"
|
||||
"gitHead": "2109ab8d7c0667e686db757abf5afcbf3d48a6ec"
|
||||
}
|
||||
|
@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "sb",
|
||||
"version": "7.0.0-beta.21",
|
||||
"version": "7.0.0-beta.25",
|
||||
"description": "Storybook CLI",
|
||||
"keywords": [
|
||||
"storybook"
|
||||
@ -21,10 +21,10 @@
|
||||
"license": "MIT",
|
||||
"bin": "./index.js",
|
||||
"dependencies": {
|
||||
"@storybook/cli": "7.0.0-beta.21"
|
||||
"@storybook/cli": "7.0.0-beta.25"
|
||||
},
|
||||
"publishConfig": {
|
||||
"access": "public"
|
||||
},
|
||||
"gitHead": "fb45d854842e10fa119a65c628333e3a5d495e77"
|
||||
"gitHead": "2109ab8d7c0667e686db757abf5afcbf3d48a6ec"
|
||||
}
|
||||
|
@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "storybook",
|
||||
"version": "7.0.0-beta.21",
|
||||
"version": "7.0.0-beta.25",
|
||||
"description": "Storybook CLI",
|
||||
"keywords": [
|
||||
"storybook"
|
||||
@ -24,10 +24,10 @@
|
||||
"storybook": "./index.js"
|
||||
},
|
||||
"dependencies": {
|
||||
"@storybook/cli": "7.0.0-beta.21"
|
||||
"@storybook/cli": "7.0.0-beta.25"
|
||||
},
|
||||
"publishConfig": {
|
||||
"access": "public"
|
||||
},
|
||||
"gitHead": "fb45d854842e10fa119a65c628333e3a5d495e77"
|
||||
"gitHead": "2109ab8d7c0667e686db757abf5afcbf3d48a6ec"
|
||||
}
|
||||
|
@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@storybook/cli",
|
||||
"version": "7.0.0-beta.21",
|
||||
"version": "7.0.0-beta.25",
|
||||
"description": "Storybook's CLI - easiest method of adding storybook to your projects",
|
||||
"keywords": [
|
||||
"cli",
|
||||
@ -43,13 +43,13 @@
|
||||
"dependencies": {
|
||||
"@babel/core": "^7.20.2",
|
||||
"@babel/preset-env": "^7.20.2",
|
||||
"@storybook/codemod": "7.0.0-beta.21",
|
||||
"@storybook/core-common": "7.0.0-beta.21",
|
||||
"@storybook/core-server": "7.0.0-beta.21",
|
||||
"@storybook/csf-tools": "7.0.0-beta.21",
|
||||
"@storybook/node-logger": "7.0.0-beta.21",
|
||||
"@storybook/telemetry": "7.0.0-beta.21",
|
||||
"@storybook/types": "7.0.0-beta.21",
|
||||
"@storybook/codemod": "7.0.0-beta.25",
|
||||
"@storybook/core-common": "7.0.0-beta.25",
|
||||
"@storybook/core-server": "7.0.0-beta.25",
|
||||
"@storybook/csf-tools": "7.0.0-beta.25",
|
||||
"@storybook/node-logger": "7.0.0-beta.25",
|
||||
"@storybook/telemetry": "7.0.0-beta.25",
|
||||
"@storybook/types": "7.0.0-beta.25",
|
||||
"@types/semver": "^7.3.4",
|
||||
"boxen": "^5.1.2",
|
||||
"chalk": "^4.1.0",
|
||||
@ -78,7 +78,7 @@
|
||||
"util-deprecate": "^1.0.2"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@storybook/client-api": "7.0.0-beta.21",
|
||||
"@storybook/client-api": "7.0.0-beta.25",
|
||||
"@types/cross-spawn": "^6.0.2",
|
||||
"@types/prompts": "^2.0.9",
|
||||
"@types/puppeteer-core": "^2.1.0",
|
||||
@ -88,10 +88,6 @@
|
||||
"strip-json-comments": "^3.1.1",
|
||||
"typescript": "~4.9.3"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"react": "^16.8.0 || ^17.0.0 || ^18.0.0",
|
||||
"react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0"
|
||||
},
|
||||
"publishConfig": {
|
||||
"access": "public"
|
||||
},
|
||||
@ -101,5 +97,5 @@
|
||||
],
|
||||
"platform": "node"
|
||||
},
|
||||
"gitHead": "fb45d854842e10fa119a65c628333e3a5d495e77"
|
||||
"gitHead": "2109ab8d7c0667e686db757abf5afcbf3d48a6ec"
|
||||
}
|
||||
|
@ -252,6 +252,33 @@ describe('new-frameworks fix', () => {
|
||||
})
|
||||
);
|
||||
});
|
||||
|
||||
it('should update to @storybook/preact-vite', async () => {
|
||||
const packageJson = {
|
||||
dependencies: {
|
||||
'@storybook/preact': '^7.0.0-alpha.0',
|
||||
'@storybook/builder-vite': '^0.0.2',
|
||||
vite: '3.0.0',
|
||||
},
|
||||
};
|
||||
await expect(
|
||||
checkNewFrameworks({
|
||||
packageJson,
|
||||
main: {
|
||||
framework: '@storybook/preact',
|
||||
core: {
|
||||
builder: '@storybook/builder-vite',
|
||||
},
|
||||
},
|
||||
})
|
||||
).resolves.toEqual(
|
||||
expect.objectContaining({
|
||||
frameworkPackage: '@storybook/preact-vite',
|
||||
dependenciesToAdd: ['@storybook/preact-vite'],
|
||||
dependenciesToRemove: ['@storybook/builder-vite'],
|
||||
})
|
||||
);
|
||||
});
|
||||
});
|
||||
});
|
||||
});
|
||||
|
@ -18,6 +18,7 @@ const packagesMap: Record<string, { webpack5?: string; vite?: string }> = {
|
||||
},
|
||||
'@storybook/preact': {
|
||||
webpack5: '@storybook/preact-webpack5',
|
||||
vite: '@storybook/preact-vite',
|
||||
},
|
||||
'@storybook/server': {
|
||||
webpack5: '@storybook/server-webpack5',
|
||||
|
@ -2,11 +2,8 @@ import { sync as readUpSync } from 'read-pkg-up';
|
||||
import { logger } from '@storybook/node-logger';
|
||||
import { buildStaticStandalone, withTelemetry } from '@storybook/core-server';
|
||||
import { cache } from '@storybook/core-common';
|
||||
import { ensureReactPeerDeps } from './ensure-react-peer-deps';
|
||||
|
||||
export const build = async (cliOptions: any) => {
|
||||
ensureReactPeerDeps();
|
||||
|
||||
try {
|
||||
const options = {
|
||||
...cliOptions,
|
||||
|
@ -3,13 +3,10 @@ import { sync as readUpSync } from 'read-pkg-up';
|
||||
import { logger, instance as npmLog } from '@storybook/node-logger';
|
||||
import { buildDevStandalone, withTelemetry } from '@storybook/core-server';
|
||||
import { cache } from '@storybook/core-common';
|
||||
import { ensureReactPeerDeps } from './ensure-react-peer-deps';
|
||||
|
||||
export const dev = async (cliOptions: any) => {
|
||||
process.env.NODE_ENV = process.env.NODE_ENV || 'development';
|
||||
|
||||
ensureReactPeerDeps();
|
||||
|
||||
try {
|
||||
const options = {
|
||||
...cliOptions,
|
||||
|
@ -5,7 +5,8 @@ import boxen from 'boxen';
|
||||
import { dedent } from 'ts-dedent';
|
||||
import { downloadTemplate } from 'giget';
|
||||
|
||||
import { existsSync } from 'fs-extra';
|
||||
import { existsSync, readdir } from 'fs-extra';
|
||||
import type { Template, TemplateKey } from './repro-templates';
|
||||
import { allTemplates as TEMPLATES } from './repro-templates';
|
||||
|
||||
const logger = console;
|
||||
@ -26,85 +27,89 @@ export const reproNext = async ({
|
||||
branch,
|
||||
init,
|
||||
}: ReproOptions) => {
|
||||
const filterRegex = new RegExp(`^${filterValue || ''}`, 'i');
|
||||
|
||||
const keys = Object.keys(TEMPLATES) as Choice[];
|
||||
// get value from template and reduce through TEMPLATES to filter out the correct template
|
||||
const choices = keys.reduce<Choice[]>((acc, group) => {
|
||||
const current = TEMPLATES[group];
|
||||
|
||||
if (!filterValue) {
|
||||
acc.push(group);
|
||||
return acc;
|
||||
}
|
||||
|
||||
if (
|
||||
current.name.match(filterRegex) ||
|
||||
group.match(filterRegex) ||
|
||||
current.expected.builder.match(filterRegex) ||
|
||||
current.expected.framework.match(filterRegex) ||
|
||||
current.expected.renderer.match(filterRegex)
|
||||
) {
|
||||
acc.push(group);
|
||||
return acc;
|
||||
}
|
||||
|
||||
return acc;
|
||||
}, []);
|
||||
|
||||
if (choices.length === 0) {
|
||||
logger.info(
|
||||
boxen(
|
||||
dedent`
|
||||
🔎 You filtered out all templates. 🔍
|
||||
|
||||
After filtering all the templates with "${chalk.yellow(
|
||||
filterValue
|
||||
)}", we found no results. Please try again with a different filter.
|
||||
|
||||
Available templates:
|
||||
${keys.map((key) => chalk.blue`- ${key}`).join('\n')}
|
||||
`.trim(),
|
||||
{ borderStyle: 'round', padding: 1, borderColor: '#F1618C' } as any
|
||||
)
|
||||
);
|
||||
process.exit(1);
|
||||
}
|
||||
|
||||
let selectedTemplate: Choice | null = null;
|
||||
|
||||
if (choices.length === 1) {
|
||||
[selectedTemplate] = choices;
|
||||
} else {
|
||||
logger.info(
|
||||
boxen(
|
||||
dedent`
|
||||
🤗 Welcome to ${chalk.yellow('sb repro NEXT')}! 🤗
|
||||
|
||||
Create a ${chalk.green('new project')} to minimally reproduce Storybook issues.
|
||||
|
||||
1. select an environment that most closely matches your project setup.
|
||||
2. select a location for the reproduction, outside of your project.
|
||||
|
||||
After the reproduction is ready, we'll guide you through the next steps.
|
||||
`.trim(),
|
||||
{ borderStyle: 'round', padding: 1, borderColor: '#F1618C' } as any
|
||||
)
|
||||
);
|
||||
|
||||
selectedTemplate = await promptSelectedTemplate(choices);
|
||||
}
|
||||
|
||||
const hasSelectedTemplate = !!(selectedTemplate ?? null);
|
||||
if (!hasSelectedTemplate) {
|
||||
logger.error('Somehow we got no templates. Please rerun this command!');
|
||||
return;
|
||||
}
|
||||
|
||||
const selectedConfig = TEMPLATES[selectedTemplate];
|
||||
// Either get a direct match when users pass a template id, or filter through all templates
|
||||
let selectedConfig: Template | undefined = TEMPLATES[filterValue as TemplateKey];
|
||||
let selectedTemplate: Choice | null = selectedConfig ? (filterValue as TemplateKey) : null;
|
||||
|
||||
if (!selectedConfig) {
|
||||
throw new Error('🚨 Repro: please specify a valid template type');
|
||||
const filterRegex = new RegExp(`^${filterValue || ''}`, 'i');
|
||||
|
||||
const keys = Object.keys(TEMPLATES) as Choice[];
|
||||
// get value from template and reduce through TEMPLATES to filter out the correct template
|
||||
const choices = keys.reduce<Choice[]>((acc, group) => {
|
||||
const current = TEMPLATES[group];
|
||||
|
||||
if (!filterValue) {
|
||||
acc.push(group);
|
||||
return acc;
|
||||
}
|
||||
|
||||
if (
|
||||
current.name.match(filterRegex) ||
|
||||
group.match(filterRegex) ||
|
||||
current.expected.builder.match(filterRegex) ||
|
||||
current.expected.framework.match(filterRegex) ||
|
||||
current.expected.renderer.match(filterRegex)
|
||||
) {
|
||||
acc.push(group);
|
||||
return acc;
|
||||
}
|
||||
|
||||
return acc;
|
||||
}, []);
|
||||
|
||||
if (choices.length === 0) {
|
||||
logger.info(
|
||||
boxen(
|
||||
dedent`
|
||||
🔎 You filtered out all templates. 🔍
|
||||
|
||||
After filtering all the templates with "${chalk.yellow(
|
||||
filterValue
|
||||
)}", we found no results. Please try again with a different filter.
|
||||
|
||||
Available templates:
|
||||
${keys.map((key) => chalk.blue`- ${key}`).join('\n')}
|
||||
`.trim(),
|
||||
{ borderStyle: 'round', padding: 1, borderColor: '#F1618C' } as any
|
||||
)
|
||||
);
|
||||
process.exit(1);
|
||||
}
|
||||
|
||||
if (choices.length === 1) {
|
||||
[selectedTemplate] = choices;
|
||||
} else {
|
||||
logger.info(
|
||||
boxen(
|
||||
dedent`
|
||||
🤗 Welcome to ${chalk.yellow('sb repro NEXT')}! 🤗
|
||||
|
||||
Create a ${chalk.green('new project')} to minimally reproduce Storybook issues.
|
||||
|
||||
1. select an environment that most closely matches your project setup.
|
||||
2. select a location for the reproduction, outside of your project.
|
||||
|
||||
After the reproduction is ready, we'll guide you through the next steps.
|
||||
`.trim(),
|
||||
{ borderStyle: 'round', padding: 1, borderColor: '#F1618C' } as any
|
||||
)
|
||||
);
|
||||
|
||||
selectedTemplate = await promptSelectedTemplate(choices);
|
||||
}
|
||||
|
||||
const hasSelectedTemplate = !!(selectedTemplate ?? null);
|
||||
if (!hasSelectedTemplate) {
|
||||
logger.error('Somehow we got no templates. Please rerun this command!');
|
||||
return;
|
||||
}
|
||||
|
||||
selectedConfig = TEMPLATES[selectedTemplate];
|
||||
|
||||
if (!selectedConfig) {
|
||||
throw new Error('🚨 Repro: please specify a valid template type');
|
||||
}
|
||||
}
|
||||
|
||||
let selectedDirectory = outputDirectory;
|
||||
@ -114,16 +119,24 @@ export const reproNext = async ({
|
||||
}
|
||||
|
||||
if (!selectedDirectory) {
|
||||
const { directory } = await prompts({
|
||||
type: 'text',
|
||||
message: 'Enter the output directory',
|
||||
name: 'directory',
|
||||
initial: outputDirectoryName,
|
||||
validate: async (directoryName) =>
|
||||
existsSync(directoryName)
|
||||
? `${directoryName} already exists. Please choose another name.`
|
||||
: true,
|
||||
});
|
||||
const { directory } = await prompts(
|
||||
{
|
||||
type: 'text',
|
||||
message: 'Enter the output directory',
|
||||
name: 'directory',
|
||||
initial: outputDirectoryName,
|
||||
validate: async (directoryName) =>
|
||||
existsSync(directoryName)
|
||||
? `${directoryName} already exists. Please choose another name.`
|
||||
: true,
|
||||
},
|
||||
{
|
||||
onCancel: () => {
|
||||
logger.log('Command cancelled by the user. Exiting...');
|
||||
process.exit(1);
|
||||
},
|
||||
}
|
||||
);
|
||||
selectedDirectory = directory;
|
||||
}
|
||||
|
||||
@ -138,13 +151,20 @@ export const reproNext = async ({
|
||||
try {
|
||||
const templateType = init ? 'after-storybook' : 'before-storybook';
|
||||
// Download the repro based on subfolder "after-storybook" and selected branch
|
||||
await downloadTemplate(
|
||||
`github:storybookjs/repro-templates-temp/${selectedTemplate}/${templateType}#${branch}`,
|
||||
{
|
||||
force: true,
|
||||
dir: templateDestination,
|
||||
}
|
||||
);
|
||||
const gitPath = `github:storybookjs/repro-templates-temp/${selectedTemplate}/${templateType}#${branch}`;
|
||||
await downloadTemplate(gitPath, {
|
||||
force: true,
|
||||
dir: templateDestination,
|
||||
});
|
||||
// throw an error if templateDestination is an empty directory using fs-extra
|
||||
if ((await readdir(templateDestination)).length === 0) {
|
||||
throw new Error(
|
||||
dedent`Template downloaded from ${chalk.blue(gitPath)} is empty.
|
||||
Are you use it exists? Or did you want to set ${chalk.yellow(
|
||||
selectedTemplate
|
||||
)} to inDevelopment first?`
|
||||
);
|
||||
}
|
||||
} catch (err) {
|
||||
logger.error(`🚨 Failed to download repro template: ${err.message}`);
|
||||
throw err;
|
||||
@ -180,12 +200,20 @@ export const reproNext = async ({
|
||||
};
|
||||
|
||||
async function promptSelectedTemplate(choices: Choice[]): Promise<Choice | null> {
|
||||
const { template } = await prompts({
|
||||
type: 'select',
|
||||
message: '🌈 Select the template',
|
||||
name: 'template',
|
||||
choices: choices.map(toChoices),
|
||||
});
|
||||
const { template } = await prompts(
|
||||
{
|
||||
type: 'select',
|
||||
message: '🌈 Select the template',
|
||||
name: 'template',
|
||||
choices: choices.map(toChoices),
|
||||
},
|
||||
{
|
||||
onCancel: () => {
|
||||
logger.log('Command cancelled by the user. Exiting...');
|
||||
process.exit(1);
|
||||
},
|
||||
}
|
||||
);
|
||||
|
||||
return template || null;
|
||||
}
|
||||
|
@ -1,6 +1,9 @@
|
||||
import type { StorybookConfig } from '@storybook/types';
|
||||
|
||||
export type SkippableTask = 'smoke-test' | 'test-runner' | 'chromatic' | 'e2e-tests';
|
||||
export type TemplateKey = keyof typeof allTemplates;
|
||||
export type TemplateKey = keyof typeof baseTemplates | keyof typeof internalTemplates;
|
||||
export type Cadence = keyof typeof templatesByCadence;
|
||||
|
||||
export type Template = {
|
||||
/**
|
||||
* Readable name for the template, which will be used for feedback and the status page
|
||||
@ -41,9 +44,21 @@ export type Template = {
|
||||
* NOTE: Make sure to always add a TODO comment to remove this flag in a subsequent PR.
|
||||
*/
|
||||
inDevelopment?: boolean;
|
||||
/**
|
||||
* Some sandboxes might need extra modifications in the initialized Storybook,
|
||||
* such as extend main.js, for setting specific feature flags like storyStoreV7, etc.
|
||||
*/
|
||||
modifications?: {
|
||||
mainConfig?: Partial<StorybookConfig>;
|
||||
};
|
||||
/**
|
||||
* Flag to indicate that this template is a secondary template, which is used mainly to test rather specific features.
|
||||
* This means the template might be hidden from the Storybook status page or the repro CLI command.
|
||||
* */
|
||||
isInternal?: boolean;
|
||||
};
|
||||
|
||||
export const allTemplates = {
|
||||
const baseTemplates = {
|
||||
'cra/default-js': {
|
||||
name: 'Create React App (Javascript)',
|
||||
script: 'npx create-react-app .',
|
||||
@ -351,6 +366,45 @@ export const allTemplates = {
|
||||
},
|
||||
} satisfies Record<string, Template>;
|
||||
|
||||
/**
|
||||
* Internal templates reuse config from other templates and add extra config on top.
|
||||
* They must contain an id that starts with 'internal/' and contain "isInternal: true".
|
||||
* They will be hidden by default in the Storybook status page.
|
||||
*/
|
||||
const internalTemplates = {
|
||||
'internal/ssv6-vite': {
|
||||
...baseTemplates['react-vite/default-ts'],
|
||||
name: 'StoryStore v6 (react-vite/default-ts)',
|
||||
inDevelopment: true,
|
||||
isInternal: true,
|
||||
modifications: {
|
||||
mainConfig: {
|
||||
features: {
|
||||
storyStoreV7: false,
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
'internal/ssv6-webpack': {
|
||||
...baseTemplates['react-webpack/18-ts'],
|
||||
name: 'StoryStore v6 (react-webpack/18-ts)',
|
||||
inDevelopment: true,
|
||||
isInternal: true,
|
||||
modifications: {
|
||||
mainConfig: {
|
||||
features: {
|
||||
storyStoreV7: false,
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
} satisfies Record<`internal/${string}`, Template & { isInternal: true }>;
|
||||
|
||||
export const allTemplates: Record<TemplateKey, Template> = {
|
||||
...baseTemplates,
|
||||
...internalTemplates,
|
||||
};
|
||||
|
||||
export const ci: TemplateKey[] = ['cra/default-ts', 'react-vite/default-ts'];
|
||||
export const pr: TemplateKey[] = [
|
||||
...ci,
|
||||
@ -371,6 +425,8 @@ export const merged: TemplateKey[] = [
|
||||
'preact-webpack5/default-ts',
|
||||
'preact-vite/default-ts',
|
||||
'html-webpack/default',
|
||||
'internal/ssv6-vite',
|
||||
'internal/ssv6-webpack',
|
||||
];
|
||||
export const daily: TemplateKey[] = [
|
||||
...merged,
|
||||
|
@ -1,90 +1,90 @@
|
||||
// auto generated file, do not edit
|
||||
export default {
|
||||
'@storybook/addon-a11y': '7.0.0-beta.21',
|
||||
'@storybook/addon-actions': '7.0.0-beta.21',
|
||||
'@storybook/addon-backgrounds': '7.0.0-beta.21',
|
||||
'@storybook/addon-controls': '7.0.0-beta.21',
|
||||
'@storybook/addon-docs': '7.0.0-beta.21',
|
||||
'@storybook/addon-essentials': '7.0.0-beta.21',
|
||||
'@storybook/addon-highlight': '7.0.0-beta.21',
|
||||
'@storybook/addon-interactions': '7.0.0-beta.21',
|
||||
'@storybook/addon-jest': '7.0.0-beta.21',
|
||||
'@storybook/addon-links': '7.0.0-beta.21',
|
||||
'@storybook/addon-measure': '7.0.0-beta.21',
|
||||
'@storybook/addon-outline': '7.0.0-beta.21',
|
||||
'@storybook/addon-storyshots': '7.0.0-beta.21',
|
||||
'@storybook/addon-storyshots-puppeteer': '7.0.0-beta.21',
|
||||
'@storybook/addon-storysource': '7.0.0-beta.21',
|
||||
'@storybook/addon-toolbars': '7.0.0-beta.21',
|
||||
'@storybook/addon-viewport': '7.0.0-beta.21',
|
||||
'@storybook/addons': '7.0.0-beta.21',
|
||||
'@storybook/angular': '7.0.0-beta.21',
|
||||
'@storybook/manager-api': '7.0.0-beta.21',
|
||||
'@storybook/blocks': '7.0.0-beta.21',
|
||||
'@storybook/builder-manager': '7.0.0-beta.21',
|
||||
'@storybook/builder-vite': '7.0.0-beta.21',
|
||||
'@storybook/builder-webpack5': '7.0.0-beta.21',
|
||||
'@storybook/channel-postmessage': '7.0.0-beta.21',
|
||||
'@storybook/channel-websocket': '7.0.0-beta.21',
|
||||
'@storybook/channels': '7.0.0-beta.21',
|
||||
'@storybook/cli': '7.0.0-beta.21',
|
||||
'@storybook/client-api': '7.0.0-beta.21',
|
||||
'@storybook/client-logger': '7.0.0-beta.21',
|
||||
'@storybook/codemod': '7.0.0-beta.21',
|
||||
'@storybook/components': '7.0.0-beta.21',
|
||||
'@storybook/core-client': '7.0.0-beta.21',
|
||||
'@storybook/core-common': '7.0.0-beta.21',
|
||||
'@storybook/core-events': '7.0.0-beta.21',
|
||||
'@storybook/core-server': '7.0.0-beta.21',
|
||||
'@storybook/core-webpack': '7.0.0-beta.21',
|
||||
'@storybook/csf-tools': '7.0.0-beta.21',
|
||||
'@storybook/docs-tools': '7.0.0-beta.21',
|
||||
'@storybook/ember': '7.0.0-beta.21',
|
||||
'@storybook/html': '7.0.0-beta.21',
|
||||
'@storybook/html-webpack5': '7.0.0-beta.21',
|
||||
'@storybook/html-vite': '7.0.0-beta.21',
|
||||
'@storybook/instrumenter': '7.0.0-beta.21',
|
||||
'@storybook/nextjs': '7.0.0-beta.21',
|
||||
'@storybook/node-logger': '7.0.0-beta.21',
|
||||
'@storybook/postinstall': '7.0.0-beta.21',
|
||||
'@storybook/preact': '7.0.0-beta.21',
|
||||
'@storybook/preact-vite': '7.0.0-beta.21',
|
||||
'@storybook/preact-webpack5': '7.0.0-beta.21',
|
||||
'@storybook/preset-html-webpack': '7.0.0-beta.21',
|
||||
'@storybook/preset-preact-webpack': '7.0.0-beta.21',
|
||||
'@storybook/preset-react-webpack': '7.0.0-beta.21',
|
||||
'@storybook/preset-server-webpack': '7.0.0-beta.21',
|
||||
'@storybook/preset-svelte-webpack': '7.0.0-beta.21',
|
||||
'@storybook/preset-vue-webpack': '7.0.0-beta.21',
|
||||
'@storybook/preset-vue3-webpack': '7.0.0-beta.21',
|
||||
'@storybook/preset-web-components-webpack': '7.0.0-beta.21',
|
||||
'@storybook/preview': '7.0.0-beta.21',
|
||||
'@storybook/preview-api': '7.0.0-beta.21',
|
||||
'@storybook/preview-web': '7.0.0-beta.21',
|
||||
'@storybook/react': '7.0.0-beta.21',
|
||||
'@storybook/react-vite': '7.0.0-beta.21',
|
||||
'@storybook/react-webpack5': '7.0.0-beta.21',
|
||||
'@storybook/router': '7.0.0-beta.21',
|
||||
'@storybook/server': '7.0.0-beta.21',
|
||||
'@storybook/server-webpack5': '7.0.0-beta.21',
|
||||
'@storybook/source-loader': '7.0.0-beta.21',
|
||||
'@storybook/store': '7.0.0-beta.21',
|
||||
'@storybook/svelte': '7.0.0-beta.21',
|
||||
'@storybook/sveltekit': '7.0.0-beta.21',
|
||||
'@storybook/svelte-vite': '7.0.0-beta.21',
|
||||
'@storybook/svelte-webpack5': '7.0.0-beta.21',
|
||||
'@storybook/telemetry': '7.0.0-beta.21',
|
||||
'@storybook/theming': '7.0.0-beta.21',
|
||||
'@storybook/manager': '7.0.0-beta.21',
|
||||
'@storybook/vue': '7.0.0-beta.21',
|
||||
'@storybook/vue-vite': '7.0.0-beta.21',
|
||||
'@storybook/vue-webpack5': '7.0.0-beta.21',
|
||||
'@storybook/vue3': '7.0.0-beta.21',
|
||||
'@storybook/vue3-vite': '7.0.0-beta.21',
|
||||
'@storybook/vue3-webpack5': '7.0.0-beta.21',
|
||||
'@storybook/web-components': '7.0.0-beta.21',
|
||||
'@storybook/web-components-webpack5': '7.0.0-beta.21',
|
||||
'@storybook/web-components-vite': '7.0.0-beta.21',
|
||||
sb: '7.0.0-beta.21',
|
||||
storybook: '7.0.0-beta.21',
|
||||
'@storybook/addon-a11y': '7.0.0-beta.25',
|
||||
'@storybook/addon-actions': '7.0.0-beta.25',
|
||||
'@storybook/addon-backgrounds': '7.0.0-beta.25',
|
||||
'@storybook/addon-controls': '7.0.0-beta.25',
|
||||
'@storybook/addon-docs': '7.0.0-beta.25',
|
||||
'@storybook/addon-essentials': '7.0.0-beta.25',
|
||||
'@storybook/addon-highlight': '7.0.0-beta.25',
|
||||
'@storybook/addon-interactions': '7.0.0-beta.25',
|
||||
'@storybook/addon-jest': '7.0.0-beta.25',
|
||||
'@storybook/addon-links': '7.0.0-beta.25',
|
||||
'@storybook/addon-measure': '7.0.0-beta.25',
|
||||
'@storybook/addon-outline': '7.0.0-beta.25',
|
||||
'@storybook/addon-storyshots': '7.0.0-beta.25',
|
||||
'@storybook/addon-storyshots-puppeteer': '7.0.0-beta.25',
|
||||
'@storybook/addon-storysource': '7.0.0-beta.25',
|
||||
'@storybook/addon-toolbars': '7.0.0-beta.25',
|
||||
'@storybook/addon-viewport': '7.0.0-beta.25',
|
||||
'@storybook/addons': '7.0.0-beta.25',
|
||||
'@storybook/angular': '7.0.0-beta.25',
|
||||
'@storybook/manager-api': '7.0.0-beta.25',
|
||||
'@storybook/blocks': '7.0.0-beta.25',
|
||||
'@storybook/builder-manager': '7.0.0-beta.25',
|
||||
'@storybook/builder-vite': '7.0.0-beta.25',
|
||||
'@storybook/builder-webpack5': '7.0.0-beta.25',
|
||||
'@storybook/channel-postmessage': '7.0.0-beta.25',
|
||||
'@storybook/channel-websocket': '7.0.0-beta.25',
|
||||
'@storybook/channels': '7.0.0-beta.25',
|
||||
'@storybook/cli': '7.0.0-beta.25',
|
||||
'@storybook/client-api': '7.0.0-beta.25',
|
||||
'@storybook/client-logger': '7.0.0-beta.25',
|
||||
'@storybook/codemod': '7.0.0-beta.25',
|
||||
'@storybook/components': '7.0.0-beta.25',
|
||||
'@storybook/core-client': '7.0.0-beta.25',
|
||||
'@storybook/core-common': '7.0.0-beta.25',
|
||||
'@storybook/core-events': '7.0.0-beta.25',
|
||||
'@storybook/core-server': '7.0.0-beta.25',
|
||||
'@storybook/core-webpack': '7.0.0-beta.25',
|
||||
'@storybook/csf-tools': '7.0.0-beta.25',
|
||||
'@storybook/docs-tools': '7.0.0-beta.25',
|
||||
'@storybook/ember': '7.0.0-beta.25',
|
||||
'@storybook/html': '7.0.0-beta.25',
|
||||
'@storybook/html-webpack5': '7.0.0-beta.25',
|
||||
'@storybook/html-vite': '7.0.0-beta.25',
|
||||
'@storybook/instrumenter': '7.0.0-beta.25',
|
||||
'@storybook/nextjs': '7.0.0-beta.25',
|
||||
'@storybook/node-logger': '7.0.0-beta.25',
|
||||
'@storybook/postinstall': '7.0.0-beta.25',
|
||||
'@storybook/preact': '7.0.0-beta.25',
|
||||
'@storybook/preact-vite': '7.0.0-beta.25',
|
||||
'@storybook/preact-webpack5': '7.0.0-beta.25',
|
||||
'@storybook/preset-html-webpack': '7.0.0-beta.25',
|
||||
'@storybook/preset-preact-webpack': '7.0.0-beta.25',
|
||||
'@storybook/preset-react-webpack': '7.0.0-beta.25',
|
||||
'@storybook/preset-server-webpack': '7.0.0-beta.25',
|
||||
'@storybook/preset-svelte-webpack': '7.0.0-beta.25',
|
||||
'@storybook/preset-vue-webpack': '7.0.0-beta.25',
|
||||
'@storybook/preset-vue3-webpack': '7.0.0-beta.25',
|
||||
'@storybook/preset-web-components-webpack': '7.0.0-beta.25',
|
||||
'@storybook/preview': '7.0.0-beta.25',
|
||||
'@storybook/preview-api': '7.0.0-beta.25',
|
||||
'@storybook/preview-web': '7.0.0-beta.25',
|
||||
'@storybook/react': '7.0.0-beta.25',
|
||||
'@storybook/react-vite': '7.0.0-beta.25',
|
||||
'@storybook/react-webpack5': '7.0.0-beta.25',
|
||||
'@storybook/router': '7.0.0-beta.25',
|
||||
'@storybook/server': '7.0.0-beta.25',
|
||||
'@storybook/server-webpack5': '7.0.0-beta.25',
|
||||
'@storybook/source-loader': '7.0.0-beta.25',
|
||||
'@storybook/store': '7.0.0-beta.25',
|
||||
'@storybook/svelte': '7.0.0-beta.25',
|
||||
'@storybook/sveltekit': '7.0.0-beta.25',
|
||||
'@storybook/svelte-vite': '7.0.0-beta.25',
|
||||
'@storybook/svelte-webpack5': '7.0.0-beta.25',
|
||||
'@storybook/telemetry': '7.0.0-beta.25',
|
||||
'@storybook/theming': '7.0.0-beta.25',
|
||||
'@storybook/manager': '7.0.0-beta.25',
|
||||
'@storybook/vue': '7.0.0-beta.25',
|
||||
'@storybook/vue-vite': '7.0.0-beta.25',
|
||||
'@storybook/vue-webpack5': '7.0.0-beta.25',
|
||||
'@storybook/vue3': '7.0.0-beta.25',
|
||||
'@storybook/vue3-vite': '7.0.0-beta.25',
|
||||
'@storybook/vue3-webpack5': '7.0.0-beta.25',
|
||||
'@storybook/web-components': '7.0.0-beta.25',
|
||||
'@storybook/web-components-webpack5': '7.0.0-beta.25',
|
||||
'@storybook/web-components-vite': '7.0.0-beta.25',
|
||||
sb: '7.0.0-beta.25',
|
||||
storybook: '7.0.0-beta.25',
|
||||
};
|
||||
|
@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@storybook/client-api",
|
||||
"version": "7.0.0-beta.21",
|
||||
"version": "7.0.0-beta.25",
|
||||
"description": "Storybook Client API",
|
||||
"keywords": [
|
||||
"storybook"
|
||||
@ -42,8 +42,8 @@
|
||||
"prep": "../../../scripts/prepare/facade.ts"
|
||||
},
|
||||
"dependencies": {
|
||||
"@storybook/client-logger": "7.0.0-beta.21",
|
||||
"@storybook/preview-api": "7.0.0-beta.21"
|
||||
"@storybook/client-logger": "7.0.0-beta.25",
|
||||
"@storybook/preview-api": "7.0.0-beta.25"
|
||||
},
|
||||
"publishConfig": {
|
||||
"access": "public"
|
||||
@ -54,5 +54,5 @@
|
||||
],
|
||||
"shim": "@storybook/preview-api/dist/client-api"
|
||||
},
|
||||
"gitHead": "fb45d854842e10fa119a65c628333e3a5d495e77"
|
||||
"gitHead": "2109ab8d7c0667e686db757abf5afcbf3d48a6ec"
|
||||
}
|
||||
|
@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@storybook/client-logger",
|
||||
"version": "7.0.0-beta.21",
|
||||
"version": "7.0.0-beta.25",
|
||||
"description": "",
|
||||
"keywords": [
|
||||
"storybook"
|
||||
@ -56,5 +56,5 @@
|
||||
"./src/index.ts"
|
||||
]
|
||||
},
|
||||
"gitHead": "fb45d854842e10fa119a65c628333e3a5d495e77"
|
||||
"gitHead": "2109ab8d7c0667e686db757abf5afcbf3d48a6ec"
|
||||
}
|
||||
|
@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@storybook/codemod",
|
||||
"version": "7.0.0-beta.21",
|
||||
"version": "7.0.0-beta.25",
|
||||
"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.2",
|
||||
"@storybook/csf": "next",
|
||||
"@storybook/csf-tools": "7.0.0-beta.21",
|
||||
"@storybook/node-logger": "7.0.0-beta.21",
|
||||
"@storybook/types": "7.0.0-beta.21",
|
||||
"@storybook/csf-tools": "7.0.0-beta.25",
|
||||
"@storybook/node-logger": "7.0.0-beta.25",
|
||||
"@storybook/types": "7.0.0-beta.25",
|
||||
"cross-spawn": "^7.0.3",
|
||||
"globby": "^11.0.2",
|
||||
"jscodeshift": "^0.13.1",
|
||||
@ -85,5 +85,5 @@
|
||||
"./src/transforms/upgrade-hierarchy-separators.js"
|
||||
]
|
||||
},
|
||||
"gitHead": "fb45d854842e10fa119a65c628333e3a5d495e77"
|
||||
"gitHead": "2109ab8d7c0667e686db757abf5afcbf3d48a6ec"
|
||||
}
|
||||
|
@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@storybook/core-client",
|
||||
"version": "7.0.0-beta.21",
|
||||
"version": "7.0.0-beta.25",
|
||||
"description": "Storybook framework-agnostic API",
|
||||
"keywords": [
|
||||
"storybook"
|
||||
@ -35,8 +35,8 @@
|
||||
"prep": "../../../scripts/prepare/facade.ts"
|
||||
},
|
||||
"dependencies": {
|
||||
"@storybook/client-logger": "7.0.0-beta.21",
|
||||
"@storybook/preview-api": "7.0.0-beta.21"
|
||||
"@storybook/client-logger": "7.0.0-beta.25",
|
||||
"@storybook/preview-api": "7.0.0-beta.25"
|
||||
},
|
||||
"publishConfig": {
|
||||
"access": "public"
|
||||
@ -47,5 +47,5 @@
|
||||
],
|
||||
"shim": "@storybook/preview-api/dist/core-client"
|
||||
},
|
||||
"gitHead": "fb45d854842e10fa119a65c628333e3a5d495e77"
|
||||
"gitHead": "2109ab8d7c0667e686db757abf5afcbf3d48a6ec"
|
||||
}
|
||||
|
@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@storybook/core-common",
|
||||
"version": "7.0.0-beta.21",
|
||||
"version": "7.0.0-beta.25",
|
||||
"description": "Storybook framework-agnostic API",
|
||||
"keywords": [
|
||||
"storybook"
|
||||
@ -44,8 +44,8 @@
|
||||
},
|
||||
"dependencies": {
|
||||
"@babel/core": "^7.20.2",
|
||||
"@storybook/node-logger": "7.0.0-beta.21",
|
||||
"@storybook/types": "7.0.0-beta.21",
|
||||
"@storybook/node-logger": "7.0.0-beta.25",
|
||||
"@storybook/types": "7.0.0-beta.25",
|
||||
"@types/babel__core": "^7.1.20",
|
||||
"@types/express": "^4.7.0",
|
||||
"@types/node": "^16.0.0",
|
||||
@ -83,5 +83,5 @@
|
||||
],
|
||||
"platform": "node"
|
||||
},
|
||||
"gitHead": "fb45d854842e10fa119a65c628333e3a5d495e77"
|
||||
"gitHead": "2109ab8d7c0667e686db757abf5afcbf3d48a6ec"
|
||||
}
|
||||
|
@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@storybook/core-events",
|
||||
"version": "7.0.0-beta.21",
|
||||
"version": "7.0.0-beta.25",
|
||||
"description": "Event names used in storybook core",
|
||||
"keywords": [
|
||||
"storybook"
|
||||
@ -53,5 +53,5 @@
|
||||
"./src/index.ts"
|
||||
]
|
||||
},
|
||||
"gitHead": "fb45d854842e10fa119a65c628333e3a5d495e77"
|
||||
"gitHead": "2109ab8d7c0667e686db757abf5afcbf3d48a6ec"
|
||||
}
|
||||
|
@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@storybook/core-server",
|
||||
"version": "7.0.0-beta.21",
|
||||
"version": "7.0.0-beta.25",
|
||||
"description": "Storybook framework-agnostic API",
|
||||
"keywords": [
|
||||
"storybook"
|
||||
@ -58,17 +58,17 @@
|
||||
"dependencies": {
|
||||
"@aw-web-design/x-default-browser": "1.4.88",
|
||||
"@discoveryjs/json-ext": "^0.5.3",
|
||||
"@storybook/builder-manager": "7.0.0-beta.21",
|
||||
"@storybook/core-common": "7.0.0-beta.21",
|
||||
"@storybook/core-events": "7.0.0-beta.21",
|
||||
"@storybook/builder-manager": "7.0.0-beta.25",
|
||||
"@storybook/core-common": "7.0.0-beta.25",
|
||||
"@storybook/core-events": "7.0.0-beta.25",
|
||||
"@storybook/csf": "next",
|
||||
"@storybook/csf-tools": "7.0.0-beta.21",
|
||||
"@storybook/csf-tools": "7.0.0-beta.25",
|
||||
"@storybook/docs-mdx": "next",
|
||||
"@storybook/global": "^5.0.0",
|
||||
"@storybook/node-logger": "7.0.0-beta.21",
|
||||
"@storybook/preview-api": "7.0.0-beta.21",
|
||||
"@storybook/telemetry": "7.0.0-beta.21",
|
||||
"@storybook/types": "7.0.0-beta.21",
|
||||
"@storybook/node-logger": "7.0.0-beta.25",
|
||||
"@storybook/preview-api": "7.0.0-beta.25",
|
||||
"@storybook/telemetry": "7.0.0-beta.25",
|
||||
"@storybook/types": "7.0.0-beta.25",
|
||||
"@types/detect-port": "^1.3.0",
|
||||
"@types/node": "^16.0.0",
|
||||
"@types/node-fetch": "^2.5.7",
|
||||
@ -119,5 +119,5 @@
|
||||
],
|
||||
"platform": "node"
|
||||
},
|
||||
"gitHead": "fb45d854842e10fa119a65c628333e3a5d495e77"
|
||||
"gitHead": "2109ab8d7c0667e686db757abf5afcbf3d48a6ec"
|
||||
}
|
||||
|
@ -6,3 +6,4 @@ export { getPreviewHeadTemplate, getPreviewBodyTemplate } from '@storybook/core-
|
||||
export * from './build-static';
|
||||
export * from './build-dev';
|
||||
export * from './withTelemetry';
|
||||
export { default as build } from './standalone';
|
||||
|
@ -38,6 +38,7 @@ type SpecifierStoriesCache = Record<Path, CacheEntry>;
|
||||
|
||||
export const AUTODOCS_TAG = 'autodocs';
|
||||
export const STORIES_MDX_TAG = 'stories-mdx';
|
||||
export const PLAY_FN_TAG = 'play-fn';
|
||||
|
||||
/** Was this docs entry generated by a .mdx file? (see discussion below) */
|
||||
export function isMdxEntry({ tags }: DocsIndexEntry) {
|
||||
|
34
code/lib/core-server/src/utils/summarizeIndex.test.ts
Normal file
34
code/lib/core-server/src/utils/summarizeIndex.test.ts
Normal file
@ -0,0 +1,34 @@
|
||||
import { isPageStory } from './summarizeIndex';
|
||||
|
||||
describe('isPageStory', () => {
|
||||
describe('true positives', () => {
|
||||
it.each(['pages/login', 'screens/login', 'components/LoginPage', 'components/LoginScreen'])(
|
||||
'%s',
|
||||
(title) => {
|
||||
expect(isPageStory(title)).toBe(true);
|
||||
}
|
||||
);
|
||||
});
|
||||
|
||||
describe('false positives', () => {
|
||||
it.each([
|
||||
'components/PagerStatus',
|
||||
'components/DefectScreener',
|
||||
'addons/docs/docspage/autoplay',
|
||||
])('%s', (title) => {
|
||||
expect(isPageStory(title)).toBe(true);
|
||||
});
|
||||
});
|
||||
|
||||
describe('true negatives', () => {
|
||||
it.each(['atoms/Button', 'components/Slider'])('%s', (title) => {
|
||||
expect(isPageStory(title)).toBe(false);
|
||||
});
|
||||
});
|
||||
|
||||
describe('false negatives', () => {
|
||||
it.each(['flows/login', 'login-flow/forgot password'])('%s', (title) => {
|
||||
expect(isPageStory(title)).toBe(false);
|
||||
});
|
||||
});
|
||||
});
|
@ -1,30 +1,70 @@
|
||||
import type { StoryIndex } from '@storybook/types';
|
||||
import type { IndexEntry, StoryIndex } from '@storybook/types';
|
||||
|
||||
import { STORIES_MDX_TAG, isMdxEntry, AUTODOCS_TAG } from './StoryIndexGenerator';
|
||||
import { STORIES_MDX_TAG, isMdxEntry, AUTODOCS_TAG, PLAY_FN_TAG } from './StoryIndexGenerator';
|
||||
|
||||
const PAGE_REGEX = /(page|screen)/i;
|
||||
|
||||
export const isPageStory = (storyId: string) => PAGE_REGEX.test(storyId);
|
||||
|
||||
/**
|
||||
* Filter out example stories that are generated by the CLI
|
||||
*/
|
||||
const isExampleEntry = (entry: IndexEntry) => {
|
||||
return [
|
||||
'example-introduction--docs',
|
||||
'example-button--docs',
|
||||
'example-button--primary',
|
||||
'example-button--secondary',
|
||||
'example-button--large',
|
||||
'example-button--small',
|
||||
'example-header--docs',
|
||||
'example-header--logged-in',
|
||||
'example-header--logged-out',
|
||||
'example-page--logged-in',
|
||||
'example-page--logged-out',
|
||||
].includes(entry.id);
|
||||
};
|
||||
|
||||
export function summarizeIndex(storyIndex: StoryIndex) {
|
||||
let storyCount = 0;
|
||||
let exampleStoryCount = 0;
|
||||
let exampleDocsCount = 0;
|
||||
let pageStoryCount = 0;
|
||||
let playStoryCount = 0;
|
||||
let autodocsCount = 0;
|
||||
let storiesMdxCount = 0;
|
||||
let mdxCount = 0;
|
||||
Object.values(storyIndex.entries).forEach((entry) => {
|
||||
if (entry.type === 'story') {
|
||||
if (isExampleEntry(entry)) {
|
||||
if (entry.type === 'story') exampleStoryCount += 1;
|
||||
if (entry.type === 'docs') exampleDocsCount += 1;
|
||||
} else if (entry.type === 'story') {
|
||||
storyCount += 1;
|
||||
if (isPageStory(entry.title)) {
|
||||
pageStoryCount += 1;
|
||||
}
|
||||
if (entry.tags?.includes(PLAY_FN_TAG)) {
|
||||
playStoryCount += 1;
|
||||
}
|
||||
} else if (entry.type === 'docs') {
|
||||
if (isMdxEntry(entry)) {
|
||||
mdxCount += 1;
|
||||
} else if (entry.tags.includes(STORIES_MDX_TAG)) {
|
||||
} else if (entry.tags?.includes(STORIES_MDX_TAG)) {
|
||||
storiesMdxCount += 1;
|
||||
} else if (entry.tags.includes(AUTODOCS_TAG)) {
|
||||
} else if (entry.tags?.includes(AUTODOCS_TAG)) {
|
||||
autodocsCount += 1;
|
||||
}
|
||||
}
|
||||
});
|
||||
return {
|
||||
storyCount,
|
||||
pageStoryCount,
|
||||
playStoryCount,
|
||||
autodocsCount,
|
||||
storiesMdxCount,
|
||||
mdxCount,
|
||||
exampleStoryCount,
|
||||
exampleDocsCount,
|
||||
version: storyIndex.v,
|
||||
};
|
||||
}
|
||||
|
@ -1,3 +0,0 @@
|
||||
const build = require('./dist/cjs/standalone').default;
|
||||
|
||||
module.exports = build;
|
@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@storybook/core-webpack",
|
||||
"version": "7.0.0-beta.21",
|
||||
"version": "7.0.0-beta.25",
|
||||
"description": "Storybook framework-agnostic API",
|
||||
"keywords": [
|
||||
"storybook"
|
||||
@ -43,9 +43,9 @@
|
||||
"prep": "../../../scripts/prepare/bundle.ts"
|
||||
},
|
||||
"dependencies": {
|
||||
"@storybook/core-common": "7.0.0-beta.21",
|
||||
"@storybook/node-logger": "7.0.0-beta.21",
|
||||
"@storybook/types": "7.0.0-beta.21",
|
||||
"@storybook/core-common": "7.0.0-beta.25",
|
||||
"@storybook/node-logger": "7.0.0-beta.25",
|
||||
"@storybook/types": "7.0.0-beta.25",
|
||||
"@types/node": "^16.0.0",
|
||||
"ts-dedent": "^2.0.0"
|
||||
},
|
||||
@ -62,5 +62,5 @@
|
||||
],
|
||||
"platform": "node"
|
||||
},
|
||||
"gitHead": "fb45d854842e10fa119a65c628333e3a5d495e77"
|
||||
"gitHead": "2109ab8d7c0667e686db757abf5afcbf3d48a6ec"
|
||||
}
|
||||
|
@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@storybook/csf-plugin",
|
||||
"version": "7.0.0-beta.21",
|
||||
"version": "7.0.0-beta.25",
|
||||
"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.21",
|
||||
"@storybook/csf-tools": "7.0.0-beta.25",
|
||||
"unplugin": "^0.10.2"
|
||||
},
|
||||
"devDependencies": {
|
||||
@ -64,5 +64,5 @@
|
||||
],
|
||||
"platform": "node"
|
||||
},
|
||||
"gitHead": "fb45d854842e10fa119a65c628333e3a5d495e77"
|
||||
"gitHead": "2109ab8d7c0667e686db757abf5afcbf3d48a6ec"
|
||||
}
|
||||
|
@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@storybook/csf-tools",
|
||||
"version": "7.0.0-beta.21",
|
||||
"version": "7.0.0-beta.25",
|
||||
"description": "",
|
||||
"keywords": [
|
||||
"storybook"
|
||||
@ -45,7 +45,7 @@
|
||||
"dependencies": {
|
||||
"@babel/types": "^7.20.2",
|
||||
"@storybook/csf": "next",
|
||||
"@storybook/types": "7.0.0-beta.21",
|
||||
"@storybook/types": "7.0.0-beta.25",
|
||||
"fs-extra": "^9.0.1",
|
||||
"ts-dedent": "^2.0.0"
|
||||
},
|
||||
@ -66,5 +66,5 @@
|
||||
"./src/index.ts"
|
||||
]
|
||||
},
|
||||
"gitHead": "fb45d854842e10fa119a65c628333e3a5d495e77"
|
||||
"gitHead": "2109ab8d7c0667e686db757abf5afcbf3d48a6ec"
|
||||
}
|
||||
|
@ -866,4 +866,104 @@ describe('CsfFile', () => {
|
||||
).toThrow('CSF: Expected tag to be string literal');
|
||||
});
|
||||
});
|
||||
|
||||
describe('play functions', () => {
|
||||
it('story csf2', () => {
|
||||
expect(
|
||||
parse(
|
||||
dedent`
|
||||
export default { title: 'foo/bar', tags: ['X'] };
|
||||
export const A = () => {};
|
||||
A.play = () => {};
|
||||
A.tags = ['Y'];
|
||||
`
|
||||
)
|
||||
).toMatchInlineSnapshot(`
|
||||
meta:
|
||||
title: foo/bar
|
||||
tags:
|
||||
- X
|
||||
stories:
|
||||
- id: foo-bar--a
|
||||
name: A
|
||||
tags:
|
||||
- 'Y'
|
||||
- play-fn
|
||||
`);
|
||||
});
|
||||
|
||||
it('story csf3', () => {
|
||||
expect(
|
||||
parse(
|
||||
dedent`
|
||||
export default { title: 'foo/bar', tags: ['X'] };
|
||||
export const A = {
|
||||
render: () => {},
|
||||
play: () => {},
|
||||
tags: ['Y'],
|
||||
};
|
||||
`
|
||||
)
|
||||
).toMatchInlineSnapshot(`
|
||||
meta:
|
||||
title: foo/bar
|
||||
tags:
|
||||
- X
|
||||
stories:
|
||||
- id: foo-bar--a
|
||||
name: A
|
||||
tags:
|
||||
- 'Y'
|
||||
- play-fn
|
||||
`);
|
||||
});
|
||||
|
||||
it('meta csf2', () => {
|
||||
expect(
|
||||
parse(
|
||||
dedent`
|
||||
export default { title: 'foo/bar', play: () => {}, tags: ['X'] };
|
||||
export const A = {
|
||||
render: () => {},
|
||||
tags: ['Y'],
|
||||
};
|
||||
`
|
||||
)
|
||||
).toMatchInlineSnapshot(`
|
||||
meta:
|
||||
title: foo/bar
|
||||
tags:
|
||||
- X
|
||||
- play-fn
|
||||
stories:
|
||||
- id: foo-bar--a
|
||||
name: A
|
||||
tags:
|
||||
- 'Y'
|
||||
`);
|
||||
});
|
||||
|
||||
it('meta csf3', () => {
|
||||
expect(
|
||||
parse(
|
||||
dedent`
|
||||
export default { title: 'foo/bar', play: () => {}, tags: ['X'] };
|
||||
export const A = () => {};
|
||||
A.tags = ['Y'];
|
||||
`
|
||||
)
|
||||
).toMatchInlineSnapshot(`
|
||||
meta:
|
||||
title: foo/bar
|
||||
tags:
|
||||
- X
|
||||
- play-fn
|
||||
stories:
|
||||
- id: foo-bar--a
|
||||
name: A
|
||||
tags:
|
||||
- 'Y'
|
||||
`);
|
||||
});
|
||||
});
|
||||
});
|
||||
|
@ -454,6 +454,9 @@ export class CsfFile {
|
||||
// default export can come at any point in the file, so we do this post processing last
|
||||
const entries = Object.entries(self._stories);
|
||||
self._meta.title = this._makeTitle(self._meta.title);
|
||||
if (self._metaAnnotations.play) {
|
||||
self._meta.tags = [...(self._meta.tags || []), 'play-fn'];
|
||||
}
|
||||
self._stories = entries.reduce((acc, [key, story]) => {
|
||||
if (isExportStory(key, self._meta)) {
|
||||
const id = toId(self._meta.id || self._meta.title, storyNameFromExport(key));
|
||||
@ -466,13 +469,16 @@ export class CsfFile {
|
||||
parameters.docsOnly = true;
|
||||
}
|
||||
acc[key] = { ...story, id, parameters };
|
||||
const { tags } = self._storyAnnotations[key];
|
||||
const { tags, play } = self._storyAnnotations[key];
|
||||
if (tags) {
|
||||
const node = t.isIdentifier(tags)
|
||||
? findVarInitialization(tags.name, this._ast.program)
|
||||
: tags;
|
||||
acc[key].tags = parseTags(node);
|
||||
}
|
||||
if (play) {
|
||||
acc[key].tags = [...(acc[key].tags || []), 'play-fn'];
|
||||
}
|
||||
}
|
||||
return acc;
|
||||
}, {} as Record<string, StaticStory>);
|
||||
|
@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@storybook/docs-tools",
|
||||
"version": "7.0.0-beta.21",
|
||||
"version": "7.0.0-beta.25",
|
||||
"description": "Shared utility functions for frameworks to implement docs",
|
||||
"keywords": [
|
||||
"storybook"
|
||||
@ -44,9 +44,10 @@
|
||||
},
|
||||
"dependencies": {
|
||||
"@babel/core": "^7.12.10",
|
||||
"@storybook/core-common": "7.0.0-beta.21",
|
||||
"@storybook/preview-api": "7.0.0-beta.21",
|
||||
"@storybook/types": "7.0.0-beta.21",
|
||||
"@storybook/core-common": "7.0.0-beta.25",
|
||||
"@storybook/preview-api": "7.0.0-beta.25",
|
||||
"@storybook/types": "7.0.0-beta.25",
|
||||
"@types/doctrine": "^0.0.3",
|
||||
"doctrine": "^3.0.0",
|
||||
"lodash": "^4.17.21"
|
||||
},
|
||||
@ -63,5 +64,5 @@
|
||||
"./src/index.ts"
|
||||
]
|
||||
},
|
||||
"gitHead": "fb45d854842e10fa119a65c628333e3a5d495e77"
|
||||
"gitHead": "2109ab8d7c0667e686db757abf5afcbf3d48a6ec"
|
||||
}
|
||||
|
@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@storybook/instrumenter",
|
||||
"version": "7.0.0-beta.21",
|
||||
"version": "7.0.0-beta.25",
|
||||
"description": "",
|
||||
"keywords": [
|
||||
"storybook"
|
||||
@ -43,11 +43,11 @@
|
||||
"prep": "../../../scripts/prepare/bundle.ts"
|
||||
},
|
||||
"dependencies": {
|
||||
"@storybook/channels": "7.0.0-beta.21",
|
||||
"@storybook/client-logger": "7.0.0-beta.21",
|
||||
"@storybook/core-events": "7.0.0-beta.21",
|
||||
"@storybook/channels": "7.0.0-beta.25",
|
||||
"@storybook/client-logger": "7.0.0-beta.25",
|
||||
"@storybook/core-events": "7.0.0-beta.25",
|
||||
"@storybook/global": "^5.0.0",
|
||||
"@storybook/preview-api": "7.0.0-beta.21",
|
||||
"@storybook/preview-api": "7.0.0-beta.25",
|
||||
"core-js": "^3.8.2"
|
||||
},
|
||||
"devDependencies": {
|
||||
@ -61,5 +61,5 @@
|
||||
"./src/index.ts"
|
||||
]
|
||||
},
|
||||
"gitHead": "fb45d854842e10fa119a65c628333e3a5d495e77"
|
||||
"gitHead": "2109ab8d7c0667e686db757abf5afcbf3d48a6ec"
|
||||
}
|
||||
|
@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@storybook/api",
|
||||
"version": "7.0.0-beta.21",
|
||||
"version": "7.0.0-beta.25",
|
||||
"description": "Storybook Manager API (facade)",
|
||||
"keywords": [
|
||||
"storybook"
|
||||
@ -42,8 +42,8 @@
|
||||
"prep": "../../../scripts/prepare/facade.ts"
|
||||
},
|
||||
"dependencies": {
|
||||
"@storybook/client-logger": "7.0.0-beta.21",
|
||||
"@storybook/manager-api": "7.0.0-beta.21"
|
||||
"@storybook/client-logger": "7.0.0-beta.25",
|
||||
"@storybook/manager-api": "7.0.0-beta.25"
|
||||
},
|
||||
"publishConfig": {
|
||||
"access": "public"
|
||||
@ -54,5 +54,5 @@
|
||||
],
|
||||
"shim": "@storybook/manager-api"
|
||||
},
|
||||
"gitHead": "fb45d854842e10fa119a65c628333e3a5d495e77"
|
||||
"gitHead": "2109ab8d7c0667e686db757abf5afcbf3d48a6ec"
|
||||
}
|
||||
|
@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@storybook/manager-api",
|
||||
"version": "7.0.0-beta.21",
|
||||
"version": "7.0.0-beta.25",
|
||||
"description": "Core Storybook API & Context",
|
||||
"keywords": [
|
||||
"storybook"
|
||||
@ -42,14 +42,14 @@
|
||||
"prep": "../../../scripts/prepare/bundle.ts"
|
||||
},
|
||||
"dependencies": {
|
||||
"@storybook/channels": "7.0.0-beta.21",
|
||||
"@storybook/client-logger": "7.0.0-beta.21",
|
||||
"@storybook/core-events": "7.0.0-beta.21",
|
||||
"@storybook/channels": "7.0.0-beta.25",
|
||||
"@storybook/client-logger": "7.0.0-beta.25",
|
||||
"@storybook/core-events": "7.0.0-beta.25",
|
||||
"@storybook/csf": "next",
|
||||
"@storybook/global": "^5.0.0",
|
||||
"@storybook/router": "7.0.0-beta.21",
|
||||
"@storybook/theming": "7.0.0-beta.21",
|
||||
"@storybook/types": "7.0.0-beta.21",
|
||||
"@storybook/router": "7.0.0-beta.25",
|
||||
"@storybook/theming": "7.0.0-beta.25",
|
||||
"@storybook/types": "7.0.0-beta.25",
|
||||
"dequal": "^2.0.2",
|
||||
"lodash": "^4.17.21",
|
||||
"memoizerific": "^1.11.3",
|
||||
@ -78,5 +78,5 @@
|
||||
"./src/index.tsx"
|
||||
]
|
||||
},
|
||||
"gitHead": "fb45d854842e10fa119a65c628333e3a5d495e77"
|
||||
"gitHead": "2109ab8d7c0667e686db757abf5afcbf3d48a6ec"
|
||||
}
|
||||
|
@ -88,6 +88,27 @@ async function handleRequest(
|
||||
}
|
||||
}
|
||||
|
||||
interface UrlParseResult {
|
||||
url: string;
|
||||
authorization: string | undefined;
|
||||
}
|
||||
|
||||
const parseUrl = (url: string): UrlParseResult => {
|
||||
const credentialsRegex = /https?:\/\/(.+:.+)@/;
|
||||
let cleanUrl = url;
|
||||
let authorization;
|
||||
const [, credentials] = url.match(credentialsRegex) || [];
|
||||
|
||||
if (credentials) {
|
||||
cleanUrl = url.replace(`${credentials}@`, '');
|
||||
authorization = btoa(`${credentials}`);
|
||||
}
|
||||
return {
|
||||
url: cleanUrl,
|
||||
authorization,
|
||||
};
|
||||
};
|
||||
|
||||
const map = (
|
||||
input: SetStoriesStoryData,
|
||||
ref: API_ComposedRef,
|
||||
@ -146,11 +167,22 @@ export const init: ModuleFn<SubAPI, SubState, void> = (
|
||||
const loadedData: API_SetRefData = {};
|
||||
const query = version ? `?version=${version}` : '';
|
||||
const credentials = isPublic ? 'omit' : 'include';
|
||||
const urlParseResult = parseUrl(url);
|
||||
|
||||
const headers: HeadersInit = {
|
||||
Accept: 'application/json',
|
||||
};
|
||||
|
||||
if (urlParseResult.authorization) {
|
||||
Object.assign(headers, {
|
||||
Authorization: `Basic ${urlParseResult.authorization}`,
|
||||
});
|
||||
}
|
||||
|
||||
const [indexFetch, storiesFetch] = await Promise.all(
|
||||
['index.json', 'stories.json'].map(async (file) =>
|
||||
fetch(`${url}/${file}${query}`, {
|
||||
headers: { Accept: 'application/json' },
|
||||
fetch(`${urlParseResult.url}/${file}${query}`, {
|
||||
headers,
|
||||
credentials,
|
||||
})
|
||||
)
|
||||
@ -160,10 +192,8 @@ export const init: ModuleFn<SubAPI, SubState, void> = (
|
||||
const [index, metadata] = await Promise.all([
|
||||
indexFetch.ok ? handleRequest(indexFetch) : handleRequest(storiesFetch),
|
||||
handleRequest(
|
||||
fetch(`${url}/metadata.json${query}`, {
|
||||
headers: {
|
||||
Accept: 'application/json',
|
||||
},
|
||||
fetch(`${urlParseResult.url}/metadata.json${query}`, {
|
||||
headers,
|
||||
credentials,
|
||||
cache: 'no-cache',
|
||||
}).catch(() => false)
|
||||
@ -180,7 +210,7 @@ export const init: ModuleFn<SubAPI, SubState, void> = (
|
||||
Error: Loading of ref failed
|
||||
at fetch (lib/api/src/modules/refs.ts)
|
||||
|
||||
URL: ${url}
|
||||
URL: ${urlParseResult.url}
|
||||
|
||||
We weren't able to load the above URL,
|
||||
it's possible a CORS error happened.
|
||||
@ -195,7 +225,7 @@ export const init: ModuleFn<SubAPI, SubState, void> = (
|
||||
|
||||
await api.setRef(id, {
|
||||
id,
|
||||
url,
|
||||
url: urlParseResult.url,
|
||||
...loadedData,
|
||||
...(versions ? { versions } : {}),
|
||||
type: !loadedData.storyIndex ? 'auto-inject' : 'lazy',
|
||||
|
@ -508,6 +508,68 @@ describe('Refs API', () => {
|
||||
`);
|
||||
});
|
||||
|
||||
it('checks refs (basic-auth)', async () => {
|
||||
// given
|
||||
const { api } = initRefs({ provider, store }, { runCheck: false });
|
||||
|
||||
setupResponses({
|
||||
indexPrivate: {
|
||||
ok: true,
|
||||
response: async () => ({ v: 4, entries: {} }),
|
||||
},
|
||||
storiesPrivate: {
|
||||
ok: true,
|
||||
response: async () => ({ v: 3, stories: {} }),
|
||||
},
|
||||
metadata: {
|
||||
ok: true,
|
||||
response: async () => ({ versions: {} }),
|
||||
},
|
||||
});
|
||||
|
||||
await api.checkRef({
|
||||
id: 'fake',
|
||||
url: 'https://user:pass@example.com',
|
||||
title: 'Fake',
|
||||
});
|
||||
|
||||
expect(fetch.mock.calls).toMatchInlineSnapshot(`
|
||||
Array [
|
||||
Array [
|
||||
"https://example.com/index.json",
|
||||
Object {
|
||||
"credentials": "include",
|
||||
"headers": Object {
|
||||
"Accept": "application/json",
|
||||
"Authorization": "Basic dXNlcjpwYXNz",
|
||||
},
|
||||
},
|
||||
],
|
||||
Array [
|
||||
"https://example.com/stories.json",
|
||||
Object {
|
||||
"credentials": "include",
|
||||
"headers": Object {
|
||||
"Accept": "application/json",
|
||||
"Authorization": "Basic dXNlcjpwYXNz",
|
||||
},
|
||||
},
|
||||
],
|
||||
Array [
|
||||
"https://example.com/metadata.json",
|
||||
Object {
|
||||
"cache": "no-cache",
|
||||
"credentials": "include",
|
||||
"headers": Object {
|
||||
"Accept": "application/json",
|
||||
"Authorization": "Basic dXNlcjpwYXNz",
|
||||
},
|
||||
},
|
||||
],
|
||||
]
|
||||
`);
|
||||
});
|
||||
|
||||
it('checks refs (mixed)', async () => {
|
||||
// given
|
||||
const { api } = initRefs({ provider, store }, { runCheck: false });
|
||||
|
@ -1 +1 @@
|
||||
export const version = '7.0.0-beta.21';
|
||||
export const version = '7.0.0-beta.25';
|
||||
|
@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@storybook/node-logger",
|
||||
"version": "7.0.0-beta.21",
|
||||
"version": "7.0.0-beta.25",
|
||||
"description": "",
|
||||
"keywords": [
|
||||
"storybook"
|
||||
@ -60,5 +60,5 @@
|
||||
"./src/index.ts"
|
||||
]
|
||||
},
|
||||
"gitHead": "fb45d854842e10fa119a65c628333e3a5d495e77"
|
||||
"gitHead": "2109ab8d7c0667e686db757abf5afcbf3d48a6ec"
|
||||
}
|
||||
|
@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@storybook/postinstall",
|
||||
"version": "7.0.0-beta.21",
|
||||
"version": "7.0.0-beta.25",
|
||||
"description": "Storybook addons postinstall utilities",
|
||||
"keywords": [
|
||||
"api",
|
||||
@ -57,5 +57,5 @@
|
||||
"./src/index.ts"
|
||||
]
|
||||
},
|
||||
"gitHead": "fb45d854842e10fa119a65c628333e3a5d495e77"
|
||||
"gitHead": "2109ab8d7c0667e686db757abf5afcbf3d48a6ec"
|
||||
}
|
||||
|
@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@storybook/preview-api",
|
||||
"version": "7.0.0-beta.21",
|
||||
"version": "7.0.0-beta.25",
|
||||
"description": "",
|
||||
"keywords": [
|
||||
"storybook"
|
||||
@ -67,13 +67,13 @@
|
||||
"prep": "../../../scripts/prepare/bundle.ts"
|
||||
},
|
||||
"dependencies": {
|
||||
"@storybook/channel-postmessage": "7.0.0-beta.21",
|
||||
"@storybook/channels": "7.0.0-beta.21",
|
||||
"@storybook/client-logger": "7.0.0-beta.21",
|
||||
"@storybook/core-events": "7.0.0-beta.21",
|
||||
"@storybook/channel-postmessage": "7.0.0-beta.25",
|
||||
"@storybook/channels": "7.0.0-beta.25",
|
||||
"@storybook/client-logger": "7.0.0-beta.25",
|
||||
"@storybook/core-events": "7.0.0-beta.25",
|
||||
"@storybook/csf": "next",
|
||||
"@storybook/global": "^5.0.0",
|
||||
"@storybook/types": "7.0.0-beta.21",
|
||||
"@storybook/types": "7.0.0-beta.25",
|
||||
"@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.21",
|
||||
"@storybook/core-common": "7.0.0-beta.25",
|
||||
"ansi-to-html": "^0.6.11",
|
||||
"react": "^16.14.0"
|
||||
},
|
||||
@ -103,5 +103,5 @@
|
||||
"./src/store.ts"
|
||||
]
|
||||
},
|
||||
"gitHead": "fb45d854842e10fa119a65c628333e3a5d495e77"
|
||||
"gitHead": "2109ab8d7c0667e686db757abf5afcbf3d48a6ec"
|
||||
}
|
||||
|
@ -642,7 +642,7 @@ describe('PreviewWeb', () => {
|
||||
});
|
||||
});
|
||||
|
||||
describe('template docs entries', () => {
|
||||
describe('CSF docs entries', () => {
|
||||
it('always renders in docs viewMode', async () => {
|
||||
document.location.search = '?id=component-one--docs';
|
||||
await createAndRenderPreview();
|
||||
@ -679,7 +679,7 @@ describe('PreviewWeb', () => {
|
||||
expect(importFn).toHaveBeenCalledWith('./src/ExtraComponentOne.stories.js');
|
||||
});
|
||||
|
||||
it('renders with componentStories loaded from both story files', async () => {
|
||||
it('renders with componentStories loaded from the attached CSF file', async () => {
|
||||
document.location.search = '?id=component-one--docs&viewMode=docs';
|
||||
await createAndRenderPreview();
|
||||
|
||||
|
@ -0,0 +1,84 @@
|
||||
import { Channel } from '@storybook/channels';
|
||||
import type { Renderer } from '@storybook/types';
|
||||
import type { StoryStore } from '../../store';
|
||||
|
||||
import { DocsContext } from './DocsContext';
|
||||
import { csfFileParts } from './test-utils';
|
||||
|
||||
const channel = new Channel();
|
||||
const renderStoryToElement = jest.fn();
|
||||
|
||||
describe('resolveModuleExport', () => {
|
||||
const { story, csfFile, storyExport, metaExport, moduleExports, component } = csfFileParts();
|
||||
|
||||
describe('attached', () => {
|
||||
const store = {
|
||||
componentStoriesFromCSFFile: () => [story],
|
||||
} as unknown as StoryStore<Renderer>;
|
||||
const context = new DocsContext(channel, store, renderStoryToElement, [csfFile]);
|
||||
context.attachCSFFile(csfFile);
|
||||
|
||||
it('works for story exports', () => {
|
||||
expect(context.resolveModuleExport(storyExport)).toEqual({ type: 'story', story });
|
||||
});
|
||||
|
||||
it('works for meta exports', () => {
|
||||
expect(context.resolveModuleExport(metaExport)).toEqual({ type: 'meta', csfFile });
|
||||
});
|
||||
|
||||
it('works for full module exports', () => {
|
||||
expect(context.resolveModuleExport(moduleExports)).toEqual({ type: 'meta', csfFile });
|
||||
});
|
||||
|
||||
it('works for components', () => {
|
||||
expect(context.resolveModuleExport(component)).toEqual({ type: 'component', component });
|
||||
});
|
||||
|
||||
it('finds primary story', () => {
|
||||
expect(context.resolveModuleExport('story')).toEqual({ type: 'story', story });
|
||||
});
|
||||
|
||||
it('finds attached CSF file', () => {
|
||||
expect(context.resolveModuleExport('meta')).toEqual({ type: 'meta', csfFile });
|
||||
});
|
||||
|
||||
it('finds attached component', () => {
|
||||
expect(context.resolveModuleExport('component')).toEqual({ type: 'component', component });
|
||||
});
|
||||
});
|
||||
|
||||
describe('unattached', () => {
|
||||
const store = {
|
||||
componentStoriesFromCSFFile: () => [story],
|
||||
} as unknown as StoryStore<Renderer>;
|
||||
const context = new DocsContext(channel, store, renderStoryToElement, [csfFile]);
|
||||
|
||||
it('works for story exports', () => {
|
||||
expect(context.resolveModuleExport(storyExport)).toEqual({ type: 'story', story });
|
||||
});
|
||||
|
||||
it('works for meta exports', () => {
|
||||
expect(context.resolveModuleExport(metaExport)).toEqual({ type: 'meta', csfFile });
|
||||
});
|
||||
|
||||
it('works for full module exports', () => {
|
||||
expect(context.resolveModuleExport(moduleExports)).toEqual({ type: 'meta', csfFile });
|
||||
});
|
||||
|
||||
it('works for components', () => {
|
||||
expect(context.resolveModuleExport(component)).toEqual({ type: 'component', component });
|
||||
});
|
||||
|
||||
it('throws for primary story', () => {
|
||||
expect(() => context.resolveModuleExport('story')).toThrow('No primary story attached');
|
||||
});
|
||||
|
||||
it('throws for attached CSF file', () => {
|
||||
expect(() => context.resolveModuleExport('meta')).toThrow('No CSF file attached');
|
||||
});
|
||||
|
||||
it('throws for attached component', () => {
|
||||
expect(() => context.resolveModuleExport('component')).toThrow('No CSF file attached');
|
||||
});
|
||||
});
|
||||
});
|
@ -7,6 +7,7 @@ import type {
|
||||
StoryContextForLoaders,
|
||||
StoryId,
|
||||
StoryName,
|
||||
ResolvedModuleExport,
|
||||
} from '@storybook/types';
|
||||
import type { Channel } from '@storybook/channels';
|
||||
import type { StoryStore } from '../../store';
|
||||
@ -18,10 +19,14 @@ export class DocsContext<TRenderer extends Renderer> implements DocsContextProps
|
||||
|
||||
private storyIdToCSFFile: Map<StoryId, CSFFile<TRenderer>>;
|
||||
|
||||
private exportToStoryId: Map<ModuleExport, StoryId>;
|
||||
private exportToStory: Map<ModuleExport, PreparedStory<TRenderer>>;
|
||||
|
||||
private exportsToCSFFile: Map<ModuleExports, CSFFile<TRenderer>>;
|
||||
|
||||
private nameToStoryId: Map<StoryName, StoryId>;
|
||||
|
||||
private attachedCSFFile?: CSFFile<TRenderer>;
|
||||
|
||||
private primaryStory?: PreparedStory<TRenderer>;
|
||||
|
||||
constructor(
|
||||
@ -29,46 +34,110 @@ export class DocsContext<TRenderer extends Renderer> implements DocsContextProps
|
||||
protected store: StoryStore<TRenderer>,
|
||||
public renderStoryToElement: DocsContextProps['renderStoryToElement'],
|
||||
/** The CSF files known (via the index) to be refererenced by this docs file */
|
||||
csfFiles: CSFFile<TRenderer>[],
|
||||
componentStoriesFromAllCsfFiles = true
|
||||
csfFiles: CSFFile<TRenderer>[]
|
||||
) {
|
||||
this.storyIdToCSFFile = new Map();
|
||||
this.exportToStoryId = new Map();
|
||||
this.exportToStory = new Map();
|
||||
this.exportsToCSFFile = new Map();
|
||||
this.nameToStoryId = new Map();
|
||||
this.componentStoriesValue = [];
|
||||
|
||||
csfFiles.forEach((csfFile, index) => {
|
||||
this.referenceCSFFile(csfFile, componentStoriesFromAllCsfFiles || index === 0);
|
||||
this.referenceCSFFile(csfFile);
|
||||
});
|
||||
}
|
||||
|
||||
// This docs entry references this CSF file and can syncronously load the stories, as well
|
||||
// as reference them by module export. If the CSF is part of the "component" stories, they
|
||||
// can also be referenced by name and are in the componentStories list.
|
||||
referenceCSFFile(csfFile: CSFFile<TRenderer>, addToComponentStories: boolean) {
|
||||
referenceCSFFile(csfFile: CSFFile<TRenderer>) {
|
||||
this.exportsToCSFFile.set(csfFile.moduleExports, csfFile);
|
||||
// Also set the default export as the component's exports,
|
||||
// to allow `import ButtonStories from './Button.stories'`
|
||||
this.exportsToCSFFile.set(csfFile.moduleExports.default, csfFile);
|
||||
|
||||
const stories = this.store.componentStoriesFromCSFFile({ csfFile });
|
||||
|
||||
Object.values(csfFile.stories).forEach((annotation) => {
|
||||
this.storyIdToCSFFile.set(annotation.id, csfFile);
|
||||
this.exportToStoryId.set(annotation.moduleExport, annotation.id);
|
||||
const story = stories.find((s) => s.id === annotation.id);
|
||||
if (!story)
|
||||
throw new Error(`Unexpected missing story ${annotation.id} from referenced CSF file.`);
|
||||
this.exportToStory.set(annotation.moduleExport, story);
|
||||
});
|
||||
}
|
||||
|
||||
if (addToComponentStories) {
|
||||
this.store.componentStoriesFromCSFFile({ csfFile }).forEach((story) => {
|
||||
this.nameToStoryId.set(story.name, story.id);
|
||||
this.componentStoriesValue.push(story);
|
||||
if (!this.primaryStory) this.primaryStory = story;
|
||||
});
|
||||
attachCSFFile(csfFile: CSFFile<TRenderer>) {
|
||||
if (!this.exportsToCSFFile.has(csfFile.moduleExports)) {
|
||||
throw new Error('Cannot attach a CSF file that has not been referenced');
|
||||
}
|
||||
|
||||
this.attachedCSFFile = csfFile;
|
||||
|
||||
const stories = this.store.componentStoriesFromCSFFile({ csfFile });
|
||||
stories.forEach((story) => {
|
||||
this.nameToStoryId.set(story.name, story.id);
|
||||
this.componentStoriesValue.push(story);
|
||||
if (!this.primaryStory) this.primaryStory = story;
|
||||
});
|
||||
}
|
||||
|
||||
setMeta(metaExports: ModuleExports) {
|
||||
// Do nothing (this is really only used by external docs)
|
||||
referenceMeta(metaExports: ModuleExports, attach: boolean) {
|
||||
const resolved = this.resolveModuleExport(metaExports);
|
||||
if (resolved.type !== 'meta')
|
||||
throw new Error('Cannot reference a non-meta or module export in <Meta of={} />');
|
||||
|
||||
if (attach) this.attachCSFFile(resolved.csfFile);
|
||||
}
|
||||
|
||||
storyIdByModuleExport(storyExport: ModuleExport, metaExports?: ModuleExports) {
|
||||
const storyId = this.exportToStoryId.get(storyExport);
|
||||
if (storyId) return storyId;
|
||||
get projectAnnotations() {
|
||||
const { projectAnnotations } = this.store;
|
||||
if (!projectAnnotations) {
|
||||
throw new Error("Can't get projectAnnotations from DocsContext before they are initialized");
|
||||
}
|
||||
return projectAnnotations;
|
||||
}
|
||||
|
||||
throw new Error(`No story found with that export: ${storyExport}`);
|
||||
resolveModuleExport(moduleExportOrType: ModuleExport | ResolvedModuleExport<TRenderer>['type']) {
|
||||
// If passed a type, we return the attached file, component or primary story
|
||||
if (moduleExportOrType === 'story') {
|
||||
if (!this.primaryStory)
|
||||
throw new Error(
|
||||
`No primary story attached to this docs file, did you forget to use <Meta of={} />?`
|
||||
);
|
||||
|
||||
return { type: 'story', story: this.primaryStory } as const;
|
||||
}
|
||||
if (moduleExportOrType === 'meta') {
|
||||
if (!this.attachedCSFFile)
|
||||
throw new Error(
|
||||
`No CSF file attached to this docs file, did you forget to use <Meta of={} />?`
|
||||
);
|
||||
|
||||
return { type: 'meta', csfFile: this.attachedCSFFile } as const;
|
||||
}
|
||||
if (moduleExportOrType === 'component') {
|
||||
if (!this.attachedCSFFile)
|
||||
throw new Error(
|
||||
`No CSF file attached to this docs file, did you forget to use <Meta of={} />?`
|
||||
);
|
||||
|
||||
const { component } = this.attachedCSFFile.meta;
|
||||
if (!component)
|
||||
throw new Error(
|
||||
`Attached CSF file does not defined a component, did you forget to export one?`
|
||||
);
|
||||
return { type: 'component', component } as const;
|
||||
}
|
||||
|
||||
const csfFile = this.exportsToCSFFile.get(moduleExportOrType);
|
||||
if (csfFile) return { type: 'meta', csfFile } as const;
|
||||
|
||||
const story = this.exportToStory.get(moduleExportOrType);
|
||||
if (story) return { type: 'story', story } as const;
|
||||
|
||||
// If the export isn't a module, default or story export, we assume it is a component
|
||||
return { type: 'component', component: moduleExportOrType } as const;
|
||||
}
|
||||
|
||||
storyIdByName = (storyName: StoryName) => {
|
||||
|
@ -0,0 +1,33 @@
|
||||
import type { CSFFile, PreparedStory } from '@storybook/types';
|
||||
|
||||
export function csfFileParts() {
|
||||
// These compose the raw exports of the CSF file
|
||||
const component = {};
|
||||
const metaExport = { component };
|
||||
const storyExport = {};
|
||||
const moduleExports = { default: metaExport, story: storyExport };
|
||||
|
||||
// This is the prepared story + CSF file after SB has processed them
|
||||
const storyAnnotations = {
|
||||
id: 'meta--story',
|
||||
moduleExport: storyExport,
|
||||
} as CSFFile['stories'][string];
|
||||
const story = { id: 'meta--story', moduleExport: storyExport } as PreparedStory;
|
||||
const meta = { id: 'meta', title: 'Meta', component, moduleExports } as CSFFile['meta'];
|
||||
const csfFile = {
|
||||
stories: { story: storyAnnotations },
|
||||
meta,
|
||||
moduleExports,
|
||||
} as CSFFile;
|
||||
|
||||
return {
|
||||
component,
|
||||
metaExport,
|
||||
storyExport,
|
||||
moduleExports,
|
||||
storyAnnotations,
|
||||
story,
|
||||
meta,
|
||||
csfFile,
|
||||
};
|
||||
}
|
@ -4,6 +4,7 @@ import type { StoryStore } from '../../store';
|
||||
import { PREPARE_ABORTED } from './Render';
|
||||
|
||||
import { CsfDocsRender } from './CsfDocsRender';
|
||||
import { csfFileParts } from '../docs-context/test-utils';
|
||||
|
||||
const entry = {
|
||||
type: 'docs',
|
||||
@ -23,28 +24,47 @@ const createGate = (): [Promise<any | undefined>, (_?: any) => void] => {
|
||||
return [gate, openGate];
|
||||
};
|
||||
|
||||
describe('CsfDocsRender', () => {
|
||||
it('throws PREPARE_ABORTED if torndown during prepare', async () => {
|
||||
const [importGate, openImportGate] = createGate();
|
||||
const mockStore = {
|
||||
loadEntry: jest.fn(async () => {
|
||||
await importGate;
|
||||
return {};
|
||||
}),
|
||||
};
|
||||
it('throws PREPARE_ABORTED if torndown during prepare', async () => {
|
||||
const [importGate, openImportGate] = createGate();
|
||||
const mockStore = {
|
||||
loadEntry: jest.fn(async () => {
|
||||
await importGate;
|
||||
return {};
|
||||
}),
|
||||
};
|
||||
|
||||
const render = new CsfDocsRender(
|
||||
new Channel(),
|
||||
mockStore as unknown as StoryStore<Renderer>,
|
||||
entry
|
||||
);
|
||||
const render = new CsfDocsRender(
|
||||
new Channel(),
|
||||
mockStore as unknown as StoryStore<Renderer>,
|
||||
entry
|
||||
);
|
||||
|
||||
const preparePromise = render.prepare();
|
||||
const preparePromise = render.prepare();
|
||||
|
||||
render.teardown();
|
||||
render.teardown();
|
||||
|
||||
openImportGate();
|
||||
openImportGate();
|
||||
|
||||
await expect(preparePromise).rejects.toThrowError(PREPARE_ABORTED);
|
||||
});
|
||||
await expect(preparePromise).rejects.toThrowError(PREPARE_ABORTED);
|
||||
});
|
||||
|
||||
it('attached immediately', async () => {
|
||||
const { story, csfFile, moduleExports } = csfFileParts();
|
||||
|
||||
const store = {
|
||||
loadEntry: () => ({
|
||||
entryExports: moduleExports,
|
||||
csfFiles: [],
|
||||
}),
|
||||
processCSFFileWithCache: () => csfFile,
|
||||
componentStoriesFromCSFFile: () => [story],
|
||||
storyFromCSFFile: () => story,
|
||||
} as unknown as StoryStore<Renderer>;
|
||||
|
||||
const render = new CsfDocsRender(new Channel(), store, entry);
|
||||
await render.prepare();
|
||||
|
||||
const context = render.docsContext(jest.fn());
|
||||
|
||||
expect(context.storyById()).toEqual(story);
|
||||
});
|
||||
|
@ -85,19 +85,28 @@ export class CsfDocsRender<TRenderer extends Renderer> implements Render<TRender
|
||||
);
|
||||
}
|
||||
|
||||
docsContext(renderStoryToElement: DocsContextProps['renderStoryToElement']) {
|
||||
if (!this.csfFiles) throw new Error('Cannot render docs before preparing');
|
||||
const docsContext = new DocsContext<TRenderer>(
|
||||
this.channel,
|
||||
this.store,
|
||||
renderStoryToElement,
|
||||
this.csfFiles
|
||||
);
|
||||
// All referenced CSF files should be attached for CSF docs
|
||||
// - When you create two CSF files that both reference the same title, they are combined into
|
||||
// a single CSF docs entry with a `storiesImport` defined.
|
||||
this.csfFiles.forEach((csfFile) => docsContext.attachCSFFile(csfFile));
|
||||
return docsContext;
|
||||
}
|
||||
|
||||
async renderToElement(
|
||||
canvasElement: TRenderer['canvasElement'],
|
||||
renderStoryToElement: DocsContextProps['renderStoryToElement']
|
||||
) {
|
||||
if (!this.story || !this.csfFiles) throw new Error('Cannot render docs before preparing');
|
||||
|
||||
const docsContext = new DocsContext<TRenderer>(
|
||||
this.channel,
|
||||
this.store,
|
||||
renderStoryToElement,
|
||||
this.csfFiles,
|
||||
true
|
||||
);
|
||||
const docsContext = this.docsContext(renderStoryToElement);
|
||||
|
||||
const { docs: docsParameter } = this.story.parameters || {};
|
||||
|
||||
|
@ -4,6 +4,7 @@ import type { StoryStore } from '../../store';
|
||||
import { PREPARE_ABORTED } from './Render';
|
||||
|
||||
import { MdxDocsRender } from './MdxDocsRender';
|
||||
import { csfFileParts } from '../docs-context/test-utils';
|
||||
|
||||
const entry = {
|
||||
type: 'docs',
|
||||
@ -22,28 +23,58 @@ const createGate = (): [Promise<any | undefined>, (_?: any) => void] => {
|
||||
return [gate, openGate];
|
||||
};
|
||||
|
||||
describe('MdxDocsRender', () => {
|
||||
it('throws PREPARE_ABORTED if torndown during prepare', async () => {
|
||||
const [importGate, openImportGate] = createGate();
|
||||
const mockStore = {
|
||||
loadEntry: jest.fn(async () => {
|
||||
await importGate;
|
||||
return {};
|
||||
}),
|
||||
};
|
||||
it('throws PREPARE_ABORTED if torndown during prepare', async () => {
|
||||
const [importGate, openImportGate] = createGate();
|
||||
const mockStore = {
|
||||
loadEntry: jest.fn(async () => {
|
||||
await importGate;
|
||||
return {};
|
||||
}),
|
||||
};
|
||||
|
||||
const render = new MdxDocsRender(
|
||||
new Channel(),
|
||||
mockStore as unknown as StoryStore<Renderer>,
|
||||
entry
|
||||
);
|
||||
const render = new MdxDocsRender(
|
||||
new Channel(),
|
||||
mockStore as unknown as StoryStore<Renderer>,
|
||||
entry
|
||||
);
|
||||
|
||||
const preparePromise = render.prepare();
|
||||
const preparePromise = render.prepare();
|
||||
|
||||
render.teardown();
|
||||
render.teardown();
|
||||
|
||||
openImportGate();
|
||||
openImportGate();
|
||||
|
||||
await expect(preparePromise).rejects.toThrowError(PREPARE_ABORTED);
|
||||
await expect(preparePromise).rejects.toThrowError(PREPARE_ABORTED);
|
||||
});
|
||||
|
||||
describe('attaching', () => {
|
||||
const { story, csfFile, moduleExports } = csfFileParts();
|
||||
const store = {
|
||||
loadEntry: () => ({
|
||||
entryExports: moduleExports,
|
||||
csfFiles: [csfFile],
|
||||
}),
|
||||
processCSFFileWithCache: () => csfFile,
|
||||
componentStoriesFromCSFFile: () => [story],
|
||||
storyFromCSFFile: () => story,
|
||||
} as unknown as StoryStore<Renderer>;
|
||||
|
||||
it('is not attached if you do not call setMeta', async () => {
|
||||
const render = new MdxDocsRender(new Channel(), store, entry);
|
||||
await render.prepare();
|
||||
|
||||
const context = render.docsContext(jest.fn());
|
||||
|
||||
expect(context.storyById).toThrow('No primary story defined');
|
||||
});
|
||||
|
||||
it('is attached if you call referenceMeta with attach=true', async () => {
|
||||
const render = new MdxDocsRender(new Channel(), store, entry);
|
||||
await render.prepare();
|
||||
|
||||
const context = render.docsContext(jest.fn());
|
||||
context.referenceMeta(moduleExports, true);
|
||||
|
||||
expect(context.storyById()).toEqual(story);
|
||||
});
|
||||
});
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
x
Reference in New Issue
Block a user