@storybook/react 6.5.0-alpha.9 → 6.5.0-beta.2
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/README.md +2 -2
- package/dist/cjs/client/docs/config.js +29 -0
- package/dist/cjs/client/docs/extractArgTypes.js +54 -0
- package/dist/cjs/client/docs/extractProps.js +77 -0
- package/dist/cjs/client/docs/jsxDecorator.js +277 -0
- package/dist/cjs/client/docs/lib/captions.js +18 -0
- package/dist/cjs/client/docs/lib/componentTypes.js +24 -0
- package/dist/cjs/client/docs/lib/defaultValues/createDefaultValue.js +81 -0
- package/dist/cjs/client/docs/lib/defaultValues/createFromRawDefaultProp.js +225 -0
- package/dist/cjs/client/docs/lib/defaultValues/generateArray.js +29 -0
- package/dist/cjs/client/docs/lib/defaultValues/generateObject.js +29 -0
- package/dist/cjs/client/docs/lib/defaultValues/index.js +37 -0
- package/dist/cjs/client/docs/lib/defaultValues/prettyIdentifier.js +34 -0
- package/dist/cjs/client/docs/lib/generateCode.js +89 -0
- package/dist/cjs/client/docs/lib/index.js +63 -0
- package/dist/cjs/client/docs/lib/inspection/acornParser.js +254 -0
- package/dist/cjs/client/docs/lib/inspection/index.js +37 -0
- package/dist/cjs/client/docs/lib/inspection/inspectValue.js +26 -0
- package/dist/cjs/client/docs/lib/inspection/types.js +19 -0
- package/dist/cjs/client/docs/lib/isHtmlTag.js +18 -0
- package/dist/cjs/client/docs/propTypes/createType.js +469 -0
- package/dist/cjs/client/docs/propTypes/generateFuncSignature.js +78 -0
- package/dist/cjs/client/docs/propTypes/handleProp.js +54 -0
- package/dist/cjs/client/docs/propTypes/rawDefaultPropResolvers.js +47 -0
- package/dist/cjs/client/docs/propTypes/sortProps.js +37 -0
- package/dist/cjs/client/docs/react-argtypes.stories.js +129 -0
- package/dist/cjs/client/docs/typeScript/handleProp.js +38 -0
- package/dist/cjs/client/index.js +30 -14
- package/dist/cjs/client/preview/config.js +1 -1
- package/dist/cjs/client/preview/index.js +3 -3
- package/dist/cjs/client/preview/render.js +117 -34
- package/dist/cjs/client/preview/types-6-0.js +5 -1
- package/dist/cjs/client/preview/types-6-3.js +2 -0
- package/dist/cjs/client/preview/types-7-0.js +5 -1
- package/dist/cjs/client/preview/types.js +5 -1
- package/dist/cjs/client/testing/index.js +112 -0
- package/dist/cjs/demo/Welcome.js +7 -3
- package/dist/cjs/server/{framework-preset-react-docgen.js → framework-preset-react-docs.js} +21 -11
- package/dist/cjs/server/framework-preset-react-dom-hack.js +31 -0
- package/dist/cjs/server/framework-preset-react.js +2 -2
- package/dist/cjs/server/preset.js +4 -4
- package/dist/esm/client/docs/config.js +16 -0
- package/dist/esm/client/docs/extractArgTypes.js +39 -0
- package/dist/esm/client/docs/extractProps.js +54 -0
- package/dist/esm/client/docs/jsxDecorator.js +218 -0
- package/dist/esm/client/docs/lib/captions.js +6 -0
- package/dist/esm/client/docs/lib/componentTypes.js +9 -0
- package/dist/esm/client/docs/lib/defaultValues/createDefaultValue.js +67 -0
- package/dist/esm/client/docs/lib/defaultValues/createFromRawDefaultProp.js +191 -0
- package/dist/esm/client/docs/lib/defaultValues/generateArray.js +19 -0
- package/dist/esm/client/docs/lib/defaultValues/generateObject.js +19 -0
- package/dist/esm/client/docs/lib/defaultValues/index.js +2 -0
- package/dist/esm/client/docs/lib/defaultValues/prettyIdentifier.js +22 -0
- package/dist/esm/client/docs/lib/generateCode.js +68 -0
- package/dist/esm/client/docs/lib/index.js +4 -0
- package/dist/esm/client/docs/lib/inspection/acornParser.js +213 -0
- package/dist/esm/client/docs/lib/inspection/index.js +2 -0
- package/dist/esm/client/docs/lib/inspection/inspectValue.js +16 -0
- package/dist/esm/client/docs/lib/inspection/types.js +12 -0
- package/dist/esm/client/docs/lib/isHtmlTag.js +6 -0
- package/dist/esm/client/docs/propTypes/createType.js +449 -0
- package/dist/esm/client/docs/propTypes/generateFuncSignature.js +62 -0
- package/dist/esm/client/docs/propTypes/handleProp.js +39 -0
- package/dist/esm/client/docs/propTypes/rawDefaultPropResolvers.js +32 -0
- package/dist/esm/client/docs/propTypes/sortProps.js +24 -0
- package/dist/esm/client/docs/react-argtypes.stories.js +97 -0
- package/dist/esm/client/docs/typeScript/handleProp.js +27 -0
- package/dist/esm/client/index.js +1 -0
- package/dist/esm/client/preview/index.js +1 -1
- package/dist/esm/client/preview/render.js +106 -28
- package/dist/esm/client/preview/types-6-0.js +1 -0
- package/dist/esm/client/preview/types-6-3.js +3 -1
- package/dist/esm/client/preview/types-7-0.js +1 -0
- package/dist/esm/client/preview/types.js +1 -0
- package/dist/esm/client/testing/index.js +96 -0
- package/dist/esm/demo/Welcome.js +7 -4
- package/dist/{modern/server/framework-preset-react-docgen.js → esm/server/framework-preset-react-docs.js} +15 -11
- package/dist/esm/server/framework-preset-react-dom-hack.js +21 -0
- package/dist/esm/server/framework-preset-react.js +2 -2
- package/dist/esm/server/preset.js +2 -2
- package/dist/modern/client/docs/config.js +14 -0
- package/dist/modern/client/docs/extractArgTypes.js +38 -0
- package/dist/modern/client/docs/extractProps.js +42 -0
- package/dist/modern/client/docs/jsxDecorator.js +177 -0
- package/dist/modern/client/docs/lib/captions.js +6 -0
- package/dist/modern/client/docs/lib/componentTypes.js +2 -0
- package/dist/modern/client/docs/lib/defaultValues/createDefaultValue.js +72 -0
- package/dist/modern/client/docs/lib/defaultValues/createFromRawDefaultProp.js +181 -0
- package/dist/modern/client/docs/lib/defaultValues/generateArray.js +21 -0
- package/dist/modern/client/docs/lib/defaultValues/generateObject.js +21 -0
- package/dist/modern/client/docs/lib/defaultValues/index.js +2 -0
- package/dist/modern/client/docs/lib/defaultValues/prettyIdentifier.js +24 -0
- package/dist/modern/client/docs/lib/generateCode.js +59 -0
- package/dist/modern/client/docs/lib/index.js +4 -0
- package/dist/modern/client/docs/lib/inspection/acornParser.js +211 -0
- package/dist/modern/client/docs/lib/inspection/index.js +2 -0
- package/dist/modern/client/docs/lib/inspection/inspectValue.js +15 -0
- package/dist/modern/client/docs/lib/inspection/types.js +12 -0
- package/dist/modern/client/docs/lib/isHtmlTag.js +4 -0
- package/dist/modern/client/docs/propTypes/createType.js +446 -0
- package/dist/modern/client/docs/propTypes/generateFuncSignature.js +57 -0
- package/dist/modern/client/docs/propTypes/handleProp.js +39 -0
- package/dist/modern/client/docs/propTypes/rawDefaultPropResolvers.js +31 -0
- package/dist/modern/client/docs/propTypes/sortProps.js +14 -0
- package/dist/modern/client/docs/react-argtypes.stories.js +54 -0
- package/dist/modern/client/docs/typeScript/handleProp.js +28 -0
- package/dist/modern/client/index.js +1 -0
- package/dist/modern/client/preview/index.js +1 -1
- package/dist/modern/client/preview/render.js +51 -6
- package/dist/modern/client/preview/types-6-0.js +1 -0
- package/dist/modern/client/preview/types-6-3.js +3 -1
- package/dist/modern/client/preview/types-7-0.js +1 -0
- package/dist/modern/client/preview/types.js +1 -0
- package/dist/modern/client/testing/index.js +96 -0
- package/dist/modern/demo/Welcome.js +10 -6
- package/dist/{esm/server/framework-preset-react-docgen.js → modern/server/framework-preset-react-docs.js} +15 -11
- package/dist/modern/server/framework-preset-react-dom-hack.js +21 -0
- package/dist/modern/server/framework-preset-react.js +2 -2
- package/dist/modern/server/preset.js +2 -2
- package/dist/ts3.4/client/docs/config.d.ts +13 -0
- package/dist/ts3.4/client/docs/extractArgTypes.d.ts +2 -0
- package/dist/ts3.4/client/docs/extractProps.d.ts +5 -0
- package/dist/ts3.4/client/docs/jsxDecorator.d.ts +23 -0
- package/dist/ts3.4/client/docs/lib/captions.d.ts +6 -0
- package/dist/ts3.4/client/docs/lib/componentTypes.d.ts +2 -0
- package/dist/ts3.4/client/docs/lib/defaultValues/createDefaultValue.d.ts +2 -0
- package/dist/ts3.4/client/docs/lib/defaultValues/createFromRawDefaultProp.d.ts +11 -0
- package/dist/ts3.4/client/docs/lib/defaultValues/generateArray.d.ts +3 -0
- package/dist/ts3.4/client/docs/lib/defaultValues/generateObject.d.ts +3 -0
- package/dist/ts3.4/client/docs/lib/defaultValues/index.d.ts +2 -0
- package/dist/ts3.4/client/docs/lib/defaultValues/prettyIdentifier.d.ts +4 -0
- package/dist/ts3.4/client/docs/lib/generateCode.d.ts +3 -0
- package/dist/ts3.4/client/docs/lib/index.d.ts +4 -0
- package/dist/ts3.4/client/docs/lib/inspection/acornParser.d.ts +7 -0
- package/dist/ts3.4/client/docs/lib/inspection/index.d.ts +2 -0
- package/dist/ts3.4/client/docs/lib/inspection/inspectValue.d.ts +2 -0
- package/dist/ts3.4/client/docs/lib/inspection/types.d.ts +50 -0
- package/dist/ts3.4/client/docs/lib/isHtmlTag.d.ts +1 -0
- package/dist/ts3.4/client/docs/propTypes/createType.d.ts +2 -0
- package/dist/ts3.4/client/docs/propTypes/generateFuncSignature.d.ts +4 -0
- package/dist/ts3.4/client/docs/propTypes/handleProp.d.ts +5 -0
- package/dist/ts3.4/client/docs/propTypes/rawDefaultPropResolvers.d.ts +1 -0
- package/dist/ts3.4/client/docs/propTypes/sortProps.d.ts +4 -0
- package/dist/ts3.4/client/docs/react-argtypes.stories.d.ts +1 -0
- package/dist/ts3.4/client/docs/typeScript/handleProp.d.ts +3 -0
- package/dist/ts3.4/client/index.d.ts +1 -0
- package/dist/ts3.4/client/testing/index.d.ts +84 -0
- package/dist/ts3.4/server/framework-preset-react-docs.d.ts +6 -0
- package/dist/ts3.4/server/framework-preset-react-dom-hack.d.ts +32 -0
- package/dist/ts3.4/server/framework-preset-react.d.ts +1 -46
- package/dist/ts3.4/server/preset.d.ts +1 -1
- package/dist/ts3.9/client/docs/config.d.ts +13 -0
- package/dist/ts3.9/client/docs/extractArgTypes.d.ts +2 -0
- package/dist/ts3.9/client/docs/extractProps.d.ts +5 -0
- package/dist/ts3.9/client/docs/jsxDecorator.d.ts +23 -0
- package/dist/ts3.9/client/docs/lib/captions.d.ts +6 -0
- package/dist/ts3.9/client/docs/lib/componentTypes.d.ts +2 -0
- package/dist/ts3.9/client/docs/lib/defaultValues/createDefaultValue.d.ts +2 -0
- package/dist/ts3.9/client/docs/lib/defaultValues/createFromRawDefaultProp.d.ts +11 -0
- package/dist/ts3.9/client/docs/lib/defaultValues/generateArray.d.ts +3 -0
- package/dist/ts3.9/client/docs/lib/defaultValues/generateObject.d.ts +3 -0
- package/dist/ts3.9/client/docs/lib/defaultValues/index.d.ts +2 -0
- package/dist/ts3.9/client/docs/lib/defaultValues/prettyIdentifier.d.ts +4 -0
- package/dist/ts3.9/client/docs/lib/generateCode.d.ts +3 -0
- package/dist/ts3.9/client/docs/lib/index.d.ts +4 -0
- package/dist/ts3.9/client/docs/lib/inspection/acornParser.d.ts +7 -0
- package/dist/ts3.9/client/docs/lib/inspection/index.d.ts +2 -0
- package/dist/ts3.9/client/docs/lib/inspection/inspectValue.d.ts +2 -0
- package/dist/ts3.9/client/docs/lib/inspection/types.d.ts +50 -0
- package/dist/ts3.9/client/docs/lib/isHtmlTag.d.ts +1 -0
- package/dist/ts3.9/client/docs/propTypes/createType.d.ts +2 -0
- package/dist/ts3.9/client/docs/propTypes/generateFuncSignature.d.ts +4 -0
- package/dist/ts3.9/client/docs/propTypes/handleProp.d.ts +5 -0
- package/dist/ts3.9/client/docs/propTypes/rawDefaultPropResolvers.d.ts +1 -0
- package/dist/ts3.9/client/docs/propTypes/sortProps.d.ts +4 -0
- package/dist/ts3.9/client/docs/react-argtypes.stories.d.ts +1 -0
- package/dist/ts3.9/client/docs/typeScript/handleProp.d.ts +3 -0
- package/dist/ts3.9/client/index.d.ts +1 -0
- package/dist/ts3.9/client/preview/render.d.ts +1 -1
- package/dist/ts3.9/client/preview/types-6-0.d.ts +3 -3
- package/dist/ts3.9/client/preview/types-7-0.d.ts +2 -2
- package/dist/ts3.9/client/testing/index.d.ts +84 -0
- package/dist/ts3.9/server/framework-preset-cra.d.ts +1 -1
- package/dist/ts3.9/server/framework-preset-react-docs.d.ts +6 -0
- package/dist/ts3.9/server/framework-preset-react-dom-hack.d.ts +32 -0
- package/dist/ts3.9/server/framework-preset-react.d.ts +1 -46
- package/dist/ts3.9/server/options.d.ts +1 -1
- package/dist/ts3.9/server/preset.d.ts +2 -2
- package/package.json +38 -14
- package/types/index.ts +9 -1
- package/dist/cjs/typings.d.js +0 -1
- package/dist/esm/typings.d.js +0 -0
- package/dist/modern/typings.d.js +0 -0
- package/dist/ts3.4/server/framework-preset-react-docgen.d.ts +0 -5
- package/dist/ts3.9/server/framework-preset-react-docgen.d.ts +0 -5
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.composeStories = composeStories;
|
|
7
|
+
exports.composeStory = composeStory;
|
|
8
|
+
exports.setGlobalConfig = setGlobalConfig;
|
|
9
|
+
exports.setProjectAnnotations = setProjectAnnotations;
|
|
10
|
+
|
|
11
|
+
var _store = require("@storybook/store");
|
|
12
|
+
|
|
13
|
+
var _clientLogger = require("@storybook/client-logger");
|
|
14
|
+
|
|
15
|
+
var _render = require("../preview/render");
|
|
16
|
+
|
|
17
|
+
/** Function that sets the globalConfig of your storybook. The global config is the preview module of your .storybook folder.
|
|
18
|
+
*
|
|
19
|
+
* 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`.
|
|
20
|
+
*
|
|
21
|
+
* Example:
|
|
22
|
+
*```jsx
|
|
23
|
+
* // setup.js (for jest)
|
|
24
|
+
* import { setProjectAnnotations } from '@storybook/react';
|
|
25
|
+
* import * as projectAnnotations from './.storybook/preview';
|
|
26
|
+
*
|
|
27
|
+
* setProjectAnnotations(projectAnnotations);
|
|
28
|
+
*```
|
|
29
|
+
*
|
|
30
|
+
* @param projectAnnotations - e.g. (import * as projectAnnotations from '../.storybook/preview')
|
|
31
|
+
*/
|
|
32
|
+
function setProjectAnnotations(projectAnnotations) {
|
|
33
|
+
(0, _store.setProjectAnnotations)(projectAnnotations);
|
|
34
|
+
}
|
|
35
|
+
/** Preserved for users migrating from `@storybook/testing-react`.
|
|
36
|
+
*
|
|
37
|
+
* @deprecated Use setProjectAnnotations instead
|
|
38
|
+
*/
|
|
39
|
+
|
|
40
|
+
|
|
41
|
+
function setGlobalConfig(projectAnnotations) {
|
|
42
|
+
_clientLogger.once.warn("setGlobalConfig is deprecated. Use setProjectAnnotations instead.");
|
|
43
|
+
|
|
44
|
+
setProjectAnnotations(projectAnnotations);
|
|
45
|
+
} // This will not be necessary once we have auto preset loading
|
|
46
|
+
|
|
47
|
+
|
|
48
|
+
var defaultProjectAnnotations = {
|
|
49
|
+
render: _render.render
|
|
50
|
+
};
|
|
51
|
+
/**
|
|
52
|
+
* Function that will receive a story along with meta (e.g. a default export from a .stories file)
|
|
53
|
+
* and optionally projectAnnotations e.g. (import * from '../.storybook/preview)
|
|
54
|
+
* and will return a composed component that has all args/parameters/decorators/etc combined and applied to it.
|
|
55
|
+
*
|
|
56
|
+
*
|
|
57
|
+
* It's very useful for reusing a story in scenarios outside of Storybook like unit testing.
|
|
58
|
+
*
|
|
59
|
+
* Example:
|
|
60
|
+
*```jsx
|
|
61
|
+
* import { render } from '@testing-library/react';
|
|
62
|
+
* import { composeStory } from '@storybook/react';
|
|
63
|
+
* import Meta, { Primary as PrimaryStory } from './Button.stories';
|
|
64
|
+
*
|
|
65
|
+
* const Primary = composeStory(PrimaryStory, Meta);
|
|
66
|
+
*
|
|
67
|
+
* test('renders primary button with Hello World', () => {
|
|
68
|
+
* const { getByText } = render(<Primary>Hello world</Primary>);
|
|
69
|
+
* expect(getByText(/Hello world/i)).not.toBeNull();
|
|
70
|
+
* });
|
|
71
|
+
*```
|
|
72
|
+
*
|
|
73
|
+
* @param story
|
|
74
|
+
* @param componentAnnotations - e.g. (import Meta from './Button.stories')
|
|
75
|
+
* @param [projectAnnotations] - e.g. (import * as projectAnnotations from '../.storybook/preview') this can be applied automatically if you use `setProjectAnnotations` in your setup files.
|
|
76
|
+
* @param [exportsName] - in case your story does not contain a name and you want it to have a name.
|
|
77
|
+
*/
|
|
78
|
+
|
|
79
|
+
function composeStory(story, componentAnnotations, projectAnnotations, exportsName) {
|
|
80
|
+
return (0, _store.composeStory)(story, componentAnnotations, projectAnnotations, defaultProjectAnnotations, exportsName);
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* Function that will receive a stories import (e.g. `import * as stories from './Button.stories'`)
|
|
84
|
+
* and optionally projectAnnotations (e.g. `import * from '../.storybook/preview`)
|
|
85
|
+
* 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.
|
|
86
|
+
*
|
|
87
|
+
*
|
|
88
|
+
* It's very useful for reusing stories in scenarios outside of Storybook like unit testing.
|
|
89
|
+
*
|
|
90
|
+
* Example:
|
|
91
|
+
*```jsx
|
|
92
|
+
* import { render } from '@testing-library/react';
|
|
93
|
+
* import { composeStories } from '@storybook/react';
|
|
94
|
+
* import * as stories from './Button.stories';
|
|
95
|
+
*
|
|
96
|
+
* const { Primary, Secondary } = composeStories(stories);
|
|
97
|
+
*
|
|
98
|
+
* test('renders primary button with Hello World', () => {
|
|
99
|
+
* const { getByText } = render(<Primary>Hello world</Primary>);
|
|
100
|
+
* expect(getByText(/Hello world/i)).not.toBeNull();
|
|
101
|
+
* });
|
|
102
|
+
*```
|
|
103
|
+
*
|
|
104
|
+
* @param csfExports - e.g. (import * as stories from './Button.stories')
|
|
105
|
+
* @param [projectAnnotations] - e.g. (import * as projectAnnotations from '../.storybook/preview') this can be applied automatically if you use `setProjectAnnotations` in your setup files.
|
|
106
|
+
*/
|
|
107
|
+
|
|
108
|
+
|
|
109
|
+
function composeStories(csfExports, projectAnnotations) {
|
|
110
|
+
var composedStories = (0, _store.composeStories)(csfExports, projectAnnotations, composeStory);
|
|
111
|
+
return composedStories;
|
|
112
|
+
}
|
package/dist/cjs/demo/Welcome.js
CHANGED
|
@@ -13,6 +13,10 @@ require("core-js/modules/es.object.assign.js");
|
|
|
13
13
|
|
|
14
14
|
var _react = _interopRequireDefault(require("react"));
|
|
15
15
|
|
|
16
|
+
var _excluded = ["children"],
|
|
17
|
+
_excluded2 = ["children", "href", "target", "rel"],
|
|
18
|
+
_excluded3 = ["children", "onClick"];
|
|
19
|
+
|
|
16
20
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
17
21
|
|
|
18
22
|
function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
|
|
@@ -35,7 +39,7 @@ var Main = function Main(props) {
|
|
|
35
39
|
|
|
36
40
|
var Title = function Title(_ref) {
|
|
37
41
|
var children = _ref.children,
|
|
38
|
-
props = _objectWithoutProperties(_ref,
|
|
42
|
+
props = _objectWithoutProperties(_ref, _excluded);
|
|
39
43
|
|
|
40
44
|
return /*#__PURE__*/_react.default.createElement("h1", props, children);
|
|
41
45
|
};
|
|
@@ -67,7 +71,7 @@ var Link = function Link(_ref2) {
|
|
|
67
71
|
href = _ref2.href,
|
|
68
72
|
target = _ref2.target,
|
|
69
73
|
rel = _ref2.rel,
|
|
70
|
-
props = _objectWithoutProperties(_ref2,
|
|
74
|
+
props = _objectWithoutProperties(_ref2, _excluded2);
|
|
71
75
|
|
|
72
76
|
return /*#__PURE__*/_react.default.createElement("a", _extends({
|
|
73
77
|
href: href
|
|
@@ -86,7 +90,7 @@ var Link = function Link(_ref2) {
|
|
|
86
90
|
var NavButton = function NavButton(_ref3) {
|
|
87
91
|
var children = _ref3.children,
|
|
88
92
|
onClick = _ref3.onClick,
|
|
89
|
-
props = _objectWithoutProperties(_ref3,
|
|
93
|
+
props = _objectWithoutProperties(_ref3, _excluded3);
|
|
90
94
|
|
|
91
95
|
return /*#__PURE__*/_react.default.createElement("button", _extends({}, props, {
|
|
92
96
|
type: "button",
|
|
@@ -4,24 +4,28 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.babel = babel;
|
|
7
|
+
exports.previewAnnotations = void 0;
|
|
7
8
|
exports.webpackFinal = webpackFinal;
|
|
8
9
|
|
|
9
10
|
require("core-js/modules/es.promise.js");
|
|
10
11
|
|
|
12
|
+
var _coreCommon = require("@storybook/core-common");
|
|
13
|
+
|
|
11
14
|
var _reactDocgenTypescriptPlugin = _interopRequireDefault(require("@storybook/react-docgen-typescript-plugin"));
|
|
12
15
|
|
|
16
|
+
var _docsTools = require("@storybook/docs-tools");
|
|
17
|
+
|
|
13
18
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
14
19
|
|
|
15
|
-
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object);
|
|
20
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
16
21
|
|
|
17
|
-
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]
|
|
22
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
18
23
|
|
|
19
24
|
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
20
25
|
|
|
21
|
-
async function babel(config, {
|
|
22
|
-
|
|
23
|
-
})
|
|
24
|
-
var typescriptOptions = await presets.apply('typescript', {});
|
|
26
|
+
async function babel(config, options) {
|
|
27
|
+
if (!(0, _docsTools.hasDocsOrControls)(options)) return config;
|
|
28
|
+
var typescriptOptions = await options.presets.apply('typescript', {});
|
|
25
29
|
var reactDocgen = typescriptOptions.reactDocgen;
|
|
26
30
|
|
|
27
31
|
if (typeof reactDocgen !== 'string') {
|
|
@@ -38,10 +42,9 @@ async function babel(config, {
|
|
|
38
42
|
});
|
|
39
43
|
}
|
|
40
44
|
|
|
41
|
-
async function webpackFinal(config, {
|
|
42
|
-
|
|
43
|
-
})
|
|
44
|
-
var typescriptOptions = await presets.apply('typescript', {});
|
|
45
|
+
async function webpackFinal(config, options) {
|
|
46
|
+
if (!(0, _docsTools.hasDocsOrControls)(options)) return config;
|
|
47
|
+
var typescriptOptions = await options.presets.apply('typescript', {});
|
|
45
48
|
var reactDocgen = typescriptOptions.reactDocgen,
|
|
46
49
|
reactDocgenTypescriptOptions = typescriptOptions.reactDocgenTypescriptOptions;
|
|
47
50
|
|
|
@@ -55,4 +58,11 @@ async function webpackFinal(config, {
|
|
|
55
58
|
savePropValueAsString: true
|
|
56
59
|
}))]
|
|
57
60
|
});
|
|
58
|
-
}
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
var previewAnnotations = function (entry = [], options) {
|
|
64
|
+
if (!(0, _docsTools.hasDocsOrControls)(options)) return entry;
|
|
65
|
+
return [...entry, (0, _coreCommon.findDistEsm)(__dirname, 'client/docs/config')];
|
|
66
|
+
};
|
|
67
|
+
|
|
68
|
+
exports.previewAnnotations = previewAnnotations;
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.webpackFinal = webpackFinal;
|
|
7
|
+
|
|
8
|
+
require("core-js/modules/es.promise.js");
|
|
9
|
+
|
|
10
|
+
var _fsExtra = require("fs-extra");
|
|
11
|
+
|
|
12
|
+
var _webpack = require("webpack");
|
|
13
|
+
|
|
14
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
15
|
+
|
|
16
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
17
|
+
|
|
18
|
+
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
19
|
+
|
|
20
|
+
// this is a hack to allow importing react-dom/client even when it's not available
|
|
21
|
+
// this should be removed once we drop support for react-dom < 18
|
|
22
|
+
async function webpackFinal(config) {
|
|
23
|
+
var reactDomPkg = await (0, _fsExtra.readJSON)(require.resolve('react-dom/package.json'));
|
|
24
|
+
return _objectSpread(_objectSpread({}, config), {}, {
|
|
25
|
+
plugins: [...config.plugins, reactDomPkg.version.startsWith('18') || reactDomPkg.version.startsWith('0.0.0') ? null : new _webpack.IgnorePlugin({
|
|
26
|
+
resourceRegExp: /react-dom\/client$/,
|
|
27
|
+
contextRegExp: /(app\/react|app\\react|@storybook\/react|@storybook\\react)/ // TODO this needs to work for both in our MONOREPO and in the user's NODE_MODULES
|
|
28
|
+
|
|
29
|
+
})].filter(Boolean)
|
|
30
|
+
});
|
|
31
|
+
}
|
|
@@ -17,9 +17,9 @@ var _nodeLogger = require("@storybook/node-logger");
|
|
|
17
17
|
|
|
18
18
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
19
19
|
|
|
20
|
-
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object);
|
|
20
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
21
21
|
|
|
22
|
-
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]
|
|
22
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
23
23
|
|
|
24
24
|
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
25
25
|
|
|
@@ -3,14 +3,14 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.
|
|
6
|
+
exports.previewAnnotations = exports.addons = void 0;
|
|
7
7
|
|
|
8
8
|
var _coreCommon = require("@storybook/core-common");
|
|
9
9
|
|
|
10
|
-
var
|
|
10
|
+
var previewAnnotations = function (entries = []) {
|
|
11
11
|
return [...entries, (0, _coreCommon.findDistEsm)(__dirname, 'client/preview/config')];
|
|
12
12
|
};
|
|
13
13
|
|
|
14
|
-
exports.
|
|
15
|
-
var addons = [require.resolve('./framework-preset-react'), require.resolve('./framework-preset-cra'), require.resolve('./framework-preset-react-
|
|
14
|
+
exports.previewAnnotations = previewAnnotations;
|
|
15
|
+
var addons = [require.resolve('./framework-preset-react'), require.resolve('./framework-preset-react-dom-hack'), require.resolve('./framework-preset-cra'), require.resolve('./framework-preset-react-docs')];
|
|
16
16
|
exports.addons = addons;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { extractComponentDescription, enhanceArgTypes } from '@storybook/docs-tools';
|
|
2
|
+
import { extractArgTypes } from './extractArgTypes';
|
|
3
|
+
import { jsxDecorator } from './jsxDecorator';
|
|
4
|
+
export var parameters = {
|
|
5
|
+
docs: {
|
|
6
|
+
inlineStories: true,
|
|
7
|
+
// NOTE: that the result is a react element. Hooks support is provided by the outer code.
|
|
8
|
+
prepareForInline: function prepareForInline(storyFn) {
|
|
9
|
+
return storyFn();
|
|
10
|
+
},
|
|
11
|
+
extractArgTypes: extractArgTypes,
|
|
12
|
+
extractComponentDescription: extractComponentDescription
|
|
13
|
+
}
|
|
14
|
+
};
|
|
15
|
+
export var decorators = [jsxDecorator];
|
|
16
|
+
export var argTypesEnhancers = [enhanceArgTypes];
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import "core-js/modules/es.object.to-string.js";
|
|
2
|
+
import "core-js/modules/es.function.name.js";
|
|
3
|
+
import "core-js/modules/es.symbol.js";
|
|
4
|
+
import "core-js/modules/es.symbol.description.js";
|
|
5
|
+
import "core-js/modules/es.object.assign.js";
|
|
6
|
+
import { extractProps } from './extractProps';
|
|
7
|
+
export var extractArgTypes = function extractArgTypes(component) {
|
|
8
|
+
if (component) {
|
|
9
|
+
var _extractProps = extractProps(component),
|
|
10
|
+
rows = _extractProps.rows;
|
|
11
|
+
|
|
12
|
+
if (rows) {
|
|
13
|
+
return rows.reduce(function (acc, row) {
|
|
14
|
+
var name = row.name,
|
|
15
|
+
description = row.description,
|
|
16
|
+
type = row.type,
|
|
17
|
+
sbType = row.sbType,
|
|
18
|
+
defaultSummary = row.defaultValue,
|
|
19
|
+
jsDocTags = row.jsDocTags,
|
|
20
|
+
required = row.required;
|
|
21
|
+
acc[name] = {
|
|
22
|
+
name: name,
|
|
23
|
+
description: description,
|
|
24
|
+
type: Object.assign({
|
|
25
|
+
required: required
|
|
26
|
+
}, sbType),
|
|
27
|
+
table: {
|
|
28
|
+
type: type,
|
|
29
|
+
jsDocTags: jsDocTags,
|
|
30
|
+
defaultValue: defaultSummary
|
|
31
|
+
}
|
|
32
|
+
};
|
|
33
|
+
return acc;
|
|
34
|
+
}, {});
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
return null;
|
|
39
|
+
};
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import "core-js/modules/es.array.iterator.js";
|
|
2
|
+
import "core-js/modules/es.map.js";
|
|
3
|
+
import "core-js/modules/es.object.to-string.js";
|
|
4
|
+
import "core-js/modules/es.string.iterator.js";
|
|
5
|
+
import "core-js/modules/web.dom-collections.iterator.js";
|
|
6
|
+
import "core-js/modules/web.dom-collections.for-each.js";
|
|
7
|
+
import "core-js/modules/es.object.keys.js";
|
|
8
|
+
import "core-js/modules/es.array.map.js";
|
|
9
|
+
import PropTypes from 'prop-types';
|
|
10
|
+
import { hasDocgen, extractComponentProps, TypeSystem } from '@storybook/docs-tools';
|
|
11
|
+
import { enhancePropTypesProps } from './propTypes/handleProp';
|
|
12
|
+
import { enhanceTypeScriptProps } from './typeScript/handleProp';
|
|
13
|
+
import { isMemo } from './lib'; // FIXME
|
|
14
|
+
|
|
15
|
+
var propTypesMap = new Map();
|
|
16
|
+
Object.keys(PropTypes).forEach(function (typeName) {
|
|
17
|
+
// @ts-ignore
|
|
18
|
+
var type = PropTypes[typeName];
|
|
19
|
+
propTypesMap.set(type, typeName);
|
|
20
|
+
propTypesMap.set(type.isRequired, typeName);
|
|
21
|
+
});
|
|
22
|
+
|
|
23
|
+
function getPropDefs(component, section) {
|
|
24
|
+
var processedComponent = component; // eslint-disable-next-line react/forbid-foreign-prop-types
|
|
25
|
+
|
|
26
|
+
if (!hasDocgen(component) && !component.propTypes && isMemo(component)) {
|
|
27
|
+
processedComponent = component.type;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
var extractedProps = extractComponentProps(processedComponent, section);
|
|
31
|
+
|
|
32
|
+
if (extractedProps.length === 0) {
|
|
33
|
+
return [];
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
switch (extractedProps[0].typeSystem) {
|
|
37
|
+
case TypeSystem.JAVASCRIPT:
|
|
38
|
+
return enhancePropTypesProps(extractedProps, component);
|
|
39
|
+
|
|
40
|
+
case TypeSystem.TYPESCRIPT:
|
|
41
|
+
return enhanceTypeScriptProps(extractedProps);
|
|
42
|
+
|
|
43
|
+
default:
|
|
44
|
+
return extractedProps.map(function (x) {
|
|
45
|
+
return x.propDef;
|
|
46
|
+
});
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
export var extractProps = function extractProps(component) {
|
|
51
|
+
return {
|
|
52
|
+
rows: getPropDefs(component, 'props')
|
|
53
|
+
};
|
|
54
|
+
};
|
|
@@ -0,0 +1,218 @@
|
|
|
1
|
+
import "core-js/modules/es.array.slice.js";
|
|
2
|
+
import "core-js/modules/es.object.freeze.js";
|
|
3
|
+
import "core-js/modules/es.object.keys.js";
|
|
4
|
+
import "core-js/modules/es.symbol.js";
|
|
5
|
+
import "core-js/modules/es.symbol.description.js";
|
|
6
|
+
import "core-js/modules/es.symbol.iterator.js";
|
|
7
|
+
import "core-js/modules/es.array.iterator.js";
|
|
8
|
+
import "core-js/modules/es.string.iterator.js";
|
|
9
|
+
import "core-js/modules/web.dom-collections.iterator.js";
|
|
10
|
+
import "core-js/modules/es.array.from.js";
|
|
11
|
+
var _excluded = ["mdxType", "originalType", "children"];
|
|
12
|
+
|
|
13
|
+
var _templateObject;
|
|
14
|
+
|
|
15
|
+
function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
|
|
16
|
+
|
|
17
|
+
function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
18
|
+
|
|
19
|
+
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
|
20
|
+
|
|
21
|
+
function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
|
|
22
|
+
|
|
23
|
+
function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
|
|
24
|
+
|
|
25
|
+
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
|
|
26
|
+
|
|
27
|
+
function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
|
|
28
|
+
|
|
29
|
+
function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
|
|
30
|
+
|
|
31
|
+
import "core-js/modules/es.function.name.js";
|
|
32
|
+
import "core-js/modules/es.object.assign.js";
|
|
33
|
+
import "core-js/modules/es.array.join.js";
|
|
34
|
+
import "core-js/modules/es.array.map.js";
|
|
35
|
+
import "core-js/modules/es.object.to-string.js";
|
|
36
|
+
import "core-js/modules/es.regexp.to-string.js";
|
|
37
|
+
import "core-js/modules/es.regexp.exec.js";
|
|
38
|
+
import "core-js/modules/es.string.match.js";
|
|
39
|
+
import "core-js/modules/web.dom-collections.for-each.js";
|
|
40
|
+
import "core-js/modules/es.string.replace.js";
|
|
41
|
+
import "core-js/modules/es.array.concat.js";
|
|
42
|
+
|
|
43
|
+
function _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }
|
|
44
|
+
|
|
45
|
+
import React, { createElement } from 'react';
|
|
46
|
+
import reactElementToJSXString from 'react-element-to-jsx-string';
|
|
47
|
+
import dedent from 'ts-dedent';
|
|
48
|
+
import deprecate from 'util-deprecate';
|
|
49
|
+
import { addons, useEffect } from '@storybook/addons';
|
|
50
|
+
import { SourceType, SNIPPET_RENDERED, getDocgenSection } from '@storybook/docs-tools';
|
|
51
|
+
import { logger } from '@storybook/client-logger';
|
|
52
|
+
import { isMemo, isForwardRef } from './lib';
|
|
53
|
+
|
|
54
|
+
/** Run the user supplied onBeforeRender function if it exists */
|
|
55
|
+
var applyBeforeRender = function applyBeforeRender(domString, options) {
|
|
56
|
+
if (typeof options.onBeforeRender !== 'function') {
|
|
57
|
+
return domString;
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
var deprecatedOnBeforeRender = deprecate(options.onBeforeRender, dedent(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n StoryFn.parameters.jsx.onBeforeRender was deprecated.\n Prefer StoryFn.parameters.jsx.transformSource instead.\n See https://github.com/storybookjs/storybook/blob/next/MIGRATION.md#deprecated-onbeforerender for details.\n "]))));
|
|
61
|
+
return deprecatedOnBeforeRender(domString);
|
|
62
|
+
};
|
|
63
|
+
/** Run the user supplied transformSource function if it exists */
|
|
64
|
+
|
|
65
|
+
|
|
66
|
+
var applyTransformSource = function applyTransformSource(domString, options, context) {
|
|
67
|
+
if (typeof options.transformSource !== 'function') {
|
|
68
|
+
return domString;
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
return options.transformSource(domString, context);
|
|
72
|
+
};
|
|
73
|
+
/** Apply the users parameters and render the jsx for a story */
|
|
74
|
+
|
|
75
|
+
|
|
76
|
+
export var renderJsx = function renderJsx(code, options) {
|
|
77
|
+
if (typeof code === 'undefined') {
|
|
78
|
+
logger.warn('Too many skip or undefined component');
|
|
79
|
+
return null;
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
var renderedJSX = code;
|
|
83
|
+
var Type = renderedJSX.type;
|
|
84
|
+
|
|
85
|
+
for (var i = 0; i < options.skip; i += 1) {
|
|
86
|
+
if (typeof renderedJSX === 'undefined') {
|
|
87
|
+
logger.warn('Cannot skip undefined element');
|
|
88
|
+
return null;
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
if (React.Children.count(renderedJSX) > 1) {
|
|
92
|
+
logger.warn('Trying to skip an array of elements');
|
|
93
|
+
return null;
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
if (typeof renderedJSX.props.children === 'undefined') {
|
|
97
|
+
logger.warn('Not enough children to skip elements.');
|
|
98
|
+
|
|
99
|
+
if (typeof renderedJSX.type === 'function' && renderedJSX.type.name === '') {
|
|
100
|
+
renderedJSX = /*#__PURE__*/React.createElement(Type, renderedJSX.props);
|
|
101
|
+
}
|
|
102
|
+
} else if (typeof renderedJSX.props.children === 'function') {
|
|
103
|
+
renderedJSX = renderedJSX.props.children();
|
|
104
|
+
} else {
|
|
105
|
+
renderedJSX = renderedJSX.props.children;
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
var displayNameDefaults = typeof options.displayName === 'string' ? {
|
|
110
|
+
showFunctions: true,
|
|
111
|
+
displayName: function displayName() {
|
|
112
|
+
return options.displayName;
|
|
113
|
+
}
|
|
114
|
+
} : {
|
|
115
|
+
// To get exotic component names resolving properly
|
|
116
|
+
displayName: function displayName(el) {
|
|
117
|
+
return el.type.displayName || getDocgenSection(el.type, 'displayName') || (el.type.name !== '_default' ? el.type.name : null) || (typeof el.type === 'function' ? 'No Display Name' : null) || (isForwardRef(el.type) ? el.type.render.name : null) || (isMemo(el.type) ? el.type.type.name : null) || el.type;
|
|
118
|
+
}
|
|
119
|
+
};
|
|
120
|
+
var filterDefaults = {
|
|
121
|
+
filterProps: function filterProps(value, key) {
|
|
122
|
+
return value !== undefined;
|
|
123
|
+
}
|
|
124
|
+
};
|
|
125
|
+
var opts = Object.assign({}, displayNameDefaults, filterDefaults, options);
|
|
126
|
+
var result = React.Children.map(code, function (c) {
|
|
127
|
+
// @ts-ignore FIXME: workaround react-element-to-jsx-string
|
|
128
|
+
var child = typeof c === 'number' ? c.toString() : c;
|
|
129
|
+
var string = applyBeforeRender(reactElementToJSXString(child, opts), options);
|
|
130
|
+
|
|
131
|
+
if (string.indexOf('"') > -1) {
|
|
132
|
+
var matches = string.match(/\S+=\\"([^"]*)\\"/g);
|
|
133
|
+
|
|
134
|
+
if (matches) {
|
|
135
|
+
matches.forEach(function (match) {
|
|
136
|
+
string = string.replace(match, match.replace(/"/g, "'"));
|
|
137
|
+
});
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
return string;
|
|
142
|
+
}).join('\n');
|
|
143
|
+
return result.replace(/function\s+noRefCheck\(\)\s+\{\}/, '() => {}');
|
|
144
|
+
};
|
|
145
|
+
var defaultOpts = {
|
|
146
|
+
skip: 0,
|
|
147
|
+
showFunctions: false,
|
|
148
|
+
enableBeautify: true,
|
|
149
|
+
showDefaultProps: false
|
|
150
|
+
};
|
|
151
|
+
export var skipJsxRender = function skipJsxRender(context) {
|
|
152
|
+
var _context$parameters$d;
|
|
153
|
+
|
|
154
|
+
var sourceParams = context === null || context === void 0 ? void 0 : (_context$parameters$d = context.parameters.docs) === null || _context$parameters$d === void 0 ? void 0 : _context$parameters$d.source;
|
|
155
|
+
var isArgsStory = context === null || context === void 0 ? void 0 : context.parameters.__isArgsStory; // always render if the user forces it
|
|
156
|
+
|
|
157
|
+
if ((sourceParams === null || sourceParams === void 0 ? void 0 : sourceParams.type) === SourceType.DYNAMIC) {
|
|
158
|
+
return false;
|
|
159
|
+
} // never render if the user is forcing the block to render code, or
|
|
160
|
+
// if the user provides code, or if it's not an args story.
|
|
161
|
+
|
|
162
|
+
|
|
163
|
+
return !isArgsStory || (sourceParams === null || sourceParams === void 0 ? void 0 : sourceParams.code) || (sourceParams === null || sourceParams === void 0 ? void 0 : sourceParams.type) === SourceType.CODE;
|
|
164
|
+
};
|
|
165
|
+
|
|
166
|
+
var isMdx = function isMdx(node) {
|
|
167
|
+
var _node$type, _node$props;
|
|
168
|
+
|
|
169
|
+
return ((_node$type = node.type) === null || _node$type === void 0 ? void 0 : _node$type.displayName) === 'MDXCreateElement' && !!((_node$props = node.props) !== null && _node$props !== void 0 && _node$props.mdxType);
|
|
170
|
+
};
|
|
171
|
+
|
|
172
|
+
var mdxToJsx = function mdxToJsx(node) {
|
|
173
|
+
if (!isMdx(node)) return node;
|
|
174
|
+
|
|
175
|
+
var _node$props2 = node.props,
|
|
176
|
+
mdxType = _node$props2.mdxType,
|
|
177
|
+
originalType = _node$props2.originalType,
|
|
178
|
+
children = _node$props2.children,
|
|
179
|
+
rest = _objectWithoutProperties(_node$props2, _excluded);
|
|
180
|
+
|
|
181
|
+
var jsxChildren = [];
|
|
182
|
+
|
|
183
|
+
if (children) {
|
|
184
|
+
var array = Array.isArray(children) ? children : [children];
|
|
185
|
+
jsxChildren = array.map(mdxToJsx);
|
|
186
|
+
}
|
|
187
|
+
|
|
188
|
+
return /*#__PURE__*/createElement.apply(void 0, [originalType, rest].concat(_toConsumableArray(jsxChildren)));
|
|
189
|
+
};
|
|
190
|
+
|
|
191
|
+
export var jsxDecorator = function jsxDecorator(storyFn, context) {
|
|
192
|
+
var _context$parameters$d2, _context$parameters$d3;
|
|
193
|
+
|
|
194
|
+
var channel = addons.getChannel();
|
|
195
|
+
var skip = skipJsxRender(context);
|
|
196
|
+
var story = storyFn();
|
|
197
|
+
var jsx = '';
|
|
198
|
+
useEffect(function () {
|
|
199
|
+
if (!skip) channel.emit(SNIPPET_RENDERED, (context || {}).id, jsx);
|
|
200
|
+
}); // We only need to render JSX if the source block is actually going to
|
|
201
|
+
// consume it. Otherwise it's just slowing us down.
|
|
202
|
+
|
|
203
|
+
if (skip) {
|
|
204
|
+
return story;
|
|
205
|
+
}
|
|
206
|
+
|
|
207
|
+
var options = Object.assign({}, defaultOpts, (context === null || context === void 0 ? void 0 : context.parameters.jsx) || {}); // Exclude decorators from source code snippet by default
|
|
208
|
+
|
|
209
|
+
var storyJsx = context !== null && context !== void 0 && (_context$parameters$d2 = context.parameters.docs) !== null && _context$parameters$d2 !== void 0 && (_context$parameters$d3 = _context$parameters$d2.source) !== null && _context$parameters$d3 !== void 0 && _context$parameters$d3.excludeDecorators ? context.originalStoryFn(context.args, context) : story;
|
|
210
|
+
var sourceJsx = mdxToJsx(storyJsx);
|
|
211
|
+
var rendered = renderJsx(sourceJsx, options);
|
|
212
|
+
|
|
213
|
+
if (rendered) {
|
|
214
|
+
jsx = applyTransformSource(rendered, options, context);
|
|
215
|
+
}
|
|
216
|
+
|
|
217
|
+
return story;
|
|
218
|
+
};
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import "core-js/modules/es.symbol.js";
|
|
2
|
+
import "core-js/modules/es.symbol.description.js";
|
|
3
|
+
import "core-js/modules/es.object.to-string.js";
|
|
4
|
+
export var isMemo = function isMemo(component) {
|
|
5
|
+
return component.$$typeof === Symbol.for('react.memo');
|
|
6
|
+
};
|
|
7
|
+
export var isForwardRef = function isForwardRef(component) {
|
|
8
|
+
return component.$$typeof === Symbol.for('react.forward_ref');
|
|
9
|
+
};
|