@storybook/react 7.0.0-alpha.5 → 7.0.0-alpha.51
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/chunk-3ETZESFO.mjs +1 -0
- package/dist/config.d.ts +22 -0
- package/dist/config.js +3 -0
- package/dist/config.mjs +3 -0
- package/dist/index.d.ts +193 -0
- package/dist/index.js +1 -0
- package/dist/index.mjs +1 -0
- package/dist/types-7d102855.d.ts +10 -0
- package/jest.config.js +7 -0
- package/package.json +48 -20
- package/preview.js +1 -1
- package/template/cli/.eslintrc.json +5 -0
- package/template/cli/js/Button.jsx +50 -0
- package/template/cli/js/Button.stories.js +39 -0
- package/template/cli/js/Header.jsx +59 -0
- package/template/cli/js/Header.stories.js +22 -0
- package/template/cli/js/Page.jsx +69 -0
- package/template/cli/js/Page.stories.js +25 -0
- package/template/cli/ts/Button.stories.ts +44 -0
- package/template/cli/ts/Button.tsx +48 -0
- package/template/cli/ts/Header.stories.ts +26 -0
- package/template/cli/ts/Header.tsx +56 -0
- package/template/cli/ts/Page.stories.ts +29 -0
- package/template/cli/ts/Page.tsx +73 -0
- package/template/components/Button.jsx +13 -0
- package/template/components/Form.jsx +36 -0
- package/template/components/Html.jsx +9 -0
- package/template/components/Pre.jsx +20 -0
- package/template/components/index.js +9 -0
- package/template/stories/decorators.stories.tsx +28 -0
- package/template/stories/docgen-components/10017-ts-union/argTypes.snapshot +36 -0
- package/template/stories/docgen-components/10017-ts-union/docgen.snapshot +34 -0
- package/template/stories/docgen-components/10017-ts-union/input.tsx +12 -0
- package/template/stories/docgen-components/10017-ts-union/properties.snapshot +32 -0
- package/template/stories/docgen-components/10278-ts-multiple-components/argTypes.snapshot +26 -0
- package/template/stories/docgen-components/10278-ts-multiple-components/docgen.snapshot +49 -0
- package/template/stories/docgen-components/10278-ts-multiple-components/input.tsx +27 -0
- package/template/stories/docgen-components/10278-ts-multiple-components/properties.snapshot +22 -0
- package/template/stories/docgen-components/8140-js-prop-types-oneof/argTypes.snapshot +127 -0
- package/template/stories/docgen-components/8140-js-prop-types-oneof/docgen.snapshot +97 -0
- package/template/stories/docgen-components/8140-js-prop-types-oneof/input.jsx +27 -0
- package/template/stories/docgen-components/8140-js-prop-types-oneof/properties.snapshot +89 -0
- package/template/stories/docgen-components/8143-ts-imported-types/argTypes.snapshot +27 -0
- package/template/stories/docgen-components/8143-ts-imported-types/docgen.snapshot +22 -0
- package/template/stories/docgen-components/8143-ts-imported-types/input.tsx +10 -0
- package/template/stories/docgen-components/8143-ts-imported-types/properties.snapshot +23 -0
- package/template/stories/docgen-components/8143-ts-imported-types/types.ts +3 -0
- package/template/stories/docgen-components/8143-ts-react-fc-generics/argTypes.snapshot +27 -0
- package/template/stories/docgen-components/8143-ts-react-fc-generics/docgen.snapshot +24 -0
- package/template/stories/docgen-components/8143-ts-react-fc-generics/input.tsx +10 -0
- package/template/stories/docgen-components/8143-ts-react-fc-generics/properties.snapshot +21 -0
- package/template/stories/docgen-components/8428-js-static-prop-types/argTypes.snapshot +25 -0
- package/template/stories/docgen-components/8428-js-static-prop-types/docgen.snapshot +37 -0
- package/template/stories/docgen-components/8428-js-static-prop-types/input.jsx +20 -0
- package/template/stories/docgen-components/8428-js-static-prop-types/properties.snapshot +21 -0
- package/template/stories/docgen-components/8740-ts-multi-props/argTypes.snapshot +27 -0
- package/template/stories/docgen-components/8740-ts-multi-props/docgen.snapshot +49 -0
- package/template/stories/docgen-components/8740-ts-multi-props/input.tsx +23 -0
- package/template/stories/docgen-components/8740-ts-multi-props/properties.snapshot +21 -0
- package/template/stories/docgen-components/8894-9511-ts-forward-ref/argTypes.snapshot +48 -0
- package/template/stories/docgen-components/8894-9511-ts-forward-ref/docgen.snapshot +39 -0
- package/template/stories/docgen-components/8894-9511-ts-forward-ref/input.tsx +31 -0
- package/template/stories/docgen-components/8894-9511-ts-forward-ref/properties.snapshot +34 -0
- package/template/stories/docgen-components/9023-js-hoc/argTypes.snapshot +89 -0
- package/template/stories/docgen-components/9023-js-hoc/docgen.snapshot +84 -0
- package/template/stories/docgen-components/9023-js-hoc/input.jsx +40 -0
- package/template/stories/docgen-components/9023-js-hoc/properties.snapshot +67 -0
- package/template/stories/docgen-components/9399-js-proptypes-shape/argTypes.snapshot +39 -0
- package/template/stories/docgen-components/9399-js-proptypes-shape/docgen.snapshot +48 -0
- package/template/stories/docgen-components/9399-js-proptypes-shape/input.jsx +16 -0
- package/template/stories/docgen-components/9399-js-proptypes-shape/properties.snapshot +35 -0
- package/template/stories/docgen-components/9465-ts-type-props/argTypes.snapshot +28 -0
- package/template/stories/docgen-components/9465-ts-type-props/docgen.snapshot +33 -0
- package/template/stories/docgen-components/9465-ts-type-props/input.tsx +12 -0
- package/template/stories/docgen-components/9465-ts-type-props/properties.snapshot +24 -0
- package/template/stories/docgen-components/9493-ts-display-name/argTypes.snapshot +62 -0
- package/template/stories/docgen-components/9493-ts-display-name/docgen.snapshot +50 -0
- package/template/stories/docgen-components/9493-ts-display-name/input.tsx +30 -0
- package/template/stories/docgen-components/9493-ts-display-name/properties.snapshot +52 -0
- package/template/stories/docgen-components/9556-ts-react-default-exports/argTypes.snapshot +28 -0
- package/template/stories/docgen-components/9556-ts-react-default-exports/docgen.snapshot +32 -0
- package/template/stories/docgen-components/9556-ts-react-default-exports/input.tsx +12 -0
- package/template/stories/docgen-components/9556-ts-react-default-exports/properties.snapshot +24 -0
- package/template/stories/docgen-components/9575-ts-camel-case/argTypes.snapshot +28 -0
- package/template/stories/docgen-components/9575-ts-camel-case/docgen.snapshot +38 -0
- package/template/stories/docgen-components/9575-ts-camel-case/input.tsx +26 -0
- package/template/stories/docgen-components/9575-ts-camel-case/properties.snapshot +24 -0
- package/template/stories/docgen-components/9586-js-react-memo/argTypes.snapshot +41 -0
- package/template/stories/docgen-components/9586-js-react-memo/docgen.snapshot +42 -0
- package/template/stories/docgen-components/9586-js-react-memo/input.jsx +15 -0
- package/template/stories/docgen-components/9586-js-react-memo/properties.snapshot +34 -0
- package/template/stories/docgen-components/9591-ts-import-types/Bar.tsx +3 -0
- package/template/stories/docgen-components/9591-ts-import-types/argTypes.snapshot +25 -0
- package/template/stories/docgen-components/9591-ts-import-types/docgen.snapshot +21 -0
- package/template/stories/docgen-components/9591-ts-import-types/input.tsx +10 -0
- package/template/stories/docgen-components/9591-ts-import-types/properties.snapshot +21 -0
- package/template/stories/docgen-components/9626-js-default-values/argTypes.snapshot +27 -0
- package/template/stories/docgen-components/9626-js-default-values/docgen.snapshot +25 -0
- package/template/stories/docgen-components/9626-js-default-values/input.jsx +5 -0
- package/template/stories/docgen-components/9626-js-default-values/properties.snapshot +21 -0
- package/template/stories/docgen-components/9668-js-proptypes-no-jsdoc/argTypes.snapshot +42 -0
- package/template/stories/docgen-components/9668-js-proptypes-no-jsdoc/docgen.snapshot +36 -0
- package/template/stories/docgen-components/9668-js-proptypes-no-jsdoc/input.jsx +13 -0
- package/template/stories/docgen-components/9668-js-proptypes-no-jsdoc/properties.snapshot +35 -0
- package/template/stories/docgen-components/9721-ts-deprecated-jsdoc/argTypes.snapshot +53 -0
- package/template/stories/docgen-components/9721-ts-deprecated-jsdoc/docgen.snapshot +45 -0
- package/template/stories/docgen-components/9721-ts-deprecated-jsdoc/input.tsx +18 -0
- package/template/stories/docgen-components/9721-ts-deprecated-jsdoc/properties.snapshot +43 -0
- package/template/stories/docgen-components/9764-ts-extend-props/argTypes.snapshot +72 -0
- package/template/stories/docgen-components/9764-ts-extend-props/docgen.snapshot +41 -0
- package/template/stories/docgen-components/9764-ts-extend-props/input.tsx +17 -0
- package/template/stories/docgen-components/9764-ts-extend-props/properties.snapshot +56 -0
- package/template/stories/docgen-components/9827-ts-default-values/argTypes.snapshot +72 -0
- package/template/stories/docgen-components/9827-ts-default-values/docgen.snapshot +52 -0
- package/template/stories/docgen-components/9827-ts-default-values/input.tsx +17 -0
- package/template/stories/docgen-components/9827-ts-default-values/properties.snapshot +56 -0
- package/template/stories/docgen-components/9832-ts-enum-export/argTypes.snapshot +3 -0
- package/template/stories/docgen-components/9832-ts-enum-export/docgen.snapshot +16 -0
- package/template/stories/docgen-components/9832-ts-enum-export/input.tsx +8 -0
- package/template/stories/docgen-components/9832-ts-enum-export/properties.snapshot +7 -0
- package/template/stories/docgen-components/9922-ts-component-props/argTypes.snapshot +25 -0
- package/template/stories/docgen-components/9922-ts-component-props/docgen.snapshot +35 -0
- package/template/stories/docgen-components/9922-ts-component-props/input.tsx +24 -0
- package/template/stories/docgen-components/9922-ts-component-props/properties.snapshot +21 -0
- package/template/stories/docgen-components/imported.js +1 -0
- package/template/stories/docgen-components/js-class-component/argTypes.snapshot +386 -0
- package/template/stories/docgen-components/js-class-component/docgen.snapshot +252 -0
- package/template/stories/docgen-components/js-class-component/input.jsx +57 -0
- package/template/stories/docgen-components/js-class-component/properties.snapshot +286 -0
- package/template/stories/docgen-components/js-function-component/argTypes.snapshot +386 -0
- package/template/stories/docgen-components/js-function-component/docgen.snapshot +236 -0
- package/template/stories/docgen-components/js-function-component/input.jsx +50 -0
- package/template/stories/docgen-components/js-function-component/properties.snapshot +286 -0
- package/template/stories/docgen-components/js-function-component-inline-defaults/argTypes.snapshot +386 -0
- package/template/stories/docgen-components/js-function-component-inline-defaults/docgen.snapshot +247 -0
- package/template/stories/docgen-components/js-function-component-inline-defaults/input.jsx +65 -0
- package/template/stories/docgen-components/js-function-component-inline-defaults/properties.snapshot +286 -0
- package/template/stories/docgen-components/js-function-component-inline-defaults-no-propTypes/argTypes.snapshot +237 -0
- package/template/stories/docgen-components/js-function-component-inline-defaults-no-propTypes/docgen.snapshot +124 -0
- package/template/stories/docgen-components/js-function-component-inline-defaults-no-propTypes/input.jsx +41 -0
- package/template/stories/docgen-components/js-function-component-inline-defaults-no-propTypes/properties.snapshot +151 -0
- package/template/stories/docgen-components/js-proptypes/docgen.snapshot +1770 -0
- package/template/stories/docgen-components/js-proptypes/ext.js +13 -0
- package/template/stories/docgen-components/js-proptypes/input.jsx +497 -0
- package/template/stories/docgen-components/jsdoc/argTypes.snapshot +969 -0
- package/template/stories/docgen-components/jsdoc/docgen.snapshot +548 -0
- package/template/stories/docgen-components/jsdoc/input.jsx +231 -0
- package/template/stories/docgen-components/jsdoc/properties.snapshot +857 -0
- package/template/stories/docgen-components/ts-function-component/argTypes.snapshot +396 -0
- package/template/stories/docgen-components/ts-function-component/docgen.snapshot +241 -0
- package/template/stories/docgen-components/ts-function-component/input.tsx +52 -0
- package/template/stories/docgen-components/ts-function-component/properties.snapshot +296 -0
- package/template/stories/docgen-components/ts-function-component-inline-defaults/argTypes.snapshot +279 -0
- package/template/stories/docgen-components/ts-function-component-inline-defaults/docgen.snapshot +151 -0
- package/template/stories/docgen-components/ts-function-component-inline-defaults/input.tsx +80 -0
- package/template/stories/docgen-components/ts-function-component-inline-defaults/properties.snapshot +177 -0
- package/template/stories/docgen-components/ts-html/argTypes.snapshot +3 -0
- package/template/stories/docgen-components/ts-html/docgen.snapshot +12 -0
- package/template/stories/docgen-components/ts-html/input.tsx +12 -0
- package/template/stories/docgen-components/ts-html/properties.snapshot +7 -0
- package/template/stories/docgen-components/ts-jsdoc/argTypes.snapshot +3 -0
- package/template/stories/docgen-components/ts-jsdoc/docgen.snapshot +21 -0
- package/template/stories/docgen-components/ts-jsdoc/input.tsx +27 -0
- package/template/stories/docgen-components/ts-jsdoc/properties.snapshot +7 -0
- package/template/stories/docgen-components/ts-types/argTypes.snapshot +656 -0
- package/template/stories/docgen-components/ts-types/docgen.snapshot +317 -0
- package/template/stories/docgen-components/ts-types/input.tsx +130 -0
- package/template/stories/docgen-components/ts-types/properties.snapshot +410 -0
- package/template/stories/errors.stories.tsx +37 -0
- package/template/stories/hooks.stories.tsx +17 -0
- package/template/stories/js-argtypes.stories.jsx +91 -0
- package/template/stories/react-mdx.stories.mdx +26 -0
- package/template/stories/ts-argtypes.stories.tsx +81 -0
- package/LICENSE +0 -21
- package/dist/cjs/config.js +0 -43
- package/dist/cjs/docs/config.js +0 -25
- package/dist/cjs/docs/extractArgTypes.js +0 -47
- package/dist/cjs/docs/extractProps.js +0 -57
- package/dist/cjs/docs/jsxDecorator.js +0 -210
- package/dist/cjs/docs/lib/captions.js +0 -18
- package/dist/cjs/docs/lib/componentTypes.js +0 -14
- package/dist/cjs/docs/lib/defaultValues/createDefaultValue.js +0 -86
- package/dist/cjs/docs/lib/defaultValues/createFromRawDefaultProp.js +0 -206
- package/dist/cjs/docs/lib/defaultValues/generateArray.js +0 -31
- package/dist/cjs/docs/lib/defaultValues/generateObject.js +0 -31
- package/dist/cjs/docs/lib/defaultValues/index.js +0 -31
- package/dist/cjs/docs/lib/defaultValues/prettyIdentifier.js +0 -38
- package/dist/cjs/docs/lib/generateCode.js +0 -74
- package/dist/cjs/docs/lib/index.js +0 -57
- package/dist/cjs/docs/lib/inspection/acornParser.js +0 -230
- package/dist/cjs/docs/lib/inspection/index.js +0 -31
- package/dist/cjs/docs/lib/inspection/inspectValue.js +0 -24
- package/dist/cjs/docs/lib/inspection/types.js +0 -19
- package/dist/cjs/docs/lib/isHtmlTag.js +0 -14
- package/dist/cjs/docs/propTypes/createType.js +0 -458
- package/dist/cjs/docs/propTypes/generateFuncSignature.js +0 -68
- package/dist/cjs/docs/propTypes/handleProp.js +0 -52
- package/dist/cjs/docs/propTypes/rawDefaultPropResolvers.js +0 -43
- package/dist/cjs/docs/propTypes/sortProps.js +0 -21
- package/dist/cjs/docs/react-argtypes.stories.js +0 -67
- package/dist/cjs/docs/typeScript/handleProp.js +0 -38
- package/dist/cjs/index.js +0 -98
- package/dist/cjs/preview/config.js +0 -19
- package/dist/cjs/preview/globals.js +0 -13
- package/dist/cjs/preview/index.js +0 -44
- package/dist/cjs/preview/render.js +0 -166
- package/dist/cjs/preview/types-6-0.js +0 -5
- package/dist/cjs/preview/types-6-3.js +0 -18
- package/dist/cjs/preview/types-7-0.js +0 -5
- package/dist/cjs/preview/types.js +0 -5
- package/dist/cjs/testing/index.js +0 -113
- package/dist/esm/config.js +0 -6
- package/dist/esm/docs/config.js +0 -12
- package/dist/esm/docs/extractArgTypes.js +0 -37
- package/dist/esm/docs/extractProps.js +0 -42
- package/dist/esm/docs/jsxDecorator.js +0 -170
- package/dist/esm/docs/lib/captions.js +0 -6
- package/dist/esm/docs/lib/componentTypes.js +0 -2
- package/dist/esm/docs/lib/defaultValues/createDefaultValue.js +0 -72
- package/dist/esm/docs/lib/defaultValues/createFromRawDefaultProp.js +0 -183
- package/dist/esm/docs/lib/defaultValues/generateArray.js +0 -21
- package/dist/esm/docs/lib/defaultValues/generateObject.js +0 -21
- package/dist/esm/docs/lib/defaultValues/index.js +0 -2
- package/dist/esm/docs/lib/defaultValues/prettyIdentifier.js +0 -26
- package/dist/esm/docs/lib/generateCode.js +0 -59
- package/dist/esm/docs/lib/index.js +0 -4
- package/dist/esm/docs/lib/inspection/acornParser.js +0 -211
- package/dist/esm/docs/lib/inspection/index.js +0 -2
- package/dist/esm/docs/lib/inspection/inspectValue.js +0 -15
- package/dist/esm/docs/lib/inspection/types.js +0 -12
- package/dist/esm/docs/lib/isHtmlTag.js +0 -4
- package/dist/esm/docs/propTypes/createType.js +0 -447
- package/dist/esm/docs/propTypes/generateFuncSignature.js +0 -57
- package/dist/esm/docs/propTypes/handleProp.js +0 -39
- package/dist/esm/docs/propTypes/rawDefaultPropResolvers.js +0 -31
- package/dist/esm/docs/propTypes/sortProps.js +0 -14
- package/dist/esm/docs/react-argtypes.stories.js +0 -54
- package/dist/esm/docs/typeScript/handleProp.js +0 -28
- package/dist/esm/index.js +0 -5
- package/dist/esm/preview/config.js +0 -1
- package/dist/esm/preview/globals.js +0 -8
- package/dist/esm/preview/index.js +0 -21
- package/dist/esm/preview/render.js +0 -142
- package/dist/esm/preview/types-6-0.js +0 -1
- package/dist/esm/preview/types-6-3.js +0 -10
- package/dist/esm/preview/types-7-0.js +0 -1
- package/dist/esm/preview/types.js +0 -1
- package/dist/esm/testing/index.js +0 -97
- package/dist/types/config.d.ts +0 -10
- package/dist/types/docs/config.d.ts +0 -10
- package/dist/types/docs/extractArgTypes.d.ts +0 -2
- package/dist/types/docs/extractProps.d.ts +0 -9
- package/dist/types/docs/jsxDecorator.d.ts +0 -23
- package/dist/types/docs/lib/captions.d.ts +0 -6
- package/dist/types/docs/lib/componentTypes.d.ts +0 -2
- package/dist/types/docs/lib/defaultValues/createDefaultValue.d.ts +0 -2
- package/dist/types/docs/lib/defaultValues/createFromRawDefaultProp.d.ts +0 -11
- package/dist/types/docs/lib/defaultValues/generateArray.d.ts +0 -3
- package/dist/types/docs/lib/defaultValues/generateObject.d.ts +0 -3
- package/dist/types/docs/lib/defaultValues/index.d.ts +0 -2
- package/dist/types/docs/lib/defaultValues/prettyIdentifier.d.ts +0 -4
- package/dist/types/docs/lib/generateCode.d.ts +0 -3
- package/dist/types/docs/lib/index.d.ts +0 -4
- package/dist/types/docs/lib/inspection/acornParser.d.ts +0 -7
- package/dist/types/docs/lib/inspection/index.d.ts +0 -2
- package/dist/types/docs/lib/inspection/inspectValue.d.ts +0 -2
- package/dist/types/docs/lib/inspection/types.d.ts +0 -50
- package/dist/types/docs/lib/isHtmlTag.d.ts +0 -1
- package/dist/types/docs/propTypes/createType.d.ts +0 -2
- package/dist/types/docs/propTypes/generateFuncSignature.d.ts +0 -4
- package/dist/types/docs/propTypes/handleProp.d.ts +0 -5
- package/dist/types/docs/propTypes/rawDefaultPropResolvers.d.ts +0 -1
- package/dist/types/docs/propTypes/sortProps.d.ts +0 -4
- package/dist/types/docs/react-argtypes.stories.d.ts +0 -1
- package/dist/types/docs/typeScript/handleProp.d.ts +0 -3
- package/dist/types/index.d.ts +0 -4
- package/dist/types/preview/config.d.ts +0 -1
- package/dist/types/preview/globals.d.ts +0 -1
- package/dist/types/preview/index.d.ts +0 -25
- package/dist/types/preview/render.d.ts +0 -5
- package/dist/types/preview/types-6-0.d.ts +0 -35
- package/dist/types/preview/types-6-3.d.ts +0 -40
- package/dist/types/preview/types-7-0.d.ts +0 -21
- package/dist/types/preview/types.d.ts +0 -16
- package/dist/types/testing/index.d.ts +0 -84
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import E from"global";import n,{Component as y,StrictMode as C,Fragment as w,useLayoutEffect as g,useRef as x}from"react";import l,{version as i}from"react-dom";var{FRAMEWORK_OPTIONS:u}=E,s=new Map,O=(t,e)=>{let{id:o,component:r}=e;if(!r)throw new Error(`Unable to render story ${o} as the component annotation is missing from the default export`);return n.createElement(r,{...t})},S=({callback:t,children:e})=>{let o=x();return g(()=>{o.current!==t&&(o.current=t,t())},[t]),e},M=async(t,e)=>{let o=await D(e);return new Promise(r=>{o?o.render(n.createElement(S,{callback:()=>r(null)},t)):l.render(t,e,()=>r(null))})},A=i&&(i.startsWith("18")||i.startsWith("0.0.0")),F=u?.legacyRootApi!==!0,R=F&&A,p=t=>{let e=s.get(t);e&&R?(e.unmount(),s.delete(t)):l.unmountComponentAtNode(t)},D=async t=>{if(!R)return null;let e=s.get(t);return e||(e=(await import("react-dom/client")).default.createRoot(t),s.set(t,e)),e},a=class extends y{constructor(){super(...arguments);this.state={hasError:!1}}static getDerivedStateFromError(){return{hasError:!0}}componentDidMount(){let{hasError:o}=this.state,{showMain:r}=this.props;o||r()}componentDidCatch(o){let{showException:r}=this.props;r(o)}render(){let{hasError:o}=this.state,{children:r}=this.props;return o?null:r}},d=u?.strictMode?C:w;async function U({storyContext:t,unboundStoryFn:e,showMain:o,showException:r,forceRemount:h},c){let m=n.createElement(a,{showMain:o,showException:r},n.createElement(e,{...t})),f=d?n.createElement(d,null,m):m;return h&&p(c),await M(f,c),()=>p(c)}export{O as a,U as b};
|
package/dist/config.d.ts
ADDED
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import * as lib_docs_tools_dist from 'lib/docs-tools/dist';
|
|
2
|
+
import { R as ReactRenderer, S as StoryFnReactReturnType } from './types-7d102855.js';
|
|
3
|
+
import * as lib_types_dist from 'lib/types/dist';
|
|
4
|
+
import { ArgsStoryFn, Store_RenderContext } from '@storybook/types';
|
|
5
|
+
import 'react';
|
|
6
|
+
|
|
7
|
+
declare const decorators: ((storyFn: lib_types_dist.PartialStoryFn<ReactRenderer, lib_types_dist.Args>, context: lib_types_dist.StoryContext<ReactRenderer, lib_types_dist.Args>) => StoryFnReactReturnType)[];
|
|
8
|
+
declare const argTypesEnhancers: (<TRenderer extends lib_types_dist.Renderer>(context: lib_types_dist.StoryContextForEnhancers<TRenderer, lib_types_dist.Args>) => lib_types_dist.StrictArgTypes<lib_types_dist.Args>)[];
|
|
9
|
+
|
|
10
|
+
declare const render: ArgsStoryFn<ReactRenderer>;
|
|
11
|
+
declare function renderToCanvas({ storyContext, unboundStoryFn, showMain, showException, forceRemount, }: Store_RenderContext<ReactRenderer>, canvasElement: ReactRenderer['canvasElement']): Promise<() => void>;
|
|
12
|
+
|
|
13
|
+
declare const parameters: {
|
|
14
|
+
docs: {
|
|
15
|
+
inlineStories: boolean;
|
|
16
|
+
extractArgTypes: lib_docs_tools_dist.ArgTypesExtractor;
|
|
17
|
+
extractComponentDescription: typeof lib_docs_tools_dist.extractComponentDescription;
|
|
18
|
+
};
|
|
19
|
+
framework: string;
|
|
20
|
+
};
|
|
21
|
+
|
|
22
|
+
export { argTypesEnhancers, decorators, parameters, render, renderToCanvas };
|
package/dist/config.js
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
"use strict";var nt=Object.create;var v=Object.defineProperty;var ot=Object.getOwnPropertyDescriptor;var st=Object.getOwnPropertyNames;var it=Object.getPrototypeOf,pt=Object.prototype.hasOwnProperty;var at=(e,t)=>{for(var r in t)v(e,r,{get:t[r],enumerable:!0})},le=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of st(t))!pt.call(e,o)&&o!==r&&v(e,o,{get:()=>t[o],enumerable:!(n=ot(t,o))||n.enumerable});return e};var l=(e,t,r)=>(r=e!=null?nt(it(e)):{},le(t||!e||!e.__esModule?v(r,"default",{value:e,enumerable:!0}):r,e)),ct=e=>le(v({},"__esModule",{value:!0}),e);var rr={};at(rr,{argTypesEnhancers:()=>Ge,decorators:()=>Ke,parameters:()=>tr,render:()=>et,renderToCanvas:()=>rt});module.exports=ct(rr);var z=require("@storybook/docs-tools");var pe=l(require("prop-types")),P=require("@storybook/docs-tools");var C=require("@storybook/docs-tools");function fe(e,t){let r=e!=null,n=t!=null;if(!r&&!n)return"";let o=[];if(r){let s=e.map(p=>{let a=p.getPrettyName(),i=p.getTypeName();return i!=null?`${a}: ${i}`:a});o.push(`(${s.join(", ")})`)}else o.push("()");return n&&o.push(`=> ${t.getTypeName()}`),o.join(" ")}function me(e,t){let r=e!=null,n=t!=null;if(!r&&!n)return"";let o=[];return r?o.push("( ... )"):o.push("()"),n&&o.push(`=> ${t.getTypeName()}`),o.join(" ")}function ye(e){return e.replace(/,/g,`,\r
|
|
2
|
+
`)}var w="custom",I="object",j="array",Te="class",y="func",T="element";var de=l(require("html-tags"));function x(e){return de.default.includes(e.toLowerCase())}var ge=require("escodegen"),Ee=require("ts-dedent"),Ie={format:{indent:{style:" "},semicolons:!1}},ut={...Ie,format:{newline:""}},lt={...Ie};function d(e,t=!1){return(0,ge.generate)(e,t?ut:lt)}function J(e,t=!1){return t?ft(e):d(e)}function ft(e){let t=d(e,!0);return t.endsWith(" }")||(t=`${t.slice(0,-1)} }`),t}function Z(e,t=!1){return t?yt(e):mt(e)}function mt(e){let t=d(e);return t.endsWith(" }]")&&(t=(0,Ee.dedent)(t)),t}function yt(e){let t=d(e,!0);return t.startsWith("[ ")&&(t=t.replace("[ ","[")),t}var _=e=>e.$$typeof===Symbol.for("react.memo"),he=e=>e.$$typeof===Symbol.for("react.forward_ref");var Ce=require("acorn"),Pe=l(require("acorn-jsx")),R=l(require("acorn-walk"));var ee={...R.base,JSXElement:()=>{}},Tt=Ce.Parser.extend((0,Pe.default)());function M(e){return e!=null?e.name:null}function Re(e){return e.filter(t=>t.type==="ObjectExpression"||t.type==="ArrayExpression")}function Ne(e){let t=[];return R.ancestor(e,{ObjectExpression(r,n){t.push(Re(n).length)},ArrayExpression(r,n){t.push(Re(n).length)}},ee),Math.max(...t)}function dt(e){return{inferredType:{type:"Identifier",identifier:M(e)},ast:e}}function gt(e){return{inferredType:{type:"Literal"},ast:e}}function Et(e){let t;R.simple(e.body,{JSXElement(s){t=s}},ee);let n={type:t!=null?"Element":"Function",params:e.params,hasParams:e.params.length!==0},o=M(e.id);return o!=null&&(n.identifier=o),{inferredType:n,ast:e}}function It(e){let t;return R.simple(e.body,{JSXElement(n){t=n}},ee),{inferredType:{type:t!=null?"Element":"Class",identifier:M(e.id)},ast:e}}function ht(e){let t={type:"Element"},r=M(e.openingElement.name);return r!=null&&(t.identifier=r),{inferredType:t,ast:e}}function Rt(e){let t=e.callee.type==="MemberExpression"?e.callee.property:e.callee;return M(t)==="shape"?Oe(e.arguments[0]):null}function Oe(e){return{inferredType:{type:"Object",depth:Ne(e)},ast:e}}function Ct(e){return{inferredType:{type:"Array",depth:Ne(e)},ast:e}}function Pt(e){switch(e.type){case"Identifier":return dt(e);case"Literal":return gt(e);case"FunctionExpression":case"ArrowFunctionExpression":return Et(e);case"ClassExpression":return It(e);case"JSXElement":return ht(e);case"CallExpression":return Rt(e);case"ObjectExpression":return Oe(e);case"ArrayExpression":return Ct(e);default:return null}}function xe(e){let t=Tt.parse(`(${e})`),r={inferredType:{type:"Unknown"},ast:t};if(t.body[0]!=null){let n=t.body[0];switch(n.type){case"ExpressionStatement":{let o=Pt(n.expression);o!=null&&(r=o);break}default:break}}return r}function f(e){try{return{...xe(e)}}catch{}return{inferredType:{type:"Unknown"}}}var Nt=150;function c({name:e,short:t,compact:r,full:n,inferredType:o}){return{name:e,short:t,compact:r,full:n??t,inferredType:o}}function Fe(e){return e.replace(/PropTypes./g,"").replace(/.isRequired/g,"")}function Ae(e){return e.split(/\r?\n/)}function B(e,t=!1){return Fe(J(e,t))}function Se(e,t=!1){return Fe(d(e,t))}function Ot(e){switch(e){case"Object":return I;case"Array":return j;case"Class":return Te;case"Function":return y;case"Element":return T;default:return w}}function je(e,t){let{inferredType:r,ast:n}=f(e),{type:o}=r,s,p,a;switch(o){case"Identifier":case"Literal":s=e,p=e;break;case"Object":{let{depth:i}=r;s=I,p=i===1?B(n,!0):null,a=B(n);break}case"Element":{let{identifier:i}=r;s=i!=null&&!x(i)?i:T,p=Ae(e).length===1?e:null,a=e;break}case"Array":{let{depth:i}=r;s=j,p=i<=2?Se(n,!0):null,a=Se(n);break}default:s=Ot(o),p=Ae(e).length===1?e:null,a=e;break}return c({name:t,short:s,compact:p,full:a,inferredType:o})}function xt({raw:e}){return e!=null?je(e,"custom"):c({name:"custom",short:w,compact:w})}function At(e){let{jsDocTags:t}=e;return t!=null&&(t.params!=null||t.returns!=null)?c({name:"func",short:me(t.params,t.returns),compact:null,full:fe(t.params,t.returns)}):c({name:"func",short:y,compact:y})}function St(e,t){let r=Object.keys(e.value).map(p=>`${p}: ${A(e.value[p],t).full}`).join(", "),{inferredType:n,ast:o}=f(`{ ${r} }`),{depth:s}=n;return c({name:"shape",short:I,compact:s===1&&o?B(o,!0):null,full:o?B(o):null})}function te(e){return`objectOf(${e})`}function bt(e,t){let{short:r,compact:n,full:o}=A(e.value,t);return c({name:"objectOf",short:te(r),compact:n!=null?te(n):null,full:o&&te(o)})}function Dt(e,t){if(Array.isArray(e.value)){let r=e.value.reduce((n,o)=>{let{short:s,compact:p,full:a}=A(o,t);return n.short.push(s),n.compact.push(p),n.full.push(a),n},{short:[],compact:[],full:[]});return c({name:"union",short:r.short.join(" | "),compact:r.compact.every(n=>n!=null)?r.compact.join(" | "):null,full:r.full.join(" | ")})}return c({name:"union",short:e.value,compact:null})}function Ft({value:e,computed:t}){return t?je(e,"enumvalue"):c({name:"enumvalue",short:e,compact:e})}function jt(e){if(Array.isArray(e.value)){let t=e.value.reduce((r,n)=>{let{short:o,compact:s,full:p}=Ft(n);return r.short.push(o),r.compact.push(s),r.full.push(p),r},{short:[],compact:[],full:[]});return c({name:"enum",short:t.short.join(" | "),compact:t.compact.every(r=>r!=null)?t.compact.join(" | "):null,full:t.full.join(" | ")})}return c({name:"enum",short:e.value,compact:e.value})}function re(e){return`${e}[]`}function be(e){return`[${e}]`}function De(e,t,r){return c({name:"arrayOf",short:re(e),compact:t!=null?be(t):null,full:r&&be(r)})}function Jt(e,t){let{name:r,short:n,compact:o,full:s,inferredType:p}=A(e.value,t);if(r==="custom"){if(p==="Object")return De(n,o,s)}else if(r==="shape")return De(n,o,s);return c({name:"arrayOf",short:re(n),compact:re(n)})}function A(e,t){try{switch(e.name){case"custom":return xt(e);case"func":return At(t);case"shape":return St(e,t);case"instanceOf":return c({name:"instanceOf",short:e.value,compact:e.value});case"objectOf":return bt(e,t);case"union":return Dt(e,t);case"enum":return jt(e);case"arrayOf":return Jt(e,t);default:return c({name:e.name,short:e.name,compact:e.name})}}catch(r){console.error(r)}return c({name:"unknown",short:"unknown",compact:"unknown"})}function Je(e){let{type:t}=e.docgenInfo;if(t==null)return null;try{switch(t.name){case"custom":case"shape":case"instanceOf":case"objectOf":case"union":case"enum":case"arrayOf":{let{short:r,compact:n,full:o}=A(t,e);return n!=null&&!(0,C.isTooLongForTypeSummary)(n)?(0,C.createSummaryValue)(n):o?(0,C.createSummaryValue)(r,o):(0,C.createSummaryValue)(r)}case"func":{let{short:r,full:n}=A(t,e),o=r,s;return n&&n.length<Nt?o=n:n&&(s=ye(n)),(0,C.createSummaryValue)(o,s)}default:return null}}catch(r){console.error(r)}return null}var g=require("@storybook/docs-tools");var L=require("@storybook/docs-tools");function Y({inferredType:e,ast:t}){let{depth:r}=e;if(r===1){let n=J(t,!0);if(!(0,L.isTooLongForDefaultValueSummary)(n))return(0,L.createSummaryValue)(n)}return(0,L.createSummaryValue)(I,J(t))}var U=require("@storybook/docs-tools");function W({inferredType:e,ast:t}){let{depth:r}=e;if(r<=2){let n=Z(t,!0);if(!(0,U.isTooLongForDefaultValueSummary)(n))return(0,U.createSummaryValue)(n)}return(0,U.createSummaryValue)(j,Z(t))}function V(e,t){return t?`${e}( ... )`:`${e}()`}function S(e){return`<${e} />`}function ne(e){let{type:t,identifier:r}=e;switch(t){case"Function":return V(r,e.hasParams);case"Element":return S(r);default:return r}}function Mt({inferredType:e,ast:t}){let{identifier:r}=e;if(r!=null)return(0,g.createSummaryValue)(ne(e),d(t));let n=d(t,!0);return(0,g.isTooLongForDefaultValueSummary)(n)?(0,g.createSummaryValue)(y,d(t)):(0,g.createSummaryValue)(n)}function Lt(e,t){let{inferredType:r}=t,{identifier:n}=r;if(n!=null&&!x(n)){let o=ne(r);return(0,g.createSummaryValue)(o,e)}return(0,g.isTooLongForDefaultValueSummary)(e)?(0,g.createSummaryValue)(T,e):(0,g.createSummaryValue)(e)}function X(e){try{let t=f(e);switch(t.inferredType.type){case"Object":return Y(t);case"Function":return Mt(t);case"Element":return Lt(e,t);case"Array":return W(t);default:return null}}catch(t){console.error(t)}return null}var Me=l(require("lodash/isPlainObject")),oe=l(require("lodash/isFunction")),Le=l(require("lodash/isString")),se=l(require("react-element-to-jsx-string")),m=require("@storybook/docs-tools");function Ue(e){return e.$$typeof!=null}function ie(e,t){let{name:r}=e;return r!==""&&r!=="anonymous"&&r!==t?r:null}var Ut=e=>(0,m.createSummaryValue)(JSON.stringify(e));function Vt(e){let{type:t}=e,{displayName:r}=t,n=(0,se.default)(e,{});if(r!=null){let o=S(r);return(0,m.createSummaryValue)(o,n)}if((0,Le.default)(t)&&x(t)){let s=(0,se.default)(e,{tabStop:0}).replace(/\r?\n|\r/g,"");if(!(0,m.isTooLongForDefaultValueSummary)(s))return(0,m.createSummaryValue)(s)}return(0,m.createSummaryValue)(T,n)}var kt=e=>{if(Ue(e)&&e.type!=null)return Vt(e);if((0,Me.default)(e)){let t=f(JSON.stringify(e));return Y(t)}if(Array.isArray(e)){let t=f(JSON.stringify(e));return W(t)}return(0,m.createSummaryValue)(I)},vt=(e,t)=>{let r=!1,n;if((0,oe.default)(e.render))r=!0;else if(e.prototype!=null&&(0,oe.default)(e.prototype.render))r=!0;else{let s;try{n=f(e.toString());let{hasParams:p,params:a}=n.inferredType;p?a.length===1&&a[0].type==="ObjectPattern"&&(s=e({})):s=e(),s!=null&&Ue(s)&&(r=!0)}catch{}}let o=ie(e,t.name);if(o!=null){if(r)return(0,m.createSummaryValue)(S(o));n!=null&&(n=f(e.toString()));let{hasParams:s}=n.inferredType;return(0,m.createSummaryValue)(V(o,s))}return(0,m.createSummaryValue)(r?T:y)},wt=e=>(0,m.createSummaryValue)(e.toString()),Ve={string:Ut,object:kt,function:vt,default:wt};function ke(e={}){return{...Ve,...e}}function H(e,t,r=Ve){try{switch(typeof e){case"string":return r.string(e,t);case"object":return r.object(e,t);case"function":return r.function(e,t);default:return r.default(e,t)}}catch(n){console.error(n)}return null}function ve(e,t){let{propTypes:r}=t;return r!=null?Object.keys(r).map(n=>e.find(o=>o.name===n)).filter(Boolean):e}var q=require("@storybook/docs-tools");var _t=(e,{name:t,type:r})=>{let n=r.summary==="element"||r.summary==="elementType",o=ie(e,t);if(o!=null){if(n)return(0,q.createSummaryValue)(S(o));let{hasParams:s}=f(e.toString()).inferredType;return(0,q.createSummaryValue)(V(o,s))}return(0,q.createSummaryValue)(n?T:y)},we=ke({function:_t});function $t(e,t){let{propDef:r}=e,n=Je(e);n!=null&&(r.type=n);let{defaultValue:o}=e.docgenInfo;if(o!=null&&o.value!=null){let s=X(o.value);s!=null&&(r.defaultValue=s)}else if(t!=null){let s=H(t,r,we);s!=null&&(r.defaultValue=s)}return r}function _e(e,t){let r=t.defaultProps!=null?t.defaultProps:{},n=e.map(o=>$t(o,r[o.propDef.name]));return ve(n,t)}function Bt(e,t){let{propDef:r}=e,{defaultValue:n}=e.docgenInfo;if(n!=null&&n.value!=null){let o=X(n.value);o!=null&&(r.defaultValue=o)}else if(t!=null){let o=H(t,r);o!=null&&(r.defaultValue=o)}return r}function $e(e){return e.map(t=>Bt(t))}var Be=new Map;Object.keys(pe.default).forEach(e=>{let t=pe.default[e];Be.set(t,e),Be.set(t.isRequired,e)});function Yt(e,t){let r=e;!(0,P.hasDocgen)(e)&&!e.propTypes&&_(e)&&(r=e.type);let n=(0,P.extractComponentProps)(r,t);if(n.length===0)return[];switch(n[0].typeSystem){case P.TypeSystem.JAVASCRIPT:return _e(n,e);case P.TypeSystem.TYPESCRIPT:return $e(n);default:return n.map(o=>o.propDef)}}var Ye=e=>({rows:Yt(e,"props")});var We=e=>{if(e){let{rows:t}=Ye(e);if(t)return t.reduce((r,n)=>{let{name:o,description:s,type:p,sbType:a,defaultValue:i,jsDocTags:h,required:F}=n;return r[o]={name:o,description:s,type:{required:F,...a},table:{type:p,jsDocTags:h,defaultValue:i}},r},{})}return null};var b=l(require("react")),K=l(require("react-element-to-jsx-string")),G=require("@storybook/addons"),N=require("@storybook/docs-tools"),k=require("@storybook/client-logger");var Wt=(e,t,r)=>typeof t.transformSource!="function"?e:t.transformSource(e,r),Xt=(e,t)=>{if(typeof e>"u")return k.logger.warn("Too many skip or undefined component"),null;let r=e,n=r.type;for(let i=0;i<t.skip;i+=1){if(typeof r>"u")return k.logger.warn("Cannot skip undefined element"),null;if(b.default.Children.count(r)>1)return k.logger.warn("Trying to skip an array of elements"),null;typeof r.props.children>"u"?(k.logger.warn("Not enough children to skip elements."),typeof r.type=="function"&&r.type.name===""&&(r=b.default.createElement(n,{...r.props}))):typeof r.props.children=="function"?r=r.props.children():r=r.props.children}let p={...typeof t.displayName=="string"?{showFunctions:!0,displayName:()=>t.displayName}:{displayName:i=>i.type.displayName||(i.type===Symbol.for("react.profiler")?"Profiler":null)||(0,N.getDocgenSection)(i.type,"displayName")||(i.type.name!=="_default"?i.type.name:null)||(typeof i.type=="function"?"No Display Name":null)||(he(i.type)?i.type.render.name:null)||(_(i.type)?i.type.type.name:null)||i.type},...{filterProps:(i,h)=>i!==void 0},...t};return b.default.Children.map(e,i=>{let h=typeof i=="number"?i.toString():i,E=(typeof K.default=="function"?K.default:K.default.default)(h,p);if(E.indexOf(""")>-1){let ce=E.match(/\S+=\\"([^"]*)\\"/g);ce&&ce.forEach(ue=>{E=E.replace(ue,ue.replace(/"/g,"'"))})}return E}).join(`
|
|
3
|
+
`).replace(/function\s+noRefCheck\(\)\s+\{\}/g,"() => {}")},Ht={skip:0,showFunctions:!1,enableBeautify:!0,showDefaultProps:!1},qt=e=>{var n;let t=(n=e==null?void 0:e.parameters.docs)==null?void 0:n.source,r=e==null?void 0:e.parameters.__isArgsStory;return(t==null?void 0:t.type)===N.SourceType.DYNAMIC?!1:!r||(t==null?void 0:t.code)||(t==null?void 0:t.type)===N.SourceType.CODE},Kt=e=>{var t,r;return((t=e.type)==null?void 0:t.displayName)==="MDXCreateElement"&&!!((r=e.props)!=null&&r.mdxType)},Xe=e=>{if(!Kt(e))return e;let{mdxType:t,originalType:r,children:n,...o}=e.props,s=[];return n&&(s=(Array.isArray(n)?n:[n]).map(Xe)),(0,b.createElement)(r,o,...s)},He=(e,t)=>{var F,E;let r=G.addons.getChannel(),n=qt(t),o="";(0,G.useEffect)(()=>{n||r.emit(N.SNIPPET_RENDERED,(t||{}).id,o)});let s=e();if(n)return s;let p={...Ht,...(t==null?void 0:t.parameters.jsx)||{}},a=(E=(F=t==null?void 0:t.parameters.docs)==null?void 0:F.source)!=null&&E.excludeDecorators?t.originalStoryFn(t.args,t):s,i=Xe(a),h=Xt(i,p);return h&&(o=Wt(h,p,t)),s};var qe={docs:{inlineStories:!0,extractArgTypes:We,extractComponentDescription:z.extractComponentDescription}},Ke=[He],Ge=[z.enhanceArgTypes];var Ze=l(require("global")),u=l(require("react")),O=l(require("react-dom")),{FRAMEWORK_OPTIONS:D}=Ze.default,Q=new Map,et=(e,t)=>{let{id:r,component:n}=t;if(!n)throw new Error(`Unable to render story ${r} as the component annotation is missing from the default export`);return u.default.createElement(n,{...e})},Gt=({callback:e,children:t})=>{let r=(0,u.useRef)();return(0,u.useLayoutEffect)(()=>{r.current!==e&&(r.current=e,e())},[e]),t},zt=async(e,t)=>{let r=await er(t);return new Promise(n=>{r?r.render(u.default.createElement(Gt,{callback:()=>n(null)},e)):O.default.render(e,t,()=>n(null))})},Qt=O.version&&(O.version.startsWith("18")||O.version.startsWith("0.0.0")),Zt=(D==null?void 0:D.legacyRootApi)!==!0,tt=Zt&&Qt,ze=e=>{let t=Q.get(e);t&&tt?(t.unmount(),Q.delete(e)):O.default.unmountComponentAtNode(e)},er=async e=>{if(!tt)return null;let t=Q.get(e);return t||(t=(await import("react-dom/client")).default.createRoot(e),Q.set(e,t)),t},ae=class extends u.Component{constructor(){super(...arguments);this.state={hasError:!1}}static getDerivedStateFromError(){return{hasError:!0}}componentDidMount(){let{hasError:r}=this.state,{showMain:n}=this.props;r||n()}componentDidCatch(r){let{showException:n}=this.props;n(r)}render(){let{hasError:r}=this.state,{children:n}=this.props;return r?null:n}},Qe=D!=null&&D.strictMode?u.StrictMode:u.Fragment;async function rt({storyContext:e,unboundStoryFn:t,showMain:r,showException:n,forceRemount:o},s){let a=u.default.createElement(ae,{showMain:r,showException:n},u.default.createElement(t,{...e})),i=Qe?u.default.createElement(Qe,null,a):a;return o&&ze(s),await zt(i,s),()=>ze(s)}var tr={framework:"react",...qe};0&&(module.exports={argTypesEnhancers,decorators,parameters,render,renderToCanvas});
|
package/dist/config.mjs
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import{a as Je,b as Le}from"./chunk-3ETZESFO.mjs";import{extractComponentDescription as vt,enhanceArgTypes as _t}from"@storybook/docs-tools";import Ce from"prop-types";import{hasDocgen as ht,extractComponentProps as At,TypeSystem as Re}from"@storybook/docs-tools";import{createSummaryValue as D,isTooLongForTypeSummary as et}from"@storybook/docs-tools";function K(e,t){let r=e!=null,n=t!=null;if(!r&&!n)return"";let o=[];if(r){let s=e.map(p=>{let a=p.getPrettyName(),i=p.getTypeName();return i!=null?`${a}: ${i}`:a});o.push(`(${s.join(", ")})`)}else o.push("()");return n&&o.push(`=> ${t.getTypeName()}`),o.join(" ")}function G(e,t){let r=e!=null,n=t!=null;if(!r&&!n)return"";let o=[];return r?o.push("( ... )"):o.push("()"),n&&o.push(`=> ${t.getTypeName()}`),o.join(" ")}function z(e){return e.replace(/,/g,`,\r
|
|
2
|
+
`)}var A="custom",T="object",x="array",Q="class",l="func",f="element";import Ve from"html-tags";function I(e){return Ve.includes(e.toLowerCase())}import{generate as Me}from"escodegen";import{dedent as Ue}from"ts-dedent";var Z={format:{indent:{style:" "},semicolons:!1}},ke={...Z,format:{newline:""}},ve={...Z};function m(e,t=!1){return Me(e,t?ke:ve)}function C(e,t=!1){return t?_e(e):m(e)}function _e(e){let t=m(e,!0);return t.endsWith(" }")||(t=`${t.slice(0,-1)} }`),t}function U(e,t=!1){return t?$e(e):we(e)}function we(e){let t=m(e);return t.endsWith(" }]")&&(t=Ue(t)),t}function $e(e){let t=m(e,!0);return t.startsWith("[ ")&&(t=t.replace("[ ","[")),t}var S=e=>e.$$typeof===Symbol.for("react.memo"),ee=e=>e.$$typeof===Symbol.for("react.forward_ref");import{Parser as Be}from"acorn";import Ye from"acorn-jsx";import*as g from"acorn-walk";var k={...g.base,JSXElement:()=>{}},Xe=Be.extend(Ye());function R(e){return e!=null?e.name:null}function te(e){return e.filter(t=>t.type==="ObjectExpression"||t.type==="ArrayExpression")}function re(e){let t=[];return g.ancestor(e,{ObjectExpression(r,n){t.push(te(n).length)},ArrayExpression(r,n){t.push(te(n).length)}},k),Math.max(...t)}function We(e){return{inferredType:{type:"Identifier",identifier:R(e)},ast:e}}function He(e){return{inferredType:{type:"Literal"},ast:e}}function qe(e){let t;g.simple(e.body,{JSXElement(s){t=s}},k);let n={type:t!=null?"Element":"Function",params:e.params,hasParams:e.params.length!==0},o=R(e.id);return o!=null&&(n.identifier=o),{inferredType:n,ast:e}}function Ke(e){let t;return g.simple(e.body,{JSXElement(n){t=n}},k),{inferredType:{type:t!=null?"Element":"Class",identifier:R(e.id)},ast:e}}function Ge(e){let t={type:"Element"},r=R(e.openingElement.name);return r!=null&&(t.identifier=r),{inferredType:t,ast:e}}function ze(e){let t=e.callee.type==="MemberExpression"?e.callee.property:e.callee;return R(t)==="shape"?ne(e.arguments[0]):null}function ne(e){return{inferredType:{type:"Object",depth:re(e)},ast:e}}function Qe(e){return{inferredType:{type:"Array",depth:re(e)},ast:e}}function Ze(e){switch(e.type){case"Identifier":return We(e);case"Literal":return He(e);case"FunctionExpression":case"ArrowFunctionExpression":return qe(e);case"ClassExpression":return Ke(e);case"JSXElement":return Ge(e);case"CallExpression":return ze(e);case"ObjectExpression":return ne(e);case"ArrayExpression":return Qe(e);default:return null}}function oe(e){let t=Xe.parse(`(${e})`),r={inferredType:{type:"Unknown"},ast:t};if(t.body[0]!=null){let n=t.body[0];switch(n.type){case"ExpressionStatement":{let o=Ze(n.expression);o!=null&&(r=o);break}default:break}}return r}function u(e){try{return{...oe(e)}}catch{}return{inferredType:{type:"Unknown"}}}var tt=150;function c({name:e,short:t,compact:r,full:n,inferredType:o}){return{name:e,short:t,compact:r,full:n??t,inferredType:o}}function ce(e){return e.replace(/PropTypes./g,"").replace(/.isRequired/g,"")}function se(e){return e.split(/\r?\n/)}function F(e,t=!1){return ce(C(e,t))}function ie(e,t=!1){return ce(m(e,t))}function rt(e){switch(e){case"Object":return T;case"Array":return x;case"Class":return Q;case"Function":return l;case"Element":return f;default:return A}}function ue(e,t){let{inferredType:r,ast:n}=u(e),{type:o}=r,s,p,a;switch(o){case"Identifier":case"Literal":s=e,p=e;break;case"Object":{let{depth:i}=r;s=T,p=i===1?F(n,!0):null,a=F(n);break}case"Element":{let{identifier:i}=r;s=i!=null&&!I(i)?i:f,p=se(e).length===1?e:null,a=e;break}case"Array":{let{depth:i}=r;s=x,p=i<=2?ie(n,!0):null,a=ie(n);break}default:s=rt(o),p=se(e).length===1?e:null,a=e;break}return c({name:t,short:s,compact:p,full:a,inferredType:o})}function nt({raw:e}){return e!=null?ue(e,"custom"):c({name:"custom",short:A,compact:A})}function ot(e){let{jsDocTags:t}=e;return t!=null&&(t.params!=null||t.returns!=null)?c({name:"func",short:G(t.params,t.returns),compact:null,full:K(t.params,t.returns)}):c({name:"func",short:l,compact:l})}function st(e,t){let r=Object.keys(e.value).map(p=>`${p}: ${E(e.value[p],t).full}`).join(", "),{inferredType:n,ast:o}=u(`{ ${r} }`),{depth:s}=n;return c({name:"shape",short:T,compact:s===1&&o?F(o,!0):null,full:o?F(o):null})}function v(e){return`objectOf(${e})`}function it(e,t){let{short:r,compact:n,full:o}=E(e.value,t);return c({name:"objectOf",short:v(r),compact:n!=null?v(n):null,full:o&&v(o)})}function pt(e,t){if(Array.isArray(e.value)){let r=e.value.reduce((n,o)=>{let{short:s,compact:p,full:a}=E(o,t);return n.short.push(s),n.compact.push(p),n.full.push(a),n},{short:[],compact:[],full:[]});return c({name:"union",short:r.short.join(" | "),compact:r.compact.every(n=>n!=null)?r.compact.join(" | "):null,full:r.full.join(" | ")})}return c({name:"union",short:e.value,compact:null})}function at({value:e,computed:t}){return t?ue(e,"enumvalue"):c({name:"enumvalue",short:e,compact:e})}function ct(e){if(Array.isArray(e.value)){let t=e.value.reduce((r,n)=>{let{short:o,compact:s,full:p}=at(n);return r.short.push(o),r.compact.push(s),r.full.push(p),r},{short:[],compact:[],full:[]});return c({name:"enum",short:t.short.join(" | "),compact:t.compact.every(r=>r!=null)?t.compact.join(" | "):null,full:t.full.join(" | ")})}return c({name:"enum",short:e.value,compact:e.value})}function _(e){return`${e}[]`}function pe(e){return`[${e}]`}function ae(e,t,r){return c({name:"arrayOf",short:_(e),compact:t!=null?pe(t):null,full:r&&pe(r)})}function ut(e,t){let{name:r,short:n,compact:o,full:s,inferredType:p}=E(e.value,t);if(r==="custom"){if(p==="Object")return ae(n,o,s)}else if(r==="shape")return ae(n,o,s);return c({name:"arrayOf",short:_(n),compact:_(n)})}function E(e,t){try{switch(e.name){case"custom":return nt(e);case"func":return ot(t);case"shape":return st(e,t);case"instanceOf":return c({name:"instanceOf",short:e.value,compact:e.value});case"objectOf":return it(e,t);case"union":return pt(e,t);case"enum":return ct(e);case"arrayOf":return ut(e,t);default:return c({name:e.name,short:e.name,compact:e.name})}}catch(r){console.error(r)}return c({name:"unknown",short:"unknown",compact:"unknown"})}function le(e){let{type:t}=e.docgenInfo;if(t==null)return null;try{switch(t.name){case"custom":case"shape":case"instanceOf":case"objectOf":case"union":case"enum":case"arrayOf":{let{short:r,compact:n,full:o}=E(t,e);return n!=null&&!et(n)?D(n):o?D(r,o):D(r)}case"func":{let{short:r,full:n}=E(t,e),o=r,s;return n&&n.length<tt?o=n:n&&(s=z(n)),D(o,s)}default:return null}}catch(r){console.error(r)}return null}import{createSummaryValue as O,isTooLongForDefaultValueSummary as ye}from"@storybook/docs-tools";import{createSummaryValue as fe,isTooLongForDefaultValueSummary as lt}from"@storybook/docs-tools";function j({inferredType:e,ast:t}){let{depth:r}=e;if(r===1){let n=C(t,!0);if(!lt(n))return fe(n)}return fe(T,C(t))}import{createSummaryValue as me,isTooLongForDefaultValueSummary as ft}from"@storybook/docs-tools";function J({inferredType:e,ast:t}){let{depth:r}=e;if(r<=2){let n=U(t,!0);if(!ft(n))return me(n)}return me(x,U(t))}function h(e,t){return t?`${e}( ... )`:`${e}()`}function P(e){return`<${e} />`}function w(e){let{type:t,identifier:r}=e;switch(t){case"Function":return h(r,e.hasParams);case"Element":return P(r);default:return r}}function mt({inferredType:e,ast:t}){let{identifier:r}=e;if(r!=null)return O(w(e),m(t));let n=m(t,!0);return ye(n)?O(l,m(t)):O(n)}function yt(e,t){let{inferredType:r}=t,{identifier:n}=r;if(n!=null&&!I(n)){let o=w(r);return O(o,e)}return ye(e)?O(f,e):O(e)}function L(e){try{let t=u(e);switch(t.inferredType.type){case"Object":return j(t);case"Function":return mt(t);case"Element":return yt(e,t);case"Array":return J(t);default:return null}}catch(t){console.error(t)}return null}import Tt from"lodash/isPlainObject";import Te from"lodash/isFunction";import dt from"lodash/isString";import de from"react-element-to-jsx-string";import{createSummaryValue as y,isTooLongForDefaultValueSummary as gt}from"@storybook/docs-tools";function ge(e){return e.$$typeof!=null}function $(e,t){let{name:r}=e;return r!==""&&r!=="anonymous"&&r!==t?r:null}var It=e=>y(JSON.stringify(e));function Et(e){let{type:t}=e,{displayName:r}=t,n=de(e,{});if(r!=null){let o=P(r);return y(o,n)}if(dt(t)&&I(t)){let s=de(e,{tabStop:0}).replace(/\r?\n|\r/g,"");if(!gt(s))return y(s)}return y(f,n)}var Pt=e=>{if(ge(e)&&e.type!=null)return Et(e);if(Tt(e)){let t=u(JSON.stringify(e));return j(t)}if(Array.isArray(e)){let t=u(JSON.stringify(e));return J(t)}return y(T)},Ot=(e,t)=>{let r=!1,n;if(Te(e.render))r=!0;else if(e.prototype!=null&&Te(e.prototype.render))r=!0;else{let s;try{n=u(e.toString());let{hasParams:p,params:a}=n.inferredType;p?a.length===1&&a[0].type==="ObjectPattern"&&(s=e({})):s=e(),s!=null&&ge(s)&&(r=!0)}catch{}}let o=$(e,t.name);if(o!=null){if(r)return y(P(o));n!=null&&(n=u(e.toString()));let{hasParams:s}=n.inferredType;return y(h(o,s))}return y(r?f:l)},Nt=e=>y(e.toString()),Ie={string:It,object:Pt,function:Ot,default:Nt};function Ee(e={}){return{...Ie,...e}}function V(e,t,r=Ie){try{switch(typeof e){case"string":return r.string(e,t);case"object":return r.object(e,t);case"function":return r.function(e,t);default:return r.default(e,t)}}catch(n){console.error(n)}return null}function Pe(e,t){let{propTypes:r}=t;return r!=null?Object.keys(r).map(n=>e.find(o=>o.name===n)).filter(Boolean):e}import{createSummaryValue as B}from"@storybook/docs-tools";var xt=(e,{name:t,type:r})=>{let n=r.summary==="element"||r.summary==="elementType",o=$(e,t);if(o!=null){if(n)return B(P(o));let{hasParams:s}=u(e.toString()).inferredType;return B(h(o,s))}return B(n?f:l)},Oe=Ee({function:xt});function Ct(e,t){let{propDef:r}=e,n=le(e);n!=null&&(r.type=n);let{defaultValue:o}=e.docgenInfo;if(o!=null&&o.value!=null){let s=L(o.value);s!=null&&(r.defaultValue=s)}else if(t!=null){let s=V(t,r,Oe);s!=null&&(r.defaultValue=s)}return r}function Ne(e,t){let r=t.defaultProps!=null?t.defaultProps:{},n=e.map(o=>Ct(o,r[o.propDef.name]));return Pe(n,t)}function Rt(e,t){let{propDef:r}=e,{defaultValue:n}=e.docgenInfo;if(n!=null&&n.value!=null){let o=L(n.value);o!=null&&(r.defaultValue=o)}else if(t!=null){let o=V(t,r);o!=null&&(r.defaultValue=o)}return r}function xe(e){return e.map(t=>Rt(t))}var he=new Map;Object.keys(Ce).forEach(e=>{let t=Ce[e];he.set(t,e),he.set(t.isRequired,e)});function St(e,t){let r=e;!ht(e)&&!e.propTypes&&S(e)&&(r=e.type);let n=At(r,t);if(n.length===0)return[];switch(n[0].typeSystem){case Re.JAVASCRIPT:return Ne(n,e);case Re.TYPESCRIPT:return xe(n);default:return n.map(o=>o.propDef)}}var Ae=e=>({rows:St(e,"props")});var Se=e=>{if(e){let{rows:t}=Ae(e);if(t)return t.reduce((r,n)=>{let{name:o,description:s,type:p,sbType:a,defaultValue:i,jsDocTags:d,required:W}=n;return r[o]={name:o,description:s,type:{required:W,...a},table:{type:p,jsDocTags:d,defaultValue:i}},r},{})}return null};import Y,{createElement as bt}from"react";import X from"react-element-to-jsx-string";import{addons as Dt,useEffect as Ft}from"@storybook/addons";import{SourceType as be,SNIPPET_RENDERED as jt,getDocgenSection as Jt}from"@storybook/docs-tools";import{logger as M}from"@storybook/client-logger";var Lt=(e,t,r)=>typeof t.transformSource!="function"?e:t.transformSource(e,r),Vt=(e,t)=>{if(typeof e>"u")return M.warn("Too many skip or undefined component"),null;let r=e,n=r.type;for(let i=0;i<t.skip;i+=1){if(typeof r>"u")return M.warn("Cannot skip undefined element"),null;if(Y.Children.count(r)>1)return M.warn("Trying to skip an array of elements"),null;typeof r.props.children>"u"?(M.warn("Not enough children to skip elements."),typeof r.type=="function"&&r.type.name===""&&(r=Y.createElement(n,{...r.props}))):typeof r.props.children=="function"?r=r.props.children():r=r.props.children}let p={...typeof t.displayName=="string"?{showFunctions:!0,displayName:()=>t.displayName}:{displayName:i=>i.type.displayName||(i.type===Symbol.for("react.profiler")?"Profiler":null)||Jt(i.type,"displayName")||(i.type.name!=="_default"?i.type.name:null)||(typeof i.type=="function"?"No Display Name":null)||(ee(i.type)?i.type.render.name:null)||(S(i.type)?i.type.type.name:null)||i.type},...{filterProps:(i,d)=>i!==void 0},...t};return Y.Children.map(e,i=>{let d=typeof i=="number"?i.toString():i,N=(typeof X=="function"?X:X.default)(d,p);if(N.indexOf(""")>-1){let H=N.match(/\S+=\\"([^"]*)\\"/g);H&&H.forEach(q=>{N=N.replace(q,q.replace(/"/g,"'"))})}return N}).join(`
|
|
3
|
+
`).replace(/function\s+noRefCheck\(\)\s+\{\}/g,"() => {}")},Mt={skip:0,showFunctions:!1,enableBeautify:!0,showDefaultProps:!1},Ut=e=>{let t=e?.parameters.docs?.source,r=e?.parameters.__isArgsStory;return t?.type===be.DYNAMIC?!1:!r||t?.code||t?.type===be.CODE},kt=e=>e.type?.displayName==="MDXCreateElement"&&!!e.props?.mdxType,De=e=>{if(!kt(e))return e;let{mdxType:t,originalType:r,children:n,...o}=e.props,s=[];return n&&(s=(Array.isArray(n)?n:[n]).map(De)),bt(r,o,...s)},Fe=(e,t)=>{let r=Dt.getChannel(),n=Ut(t),o="";Ft(()=>{n||r.emit(jt,(t||{}).id,o)});let s=e();if(n)return s;let p={...Mt,...t?.parameters.jsx||{}},a=t?.parameters.docs?.source?.excludeDecorators?t.originalStoryFn(t.args,t):s,i=De(a),d=Vt(i,p);return d&&(o=Lt(d,p,t)),s};var je={docs:{inlineStories:!0,extractArgTypes:Se,extractComponentDescription:vt}},wt=[Fe],$t=[_t];var Jn={framework:"react",...je};export{$t as argTypesEnhancers,wt as decorators,Jn as parameters,Je as render,Le as renderToCanvas};
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,193 @@
|
|
|
1
|
+
import * as _storybook_types from '@storybook/types';
|
|
2
|
+
import { Addon_ClientStoryApi, Addon_Loadable, Args, ComponentAnnotations, AnnotatedStoryFn, ArgsStoryFn, ArgsFromMeta, StoryAnnotations, DecoratorFunction, StrictArgs, LoaderFunction, StoryContext as StoryContext$1, ProjectAnnotations, Store_ComposedStory, Store_CSFExports, Store_StoriesWithPartialProps } from '@storybook/types';
|
|
3
|
+
export { ArgTypes, Args, Parameters, StrictArgs } from '@storybook/types';
|
|
4
|
+
import { R as ReactRenderer, S as StoryFnReactReturnType } from './types-7d102855.js';
|
|
5
|
+
export { R as ReactRenderer } from './types-7d102855.js';
|
|
6
|
+
import { ComponentType, ComponentProps, JSXElementConstructor } from 'react';
|
|
7
|
+
import { Simplify, SetOptional } from 'type-fest';
|
|
8
|
+
|
|
9
|
+
interface ClientApi extends Addon_ClientStoryApi<ReactRenderer['storyResult']> {
|
|
10
|
+
configure(loader: Addon_Loadable, module: NodeModule): void;
|
|
11
|
+
forceReRender(): void;
|
|
12
|
+
raw: () => any;
|
|
13
|
+
}
|
|
14
|
+
declare const storiesOf: ClientApi['storiesOf'];
|
|
15
|
+
declare const configure: ClientApi['configure'];
|
|
16
|
+
declare const forceReRender: ClientApi['forceReRender'];
|
|
17
|
+
declare const raw: ClientApi['raw'];
|
|
18
|
+
|
|
19
|
+
type JSXElement = keyof JSX.IntrinsicElements | JSXElementConstructor<any>;
|
|
20
|
+
/**
|
|
21
|
+
* Metadata to configure the stories for a component.
|
|
22
|
+
*
|
|
23
|
+
* @see [Default export](https://storybook.js.org/docs/formats/component-story-format/#default-export)
|
|
24
|
+
*/
|
|
25
|
+
type Meta<TCmpOrArgs = Args> = TCmpOrArgs extends ComponentType<any> ? ComponentAnnotations<ReactRenderer, ComponentProps<TCmpOrArgs>> : ComponentAnnotations<ReactRenderer, TCmpOrArgs>;
|
|
26
|
+
/**
|
|
27
|
+
* Story function that represents a CSFv2 component example.
|
|
28
|
+
*
|
|
29
|
+
* @see [Named Story exports](https://storybook.js.org/docs/formats/component-story-format/#named-story-exports)
|
|
30
|
+
*/
|
|
31
|
+
type StoryFn<TCmpOrArgs = Args> = TCmpOrArgs extends ComponentType<any> ? AnnotatedStoryFn<ReactRenderer, ComponentProps<TCmpOrArgs>> : AnnotatedStoryFn<ReactRenderer, TCmpOrArgs>;
|
|
32
|
+
/**
|
|
33
|
+
* Story function that represents a CSFv3 component example.
|
|
34
|
+
*
|
|
35
|
+
* @see [Named Story exports](https://storybook.js.org/docs/formats/component-story-format/#named-story-exports)
|
|
36
|
+
*/
|
|
37
|
+
type StoryObj<TMetaOrCmpOrArgs = Args> = TMetaOrCmpOrArgs extends {
|
|
38
|
+
render?: ArgsStoryFn<ReactRenderer, any>;
|
|
39
|
+
component?: infer Component;
|
|
40
|
+
args?: infer DefaultArgs;
|
|
41
|
+
} ? Simplify<(Component extends ComponentType<any> ? ComponentProps<Component> : unknown) & ArgsFromMeta<ReactRenderer, TMetaOrCmpOrArgs>> extends infer TArgs ? StoryAnnotations<ReactRenderer, TArgs, SetOptional<TArgs, keyof TArgs & keyof (DefaultArgs & ActionArgs<TArgs>)>> : never : TMetaOrCmpOrArgs extends ComponentType<any> ? StoryAnnotations<ReactRenderer, ComponentProps<TMetaOrCmpOrArgs>> : StoryAnnotations<ReactRenderer, TMetaOrCmpOrArgs>;
|
|
42
|
+
type ActionArgs<TArgs> = {
|
|
43
|
+
[P in keyof TArgs as TArgs[P] extends (...args: any[]) => any ? ((...args: any[]) => void) extends TArgs[P] ? P : never : never]: TArgs[P];
|
|
44
|
+
};
|
|
45
|
+
/**
|
|
46
|
+
* @deprecated Use `Meta` instead, e.g. ComponentMeta<typeof Button> -> Meta<typeof Button>.
|
|
47
|
+
*
|
|
48
|
+
* For the common case where a component's stories are simple components that receives args as props:
|
|
49
|
+
*
|
|
50
|
+
* ```tsx
|
|
51
|
+
* export default { ... } as ComponentMeta<typeof Button>;
|
|
52
|
+
* ```
|
|
53
|
+
*/
|
|
54
|
+
type ComponentMeta<T extends JSXElement> = Meta<ComponentProps<T>>;
|
|
55
|
+
/**
|
|
56
|
+
* @deprecated Use `StoryFn` instead, e.g. ComponentStoryFn<typeof Button> -> StoryFn<typeof Button>.
|
|
57
|
+
* Use `StoryObj` if you want to migrate to CSF3, which uses objects instead of functions to represent stories.
|
|
58
|
+
* You can read more about the CSF3 format here: https://storybook.js.org/blog/component-story-format-3-0/
|
|
59
|
+
*
|
|
60
|
+
* For the common case where a (CSFv2) story is a simple component that receives args as props:
|
|
61
|
+
*
|
|
62
|
+
* ```tsx
|
|
63
|
+
* const Template: ComponentStoryFn<typeof Button> = (args) => <Button {...args} />
|
|
64
|
+
* ```
|
|
65
|
+
*/
|
|
66
|
+
type ComponentStoryFn<T extends JSXElement> = StoryFn<ComponentProps<T>>;
|
|
67
|
+
/**
|
|
68
|
+
* @deprecated Use `StoryObj` instead, e.g. ComponentStoryObj<typeof Button> -> StoryObj<typeof Button>.
|
|
69
|
+
*
|
|
70
|
+
* For the common case where a (CSFv3) story is a simple component that receives args as props:
|
|
71
|
+
*
|
|
72
|
+
* ```tsx
|
|
73
|
+
* const MyStory: ComponentStoryObj<typeof Button> = {
|
|
74
|
+
* args: { buttonArg1: 'val' },
|
|
75
|
+
* }
|
|
76
|
+
* ```
|
|
77
|
+
*/
|
|
78
|
+
type ComponentStoryObj<T extends JSXElement> = StoryObj<ComponentProps<T>>;
|
|
79
|
+
/**
|
|
80
|
+
* @deprecated Use `StoryFn` instead.
|
|
81
|
+
* Use `StoryObj` if you want to migrate to CSF3, which uses objects instead of functions to represent stories.
|
|
82
|
+
* You can read more about the CSF3 format here: https://storybook.js.org/blog/component-story-format-3-0/
|
|
83
|
+
*
|
|
84
|
+
* Story function that represents a CSFv2 component example.
|
|
85
|
+
*
|
|
86
|
+
* @see [Named Story exports](https://storybook.js.org/docs/formats/component-story-format/#named-story-exports)
|
|
87
|
+
*/
|
|
88
|
+
type Story<TArgs = Args> = StoryFn<TArgs>;
|
|
89
|
+
/**
|
|
90
|
+
* @deprecated Use `StoryFn` instead, e.g. ComponentStory<typeof Button> -> StoryFn<typeof Button>.
|
|
91
|
+
* Use `StoryObj` if you want to migrate to CSF3, which uses objects instead of functions to represent stories
|
|
92
|
+
* You can read more about the CSF3 format here: https://storybook.js.org/blog/component-story-format-3-0/.
|
|
93
|
+
*
|
|
94
|
+
* For the common case where a (CSFv3) story is a simple component that receives args as props:
|
|
95
|
+
*
|
|
96
|
+
* ```tsx
|
|
97
|
+
* const MyStory: ComponentStory<typeof Button> = {
|
|
98
|
+
* args: { buttonArg1: 'val' },
|
|
99
|
+
* }
|
|
100
|
+
* ```
|
|
101
|
+
*/
|
|
102
|
+
type ComponentStory<T extends JSXElement> = ComponentStoryFn<T>;
|
|
103
|
+
/**
|
|
104
|
+
* @deprecated Use Decorator instead.
|
|
105
|
+
*/
|
|
106
|
+
type DecoratorFn = DecoratorFunction<ReactRenderer>;
|
|
107
|
+
type Decorator<TArgs = StrictArgs> = DecoratorFunction<ReactRenderer, TArgs>;
|
|
108
|
+
type Loader<TArgs = StrictArgs> = LoaderFunction<ReactRenderer, TArgs>;
|
|
109
|
+
type StoryContext<TArgs = StrictArgs> = StoryContext$1<ReactRenderer, TArgs>;
|
|
110
|
+
|
|
111
|
+
/** Function that sets the globalConfig of your storybook. The global config is the preview module of your .storybook folder.
|
|
112
|
+
*
|
|
113
|
+
* It should be run a single time, so that your global config (e.g. decorators) is applied to your stories when using `composeStories` or `composeStory`.
|
|
114
|
+
*
|
|
115
|
+
* Example:
|
|
116
|
+
*```jsx
|
|
117
|
+
* // setup.js (for jest)
|
|
118
|
+
* import { setProjectAnnotations } from '@storybook/react';
|
|
119
|
+
* import * as projectAnnotations from './.storybook/preview';
|
|
120
|
+
*
|
|
121
|
+
* setProjectAnnotations(projectAnnotations);
|
|
122
|
+
*```
|
|
123
|
+
*
|
|
124
|
+
* @param projectAnnotations - e.g. (import * as projectAnnotations from '../.storybook/preview')
|
|
125
|
+
*/
|
|
126
|
+
declare function setProjectAnnotations(projectAnnotations: ProjectAnnotations<ReactRenderer> | ProjectAnnotations<ReactRenderer>[]): void;
|
|
127
|
+
/** Preserved for users migrating from `@storybook/testing-react`.
|
|
128
|
+
*
|
|
129
|
+
* @deprecated Use setProjectAnnotations instead
|
|
130
|
+
*/
|
|
131
|
+
declare function setGlobalConfig(projectAnnotations: ProjectAnnotations<ReactRenderer> | ProjectAnnotations<ReactRenderer>[]): void;
|
|
132
|
+
/**
|
|
133
|
+
* Function that will receive a story along with meta (e.g. a default export from a .stories file)
|
|
134
|
+
* and optionally projectAnnotations e.g. (import * from '../.storybook/preview)
|
|
135
|
+
* and will return a composed component that has all args/parameters/decorators/etc combined and applied to it.
|
|
136
|
+
*
|
|
137
|
+
*
|
|
138
|
+
* It's very useful for reusing a story in scenarios outside of Storybook like unit testing.
|
|
139
|
+
*
|
|
140
|
+
* Example:
|
|
141
|
+
*```jsx
|
|
142
|
+
* import { render } from '@testing-library/react';
|
|
143
|
+
* import { composeStory } from '@storybook/react';
|
|
144
|
+
* import Meta, { Primary as PrimaryStory } from './Button.stories';
|
|
145
|
+
*
|
|
146
|
+
* const Primary = composeStory(PrimaryStory, Meta);
|
|
147
|
+
*
|
|
148
|
+
* test('renders primary button with Hello World', () => {
|
|
149
|
+
* const { getByText } = render(<Primary>Hello world</Primary>);
|
|
150
|
+
* expect(getByText(/Hello world/i)).not.toBeNull();
|
|
151
|
+
* });
|
|
152
|
+
*```
|
|
153
|
+
*
|
|
154
|
+
* @param story
|
|
155
|
+
* @param componentAnnotations - e.g. (import Meta from './Button.stories')
|
|
156
|
+
* @param [projectAnnotations] - e.g. (import * as projectAnnotations from '../.storybook/preview') this can be applied automatically if you use `setProjectAnnotations` in your setup files.
|
|
157
|
+
* @param [exportsName] - in case your story does not contain a name and you want it to have a name.
|
|
158
|
+
*/
|
|
159
|
+
declare function composeStory<TArgs extends Args = Args>(story: Store_ComposedStory<ReactRenderer, TArgs>, componentAnnotations: Meta<TArgs | any>, projectAnnotations?: ProjectAnnotations<ReactRenderer>, exportsName?: string): {
|
|
160
|
+
(extraArgs: Partial<TArgs>): StoryFnReactReturnType;
|
|
161
|
+
storyName: string;
|
|
162
|
+
args: Args;
|
|
163
|
+
play: _storybook_types.Store_ComposedStoryPlayFn;
|
|
164
|
+
parameters: _storybook_types.Parameters;
|
|
165
|
+
};
|
|
166
|
+
/**
|
|
167
|
+
* Function that will receive a stories import (e.g. `import * as stories from './Button.stories'`)
|
|
168
|
+
* and optionally projectAnnotations (e.g. `import * from '../.storybook/preview`)
|
|
169
|
+
* and will return an object containing all the stories passed, but now as a composed component that has all args/parameters/decorators/etc combined and applied to it.
|
|
170
|
+
*
|
|
171
|
+
*
|
|
172
|
+
* It's very useful for reusing stories in scenarios outside of Storybook like unit testing.
|
|
173
|
+
*
|
|
174
|
+
* Example:
|
|
175
|
+
*```jsx
|
|
176
|
+
* import { render } from '@testing-library/react';
|
|
177
|
+
* import { composeStories } from '@storybook/react';
|
|
178
|
+
* import * as stories from './Button.stories';
|
|
179
|
+
*
|
|
180
|
+
* const { Primary, Secondary } = composeStories(stories);
|
|
181
|
+
*
|
|
182
|
+
* test('renders primary button with Hello World', () => {
|
|
183
|
+
* const { getByText } = render(<Primary>Hello world</Primary>);
|
|
184
|
+
* expect(getByText(/Hello world/i)).not.toBeNull();
|
|
185
|
+
* });
|
|
186
|
+
*```
|
|
187
|
+
*
|
|
188
|
+
* @param csfExports - e.g. (import * as stories from './Button.stories')
|
|
189
|
+
* @param [projectAnnotations] - e.g. (import * as projectAnnotations from '../.storybook/preview') this can be applied automatically if you use `setProjectAnnotations` in your setup files.
|
|
190
|
+
*/
|
|
191
|
+
declare function composeStories<TModule extends Store_CSFExports<ReactRenderer>>(csfExports: TModule, projectAnnotations?: ProjectAnnotations<ReactRenderer>): Omit<Store_StoriesWithPartialProps<ReactRenderer, TModule>, keyof Store_CSFExports<_storybook_types.Renderer>>;
|
|
192
|
+
|
|
193
|
+
export { ComponentMeta, ComponentStory, ComponentStoryFn, ComponentStoryObj, Decorator, DecoratorFn, Loader, Meta, Story, StoryContext, StoryFn, StoryObj, composeStories, composeStory, configure, forceReRender, raw, setGlobalConfig, setProjectAnnotations, storiesOf };
|
package/dist/index.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";var T=Object.create;var d=Object.defineProperty;var k=Object.getOwnPropertyDescriptor;var D=Object.getOwnPropertyNames;var W=Object.getPrototypeOf,U=Object.prototype.hasOwnProperty;var L=(e,t)=>{for(var o in t)d(e,o,{get:t[o],enumerable:!0})},A=(e,t,o,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let s of D(t))!U.call(e,s)&&s!==o&&d(e,s,{get:()=>t[s],enumerable:!(r=k(t,s))||r.enumerable});return e};var p=(e,t,o)=>(o=e!=null?T(W(e)):{},A(t||!e||!e.__esModule?d(o,"default",{value:e,enumerable:!0}):o,e)),N=e=>A(d({},"__esModule",{value:!0}),e);var Z={};L(Z,{composeStories:()=>X,composeStory:()=>_,configure:()=>q,forceReRender:()=>z,raw:()=>H,setGlobalConfig:()=>J,setProjectAnnotations:()=>M,storiesOf:()=>$});module.exports=N(Z);var S=p(require("global")),{window:C}=S.default;C&&(C.STORYBOOK_ENV="react");var P=require("@storybook/core-client");var x=p(require("global")),n=p(require("react")),i=p(require("react-dom")),{FRAMEWORK_OPTIONS:a}=x.default,m=new Map,R=(e,t)=>{let{id:o,component:r}=t;if(!r)throw new Error(`Unable to render story ${o} as the component annotation is missing from the default export`);return n.default.createElement(r,{...e})},G=({callback:e,children:t})=>{let o=(0,n.useRef)();return(0,n.useLayoutEffect)(()=>{o.current!==e&&(o.current=e,e())},[e]),t},V=async(e,t)=>{let o=await Y(t);return new Promise(r=>{o?o.render(n.default.createElement(G,{callback:()=>r(null)},e)):i.default.render(e,t,()=>r(null))})},B=i.version&&(i.version.startsWith("18")||i.version.startsWith("0.0.0")),O=(a==null?void 0:a.legacyRootApi)!==!0,w=O&&B,g=e=>{let t=m.get(e);t&&w?(t.unmount(),m.delete(e)):i.default.unmountComponentAtNode(e)},Y=async e=>{if(!w)return null;let t=m.get(e);return t||(t=(await import("react-dom/client")).default.createRoot(e),m.set(e,t)),t},u=class extends n.Component{constructor(){super(...arguments);this.state={hasError:!1}}static getDerivedStateFromError(){return{hasError:!0}}componentDidMount(){let{hasError:o}=this.state,{showMain:r}=this.props;o||r()}componentDidCatch(o){let{showException:r}=this.props;r(o)}render(){let{hasError:o}=this.state,{children:r}=this.props;return o?null:r}},h=a!=null&&a.strictMode?n.StrictMode:n.Fragment;async function E({storyContext:e,unboundStoryFn:t,showMain:o,showException:r,forceRemount:s},f){let y=n.default.createElement(u,{showMain:o,showException:r},n.default.createElement(t,{...e})),F=h?n.default.createElement(h,null,y):y;return s&&g(f),await V(F,f),()=>g(f)}var b="react",l=(0,P.start)(E,{render:R}),$=(e,t)=>l.clientApi.storiesOf(e,t).addParameters({framework:b}),q=(...e)=>l.configure(b,...e),z=l.forceReRender,H=l.clientApi.raw;var c=require("@storybook/store"),j=require("@storybook/client-logger");function M(e){(0,c.setProjectAnnotations)(e)}function J(e){(0,j.deprecate)("setGlobalConfig is deprecated. Use setProjectAnnotations instead."),M(e)}var Q={render:R};function _(e,t,o,r){return(0,c.composeStory)(e,t,o,Q,r)}function X(e,t){return(0,c.composeStories)(e,t,_)}var v;(v=module==null?void 0:module.hot)==null||v.decline();0&&(module.exports={composeStories,composeStory,configure,forceReRender,raw,setGlobalConfig,setProjectAnnotations,storiesOf});
|
package/dist/index.mjs
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{a as t,b as s}from"./chunk-3ETZESFO.mjs";import p from"global";var{window:i}=p;i&&(i.STORYBOOK_ENV="react");import{start as d}from"@storybook/core-client";var a="react",r=d(s,{render:t}),P=(e,o)=>r.clientApi.storiesOf(e,o).addParameters({framework:a}),x=(...e)=>r.configure(a,...e),j=r.forceReRender,_=r.clientApi.raw;import{composeStory as R,composeStories as m,setProjectAnnotations as f}from"@storybook/store";import{deprecate as l}from"@storybook/client-logger";function A(e){f(e)}function M(e){l("setGlobalConfig is deprecated. Use setProjectAnnotations instead."),A(e)}var S={render:t};function y(e,o,n,c){return R(e,o,n,S,c)}function k(e,o){return m(e,o,y)}module?.hot?.decline();export{k as composeStories,y as composeStory,x as configure,j as forceReRender,_ as raw,M as setGlobalConfig,A as setProjectAnnotations,P as storiesOf};
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { ComponentType, ReactElement } from 'react';
|
|
2
|
+
import { WebRenderer } from '@storybook/types';
|
|
3
|
+
|
|
4
|
+
interface ReactRenderer extends WebRenderer {
|
|
5
|
+
component: ComponentType<this['T']>;
|
|
6
|
+
storyResult: StoryFnReactReturnType;
|
|
7
|
+
}
|
|
8
|
+
type StoryFnReactReturnType = ReactElement<unknown>;
|
|
9
|
+
|
|
10
|
+
export { ReactRenderer as R, StoryFnReactReturnType as S };
|
package/jest.config.js
ADDED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@storybook/react",
|
|
3
|
-
"version": "7.0.0-alpha.
|
|
3
|
+
"version": "7.0.0-alpha.51",
|
|
4
4
|
"description": "Storybook React renderer",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"storybook"
|
|
@@ -19,50 +19,71 @@
|
|
|
19
19
|
"url": "https://opencollective.com/storybook"
|
|
20
20
|
},
|
|
21
21
|
"license": "MIT",
|
|
22
|
-
"
|
|
23
|
-
|
|
24
|
-
|
|
22
|
+
"exports": {
|
|
23
|
+
".": {
|
|
24
|
+
"require": "./dist/index.js",
|
|
25
|
+
"import": "./dist/index.mjs",
|
|
26
|
+
"types": "./dist/index.d.ts"
|
|
27
|
+
},
|
|
28
|
+
"./preview": {
|
|
29
|
+
"require": "./dist/config.js",
|
|
30
|
+
"import": "./dist/config.mjs",
|
|
31
|
+
"types": "./dist/config.d.ts"
|
|
32
|
+
},
|
|
33
|
+
"./package.json": {
|
|
34
|
+
"require": "./package.json",
|
|
35
|
+
"import": "./package.json",
|
|
36
|
+
"types": "./package.json"
|
|
37
|
+
}
|
|
38
|
+
},
|
|
39
|
+
"main": "dist/index.js",
|
|
40
|
+
"module": "dist/index.mjs",
|
|
41
|
+
"types": "dist/index.d.ts",
|
|
25
42
|
"files": [
|
|
26
43
|
"dist/**/*",
|
|
44
|
+
"template/**/*",
|
|
27
45
|
"types/**/*",
|
|
28
46
|
"README.md",
|
|
29
47
|
"*.js",
|
|
30
48
|
"*.d.ts"
|
|
31
49
|
],
|
|
32
50
|
"scripts": {
|
|
33
|
-
"
|
|
51
|
+
"check": "../../../scripts/node_modules/.bin/tsc --noEmit",
|
|
52
|
+
"prep": "../../../scripts/prepare/bundle.ts"
|
|
34
53
|
},
|
|
35
54
|
"dependencies": {
|
|
36
|
-
"@storybook/addons": "7.0.0-alpha.
|
|
37
|
-
"@storybook/client-logger": "7.0.0-alpha.
|
|
38
|
-
"@storybook/core-client": "7.0.0-alpha.
|
|
39
|
-
"@storybook/
|
|
40
|
-
"@storybook/
|
|
41
|
-
"@storybook/
|
|
55
|
+
"@storybook/addons": "7.0.0-alpha.51",
|
|
56
|
+
"@storybook/client-logger": "7.0.0-alpha.51",
|
|
57
|
+
"@storybook/core-client": "7.0.0-alpha.51",
|
|
58
|
+
"@storybook/docs-tools": "7.0.0-alpha.51",
|
|
59
|
+
"@storybook/store": "7.0.0-alpha.51",
|
|
60
|
+
"@storybook/types": "7.0.0-alpha.51",
|
|
42
61
|
"@types/estree": "^0.0.51",
|
|
43
|
-
"@types/node": "^
|
|
62
|
+
"@types/node": "^16.0.0 || ^18.0.0",
|
|
44
63
|
"acorn": "^7.4.1",
|
|
45
64
|
"acorn-jsx": "^5.3.1",
|
|
46
65
|
"acorn-walk": "^7.2.0",
|
|
47
|
-
"core-js": "^3.8.2",
|
|
48
66
|
"escodegen": "^2.0.0",
|
|
49
67
|
"global": "^4.4.0",
|
|
50
68
|
"html-tags": "^3.1.0",
|
|
51
69
|
"lodash": "^4.17.21",
|
|
52
70
|
"prop-types": "^15.7.2",
|
|
53
|
-
"react-element-to-jsx-string": "^
|
|
71
|
+
"react-element-to-jsx-string": "^15.0.0",
|
|
54
72
|
"ts-dedent": "^2.0.0",
|
|
73
|
+
"type-fest": "^2.19.0",
|
|
55
74
|
"util-deprecate": "^1.0.2"
|
|
56
75
|
},
|
|
57
76
|
"devDependencies": {
|
|
58
|
-
"@babel/core": "^7.
|
|
59
|
-
"@types/util-deprecate": "^1.0.0"
|
|
77
|
+
"@babel/core": "^7.20.2",
|
|
78
|
+
"@types/util-deprecate": "^1.0.0",
|
|
79
|
+
"expect-type": "^0.14.2",
|
|
80
|
+
"jest-specific-snapshot": "^6.0.0",
|
|
81
|
+
"require-from-string": "^2.0.2",
|
|
82
|
+
"typescript": "^4.9.3"
|
|
60
83
|
},
|
|
61
84
|
"peerDependencies": {
|
|
62
|
-
"jest-specific-snapshot": "^4.0.0",
|
|
63
85
|
"react": "^16.8.0 || ^17.0.0 || ^18.0.0",
|
|
64
|
-
"react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0"
|
|
65
|
-
"require-from-string": "^2.0.2"
|
|
86
|
+
"react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0"
|
|
66
87
|
},
|
|
67
88
|
"peerDependenciesMeta": {
|
|
68
89
|
"typescript": {
|
|
@@ -75,5 +96,12 @@
|
|
|
75
96
|
"publishConfig": {
|
|
76
97
|
"access": "public"
|
|
77
98
|
},
|
|
78
|
-
"
|
|
99
|
+
"bundler": {
|
|
100
|
+
"entries": [
|
|
101
|
+
"./src/index.ts",
|
|
102
|
+
"./src/config.ts"
|
|
103
|
+
],
|
|
104
|
+
"platform": "browser"
|
|
105
|
+
},
|
|
106
|
+
"gitHead": "4fec76c3f5135854d9834ebc1cf2f1f325696ded"
|
|
79
107
|
}
|
package/preview.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export * from './dist/
|
|
1
|
+
export * from './dist/config.mjs';
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import PropTypes from 'prop-types';
|
|
3
|
+
import './button.css';
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* Primary UI component for user interaction
|
|
7
|
+
*/
|
|
8
|
+
export const Button = ({ primary, backgroundColor, size, label, ...props }) => {
|
|
9
|
+
const mode = primary ? 'storybook-button--primary' : 'storybook-button--secondary';
|
|
10
|
+
return (
|
|
11
|
+
<button
|
|
12
|
+
type="button"
|
|
13
|
+
className={['storybook-button', `storybook-button--${size}`, mode].join(' ')}
|
|
14
|
+
style={backgroundColor && { backgroundColor }}
|
|
15
|
+
{...props}
|
|
16
|
+
>
|
|
17
|
+
{label}
|
|
18
|
+
</button>
|
|
19
|
+
);
|
|
20
|
+
};
|
|
21
|
+
|
|
22
|
+
Button.propTypes = {
|
|
23
|
+
/**
|
|
24
|
+
* Is this the principal call to action on the page?
|
|
25
|
+
*/
|
|
26
|
+
primary: PropTypes.bool,
|
|
27
|
+
/**
|
|
28
|
+
* What background color to use
|
|
29
|
+
*/
|
|
30
|
+
backgroundColor: PropTypes.string,
|
|
31
|
+
/**
|
|
32
|
+
* How large should the button be?
|
|
33
|
+
*/
|
|
34
|
+
size: PropTypes.oneOf(['small', 'medium', 'large']),
|
|
35
|
+
/**
|
|
36
|
+
* Button contents
|
|
37
|
+
*/
|
|
38
|
+
label: PropTypes.string.isRequired,
|
|
39
|
+
/**
|
|
40
|
+
* Optional click handler
|
|
41
|
+
*/
|
|
42
|
+
onClick: PropTypes.func,
|
|
43
|
+
};
|
|
44
|
+
|
|
45
|
+
Button.defaultProps = {
|
|
46
|
+
backgroundColor: null,
|
|
47
|
+
primary: false,
|
|
48
|
+
size: 'medium',
|
|
49
|
+
onClick: undefined,
|
|
50
|
+
};
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { Button } from './Button';
|
|
2
|
+
|
|
3
|
+
// More on how to set up stories at: https://storybook.js.org/docs/7.0/react/writing-stories/introduction
|
|
4
|
+
export default {
|
|
5
|
+
title: 'Example/Button',
|
|
6
|
+
component: Button,
|
|
7
|
+
tags: ['docsPage'],
|
|
8
|
+
argTypes: {
|
|
9
|
+
backgroundColor: { control: 'color' },
|
|
10
|
+
},
|
|
11
|
+
};
|
|
12
|
+
|
|
13
|
+
// More on writing stories with args: https://storybook.js.org/docs/7.0/react/writing-stories/args
|
|
14
|
+
export const Primary = {
|
|
15
|
+
args: {
|
|
16
|
+
primary: true,
|
|
17
|
+
label: 'Button',
|
|
18
|
+
},
|
|
19
|
+
};
|
|
20
|
+
|
|
21
|
+
export const Secondary = {
|
|
22
|
+
args: {
|
|
23
|
+
label: 'Button',
|
|
24
|
+
},
|
|
25
|
+
};
|
|
26
|
+
|
|
27
|
+
export const Large = {
|
|
28
|
+
args: {
|
|
29
|
+
size: 'large',
|
|
30
|
+
label: 'Button',
|
|
31
|
+
},
|
|
32
|
+
};
|
|
33
|
+
|
|
34
|
+
export const Small = {
|
|
35
|
+
args: {
|
|
36
|
+
size: 'small',
|
|
37
|
+
label: 'Button',
|
|
38
|
+
},
|
|
39
|
+
};
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import PropTypes from 'prop-types';
|
|
3
|
+
|
|
4
|
+
import { Button } from './Button';
|
|
5
|
+
import './header.css';
|
|
6
|
+
|
|
7
|
+
export const Header = ({ user, onLogin, onLogout, onCreateAccount }) => (
|
|
8
|
+
<header>
|
|
9
|
+
<div className="wrapper">
|
|
10
|
+
<div>
|
|
11
|
+
<svg width="32" height="32" viewBox="0 0 32 32" xmlns="http://www.w3.org/2000/svg">
|
|
12
|
+
<g fill="none" fillRule="evenodd">
|
|
13
|
+
<path
|
|
14
|
+
d="M10 0h12a10 10 0 0110 10v12a10 10 0 01-10 10H10A10 10 0 010 22V10A10 10 0 0110 0z"
|
|
15
|
+
fill="#FFF"
|
|
16
|
+
/>
|
|
17
|
+
<path
|
|
18
|
+
d="M5.3 10.6l10.4 6v11.1l-10.4-6v-11zm11.4-6.2l9.7 5.5-9.7 5.6V4.4z"
|
|
19
|
+
fill="#555AB9"
|
|
20
|
+
/>
|
|
21
|
+
<path
|
|
22
|
+
d="M27.2 10.6v11.2l-10.5 6V16.5l10.5-6zM15.7 4.4v11L6 10l9.7-5.5z"
|
|
23
|
+
fill="#91BAF8"
|
|
24
|
+
/>
|
|
25
|
+
</g>
|
|
26
|
+
</svg>
|
|
27
|
+
<h1>Acme</h1>
|
|
28
|
+
</div>
|
|
29
|
+
<div>
|
|
30
|
+
{user ? (
|
|
31
|
+
<>
|
|
32
|
+
<span className="welcome">
|
|
33
|
+
Welcome, <b>{user.name}</b>!
|
|
34
|
+
</span>
|
|
35
|
+
<Button size="small" onClick={onLogout} label="Log out" />
|
|
36
|
+
</>
|
|
37
|
+
) : (
|
|
38
|
+
<>
|
|
39
|
+
<Button size="small" onClick={onLogin} label="Log in" />
|
|
40
|
+
<Button primary size="small" onClick={onCreateAccount} label="Sign up" />
|
|
41
|
+
</>
|
|
42
|
+
)}
|
|
43
|
+
</div>
|
|
44
|
+
</div>
|
|
45
|
+
</header>
|
|
46
|
+
);
|
|
47
|
+
|
|
48
|
+
Header.propTypes = {
|
|
49
|
+
user: PropTypes.shape({
|
|
50
|
+
name: PropTypes.string.isRequired,
|
|
51
|
+
}),
|
|
52
|
+
onLogin: PropTypes.func.isRequired,
|
|
53
|
+
onLogout: PropTypes.func.isRequired,
|
|
54
|
+
onCreateAccount: PropTypes.func.isRequired,
|
|
55
|
+
};
|
|
56
|
+
|
|
57
|
+
Header.defaultProps = {
|
|
58
|
+
user: null,
|
|
59
|
+
};
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { Header } from './Header';
|
|
2
|
+
|
|
3
|
+
export default {
|
|
4
|
+
title: 'Example/Header',
|
|
5
|
+
component: Header,
|
|
6
|
+
// This component will have an automatically generated docsPage entry: https://storybook.js.org/docs/7.0/react/writing-docs/docs-page
|
|
7
|
+
tags: ['docsPage'],
|
|
8
|
+
parameters: {
|
|
9
|
+
// More on how to position stories at: https://storybook.js.org/docs/7.0/react/configure/story-layout
|
|
10
|
+
layout: 'fullscreen',
|
|
11
|
+
},
|
|
12
|
+
};
|
|
13
|
+
|
|
14
|
+
export const LoggedIn = {
|
|
15
|
+
args: {
|
|
16
|
+
user: {
|
|
17
|
+
name: 'Jane Doe',
|
|
18
|
+
},
|
|
19
|
+
},
|
|
20
|
+
};
|
|
21
|
+
|
|
22
|
+
export const LoggedOut = {};
|