@storybook/react 7.0.0-alpha.6 → 7.0.0-alpha.60

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 (291) hide show
  1. package/dist/chunk-LSK4KSW4.mjs +1 -0
  2. package/dist/config.d.ts +22 -0
  3. package/dist/config.js +3 -0
  4. package/dist/config.mjs +3 -0
  5. package/dist/index.d.ts +193 -0
  6. package/dist/index.js +1 -0
  7. package/dist/index.mjs +1 -0
  8. package/dist/types-0a347bb9.d.ts +10 -0
  9. package/jest.config.js +7 -0
  10. package/package.json +47 -20
  11. package/preview.js +1 -1
  12. package/template/cli/.eslintrc.json +5 -0
  13. package/template/cli/js/Button.jsx +50 -0
  14. package/template/cli/js/Button.stories.js +39 -0
  15. package/template/cli/js/Header.jsx +59 -0
  16. package/template/cli/js/Header.stories.js +22 -0
  17. package/template/cli/js/Page.jsx +69 -0
  18. package/template/cli/js/Page.stories.js +25 -0
  19. package/template/cli/ts/Button.stories.ts +44 -0
  20. package/template/cli/ts/Button.tsx +48 -0
  21. package/template/cli/ts/Header.stories.ts +26 -0
  22. package/template/cli/ts/Header.tsx +56 -0
  23. package/template/cli/ts/Page.stories.ts +29 -0
  24. package/template/cli/ts/Page.tsx +73 -0
  25. package/template/cli/ts-legacy/Button.stories.ts +45 -0
  26. package/template/cli/ts-legacy/Button.tsx +48 -0
  27. package/template/cli/ts-legacy/Header.stories.ts +24 -0
  28. package/template/cli/ts-legacy/Header.tsx +56 -0
  29. package/template/cli/ts-legacy/Page.stories.ts +29 -0
  30. package/template/cli/ts-legacy/Page.tsx +73 -0
  31. package/template/components/Button.jsx +13 -0
  32. package/template/components/Form.jsx +36 -0
  33. package/template/components/Html.jsx +9 -0
  34. package/template/components/Pre.jsx +20 -0
  35. package/template/components/index.js +9 -0
  36. package/template/stories/decorators.stories.tsx +28 -0
  37. package/template/stories/docgen-components/10017-ts-union/argTypes.snapshot +36 -0
  38. package/template/stories/docgen-components/10017-ts-union/docgen.snapshot +34 -0
  39. package/template/stories/docgen-components/10017-ts-union/input.tsx +12 -0
  40. package/template/stories/docgen-components/10017-ts-union/properties.snapshot +32 -0
  41. package/template/stories/docgen-components/10278-ts-multiple-components/argTypes.snapshot +26 -0
  42. package/template/stories/docgen-components/10278-ts-multiple-components/docgen.snapshot +49 -0
  43. package/template/stories/docgen-components/10278-ts-multiple-components/input.tsx +27 -0
  44. package/template/stories/docgen-components/10278-ts-multiple-components/properties.snapshot +22 -0
  45. package/template/stories/docgen-components/8140-js-prop-types-oneof/argTypes.snapshot +127 -0
  46. package/template/stories/docgen-components/8140-js-prop-types-oneof/docgen.snapshot +97 -0
  47. package/template/stories/docgen-components/8140-js-prop-types-oneof/input.jsx +27 -0
  48. package/template/stories/docgen-components/8140-js-prop-types-oneof/properties.snapshot +89 -0
  49. package/template/stories/docgen-components/8143-ts-imported-types/argTypes.snapshot +27 -0
  50. package/template/stories/docgen-components/8143-ts-imported-types/docgen.snapshot +22 -0
  51. package/template/stories/docgen-components/8143-ts-imported-types/input.tsx +10 -0
  52. package/template/stories/docgen-components/8143-ts-imported-types/properties.snapshot +23 -0
  53. package/template/stories/docgen-components/8143-ts-imported-types/types.ts +3 -0
  54. package/template/stories/docgen-components/8143-ts-react-fc-generics/argTypes.snapshot +27 -0
  55. package/template/stories/docgen-components/8143-ts-react-fc-generics/docgen.snapshot +24 -0
  56. package/template/stories/docgen-components/8143-ts-react-fc-generics/input.tsx +10 -0
  57. package/template/stories/docgen-components/8143-ts-react-fc-generics/properties.snapshot +21 -0
  58. package/template/stories/docgen-components/8428-js-static-prop-types/argTypes.snapshot +25 -0
  59. package/template/stories/docgen-components/8428-js-static-prop-types/docgen.snapshot +39 -0
  60. package/template/stories/docgen-components/8428-js-static-prop-types/input.jsx +20 -0
  61. package/template/stories/docgen-components/8428-js-static-prop-types/properties.snapshot +21 -0
  62. package/template/stories/docgen-components/8740-ts-multi-props/argTypes.snapshot +27 -0
  63. package/template/stories/docgen-components/8740-ts-multi-props/docgen.snapshot +49 -0
  64. package/template/stories/docgen-components/8740-ts-multi-props/input.tsx +23 -0
  65. package/template/stories/docgen-components/8740-ts-multi-props/properties.snapshot +21 -0
  66. package/template/stories/docgen-components/8894-9511-ts-forward-ref/argTypes.snapshot +48 -0
  67. package/template/stories/docgen-components/8894-9511-ts-forward-ref/docgen.snapshot +39 -0
  68. package/template/stories/docgen-components/8894-9511-ts-forward-ref/input.tsx +31 -0
  69. package/template/stories/docgen-components/8894-9511-ts-forward-ref/properties.snapshot +34 -0
  70. package/template/stories/docgen-components/9023-js-hoc/argTypes.snapshot +89 -0
  71. package/template/stories/docgen-components/9023-js-hoc/docgen.snapshot +84 -0
  72. package/template/stories/docgen-components/9023-js-hoc/input.jsx +40 -0
  73. package/template/stories/docgen-components/9023-js-hoc/properties.snapshot +67 -0
  74. package/template/stories/docgen-components/9399-js-proptypes-shape/argTypes.snapshot +39 -0
  75. package/template/stories/docgen-components/9399-js-proptypes-shape/docgen.snapshot +48 -0
  76. package/template/stories/docgen-components/9399-js-proptypes-shape/input.jsx +16 -0
  77. package/template/stories/docgen-components/9399-js-proptypes-shape/properties.snapshot +35 -0
  78. package/template/stories/docgen-components/9465-ts-type-props/argTypes.snapshot +28 -0
  79. package/template/stories/docgen-components/9465-ts-type-props/docgen.snapshot +33 -0
  80. package/template/stories/docgen-components/9465-ts-type-props/input.tsx +12 -0
  81. package/template/stories/docgen-components/9465-ts-type-props/properties.snapshot +24 -0
  82. package/template/stories/docgen-components/9493-ts-display-name/argTypes.snapshot +62 -0
  83. package/template/stories/docgen-components/9493-ts-display-name/docgen.snapshot +50 -0
  84. package/template/stories/docgen-components/9493-ts-display-name/input.tsx +30 -0
  85. package/template/stories/docgen-components/9493-ts-display-name/properties.snapshot +52 -0
  86. package/template/stories/docgen-components/9556-ts-react-default-exports/argTypes.snapshot +28 -0
  87. package/template/stories/docgen-components/9556-ts-react-default-exports/docgen.snapshot +32 -0
  88. package/template/stories/docgen-components/9556-ts-react-default-exports/input.tsx +12 -0
  89. package/template/stories/docgen-components/9556-ts-react-default-exports/properties.snapshot +24 -0
  90. package/template/stories/docgen-components/9575-ts-camel-case/argTypes.snapshot +28 -0
  91. package/template/stories/docgen-components/9575-ts-camel-case/docgen.snapshot +38 -0
  92. package/template/stories/docgen-components/9575-ts-camel-case/input.tsx +26 -0
  93. package/template/stories/docgen-components/9575-ts-camel-case/properties.snapshot +24 -0
  94. package/template/stories/docgen-components/9586-js-react-memo/argTypes.snapshot +41 -0
  95. package/template/stories/docgen-components/9586-js-react-memo/docgen.snapshot +42 -0
  96. package/template/stories/docgen-components/9586-js-react-memo/input.jsx +15 -0
  97. package/template/stories/docgen-components/9586-js-react-memo/properties.snapshot +34 -0
  98. package/template/stories/docgen-components/9591-ts-import-types/Bar.tsx +3 -0
  99. package/template/stories/docgen-components/9591-ts-import-types/argTypes.snapshot +25 -0
  100. package/template/stories/docgen-components/9591-ts-import-types/docgen.snapshot +21 -0
  101. package/template/stories/docgen-components/9591-ts-import-types/input.tsx +10 -0
  102. package/template/stories/docgen-components/9591-ts-import-types/properties.snapshot +21 -0
  103. package/template/stories/docgen-components/9626-js-default-values/argTypes.snapshot +27 -0
  104. package/template/stories/docgen-components/9626-js-default-values/docgen.snapshot +25 -0
  105. package/template/stories/docgen-components/9626-js-default-values/input.jsx +5 -0
  106. package/template/stories/docgen-components/9626-js-default-values/properties.snapshot +21 -0
  107. package/template/stories/docgen-components/9668-js-proptypes-no-jsdoc/argTypes.snapshot +42 -0
  108. package/template/stories/docgen-components/9668-js-proptypes-no-jsdoc/docgen.snapshot +36 -0
  109. package/template/stories/docgen-components/9668-js-proptypes-no-jsdoc/input.jsx +13 -0
  110. package/template/stories/docgen-components/9668-js-proptypes-no-jsdoc/properties.snapshot +35 -0
  111. package/template/stories/docgen-components/9721-ts-deprecated-jsdoc/argTypes.snapshot +53 -0
  112. package/template/stories/docgen-components/9721-ts-deprecated-jsdoc/docgen.snapshot +45 -0
  113. package/template/stories/docgen-components/9721-ts-deprecated-jsdoc/input.tsx +18 -0
  114. package/template/stories/docgen-components/9721-ts-deprecated-jsdoc/properties.snapshot +43 -0
  115. package/template/stories/docgen-components/9764-ts-extend-props/argTypes.snapshot +72 -0
  116. package/template/stories/docgen-components/9764-ts-extend-props/docgen.snapshot +41 -0
  117. package/template/stories/docgen-components/9764-ts-extend-props/input.tsx +17 -0
  118. package/template/stories/docgen-components/9764-ts-extend-props/properties.snapshot +56 -0
  119. package/template/stories/docgen-components/9827-ts-default-values/argTypes.snapshot +72 -0
  120. package/template/stories/docgen-components/9827-ts-default-values/docgen.snapshot +52 -0
  121. package/template/stories/docgen-components/9827-ts-default-values/input.tsx +17 -0
  122. package/template/stories/docgen-components/9827-ts-default-values/properties.snapshot +56 -0
  123. package/template/stories/docgen-components/9832-ts-enum-export/argTypes.snapshot +3 -0
  124. package/template/stories/docgen-components/9832-ts-enum-export/docgen.snapshot +16 -0
  125. package/template/stories/docgen-components/9832-ts-enum-export/input.tsx +8 -0
  126. package/template/stories/docgen-components/9832-ts-enum-export/properties.snapshot +7 -0
  127. package/template/stories/docgen-components/9922-ts-component-props/argTypes.snapshot +25 -0
  128. package/template/stories/docgen-components/9922-ts-component-props/docgen.snapshot +35 -0
  129. package/template/stories/docgen-components/9922-ts-component-props/input.tsx +24 -0
  130. package/template/stories/docgen-components/9922-ts-component-props/properties.snapshot +21 -0
  131. package/template/stories/docgen-components/imported.js +1 -0
  132. package/template/stories/docgen-components/js-class-component/argTypes.snapshot +386 -0
  133. package/template/stories/docgen-components/js-class-component/docgen.snapshot +252 -0
  134. package/template/stories/docgen-components/js-class-component/input.jsx +57 -0
  135. package/template/stories/docgen-components/js-class-component/properties.snapshot +286 -0
  136. package/template/stories/docgen-components/js-function-component/argTypes.snapshot +386 -0
  137. package/template/stories/docgen-components/js-function-component/docgen.snapshot +236 -0
  138. package/template/stories/docgen-components/js-function-component/input.jsx +50 -0
  139. package/template/stories/docgen-components/js-function-component/properties.snapshot +286 -0
  140. package/template/stories/docgen-components/js-function-component-inline-defaults/argTypes.snapshot +386 -0
  141. package/template/stories/docgen-components/js-function-component-inline-defaults/docgen.snapshot +247 -0
  142. package/template/stories/docgen-components/js-function-component-inline-defaults/input.jsx +65 -0
  143. package/template/stories/docgen-components/js-function-component-inline-defaults/properties.snapshot +286 -0
  144. package/template/stories/docgen-components/js-function-component-inline-defaults-no-propTypes/argTypes.snapshot +237 -0
  145. package/template/stories/docgen-components/js-function-component-inline-defaults-no-propTypes/docgen.snapshot +124 -0
  146. package/template/stories/docgen-components/js-function-component-inline-defaults-no-propTypes/input.jsx +41 -0
  147. package/template/stories/docgen-components/js-function-component-inline-defaults-no-propTypes/properties.snapshot +151 -0
  148. package/template/stories/docgen-components/js-proptypes/docgen.snapshot +1770 -0
  149. package/template/stories/docgen-components/js-proptypes/ext.js +13 -0
  150. package/template/stories/docgen-components/js-proptypes/input.jsx +497 -0
  151. package/template/stories/docgen-components/jsdoc/argTypes.snapshot +969 -0
  152. package/template/stories/docgen-components/jsdoc/docgen.snapshot +548 -0
  153. package/template/stories/docgen-components/jsdoc/input.jsx +231 -0
  154. package/template/stories/docgen-components/jsdoc/properties.snapshot +857 -0
  155. package/template/stories/docgen-components/ts-function-component/argTypes.snapshot +396 -0
  156. package/template/stories/docgen-components/ts-function-component/docgen.snapshot +241 -0
  157. package/template/stories/docgen-components/ts-function-component/input.tsx +52 -0
  158. package/template/stories/docgen-components/ts-function-component/properties.snapshot +296 -0
  159. package/template/stories/docgen-components/ts-function-component-inline-defaults/argTypes.snapshot +279 -0
  160. package/template/stories/docgen-components/ts-function-component-inline-defaults/docgen.snapshot +151 -0
  161. package/template/stories/docgen-components/ts-function-component-inline-defaults/input.tsx +80 -0
  162. package/template/stories/docgen-components/ts-function-component-inline-defaults/properties.snapshot +177 -0
  163. package/template/stories/docgen-components/ts-html/argTypes.snapshot +3 -0
  164. package/template/stories/docgen-components/ts-html/docgen.snapshot +12 -0
  165. package/template/stories/docgen-components/ts-html/input.tsx +12 -0
  166. package/template/stories/docgen-components/ts-html/properties.snapshot +7 -0
  167. package/template/stories/docgen-components/ts-jsdoc/argTypes.snapshot +3 -0
  168. package/template/stories/docgen-components/ts-jsdoc/docgen.snapshot +21 -0
  169. package/template/stories/docgen-components/ts-jsdoc/input.tsx +27 -0
  170. package/template/stories/docgen-components/ts-jsdoc/properties.snapshot +7 -0
  171. package/template/stories/docgen-components/ts-types/argTypes.snapshot +656 -0
  172. package/template/stories/docgen-components/ts-types/docgen.snapshot +317 -0
  173. package/template/stories/docgen-components/ts-types/input.tsx +130 -0
  174. package/template/stories/docgen-components/ts-types/properties.snapshot +410 -0
  175. package/template/stories/errors.stories.tsx +37 -0
  176. package/template/stories/hooks.stories.tsx +17 -0
  177. package/template/stories/js-argtypes.stories.jsx +91 -0
  178. package/template/stories/react-mdx.stories.mdx +26 -0
  179. package/template/stories/ts-argtypes.stories.tsx +81 -0
  180. package/LICENSE +0 -21
  181. package/dist/cjs/config.js +0 -43
  182. package/dist/cjs/docs/config.js +0 -25
  183. package/dist/cjs/docs/extractArgTypes.js +0 -47
  184. package/dist/cjs/docs/extractProps.js +0 -57
  185. package/dist/cjs/docs/jsxDecorator.js +0 -210
  186. package/dist/cjs/docs/lib/captions.js +0 -18
  187. package/dist/cjs/docs/lib/componentTypes.js +0 -14
  188. package/dist/cjs/docs/lib/defaultValues/createDefaultValue.js +0 -86
  189. package/dist/cjs/docs/lib/defaultValues/createFromRawDefaultProp.js +0 -206
  190. package/dist/cjs/docs/lib/defaultValues/generateArray.js +0 -31
  191. package/dist/cjs/docs/lib/defaultValues/generateObject.js +0 -31
  192. package/dist/cjs/docs/lib/defaultValues/index.js +0 -31
  193. package/dist/cjs/docs/lib/defaultValues/prettyIdentifier.js +0 -38
  194. package/dist/cjs/docs/lib/generateCode.js +0 -74
  195. package/dist/cjs/docs/lib/index.js +0 -57
  196. package/dist/cjs/docs/lib/inspection/acornParser.js +0 -230
  197. package/dist/cjs/docs/lib/inspection/index.js +0 -31
  198. package/dist/cjs/docs/lib/inspection/inspectValue.js +0 -24
  199. package/dist/cjs/docs/lib/inspection/types.js +0 -19
  200. package/dist/cjs/docs/lib/isHtmlTag.js +0 -14
  201. package/dist/cjs/docs/propTypes/createType.js +0 -458
  202. package/dist/cjs/docs/propTypes/generateFuncSignature.js +0 -68
  203. package/dist/cjs/docs/propTypes/handleProp.js +0 -52
  204. package/dist/cjs/docs/propTypes/rawDefaultPropResolvers.js +0 -43
  205. package/dist/cjs/docs/propTypes/sortProps.js +0 -21
  206. package/dist/cjs/docs/react-argtypes.stories.js +0 -67
  207. package/dist/cjs/docs/typeScript/handleProp.js +0 -38
  208. package/dist/cjs/index.js +0 -98
  209. package/dist/cjs/preview/config.js +0 -19
  210. package/dist/cjs/preview/globals.js +0 -13
  211. package/dist/cjs/preview/index.js +0 -44
  212. package/dist/cjs/preview/render.js +0 -166
  213. package/dist/cjs/preview/types-6-0.js +0 -5
  214. package/dist/cjs/preview/types-6-3.js +0 -18
  215. package/dist/cjs/preview/types-7-0.js +0 -5
  216. package/dist/cjs/preview/types.js +0 -5
  217. package/dist/cjs/testing/index.js +0 -113
  218. package/dist/esm/config.js +0 -6
  219. package/dist/esm/docs/config.js +0 -12
  220. package/dist/esm/docs/extractArgTypes.js +0 -37
  221. package/dist/esm/docs/extractProps.js +0 -42
  222. package/dist/esm/docs/jsxDecorator.js +0 -170
  223. package/dist/esm/docs/lib/captions.js +0 -6
  224. package/dist/esm/docs/lib/componentTypes.js +0 -2
  225. package/dist/esm/docs/lib/defaultValues/createDefaultValue.js +0 -72
  226. package/dist/esm/docs/lib/defaultValues/createFromRawDefaultProp.js +0 -183
  227. package/dist/esm/docs/lib/defaultValues/generateArray.js +0 -21
  228. package/dist/esm/docs/lib/defaultValues/generateObject.js +0 -21
  229. package/dist/esm/docs/lib/defaultValues/index.js +0 -2
  230. package/dist/esm/docs/lib/defaultValues/prettyIdentifier.js +0 -26
  231. package/dist/esm/docs/lib/generateCode.js +0 -59
  232. package/dist/esm/docs/lib/index.js +0 -4
  233. package/dist/esm/docs/lib/inspection/acornParser.js +0 -211
  234. package/dist/esm/docs/lib/inspection/index.js +0 -2
  235. package/dist/esm/docs/lib/inspection/inspectValue.js +0 -15
  236. package/dist/esm/docs/lib/inspection/types.js +0 -12
  237. package/dist/esm/docs/lib/isHtmlTag.js +0 -4
  238. package/dist/esm/docs/propTypes/createType.js +0 -447
  239. package/dist/esm/docs/propTypes/generateFuncSignature.js +0 -57
  240. package/dist/esm/docs/propTypes/handleProp.js +0 -39
  241. package/dist/esm/docs/propTypes/rawDefaultPropResolvers.js +0 -31
  242. package/dist/esm/docs/propTypes/sortProps.js +0 -14
  243. package/dist/esm/docs/react-argtypes.stories.js +0 -54
  244. package/dist/esm/docs/typeScript/handleProp.js +0 -28
  245. package/dist/esm/index.js +0 -5
  246. package/dist/esm/preview/config.js +0 -1
  247. package/dist/esm/preview/globals.js +0 -8
  248. package/dist/esm/preview/index.js +0 -21
  249. package/dist/esm/preview/render.js +0 -142
  250. package/dist/esm/preview/types-6-0.js +0 -1
  251. package/dist/esm/preview/types-6-3.js +0 -10
  252. package/dist/esm/preview/types-7-0.js +0 -1
  253. package/dist/esm/preview/types.js +0 -1
  254. package/dist/esm/testing/index.js +0 -97
  255. package/dist/types/config.d.ts +0 -10
  256. package/dist/types/docs/config.d.ts +0 -10
  257. package/dist/types/docs/extractArgTypes.d.ts +0 -2
  258. package/dist/types/docs/extractProps.d.ts +0 -9
  259. package/dist/types/docs/jsxDecorator.d.ts +0 -23
  260. package/dist/types/docs/lib/captions.d.ts +0 -6
  261. package/dist/types/docs/lib/componentTypes.d.ts +0 -2
  262. package/dist/types/docs/lib/defaultValues/createDefaultValue.d.ts +0 -2
  263. package/dist/types/docs/lib/defaultValues/createFromRawDefaultProp.d.ts +0 -11
  264. package/dist/types/docs/lib/defaultValues/generateArray.d.ts +0 -3
  265. package/dist/types/docs/lib/defaultValues/generateObject.d.ts +0 -3
  266. package/dist/types/docs/lib/defaultValues/index.d.ts +0 -2
  267. package/dist/types/docs/lib/defaultValues/prettyIdentifier.d.ts +0 -4
  268. package/dist/types/docs/lib/generateCode.d.ts +0 -3
  269. package/dist/types/docs/lib/index.d.ts +0 -4
  270. package/dist/types/docs/lib/inspection/acornParser.d.ts +0 -7
  271. package/dist/types/docs/lib/inspection/index.d.ts +0 -2
  272. package/dist/types/docs/lib/inspection/inspectValue.d.ts +0 -2
  273. package/dist/types/docs/lib/inspection/types.d.ts +0 -50
  274. package/dist/types/docs/lib/isHtmlTag.d.ts +0 -1
  275. package/dist/types/docs/propTypes/createType.d.ts +0 -2
  276. package/dist/types/docs/propTypes/generateFuncSignature.d.ts +0 -4
  277. package/dist/types/docs/propTypes/handleProp.d.ts +0 -5
  278. package/dist/types/docs/propTypes/rawDefaultPropResolvers.d.ts +0 -1
  279. package/dist/types/docs/propTypes/sortProps.d.ts +0 -4
  280. package/dist/types/docs/react-argtypes.stories.d.ts +0 -1
  281. package/dist/types/docs/typeScript/handleProp.d.ts +0 -3
  282. package/dist/types/index.d.ts +0 -4
  283. package/dist/types/preview/config.d.ts +0 -1
  284. package/dist/types/preview/globals.d.ts +0 -1
  285. package/dist/types/preview/index.d.ts +0 -25
  286. package/dist/types/preview/render.d.ts +0 -5
  287. package/dist/types/preview/types-6-0.d.ts +0 -35
  288. package/dist/types/preview/types-6-3.d.ts +0 -40
  289. package/dist/types/preview/types-7-0.d.ts +0 -21
  290. package/dist/types/preview/types.d.ts +0 -16
  291. package/dist/types/testing/index.d.ts +0 -84
