Merge pull request #18673 from storybookjs/tom/sb-468-add-step-function-to-play-context-and

Add step function to play context
This commit is contained in:
Tom Coleman 2022-07-29 10:44:02 +10:00 committed by GitHub
commit 428a768e6a
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
44 changed files with 220 additions and 76 deletions

View File

@ -69,7 +69,7 @@
"@storybook/client-logger": "7.0.0-alpha.17",
"@storybook/components": "7.0.0-alpha.17",
"@storybook/core-events": "7.0.0-alpha.17",
"@storybook/csf": "0.0.2--canary.4566f4d.1",
"@storybook/csf": "0.0.2--canary.0899bb7.0",
"@storybook/theming": "7.0.0-alpha.17",
"axe-core": "^4.2.0",
"core-js": "^3.8.2",

View File

@ -40,7 +40,7 @@
"@storybook/client-logger": "7.0.0-alpha.17",
"@storybook/components": "7.0.0-alpha.17",
"@storybook/core-events": "7.0.0-alpha.17",
"@storybook/csf": "0.0.2--canary.4566f4d.1",
"@storybook/csf": "0.0.2--canary.0899bb7.0",
"@storybook/theming": "7.0.0-alpha.17",
"core-js": "^3.8.2",
"dequal": "^2.0.2",

View File

@ -67,7 +67,7 @@
"@storybook/client-logger": "7.0.0-alpha.17",
"@storybook/components": "7.0.0-alpha.17",
"@storybook/core-events": "7.0.0-alpha.17",
"@storybook/csf": "0.0.2--canary.4566f4d.1",
"@storybook/csf": "0.0.2--canary.0899bb7.0",
"@storybook/theming": "7.0.0-alpha.17",
"core-js": "^3.8.2",
"global": "^4.4.0",

View File

@ -63,7 +63,7 @@
"@storybook/client-logger": "7.0.0-alpha.17",
"@storybook/components": "7.0.0-alpha.17",
"@storybook/core-common": "7.0.0-alpha.17",
"@storybook/csf": "0.0.2--canary.4566f4d.1",
"@storybook/csf": "0.0.2--canary.0899bb7.0",
"@storybook/node-logger": "7.0.0-alpha.17",
"@storybook/store": "7.0.0-alpha.17",
"@storybook/theming": "7.0.0-alpha.17",

View File

@ -59,7 +59,7 @@
"@storybook/components": "7.0.0-alpha.17",
"@storybook/core-common": "7.0.0-alpha.17",
"@storybook/core-events": "7.0.0-alpha.17",
"@storybook/csf": "0.0.2--canary.4566f4d.1",
"@storybook/csf": "0.0.2--canary.0899bb7.0",
"@storybook/csf-tools": "7.0.0-alpha.17",
"@storybook/docs-tools": "7.0.0-alpha.17",
"@storybook/mdx1-csf": "0.0.5-canary.13.9ce928a.0",

View File

@ -42,7 +42,7 @@
"@storybook/components": "7.0.0-alpha.17",
"@storybook/core-common": "7.0.0-alpha.17",
"@storybook/core-events": "7.0.0-alpha.17",
"@storybook/csf": "0.0.2--canary.4566f4d.1",
"@storybook/csf": "0.0.2--canary.0899bb7.0",
"@storybook/instrumenter": "7.0.0-alpha.17",
"@storybook/theming": "7.0.0-alpha.17",
"core-js": "^3.8.2",

View File

@ -38,7 +38,7 @@
"@storybook/addons": "7.0.0-alpha.17",
"@storybook/client-logger": "7.0.0-alpha.17",
"@storybook/core-events": "7.0.0-alpha.17",
"@storybook/csf": "0.0.2--canary.4566f4d.1",
"@storybook/csf": "0.0.2--canary.0899bb7.0",
"@storybook/router": "7.0.0-alpha.17",
"core-js": "^3.8.2",
"global": "^4.4.0",

View File

@ -43,7 +43,7 @@
"@storybook/client-logger": "7.0.0-alpha.17",
"@storybook/components": "7.0.0-alpha.17",
"@storybook/core-events": "7.0.0-alpha.17",
"@storybook/csf": "0.0.2--canary.4566f4d.1",
"@storybook/csf": "0.0.2--canary.0899bb7.0",
"core-js": "^3.8.2",
"global": "^4.4.0"
},

View File

@ -46,7 +46,7 @@
"@storybook/client-logger": "7.0.0-alpha.17",
"@storybook/components": "7.0.0-alpha.17",
"@storybook/core-events": "7.0.0-alpha.17",
"@storybook/csf": "0.0.2--canary.4566f4d.1",
"@storybook/csf": "0.0.2--canary.0899bb7.0",
"core-js": "^3.8.2",
"global": "^4.4.0",
"ts-dedent": "^2.0.0"

View File

@ -44,7 +44,7 @@
"@storybook/core-client": "7.0.0-alpha.17",
"@storybook/core-common": "7.0.0-alpha.17",
"@storybook/core-webpack": "7.0.0-alpha.17",
"@storybook/csf": "0.0.2--canary.4566f4d.1",
"@storybook/csf": "0.0.2--canary.0899bb7.0",
"@types/glob": "^7.1.3",
"@types/jest": "^26.0.16",
"@types/jest-specific-snapshot": "^0.5.3",

View File

