@storybook/react 6.5.0-alpha.7 → 6.5.0-beta.1

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.
Files changed (195) hide show
  1. package/README.md +2 -2
  2. package/dist/cjs/client/docs/config.js +29 -0
  3. package/dist/cjs/client/docs/extractArgTypes.js +54 -0
  4. package/dist/cjs/client/docs/extractProps.js +77 -0
  5. package/dist/cjs/client/docs/jsxDecorator.js +277 -0
  6. package/dist/cjs/client/docs/lib/captions.js +18 -0
  7. package/dist/cjs/client/docs/lib/componentTypes.js +24 -0
  8. package/dist/cjs/client/docs/lib/defaultValues/createDefaultValue.js +81 -0
  9. package/dist/cjs/client/docs/lib/defaultValues/createFromRawDefaultProp.js +225 -0
  10. package/dist/cjs/client/docs/lib/defaultValues/generateArray.js +29 -0
  11. package/dist/cjs/client/docs/lib/defaultValues/generateObject.js +29 -0
  12. package/dist/cjs/client/docs/lib/defaultValues/index.js +37 -0
  13. package/dist/cjs/client/docs/lib/defaultValues/prettyIdentifier.js +34 -0
  14. package/dist/cjs/client/docs/lib/generateCode.js +89 -0
  15. package/dist/cjs/client/docs/lib/index.js +63 -0
  16. package/dist/cjs/client/docs/lib/inspection/acornParser.js +254 -0
  17. package/dist/cjs/client/docs/lib/inspection/index.js +37 -0
  18. package/dist/cjs/client/docs/lib/inspection/inspectValue.js +26 -0
  19. package/dist/cjs/client/docs/lib/inspection/types.js +19 -0
  20. package/dist/cjs/client/docs/lib/isHtmlTag.js +18 -0
  21. package/dist/cjs/client/docs/propTypes/createType.js +469 -0
  22. package/dist/cjs/client/docs/propTypes/generateFuncSignature.js +78 -0
  23. package/dist/cjs/client/docs/propTypes/handleProp.js +54 -0
  24. package/dist/cjs/client/docs/propTypes/rawDefaultPropResolvers.js +47 -0
  25. package/dist/cjs/client/docs/propTypes/sortProps.js +37 -0
  26. package/dist/cjs/client/docs/react-argtypes.stories.js +129 -0
  27. package/dist/cjs/client/docs/typeScript/handleProp.js +38 -0
  28. package/dist/cjs/client/index.js +30 -14
  29. package/dist/cjs/client/preview/config.js +1 -1
  30. package/dist/cjs/client/preview/index.js +3 -3
  31. package/dist/cjs/client/preview/render.js +117 -34
  32. package/dist/cjs/client/preview/types-6-0.js +5 -1
  33. package/dist/cjs/client/preview/types-6-3.js +2 -0
  34. package/dist/cjs/client/preview/types-7-0.js +5 -1
  35. package/dist/cjs/client/preview/types.js +5 -1
  36. package/dist/cjs/client/testing/index.js +112 -0
  37. package/dist/cjs/demo/Welcome.js +7 -3
  38. package/dist/cjs/server/{framework-preset-react-docgen.js → framework-preset-react-docs.js} +21 -11
  39. package/dist/cjs/server/framework-preset-react-dom-hack.js +31 -0
  40. package/dist/cjs/server/framework-preset-react.js +2 -2
  41. package/dist/cjs/server/preset.js +4 -4
  42. package/dist/esm/client/docs/config.js +16 -0
  43. package/dist/esm/client/docs/extractArgTypes.js +39 -0
  44. package/dist/esm/client/docs/extractProps.js +54 -0
  45. package/dist/esm/client/docs/jsxDecorator.js +218 -0
  46. package/dist/esm/client/docs/lib/captions.js +6 -0
  47. package/dist/esm/client/docs/lib/componentTypes.js +9 -0
  48. package/dist/esm/client/docs/lib/defaultValues/createDefaultValue.js +67 -0
  49. package/dist/esm/client/docs/lib/defaultValues/createFromRawDefaultProp.js +191 -0
  50. package/dist/esm/client/docs/lib/defaultValues/generateArray.js +19 -0
  51. package/dist/esm/client/docs/lib/defaultValues/generateObject.js +19 -0
  52. package/dist/esm/client/docs/lib/defaultValues/index.js +2 -0
  53. package/dist/esm/client/docs/lib/defaultValues/prettyIdentifier.js +22 -0
  54. package/dist/esm/client/docs/lib/generateCode.js +68 -0
  55. package/dist/esm/client/docs/lib/index.js +4 -0
  56. package/dist/esm/client/docs/lib/inspection/acornParser.js +213 -0
  57. package/dist/esm/client/docs/lib/inspection/index.js +2 -0
  58. package/dist/esm/client/docs/lib/inspection/inspectValue.js +16 -0
  59. package/dist/esm/client/docs/lib/inspection/types.js +12 -0
  60. package/dist/esm/client/docs/lib/isHtmlTag.js +6 -0
  61. package/dist/esm/client/docs/propTypes/createType.js +449 -0
  62. package/dist/esm/client/docs/propTypes/generateFuncSignature.js +62 -0
  63. package/dist/esm/client/docs/propTypes/handleProp.js +39 -0
  64. package/dist/esm/client/docs/propTypes/rawDefaultPropResolvers.js +32 -0
  65. package/dist/esm/client/docs/propTypes/sortProps.js +24 -0
  66. package/dist/esm/client/docs/react-argtypes.stories.js +97 -0
  67. package/dist/esm/client/docs/typeScript/handleProp.js +27 -0
  68. package/dist/esm/client/index.js +1 -0
  69. package/dist/esm/client/preview/index.js +1 -1
  70. package/dist/esm/client/preview/render.js +106 -28
  71. package/dist/esm/client/preview/types-6-0.js +1 -0
  72. package/dist/esm/client/preview/types-6-3.js +3 -1
  73. package/dist/esm/client/preview/types-7-0.js +1 -0
  74. package/dist/esm/client/preview/types.js +1 -0
  75. package/dist/esm/client/testing/index.js +96 -0
  76. package/dist/esm/demo/Welcome.js +7 -4
  77. package/dist/{modern/server/framework-preset-react-docgen.js → esm/server/framework-preset-react-docs.js} +15 -11
  78. package/dist/esm/server/framework-preset-react-dom-hack.js +21 -0
  79. package/dist/esm/server/framework-preset-react.js +2 -2
  80. package/dist/esm/server/preset.js +2 -2
  81. package/dist/modern/client/docs/config.js +14 -0
  82. package/dist/modern/client/docs/extractArgTypes.js +38 -0
  83. package/dist/modern/client/docs/extractProps.js +42 -0
  84. package/dist/modern/client/docs/jsxDecorator.js +177 -0
  85. package/dist/modern/client/docs/lib/captions.js +6 -0
  86. package/dist/modern/client/docs/lib/componentTypes.js +2 -0
  87. package/dist/modern/client/docs/lib/defaultValues/createDefaultValue.js +72 -0
  88. package/dist/modern/client/docs/lib/defaultValues/createFromRawDefaultProp.js +181 -0
  89. package/dist/modern/client/docs/lib/defaultValues/generateArray.js +21 -0
  90. package/dist/modern/client/docs/lib/defaultValues/generateObject.js +21 -0
  91. package/dist/modern/client/docs/lib/defaultValues/index.js +2 -0
  92. package/dist/modern/client/docs/lib/defaultValues/prettyIdentifier.js +24 -0
  93. package/dist/modern/client/docs/lib/generateCode.js +59 -0
  94. package/dist/modern/client/docs/lib/index.js +4 -0
  95. package/dist/modern/client/docs/lib/inspection/acornParser.js +211 -0
  96. package/dist/modern/client/docs/lib/inspection/index.js +2 -0
  97. package/dist/modern/client/docs/lib/inspection/inspectValue.js +15 -0
  98. package/dist/modern/client/docs/lib/inspection/types.js +12 -0
  99. package/dist/modern/client/docs/lib/isHtmlTag.js +4 -0
  100. package/dist/modern/client/docs/propTypes/createType.js +446 -0
  101. package/dist/modern/client/docs/propTypes/generateFuncSignature.js +57 -0
  102. package/dist/modern/client/docs/propTypes/handleProp.js +39 -0
  103. package/dist/modern/client/docs/propTypes/rawDefaultPropResolvers.js +31 -0
  104. package/dist/modern/client/docs/propTypes/sortProps.js +14 -0
  105. package/dist/modern/client/docs/react-argtypes.stories.js +54 -0
  106. package/dist/modern/client/docs/typeScript/handleProp.js +28 -0
  107. package/dist/modern/client/index.js +1 -0
  108. package/dist/modern/client/preview/index.js +1 -1
  109. package/dist/modern/client/preview/render.js +51 -6
  110. package/dist/modern/client/preview/types-6-0.js +1 -0
  111. package/dist/modern/client/preview/types-6-3.js +3 -1
  112. package/dist/modern/client/preview/types-7-0.js +1 -0
  113. package/dist/modern/client/preview/types.js +1 -0
  114. package/dist/modern/client/testing/index.js +96 -0
  115. package/dist/modern/demo/Welcome.js +10 -6
  116. package/dist/{esm/server/framework-preset-react-docgen.js → modern/server/framework-preset-react-docs.js} +15 -11
  117. package/dist/modern/server/framework-preset-react-dom-hack.js +21 -0
  118. package/dist/modern/server/framework-preset-react.js +2 -2
  119. package/dist/modern/server/preset.js +2 -2
  120. package/dist/ts3.4/client/docs/config.d.ts +13 -0
  121. package/dist/ts3.4/client/docs/extractArgTypes.d.ts +2 -0
  122. package/dist/ts3.4/client/docs/extractProps.d.ts +5 -0
  123. package/dist/ts3.4/client/docs/jsxDecorator.d.ts +23 -0
  124. package/dist/ts3.4/client/docs/lib/captions.d.ts +6 -0
  125. package/dist/ts3.4/client/docs/lib/componentTypes.d.ts +2 -0
  126. package/dist/ts3.4/client/docs/lib/defaultValues/createDefaultValue.d.ts +2 -0
  127. package/dist/ts3.4/client/docs/lib/defaultValues/createFromRawDefaultProp.d.ts +11 -0
  128. package/dist/ts3.4/client/docs/lib/defaultValues/generateArray.d.ts +3 -0
  129. package/dist/ts3.4/client/docs/lib/defaultValues/generateObject.d.ts +3 -0
  130. package/dist/ts3.4/client/docs/lib/defaultValues/index.d.ts +2 -0
  131. package/dist/ts3.4/client/docs/lib/defaultValues/prettyIdentifier.d.ts +4 -0
  132. package/dist/ts3.4/client/docs/lib/generateCode.d.ts +3 -0
  133. package/dist/ts3.4/client/docs/lib/index.d.ts +4 -0
  134. package/dist/ts3.4/client/docs/lib/inspection/acornParser.d.ts +7 -0
  135. package/dist/ts3.4/client/docs/lib/inspection/index.d.ts +2 -0
  136. package/dist/ts3.4/client/docs/lib/inspection/inspectValue.d.ts +2 -0
  137. package/dist/ts3.4/client/docs/lib/inspection/types.d.ts +50 -0
  138. package/dist/ts3.4/client/docs/lib/isHtmlTag.d.ts +1 -0
  139. package/dist/ts3.4/client/docs/propTypes/createType.d.ts +2 -0
  140. package/dist/ts3.4/client/docs/propTypes/generateFuncSignature.d.ts +4 -0
  141. package/dist/ts3.4/client/docs/propTypes/handleProp.d.ts +5 -0
  142. package/dist/ts3.4/client/docs/propTypes/rawDefaultPropResolvers.d.ts +1 -0
  143. package/dist/ts3.4/client/docs/propTypes/sortProps.d.ts +4 -0
  144. package/dist/ts3.4/client/docs/react-argtypes.stories.d.ts +1 -0
  145. package/dist/ts3.4/client/docs/typeScript/handleProp.d.ts +3 -0
  146. package/dist/ts3.4/client/index.d.ts +1 -0
  147. package/dist/ts3.4/client/testing/index.d.ts +84 -0
  148. package/dist/ts3.4/server/framework-preset-react-docs.d.ts +6 -0
  149. package/dist/ts3.4/server/framework-preset-react-dom-hack.d.ts +32 -0
  150. package/dist/ts3.4/server/framework-preset-react.d.ts +1 -46
  151. package/dist/ts3.4/server/preset.d.ts +1 -1
  152. package/dist/ts3.9/client/docs/config.d.ts +13 -0
  153. package/dist/ts3.9/client/docs/extractArgTypes.d.ts +2 -0
  154. package/dist/ts3.9/client/docs/extractProps.d.ts +5 -0
  155. package/dist/ts3.9/client/docs/jsxDecorator.d.ts +23 -0
  156. package/dist/ts3.9/client/docs/lib/captions.d.ts +6 -0
  157. package/dist/ts3.9/client/docs/lib/componentTypes.d.ts +2 -0
  158. package/dist/ts3.9/client/docs/lib/defaultValues/createDefaultValue.d.ts +2 -0
  159. package/dist/ts3.9/client/docs/lib/defaultValues/createFromRawDefaultProp.d.ts +11 -0
  160. package/dist/ts3.9/client/docs/lib/defaultValues/generateArray.d.ts +3 -0
  161. package/dist/ts3.9/client/docs/lib/defaultValues/generateObject.d.ts +3 -0
  162. package/dist/ts3.9/client/docs/lib/defaultValues/index.d.ts +2 -0
  163. package/dist/ts3.9/client/docs/lib/defaultValues/prettyIdentifier.d.ts +4 -0
  164. package/dist/ts3.9/client/docs/lib/generateCode.d.ts +3 -0
  165. package/dist/ts3.9/client/docs/lib/index.d.ts +4 -0
  166. package/dist/ts3.9/client/docs/lib/inspection/acornParser.d.ts +7 -0
  167. package/dist/ts3.9/client/docs/lib/inspection/index.d.ts +2 -0
  168. package/dist/ts3.9/client/docs/lib/inspection/inspectValue.d.ts +2 -0
  169. package/dist/ts3.9/client/docs/lib/inspection/types.d.ts +50 -0
  170. package/dist/ts3.9/client/docs/lib/isHtmlTag.d.ts +1 -0
  171. package/dist/ts3.9/client/docs/propTypes/createType.d.ts +2 -0
  172. package/dist/ts3.9/client/docs/propTypes/generateFuncSignature.d.ts +4 -0
  173. package/dist/ts3.9/client/docs/propTypes/handleProp.d.ts +5 -0
  174. package/dist/ts3.9/client/docs/propTypes/rawDefaultPropResolvers.d.ts +1 -0
  175. package/dist/ts3.9/client/docs/propTypes/sortProps.d.ts +4 -0
  176. package/dist/ts3.9/client/docs/react-argtypes.stories.d.ts +1 -0
  177. package/dist/ts3.9/client/docs/typeScript/handleProp.d.ts +3 -0
  178. package/dist/ts3.9/client/index.d.ts +1 -0
  179. package/dist/ts3.9/client/preview/render.d.ts +1 -1
  180. package/dist/ts3.9/client/preview/types-6-0.d.ts +3 -3
  181. package/dist/ts3.9/client/preview/types-7-0.d.ts +2 -2
  182. package/dist/ts3.9/client/testing/index.d.ts +84 -0
  183. package/dist/ts3.9/server/framework-preset-cra.d.ts +1 -1
  184. package/dist/ts3.9/server/framework-preset-react-docs.d.ts +6 -0
  185. package/dist/ts3.9/server/framework-preset-react-dom-hack.d.ts +32 -0
  186. package/dist/ts3.9/server/framework-preset-react.d.ts +1 -46
  187. package/dist/ts3.9/server/options.d.ts +1 -1
  188. package/dist/ts3.9/server/preset.d.ts +2 -2
  189. package/package.json +38 -14
  190. package/types/index.ts +9 -1
  191. package/dist/cjs/typings.d.js +0 -1
  192. package/dist/esm/typings.d.js +0 -0
  193. package/dist/modern/typings.d.js +0 -0
  194. package/dist/ts3.4/server/framework-preset-react-docgen.d.ts +0 -5
  195. package/dist/ts3.9/server/framework-preset-react-docgen.d.ts +0 -5