@@ -0,0 +1 @@
1
+ import global from"global";import React,{Component as ReactComponent,StrictMode,Fragment,useLayoutEffect,useRef}from"react";import ReactDOM,{version as reactDomVersion}from"react-dom";var{FRAMEWORK_OPTIONS}=global,nodes=new Map,render=(args,context)=>{let{id,component:Component}=context;if(!Component)throw new Error(`Unable to render story ${id} as the component annotation is missing from the default export`);return React.createElement(Component,{...args})},WithCallback=({callback,children})=>{let once=useRef();return useLayoutEffect(()=>{once.current!==callback&&(once.current=callback,callback())},[callback]),children},renderElement=async(node,el)=>{let root=await getReactRoot(el);return new Promise(resolve=>{root?root.render(React.createElement(WithCallback,{callback:()=>resolve(null)},node)):ReactDOM.render(node,el,()=>resolve(null))})},canUseNewReactRootApi=reactDomVersion&&(reactDomVersion.startsWith("18")||reactDomVersion.startsWith("0.0.0")),shouldUseNewRootApi=FRAMEWORK_OPTIONS?.legacyRootApi!==!0,isUsingNewReactRootApi=shouldUseNewRootApi&&canUseNewReactRootApi,unmountElement=el=>{let root=nodes.get(el);root&&isUsingNewReactRootApi?(root.unmount(),nodes.delete(el)):ReactDOM.unmountComponentAtNode(el)},getReactRoot=async el=>{if(!isUsingNewReactRootApi)return null;let root=nodes.get(el);return root||(root=(await import("react-dom/client")).default.createRoot(el),nodes.set(el,root)),root},ErrorBoundary=class extends ReactComponent{constructor(){super(...arguments);this.state={hasError:!1}}static getDerivedStateFromError(){return{hasError:!0}}componentDidMount(){let{hasError}=this.state,{showMain}=this.props;hasError||showMain()}componentDidCatch(err){let{showException}=this.props;showException(err)}render(){let{hasError}=this.state,{children}=this.props;return hasError?null:children}},Wrapper=FRAMEWORK_OPTIONS?.strictMode?StrictMode:Fragment;async function renderToCanvas({storyContext,unboundStoryFn,showMain,showException,forceRemount},canvasElement){let content=React.createElement(ErrorBoundary,{showMain,showException},React.createElement(unboundStoryFn,{...storyContext})),element=Wrapper?React.createElement(Wrapper,null,content):content;return forceRemount&&unmountElement(canvasElement),await renderElement(element,canvasElement),()=>unmountElement(canvasElement)}export{render,renderToCanvas};
@@ -0,0 +1,22 @@
1
+ import * as lib_docs_tools_dist from 'lib/docs-tools/dist';
2
+ import { R as ReactRenderer, S as StoryFnReactReturnType } from './types-0a347bb9.js';
3
+ import * as lib_types_dist from 'lib/types/dist';
4
+ import { ArgsStoryFn, RenderContext } from '@storybook/types';
5
+ import 'react';
6
+
7
+ declare const decorators: ((storyFn: lib_types_dist.PartialStoryFn<ReactRenderer, lib_types_dist.Args>, context: lib_types_dist.StoryContext<ReactRenderer, lib_types_dist.Args>) => StoryFnReactReturnType)[];
8
+ declare const argTypesEnhancers: (<TRenderer extends lib_types_dist.Renderer>(context: lib_types_dist.StoryContextForEnhancers<TRenderer, lib_types_dist.Args>) => lib_types_dist.StrictArgTypes<lib_types_dist.Args>)[];
9
+
10
+ declare const render: ArgsStoryFn<ReactRenderer>;
11
+ declare function renderToCanvas({ storyContext, unboundStoryFn, showMain, showException, forceRemount, }: RenderContext<ReactRenderer>, canvasElement: ReactRenderer['canvasElement']): Promise<() => void>;
12
+
13
+ declare const parameters: {
14
+ docs: {
15
+ inlineStories: boolean;
16
+ extractArgTypes: lib_docs_tools_dist.ArgTypesExtractor;
17
+ extractComponentDescription: typeof lib_docs_tools_dist.extractComponentDescription;
18
+ };
19
+ framework: string;
20
+ };
21
+
22
+ export { argTypesEnhancers, decorators, parameters, render, renderToCanvas };
package/dist/config.js ADDED
@@ -0,0 +1,3 @@
1
+ "use strict";var nt=Object.create;var v=Object.defineProperty;var ot=Object.getOwnPropertyDescriptor;var st=Object.getOwnPropertyNames;var it=Object.getPrototypeOf,pt=Object.prototype.hasOwnProperty;var at=(e,t)=>{for(var r in t)v(e,r,{get:t[r],enumerable:!0})},le=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of st(t))!pt.call(e,o)&&o!==r&&v(e,o,{get:()=>t[o],enumerable:!(n=ot(t,o))||n.enumerable});return e};var l=(e,t,r)=>(r=e!=null?nt(it(e)):{},le(t||!e||!e.__esModule?v(r,"default",{value:e,enumerable:!0}):r,e)),ct=e=>le(v({},"__esModule",{value:!0}),e);var rr={};at(rr,{argTypesEnhancers:()=>Ge,decorators:()=>Ke,parameters:()=>tr,render:()=>et,renderToCanvas:()=>rt});module.exports=ct(rr);var z=require("@storybook/docs-tools");var pe=l(require("prop-types")),P=require("@storybook/docs-tools");var C=require("@storybook/docs-tools");function fe(e,t){let r=e!=null,n=t!=null;if(!r&&!n)return"";let o=[];if(r){let s=e.map(p=>{let a=p.getPrettyName(),i=p.getTypeName();return i!=null?`${a}: ${i}`:a});o.push(`(${s.join(", ")})`)}else o.push("()");return n&&o.push(`=> ${t.getTypeName()}`),o.join(" ")}function me(e,t){let r=e!=null,n=t!=null;if(!r&&!n)return"";let o=[];return r?o.push("( ... )"):o.push("()"),n&&o.push(`=> ${t.getTypeName()}`),o.join(" ")}function ye(e){return e.replace(/,/g,`,\r
2
+ `)}var w="custom",I="object",j="array",Te="class",y="func",T="element";var de=l(require("html-tags"));function x(e){return de.default.includes(e.toLowerCase())}var ge=require("escodegen"),Ee=require("ts-dedent"),Ie={format:{indent:{style:" "},semicolons:!1}},ut={...Ie,format:{newline:""}},lt={...Ie};function d(e,t=!1){return(0,ge.generate)(e,t?ut:lt)}function J(e,t=!1){return t?ft(e):d(e)}function ft(e){let t=d(e,!0);return t.endsWith(" }")||(t=`${t.slice(0,-1)} }`),t}function Z(e,t=!1){return t?yt(e):mt(e)}function mt(e){let t=d(e);return t.endsWith(" }]")&&(t=(0,Ee.dedent)(t)),t}function yt(e){let t=d(e,!0);return t.startsWith("[ ")&&(t=t.replace("[ ","[")),t}var _=e=>e.$$typeof===Symbol.for("react.memo"),he=e=>e.$$typeof===Symbol.for("react.forward_ref");var Ce=require("acorn"),Pe=l(require("acorn-jsx")),R=l(require("acorn-walk"));var ee={...R.base,JSXElement:()=>{}},Tt=Ce.Parser.extend((0,Pe.default)());function M(e){return e!=null?e.name:null}function Re(e){return e.filter(t=>t.type==="ObjectExpression"||t.type==="ArrayExpression")}function Ne(e){let t=[];return R.ancestor(e,{ObjectExpression(r,n){t.push(Re(n).length)},ArrayExpression(r,n){t.push(Re(n).length)}},ee),Math.max(...t)}function dt(e){return{inferredType:{type:"Identifier",identifier:M(e)},ast:e}}function gt(e){return{inferredType:{type:"Literal"},ast:e}}function Et(e){let t;R.simple(e.body,{JSXElement(s){t=s}},ee);let n={type:t!=null?"Element":"Function",params:e.params,hasParams:e.params.length!==0},o=M(e.id);return o!=null&&(n.identifier=o),{inferredType:n,ast:e}}function It(e){let t;return R.simple(e.body,{JSXElement(n){t=n}},ee),{inferredType:{type:t!=null?"Element":"Class",identifier:M(e.id)},ast:e}}function ht(e){let t={type:"Element"},r=M(e.openingElement.name);return r!=null&&(t.identifier=r),{inferredType:t,ast:e}}function Rt(e){let t=e.callee.type==="MemberExpression"?e.callee.property:e.callee;return M(t)==="shape"?Oe(e.arguments[0]):null}function Oe(e){return{inferredType:{type:"Object",depth:Ne(e)},ast:e}}function Ct(e){return{inferredType:{type:"Array",depth:Ne(e)},ast:e}}function Pt(e){switch(e.type){case"Identifier":return dt(e);case"Literal":return gt(e);case"FunctionExpression":case"ArrowFunctionExpression":return Et(e);case"ClassExpression":return It(e);case"JSXElement":return ht(e);case"CallExpression":return Rt(e);case"ObjectExpression":return Oe(e);case"ArrayExpression":return Ct(e);default:return null}}function xe(e){let t=Tt.parse(`(${e})`),r={inferredType:{type:"Unknown"},ast:t};if(t.body[0]!=null){let n=t.body[0];switch(n.type){case"ExpressionStatement":{let o=Pt(n.expression);o!=null&&(r=o);break}default:break}}return r}function f(e){try{return{...xe(e)}}catch{}return{inferredType:{type:"Unknown"}}}var Nt=150;function c({name:e,short:t,compact:r,full:n,inferredType:o}){return{name:e,short:t,compact:r,full:n??t,inferredType:o}}function Fe(e){return e.replace(/PropTypes./g,"").replace(/.isRequired/g,"")}function Ae(e){return e.split(/\r?\n/)}function B(e,t=!1){return Fe(J(e,t))}function Se(e,t=!1){return Fe(d(e,t))}function Ot(e){switch(e){case"Object":return I;case"Array":return j;case"Class":return Te;case"Function":return y;case"Element":return T;default:return w}}function je(e,t){let{inferredType:r,ast:n}=f(e),{type:o}=r,s,p,a;switch(o){case"Identifier":case"Literal":s=e,p=e;break;case"Object":{let{depth:i}=r;s=I,p=i===1?B(n,!0):null,a=B(n);break}case"Element":{let{identifier:i}=r;s=i!=null&&!x(i)?i:T,p=Ae(e).length===1?e:null,a=e;break}case"Array":{let{depth:i}=r;s=j,p=i<=2?Se(n,!0):null,a=Se(n);break}default:s=Ot(o),p=Ae(e).length===1?e:null,a=e;break}return c({name:t,short:s,compact:p,full:a,inferredType:o})}function xt({raw:e}){return e!=null?je(e,"custom"):c({name:"custom",short:w,compact:w})}function At(e){let{jsDocTags:t}=e;return t!=null&&(t.params!=null||t.returns!=null)?c({name:"func",short:me(t.params,t.returns),compact:null,full:fe(t.params,t.returns)}):c({name:"func",short:y,compact:y})}function St(e,t){let r=Object.keys(e.value).map(p=>`${p}: ${A(e.value[p],t).full}`).join(", "),{inferredType:n,ast:o}=f(`{ ${r} }`),{depth:s}=n;return c({name:"shape",short:I,compact:s===1&&o?B(o,!0):null,full:o?B(o):null})}function te(e){return`objectOf(${e})`}function bt(e,t){let{short:r,compact:n,full:o}=A(e.value,t);return c({name:"objectOf",short:te(r),compact:n!=null?te(n):null,full:o&&te(o)})}function Dt(e,t){if(Array.isArray(e.value)){let r=e.value.reduce((n,o)=>{let{short:s,compact:p,full:a}=A(o,t);return n.short.push(s),n.compact.push(p),n.full.push(a),n},{short:[],compact:[],full:[]});return c({name:"union",short:r.short.join(" | "),compact:r.compact.every(n=>n!=null)?r.compact.join(" | "):null,full:r.full.join(" | ")})}return c({name:"union",short:e.value,compact:null})}function Ft({value:e,computed:t}){return t?je(e,"enumvalue"):c({name:"enumvalue",short:e,compact:e})}function jt(e){if(Array.isArray(e.value)){let t=e.value.reduce((r,n)=>{let{short:o,compact:s,full:p}=Ft(n);return r.short.push(o),r.compact.push(s),r.full.push(p),r},{short:[],compact:[],full:[]});return c({name:"enum",short:t.short.join(" | "),compact:t.compact.every(r=>r!=null)?t.compact.join(" | "):null,full:t.full.join(" | ")})}return c({name:"enum",short:e.value,compact:e.value})}function re(e){return`${e}[]`}function be(e){return`[${e}]`}function De(e,t,r){return c({name:"arrayOf",short:re(e),compact:t!=null?be(t):null,full:r&&be(r)})}function Jt(e,t){let{name:r,short:n,compact:o,full:s,inferredType:p}=A(e.value,t);if(r==="custom"){if(p==="Object")return De(n,o,s)}else if(r==="shape")return De(n,o,s);return c({name:"arrayOf",short:re(n),compact:re(n)})}function A(e,t){try{switch(e.name){case"custom":return xt(e);case"func":return At(t);case"shape":return St(e,t);case"instanceOf":return c({name:"instanceOf",short:e.value,compact:e.value});case"objectOf":return bt(e,t);case"union":return Dt(e,t);case"enum":return jt(e);case"arrayOf":return Jt(e,t);default:return c({name:e.name,short:e.name,compact:e.name})}}catch(r){console.error(r)}return c({name:"unknown",short:"unknown",compact:"unknown"})}function Je(e){let{type:t}=e.docgenInfo;if(t==null)return null;try{switch(t.name){case"custom":case"shape":case"instanceOf":case"objectOf":case"union":case"enum":case"arrayOf":{let{short:r,compact:n,full:o}=A(t,e);return n!=null&&!(0,C.isTooLongForTypeSummary)(n)?(0,C.createSummaryValue)(n):o?(0,C.createSummaryValue)(r,o):(0,C.createSummaryValue)(r)}case"func":{let{short:r,full:n}=A(t,e),o=r,s;return n&&n.length<Nt?o=n:n&&(s=ye(n)),(0,C.createSummaryValue)(o,s)}default:return null}}catch(r){console.error(r)}return null}var g=require("@storybook/docs-tools");var L=require("@storybook/docs-tools");function Y({inferredType:e,ast:t}){let{depth:r}=e;if(r===1){let n=J(t,!0);if(!(0,L.isTooLongForDefaultValueSummary)(n))return(0,L.createSummaryValue)(n)}return(0,L.createSummaryValue)(I,J(t))}var U=require("@storybook/docs-tools");function W({inferredType:e,ast:t}){let{depth:r}=e;if(r<=2){let n=Z(t,!0);if(!(0,U.isTooLongForDefaultValueSummary)(n))return(0,U.createSummaryValue)(n)}return(0,U.createSummaryValue)(j,Z(t))}function V(e,t){return t?`${e}( ... )`:`${e}()`}function S(e){return`<${e} />`}function ne(e){let{type:t,identifier:r}=e;switch(t){case"Function":return V(r,e.hasParams);case"Element":return S(r);default:return r}}function Mt({inferredType:e,ast:t}){let{identifier:r}=e;if(r!=null)return(0,g.createSummaryValue)(ne(e),d(t));let n=d(t,!0);return(0,g.isTooLongForDefaultValueSummary)(n)?(0,g.createSummaryValue)(y,d(t)):(0,g.createSummaryValue)(n)}function Lt(e,t){let{inferredType:r}=t,{identifier:n}=r;if(n!=null&&!x(n)){let o=ne(r);return(0,g.createSummaryValue)(o,e)}return(0,g.isTooLongForDefaultValueSummary)(e)?(0,g.createSummaryValue)(T,e):(0,g.createSummaryValue)(e)}function X(e){try{let t=f(e);switch(t.inferredType.type){case"Object":return Y(t);case"Function":return Mt(t);case"Element":return Lt(e,t);case"Array":return W(t);default:return null}}catch(t){console.error(t)}return null}var Me=l(require("lodash/isPlainObject")),oe=l(require("lodash/isFunction")),Le=l(require("lodash/isString")),se=l(require("react-element-to-jsx-string")),m=require("@storybook/docs-tools");function Ue(e){return e.$$typeof!=null}function ie(e,t){let{name:r}=e;return r!==""&&r!=="anonymous"&&r!==t?r:null}var Ut=e=>(0,m.createSummaryValue)(JSON.stringify(e));function Vt(e){let{type:t}=e,{displayName:r}=t,n=(0,se.default)(e,{});if(r!=null){let o=S(r);return(0,m.createSummaryValue)(o,n)}if((0,Le.default)(t)&&x(t)){let s=(0,se.default)(e,{tabStop:0}).replace(/\r?\n|\r/g,"");if(!(0,m.isTooLongForDefaultValueSummary)(s))return(0,m.createSummaryValue)(s)}return(0,m.createSummaryValue)(T,n)}var kt=e=>{if(Ue(e)&&e.type!=null)return Vt(e);if((0,Me.default)(e)){let t=f(JSON.stringify(e));return Y(t)}if(Array.isArray(e)){let t=f(JSON.stringify(e));return W(t)}return(0,m.createSummaryValue)(I)},vt=(e,t)=>{let r=!1,n;if((0,oe.default)(e.render))r=!0;else if(e.prototype!=null&&(0,oe.default)(e.prototype.render))r=!0;else{let s;try{n=f(e.toString());let{hasParams:p,params:a}=n.inferredType;p?a.length===1&&a[0].type==="ObjectPattern"&&(s=e({})):s=e(),s!=null&&Ue(s)&&(r=!0)}catch{}}let o=ie(e,t.name);if(o!=null){if(r)return(0,m.createSummaryValue)(S(o));n!=null&&(n=f(e.toString()));let{hasParams:s}=n.inferredType;return(0,m.createSummaryValue)(V(o,s))}return(0,m.createSummaryValue)(r?T:y)},wt=e=>(0,m.createSummaryValue)(e.toString()),Ve={string:Ut,object:kt,function:vt,default:wt};function ke(e={}){return{...Ve,...e}}function H(e,t,r=Ve){try{switch(typeof e){case"string":return r.string(e,t);case"object":return r.object(e,t);case"function":return r.function(e,t);default:return r.default(e,t)}}catch(n){console.error(n)}return null}function ve(e,t){let{propTypes:r}=t;return r!=null?Object.keys(r).map(n=>e.find(o=>o.name===n)).filter(Boolean):e}var q=require("@storybook/docs-tools");var _t=(e,{name:t,type:r})=>{let n=r.summary==="element"||r.summary==="elementType",o=ie(e,t);if(o!=null){if(n)return(0,q.createSummaryValue)(S(o));let{hasParams:s}=f(e.toString()).inferredType;return(0,q.createSummaryValue)(V(o,s))}return(0,q.createSummaryValue)(n?T:y)},we=ke({function:_t});function $t(e,t){let{propDef:r}=e,n=Je(e);n!=null&&(r.type=n);let{defaultValue:o}=e.docgenInfo;if(o!=null&&o.value!=null){let s=X(o.value);s!=null&&(r.defaultValue=s)}else if(t!=null){let s=H(t,r,we);s!=null&&(r.defaultValue=s)}return r}function _e(e,t){let r=t.defaultProps!=null?t.defaultProps:{},n=e.map(o=>$t(o,r[o.propDef.name]));return ve(n,t)}function Bt(e,t){let{propDef:r}=e,{defaultValue:n}=e.docgenInfo;if(n!=null&&n.value!=null){let o=X(n.value);o!=null&&(r.defaultValue=o)}else if(t!=null){let o=H(t,r);o!=null&&(r.defaultValue=o)}return r}function $e(e){return e.map(t=>Bt(t))}var Be=new Map;Object.keys(pe.default).forEach(e=>{let t=pe.default[e];Be.set(t,e),Be.set(t.isRequired,e)});function Yt(e,t){let r=e;!(0,P.hasDocgen)(e)&&!e.propTypes&&_(e)&&(r=e.type);let n=(0,P.extractComponentProps)(r,t);if(n.length===0)return[];switch(n[0].typeSystem){case P.TypeSystem.JAVASCRIPT:return _e(n,e);case P.TypeSystem.TYPESCRIPT:return $e(n);default:return n.map(o=>o.propDef)}}var Ye=e=>({rows:Yt(e,"props")});var We=e=>{if(e){let{rows:t}=Ye(e);if(t)return t.reduce((r,n)=>{let{name:o,description:s,type:p,sbType:a,defaultValue:i,jsDocTags:h,required:F}=n;return r[o]={name:o,description:s,type:{required:F,...a},table:{type:p,jsDocTags:h,defaultValue:i}},r},{})}return null};var b=l(require("react")),K=l(require("react-element-to-jsx-string")),G=require("@storybook/preview-api"),N=require("@storybook/docs-tools"),k=require("@storybook/client-logger");var Wt=(e,t,r)=>typeof t.transformSource!="function"?e:t.transformSource(e,r),Xt=(e,t)=>{if(typeof e>"u")return k.logger.warn("Too many skip or undefined component"),null;let r=e,n=r.type;for(let i=0;i<t.skip;i+=1){if(typeof r>"u")return k.logger.warn("Cannot skip undefined element"),null;if(b.default.Children.count(r)>1)return k.logger.warn("Trying to skip an array of elements"),null;typeof r.props.children>"u"?(k.logger.warn("Not enough children to skip elements."),typeof r.type=="function"&&r.type.name===""&&(r=b.default.createElement(n,{...r.props}))):typeof r.props.children=="function"?r=r.props.children():r=r.props.children}let p={...typeof t.displayName=="string"?{showFunctions:!0,displayName:()=>t.displayName}:{displayName:i=>i.type.displayName||(i.type===Symbol.for("react.profiler")?"Profiler":null)||(0,N.getDocgenSection)(i.type,"displayName")||(i.type.name!=="_default"?i.type.name:null)||(typeof i.type=="function"?"No Display Name":null)||(he(i.type)?i.type.render.name:null)||(_(i.type)?i.type.type.name:null)||i.type},...{filterProps:(i,h)=>i!==void 0},...t};return b.default.Children.map(e,i=>{let h=typeof i=="number"?i.toString():i,E=(typeof K.default=="function"?K.default:K.default.default)(h,p);if(E.indexOf("&quot;")>-1){let ce=E.match(/\S+=\\"([^"]*)\\"/g);ce&&ce.forEach(ue=>{E=E.replace(ue,ue.replace(/&quot;/g,"'"))})}return E}).join(`
3
+ `).replace(/function\s+noRefCheck\(\)\s+\{\}/g,"() => {}")},Ht={skip:0,showFunctions:!1,enableBeautify:!0,showDefaultProps:!1},qt=e=>{var n;let t=(n=e==null?void 0:e.parameters.docs)==null?void 0:n.source,r=e==null?void 0:e.parameters.__isArgsStory;return(t==null?void 0:t.type)===N.SourceType.DYNAMIC?!1:!r||(t==null?void 0:t.code)||(t==null?void 0:t.type)===N.SourceType.CODE},Kt=e=>{var t,r;return((t=e.type)==null?void 0:t.displayName)==="MDXCreateElement"&&!!((r=e.props)!=null&&r.mdxType)},Xe=e=>{if(!Kt(e))return e;let{mdxType:t,originalType:r,children:n,...o}=e.props,s=[];return n&&(s=(Array.isArray(n)?n:[n]).map(Xe)),(0,b.createElement)(r,o,...s)},He=(e,t)=>{var F,E;let r=G.addons.getChannel(),n=qt(t),o="";(0,G.useEffect)(()=>{n||r.emit(N.SNIPPET_RENDERED,(t||{}).id,o)});let s=e();if(n)return s;let p={...Ht,...(t==null?void 0:t.parameters.jsx)||{}},a=(E=(F=t==null?void 0:t.parameters.docs)==null?void 0:F.source)!=null&&E.excludeDecorators?t.originalStoryFn(t.args,t):s,i=Xe(a),h=Xt(i,p);return h&&(o=Wt(h,p,t)),s};var qe={docs:{inlineStories:!0,extractArgTypes:We,extractComponentDescription:z.extractComponentDescription}},Ke=[He],Ge=[z.enhanceArgTypes];var Ze=l(require("global")),u=l(require("react")),O=l(require("react-dom")),{FRAMEWORK_OPTIONS:D}=Ze.default,Q=new Map,et=(e,t)=>{let{id:r,component:n}=t;if(!n)throw new Error(`Unable to render story ${r} as the component annotation is missing from the default export`);return u.default.createElement(n,{...e})},Gt=({callback:e,children:t})=>{let r=(0,u.useRef)();return(0,u.useLayoutEffect)(()=>{r.current!==e&&(r.current=e,e())},[e]),t},zt=async(e,t)=>{let r=await er(t);return new Promise(n=>{r?r.render(u.default.createElement(Gt,{callback:()=>n(null)},e)):O.default.render(e,t,()=>n(null))})},Qt=O.version&&(O.version.startsWith("18")||O.version.startsWith("0.0.0")),Zt=(D==null?void 0:D.legacyRootApi)!==!0,tt=Zt&&Qt,ze=e=>{let t=Q.get(e);t&&tt?(t.unmount(),Q.delete(e)):O.default.unmountComponentAtNode(e)},er=async e=>{if(!tt)return null;let t=Q.get(e);return t||(t=(await import("react-dom/client")).default.createRoot(e),Q.set(e,t)),t},ae=class extends u.Component{constructor(){super(...arguments);this.state={hasError:!1}}static getDerivedStateFromError(){return{hasError:!0}}componentDidMount(){let{hasError:r}=this.state,{showMain:n}=this.props;r||n()}componentDidCatch(r){let{showException:n}=this.props;n(r)}render(){let{hasError:r}=this.state,{children:n}=this.props;return r?null:n}},Qe=D!=null&&D.strictMode?u.StrictMode:u.Fragment;async function rt({storyContext:e,unboundStoryFn:t,showMain:r,showException:n,forceRemount:o},s){let a=u.default.createElement(ae,{showMain:r,showException:n},u.default.createElement(t,{...e})),i=Qe?u.default.createElement(Qe,null,a):a;return o&&ze(s),await zt(i,s),()=>ze(s)}var tr={framework:"react",...qe};0&&(module.exports={argTypesEnhancers,decorators,parameters,render,renderToCanvas});
@@ -0,0 +1,3 @@
1
+ import{render,renderToCanvas}from"./chunk-LSK4KSW4.mjs";import{extractComponentDescription,enhanceArgTypes}from"@storybook/docs-tools";import PropTypes from"prop-types";import{hasDocgen,extractComponentProps,TypeSystem}from"@storybook/docs-tools";import{createSummaryValue,isTooLongForTypeSummary}from"@storybook/docs-tools";function generateFuncSignature(params,returns){let hasParams=params!=null,hasReturns=returns!=null;if(!hasParams&&!hasReturns)return"";let funcParts=[];if(hasParams){let funcParams=params.map(x=>{let prettyName=x.getPrettyName(),typeName=x.getTypeName();return typeName!=null?`${prettyName}: ${typeName}`:prettyName});funcParts.push(`(${funcParams.join(", ")})`)}else funcParts.push("()");return hasReturns&&funcParts.push(`=> ${returns.getTypeName()}`),funcParts.join(" ")}function generateShortFuncSignature(params,returns){let hasParams=params!=null,hasReturns=returns!=null;if(!hasParams&&!hasReturns)return"";let funcParts=[];return hasParams?funcParts.push("( ... )"):funcParts.push("()"),hasReturns&&funcParts.push(`=> ${returns.getTypeName()}`),funcParts.join(" ")}function toMultilineSignature(signature){return signature.replace(/,/g,`,\r
2
+ `)}var CUSTOM_CAPTION="custom",OBJECT_CAPTION="object",ARRAY_CAPTION="array",CLASS_CAPTION="class",FUNCTION_CAPTION="func",ELEMENT_CAPTION="element";import htmlTags from"html-tags";function isHtmlTag(tagName){return htmlTags.includes(tagName.toLowerCase())}import{generate}from"escodegen";import{dedent}from"ts-dedent";var BASIC_OPTIONS={format:{indent:{style:" "},semicolons:!1}},COMPACT_OPTIONS={...BASIC_OPTIONS,format:{newline:""}},PRETTY_OPTIONS={...BASIC_OPTIONS};function generateCode(ast,compact=!1){return generate(ast,compact?COMPACT_OPTIONS:PRETTY_OPTIONS)}function generateObjectCode(ast,compact=!1){return compact?generateCompactObjectCode(ast):generateCode(ast)}function generateCompactObjectCode(ast){let result=generateCode(ast,!0);return result.endsWith(" }")||(result=`${result.slice(0,-1)} }`),result}function generateArrayCode(ast,compact=!1){return compact?generateCompactArrayCode(ast):generateMultilineArrayCode(ast)}function generateMultilineArrayCode(ast){let result=generateCode(ast);return result.endsWith(" }]")&&(result=dedent(result)),result}function generateCompactArrayCode(ast){let result=generateCode(ast,!0);return result.startsWith("[ ")&&(result=result.replace("[ ","[")),result}var isMemo=component=>component.$$typeof===Symbol.for("react.memo"),isForwardRef=component=>component.$$typeof===Symbol.for("react.forward_ref");import{Parser}from"acorn";import jsx from"acorn-jsx";import*as acornWalk from"acorn-walk";var ACORN_WALK_VISITORS={...acornWalk.base,JSXElement:()=>{}},acornParser=Parser.extend(jsx());function extractIdentifierName(identifierNode){return identifierNode!=null?identifierNode.name:null}function filterAncestors(ancestors){return ancestors.filter(x=>x.type==="ObjectExpression"||x.type==="ArrayExpression")}function calculateNodeDepth(node){let depths=[];return acornWalk.ancestor(node,{ObjectExpression(_,ancestors){depths.push(filterAncestors(ancestors).length)},ArrayExpression(_,ancestors){depths.push(filterAncestors(ancestors).length)}},ACORN_WALK_VISITORS),Math.max(...depths)}function parseIdentifier(identifierNode){return{inferredType:{type:"Identifier",identifier:extractIdentifierName(identifierNode)},ast:identifierNode}}function parseLiteral(literalNode){return{inferredType:{type:"Literal"},ast:literalNode}}function parseFunction(funcNode){let innerJsxElementNode;acornWalk.simple(funcNode.body,{JSXElement(node){innerJsxElementNode=node}},ACORN_WALK_VISITORS);let inferredType={type:innerJsxElementNode!=null?"Element":"Function",params:funcNode.params,hasParams:funcNode.params.length!==0},identifierName=extractIdentifierName(funcNode.id);return identifierName!=null&&(inferredType.identifier=identifierName),{inferredType,ast:funcNode}}function parseClass(classNode){let innerJsxElementNode;return acornWalk.simple(classNode.body,{JSXElement(node){innerJsxElementNode=node}},ACORN_WALK_VISITORS),{inferredType:{type:innerJsxElementNode!=null?"Element":"Class",identifier:extractIdentifierName(classNode.id)},ast:classNode}}function parseJsxElement(jsxElementNode){let inferredType={type:"Element"},identifierName=extractIdentifierName(jsxElementNode.openingElement.name);return identifierName!=null&&(inferredType.identifier=identifierName),{inferredType,ast:jsxElementNode}}function parseCall(callNode){let identifierNode=callNode.callee.type==="MemberExpression"?callNode.callee.property:callNode.callee;return extractIdentifierName(identifierNode)==="shape"?parseObject(callNode.arguments[0]):null}function parseObject(objectNode){return{inferredType:{type:"Object",depth:calculateNodeDepth(objectNode)},ast:objectNode}}function parseArray(arrayNode){return{inferredType:{type:"Array",depth:calculateNodeDepth(arrayNode)},ast:arrayNode}}function parseExpression(expression){switch(expression.type){case"Identifier":return parseIdentifier(expression);case"Literal":return parseLiteral(expression);case"FunctionExpression":case"ArrowFunctionExpression":return parseFunction(expression);case"ClassExpression":return parseClass(expression);case"JSXElement":return parseJsxElement(expression);case"CallExpression":return parseCall(expression);case"ObjectExpression":return parseObject(expression);case"ArrayExpression":return parseArray(expression);default:return null}}function parse(value){let ast=acornParser.parse(`(${value})`),parsingResult={inferredType:{type:"Unknown"},ast};if(ast.body[0]!=null){let rootNode=ast.body[0];switch(rootNode.type){case"ExpressionStatement":{let expressionResult=parseExpression(rootNode.expression);expressionResult!=null&&(parsingResult=expressionResult);break}default:break}}return parsingResult}function inspectValue(value){try{return{...parse(value)}}catch{}return{inferredType:{type:"Unknown"}}}var MAX_FUNC_LENGTH=150;function createTypeDef({name,short,compact,full,inferredType}){return{name,short,compact,full:full??short,inferredType}}function cleanPropTypes(value){return value.replace(/PropTypes./g,"").replace(/.isRequired/g,"")}function splitIntoLines(value){return value.split(/\r?\n/)}function prettyObject(ast,compact=!1){return cleanPropTypes(generateObjectCode(ast,compact))}function prettyArray(ast,compact=!1){return cleanPropTypes(generateCode(ast,compact))}function getCaptionForInspectionType(type){switch(type){case"Object":return OBJECT_CAPTION;case"Array":return ARRAY_CAPTION;case"Class":return CLASS_CAPTION;case"Function":return FUNCTION_CAPTION;case"Element":return ELEMENT_CAPTION;default:return CUSTOM_CAPTION}}function generateTypeFromString(value,originalTypeName){let{inferredType,ast}=inspectValue(value),{type}=inferredType,short,compact,full;switch(type){case"Identifier":case"Literal":short=value,compact=value;break;case"Object":{let{depth}=inferredType;short=OBJECT_CAPTION,compact=depth===1?prettyObject(ast,!0):null,full=prettyObject(ast);break}case"Element":{let{identifier}=inferredType;short=identifier!=null&&!isHtmlTag(identifier)?identifier:ELEMENT_CAPTION,compact=splitIntoLines(value).length===1?value:null,full=value;break}case"Array":{let{depth}=inferredType;short=ARRAY_CAPTION,compact=depth<=2?prettyArray(ast,!0):null,full=prettyArray(ast);break}default:short=getCaptionForInspectionType(type),compact=splitIntoLines(value).length===1?value:null,full=value;break}return createTypeDef({name:originalTypeName,short,compact,full,inferredType:type})}function generateCustom({raw}){return raw!=null?generateTypeFromString(raw,"custom"):createTypeDef({name:"custom",short:CUSTOM_CAPTION,compact:CUSTOM_CAPTION})}function generateFunc(extractedProp){let{jsDocTags}=extractedProp;return jsDocTags!=null&&(jsDocTags.params!=null||jsDocTags.returns!=null)?createTypeDef({name:"func",short:generateShortFuncSignature(jsDocTags.params,jsDocTags.returns),compact:null,full:generateFuncSignature(jsDocTags.params,jsDocTags.returns)}):createTypeDef({name:"func",short:FUNCTION_CAPTION,compact:FUNCTION_CAPTION})}function generateShape(type,extractedProp){let fields=Object.keys(type.value).map(key=>`${key}: ${generateType(type.value[key],extractedProp).full}`).join(", "),{inferredType,ast}=inspectValue(`{ ${fields} }`),{depth}=inferredType;return createTypeDef({name:"shape",short:OBJECT_CAPTION,compact:depth===1&&ast?prettyObject(ast,!0):null,full:ast?prettyObject(ast):null})}function objectOf(of){return`objectOf(${of})`}function generateObjectOf(type,extractedProp){let{short,compact,full}=generateType(type.value,extractedProp);return createTypeDef({name:"objectOf",short:objectOf(short),compact:compact!=null?objectOf(compact):null,full:full&&objectOf(full)})}function generateUnion(type,extractedProp){if(Array.isArray(type.value)){let values=type.value.reduce((acc,v)=>{let{short,compact,full}=generateType(v,extractedProp);return acc.short.push(short),acc.compact.push(compact),acc.full.push(full),acc},{short:[],compact:[],full:[]});return createTypeDef({name:"union",short:values.short.join(" | "),compact:values.compact.every(x=>x!=null)?values.compact.join(" | "):null,full:values.full.join(" | ")})}return createTypeDef({name:"union",short:type.value,compact:null})}function generateEnumValue({value,computed}){return computed?generateTypeFromString(value,"enumvalue"):createTypeDef({name:"enumvalue",short:value,compact:value})}function generateEnum(type){if(Array.isArray(type.value)){let values=type.value.reduce((acc,v)=>{let{short,compact,full}=generateEnumValue(v);return acc.short.push(short),acc.compact.push(compact),acc.full.push(full),acc},{short:[],compact:[],full:[]});return createTypeDef({name:"enum",short:values.short.join(" | "),compact:values.compact.every(x=>x!=null)?values.compact.join(" | "):null,full:values.full.join(" | ")})}return createTypeDef({name:"enum",short:type.value,compact:type.value})}function braceAfter(of){return`${of}[]`}function braceAround(of){return`[${of}]`}function createArrayOfObjectTypeDef(short,compact,full){return createTypeDef({name:"arrayOf",short:braceAfter(short),compact:compact!=null?braceAround(compact):null,full:full&&braceAround(full)})}function generateArray(type,extractedProp){let{name,short,compact,full,inferredType}=generateType(type.value,extractedProp);if(name==="custom"){if(inferredType==="Object")return createArrayOfObjectTypeDef(short,compact,full)}else if(name==="shape")return createArrayOfObjectTypeDef(short,compact,full);return createTypeDef({name:"arrayOf",short:braceAfter(short),compact:braceAfter(short)})}function generateType(type,extractedProp){try{switch(type.name){case"custom":return generateCustom(type);case"func":return generateFunc(extractedProp);case"shape":return generateShape(type,extractedProp);case"instanceOf":return createTypeDef({name:"instanceOf",short:type.value,compact:type.value});case"objectOf":return generateObjectOf(type,extractedProp);case"union":return generateUnion(type,extractedProp);case"enum":return generateEnum(type);case"arrayOf":return generateArray(type,extractedProp);default:return createTypeDef({name:type.name,short:type.name,compact:type.name})}}catch(e){console.error(e)}return createTypeDef({name:"unknown",short:"unknown",compact:"unknown"})}function createType(extractedProp){let{type}=extractedProp.docgenInfo;if(type==null)return null;try{switch(type.name){case"custom":case"shape":case"instanceOf":case"objectOf":case"union":case"enum":case"arrayOf":{let{short,compact,full}=generateType(type,extractedProp);return compact!=null&&!isTooLongForTypeSummary(compact)?createSummaryValue(compact):full?createSummaryValue(short,full):createSummaryValue(short)}case"func":{let{short,full}=generateType(type,extractedProp),summary=short,detail;return full&&full.length<MAX_FUNC_LENGTH?summary=full:full&&(detail=toMultilineSignature(full)),createSummaryValue(summary,detail)}default:return null}}catch(e){console.error(e)}return null}import{createSummaryValue as createSummaryValue4,isTooLongForDefaultValueSummary as isTooLongForDefaultValueSummary3}from"@storybook/docs-tools";import{createSummaryValue as createSummaryValue2,isTooLongForDefaultValueSummary}from"@storybook/docs-tools";function generateObject({inferredType,ast}){let{depth}=inferredType;if(depth===1){let compactObject=generateObjectCode(ast,!0);if(!isTooLongForDefaultValueSummary(compactObject))return createSummaryValue2(compactObject)}return createSummaryValue2(OBJECT_CAPTION,generateObjectCode(ast))}import{createSummaryValue as createSummaryValue3,isTooLongForDefaultValueSummary as isTooLongForDefaultValueSummary2}from"@storybook/docs-tools";function generateArray2({inferredType,ast}){let{depth}=inferredType;if(depth<=2){let compactArray=generateArrayCode(ast,!0);if(!isTooLongForDefaultValueSummary2(compactArray))return createSummaryValue3(compactArray)}return createSummaryValue3(ARRAY_CAPTION,generateArrayCode(ast))}function getPrettyFuncIdentifier(identifier,hasArguments){return hasArguments?`${identifier}( ... )`:`${identifier}()`}function getPrettyElementIdentifier(identifier){return`<${identifier} />`}function getPrettyIdentifier(inferredType){let{type,identifier}=inferredType;switch(type){case"Function":return getPrettyFuncIdentifier(identifier,inferredType.hasParams);case"Element":return getPrettyElementIdentifier(identifier);default:return identifier}}function generateFunc2({inferredType,ast}){let{identifier}=inferredType;if(identifier!=null)return createSummaryValue4(getPrettyIdentifier(inferredType),generateCode(ast));let prettyCaption=generateCode(ast,!0);return isTooLongForDefaultValueSummary3(prettyCaption)?createSummaryValue4(FUNCTION_CAPTION,generateCode(ast)):createSummaryValue4(prettyCaption)}function generateElement(defaultValue,inspectionResult){let{inferredType}=inspectionResult,{identifier}=inferredType;if(identifier!=null&&!isHtmlTag(identifier)){let prettyIdentifier=getPrettyIdentifier(inferredType);return createSummaryValue4(prettyIdentifier,defaultValue)}return isTooLongForDefaultValueSummary3(defaultValue)?createSummaryValue4(ELEMENT_CAPTION,defaultValue):createSummaryValue4(defaultValue)}function createDefaultValue(defaultValue){try{let inspectionResult=inspectValue(defaultValue);switch(inspectionResult.inferredType.type){case"Object":return generateObject(inspectionResult);case"Function":return generateFunc2(inspectionResult);case"Element":return generateElement(defaultValue,inspectionResult);case"Array":return generateArray2(inspectionResult);default:return null}}catch(e){console.error(e)}return null}import isPlainObject from"lodash/isPlainObject";import isFunction from"lodash/isFunction";import isString from"lodash/isString";import reactElementToJSXString from"react-element-to-jsx-string";import{createSummaryValue as createSummaryValue5,isTooLongForDefaultValueSummary as isTooLongForDefaultValueSummary4}from"@storybook/docs-tools";function isReactElement(element){return element.$$typeof!=null}function extractFunctionName(func,propName){let{name}=func;return name!==""&&name!=="anonymous"&&name!==propName?name:null}var stringResolver=rawDefaultProp=>createSummaryValue5(JSON.stringify(rawDefaultProp));function generateReactObject(rawDefaultProp){let{type}=rawDefaultProp,{displayName}=type,jsx2=reactElementToJSXString(rawDefaultProp,{});if(displayName!=null){let prettyIdentifier=getPrettyElementIdentifier(displayName);return createSummaryValue5(prettyIdentifier,jsx2)}if(isString(type)&&isHtmlTag(type)){let jsxSummary=reactElementToJSXString(rawDefaultProp,{tabStop:0}).replace(/\r?\n|\r/g,"");if(!isTooLongForDefaultValueSummary4(jsxSummary))return createSummaryValue5(jsxSummary)}return createSummaryValue5(ELEMENT_CAPTION,jsx2)}var objectResolver=rawDefaultProp=>{if(isReactElement(rawDefaultProp)&&rawDefaultProp.type!=null)return generateReactObject(rawDefaultProp);if(isPlainObject(rawDefaultProp)){let inspectionResult=inspectValue(JSON.stringify(rawDefaultProp));return generateObject(inspectionResult)}if(Array.isArray(rawDefaultProp)){let inspectionResult=inspectValue(JSON.stringify(rawDefaultProp));return generateArray2(inspectionResult)}return createSummaryValue5(OBJECT_CAPTION)},functionResolver=(rawDefaultProp,propDef)=>{let isElement=!1,inspectionResult;if(isFunction(rawDefaultProp.render))isElement=!0;else if(rawDefaultProp.prototype!=null&&isFunction(rawDefaultProp.prototype.render))isElement=!0;else{let innerElement;try{inspectionResult=inspectValue(rawDefaultProp.toString());let{hasParams,params}=inspectionResult.inferredType;hasParams?params.length===1&&params[0].type==="ObjectPattern"&&(innerElement=rawDefaultProp({})):innerElement=rawDefaultProp(),innerElement!=null&&isReactElement(innerElement)&&(isElement=!0)}catch{}}let funcName=extractFunctionName(rawDefaultProp,propDef.name);if(funcName!=null){if(isElement)return createSummaryValue5(getPrettyElementIdentifier(funcName));inspectionResult!=null&&(inspectionResult=inspectValue(rawDefaultProp.toString()));let{hasParams}=inspectionResult.inferredType;return createSummaryValue5(getPrettyFuncIdentifier(funcName,hasParams))}return createSummaryValue5(isElement?ELEMENT_CAPTION:FUNCTION_CAPTION)},defaultResolver=rawDefaultProp=>createSummaryValue5(rawDefaultProp.toString()),DEFAULT_TYPE_RESOLVERS={string:stringResolver,object:objectResolver,function:functionResolver,default:defaultResolver};function createTypeResolvers(customResolvers={}){return{...DEFAULT_TYPE_RESOLVERS,...customResolvers}}function createDefaultValueFromRawDefaultProp(rawDefaultProp,propDef,typeResolvers=DEFAULT_TYPE_RESOLVERS){try{switch(typeof rawDefaultProp){case"string":return typeResolvers.string(rawDefaultProp,propDef);case"object":return typeResolvers.object(rawDefaultProp,propDef);case"function":return typeResolvers.function(rawDefaultProp,propDef);default:return typeResolvers.default(rawDefaultProp,propDef)}}catch(e){console.error(e)}return null}function keepOriginalDefinitionOrder(extractedProps,component){let{propTypes}=component;return propTypes!=null?Object.keys(propTypes).map(x=>extractedProps.find(y=>y.name===x)).filter(Boolean):extractedProps}import{createSummaryValue as createSummaryValue6}from"@storybook/docs-tools";var funcResolver=(rawDefaultProp,{name,type})=>{let isElement=type.summary==="element"||type.summary==="elementType",funcName=extractFunctionName(rawDefaultProp,name);if(funcName!=null){if(isElement)return createSummaryValue6(getPrettyElementIdentifier(funcName));let{hasParams}=inspectValue(rawDefaultProp.toString()).inferredType;return createSummaryValue6(getPrettyFuncIdentifier(funcName,hasParams))}return createSummaryValue6(isElement?ELEMENT_CAPTION:FUNCTION_CAPTION)},rawDefaultPropTypeResolvers=createTypeResolvers({function:funcResolver});function enhancePropTypesProp(extractedProp,rawDefaultProp){let{propDef}=extractedProp,newtype=createType(extractedProp);newtype!=null&&(propDef.type=newtype);let{defaultValue}=extractedProp.docgenInfo;if(defaultValue!=null&&defaultValue.value!=null){let newDefaultValue=createDefaultValue(defaultValue.value);newDefaultValue!=null&&(propDef.defaultValue=newDefaultValue)}else if(rawDefaultProp!=null){let newDefaultValue=createDefaultValueFromRawDefaultProp(rawDefaultProp,propDef,rawDefaultPropTypeResolvers);newDefaultValue!=null&&(propDef.defaultValue=newDefaultValue)}return propDef}function enhancePropTypesProps(extractedProps,component){let rawDefaultProps=component.defaultProps!=null?component.defaultProps:{},enhancedProps=extractedProps.map(x=>enhancePropTypesProp(x,rawDefaultProps[x.propDef.name]));return keepOriginalDefinitionOrder(enhancedProps,component)}function enhanceTypeScriptProp(extractedProp,rawDefaultProp){let{propDef}=extractedProp,{defaultValue}=extractedProp.docgenInfo;if(defaultValue!=null&&defaultValue.value!=null){let newDefaultValue=createDefaultValue(defaultValue.value);newDefaultValue!=null&&(propDef.defaultValue=newDefaultValue)}else if(rawDefaultProp!=null){let newDefaultValue=createDefaultValueFromRawDefaultProp(rawDefaultProp,propDef);newDefaultValue!=null&&(propDef.defaultValue=newDefaultValue)}return propDef}function enhanceTypeScriptProps(extractedProps){return extractedProps.map(prop=>enhanceTypeScriptProp(prop))}var propTypesMap=new Map;Object.keys(PropTypes).forEach(typeName=>{let type=PropTypes[typeName];propTypesMap.set(type,typeName),propTypesMap.set(type.isRequired,typeName)});function getPropDefs(component,section){let processedComponent=component;!hasDocgen(component)&&!component.propTypes&&isMemo(component)&&(processedComponent=component.type);let extractedProps=extractComponentProps(processedComponent,section);if(extractedProps.length===0)return[];switch(extractedProps[0].typeSystem){case TypeSystem.JAVASCRIPT:return enhancePropTypesProps(extractedProps,component);case TypeSystem.TYPESCRIPT:return enhanceTypeScriptProps(extractedProps);default:return extractedProps.map(x=>x.propDef)}}var extractProps=component=>({rows:getPropDefs(component,"props")});var extractArgTypes=component=>{if(component){let{rows}=extractProps(component);if(rows)return rows.reduce((acc,row)=>{let{name,description,type,sbType,defaultValue:defaultSummary,jsDocTags,required}=row;return acc[name]={name,description,type:{required,...sbType},table:{type,jsDocTags,defaultValue:defaultSummary}},acc},{})}return null};import React,{createElement}from"react";import reactElementToJSXString2 from"react-element-to-jsx-string";import{addons,useEffect}from"@storybook/preview-api";import{SourceType,SNIPPET_RENDERED,getDocgenSection}from"@storybook/docs-tools";import{logger}from"@storybook/client-logger";var applyTransformSource=(domString,options,context)=>typeof options.transformSource!="function"?domString:options.transformSource(domString,context),renderJsx=(code,options)=>{if(typeof code>"u")return logger.warn("Too many skip or undefined component"),null;let renderedJSX=code,Type=renderedJSX.type;for(let i=0;i<options.skip;i+=1){if(typeof renderedJSX>"u")return logger.warn("Cannot skip undefined element"),null;if(React.Children.count(renderedJSX)>1)return logger.warn("Trying to skip an array of elements"),null;typeof renderedJSX.props.children>"u"?(logger.warn("Not enough children to skip elements."),typeof renderedJSX.type=="function"&&renderedJSX.type.name===""&&(renderedJSX=React.createElement(Type,{...renderedJSX.props}))):typeof renderedJSX.props.children=="function"?renderedJSX=renderedJSX.props.children():renderedJSX=renderedJSX.props.children}let opts={...typeof options.displayName=="string"?{showFunctions:!0,displayName:()=>options.displayName}:{displayName:el=>el.type.displayName||(el.type===Symbol.for("react.profiler")?"Profiler":null)||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},...{filterProps:(value,key)=>value!==void 0},...options};return React.Children.map(code,c=>{let child=typeof c=="number"?c.toString():c,string=(typeof reactElementToJSXString2=="function"?reactElementToJSXString2:reactElementToJSXString2.default)(child,opts);if(string.indexOf("&quot;")>-1){let matches=string.match(/\S+=\\"([^"]*)\\"/g);matches&&matches.forEach(match=>{string=string.replace(match,match.replace(/&quot;/g,"'"))})}return string}).join(`
3
+ `).replace(/function\s+noRefCheck\(\)\s+\{\}/g,"() => {}")},defaultOpts={skip:0,showFunctions:!1,enableBeautify:!0,showDefaultProps:!1},skipJsxRender=context=>{let sourceParams=context?.parameters.docs?.source,isArgsStory=context?.parameters.__isArgsStory;return sourceParams?.type===SourceType.DYNAMIC?!1:!isArgsStory||sourceParams?.code||sourceParams?.type===SourceType.CODE},isMdx=node=>node.type?.displayName==="MDXCreateElement"&&!!node.props?.mdxType,mdxToJsx=node=>{if(!isMdx(node))return node;let{mdxType,originalType,children,...rest}=node.props,jsxChildren=[];return children&&(jsxChildren=(Array.isArray(children)?children:[children]).map(mdxToJsx)),createElement(originalType,rest,...jsxChildren)},jsxDecorator=(storyFn,context)=>{let channel=addons.getChannel(),skip=skipJsxRender(context),jsx2="";useEffect(()=>{skip||channel.emit(SNIPPET_RENDERED,(context||{}).id,jsx2)});let story=storyFn();if(skip)return story;let options={...defaultOpts,...context?.parameters.jsx||{}},storyJsx=context?.parameters.docs?.source?.excludeDecorators?context.originalStoryFn(context.args,context):story,sourceJsx=mdxToJsx(storyJsx),rendered=renderJsx(sourceJsx,options);return rendered&&(jsx2=applyTransformSource(rendered,options,context)),story};var parameters={docs:{inlineStories:!0,extractArgTypes,extractComponentDescription}},decorators=[jsxDecorator],argTypesEnhancers=[enhanceArgTypes];var parameters2={framework:"react",...parameters};export{argTypesEnhancers,decorators,parameters2 as parameters,render,renderToCanvas};
@@ -0,0 +1,193 @@
1
+ import * as _storybook_types from '@storybook/types';
2
+ import { Addon_ClientStoryApi, Addon_Loadable, Args, ComponentAnnotations, AnnotatedStoryFn, ArgsStoryFn, ArgsFromMeta, StoryAnnotations, DecoratorFunction, StrictArgs, LoaderFunction, StoryContext as StoryContext$1, ProjectAnnotations, ComposedStory, Store_CSFExports, StoriesWithPartialProps } from '@storybook/types';
3
+ export { ArgTypes, Args, Parameters, StrictArgs } from '@storybook/types';
4
+ import { R as ReactRenderer, S as StoryFnReactReturnType } from './types-0a347bb9.js';
5
+ export { R as ReactRenderer } from './types-0a347bb9.js';
6
+ import { ComponentType, ComponentProps, JSXElementConstructor } from 'react';
7
+ import { Simplify, SetOptional } from 'type-fest';
8
+
9
+ interface ClientApi extends Addon_ClientStoryApi<ReactRenderer['storyResult']> {
10
+ configure(loader: Addon_Loadable, module: NodeModule): void;
11
+ forceReRender(): void;
12
+ raw: () => any;
13
+ }
14
+ declare const storiesOf: ClientApi['storiesOf'];
15
+ declare const configure: ClientApi['configure'];
16
+ declare const forceReRender: ClientApi['forceReRender'];
17
+ declare const raw: ClientApi['raw'];
18
+
19
+ type JSXElement = keyof JSX.IntrinsicElements | JSXElementConstructor<any>;
20
+ /**
21
+ * Metadata to configure the stories for a component.
22
+ *
23
+ * @see [Default export](https://storybook.js.org/docs/formats/component-story-format/#default-export)
24
+ */
25
+ type Meta<TCmpOrArgs = Args> = TCmpOrArgs extends ComponentType<any> ? ComponentAnnotations<ReactRenderer, ComponentProps<TCmpOrArgs>> : ComponentAnnotations<ReactRenderer, TCmpOrArgs>;
26
+ /**
27
+ * Story function that represents a CSFv2 component example.
28
+ *
29
+ * @see [Named Story exports](https://storybook.js.org/docs/formats/component-story-format/#named-story-exports)
30
+ */
31
+ type StoryFn<TCmpOrArgs = Args> = TCmpOrArgs extends ComponentType<any> ? AnnotatedStoryFn<ReactRenderer, ComponentProps<TCmpOrArgs>> : AnnotatedStoryFn<ReactRenderer, TCmpOrArgs>;
32
+ /**
33
+ * Story function that represents a CSFv3 component example.
34
+ *
35
+ * @see [Named Story exports](https://storybook.js.org/docs/formats/component-story-format/#named-story-exports)
36
+ */
37
+ type StoryObj<TMetaOrCmpOrArgs = Args> = TMetaOrCmpOrArgs extends {
38
+ render?: ArgsStoryFn<ReactRenderer, any>;
39
+ component?: infer Component;
40
+ args?: infer DefaultArgs;
41
+ } ? Simplify<(Component extends ComponentType<any> ? ComponentProps<Component> : unknown) & ArgsFromMeta<ReactRenderer, TMetaOrCmpOrArgs>> extends infer TArgs ? StoryAnnotations<ReactRenderer, TArgs, SetOptional<TArgs, keyof TArgs & keyof (DefaultArgs & ActionArgs<TArgs>)>> : never : TMetaOrCmpOrArgs extends ComponentType<any> ? StoryAnnotations<ReactRenderer, ComponentProps<TMetaOrCmpOrArgs>> : StoryAnnotations<ReactRenderer, TMetaOrCmpOrArgs>;
42
+ type ActionArgs<TArgs> = {
43
+ [P in keyof TArgs as TArgs[P] extends (...args: any[]) => any ? ((...args: any[]) => void) extends TArgs[P] ? P : never : never]: TArgs[P];
44
+ };
45
+ /**
46
+ * @deprecated Use `Meta` instead, e.g. ComponentMeta<typeof Button> -> Meta<typeof Button>.
47
+ *
48
+ * For the common case where a component's stories are simple components that receives args as props:
49
+ *
50
+ * ```tsx
51
+ * export default { ... } as ComponentMeta<typeof Button>;
52
+ * ```
53
+ */
54
+ type ComponentMeta<T extends JSXElement> = Meta<ComponentProps<T>>;
55
+ /**
56
+ * @deprecated Use `StoryFn` instead, e.g. ComponentStoryFn<typeof Button> -> StoryFn<typeof Button>.
57
+ * Use `StoryObj` if you want to migrate to CSF3, which uses objects instead of functions to represent stories.
58
+ * You can read more about the CSF3 format here: https://storybook.js.org/blog/component-story-format-3-0/
59
+ *
60
+ * For the common case where a (CSFv2) story is a simple component that receives args as props:
61
+ *
62
+ * ```tsx
63
+ * const Template: ComponentStoryFn<typeof Button> = (args) => <Button {...args} />
64
+ * ```
65
+ */
66
+ type ComponentStoryFn<T extends JSXElement> = StoryFn<ComponentProps<T>>;
67
+ /**
68
+ * @deprecated Use `StoryObj` instead, e.g. ComponentStoryObj<typeof Button> -> StoryObj<typeof Button>.
69
+ *
70
+ * For the common case where a (CSFv3) story is a simple component that receives args as props:
71
+ *
72
+ * ```tsx
73
+ * const MyStory: ComponentStoryObj<typeof Button> = {
74
+ * args: { buttonArg1: 'val' },
75
+ * }
76
+ * ```
77
+ */
78
+ type ComponentStoryObj<T extends JSXElement> = StoryObj<ComponentProps<T>>;
79
+ /**
80
+ * @deprecated Use `StoryFn` instead.
81
+ * Use `StoryObj` if you want to migrate to CSF3, which uses objects instead of functions to represent stories.
82
+ * You can read more about the CSF3 format here: https://storybook.js.org/blog/component-story-format-3-0/
83
+ *
84
+ * Story function that represents a CSFv2 component example.
85
+ *
86
+ * @see [Named Story exports](https://storybook.js.org/docs/formats/component-story-format/#named-story-exports)
87
+ */
88
+ type Story<TArgs = Args> = StoryFn<TArgs>;
89
+ /**
90
+ * @deprecated Use `StoryFn` instead, e.g. ComponentStory<typeof Button> -> StoryFn<typeof Button>.
91
+ * Use `StoryObj` if you want to migrate to CSF3, which uses objects instead of functions to represent stories
92
+ * You can read more about the CSF3 format here: https://storybook.js.org/blog/component-story-format-3-0/.
93
+ *
94
+ * For the common case where a (CSFv3) story is a simple component that receives args as props:
95
+ *
96
+ * ```tsx
97
+ * const MyStory: ComponentStory<typeof Button> = {
98
+ * args: { buttonArg1: 'val' },
99
+ * }
100
+ * ```
101
+ */
102
+ type ComponentStory<T extends JSXElement> = ComponentStoryFn<T>;
103
+ /**
104
+ * @deprecated Use Decorator instead.
105
+ */
106
+ type DecoratorFn = DecoratorFunction<ReactRenderer>;
107
+ type Decorator<TArgs = StrictArgs> = DecoratorFunction<ReactRenderer, TArgs>;
108
+ type Loader<TArgs = StrictArgs> = LoaderFunction<ReactRenderer, TArgs>;
109
+ type StoryContext<TArgs = StrictArgs> = StoryContext$1<ReactRenderer, TArgs>;
110
+
111
+ /** Function that sets the globalConfig of your storybook. The global config is the preview module of your .storybook folder.
112
+ *
113
+ * It should be run a single time, so that your global config (e.g. decorators) is applied to your stories when using `composeStories` or `composeStory`.
114
+ *
115
+ * Example:
116
+ *```jsx
117
+ * // setup.js (for jest)
118
+ * import { setProjectAnnotations } from '@storybook/react';
119
+ * import * as projectAnnotations from './.storybook/preview';
120
+ *
121
+ * setProjectAnnotations(projectAnnotations);
122
+ *```
123
+ *
124
+ * @param projectAnnotations - e.g. (import * as projectAnnotations from '../.storybook/preview')
125
+ */
126
+ declare function setProjectAnnotations(projectAnnotations: ProjectAnnotations<ReactRenderer> | ProjectAnnotations<ReactRenderer>[]): void;
127
+ /** Preserved for users migrating from `@storybook/testing-react`.
128
+ *
129
+ * @deprecated Use setProjectAnnotations instead
130
+ */
131
+ declare function setGlobalConfig(projectAnnotations: ProjectAnnotations<ReactRenderer> | ProjectAnnotations<ReactRenderer>[]): void;
132
+ /**
133
+ * Function that will receive a story along with meta (e.g. a default export from a .stories file)
134
+ * and optionally projectAnnotations e.g. (import * from '../.storybook/preview)
135
+ * and will return a composed component that has all args/parameters/decorators/etc combined and applied to it.
136
+ *
137
+ *
138
+ * It's very useful for reusing a story in scenarios outside of Storybook like unit testing.
139
+ *
140
+ * Example:
141
+ *```jsx
142
+ * import { render } from '@testing-library/react';
143
+ * import { composeStory } from '@storybook/react';
144
+ * import Meta, { Primary as PrimaryStory } from './Button.stories';
145
+ *
146
+ * const Primary = composeStory(PrimaryStory, Meta);
147
+ *
148
+ * test('renders primary button with Hello World', () => {
149
+ * const { getByText } = render(<Primary>Hello world</Primary>);
150
+ * expect(getByText(/Hello world/i)).not.toBeNull();
151
+ * });
152
+ *```
153
+ *
154
+ * @param story
155
+ * @param componentAnnotations - e.g. (import Meta from './Button.stories')
156
+ * @param [projectAnnotations] - e.g. (import * as projectAnnotations from '../.storybook/preview') this can be applied automatically if you use `setProjectAnnotations` in your setup files.
157
+ * @param [exportsName] - in case your story does not contain a name and you want it to have a name.
158
+ */
159
+ declare function composeStory<TArgs extends Args = Args>(story: ComposedStory<ReactRenderer, TArgs>, componentAnnotations: Meta<TArgs | any>, projectAnnotations?: ProjectAnnotations<ReactRenderer>, exportsName?: string): {
160
+ (extraArgs: Partial<TArgs>): StoryFnReactReturnType;
161
+ storyName: string;
162
+ args: Args;
163
+ play: _storybook_types.ComposedStoryPlayFn;
164
+ parameters: _storybook_types.Parameters;
165
+ };
166
+ /**
167
+ * Function that will receive a stories import (e.g. `import * as stories from './Button.stories'`)
168
+ * and optionally projectAnnotations (e.g. `import * from '../.storybook/preview`)
169
+ * and will return an object containing all the stories passed, but now as a composed component that has all args/parameters/decorators/etc combined and applied to it.
170
+ *
171
+ *
172
+ * It's very useful for reusing stories in scenarios outside of Storybook like unit testing.
173
+ *
174
+ * Example:
175
+ *```jsx
176
+ * import { render } from '@testing-library/react';
177
+ * import { composeStories } from '@storybook/react';
178
+ * import * as stories from './Button.stories';
179
+ *
180
+ * const { Primary, Secondary } = composeStories(stories);
181
+ *
182
+ * test('renders primary button with Hello World', () => {
183
+ * const { getByText } = render(<Primary>Hello world</Primary>);
184
+ * expect(getByText(/Hello world/i)).not.toBeNull();
185
+ * });
186
+ *```
187
+ *
188
+ * @param csfExports - e.g. (import * as stories from './Button.stories')
189
+ * @param [projectAnnotations] - e.g. (import * as projectAnnotations from '../.storybook/preview') this can be applied automatically if you use `setProjectAnnotations` in your setup files.
190
+ */
191
+ declare function composeStories<TModule extends Store_CSFExports<ReactRenderer>>(csfExports: TModule, projectAnnotations?: ProjectAnnotations<ReactRenderer>): Omit<StoriesWithPartialProps<ReactRenderer, TModule>, keyof Store_CSFExports<_storybook_types.Renderer>>;
192
+
193
+ export { ComponentMeta, ComponentStory, ComponentStoryFn, ComponentStoryObj, Decorator, DecoratorFn, Loader, Meta, Story, StoryContext, StoryFn, StoryObj, composeStories, composeStory, configure, forceReRender, raw, setGlobalConfig, setProjectAnnotations, storiesOf };
package/dist/index.js ADDED
@@ -0,0 +1 @@
1
+ "use strict";var k=Object.create;var d=Object.defineProperty;var D=Object.getOwnPropertyDescriptor;var W=Object.getOwnPropertyNames;var U=Object.getPrototypeOf,_=Object.prototype.hasOwnProperty;var L=(e,t)=>{for(var o in t)d(e,o,{get:t[o],enumerable:!0})},A=(e,t,o,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let s of W(t))!_.call(e,s)&&s!==o&&d(e,s,{get:()=>t[s],enumerable:!(r=D(t,s))||r.enumerable});return e};var p=(e,t,o)=>(o=e!=null?k(U(e)):{},A(t||!e||!e.__esModule?d(o,"default",{value:e,enumerable:!0}):o,e)),N=e=>A(d({},"__esModule",{value:!0}),e);var Z={};L(Z,{composeStories:()=>X,composeStory:()=>v,configure:()=>q,forceReRender:()=>z,raw:()=>H,setGlobalConfig:()=>J,setProjectAnnotations:()=>M,storiesOf:()=>$});module.exports=N(Z);var g=p(require("global")),{window:C}=g.default;C&&(C.STORYBOOK_ENV="react");var P=require("@storybook/preview-api");var S=p(require("global")),n=p(require("react")),i=p(require("react-dom")),{FRAMEWORK_OPTIONS:a}=S.default,m=new Map,R=(e,t)=>{let{id:o,component:r}=t;if(!r)throw new Error(`Unable to render story ${o} as the component annotation is missing from the default export`);return n.default.createElement(r,{...e})},G=({callback:e,children:t})=>{let o=(0,n.useRef)();return(0,n.useLayoutEffect)(()=>{o.current!==e&&(o.current=e,e())},[e]),t},V=async(e,t)=>{let o=await Y(t);return new Promise(r=>{o?o.render(n.default.createElement(G,{callback:()=>r(null)},e)):i.default.render(e,t,()=>r(null))})},B=i.version&&(i.version.startsWith("18")||i.version.startsWith("0.0.0")),O=(a==null?void 0:a.legacyRootApi)!==!0,w=O&&B,h=e=>{let t=m.get(e);t&&w?(t.unmount(),m.delete(e)):i.default.unmountComponentAtNode(e)},Y=async e=>{if(!w)return null;let t=m.get(e);return t||(t=(await import("react-dom/client")).default.createRoot(e),m.set(e,t)),t},u=class extends n.Component{constructor(){super(...arguments);this.state={hasError:!1}}static getDerivedStateFromError(){return{hasError:!0}}componentDidMount(){let{hasError:o}=this.state,{showMain:r}=this.props;o||r()}componentDidCatch(o){let{showException:r}=this.props;r(o)}render(){let{hasError:o}=this.state,{children:r}=this.props;return o?null:r}},x=a!=null&&a.strictMode?n.StrictMode:n.Fragment;async function E({storyContext:e,unboundStoryFn:t,showMain:o,showException:r,forceRemount:s},f){let y=n.default.createElement(u,{showMain:o,showException:r},n.default.createElement(t,{...e})),T=x?n.default.createElement(x,null,y):y;return s&&h(f),await V(T,f),()=>h(f)}var b="react",l=(0,P.start)(E,{render:R}),$=(e,t)=>l.clientApi.storiesOf(e,t).addParameters({framework:b}),q=(...e)=>l.configure(b,...e),z=l.forceReRender,H=l.clientApi.raw;var c=require("@storybook/preview-api"),j=require("@storybook/client-logger");function M(e){(0,c.setProjectAnnotations)(e)}function J(e){(0,j.deprecate)("setGlobalConfig is deprecated. Use setProjectAnnotations instead."),M(e)}var Q={render:R};function v(e,t,o,r){return(0,c.composeStory)(e,t,o,Q,r)}function X(e,t){return(0,c.composeStories)(e,t,v)}var F;(F=module==null?void 0:module.hot)==null||F.decline();0&&(module.exports={composeStories,composeStory,configure,forceReRender,raw,setGlobalConfig,setProjectAnnotations,storiesOf});
package/dist/index.mjs ADDED
@@ -0,0 +1 @@
1
+ import{render,renderToCanvas}from"./chunk-LSK4KSW4.mjs";import global from"global";var{window:globalWindow}=global;globalWindow&&(globalWindow.STORYBOOK_ENV="react");import{start}from"@storybook/preview-api";var FRAMEWORK="react",api=start(renderToCanvas,{render}),storiesOf=(kind,m)=>api.clientApi.storiesOf(kind,m).addParameters({framework:FRAMEWORK}),configure=(...args)=>api.configure(FRAMEWORK,...args),forceReRender=api.forceReRender,raw=api.clientApi.raw;import{composeStory as originalComposeStory,composeStories as originalComposeStories,setProjectAnnotations as originalSetProjectAnnotations}from"@storybook/preview-api";import{deprecate}from"@storybook/client-logger";function setProjectAnnotations(projectAnnotations){originalSetProjectAnnotations(projectAnnotations)}function setGlobalConfig(projectAnnotations){deprecate("setGlobalConfig is deprecated. Use setProjectAnnotations instead."),setProjectAnnotations(projectAnnotations)}var defaultProjectAnnotations={render};function composeStory(story,componentAnnotations,projectAnnotations,exportsName){return originalComposeStory(story,componentAnnotations,projectAnnotations,defaultProjectAnnotations,exportsName)}function composeStories(csfExports,projectAnnotations){return originalComposeStories(csfExports,projectAnnotations,composeStory)}module?.hot?.decline();export{composeStories,composeStory,configure,forceReRender,raw,setGlobalConfig,setProjectAnnotations,storiesOf};
@@ -0,0 +1,10 @@
1
+ import { ComponentType, ReactElement } from 'react';
2
+ import { WebRenderer } from '@storybook/types';
3
+
4
+ interface ReactRenderer extends WebRenderer {
5
+ component: ComponentType<this['T']>;
6
+ storyResult: StoryFnReactReturnType;
7
+ }
8
+ type StoryFnReactReturnType = ReactElement<unknown>;
9
+
10
+ export { ReactRenderer as R, StoryFnReactReturnType as S };
package/jest.config.js ADDED
@@ -0,0 +1,7 @@
1
+ const path = require('path');
2
+ const baseConfig = require('../../jest.config.browser');
3
+
4
+ module.exports = {
5
+ ...baseConfig,
6
+ displayName: __dirname.split(path.sep).slice(-2).join(path.posix.sep),
7
+ };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@storybook/react",
3
- "version": "7.0.0-alpha.6",
3
+ "version": "7.0.0-alpha.60",
4
4
  "description": "Storybook React renderer",
5
5
  "keywords": [
6
6
  "storybook"
@@ -19,50 +19,70 @@
19
19
  "url": "https://opencollective.com/storybook"
20
20
  },
21
21
  "license": "MIT",
22
- "main": "dist/cjs/index.js",
23
- "module": "dist/esm/index.js",
24
- "types": "dist/types/index.d.ts",
22
+ "exports": {
23
+ ".": {
24
+ "require": "./dist/index.js",
25
+ "import": "./dist/index.mjs",
26
+ "types": "./dist/index.d.ts"
27
+ },
28
+ "./preview": {
29
+ "require": "./dist/config.js",
30
+ "import": "./dist/config.mjs",
31
+ "types": "./dist/config.d.ts"
32
+ },
33
+ "./package.json": {
34
+ "require": "./package.json",
35
+ "import": "./package.json",
36
+ "types": "./package.json"
37
+ }
38
+ },
39
+ "main": "dist/index.js",
40
+ "module": "dist/index.mjs",
41
+ "types": "dist/index.d.ts",
25
42
  "files": [
26
43
  "dist/**/*",
44
+ "template/**/*",
27
45
  "types/**/*",
28
46
  "README.md",
29
47
  "*.js",
30
48
  "*.d.ts"
31
49
  ],
32
50
  "scripts": {
33
- "prepare": "node ../../scripts/prepare.js"
51
+ "check": "../../../scripts/node_modules/.bin/tsc --noEmit",
52
+ "prep": "../../../scripts/prepare/bundle.ts"
34
53
  },
35
54
  "dependencies": {
36
- "@storybook/addons": "7.0.0-alpha.6",
37
- "@storybook/client-logger": "7.0.0-alpha.6",
38
- "@storybook/core-client": "7.0.0-alpha.6",
39
- "@storybook/csf": "0.0.2--canary.4566f4d.1",
40
- "@storybook/docs-tools": "7.0.0-alpha.6",
41
- "@storybook/store": "7.0.0-alpha.6",
55
+ "@storybook/client-logger": "7.0.0-alpha.60",
56
+ "@storybook/core-client": "7.0.0-alpha.60",
57
+ "@storybook/docs-tools": "7.0.0-alpha.60",
58
+ "@storybook/preview-api": "7.0.0-alpha.60",
59
+ "@storybook/types": "7.0.0-alpha.60",
42
60
  "@types/estree": "^0.0.51",
43
- "@types/node": "^14.14.20 || ^16.0.0",
61
+ "@types/node": "^16.0.0",
44
62
  "acorn": "^7.4.1",
45
63
  "acorn-jsx": "^5.3.1",
46
64
  "acorn-walk": "^7.2.0",
47
- "core-js": "^3.8.2",
48
65
  "escodegen": "^2.0.0",
49
66
  "global": "^4.4.0",
50
67
  "html-tags": "^3.1.0",
51
68
  "lodash": "^4.17.21",
52
69
  "prop-types": "^15.7.2",
53
- "react-element-to-jsx-string": "^14.3.4",
70
+ "react-element-to-jsx-string": "^15.0.0",
54
71
  "ts-dedent": "^2.0.0",
72
+ "type-fest": "^2.19.0",
55
73
  "util-deprecate": "^1.0.2"
56
74
  },
57
75
  "devDependencies": {
58
- "@babel/core": "^7.11.5",
59
- "@types/util-deprecate": "^1.0.0"
76
+ "@babel/core": "^7.20.2",
77
+ "@types/util-deprecate": "^1.0.0",
78
+ "expect-type": "^0.14.2",
79
+ "jest-specific-snapshot": "^7.0.0",
80
+ "require-from-string": "^2.0.2",
81
+ "typescript": "~4.9.3"
60
82
  },
61
83
  "peerDependencies": {
62
- "jest-specific-snapshot": "^4.0.0",
63
84
  "react": "^16.8.0 || ^17.0.0 || ^18.0.0",
64
- "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0",
65
- "require-from-string": "^2.0.2"
85
+ "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0"
66
86
  },
67
87
  "peerDependenciesMeta": {
68
88
  "typescript": {
@@ -75,5 +95,12 @@
75
95
  "publishConfig": {
76
96
  "access": "public"
77
97
  },
78
- "gitHead": "a88dcca40ba169a373bad33dd76e9a4bd4f1f5ec"
98
+ "bundler": {
99
+ "entries": [
100
+ "./src/index.ts",
101
+ "./src/config.ts"
102
+ ],
103
+ "platform": "browser"
104
+ },
105
+ "gitHead": "2b38f15a169d191e68f01abae0b109920d89fb39"
79
106
  }
package/preview.js CHANGED
@@ -1 +1 @@
1
- export * from './dist/esm/config';
1
+ export * from './dist/config.mjs';
@@ -0,0 +1,5 @@
1
+ {
2
+ "rules": {
3
+ "import/extensions": "off"
4
+ }
5
+ }
@@ -0,0 +1,50 @@
1
+ import React from 'react';
2
+ import PropTypes from 'prop-types';
3
+ import './button.css';
4
+
5
+ /**
6
+ * Primary UI component for user interaction
7
+ */
8
+ export const Button = ({ primary, backgroundColor, size, label, ...props }) => {
9
+ const mode = primary ? 'storybook-button--primary' : 'storybook-button--secondary';
10
+ return (
11
+ <button
12
+ type="button"
13
+ className={['storybook-button', `storybook-button--${size}`, mode].join(' ')}
14
+ style={backgroundColor && { backgroundColor }}
15
+ {...props}
16
+ >
17
+ {label}
18
+ </button>
19
+ );
20
+ };
21
+
22
+ Button.propTypes = {
23
+ /**
24
+ * Is this the principal call to action on the page?
25
+ */
26
+ primary: PropTypes.bool,
27
+ /**
28
+ * What background color to use
29
+ */
30
+ backgroundColor: PropTypes.string,
31
+ /**
32
+ * How large should the button be?
33
+ */
34
+ size: PropTypes.oneOf(['small', 'medium', 'large']),
35
+ /**
36
+ * Button contents
37
+ */
38
+ label: PropTypes.string.isRequired,
39
+ /**
40
+ * Optional click handler
41
+ */
42
+ onClick: PropTypes.func,
43
+ };
44
+
45
+ Button.defaultProps = {
46
+ backgroundColor: null,
47
+ primary: false,
48
+ size: 'medium',
49
+ onClick: undefined,
50
+ };
@@ -0,0 +1,39 @@
1
+ import { Button } from './Button';
2
+
3
+ // More on how to set up stories at: https://storybook.js.org/docs/7.0/react/writing-stories/introduction
4
+ export default {
5
+ title: 'Example/Button',
6
+ component: Button,
7
+ tags: ['docsPage'],
8
+ argTypes: {
9
+ backgroundColor: { control: 'color' },
10
+ },
11
+ };
12
+
13
+ // More on writing stories with args: https://storybook.js.org/docs/7.0/react/writing-stories/args
14
+ export const Primary = {
15
+ args: {
16
+ primary: true,
17
+ label: 'Button',
18
+ },
19
+ };
20
+
21
+ export const Secondary = {
22
+ args: {
23
+ label: 'Button',
24
+ },
25
+ };
26
+
27
+ export const Large = {
28
+ args: {
29
+ size: 'large',
30
+ label: 'Button',
31
+ },
32
+ };
33
+
34
+ export const Small = {
35
+ args: {
36
+ size: 'small',
37
+ label: 'Button',
38
+ },
39
+ };
@@ -0,0 +1,59 @@
1
+ import React from 'react';
2
+ import PropTypes from 'prop-types';
3
+
4
+ import { Button } from './Button';
5
+ import './header.css';
6
+
7
+ export const Header = ({ user, onLogin, onLogout, onCreateAccount }) => (
8
+ <header>
9
+ <div className="wrapper">
10
+ <div>
11
+ <svg width="32" height="32" viewBox="0 0 32 32" xmlns="http://www.w3.org/2000/svg">
12
+ <g fill="none" fillRule="evenodd">
13
+ <path
14
+ d="M10 0h12a10 10 0 0110 10v12a10 10 0 01-10 10H10A10 10 0 010 22V10A10 10 0 0110 0z"
15
+ fill="#FFF"
16
+ />
17
+ <path
18
+ d="M5.3 10.6l10.4 6v11.1l-10.4-6v-11zm11.4-6.2l9.7 5.5-9.7 5.6V4.4z"
19
+ fill="#555AB9"
20
+ />
21
+ <path
22
+ d="M27.2 10.6v11.2l-10.5 6V16.5l10.5-6zM15.7 4.4v11L6 10l9.7-5.5z"
23
+ fill="#91BAF8"
24
+ />
25
+ </g>
26
+ </svg>
27
+ <h1>Acme</h1>
28
+ </div>
29
+ <div>
30
+ {user ? (
31
+ <>
32
+ <span className="welcome">
33
+ Welcome, <b>{user.name}</b>!
34
+ </span>
35
+ <Button size="small" onClick={onLogout} label="Log out" />
36
+ </>
37
+ ) : (
38
+ <>
39
+ <Button size="small" onClick={onLogin} label="Log in" />
40
+ <Button primary size="small" onClick={onCreateAccount} label="Sign up" />
41
+ </>
42
+ )}
43
+ </div>
44
+ </div>
45
+ </header>
46
+ );
47
+
48
+ Header.propTypes = {
49
+ user: PropTypes.shape({
50
+ name: PropTypes.string.isRequired,
51
+ }),
52
+ onLogin: PropTypes.func.isRequired,
53
+ onLogout: PropTypes.func.isRequired,
54
+ onCreateAccount: PropTypes.func.isRequired,
55
+ };
56
+
57
+ Header.defaultProps = {
58
+ user: null,
59
+ };