@ -34,14 +34,13 @@
},
"dependencies": {
"@axe-core/puppeteer": "^4.2.0",
"@storybook/csf": "0.0.2--canary.4566f4d.1",
"@storybook/csf": "0.0.2--canary.0899bb7.0",
"@storybook/node-logger": "7.0.0-alpha.17",
"@types/jest-image-snapshot": "^4.1.3",
"core-js": "^3.8.2",
"jest-image-snapshot": "^4.3.0"
},
"devDependencies": {
"@storybook/csf": "0.0.2--canary.4566f4d.1",
"@types/puppeteer": "^5.4.0",
"puppeteer": "^2.0.0 || ^3.0.0"
},

View File

@ -15,7 +15,7 @@
"@storybook/addon-essentials": "7.0.0-alpha.17",
"@storybook/blocks": "7.0.0-alpha.17",
"@storybook/components": "7.0.0-alpha.17",
"@storybook/csf": "0.0.2--canary.4566f4d.1",
"@storybook/csf": "0.0.2--canary.0899bb7.0",
"@storybook/preview-web": "7.0.0-alpha.17",
"@storybook/react": "7.0.0-alpha.17",
"@storybook/react-webpack5": "7.0.0-alpha.17",

View File

@ -43,7 +43,7 @@
"@storybook/core-events": "link:../../lib/core-events",
"@storybook/core-server": "link:../../lib/core-server",
"@storybook/core-webpack": "link:../../lib/core-webpack",
"@storybook/csf": "0.0.2--canary.4566f4d.1",
"@storybook/csf": "0.0.2--canary.0899bb7.0",
"@storybook/csf-tools": "link:../../lib/csf-tools",
"@storybook/docs-tools": "link:../../lib/docs-tools",
"@storybook/jest": "^0.0.10",

View File

@ -42,7 +42,7 @@
"@storybook/core-common": "7.0.0-alpha.17",
"@storybook/core-events": "7.0.0-alpha.17",
"@storybook/core-server": "7.0.0-alpha.17",
"@storybook/csf": "0.0.2--canary.4566f4d.1",
"@storybook/csf": "0.0.2--canary.0899bb7.0",
"@storybook/docs-tools": "7.0.0-alpha.17",
"@storybook/node-logger": "7.0.0-alpha.17",
"@storybook/semver": "^7.3.2",

View File

@ -38,7 +38,7 @@
"@storybook/channels": "7.0.0-alpha.17",
"@storybook/client-logger": "7.0.0-alpha.17",
"@storybook/core-events": "7.0.0-alpha.17",
"@storybook/csf": "0.0.2--canary.4566f4d.1",
"@storybook/csf": "0.0.2--canary.0899bb7.0",
"@storybook/router": "7.0.0-alpha.17",
"@storybook/theming": "7.0.0-alpha.17",
"@types/webpack-env": "^1.16.4",

View File

@ -35,7 +35,7 @@
"@storybook/channels": "7.0.0-alpha.17",
"@storybook/client-logger": "7.0.0-alpha.17",
"@storybook/core-events": "7.0.0-alpha.17",
"@storybook/csf": "0.0.2--canary.4566f4d.1",
"@storybook/csf": "0.0.2--canary.0899bb7.0",
"@storybook/router": "7.0.0-alpha.17",
"@storybook/semver": "^7.3.2",
"@storybook/theming": "7.0.0-alpha.17",

View File

@ -39,7 +39,7 @@
"@storybook/channels": "7.0.0-alpha.17",
"@storybook/client-logger": "7.0.0-alpha.17",
"@storybook/core-events": "7.0.0-alpha.17",
"@storybook/csf": "0.0.2--canary.4566f4d.1",
"@storybook/csf": "0.0.2--canary.0899bb7.0",
"@storybook/store": "7.0.0-alpha.17",
"@types/qs": "^6.9.5",
"@types/webpack-env": "^1.16.4",

View File