@@ -0,0 +1,97 @@
1
+ import "core-js/modules/es.object.assign.js";
2
+ import "core-js/modules/es.array.map.js";
3
+ import "core-js/modules/es.object.entries.js";
4
+ import "core-js/modules/es.object.to-string.js";
5
+ import "core-js/modules/es.symbol.js";
6
+ import "core-js/modules/es.symbol.description.js";
7
+ import "core-js/modules/es.symbol.iterator.js";
8
+ import "core-js/modules/es.array.iterator.js";
9
+ import "core-js/modules/es.string.iterator.js";
10
+ import "core-js/modules/web.dom-collections.iterator.js";
11
+ import "core-js/modules/es.array.slice.js";
12
+ import "core-js/modules/es.function.name.js";
13
+ import "core-js/modules/es.array.from.js";
14
+ import "core-js/modules/es.regexp.exec.js";
15
+
16
+ function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
17
+
18
+ function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
19
+
20
+ 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); }
21
+
22
+ 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; }
23
+
24
+ function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
25
+
26
+ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
27
+
28
+ import React, { useState } from 'react';
29
+ import mapValues from 'lodash/mapValues';
30
+ import { ArgsTable } from '@storybook/components';
31
+ import { inferControls } from '@storybook/store';
32
+ import { storiesOf } from '..';
33
+ import { extractArgTypes } from './extractArgTypes'; // FIXME
34
+
35
+ var argsTableProps = function argsTableProps(component) {
36
+ var argTypes = extractArgTypes(component);
37
+ var parameters = {
38
+ __isArgsStory: true
39
+ };
40
+ var rows = inferControls({
41
+ argTypes: argTypes,
42
+ parameters: parameters
43
+ });
44
+ return {
45
+ rows: rows
46
+ };
47
+ };
48
+
49
+ var ArgsStory = function ArgsStory(_ref) {
50
+ var component = _ref.component;
51
+
52
+ var _argsTableProps = argsTableProps(component),
53
+ rows = _argsTableProps.rows;
54
+
55
+ var initialArgs = mapValues(rows, function (argType) {
56
+ return argType.defaultValue;
57
+ });
58
+
59
+ var _useState = useState(initialArgs),
60
+ _useState2 = _slicedToArray(_useState, 2),
61
+ args = _useState2[0],
62
+ setArgs = _useState2[1];
63
+
64
+ return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("p", null, /*#__PURE__*/React.createElement("b", null, "NOTE:"), " these stories are to help visualise the snapshot tests in", ' ', /*#__PURE__*/React.createElement("code", null, "./react-properties.test.js"), "."), /*#__PURE__*/React.createElement(ArgsTable, {
65
+ rows: rows,
66
+ args: args,
67
+ updateArgs: function updateArgs(val) {
68
+ return setArgs(Object.assign({}, args, val));
69
+ }
70
+ }), /*#__PURE__*/React.createElement("table", null, /*#__PURE__*/React.createElement("thead", null, /*#__PURE__*/React.createElement("tr", null, /*#__PURE__*/React.createElement("th", null, "arg name"), /*#__PURE__*/React.createElement("th", null, "argType"))), /*#__PURE__*/React.createElement("tbody", null, Object.entries(args).map(function (_ref2) {
71
+ var _ref3 = _slicedToArray(_ref2, 2),
72
+ key = _ref3[0],
73
+ val = _ref3[1];
74
+
75
+ return /*#__PURE__*/React.createElement("tr", {
76
+ key: key
77
+ }, /*#__PURE__*/React.createElement("td", null, /*#__PURE__*/React.createElement("code", null, key)), /*#__PURE__*/React.createElement("td", null, /*#__PURE__*/React.createElement("pre", null, JSON.stringify(rows[key]))));
78
+ }))));
79
+ };
80
+
81
+ var issuesFixtures = ['js-class-component', 'js-function-component', 'js-function-component-inline-defaults', 'js-function-component-inline-defaults-no-propTypes', 'ts-function-component', 'ts-function-component-inline-defaults', '9399-js-proptypes-shape', '8663-js-styled-components', '9626-js-default-values', '9668-js-proptypes-no-jsdoc', '8143-ts-react-fc-generics', '8143-ts-imported-types', '8279-js-styled-docgen', '8140-js-prop-types-oneof', '9023-js-hoc', '8740-ts-multi-props', '9556-ts-react-default-exports', '9592-ts-styled-props', '9591-ts-import-types', '9721-ts-deprecated-jsdoc', '9827-ts-default-values', '9586-js-react-memo', '9575-ts-camel-case', '9493-ts-display-name', '8894-9511-ts-forward-ref', '9465-ts-type-props', '8428-js-static-prop-types', '9764-ts-extend-props', '9922-ts-component-props'];
82
+ var issuesStories = storiesOf('ArgTypes/Issues', module);
83
+ issuesFixtures.forEach(function (fixture) {
84
+ // eslint-disable-next-line import/no-dynamic-require, global-require
85
+ var _require = require("./__testfixtures__/".concat(fixture, "/input")),
86
+ component = _require.component;
87
+
88
+ issuesStories.add(fixture, function () {
89
+ return /*#__PURE__*/React.createElement(ArgsStory, {
90
+ component: component
91
+ });
92
+ }, {
93
+ chromatic: {
94
+ disable: true
95
+ }
96
+ });
97
+ });
@@ -0,0 +1,27 @@
1
+ import "core-js/modules/es.array.map.js";
2
+ import { createDefaultValue, createDefaultValueFromRawDefaultProp } from '../lib/defaultValues';
3
+ export function enhanceTypeScriptProp(extractedProp, rawDefaultProp) {
4
+ var propDef = extractedProp.propDef;
5
+ var defaultValue = extractedProp.docgenInfo.defaultValue;
6
+
7
+ if (defaultValue != null && defaultValue.value != null) {
8
+ var newDefaultValue = createDefaultValue(defaultValue.value);
9
+
10
+ if (newDefaultValue != null) {
11
+ propDef.defaultValue = newDefaultValue;
12
+ }
13
+ } else if (rawDefaultProp != null) {
14
+ var _newDefaultValue = createDefaultValueFromRawDefaultProp(rawDefaultProp, propDef);
15
+
16
+ if (_newDefaultValue != null) {
17
+ propDef.defaultValue = _newDefaultValue;
18
+ }
19
+ }
20
+
21
+ return propDef;
22
+ }
23
+ export function enhanceTypeScriptProps(extractedProps) {
24
+ return extractedProps.map(function (prop) {
25
+ return enhanceTypeScriptProp(prop);
26
+ });
27
+ }
@@ -1,4 +1,5 @@
1
1
  export { storiesOf, setAddon, addDecorator, addParameters, configure, getStorybook, raw, forceReRender } from './preview';
