@storybook/cli 6.5.0-alpha.9 → 6.5.0-beta.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (293) hide show
  1. package/bin/index.js +1 -0
  2. package/dist/cjs/add.js +3 -3
  3. package/dist/cjs/automigrate/fixes/builder-vite.js +122 -0
  4. package/dist/cjs/automigrate/fixes/eslint-plugin.js +3 -3
  5. package/dist/cjs/automigrate/fixes/index.js +3 -1
  6. package/dist/cjs/automigrate/fixes/mainjsFramework.js +2 -2
  7. package/dist/cjs/automigrate/fixes/webpack5.js +2 -2
  8. package/dist/cjs/automigrate/types.js +5 -1
  9. package/dist/cjs/babel-config.js +1 -1
  10. package/dist/cjs/detect.js +67 -4
  11. package/dist/cjs/extract.js +7 -2
  12. package/dist/cjs/frameworks/angular/Header.stories.ts +8 -3
  13. package/dist/cjs/frameworks/angular/Page.stories.ts +12 -10
  14. package/dist/cjs/frameworks/angular/header.component.ts +30 -19
  15. package/dist/cjs/frameworks/angular/page.component.ts +13 -27
  16. package/dist/cjs/frameworks/common/header.css +6 -0
  17. package/dist/cjs/frameworks/html/js/Header.js +2 -0
  18. package/dist/cjs/frameworks/html/js/Header.stories.js +8 -1
  19. package/dist/cjs/frameworks/html/js/Page.js +29 -2
  20. package/dist/cjs/frameworks/html/js/Page.stories.js +12 -13
  21. package/dist/cjs/frameworks/html/ts/Header.stories.ts +5 -0
  22. package/dist/cjs/frameworks/html/ts/Header.ts +3 -1
  23. package/dist/cjs/frameworks/html/ts/Page.stories.ts +12 -14
  24. package/dist/cjs/frameworks/html/ts/Page.ts +32 -8
  25. package/dist/cjs/frameworks/preact/Header.jsx +6 -1
  26. package/dist/cjs/frameworks/preact/Header.stories.jsx +7 -1
  27. package/dist/cjs/frameworks/preact/Page.jsx +62 -63
  28. package/dist/cjs/frameworks/preact/Page.stories.jsx +12 -9
  29. package/dist/cjs/frameworks/react/js/Header.jsx +6 -1
  30. package/dist/cjs/frameworks/react/js/Header.stories.jsx +7 -1
  31. package/dist/cjs/frameworks/react/js/Page.jsx +61 -63
  32. package/dist/cjs/frameworks/react/js/Page.stories.jsx +12 -9
  33. package/dist/cjs/frameworks/react/ts/Header.stories.tsx +7 -1
  34. package/dist/cjs/frameworks/react/ts/Header.tsx +11 -2
  35. package/dist/cjs/frameworks/react/ts/Page.stories.tsx +12 -9
  36. package/dist/cjs/frameworks/react/ts/Page.tsx +66 -60
  37. package/dist/cjs/frameworks/svelte/Button.stories.js +51 -0
  38. package/dist/cjs/frameworks/svelte/Header.stories.js +35 -0
  39. package/dist/cjs/frameworks/svelte/Header.svelte +3 -0
  40. package/dist/cjs/frameworks/svelte/Page.stories.js +27 -0
  41. package/dist/cjs/frameworks/svelte/Page.svelte +2 -16
  42. package/dist/cjs/frameworks/vue/Header.stories.js +7 -1
  43. package/dist/cjs/frameworks/vue/Header.vue +1 -0
  44. package/dist/cjs/frameworks/vue/Page.stories.js +15 -13
  45. package/dist/cjs/frameworks/vue/Page.vue +7 -7
  46. package/dist/cjs/frameworks/vue3/Header.stories.js +7 -1
  47. package/dist/cjs/frameworks/vue3/Header.vue +1 -0
  48. package/dist/cjs/frameworks/vue3/Page.stories.js +16 -17
  49. package/dist/cjs/frameworks/vue3/Page.vue +18 -8
  50. package/dist/cjs/frameworks/web-components/js/Page.js +2 -2
  51. package/dist/cjs/frameworks/web-components/ts/Page.ts +2 -2
  52. package/dist/cjs/generate.js +5 -0
  53. package/dist/cjs/generators/ANGULAR/angular-helpers.js +5 -5
  54. package/dist/cjs/generators/ANGULAR/index.js +2 -2
  55. package/dist/cjs/generators/ANGULAR/template-csf/.storybook/tsconfig.json +17 -5
  56. package/dist/cjs/generators/AURELIA/index.js +1 -1
  57. package/dist/cjs/generators/AURELIA/template-csf/.storybook/tsconfig.json +16 -5
  58. package/dist/cjs/generators/EMBER/index.js +1 -1
  59. package/dist/cjs/generators/HTML/index.js +1 -1
  60. package/dist/cjs/generators/METEOR/index.js +1 -1
  61. package/dist/cjs/generators/MITHRIL/index.js +1 -1
  62. package/dist/cjs/generators/PREACT/index.js +1 -1
  63. package/dist/cjs/generators/RAX/index.js +1 -1
  64. package/dist/cjs/generators/REACT_NATIVE/template-csf/storybook/addons.js +3 -3
  65. package/dist/cjs/generators/REACT_NATIVE/template-csf/storybook/rn-addons.js +2 -2
  66. package/dist/cjs/generators/REACT_SCRIPTS/index.js +9 -1
  67. package/dist/cjs/generators/RIOT/index.js +1 -1
  68. package/dist/cjs/generators/SERVER/index.js +1 -1
  69. package/dist/cjs/generators/SFC_VUE/index.js +1 -1
  70. package/dist/cjs/generators/SVELTE/index.js +0 -1
  71. package/dist/cjs/generators/VUE/index.js +1 -1
  72. package/dist/cjs/generators/VUE3/index.js +1 -1
  73. package/dist/cjs/generators/WEBPACK_REACT/index.js +1 -1
  74. package/dist/cjs/generators/baseGenerator.js +38 -4
  75. package/dist/cjs/generators/configure.js +3 -1
  76. package/dist/cjs/helpers.js +9 -8
  77. package/dist/cjs/initiate.js +44 -34
  78. package/dist/cjs/js-package-manager/JsPackageManager.js +8 -8
  79. package/dist/cjs/js-package-manager/PackageJson.js +5 -1
  80. package/dist/cjs/js-package-manager/PackageJsonHelper.js +1 -1
  81. package/dist/cjs/project_types.js +2 -1
  82. package/dist/cjs/repro-generators/configs.js +51 -8
  83. package/dist/cjs/repro-generators/scripts.js +46 -14
  84. package/dist/cjs/repro.js +3 -2
  85. package/dist/cjs/typings.d.ts +3 -0
  86. package/dist/cjs/upgrade.js +27 -9
  87. package/dist/cjs/versions.js +67 -0
  88. package/dist/cjs/window.d.js +5 -1
  89. package/dist/esm/add.js +3 -3
  90. package/dist/esm/automigrate/fixes/builder-vite.js +122 -0
  91. package/dist/esm/automigrate/fixes/eslint-plugin.js +3 -3
  92. package/dist/esm/automigrate/fixes/index.js +3 -1
  93. package/dist/esm/automigrate/fixes/mainjsFramework.js +2 -2
  94. package/dist/esm/automigrate/fixes/webpack5.js +2 -2
  95. package/dist/esm/automigrate/types.js +5 -1
  96. package/dist/esm/babel-config.js +1 -1
  97. package/dist/esm/detect.js +67 -4
  98. package/dist/esm/extract.js +7 -2
  99. package/dist/esm/frameworks/angular/Header.stories.ts +8 -3
  100. package/dist/esm/frameworks/angular/Page.stories.ts +12 -10
  101. package/dist/esm/frameworks/angular/header.component.ts +30 -19
  102. package/dist/esm/frameworks/angular/page.component.ts +13 -27
  103. package/dist/esm/frameworks/common/header.css +6 -0
  104. package/dist/esm/frameworks/html/js/Header.js +2 -0
  105. package/dist/esm/frameworks/html/js/Header.stories.js +8 -1
  106. package/dist/esm/frameworks/html/js/Page.js +29 -2
  107. package/dist/esm/frameworks/html/js/Page.stories.js +12 -13
  108. package/dist/esm/frameworks/html/ts/Header.stories.ts +5 -0
  109. package/dist/esm/frameworks/html/ts/Header.ts +3 -1
  110. package/dist/esm/frameworks/html/ts/Page.stories.ts +12 -14
  111. package/dist/esm/frameworks/html/ts/Page.ts +32 -8
  112. package/dist/esm/frameworks/preact/Header.jsx +6 -1
  113. package/dist/esm/frameworks/preact/Header.stories.jsx +7 -1
  114. package/dist/esm/frameworks/preact/Page.jsx +62 -63
  115. package/dist/esm/frameworks/preact/Page.stories.jsx +12 -9
  116. package/dist/esm/frameworks/react/js/Header.jsx +6 -1
  117. package/dist/esm/frameworks/react/js/Header.stories.jsx +7 -1
  118. package/dist/esm/frameworks/react/js/Page.jsx +61 -63
  119. package/dist/esm/frameworks/react/js/Page.stories.jsx +12 -9
  120. package/dist/esm/frameworks/react/ts/Header.stories.tsx +7 -1
  121. package/dist/esm/frameworks/react/ts/Header.tsx +11 -2
  122. package/dist/esm/frameworks/react/ts/Page.stories.tsx +12 -9
  123. package/dist/esm/frameworks/react/ts/Page.tsx +66 -60
  124. package/dist/esm/frameworks/svelte/Button.stories.js +51 -0
  125. package/dist/esm/frameworks/svelte/Header.stories.js +35 -0
  126. package/dist/esm/frameworks/svelte/Header.svelte +3 -0
  127. package/dist/esm/frameworks/svelte/Page.stories.js +27 -0
  128. package/dist/esm/frameworks/svelte/Page.svelte +2 -16
  129. package/dist/esm/frameworks/vue/Header.stories.js +7 -1
  130. package/dist/esm/frameworks/vue/Header.vue +1 -0
  131. package/dist/esm/frameworks/vue/Page.stories.js +15 -13
  132. package/dist/esm/frameworks/vue/Page.vue +7 -7
  133. package/dist/esm/frameworks/vue3/Header.stories.js +7 -1
  134. package/dist/esm/frameworks/vue3/Header.vue +1 -0
  135. package/dist/esm/frameworks/vue3/Page.stories.js +16 -17
  136. package/dist/esm/frameworks/vue3/Page.vue +18 -8
  137. package/dist/esm/frameworks/web-components/js/Page.js +2 -2
  138. package/dist/esm/frameworks/web-components/ts/Page.ts +2 -2
  139. package/dist/esm/generate.js +5 -0
  140. package/dist/esm/generators/ANGULAR/angular-helpers.js +5 -5
  141. package/dist/esm/generators/ANGULAR/index.js +2 -2
  142. package/dist/esm/generators/ANGULAR/template-csf/.storybook/tsconfig.json +17 -5
  143. package/dist/esm/generators/AURELIA/index.js +1 -1
  144. package/dist/esm/generators/AURELIA/template-csf/.storybook/tsconfig.json +16 -5
  145. package/dist/esm/generators/EMBER/index.js +1 -1
  146. package/dist/esm/generators/HTML/index.js +1 -1
  147. package/dist/esm/generators/METEOR/index.js +1 -1
  148. package/dist/esm/generators/MITHRIL/index.js +1 -1
  149. package/dist/esm/generators/PREACT/index.js +1 -1
  150. package/dist/esm/generators/RAX/index.js +1 -1
  151. package/dist/esm/generators/REACT_NATIVE/template-csf/storybook/addons.js +3 -3
  152. package/dist/esm/generators/REACT_NATIVE/template-csf/storybook/rn-addons.js +2 -2
  153. package/dist/esm/generators/REACT_SCRIPTS/index.js +9 -1
  154. package/dist/esm/generators/RIOT/index.js +1 -1
  155. package/dist/esm/generators/SERVER/index.js +1 -1
  156. package/dist/esm/generators/SFC_VUE/index.js +1 -1
  157. package/dist/esm/generators/SVELTE/index.js +0 -1
  158. package/dist/esm/generators/VUE/index.js +1 -1
  159. package/dist/esm/generators/VUE3/index.js +1 -1
  160. package/dist/esm/generators/WEBPACK_REACT/index.js +1 -1
  161. package/dist/esm/generators/baseGenerator.js +38 -4
  162. package/dist/esm/generators/configure.js +3 -1
  163. package/dist/esm/helpers.js +9 -8
  164. package/dist/esm/initiate.js +44 -34
  165. package/dist/esm/js-package-manager/JsPackageManager.js +8 -8
  166. package/dist/esm/js-package-manager/PackageJson.js +5 -1
  167. package/dist/esm/js-package-manager/PackageJsonHelper.js +1 -1
  168. package/dist/esm/project_types.js +2 -1
  169. package/dist/esm/repro-generators/configs.js +51 -8
  170. package/dist/esm/repro-generators/scripts.js +46 -14
  171. package/dist/esm/repro.js +3 -2
  172. package/dist/esm/typings.d.ts +3 -0
  173. package/dist/esm/upgrade.js +27 -9
  174. package/dist/esm/versions.js +67 -0
  175. package/dist/esm/window.d.js +5 -1
  176. package/dist/modern/add.js +3 -3
  177. package/dist/modern/automigrate/fixes/builder-vite.js +122 -0
  178. package/dist/modern/automigrate/fixes/eslint-plugin.js +3 -3
  179. package/dist/modern/automigrate/fixes/index.js +3 -1
  180. package/dist/modern/automigrate/fixes/mainjsFramework.js +2 -2
  181. package/dist/modern/automigrate/fixes/webpack5.js +2 -2
  182. package/dist/modern/automigrate/types.js +5 -1
  183. package/dist/modern/babel-config.js +1 -1
  184. package/dist/modern/detect.js +67 -4
  185. package/dist/modern/extract.js +7 -2
  186. package/dist/modern/frameworks/common/header.css +6 -0
  187. package/dist/modern/frameworks/html/js/Header.js +2 -0
  188. package/dist/modern/frameworks/html/js/Header.stories.js +8 -1
  189. package/dist/modern/frameworks/html/js/Page.js +29 -2
  190. package/dist/modern/frameworks/html/js/Page.stories.js +12 -13
  191. package/dist/modern/frameworks/preact/Header.jsx +6 -1
  192. package/dist/modern/frameworks/preact/Header.stories.jsx +7 -1
  193. package/dist/modern/frameworks/preact/Page.jsx +62 -63
  194. package/dist/modern/frameworks/preact/Page.stories.jsx +12 -9
  195. package/dist/modern/frameworks/react/js/Header.jsx +6 -1
  196. package/dist/modern/frameworks/react/js/Header.stories.jsx +7 -1
  197. package/dist/modern/frameworks/react/js/Page.jsx +61 -63
  198. package/dist/modern/frameworks/react/js/Page.stories.jsx +12 -9
  199. package/dist/modern/frameworks/svelte/Button.stories.js +51 -0
  200. package/dist/modern/frameworks/svelte/Header.stories.js +35 -0
  201. package/dist/modern/frameworks/svelte/Header.svelte +3 -0
  202. package/dist/modern/frameworks/svelte/Page.stories.js +27 -0
  203. package/dist/modern/frameworks/svelte/Page.svelte +2 -16
  204. package/dist/modern/frameworks/vue/Header.stories.js +7 -1
  205. package/dist/modern/frameworks/vue/Header.vue +1 -0
  206. package/dist/modern/frameworks/vue/Page.stories.js +15 -13
  207. package/dist/modern/frameworks/vue/Page.vue +7 -7
  208. package/dist/modern/frameworks/vue3/Header.stories.js +7 -1
  209. package/dist/modern/frameworks/vue3/Header.vue +1 -0
  210. package/dist/modern/frameworks/vue3/Page.stories.js +16 -17
  211. package/dist/modern/frameworks/vue3/Page.vue +18 -8
  212. package/dist/modern/frameworks/web-components/js/Page.js +2 -2
  213. package/dist/modern/generate.js +5 -0
  214. package/dist/modern/generators/ANGULAR/angular-helpers.js +5 -5
  215. package/dist/modern/generators/ANGULAR/index.js +2 -2
  216. package/dist/modern/generators/ANGULAR/template-csf/.storybook/tsconfig.json +17 -5
  217. package/dist/modern/generators/AURELIA/index.js +1 -1
  218. package/dist/modern/generators/AURELIA/template-csf/.storybook/tsconfig.json +16 -5
  219. package/dist/modern/generators/EMBER/index.js +1 -1
  220. package/dist/modern/generators/HTML/index.js +1 -1
  221. package/dist/modern/generators/METEOR/index.js +1 -1
  222. package/dist/modern/generators/MITHRIL/index.js +1 -1
  223. package/dist/modern/generators/PREACT/index.js +1 -1
  224. package/dist/modern/generators/RAX/index.js +1 -1
  225. package/dist/modern/generators/REACT_NATIVE/template-csf/storybook/addons.js +3 -3
  226. package/dist/modern/generators/REACT_NATIVE/template-csf/storybook/rn-addons.js +2 -2
  227. package/dist/modern/generators/REACT_SCRIPTS/index.js +9 -1
  228. package/dist/modern/generators/RIOT/index.js +1 -1
  229. package/dist/modern/generators/SERVER/index.js +1 -1
  230. package/dist/modern/generators/SFC_VUE/index.js +1 -1
  231. package/dist/modern/generators/SVELTE/index.js +0 -1
  232. package/dist/modern/generators/VUE/index.js +1 -1
  233. package/dist/modern/generators/VUE3/index.js +1 -1
  234. package/dist/modern/generators/WEBPACK_REACT/index.js +1 -1
  235. package/dist/modern/generators/baseGenerator.js +38 -4
  236. package/dist/modern/generators/configure.js +3 -1
  237. package/dist/modern/helpers.js +9 -8
  238. package/dist/modern/initiate.js +44 -34
  239. package/dist/modern/js-package-manager/JsPackageManager.js +8 -8
  240. package/dist/modern/js-package-manager/PackageJson.js +5 -1
  241. package/dist/modern/js-package-manager/PackageJsonHelper.js +1 -1
  242. package/dist/modern/project_types.js +2 -1
  243. package/dist/modern/repro-generators/configs.js +51 -8
  244. package/dist/modern/repro-generators/scripts.js +46 -14
  245. package/dist/modern/repro.js +3 -2
  246. package/dist/modern/typings.d.ts +3 -0
  247. package/dist/modern/upgrade.js +27 -9
  248. package/dist/modern/versions.js +67 -0
  249. package/dist/modern/window.d.js +5 -1
  250. package/dist/ts3.4/automigrate/fixes/builder-vite.d.ts +19 -0
  251. package/dist/ts3.4/detect.d.ts +10 -3
  252. package/dist/ts3.4/initiate.d.ts +1 -0
  253. package/dist/ts3.4/js-package-manager/PackageJson.d.ts +2 -8
  254. package/dist/ts3.4/js-package-manager/PackageJsonHelper.d.ts +2 -2
  255. package/dist/ts3.4/project_types.d.ts +2 -1
  256. package/dist/ts3.4/repro-generators/configs.d.ts +8 -0
  257. package/dist/ts3.4/upgrade.d.ts +2 -1
  258. package/dist/ts3.4/versions.d.ts +60 -0
  259. package/dist/ts3.9/automigrate/fixes/builder-vite.d.ts +19 -0
  260. package/dist/ts3.9/detect.d.ts +10 -3
  261. package/dist/ts3.9/initiate.d.ts +1 -0
  262. package/dist/ts3.9/js-package-manager/PackageJson.d.ts +2 -8
  263. package/dist/ts3.9/js-package-manager/PackageJsonHelper.d.ts +2 -2
  264. package/dist/ts3.9/project_types.d.ts +2 -1
  265. package/dist/ts3.9/repro-generators/configs.d.ts +9 -1
  266. package/dist/ts3.9/upgrade.d.ts +2 -1
  267. package/dist/ts3.9/versions.d.ts +60 -0
  268. package/package.json +12 -12
  269. package/dist/cjs/automigrate/helpers/getStorybookConfiguration.js +0 -27
  270. package/dist/cjs/automigrate/helpers/getStorybookInfo.js +0 -94
  271. package/dist/cjs/frameworks/svelte/Button.stories.svelte +0 -57
  272. package/dist/cjs/frameworks/svelte/Header.stories.svelte +0 -32
  273. package/dist/cjs/frameworks/svelte/Page.stories.svelte +0 -32
  274. package/dist/cjs/typings.d.js +0 -1
  275. package/dist/cjs/versions.json +0 -59
  276. package/dist/esm/automigrate/helpers/getStorybookConfiguration.js +0 -27
  277. package/dist/esm/automigrate/helpers/getStorybookInfo.js +0 -94
  278. package/dist/esm/frameworks/svelte/Button.stories.svelte +0 -57
  279. package/dist/esm/frameworks/svelte/Header.stories.svelte +0 -32
  280. package/dist/esm/frameworks/svelte/Page.stories.svelte +0 -32
  281. package/dist/esm/typings.d.js +0 -1
  282. package/dist/esm/versions.json +0 -59
  283. package/dist/modern/automigrate/helpers/getStorybookConfiguration.js +0 -27
  284. package/dist/modern/automigrate/helpers/getStorybookInfo.js +0 -94
  285. package/dist/modern/frameworks/svelte/Button.stories.svelte +0 -57
  286. package/dist/modern/frameworks/svelte/Header.stories.svelte +0 -32
  287. package/dist/modern/frameworks/svelte/Page.stories.svelte +0 -32
  288. package/dist/modern/typings.d.js +0 -1
  289. package/dist/modern/versions.json +0 -59
  290. package/dist/ts3.4/automigrate/helpers/getStorybookConfiguration.d.ts +0 -1
  291. package/dist/ts3.4/automigrate/helpers/getStorybookInfo.d.ts +0 -11
  292. package/dist/ts3.9/automigrate/helpers/getStorybookConfiguration.d.ts +0 -1
  293. package/dist/ts3.9/automigrate/helpers/getStorybookInfo.d.ts +0 -11