@ -44,7 +44,7 @@
"dependencies": {
"@babel/types": "^7.12.11",
"@mdx-js/mdx": "^1.6.22",
"@storybook/csf": "0.0.2--canary.4566f4d.1",
"@storybook/csf": "0.0.2--canary.0899bb7.0",
"@storybook/csf-tools": "7.0.0-alpha.17",
"@storybook/node-logger": "7.0.0-alpha.17",
"core-js": "^3.8.2",

View File

@ -52,7 +52,7 @@
},
"dependencies": {
"@storybook/client-logger": "7.0.0-alpha.17",
"@storybook/csf": "0.0.2--canary.4566f4d.1",
"@storybook/csf": "0.0.2--canary.0899bb7.0",
"@storybook/theming": "7.0.0-alpha.17",
"core-js": "^3.8.2",
"memoizerific": "^1.11.3",

View File

@ -40,7 +40,7 @@
"@storybook/client-api": "7.0.0-alpha.17",
"@storybook/client-logger": "7.0.0-alpha.17",
"@storybook/core-events": "7.0.0-alpha.17",
"@storybook/csf": "0.0.2--canary.4566f4d.1",
"@storybook/csf": "0.0.2--canary.0899bb7.0",
"@storybook/preview-web": "7.0.0-alpha.17",
"@storybook/store": "7.0.0-alpha.17",
"@storybook/ui": "7.0.0-alpha.17",

View File

@ -68,7 +68,7 @@
"@babel/preset-react": "^7.12.10",
"@babel/preset-typescript": "^7.12.7",
"@babel/register": "^7.12.1",
"@storybook/csf": "0.0.2--canary.4566f4d.1",
"@storybook/csf": "0.0.2--canary.0899bb7.0",
"@storybook/node-logger": "7.0.0-alpha.17",
"@storybook/semver": "^7.3.2",
"@types/babel__core": "^7.0.0",

View File

@ -39,7 +39,7 @@
"@storybook/core-client": "7.0.0-alpha.17",
"@storybook/core-common": "7.0.0-alpha.17",
"@storybook/core-events": "7.0.0-alpha.17",
"@storybook/csf": "0.0.2--canary.4566f4d.1",
"@storybook/csf": "0.0.2--canary.0899bb7.0",
"@storybook/csf-tools": "7.0.0-alpha.17",
"@storybook/docs-mdx": "0.0.1-canary.12433cf.0",
"@storybook/node-logger": "7.0.0-alpha.17",

View File

@ -41,7 +41,7 @@
"@babel/preset-env": "^7.12.11",
"@babel/traverse": "^7.12.11",
"@babel/types": "^7.12.11",
"@storybook/csf": "0.0.2--canary.4566f4d.1",
"@storybook/csf": "0.0.2--canary.0899bb7.0",
"core-js": "^3.8.2",
"fs-extra": "^9.0.1",
"global": "^4.4.0",

View File

@ -35,7 +35,7 @@
},
"dependencies": {
"@babel/core": "^7.12.10",
"@storybook/csf": "0.0.2--canary.4566f4d.1",
"@storybook/csf": "0.0.2--canary.0899bb7.0",
"@storybook/store": "7.0.0-alpha.17",
"core-js": "^3.8.2",
"doctrine": "^3.0.0",

View File

@ -46,7 +46,7 @@
"@storybook/channels": "7.0.0-alpha.17",
"@storybook/client-logger": "7.0.0-alpha.17",
"@storybook/core-events": "7.0.0-alpha.17",
"@storybook/csf": "0.0.2--canary.4566f4d.1",
"@storybook/csf": "0.0.2--canary.0899bb7.0",
"@storybook/store": "7.0.0-alpha.17",
"ansi-to-html": "^0.6.11",
"core-js": "^3.8.2",

View File

@ -37,7 +37,7 @@
"dependencies": {
"@storybook/addons": "7.0.0-alpha.17",
"@storybook/client-logger": "7.0.0-alpha.17",
"@storybook/csf": "0.0.2--canary.4566f4d.1",
"@storybook/csf": "0.0.2--canary.0899bb7.0",
"core-js": "^3.8.2",
"estraverse": "^5.2.0",
"global": "^4.4.0",

View File

@ -44,7 +44,7 @@
"@storybook/addons": "7.0.0-alpha.17",
"@storybook/client-logger": "7.0.0-alpha.17",
"@storybook/core-events": "7.0.0-alpha.17",
"@storybook/csf": "0.0.2--canary.4566f4d.1",
"@storybook/csf": "0.0.2--canary.0899bb7.0",
"core-js": "^3.8.2",
"dequal": "^2.0.2",
"global": "^4.4.0",

View File

@ -14,6 +14,7 @@ describe('composeConfigs', () => {
globals: {},
globalTypes: {},
loaders: [],
runStep: expect.any(Function),
});
});
@ -37,6 +38,7 @@ describe('composeConfigs', () => {
globals: {},
globalTypes: {},
loaders: [],
runStep: expect.any(Function),
});
});
@ -66,6 +68,7 @@ describe('composeConfigs', () => {
globals: { x: '2', y: '1', z: '2', obj: { a: '2', c: '2' } },
globalTypes: { x: '2', y: '1', z: '2', obj: { a: '2', c: '2' } },
loaders: [],
runStep: expect.any(Function),
});
});
@ -95,6 +98,7 @@ describe('composeConfigs', () => {
globals: {},
globalTypes: {},
loaders: ['1', '2', '3', '4'],
runStep: expect.any(Function),
});
});
@ -119,6 +123,7 @@ describe('composeConfigs', () => {
globals: {},
globalTypes: {},
loaders: [],
runStep: expect.any(Function),
});
});
@ -149,6 +154,7 @@ describe('composeConfigs', () => {
render: 'render-2',
renderToDOM: 'renderToDOM-2',
applyDecorators: 'applyDecorators-2',
runStep: expect.any(Function),
});
});
});

View File

@ -1,7 +1,8 @@
import type { AnyFramework } from '@storybook/csf';
import { combineParameters } from '../parameters';
import type { ModuleExports, WebProjectAnnotations } from '../types';
import { combineParameters } from '../parameters';
import { composeStepRunners } from './stepRunners';
export function getField<TFieldType = any>(
moduleExportList: ModuleExports[],
@ -52,5 +53,6 @@ export function composeConfigs<TFramework extends AnyFramework>(
render: getSingletonField(moduleExportList, 'render'),
renderToDOM: getSingletonField(moduleExportList, 'renderToDOM'),
applyDecorators: getSingletonField(moduleExportList, 'applyDecorators'),
runStep: composeStepRunners<TFramework>(getArrayField(moduleExportList, 'runStep')),
};
}

View File