2
+ export * from './testing';
2
3
  export * from './preview/types-6-3';
3
4
 
4
5
  if (module && module.hot && module.hot.decline) {
@@ -1,7 +1,7 @@
1
1
  import "core-js/modules/es.array.concat.js";
2
2
 
3
3
  /* eslint-disable prefer-destructuring */
4
- import { start } from '@storybook/core/client';
4
+ import { start } from '@storybook/core';
5
5
  import './globals';
6
6
  import { renderToDOM, render } from './render';
7
7
  var framework = 'react';
@@ -1,18 +1,18 @@
1
- function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
1
+ function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
2
2
 
3
3
  function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
4
4
 
5
5
  function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
6
6
 
7
- function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
7
+ function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
8
8
 
9
- function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }
9
+ function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, "prototype", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }
10
10
 
11
11
  function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
12
12
 
13
13
  function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }
14
14
 
15
- function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); }
15
+ function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } else if (call !== void 0) { throw new TypeError("Derived constructors may only return object or undefined"); } return _assertThisInitialized(self); }
16
16
 
17
17
  function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
18
18
 
@@ -21,26 +21,30 @@ function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Re
21
21
  function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
22
22
 
23
23
  import "regenerator-runtime/runtime.js";
24
- import "core-js/modules/es.promise.js";
24
+
25
+ function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }
26
+
27
+ function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; }
28
+
29
+ import "core-js/modules/es.array.iterator.js";
30
+ import "core-js/modules/es.map.js";
25
31
  import "core-js/modules/es.object.to-string.js";