@@ -1,72 +1,71 @@
1
1
  /** @jsx h */
2
2
  import { h } from 'preact';
3
- import PropTypes from 'prop-types';
3
+ import { useState } from 'preact/hooks';
4
4
 
5
5
  import { Header } from './Header';
6
6
  import './page.css';
7
7
 
8
- export const Page = ({ user, onLogin, onLogout, onCreateAccount }) => (
9
- <article>
10
- <Header user={user} onLogin={onLogin} onLogout={onLogout} onCreateAccount={onCreateAccount} />
8
+ export const Page = () => {
9
+ const [user, setUser] = useState();
11
10
 
12
- <section>
13
- <h2>Pages in Storybook</h2>
14
- <p>
15
- We recommend building UIs with a{' '}
16
- <a href="https://componentdriven.org" target="_blank" rel="noopener noreferrer">
17
- <strong>component-driven</strong>
18
- </a>{' '}
19
- process starting with atomic components and ending with pages.
20
- </p>
21
- <p>
22
- Render pages with mock data. This makes it easy to build and review page states without
23
- needing to navigate to them in your app. Here are some handy patterns for managing page data
24
- in Storybook:
25
- </p>
26
- <ul>
27
- <li>
28
- Use a higher-level connected component. Storybook helps you compose such data from the
29
- "args" of child component stories
30
- </li>
31
- <li>
32
- Assemble data in the page component from your services. You can mock these services out
33
- using Storybook.
34
- </li>
35
- </ul>
36
- <p>
37
- Get a guided tutorial on component-driven development at{' '}
38
- <a href="https://storybook.js.org/tutorials/" target="_blank" rel="noopener noreferrer">
39
- Storybook tutorials
40
- </a>
41
- . Read more in the{' '}
42
- <a href="https://storybook.js.org/docs" target="_blank" rel="noopener noreferrer">
43
- docs
44
- </a>
45
- .
46
- </p>
47
- <div className="tip-wrapper">
48
- <span className="tip">Tip</span> Adjust the width of the canvas with the{' '}
49
- <svg width="10" height="10" viewBox="0 0 12 12" xmlns="http://www.w3.org/2000/svg">
50
- <g fill="none" fillRule="evenodd">
51
- <path
52
- d="M1.5 5.2h4.8c.3 0 .5.2.5.4v5.1c-.1.2-.3.3-.4.3H1.4a.5.5 0 01-.5-.4V5.7c0-.3.2-.5.5-.5zm0-2.1h6.9c.3 0 .5.2.5.4v7a.5.5 0 01-1 0V4H1.5a.5.5 0 010-1zm0-2.1h9c.3 0 .5.2.5.4v9.1a.5.5 0 01-1 0V2H1.5a.5.5 0 010-1zm4.3 5.2H2V10h3.8V6.2z"
53
- id="a"
54
- fill="#999"
55
- />
56
- </g>
57
- </svg>
58
- Viewports addon in the toolbar
59
- </div>
60
- </section>
61
- </article>
62
- );
63
- Page.propTypes = {
64
- user: PropTypes.shape({}),
65
- onLogin: PropTypes.func.isRequired,
66
- onLogout: PropTypes.func.isRequired,
67
- onCreateAccount: PropTypes.func.isRequired,
68
- };
11
+ return (
12
+ <article>
13
+ <Header
14
+ user={user}
15
+ onLogin={() => setUser({ name: 'Jane Doe' })}
16
+ onLogout={() => setUser(undefined)}
17
+ onCreateAccount={() => setUser({ name: 'Jane Doe' })}
18
+ />
69
19
 
70
- Page.defaultProps = {
71
- user: null,
20
+ <section>
21
+ <h2>Pages in Storybook</h2>
22
+ <p>
23
+ We recommend building UIs with a{' '}
24
+ <a href="https://componentdriven.org" target="_blank" rel="noopener noreferrer">
25
+ <strong>component-driven</strong>
26
+ </a>{' '}
27
+ process starting with atomic components and ending with pages.
28
+ </p>
29
+ <p>
30
+ Render pages with mock data. This makes it easy to build and review page states without
31
+ needing to navigate to them in your app. Here are some handy patterns for managing page
32
+ data in Storybook:
33
+ </p>
34
+ <ul>
35
+ <li>
36
+ Use a higher-level connected component. Storybook helps you compose such data from the
37
+ "args" of child component stories
38
+ </li>
39
+ <li>
40
+ Assemble data in the page component from your services. You can mock these services out
41
+ using Storybook.
42
+ </li>
43
+ </ul>
44
+ <p>
45
+ Get a guided tutorial on component-driven development at{' '}
46
+ <a href="https://storybook.js.org/tutorials/" target="_blank" rel="noopener noreferrer">
47
+ Storybook tutorials
48
+ </a>
49
+ . Read more in the{' '}
50
+ <a href="https://storybook.js.org/docs" target="_blank" rel="noopener noreferrer">
51
+ docs
52
+ </a>
53
+ .
54
+ </p>
55
+ <div className="tip-wrapper">
56
+ <span className="tip">Tip</span> Adjust the width of the canvas with the{' '}
57
+ <svg width="10" height="10" viewBox="0 0 12 12" xmlns="http://www.w3.org/2000/svg">
58
+ <g fill="none" fillRule="evenodd">
59
+ <path
60
+ d="M1.5 5.2h4.8c.3 0 .5.2.5.4v5.1c-.1.2-.3.3-.4.3H1.4a.5.5 0 01-.5-.4V5.7c0-.3.2-.5.5-.5zm0-2.1h6.9c.3 0 .5.2.5.4v7a.5.5 0 01-1 0V4H1.5a.5.5 0 010-1zm0-2.1h9c.3 0 .5.2.5.4v9.1a.5.5 0 01-1 0V2H1.5a.5.5 0 010-1zm4.3 5.2H2V10h3.8V6.2z"
61
+ id="a"
62
+ fill="#999"
63
+ />
64
+ </g>
65
+ </svg>
66
+ Viewports addon in the toolbar
67
+ </div>
68
+ </section>
69
+ </article>
70
+ );
72
71
  };
@@ -1,23 +1,26 @@
1
1
  /** @jsx h */
2
2
  import { h } from 'preact';
3
+ import { within, userEvent } from '@storybook/testing-library';
3
4
 
4
5
  import { Page } from './Page';
5
- import * as HeaderStories from './Header.stories';
6
6
 
7
7
  export default {
8
8
  title: 'Example/Page',
9
9
  component: Page,
10
+ parameters: {
11
+ // More on Story layout: https://storybook.js.org/docs/preact/configure/story-layout
12
+ layout: 'fullscreen',
13
+ },
10
14
  };
11
15
 
12
16
  const Template = (args) => <Page {...args} />;
13
17
 
14
- export const LoggedIn = Template.bind({});
15
- LoggedIn.args = {
16
- // More on composing args: https://storybook.js.org/docs/preact/writing-stories/args#args-composition
17
- ...HeaderStories.LoggedIn.args,
18
- };
19
-
20
18
  export const LoggedOut = Template.bind({});
21
- LoggedOut.args = {
22
- ...HeaderStories.LoggedOut.args,
19
+
20
+ // More on interaction testing: https://storybook.js.org/docs/preact/writing-tests/interaction-testing
21
+ export const LoggedIn = Template.bind({});
22
+ LoggedIn.play = async ({ canvasElement }) => {
23
+ const canvas = within(canvasElement);
24
+ const loginButton = await canvas.getByRole('button', { name: /Log in/i });
25
+ await userEvent.click(loginButton);
23
26
  };
@@ -28,7 +28,12 @@ export const Header = ({ user, onLogin, onLogout, onCreateAccount }) => (
28
28
  </div>
29
29
  <div>
30
30
  {user ? (
31
- <Button size="small" onClick={onLogout} label="Log out" />
31
+ <>
32
+ <span className="welcome">
33
+ Welcome, <b>{user.name}</b>!
34
+ </span>
35
+ <Button size="small" onClick={onLogout} label="Log out" />
36
+ </>
32
37
  ) : (
33
38
  <>
34
39
  <Button size="small" onClick={onLogin} label="Log in" />
@@ -5,13 +5,19 @@ import { Header } from './Header';
5
5
  export default {
6
6
  title: 'Example/Header',
7
7
  component: Header,
8
+ parameters: {
9
+ // More on Story layout: https://storybook.js.org/docs/react/configure/story-layout
10
+ layout: 'fullscreen',
11
+ },
8
12
  };
9
13
 
10
14
  const Template = (args) => <Header {...args} />;
11
15
 
12
16
  export const LoggedIn = Template.bind({});
13
17
  LoggedIn.args = {
14
- user: {},
18
+ user: {
19
+ name: 'Jane Doe',
20
+ },
15
21
  };
16
22
 
17
23
  export const LoggedOut = Template.bind({});
@@ -1,71 +1,69 @@
1
1
  import React from 'react';
2
- import PropTypes from 'prop-types';
3
2
 
4
3
  import { Header } from './Header';
5
4
  import './page.css';
6
5
 
7
- export const Page = ({ user, onLogin, onLogout, onCreateAccount }) => (
8
- <article>
9
- <Header user={user} onLogin={onLogin} onLogout={onLogout} onCreateAccount={onCreateAccount} />
6
+ export const Page = () => {
7
+ const [user, setUser] = React.useState();
10
8
 
11
- <section>
12
- <h2>Pages in Storybook</h2>
13
- <p>
14
- We recommend building UIs with a{' '}
15
- <a href="https://componentdriven.org" target="_blank" rel="noopener noreferrer">
16
- <strong>component-driven</strong>
17
- </a>{' '}
18
- process starting with atomic components and ending with pages.
19
- </p>
20
- <p>
21
- Render pages with mock data. This makes it easy to build and review page states without
22
- needing to navigate to them in your app. Here are some handy patterns for managing page data
23
- in Storybook:
24
- </p>
25
- <ul>
26
- <li>
27
- Use a higher-level connected component. Storybook helps you compose such data from the
28
- "args" of child component stories
29
- </li>
30
- <li>
31
- Assemble data in the page component from your services. You can mock these services out
32
- using Storybook.
33
- </li>
34
- </ul>
35
- <p>
36
- Get a guided tutorial on component-driven development at{' '}
37
- <a href="https://storybook.js.org/tutorials/" target="_blank" rel="noopener noreferrer">
38
- Storybook tutorials
39
- </a>
40
- . Read more in the{' '}
41
- <a href="https://storybook.js.org/docs" target="_blank" rel="noopener noreferrer">
42
- docs
43
- </a>
44
- .
45
- </p>
46
- <div className="tip-wrapper">
47
- <span className="tip">Tip</span> Adjust the width of the canvas with the{' '}
48
- <svg width="10" height="10" viewBox="0 0 12 12" xmlns="http://www.w3.org/2000/svg">
49
- <g fill="none" fillRule="evenodd">
50
- <path
51
- d="M1.5 5.2h4.8c.3 0 .5.2.5.4v5.1c-.1.2-.3.3-.4.3H1.4a.5.5 0 01-.5-.4V5.7c0-.3.2-.5.5-.5zm0-2.1h6.9c.3 0 .5.2.5.4v7a.5.5 0 01-1 0V4H1.5a.5.5 0 010-1zm0-2.1h9c.3 0 .5.2.5.4v9.1a.5.5 0 01-1 0V2H1.5a.5.5 0 010-1zm4.3 5.2H2V10h3.8V6.2z"
52
- id="a"
53
- fill="#999"
54
- />
55
- </g>
56
- </svg>
57
- Viewports addon in the toolbar
58
- </div>
59
- </section>
60
- </article>
61
- );
62
- Page.propTypes = {
63
- user: PropTypes.shape({}),
64
- onLogin: PropTypes.func.isRequired,
65
- onLogout: PropTypes.func.isRequired,
66
- onCreateAccount: PropTypes.func.isRequired,
67
- };
9
+ return (
10
+ <article>
11
+ <Header
12
+ user={user}
13
+ onLogin={() => setUser({ name: 'Jane Doe' })}
14
+ onLogout={() => setUser(undefined)}
15
+ onCreateAccount={() => setUser({ name: 'Jane Doe' })}
16
+ />
68
17
 
69
- Page.defaultProps = {
70
- user: null,
18
+ <section>
19
+ <h2>Pages in Storybook</h2>
20
+ <p>
21
+ We recommend building UIs with a{' '}
22
+ <a href="https://componentdriven.org" target="_blank" rel="noopener noreferrer">
23
+ <strong>component-driven</strong>
24
+ </a>{' '}
25
+ process starting with atomic components and ending with pages.
26
+ </p>
27
+ <p>
28
+ Render pages with mock data. This makes it easy to build and review page states without
29
+ needing to navigate to them in your app. Here are some handy patterns for managing page
30
+ data in Storybook:
31
+ </p>
32
+ <ul>
33
+ <li>
34
+ Use a higher-level connected component. Storybook helps you compose such data from the
35
+ "args" of child component stories
36
+ </li>
37
+ <li>
38
+ Assemble data in the page component from your services. You can mock these services out
39
+ using Storybook.
40
+ </li>
41
+ </ul>
42
+ <p>
43
+ Get a guided tutorial on component-driven development at{' '}
44
+ <a href="https://storybook.js.org/tutorials/" target="_blank" rel="noopener noreferrer">
45
+ Storybook tutorials
46
+ </a>
47
+ . Read more in the{' '}
48
+ <a href="https://storybook.js.org/docs" target="_blank" rel="noopener noreferrer">
49
+ docs
50
+ </a>
51
+ .
52
+ </p>
53
+ <div className="tip-wrapper">
54
+ <span className="tip">Tip</span> Adjust the width of the canvas with the{' '}
55
+ <svg width="10" height="10" viewBox="0 0 12 12" xmlns="http://www.w3.org/2000/svg">
56
+ <g fill="none" fillRule="evenodd">
57
+ <path
58
+ d="M1.5 5.2h4.8c.3 0 .5.2.5.4v5.1c-.1.2-.3.3-.4.3H1.4a.5.5 0 01-.5-.4V5.7c0-.3.2-.5.5-.5zm0-2.1h6.9c.3 0 .5.2.5.4v7a.5.5 0 01-1 0V4H1.5a.5.5 0 010-1zm0-2.1h9c.3 0 .5.2.5.4v9.1a.5.5 0 01-1 0V2H1.5a.5.5 0 010-1zm4.3 5.2H2V10h3.8V6.2z"
59
+ id="a"
60
+ fill="#999"
61
+ />
62
+ </g>
63
+ </svg>
64
+ Viewports addon in the toolbar
65
+ </div>
66
+ </section>
67
+ </article>
68
+ );
71
69
  };
@@ -1,22 +1,25 @@
1
1
  import React from 'react';
2
+ import { within, userEvent } from '@storybook/testing-library';
2
3
 
3
4
  import { Page } from './Page';
4
- import * as HeaderStories from './Header.stories';
5
5
 
6
6
  export default {
7
7
  title: 'Example/Page',
8
8
  component: Page,
9
+ parameters: {
10
+ // More on Story layout: https://storybook.js.org/docs/react/configure/story-layout
11
+ layout: 'fullscreen',
12
+ },
9
13
  };
10
14
 
11
15
  const Template = (args) => <Page {...args} />;
12
16
 
13
- export const LoggedIn = Template.bind({});
14
- LoggedIn.args = {
15
- // More on composing args: https://storybook.js.org/docs/react/writing-stories/args#args-composition
16
- ...HeaderStories.LoggedIn.args,
17
- };
18
-
17
+ // More on interaction testing: https://storybook.js.org/docs/react/writing-tests/interaction-testing
19
18
  export const LoggedOut = Template.bind({});
20
- LoggedOut.args = {
21
- ...HeaderStories.LoggedOut.args,
19
+
20
+ export const LoggedIn = Template.bind({});
21
+ LoggedIn.play = async ({ canvasElement }) => {
22
+ const canvas = within(canvasElement);
23
+ const loginButton = await canvas.getByRole('button', { name: /Log in/i });
24
+ await userEvent.click(loginButton);
22
25
  };
@@ -6,13 +6,19 @@ import { Header } from './Header';
6
6
  export default {
7
7
  title: 'Example/Header',
8
8
  component: Header,
9
+ parameters: {
10
+ // More on Story layout: https://storybook.js.org/docs/react/configure/story-layout
11
+ layout: 'fullscreen',
12
+ },
9
13
  } as ComponentMeta<typeof Header>;
10
14
 
11
15
  const Template: ComponentStory<typeof Header> = (args) => <Header {...args} />;
12
16
 
13
17
  export const LoggedIn = Template.bind({});
14
18
  LoggedIn.args = {
15
- user: {},
19
+ user: {
20
+ name: 'Jane Doe',
21
+ },
16
22
  };
17
23
 
18
24
  export const LoggedOut = Template.bind({});
@@ -3,8 +3,12 @@ import React from 'react';
3
3
  import { Button } from './Button';
4
4
  import './header.css';
5
5
 
6
+ type User = {
7
+ name: string;
8
+ };
9
+
6
10
  interface HeaderProps {
7
- user?: {};
11
+ user?: User;
8
12
  onLogin: () => void;
9
13
  onLogout: () => void;
10
14
  onCreateAccount: () => void;
@@ -34,7 +38,12 @@ export const Header = ({ user, onLogin, onLogout, onCreateAccount }: HeaderProps
34
38
  </div>
35
39
  <div>
36
40
  {user ? (
37
- <Button size="small" onClick={onLogout} label="Log out" />
41
+ <>
42
+ <span className="welcome">
43
+ Welcome, <b>{user.name}</b>!
44
+ </span>
45
+ <Button size="small" onClick={onLogout} label="Log out" />
46
+ </>
38
47
  ) : (
39
48
  <>
40
49
  <Button size="small" onClick={onLogin} label="Log in" />
@@ -1,23 +1,26 @@
1
1
  import React from 'react';
2
2
  import { ComponentStory, ComponentMeta } from '@storybook/react';
3
-
3
+ import { within, userEvent } from '@storybook/testing-library';
4
4
  import { Page } from './Page';
5
- import * as HeaderStories from './Header.stories';
6
5
 
7
6
  export default {
8
7
  title: 'Example/Page',
9
8
  component: Page,
9
+ parameters: {
10
+ // More on Story layout: https://storybook.js.org/docs/react/configure/story-layout
11
+ layout: 'fullscreen',
12
+ },
10
13
  } as ComponentMeta<typeof Page>;
11
14
 
12
15
  const Template: ComponentStory<typeof Page> = (args) => <Page {...args} />;
13
16
 
17
+ export const LoggedOut = Template.bind({});
18
+
14
19
  export const LoggedIn = Template.bind({});
15
- LoggedIn.args = {
16
- // More on composing args: https://storybook.js.org/docs/react/writing-stories/args#args-composition
17
- ...HeaderStories.LoggedIn.args,
18
- };
19
20
 
20
- export const LoggedOut = Template.bind({});
21
- LoggedOut.args = {
22
- ...HeaderStories.LoggedOut.args,
21
+ // More on interaction testing: https://storybook.js.org/docs/react/writing-tests/interaction-testing
22
+ LoggedIn.play = async ({ canvasElement }) => {
23
+ const canvas = within(canvasElement);
24
+ const loginButton = await canvas.getByRole('button', { name: /Log in/i });
25
+ await userEvent.click(loginButton);
23
26
  };
@@ -3,65 +3,71 @@ import React from 'react';
3
3
  import { Header } from './Header';
4
4
  import './page.css';
5
5
 
6
- interface PageProps {
7
- user?: {};
8
- onLogin: () => void;
9
- onLogout: () => void;
10
- onCreateAccount: () => void;
11
- }
6
+ type User = {
7
+ name: string;
8
+ };
12
9
 
13
- export const Page = ({ user, onLogin, onLogout, onCreateAccount }: PageProps) => (
14
- <article>
15
- <Header user={user} onLogin={onLogin} onLogout={onLogout} onCreateAccount={onCreateAccount} />
10
+ export const Page: React.VFC = () => {
11
+ const [user, setUser] = React.useState<User>();
16
12
 
17
- <section>
18
- <h2>Pages in Storybook</h2>
19
- <p>
20
- We recommend building UIs with a{' '}
21
- <a href="https://componentdriven.org" target="_blank" rel="noopener noreferrer">
22
- <strong>component-driven</strong>
23
- </a>{' '}
24
- process starting with atomic components and ending with pages.
25
- </p>
26
- <p>
27
- Render pages with mock data. This makes it easy to build and review page states without
28
- needing to navigate to them in your app. Here are some handy patterns for managing page data
29
- in Storybook:
30
- </p>
31
- <ul>
32
- <li>
33
- Use a higher-level connected component. Storybook helps you compose such data from the
34
- "args" of child component stories
35
- </li>
36
- <li>
37
- Assemble data in the page component from your services. You can mock these services out
38
- using Storybook.
39
- </li>
40
- </ul>
41
- <p>
42
- Get a guided tutorial on component-driven development at{' '}
43
- <a href="https://storybook.js.org/tutorials/" target="_blank" rel="noopener noreferrer">
44
- Storybook tutorials
45
- </a>
46
- . Read more in the{' '}
47
- <a href="https://storybook.js.org/docs" target="_blank" rel="noopener noreferrer">
48
- docs
49
- </a>
50
- .
51
- </p>
52
- <div className="tip-wrapper">
53
- <span className="tip">Tip</span> Adjust the width of the canvas with the{' '}
54
- <svg width="10" height="10" viewBox="0 0 12 12" xmlns="http://www.w3.org/2000/svg">
55
- <g fill="none" fillRule="evenodd">
56
- <path
57
- d="M1.5 5.2h4.8c.3 0 .5.2.5.4v5.1c-.1.2-.3.3-.4.3H1.4a.5.5 0 01-.5-.4V5.7c0-.3.2-.5.5-.5zm0-2.1h6.9c.3 0 .5.2.5.4v7a.5.5 0 01-1 0V4H1.5a.5.5 0 010-1zm0-2.1h9c.3 0 .5.2.5.4v9.1a.5.5 0 01-1 0V2H1.5a.5.5 0 010-1zm4.3 5.2H2V10h3.8V6.2z"
58
- id="a"
59
- fill="#999"
60
- />
61
- </g>
62
- </svg>
63
- Viewports addon in the toolbar
64
- </div>
65
- </section>
66
- </article>
67
- );
13
+ return (
14
+ <article>
15
+ <Header
16
+ user={user}
17
+ onLogin={() => setUser({ name: 'Jane Doe' })}
18
+ onLogout={() => setUser(undefined)}
19
+ onCreateAccount={() => setUser({ name: 'Jane Doe' })}
20
+ />
21
+
22
+ <section>
23
+ <h2>Pages in Storybook</h2>
24
+ <p>
25
+ We recommend building UIs with a{' '}
26
+ <a href="https://componentdriven.org" target="_blank" rel="noopener noreferrer">
27
+ <strong>component-driven</strong>
28
+ </a>{' '}
29
+ process starting with atomic components and ending with pages.
30
+ </p>
31
+ <p>
32
+ Render pages with mock data. This makes it easy to build and review page states without
33
+ needing to navigate to them in your app. Here are some handy patterns for managing page
34
+ data in Storybook:
35
+ </p>
36
+ <ul>
37
+ <li>
38
+ Use a higher-level connected component. Storybook helps you compose such data from the
39
+ "args" of child component stories
40
+ </li>
41
+ <li>
42
+ Assemble data in the page component from your services. You can mock these services out
43
+ using Storybook.
44
+ </li>
45
+ </ul>
46
+ <p>
47
+ Get a guided tutorial on component-driven development at{' '}
48
+ <a href="https://storybook.js.org/tutorials/" target="_blank" rel="noopener noreferrer">
49
+ Storybook tutorials
50
+ </a>
51
+ . Read more in the{' '}
52
+ <a href="https://storybook.js.org/docs" target="_blank" rel="noopener noreferrer">
53
+ docs
54
+ </a>
55
+ .
56
+ </p>
57
+ <div className="tip-wrapper">
58
+ <span className="tip">Tip</span> Adjust the width of the canvas with the{' '}
59
+ <svg width="10" height="10" viewBox="0 0 12 12" xmlns="http://www.w3.org/2000/svg">
60
+ <g fill="none" fillRule="evenodd">
61
+ <path
62
+ d="M1.5 5.2h4.8c.3 0 .5.2.5.4v5.1c-.1.2-.3.3-.4.3H1.4a.5.5 0 01-.5-.4V5.7c0-.3.2-.5.5-.5zm0-2.1h6.9c.3 0 .5.2.5.4v7a.5.5 0 01-1 0V4H1.5a.5.5 0 010-1zm0-2.1h9c.3 0 .5.2.5.4v9.1a.5.5 0 01-1 0V2H1.5a.5.5 0 010-1zm4.3 5.2H2V10h3.8V6.2z"
63
+ id="a"
64
+ fill="#999"
65
+ />
66
+ </g>
67
+ </svg>
68
+ Viewports addon in the toolbar
69
+ </div>
70
+ </section>
71
+ </article>
72
+ );
73
+ };
@@ -0,0 +1,51 @@
1
+ import Button from './Button.svelte';
2
+
3
+ // More on default export: https://storybook.js.org/docs/react/writing-stories/introduction#default-export
4
+ // More on argTypes: https://storybook.js.org/docs/svelte/api/argtypes
5
+ export default {
6
+ title: 'Example/Button',
7
+ component: Button,
8
+ argTypes: {
9
+ backgroundColor: { control: 'color' },
10
+ label: { control: 'text' },
11
+ onClick: { action: 'onClick' },
12
+ primary: { control: 'boolean' },
13
+ size: {
14
+ control: { type: 'select' },
15
+ options: ['small', 'medium', 'large'],
16
+ },
17
+ },
18
+ };
19
+
20
+ // More on component templates: https://storybook.js.org/docs/svelte/writing-stories/introduction#using-args
21
+ const Template = (args) => ({
22
+ Component: Button,
23
+ props: args,
24
+ on: {
25
+ click: args.onClick,
26
+ },
27
+ });
28
+
29
+ // More on args: https://storybook.js.org/docs/svelte/writing-stories/args
30
+ export const Primary = Template.bind({});
31
+ Primary.args = {
32
+ primary: true,
33
+ label: 'Button',
34
+ };
35
+
36
+ export const Secondary = Template.bind({});
37
+ Secondary.args = {
38
+ label: 'Button',
39
+ };
40
+
41
+ export const Large = Template.bind({});
42
+ Large.args = {
43
+ size: 'large',
44
+ label: 'Button',
45
+ };
46
+
47
+ export const Small = Template.bind({});
48
+ Small.args = {
49
+ size: 'small',
50
+ label: 'Button',
51
+ };