@ -4,9 +4,9 @@ import { addons, HooksContext } from '@storybook/addons';
import type {
AnyFramework,
ArgsEnhancer,
PlayFunctionContext,
SBObjectType,
SBScalarType,
StoryContext,
} from '@storybook/csf';
import { NO_TARGET_NAME } from '../args';
@ -630,10 +630,31 @@ describe('playFunction', () => {
{ render }
);
await playFunction({} as StoryContext<AnyFramework>);
await playFunction!({} as PlayFunctionContext);
expect(play).toHaveBeenCalled();
expect(inner).toHaveBeenCalled();
});
it('provides step via runStep', async () => {
const stepPlay = jest.fn((context) => {
expect(context).not.toBeUndefined();
expect(context.step).toEqual(expect.any(Function));
});
const play = jest.fn(async ({ step }) => {
step('label', stepPlay);
});
const runStep = jest.fn((label, p, c) => p(c));
const { playFunction } = prepareStory(
{ id, name, play, moduleExport },
{ id, title },
{ render, runStep }
);
await playFunction!({} as PlayFunctionContext);
expect(play).toHaveBeenCalled();
expect(stepPlay).toHaveBeenCalled();
expect(runStep).toBeCalledWith('label', stepPlay, expect.any(Object));
});
});
describe('moduleExport', () => {

View File

@ -12,6 +12,9 @@ import type {
AnyFramework,
StrictArgTypes,
StoryContextForLoaders,
PlayFunctionContext,
StepLabel,
PlayFunction,
} from '@storybook/csf';
import { includeConditionalArg } from '@storybook/csf';
@ -69,6 +72,7 @@ export function prepareStory<TFramework extends AnyFramework>(
applyDecorators = defaultDecorateStory,
argTypesEnhancers = [],
argsEnhancers = [],
runStep,
} = projectAnnotations;
const loaders = [
@ -197,7 +201,18 @@ export function prepareStory<TFramework extends AnyFramework>(
return decoratedStoryFn(finalContext);
};
const playFunction = storyAnnotations.play;
const { play } = storyAnnotations;
const playFunction =
play &&
(async (storyContext: StoryContext<TFramework>) => {
const playFunctionContext: PlayFunctionContext<TFramework> = {
...storyContext,
step: (label: StepLabel, play: PlayFunction<TFramework>) =>
// TODO: We know runStep is defined, we need a proper normalized annotations type
runStep!(label, play, playFunctionContext),
};
return play(playFunctionContext);
});
return Object.freeze({
...contextForEnhancers,

View File

@ -0,0 +1,60 @@
import { PlayFunctionContext, StepRunner } from '@storybook/csf';
import { composeStepRunners } from './stepRunners';
describe('stepRunners', () => {
it('composes each step runner', async () => {
const order: string[] = [];
const firstStepRunner: StepRunner = async (label, play, ctx) => {
order.push(`first-${label}-start`);
await play(ctx);
order.push(`first-${label}-end`);
};
const secondStepRunner: StepRunner = async (label, play, ctx) => {
order.push(`second-${label}-start`);
await play(ctx);
order.push(`second-${label}-end`);
};
const composed = composeStepRunners([firstStepRunner, secondStepRunner]);
const playFnA = jest.fn();
const playContextA = {} as PlayFunctionContext;
await composed('a', playFnA, playContextA);
const playFnB = jest.fn();
const playContextB = {} as PlayFunctionContext;
await composed('b', playFnB, playContextB);
expect(playFnA).toHaveBeenCalledTimes(1);
expect(playFnA).toHaveBeenCalledWith(playContextA);
expect(playFnB).toHaveBeenCalledTimes(1);
expect(playFnB).toHaveBeenCalledWith(playContextB);
expect(order).toEqual([
'first-a-start',
'second-a-start',
'second-a-end',
'first-a-end',
'first-b-start',
'second-b-start',
'second-b-end',
'first-b-end',
]);
});
it('creates a sensible default if no step runner is provided', async () => {
const composed = composeStepRunners([]);
const playFnA = jest.fn();
const playContextA = {} as PlayFunctionContext;
await composed('a', playFnA, playContextA);
const playFnB = jest.fn();
const playContextB = {} as PlayFunctionContext;
await composed('b', playFnB, playContextB);
expect(playFnA).toHaveBeenCalledTimes(1);
expect(playFnA).toHaveBeenCalledWith(playContextA);
expect(playFnB).toHaveBeenCalledTimes(1);
expect(playFnB).toHaveBeenCalledWith(playContextB);
});
});

View File

@ -0,0 +1,31 @@
import { AnyFramework, StepRunner } from '@storybook/csf';
/**
* Compose step runners to create a single step runner that applies each step runner in order.
*
* A step runner is a a function that takes a defined step: `step('label', () => { ... })`
* and runs it. The prototypical example is from `@storybook/addon-interactions` where the
* step runner will decorate all instrumented code inside the step with information about the
* label.
*
* In theory it is possible to have more than one addon that wants to run steps; they can be
* composed together in a similar fashion to decorators. In some ways step runners are like
* decorators except it is not intended that they change the context or the play function.
*
* The basic implementation of a step runner is `async (label, play, context) => play(context)`
* -- in fact this is what `composeStepRunners([])` will do.
*
* @param stepRunners an array of StepRunner
* @returns a StepRunner that is the composition of the arguments
*/
export function composeStepRunners<TFramework extends AnyFramework>(
stepRunners: StepRunner<TFramework>[]
): StepRunner<TFramework> {
return async (label, play, playContext) => {
const composedPlay = stepRunners.reduceRight<() => Promise<void>>(
(innerPlay, stepRunner) => async () => stepRunner(label, innerPlay, playContext),
async () => play(playContext)
);
await composedPlay();
};
}

View File

@ -62,7 +62,7 @@
"@storybook/client-logger": "7.0.0-alpha.17",
"@storybook/components": "7.0.0-alpha.17",
"@storybook/core-events": "7.0.0-alpha.17",
"@storybook/csf": "0.0.2--canary.4566f4d.1",
"@storybook/csf": "0.0.2--canary.0899bb7.0",
"@storybook/router": "7.0.0-alpha.17",
"@storybook/semver": "^7.3.2",
"@storybook/theming": "7.0.0-alpha.17",

View File

@ -52,7 +52,7 @@
"dependencies": {
"@storybook/addons": "7.0.0-alpha.17",
"@storybook/core-client": "7.0.0-alpha.17",
"@storybook/csf": "0.0.2--canary.4566f4d.1",
"@storybook/csf": "0.0.2--canary.0899bb7.0",
"@storybook/docs-tools": "7.0.0-alpha.17",
"@storybook/preview-web": "7.0.0-alpha.17",
"@storybook/store": "7.0.0-alpha.17",

View File

@ -52,7 +52,7 @@
"dependencies": {
"@storybook/addons": "7.0.0-alpha.17",
"@storybook/core-client": "7.0.0-alpha.17",
"@storybook/csf": "0.0.2--canary.4566f4d.1",
"@storybook/csf": "0.0.2--canary.0899bb7.0",
"@storybook/store": "7.0.0-alpha.17",
"core-js": "^3.8.2",
"global": "^4.4.0",

View File

@ -54,7 +54,7 @@
"@storybook/addons": "7.0.0-alpha.17",
"@storybook/client-logger": "7.0.0-alpha.17",
"@storybook/core-client": "7.0.0-alpha.17",
"@storybook/csf": "0.0.2--canary.4566f4d.1",
"@storybook/csf": "0.0.2--canary.0899bb7.0",
"@storybook/docs-tools": "7.0.0-alpha.17",
"@storybook/store": "7.0.0-alpha.17",
"@types/estree": "^0.0.51",

View File

@ -52,7 +52,7 @@
"dependencies": {
"@storybook/addons": "7.0.0-alpha.17",
"@storybook/core-client": "7.0.0-alpha.17",
"@storybook/csf": "0.0.2--canary.4566f4d.1",
"@storybook/csf": "0.0.2--canary.0899bb7.0",
"@storybook/preview-web": "7.0.0-alpha.17",
"@storybook/store": "7.0.0-alpha.17",
"core-js": "^3.8.2",

View File

@ -57,7 +57,7 @@
"@storybook/addons": "7.0.0-alpha.17",
"@storybook/client-logger": "7.0.0-alpha.17",
"@storybook/core-client": "7.0.0-alpha.17",
"@storybook/csf": "0.0.2--canary.4566f4d.1",
"@storybook/csf": "0.0.2--canary.0899bb7.0",
"@storybook/docs-tools": "7.0.0-alpha.17",
"@storybook/store": "7.0.0-alpha.17",
"core-js": "^3.8.2",

View File

@ -53,7 +53,7 @@
"@storybook/addons": "7.0.0-alpha.17",
"@storybook/client-logger": "7.0.0-alpha.17",
"@storybook/core-client": "7.0.0-alpha.17",
"@storybook/csf": "0.0.2--canary.4566f4d.1",
"@storybook/csf": "0.0.2--canary.0899bb7.0",
"@storybook/docs-tools": "7.0.0-alpha.17",
"@storybook/store": "7.0.0-alpha.17",
"core-js": "^3.8.2",

View File

@ -53,7 +53,7 @@
"dependencies": {
"@storybook/addons": "7.0.0-alpha.17",
"@storybook/core-client": "7.0.0-alpha.17",
"@storybook/csf": "0.0.2--canary.4566f4d.1",
"@storybook/csf": "0.0.2--canary.0899bb7.0",
"@storybook/docs-tools": "7.0.0-alpha.17",
"@storybook/store": "7.0.0-alpha.17",
"core-js": "^3.8.2",

View File

@ -56,7 +56,7 @@
"@storybook/api": "7.0.0-alpha.17",
"@storybook/client-logger": "7.0.0-alpha.17",
"@storybook/core-client": "7.0.0-alpha.17",
"@storybook/csf": "0.0.2--canary.4566f4d.1",
"@storybook/csf": "0.0.2--canary.0899bb7.0",
"@storybook/docs-tools": "7.0.0-alpha.17",
"@storybook/preview-web": "7.0.0-alpha.17",
"@storybook/store": "7.0.0-alpha.17",

View File

@ -6751,7 +6751,7 @@ __metadata:
"@storybook/client-logger": 7.0.0-alpha.17
"@storybook/components": 7.0.0-alpha.17
"@storybook/core-events": 7.0.0-alpha.17
"@storybook/csf": 0.0.2--canary.4566f4d.1
"@storybook/csf": 0.0.2--canary.0899bb7.0
"@storybook/theming": 7.0.0-alpha.17
"@testing-library/react": ^11.2.2
axe-core: ^4.2.0
@ -6782,7 +6782,7 @@ __metadata:
"@storybook/client-logger": 7.0.0-alpha.17
"@storybook/components": 7.0.0-alpha.17
"@storybook/core-events": 7.0.0-alpha.17
"@storybook/csf": 0.0.2--canary.4566f4d.1
"@storybook/csf": 0.0.2--canary.0899bb7.0
"@storybook/theming": 7.0.0-alpha.17
"@types/lodash": ^4.14.167
core-js: ^3.8.2
@ -6817,7 +6817,7 @@ __metadata:
"@storybook/client-logger": 7.0.0-alpha.17
"@storybook/components": 7.0.0-alpha.17
"@storybook/core-events": 7.0.0-alpha.17
"@storybook/csf": 0.0.2--canary.4566f4d.1
"@storybook/csf": 0.0.2--canary.0899bb7.0
"@storybook/theming": 7.0.0-alpha.17
core-js: ^3.8.2
global: ^4.4.0
@ -6846,7 +6846,7 @@ __metadata:
"@storybook/client-logger": 7.0.0-alpha.17
"@storybook/components": 7.0.0-alpha.17
"@storybook/core-common": 7.0.0-alpha.17
"@storybook/csf": 0.0.2--canary.4566f4d.1
"@storybook/csf": 0.0.2--canary.0899bb7.0
"@storybook/node-logger": 7.0.0-alpha.17
"@storybook/store": 7.0.0-alpha.17
"@storybook/theming": 7.0.0-alpha.17
@ -6879,7 +6879,7 @@ __metadata:
"@storybook/components": 7.0.0-alpha.17
"@storybook/core-common": 7.0.0-alpha.17
"@storybook/core-events": 7.0.0-alpha.17
"@storybook/csf": 0.0.2--canary.4566f4d.1
"@storybook/csf": 0.0.2--canary.0899bb7.0
"@storybook/csf-tools": 7.0.0-alpha.17
"@storybook/docs-tools": 7.0.0-alpha.17
"@storybook/mdx1-csf": 0.0.5-canary.13.9ce928a.0
@ -6992,7 +6992,7 @@ __metadata:
"@storybook/components": 7.0.0-alpha.17
"@storybook/core-common": 7.0.0-alpha.17
"@storybook/core-events": 7.0.0-alpha.17
"@storybook/csf": 0.0.2--canary.4566f4d.1
"@storybook/csf": 0.0.2--canary.0899bb7.0
"@storybook/instrumenter": 7.0.0-alpha.17
"@storybook/jest": ^0.0.10
"@storybook/testing-library": 0.0.14-next.0
@ -7048,7 +7048,7 @@ __metadata:
"@storybook/addons": 7.0.0-alpha.17
"@storybook/client-logger": 7.0.0-alpha.17
"@storybook/core-events": 7.0.0-alpha.17
"@storybook/csf": 0.0.2--canary.4566f4d.1
"@storybook/csf": 0.0.2--canary.0899bb7.0
"@storybook/router": 7.0.0-alpha.17
core-js: ^3.8.2
global: ^4.4.0
@ -7075,7 +7075,7 @@ __metadata:
"@storybook/client-logger": 7.0.0-alpha.17
"@storybook/components": 7.0.0-alpha.17
"@storybook/core-events": 7.0.0-alpha.17
"@storybook/csf": 0.0.2--canary.4566f4d.1
"@storybook/csf": 0.0.2--canary.0899bb7.0
core-js: ^3.8.2
global: ^4.4.0
typescript: ~4.6.3
@ -7099,7 +7099,7 @@ __metadata:
"@storybook/client-logger": 7.0.0-alpha.17
"@storybook/components": 7.0.0-alpha.17
"@storybook/core-events": 7.0.0-alpha.17
"@storybook/csf": 0.0.2--canary.4566f4d.1
"@storybook/csf": 0.0.2--canary.0899bb7.0
core-js: ^3.8.2
global: ^4.4.0
ts-dedent: ^2.0.0
@ -7133,7 +7133,7 @@ __metadata:
resolution: "@storybook/addon-storyshots-puppeteer@workspace:addons/storyshots/storyshots-puppeteer"
dependencies:
"@axe-core/puppeteer": ^4.2.0
"@storybook/csf": 0.0.2--canary.4566f4d.1
"@storybook/csf": 0.0.2--canary.0899bb7.0
"@storybook/node-logger": 7.0.0-alpha.17
"@types/jest-image-snapshot": ^4.1.3
"@types/puppeteer": ^5.4.0
@ -7165,7 +7165,7 @@ __metadata:
"@storybook/core-client": 7.0.0-alpha.17
"@storybook/core-common": 7.0.0-alpha.17
"@storybook/core-webpack": 7.0.0-alpha.17
"@storybook/csf": 0.0.2--canary.4566f4d.1
"@storybook/csf": 0.0.2--canary.0899bb7.0
"@storybook/react": 7.0.0-alpha.17
"@storybook/vue": 7.0.0-alpha.17
"@storybook/vue3": 7.0.0-alpha.17
@ -7324,7 +7324,7 @@ __metadata:
"@storybook/channels": 7.0.0-alpha.17
"@storybook/client-logger": 7.0.0-alpha.17
"@storybook/core-events": 7.0.0-alpha.17
"@storybook/csf": 0.0.2--canary.4566f4d.1
"@storybook/csf": 0.0.2--canary.0899bb7.0
"@storybook/router": 7.0.0-alpha.17
"@storybook/theming": 7.0.0-alpha.17
"@types/webpack-env": ^1.16.4
@ -7383,7 +7383,7 @@ __metadata:
"@storybook/core-common": 7.0.0-alpha.17
"@storybook/core-events": 7.0.0-alpha.17
"@storybook/core-server": 7.0.0-alpha.17
"@storybook/csf": 0.0.2--canary.4566f4d.1
"@storybook/csf": 0.0.2--canary.0899bb7.0
"@storybook/docs-tools": 7.0.0-alpha.17
"@storybook/node-logger": 7.0.0-alpha.17
"@storybook/semver": ^7.3.2
@ -7451,7 +7451,7 @@ __metadata:
"@storybook/channels": 7.0.0-alpha.17
"@storybook/client-logger": 7.0.0-alpha.17
"@storybook/core-events": 7.0.0-alpha.17
"@storybook/csf": 0.0.2--canary.4566f4d.1
"@storybook/csf": 0.0.2--canary.0899bb7.0
"@storybook/router": 7.0.0-alpha.17
"@storybook/semver": ^7.3.2
"@storybook/theming": 7.0.0-alpha.17
@ -7734,7 +7734,7 @@ __metadata:
"@storybook/channels": 7.0.0-alpha.17
"@storybook/client-logger": 7.0.0-alpha.17
"@storybook/core-events": 7.0.0-alpha.17
"@storybook/csf": 0.0.2--canary.4566f4d.1
"@storybook/csf": 0.0.2--canary.0899bb7.0
"@storybook/store": 7.0.0-alpha.17
"@types/qs": ^6.9.5
"@types/webpack-env": ^1.16.4
@ -7781,7 +7781,7 @@ __metadata:
dependencies:
"@babel/types": ^7.12.11
"@mdx-js/mdx": ^1.6.22
"@storybook/csf": 0.0.2--canary.4566f4d.1
"@storybook/csf": 0.0.2--canary.0899bb7.0
"@storybook/csf-tools": 7.0.0-alpha.17
"@storybook/node-logger": 7.0.0-alpha.17
core-js: ^3.8.2
@ -7803,7 +7803,7 @@ __metadata:
dependencies:
"@popperjs/core": ^2.6.0
"@storybook/client-logger": 7.0.0-alpha.17
"@storybook/csf": 0.0.2--canary.4566f4d.1
"@storybook/csf": 0.0.2--canary.0899bb7.0
"@storybook/theming": 7.0.0-alpha.17
"@testing-library/jest-dom": ^5.16.4
"@types/color-convert": ^2.0.0
@ -7849,7 +7849,7 @@ __metadata:
"@storybook/client-api": 7.0.0-alpha.17
"@storybook/client-logger": 7.0.0-alpha.17
"@storybook/core-events": 7.0.0-alpha.17
"@storybook/csf": 0.0.2--canary.4566f4d.1
"@storybook/csf": 0.0.2--canary.0899bb7.0
"@storybook/preview-web": 7.0.0-alpha.17
"@storybook/store": 7.0.0-alpha.17
"@storybook/ui": 7.0.0-alpha.17
@ -7894,7 +7894,7 @@ __metadata:
"@babel/preset-react": ^7.12.10
"@babel/preset-typescript": ^7.12.7
"@babel/register": ^7.12.1
"@storybook/csf": 0.0.2--canary.4566f4d.1
"@storybook/csf": 0.0.2--canary.0899bb7.0
"@storybook/node-logger": 7.0.0-alpha.17
"@storybook/semver": ^7.3.2
"@types/babel__core": ^7.0.0
@ -7968,7 +7968,7 @@ __metadata:
"@storybook/core-client": 7.0.0-alpha.17
"@storybook/core-common": 7.0.0-alpha.17
"@storybook/core-events": 7.0.0-alpha.17
"@storybook/csf": 0.0.2--canary.4566f4d.1
"@storybook/csf": 0.0.2--canary.0899bb7.0
"@storybook/csf-tools": 7.0.0-alpha.17
"@storybook/docs-mdx": 0.0.1-canary.12433cf.0
"@storybook/node-logger": 7.0.0-alpha.17
@ -8046,7 +8046,7 @@ __metadata:
"@babel/preset-env": ^7.12.11
"@babel/traverse": ^7.12.11
"@babel/types": ^7.12.11
"@storybook/csf": 0.0.2--canary.4566f4d.1
"@storybook/csf": 0.0.2--canary.0899bb7.0
"@storybook/mdx2-csf": ^0.0.3
"@types/fs-extra": ^9.0.6
core-js: ^3.8.2
@ -8058,6 +8058,15 @@ __metadata:
languageName: unknown
linkType: soft
"@storybook/csf@npm:0.0.2--canary.0899bb7.0":
version: 0.0.2--canary.0899bb7.0
resolution: "@storybook/csf@npm:0.0.2--canary.0899bb7.0"
dependencies:
lodash: ^4.17.15
checksum: 5cd7b51980a62be01bbfa54a010a7691690198bba6a9f5bd05b46688e4bdffb2cc1bbb5d90cf578c635a79bd1d616d5901c774fb0976fe9d6bc946749fc51861
languageName: node
linkType: hard
"@storybook/csf@npm:0.0.2--canary.4566f4d.1":
version: 0.0.2--canary.4566f4d.1
resolution: "@storybook/csf@npm:0.0.2--canary.4566f4d.1"
@ -8125,7 +8134,7 @@ __metadata:
resolution: "@storybook/docs-tools@workspace:lib/docs-tools"
dependencies:
"@babel/core": ^7.12.10
"@storybook/csf": 0.0.2--canary.4566f4d.1
"@storybook/csf": 0.0.2--canary.0899bb7.0
"@storybook/store": 7.0.0-alpha.17
core-js: ^3.8.2
doctrine: ^3.0.0
@ -8262,7 +8271,7 @@ __metadata:
"@storybook/addon-essentials": 7.0.0-alpha.17
"@storybook/blocks": 7.0.0-alpha.17
"@storybook/components": 7.0.0-alpha.17
"@storybook/csf": 0.0.2--canary.4566f4d.1
"@storybook/csf": 0.0.2--canary.0899bb7.0
"@storybook/preview-web": 7.0.0-alpha.17
"@storybook/react": 7.0.0-alpha.17
"@storybook/react-webpack5": 7.0.0-alpha.17
@ -8313,7 +8322,7 @@ __metadata:
dependencies:
"@storybook/addons": 7.0.0-alpha.17
"@storybook/core-client": 7.0.0-alpha.17
"@storybook/csf": 0.0.2--canary.4566f4d.1
"@storybook/csf": 0.0.2--canary.0899bb7.0
"@storybook/docs-tools": 7.0.0-alpha.17
"@storybook/preview-web": 7.0.0-alpha.17
"@storybook/store": 7.0.0-alpha.17
@ -8511,7 +8520,7 @@ __metadata:
dependencies:
"@storybook/addons": 7.0.0-alpha.17
"@storybook/core-client": 7.0.0-alpha.17
"@storybook/csf": 0.0.2--canary.4566f4d.1
"@storybook/csf": 0.0.2--canary.0899bb7.0
"@storybook/store": 7.0.0-alpha.17
core-js: ^3.8.2
global: ^4.4.0
@ -8753,7 +8762,7 @@ __metadata:
"@storybook/channels": 7.0.0-alpha.17
"@storybook/client-logger": 7.0.0-alpha.17
"@storybook/core-events": 7.0.0-alpha.17
"@storybook/csf": 0.0.2--canary.4566f4d.1
"@storybook/csf": 0.0.2--canary.0899bb7.0
"@storybook/store": 7.0.0-alpha.17
ansi-to-html: ^0.6.11
core-js: ^3.8.2
@ -8816,7 +8825,7 @@ __metadata:
"@storybook/addons": 7.0.0-alpha.17
"@storybook/client-logger": 7.0.0-alpha.17
"@storybook/core-client": 7.0.0-alpha.17
"@storybook/csf": 0.0.2--canary.4566f4d.1
"@storybook/csf": 0.0.2--canary.0899bb7.0
"@storybook/docs-tools": 7.0.0-alpha.17
"@storybook/store": 7.0.0-alpha.17
"@types/estree": ^0.0.51
@ -9191,7 +9200,7 @@ __metadata:
dependencies:
"@storybook/addons": 7.0.0-alpha.17
"@storybook/core-client": 7.0.0-alpha.17
"@storybook/csf": 0.0.2--canary.4566f4d.1
"@storybook/csf": 0.0.2--canary.0899bb7.0
"@storybook/preview-web": 7.0.0-alpha.17
"@storybook/store": 7.0.0-alpha.17
core-js: ^3.8.2
@ -9209,7 +9218,7 @@ __metadata:
dependencies:
"@storybook/addons": 7.0.0-alpha.17
"@storybook/client-logger": 7.0.0-alpha.17
"@storybook/csf": 0.0.2--canary.4566f4d.1
"@storybook/csf": 0.0.2--canary.0899bb7.0
core-js: ^3.8.2
estraverse: ^5.2.0
global: ^4.4.0
@ -9229,7 +9238,7 @@ __metadata:
"@storybook/addons": 7.0.0-alpha.17
"@storybook/client-logger": 7.0.0-alpha.17
"@storybook/core-events": 7.0.0-alpha.17
"@storybook/csf": 0.0.2--canary.4566f4d.1
"@storybook/csf": 0.0.2--canary.0899bb7.0
core-js: ^3.8.2
dequal: ^2.0.2
global: ^4.4.0
@ -9275,7 +9284,7 @@ __metadata:
"@storybook/addons": 7.0.0-alpha.17
"@storybook/client-logger": 7.0.0-alpha.17
"@storybook/core-client": 7.0.0-alpha.17
"@storybook/csf": 0.0.2--canary.4566f4d.1
"@storybook/csf": 0.0.2--canary.0899bb7.0
"@storybook/docs-tools": 7.0.0-alpha.17
"@storybook/store": 7.0.0-alpha.17
core-js: ^3.8.2
@ -9389,7 +9398,7 @@ __metadata:
"@storybook/client-logger": 7.0.0-alpha.17
"@storybook/components": 7.0.0-alpha.17
"@storybook/core-events": 7.0.0-alpha.17
"@storybook/csf": 0.0.2--canary.4566f4d.1
"@storybook/csf": 0.0.2--canary.0899bb7.0
"@storybook/router": 7.0.0-alpha.17
"@storybook/semver": ^7.3.2
"@storybook/theming": 7.0.0-alpha.17
@ -9478,7 +9487,7 @@ __metadata:
"@digitak/esrun": ^3.2.2
"@storybook/addons": 7.0.0-alpha.17
"@storybook/core-client": 7.0.0-alpha.17
"@storybook/csf": 0.0.2--canary.4566f4d.1
"@storybook/csf": 0.0.2--canary.0899bb7.0
"@storybook/docs-tools": 7.0.0-alpha.17
"@storybook/store": 7.0.0-alpha.17
core-js: ^3.8.2
@ -9502,7 +9511,7 @@ __metadata:
"@storybook/addons": 7.0.0-alpha.17
"@storybook/client-logger": 7.0.0-alpha.17
"@storybook/core-client": 7.0.0-alpha.17
"@storybook/csf": 0.0.2--canary.4566f4d.1
"@storybook/csf": 0.0.2--canary.0899bb7.0
"@storybook/docs-tools": 7.0.0-alpha.17
"@storybook/store": 7.0.0-alpha.17
core-js: ^3.8.2
@ -9548,7 +9557,7 @@ __metadata:
"@storybook/api": 7.0.0-alpha.17
"@storybook/client-logger": 7.0.0-alpha.17
"@storybook/core-client": 7.0.0-alpha.17
"@storybook/csf": 0.0.2--canary.4566f4d.1
"@storybook/csf": 0.0.2--canary.0899bb7.0
"@storybook/docs-tools": 7.0.0-alpha.17
"@storybook/preview-web": 7.0.0-alpha.17
"@storybook/store": 7.0.0-alpha.17

1
examples/react Submodule

@ -0,0 +1 @@
Subproject commit b7ef5bd9f548330f7a0c0b0f6b8d285bcd12a6f7