32
+ import "core-js/modules/es.string.iterator.js";
33
+ import "core-js/modules/web.dom-collections.iterator.js";
34
+ import "core-js/modules/es.promise.js";
35
+ import "core-js/modules/es.string.starts-with.js";
26
36
  import "core-js/modules/es.array.concat.js";
27
37
  import "core-js/modules/es.object.get-prototype-of.js";
28
38
  import "core-js/modules/es.reflect.construct.js";
29
39
  import "core-js/modules/es.symbol.js";
30
40
  import "core-js/modules/es.symbol.description.js";
31
41
  import "core-js/modules/es.symbol.iterator.js";
32
- import "core-js/modules/es.string.iterator.js";
33
- import "core-js/modules/es.array.iterator.js";
34
- import "core-js/modules/web.dom-collections.iterator.js";
35
-
36
- function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }
37
-
38
- function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; }
39
-
40
42
  import global from 'global';
41
43
  import React, { Component as ReactComponent, StrictMode, Fragment } from 'react';
42
- import ReactDOM from 'react-dom';
43
- var FRAMEWORK_OPTIONS = global.FRAMEWORK_OPTIONS;
44
+ import ReactDOM, { version as reactDomVersion } from 'react-dom';
45
+ var FRAMEWORK_OPTIONS = global.FRAMEWORK_OPTIONS; // A map of all rendered React 18 nodes
46
+
47
+ var nodes = new Map();
44
48
  export var render = function render(args, context) {
45
49
  var id = context.id,
46
50
  Component = context.component;
@@ -54,17 +58,30 @@ export var render = function render(args, context) {
54
58
 
55
59
  var renderElement = /*#__PURE__*/function () {
56
60
  var _ref = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee(node, el) {
61
+ var root;
57
62
  return regeneratorRuntime.wrap(function _callee$(_context) {
58
63
  while (1) {
59
64
  switch (_context.prev = _context.next) {
60
65
  case 0:
66
+ _context.next = 2;
67
+ return getReactRoot(el);
68
+
69
+ case 2:
70
+ root = _context.sent;
61
71
  return _context.abrupt("return", new Promise(function (resolve) {
62
- ReactDOM.render(node, el, function () {
63
- return resolve(null);
64
- });
72
+ if (root) {
73
+ root.render(node);
74
+ setTimeout(function () {
75
+ resolve(null);
76
+ }, 0);
77
+ } else {
78
+ ReactDOM.render(node, el, function () {
79
+ return resolve(null);
80
+ });
81
+ }
65
82
  }));
66
83
 
67
- case 1:
84
+ case 4:
68
85
  case "end":
69
86
  return _context.stop();
70
87
  }
@@ -77,6 +94,67 @@ var renderElement = /*#__PURE__*/function () {
77
94
  };
78
95
  }();
79
96
 
97
+ var canUseNewReactRootApi = reactDomVersion.startsWith('18') || reactDomVersion.startsWith('0.0.0');
98
+ var shouldUseNewRootApi = (FRAMEWORK_OPTIONS === null || FRAMEWORK_OPTIONS === void 0 ? void 0 : FRAMEWORK_OPTIONS.legacyRootApi) !== true;
99
+ var isUsingNewReactRootApi = shouldUseNewRootApi && canUseNewReactRootApi;
100
+
101
+ var unmountElement = function unmountElement(el) {
102
+ var root = nodes.get(el);
103
+
104
+ if (root && isUsingNewReactRootApi) {
105
+ root.unmount();
106
+ nodes.delete(el);
107
+ } else {
108
+ ReactDOM.unmountComponentAtNode(el);
109
+ }
110
+ };
111
+
112
+ var getReactRoot = /*#__PURE__*/function () {
113
+ var _ref2 = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee2(el) {
114
+ var root, reactDomClient;
115
+ return regeneratorRuntime.wrap(function _callee2$(_context2) {
116
+ while (1) {
117
+ switch (_context2.prev = _context2.next) {
118
+ case 0:
119
+ if (isUsingNewReactRootApi) {
120
+ _context2.next = 2;
121
+ break;
122
+ }
123
+
124
+ return _context2.abrupt("return", null);
125
+
126
+ case 2:
127
+ root = nodes.get(el);
128
+
129
+ if (root) {
130
+ _context2.next = 9;
131
+ break;
132
+ }
133
+
134
+ _context2.next = 6;
135
+ return import('react-dom/client');
136
+
137
+ case 6:
138
+ reactDomClient = _context2.sent.default;
139
+ root = reactDomClient.createRoot(el);
140
+ nodes.set(el, root);
141
+
142
+ case 9:
143
+ return _context2.abrupt("return", root);
144
+
145
+ case 10:
146
+ case "end":
147
+ return _context2.stop();
148
+ }
149
+ }
150
+ }, _callee2);
151
+ }));
152
+
153
+ return function getReactRoot(_x3) {
154
+ return _ref2.apply(this, arguments);
155
+ };
156
+ }();
157
+
80
158
  var ErrorBoundary = /*#__PURE__*/function (_ReactComponent) {
81
159
  _inherits(ErrorBoundary, _ReactComponent);
82
160
 
@@ -135,18 +213,18 @@ var ErrorBoundary = /*#__PURE__*/function (_ReactComponent) {
135
213
  }(ReactComponent);
136
214
 
137
215
  var Wrapper = FRAMEWORK_OPTIONS !== null && FRAMEWORK_OPTIONS !== void 0 && FRAMEWORK_OPTIONS.strictMode ? StrictMode : Fragment;
138
- export function renderToDOM(_x3, _x4) {
216
+ export function renderToDOM(_x4, _x5) {
139
217
  return _renderToDOM.apply(this, arguments);
140
218
  }
141
219
 
142
220
  function _renderToDOM() {
143
- _renderToDOM = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee2(_ref2, domElement) {
221
+ _renderToDOM = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee3(_ref3, domElement) {
144
222
  var storyContext, unboundStoryFn, showMain, showException, forceRemount, Story, content, element;
145
- return regeneratorRuntime.wrap(function _callee2$(_context2) {
223
+ return regeneratorRuntime.wrap(function _callee3$(_context3) {
146
224
  while (1) {
147
- switch (_context2.prev = _context2.next) {
225
+ switch (_context3.prev = _context3.next) {
148
226
  case 0:
149
- storyContext = _ref2.storyContext, unboundStoryFn = _ref2.unboundStoryFn, showMain = _ref2.showMain, showException = _ref2.showException, forceRemount = _ref2.forceRemount;
227
+ storyContext = _ref3.storyContext, unboundStoryFn = _ref3.unboundStoryFn, showMain = _ref3.showMain, showException = _ref3.showException, forceRemount = _ref3.forceRemount;
150
228
  Story = unboundStoryFn;
151
229
  content = /*#__PURE__*/React.createElement(ErrorBoundary, {
152
230
  showMain: showMain,
@@ -160,18 +238,18 @@ function _renderToDOM() {
160
238
  // (This is not the case when we change args or globals to the story however)
161
239
 
162
240
  if (forceRemount) {
163
- ReactDOM.unmountComponentAtNode(domElement);
241
+ unmountElement(domElement);
164
242
  }
165
243
 
166
- _context2.next = 7;
244
+ _context3.next = 7;
167
245
  return renderElement(element, domElement);
168
246
 
169
247
  case 7:
170
248
  case "end":
171
- return _context2.stop();
249
+ return _context3.stop();
172
250
  }
173
251
  }
174
- }, _callee2);
252
+ }, _callee3);
175
253
  }));
176
254
  return _renderToDOM.apply(this, arguments);
177
255
  }
@@ -0,0 +1 @@
1
+ export {};
@@ -5,4 +5,6 @@ export * from './types-6-0';
5
5
  * ```tsx
6
6
  * export default { ... } as ComponentMeta<typeof Button>;
7
7
  * ```
8
- */
8
+ */
9
+
10
+ export {};
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,96 @@
1
+ import { composeStory as originalComposeStory, composeStories as originalComposeStories, setProjectAnnotations as originalSetProjectAnnotations } from '@storybook/store';
2
+ import { once } from '@storybook/client-logger';
3
+ import { render } from '../preview/render';
4
+
5
+ /** Function that sets the globalConfig of your storybook. The global config is the preview module of your .storybook folder.
6
+ *
7
+ * 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`.
8
+ *
9
+ * Example:
10
+ *```jsx
11
+ * // setup.js (for jest)
12
+ * import { setProjectAnnotations } from '@storybook/react';
13
+ * import * as projectAnnotations from './.storybook/preview';
14
+ *
15
+ * setProjectAnnotations(projectAnnotations);
16
+ *```
17
+ *
18
+ * @param projectAnnotations - e.g. (import * as projectAnnotations from '../.storybook/preview')
19
+ */
20
+ export function setProjectAnnotations(projectAnnotations) {
21
+ originalSetProjectAnnotations(projectAnnotations);
22
+ }
23
+ /** Preserved for users migrating from `@storybook/testing-react`.
24
+ *
25
+ * @deprecated Use setProjectAnnotations instead
26
+ */
27
+
28
+ export function setGlobalConfig(projectAnnotations) {
29
+ once.warn("setGlobalConfig is deprecated. Use setProjectAnnotations instead.");
30
+ setProjectAnnotations(projectAnnotations);
31
+ } // This will not be necessary once we have auto preset loading
32
+
33
+ var defaultProjectAnnotations = {
34
+ render: render
35
+ };
36
+ /**
37
+ * Function that will receive a story along with meta (e.g. a default export from a .stories file)
38
+ * and optionally projectAnnotations e.g. (import * from '../.storybook/preview)
39
+ * and will return a composed component that has all args/parameters/decorators/etc combined and applied to it.
40
+ *
41
+ *
42
+ * It's very useful for reusing a story in scenarios outside of Storybook like unit testing.
43
+ *
44
+ * Example:
45
+ *```jsx
46
+ * import { render } from '@testing-library/react';
47
+ * import { composeStory } from '@storybook/react';
48
+ * import Meta, { Primary as PrimaryStory } from './Button.stories';
49
+ *
50
+ * const Primary = composeStory(PrimaryStory, Meta);
51
+ *
52
+ * test('renders primary button with Hello World', () => {
53
+ * const { getByText } = render(<Primary>Hello world</Primary>);
54
+ * expect(getByText(/Hello world/i)).not.toBeNull();
55
+ * });
56
+ *```
57
+ *
58
+ * @param story
59
+ * @param componentAnnotations - e.g. (import Meta from './Button.stories')
60
+ * @param [projectAnnotations] - e.g. (import * as projectAnnotations from '../.storybook/preview') this can be applied automatically if you use `setProjectAnnotations` in your setup files.
61
+ * @param [exportsName] - in case your story does not contain a name and you want it to have a name.
62
+ */
63
+
64
+ export function composeStory(story, componentAnnotations, projectAnnotations, exportsName) {
65
+ return originalComposeStory(story, componentAnnotations, projectAnnotations, defaultProjectAnnotations, exportsName);
66
+ }
67
+ /**
68
+ * Function that will receive a stories import (e.g. `import * as stories from './Button.stories'`)
69
+ * and optionally projectAnnotations (e.g. `import * from '../.storybook/preview`)
70
+ * 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.
71
+ *
72
+ *
73
+ * It's very useful for reusing stories in scenarios outside of Storybook like unit testing.
74
+ *
75
+ * Example:
76
+ *```jsx
77
+ * import { render } from '@testing-library/react';
78
+ * import { composeStories } from '@storybook/react';
79
+ * import * as stories from './Button.stories';
80
+ *
81
+ * const { Primary, Secondary } = composeStories(stories);
82
+ *
83
+ * test('renders primary button with Hello World', () => {
84
+ * const { getByText } = render(<Primary>Hello world</Primary>);
85
+ * expect(getByText(/Hello world/i)).not.toBeNull();
86
+ * });
87
+ *```
88
+ *
89
+ * @param csfExports - e.g. (import * as stories from './Button.stories')
90
+ * @param [projectAnnotations] - e.g. (import * as projectAnnotations from '../.storybook/preview') this can be applied automatically if you use `setProjectAnnotations` in your setup files.
91
+ */
92
+
93
+ export function composeStories(csfExports, projectAnnotations) {
94
+ var composedStories = originalComposeStories(csfExports, projectAnnotations, composeStory);
95
+ return composedStories;
96
+ }
@@ -1,6 +1,9 @@
1
- import "core-js/modules/es.object.assign.js";
2
1
  import "core-js/modules/es.object.keys.js";
3
2
  import "core-js/modules/es.symbol.js";
3
+ var _excluded = ["children"],
4
+ _excluded2 = ["children", "href", "target", "rel"],
5
+ _excluded3 = ["children", "onClick"];
6
+ import "core-js/modules/es.object.assign.js";
4
7
 
5
8
  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; }
6
9
 
@@ -24,7 +27,7 @@ var Main = function Main(props) {
24
27
 
25
28
  var Title = function Title(_ref) {
26
29
  var children = _ref.children,
27
- props = _objectWithoutProperties(_ref, ["children"]);
30
+ props = _objectWithoutProperties(_ref, _excluded);
28
31
 
29
32
  return /*#__PURE__*/React.createElement("h1", props, children);
30
33
  };
@@ -56,7 +59,7 @@ var Link = function Link(_ref2) {
56
59
  href = _ref2.href,
57
60
  target = _ref2.target,
58
61
  rel = _ref2.rel,
59
- props = _objectWithoutProperties(_ref2, ["children", "href", "target", "rel"]);
62
+ props = _objectWithoutProperties(_ref2, _excluded2);
60
63
 
61
64
  return /*#__PURE__*/React.createElement("a", _extends({
62
65
  href: href
@@ -75,7 +78,7 @@ var Link = function Link(_ref2) {
75
78
  var NavButton = function NavButton(_ref3) {
76
79
  var children = _ref3.children,
77
80
  onClick = _ref3.onClick,
78
- props = _objectWithoutProperties(_ref3, ["children", "onClick"]);
81
+ props = _objectWithoutProperties(_ref3, _excluded3);
79
82
 
80
83
  return /*#__PURE__*/React.createElement("button", _extends({}, props, {
81
84
  type: "button",
@@ -1,15 +1,16 @@
1
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
1
+ 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; }
2
2
 
3
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
3
+ 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; }
4
4
 
5
5
  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; }
6
6
 
7
7
  import "core-js/modules/es.promise.js";
8
+ import { findDistEsm } from '@storybook/core-common';
8
9
  import ReactDocgenTypescriptPlugin from '@storybook/react-docgen-typescript-plugin';
9
- export async function babel(config, {
10
- presets: presets
11
- }) {
12
- var typescriptOptions = await presets.apply('typescript', {});
10
+ import { hasDocsOrControls } from '@storybook/docs-tools';
11
+ export async function babel(config, options) {
12
+ if (!hasDocsOrControls(options)) return config;
13
+ var typescriptOptions = await options.presets.apply('typescript', {});
13
14
  var reactDocgen = typescriptOptions.reactDocgen;
14
15
 
15
16
  if (typeof reactDocgen !== 'string') {
@@ -25,10 +26,9 @@ export async function babel(config, {
25
26
  }]
26
27
  });
27
28
  }
28
- export async function webpackFinal(config, {
29
- presets: presets
30
- }) {
31
- var typescriptOptions = await presets.apply('typescript', {});
29
+ export async function webpackFinal(config, options) {
30
+ if (!hasDocsOrControls(options)) return config;
31
+ var typescriptOptions = await options.presets.apply('typescript', {});
32
32
  var reactDocgen = typescriptOptions.reactDocgen,
33
33
  reactDocgenTypescriptOptions = typescriptOptions.reactDocgenTypescriptOptions;
34
34
 
@@ -42,4 +42,8 @@ export async function webpackFinal(config, {
42
42
  savePropValueAsString: true
43
43
  }))]
44
44
  });
45
- }
45
+ }
46
+ export var previewAnnotations = function (entry = [], options) {
47
+ if (!hasDocsOrControls(options)) return entry;
48
+ return [...entry, findDistEsm(__dirname, 'client/docs/config')];
49
+ };
@@ -0,0 +1,21 @@
1
+ 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; }
2
+
3
+ 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; }
4
+
5
+ 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; }
6
+
7
+ import "core-js/modules/es.promise.js";
8
+ import { readJSON } from 'fs-extra';
9
+ import { IgnorePlugin } from 'webpack'; // this is a hack to allow importing react-dom/client even when it's not available
10
+ // this should be removed once we drop support for react-dom < 18
11
+
12
+ export async function webpackFinal(config) {
13
+ var reactDomPkg = await readJSON(require.resolve('react-dom/package.json'));
14
+ return _objectSpread(_objectSpread({}, config), {}, {
15
+ plugins: [...config.plugins, reactDomPkg.version.startsWith('18') || reactDomPkg.version.startsWith('0.0.0') ? null : new IgnorePlugin({
16
+ resourceRegExp: /react-dom\/client$/,
17
+ 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
18
+
19
+ })].filter(Boolean)
20
+ });
21
+ }
@@ -1,6 +1,6 @@
1
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
1
+ 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; }
2
2
 
3
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
3
+ 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; }
4
4
 
5
5
  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; }
6
6
 
@@ -1,5 +1,5 @@
1
1
  import { findDistEsm } from '@storybook/core-common';
2
- export var config = function (entries = []) {
2
+ export var previewAnnotations = function (entries = []) {
3
3
  return [...entries, findDistEsm(__dirname, 'client/preview/config')];
4
4
  };
5
- export var addons = [require.resolve('./framework-preset-react'), require.resolve('./framework-preset-cra'), require.resolve('./framework-preset-react-docgen')];
5
+ export 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')];
@@ -0,0 +1,14 @@
1
+ import { extractComponentDescription, enhanceArgTypes } from '@storybook/docs-tools';
2
+ import { extractArgTypes } from './extractArgTypes';
3
+ import { jsxDecorator } from './jsxDecorator';
4
+ export const 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: storyFn => storyFn(),
9
+ extractArgTypes,
10
+ extractComponentDescription
11
+ }
12
+ };
13
+ export const decorators = [jsxDecorator];
14
+ export const argTypesEnhancers = [enhanceArgTypes];