@storybook/cli 6.5.0-alpha.5 → 6.5.0-alpha.50

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 (141) hide show
  1. package/bin/index.js +1 -0
  2. package/dist/cjs/add.js +1 -1
  3. package/dist/cjs/automigrate/types.js +5 -1
  4. package/dist/cjs/babel-config.js +1 -1
  5. package/dist/cjs/detect.js +2 -2
  6. package/dist/cjs/extract.js +7 -2
  7. package/dist/cjs/frameworks/angular/Header.stories.ts +8 -3
  8. package/dist/cjs/frameworks/angular/Page.stories.ts +12 -10
  9. package/dist/cjs/frameworks/angular/header.component.ts +30 -19
  10. package/dist/cjs/frameworks/angular/page.component.ts +13 -27
  11. package/dist/cjs/frameworks/common/header.css +6 -0
  12. package/dist/cjs/frameworks/react/js/Header.jsx +6 -1
  13. package/dist/cjs/frameworks/react/js/Header.stories.jsx +7 -1
  14. package/dist/cjs/frameworks/react/js/Page.jsx +61 -63
  15. package/dist/cjs/frameworks/react/js/Page.stories.jsx +12 -9
  16. package/dist/cjs/frameworks/react/ts/Header.stories.tsx +7 -1
  17. package/dist/cjs/frameworks/react/ts/Header.tsx +11 -2
  18. package/dist/cjs/frameworks/react/ts/Page.stories.tsx +12 -9
  19. package/dist/cjs/frameworks/react/ts/Page.tsx +66 -60
  20. package/dist/cjs/frameworks/svelte/Button.stories.js +51 -0
  21. package/dist/cjs/frameworks/svelte/Header.stories.js +29 -0
  22. package/dist/cjs/frameworks/svelte/Page.stories.js +29 -0
  23. package/dist/cjs/frameworks/web-components/js/Page.js +2 -2
  24. package/dist/cjs/frameworks/web-components/ts/Page.ts +2 -2
  25. package/dist/cjs/generators/ANGULAR/angular-helpers.js +5 -5
  26. package/dist/cjs/generators/ANGULAR/index.js +1 -1
  27. package/dist/cjs/generators/ANGULAR/template-csf/.storybook/tsconfig.json +17 -5
  28. package/dist/cjs/generators/AURELIA/template-csf/.storybook/tsconfig.json +16 -5
  29. package/dist/cjs/generators/REACT_SCRIPTS/index.js +9 -1
  30. package/dist/cjs/generators/SVELTE/index.js +0 -1
  31. package/dist/cjs/generators/WEB-COMPONENTS/index.js +3 -1
  32. package/dist/cjs/generators/baseGenerator.js +9 -1
  33. package/dist/cjs/generators/configure.js +3 -1
  34. package/dist/cjs/helpers.js +9 -8
  35. package/dist/cjs/initiate.js +4 -1
  36. package/dist/cjs/js-package-manager/JsPackageManager.js +2 -2
  37. package/dist/cjs/project_types.js +1 -1
  38. package/dist/cjs/repro-generators/configs.js +20 -8
  39. package/dist/cjs/repro-generators/scripts.js +25 -14
  40. package/dist/cjs/repro.js +3 -2
  41. package/dist/cjs/typings.d.ts +3 -0
  42. package/dist/cjs/upgrade.js +3 -1
  43. package/dist/cjs/versions.js +66 -0
  44. package/dist/cjs/window.d.js +5 -1
  45. package/dist/esm/add.js +1 -1
  46. package/dist/esm/automigrate/types.js +5 -1
  47. package/dist/esm/babel-config.js +1 -1
  48. package/dist/esm/detect.js +2 -2
  49. package/dist/esm/extract.js +7 -2
  50. package/dist/esm/frameworks/angular/Header.stories.ts +8 -3
  51. package/dist/esm/frameworks/angular/Page.stories.ts +12 -10
  52. package/dist/esm/frameworks/angular/header.component.ts +30 -19
  53. package/dist/esm/frameworks/angular/page.component.ts +13 -27
  54. package/dist/esm/frameworks/common/header.css +6 -0
  55. package/dist/esm/frameworks/react/js/Header.jsx +6 -1
  56. package/dist/esm/frameworks/react/js/Header.stories.jsx +7 -1
  57. package/dist/esm/frameworks/react/js/Page.jsx +61 -63
  58. package/dist/esm/frameworks/react/js/Page.stories.jsx +12 -9
  59. package/dist/esm/frameworks/react/ts/Header.stories.tsx +7 -1
  60. package/dist/esm/frameworks/react/ts/Header.tsx +11 -2
  61. package/dist/esm/frameworks/react/ts/Page.stories.tsx +12 -9
  62. package/dist/esm/frameworks/react/ts/Page.tsx +66 -60
  63. package/dist/esm/frameworks/svelte/Button.stories.js +51 -0
  64. package/dist/esm/frameworks/svelte/Header.stories.js +29 -0
  65. package/dist/esm/frameworks/svelte/Page.stories.js +29 -0
  66. package/dist/esm/frameworks/web-components/js/Page.js +2 -2
  67. package/dist/esm/frameworks/web-components/ts/Page.ts +2 -2
  68. package/dist/esm/generators/ANGULAR/angular-helpers.js +5 -5
  69. package/dist/esm/generators/ANGULAR/index.js +1 -1
  70. package/dist/esm/generators/ANGULAR/template-csf/.storybook/tsconfig.json +17 -5
  71. package/dist/esm/generators/AURELIA/template-csf/.storybook/tsconfig.json +16 -5
  72. package/dist/esm/generators/REACT_SCRIPTS/index.js +9 -1
  73. package/dist/esm/generators/SVELTE/index.js +0 -1
  74. package/dist/esm/generators/WEB-COMPONENTS/index.js +3 -1
  75. package/dist/esm/generators/baseGenerator.js +9 -1
  76. package/dist/esm/generators/configure.js +3 -1
  77. package/dist/esm/helpers.js +9 -8
  78. package/dist/esm/initiate.js +4 -1
  79. package/dist/esm/js-package-manager/JsPackageManager.js +2 -2
  80. package/dist/esm/project_types.js +1 -1
  81. package/dist/esm/repro-generators/configs.js +20 -8
  82. package/dist/esm/repro-generators/scripts.js +25 -14
  83. package/dist/esm/repro.js +3 -2
  84. package/dist/esm/typings.d.ts +3 -0
  85. package/dist/esm/upgrade.js +3 -1
  86. package/dist/esm/versions.js +66 -0
  87. package/dist/esm/window.d.js +5 -1
  88. package/dist/modern/add.js +1 -1
  89. package/dist/modern/automigrate/types.js +5 -1
  90. package/dist/modern/babel-config.js +1 -1
  91. package/dist/modern/detect.js +2 -2
  92. package/dist/modern/extract.js +7 -2
  93. package/dist/modern/frameworks/common/header.css +6 -0
  94. package/dist/modern/frameworks/react/js/Header.jsx +6 -1
  95. package/dist/modern/frameworks/react/js/Header.stories.jsx +7 -1
  96. package/dist/modern/frameworks/react/js/Page.jsx +61 -63
  97. package/dist/modern/frameworks/react/js/Page.stories.jsx +12 -9
  98. package/dist/modern/frameworks/svelte/Button.stories.js +51 -0
  99. package/dist/modern/frameworks/svelte/Header.stories.js +29 -0
  100. package/dist/modern/frameworks/svelte/Page.stories.js +29 -0
  101. package/dist/modern/frameworks/web-components/js/Page.js +2 -2
  102. package/dist/modern/generators/ANGULAR/angular-helpers.js +5 -5
  103. package/dist/modern/generators/ANGULAR/index.js +1 -1
  104. package/dist/modern/generators/ANGULAR/template-csf/.storybook/tsconfig.json +17 -5
  105. package/dist/modern/generators/AURELIA/template-csf/.storybook/tsconfig.json +16 -5
  106. package/dist/modern/generators/REACT_SCRIPTS/index.js +9 -1
  107. package/dist/modern/generators/SVELTE/index.js +0 -1
  108. package/dist/modern/generators/WEB-COMPONENTS/index.js +3 -1
  109. package/dist/modern/generators/baseGenerator.js +9 -1
  110. package/dist/modern/generators/configure.js +3 -1
  111. package/dist/modern/helpers.js +9 -8
  112. package/dist/modern/initiate.js +4 -1
  113. package/dist/modern/js-package-manager/JsPackageManager.js +2 -2
  114. package/dist/modern/project_types.js +1 -1
  115. package/dist/modern/repro-generators/configs.js +20 -8
  116. package/dist/modern/repro-generators/scripts.js +25 -14
  117. package/dist/modern/repro.js +3 -2
  118. package/dist/modern/typings.d.ts +3 -0
  119. package/dist/modern/upgrade.js +3 -1
  120. package/dist/modern/versions.js +66 -0
  121. package/dist/modern/window.d.js +5 -1
  122. package/dist/ts3.4/repro-generators/configs.d.ts +2 -0
  123. package/dist/ts3.4/versions.d.ts +59 -0
  124. package/dist/ts3.9/repro-generators/configs.d.ts +2 -0
  125. package/dist/ts3.9/versions.d.ts +59 -0
  126. package/package.json +11 -12
  127. package/dist/cjs/frameworks/svelte/Button.stories.svelte +0 -57
  128. package/dist/cjs/frameworks/svelte/Header.stories.svelte +0 -32
  129. package/dist/cjs/frameworks/svelte/Page.stories.svelte +0 -32
  130. package/dist/cjs/typings.d.js +0 -1
  131. package/dist/cjs/versions.json +0 -59
  132. package/dist/esm/frameworks/svelte/Button.stories.svelte +0 -57
  133. package/dist/esm/frameworks/svelte/Header.stories.svelte +0 -32
  134. package/dist/esm/frameworks/svelte/Page.stories.svelte +0 -32
  135. package/dist/esm/typings.d.js +0 -1
  136. package/dist/esm/versions.json +0 -59
  137. package/dist/modern/frameworks/svelte/Button.stories.svelte +0 -57
  138. package/dist/modern/frameworks/svelte/Header.stories.svelte +0 -32
  139. package/dist/modern/frameworks/svelte/Page.stories.svelte +0 -32
  140. package/dist/modern/typings.d.js +0 -1
  141. package/dist/modern/versions.json +0 -59
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.svelte = exports.sfcVue = exports.preact = exports.html = exports.vue3 = exports.vue = exports.web_components_lit2 = exports.web_components_typescript = exports.web_components = exports.angular = exports.angular12 = exports.angular11 = exports.angular10 = exports.react_in_yarn_workspace = exports.webpack_react = exports.react_typescript = exports.react = exports.cra_typescript = exports.cra = void 0;
6
+ exports.webpack_react = exports.web_components_typescript = exports.web_components_lit2 = exports.web_components = exports.vue3 = exports.vue = exports.svelte = exports.sfcVue = exports.react_typescript = exports.react_in_yarn_workspace = exports.react = exports.preact = exports.html = exports.cra_typescript = exports.cra = exports.angular130 = exports.angular13 = exports.angular12 = exports.angular11 = exports.angular10 = exports.angular = void 0;
7
7
 
8
8
  const fromDeps = (...args) => ['mkdir {{appName}}', 'cd {{appName}}', // Create `yarn.lock` to force Yarn to consider adding deps in this directory
9
9
  // and not look for a yarn workspace in parent directory
@@ -14,16 +14,16 @@ const cra = {
14
14
  framework: 'react',
15
15
  name: 'cra',
16
16
  version: 'latest',
17
- generator: [// Force npm otherwise we have a mess between Yarn 1 and Yarn 2
18
- 'npx create-react-app@{{version}} {{appName}} --use-npm', 'cd {{appName}}', 'echo "FAST_REFRESH=true" > .env', 'echo "SKIP_PREFLIGHT_CHECK=true" > .env'].join(' && ')
17
+ generator: [// Force npm otherwise we have a mess between Yarn 1, Yarn 2 and NPM
18
+ 'npm_config_user_agent=npm npx -p create-react-app@{{version}} create-react-app {{appName}}', 'cd {{appName}}', 'echo "FAST_REFRESH=true" > .env', 'echo "SKIP_PREFLIGHT_CHECK=true" > .env'].join(' && ')
19
19
  };
20
20
  exports.cra = cra;
21
21
  const cra_typescript = {
22
22
  framework: 'react',
23
23
  name: 'cra_typescript',
24
24
  version: 'latest',
25
- generator: [// Force npm otherwise we have a mess between Yarn 1 and Yarn 2
26
- 'npx create-react-app@{{version}} {{appName}} --template typescript --use-npm'].join(' && ')
25
+ generator: [// Force npm otherwise we have a mess between Yarn 1, Yarn 2 and NPM
26
+ 'npm_config_user_agent=npm npx -p create-react-app@{{version}} create-react-app {{appName}} --template typescript'].join(' && ')
27
27
  };
28
28
  exports.cra_typescript = cra_typescript;
29
29
  const react = {
@@ -62,7 +62,7 @@ const baseAngular = {
62
62
  framework: 'angular',
63
63
  name: 'angular',
64
64
  version: 'latest',
65
- generator: `npx --package @angular/cli@{{version}} ng new {{appName}} --routing=true --minimal=true --style=scss --skipInstall=true --strict`
65
+ generator: `npx -p @angular/cli@{{version}} ng new {{appName}} --routing=true --minimal=true --style=scss --skipInstall=true --strict`
66
66
  };
67
67
  const angular10 = Object.assign({}, baseAngular, {
68
68
  name: 'angular10',
@@ -79,6 +79,16 @@ const angular12 = Object.assign({}, baseAngular, {
79
79
  version: 'v12-lts'
80
80
  });
81
81
  exports.angular12 = angular12;
82
+ const angular130 = Object.assign({}, baseAngular, {
83
+ name: 'angular130',
84
+ version: '13.0.x'
85
+ });
86
+ exports.angular130 = angular130;
87
+ const angular13 = Object.assign({}, baseAngular, {
88
+ name: 'angular13',
89
+ version: '13.1.x'
90
+ });
91
+ exports.angular13 = angular13;
82
92
  const angular = baseAngular; // #endregion
83
93
  // #region web components
84
94
 
@@ -107,7 +117,8 @@ exports.web_components_lit2 = web_components_lit2;
107
117
  const vue = {
108
118
  framework: 'vue',
109
119
  name: 'vue',
110
- version: 'latest',
120
+ // Be careful here, the latest versions of vue cli are bootstrapping a vue 3 project
121
+ version: '4',
111
122
  generator: [// Force npm otherwise we have a mess between Yarn 1 and Yarn 2
112
123
  `npx -p @vue/cli@{{version}} vue create {{appName}} --default --packageManager=npm --no-git --force`].join(' && ')
113
124
  };
@@ -141,7 +152,8 @@ const sfcVue = {
141
152
  framework: 'vue',
142
153
  name: 'sfcVue',
143
154
  version: 'latest',
144
- generator: fromDeps('vue', 'vue-loader', 'vue-template-compiler', 'webpack@webpack-4')
155
+ //
156
+ generator: fromDeps('vue@2.6', 'vue-loader@15.9', 'vue-template-compiler@2.6', 'webpack@webpack-4')
145
157
  };
146
158
  exports.sfcVue = sfcVue;
147
159
  const svelte = {
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.createAndInit = exports.exec = void 0;
6
+ exports.exec = exports.createAndInit = void 0;
7
7
 
8
8
  require("core-js/modules/es.promise.js");
9
9
 
@@ -15,6 +15,10 @@ var _shelljs = _interopRequireDefault(require("shelljs"));
15
15
 
16
16
  var _chalk = _interopRequireDefault(require("chalk"));
17
17
 
18
+ var _configs = require("./configs");
19
+
20
+ const _excluded = ["name", "version"];
21
+
18
22
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
19
23
 
20
24
  function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
@@ -36,17 +40,18 @@ const exec = async (command, options = {}, {
36
40
  silent: true
37
41
  };
38
42
 
39
- _shelljs.default.exec(command, Object.assign({}, defaultOptions, options), (code, stdout, stderr) => {
43
+ const child = _shelljs.default.exec(command, Object.assign({}, defaultOptions, options, {
44
+ async: true
45
+ }));
46
+
47
+ child.stderr.pipe(process.stderr);
48
+ child.stdout.pipe(process.stdout);
49
+ child.on('exit', code => {
40
50
  if (code === 0) {
41
51
  resolve(undefined);
42
52
  } else {
43
53
  logger.error(_chalk.default.red(`An error occurred while executing: \`${command}\``));
44
- logger.error(`Command output was:${_chalk.default.yellow(`\n${stdout}\n${stderr}`)}`);
45
-
46
- if (errorMessage) {
47
- logger.error(errorMessage);
48
- }
49
-
54
+ logger.log(errorMessage);
50
55
  reject(new Error(`command exited with code: ${code}: `));
51
56
  }
52
57
  });
@@ -57,10 +62,18 @@ exports.exec = exec;
57
62
 
58
63
  const installYarn2 = async ({
59
64
  cwd,
60
- pnp
65
+ pnp,
66
+ name
61
67
  }) => {
62
- const command = [`yarn set version berry`, `yarn config set enableGlobalCache true`, `yarn config set nodeLinker ${pnp ? 'pnp' : 'node-modules'}`].join(' && ');
63
- await exec(command, {
68
+ const command = [`yarn set version berry`, `yarn config set enableGlobalCache true`, `yarn config set nodeLinker ${pnp ? 'pnp' : 'node-modules'}`]; // FIXME: Some dependencies used by CRA aren't listed in its package.json
69
+ // Next line is a hack to remove as soon as CRA will have added these missing deps
70
+ // for details see https://github.com/facebook/create-react-app/pull/11751
71
+
72
+ if ([_configs.cra.name, _configs.cra_typescript.name].includes(name)) {
73
+ command.push(`yarn config set packageExtensions --json '{ "babel-preset-react-app@10.0.x": { "dependencies": { "@babel/plugin-proposal-private-property-in-object": "^7.16.0" } } }'`);
74
+ }
75
+
76
+ await exec(command.join(' && '), {
64
77
  cwd
65
78
  }, {
66
79
  startMessage: `🧶 Installing Yarn 2`,
@@ -182,7 +195,7 @@ const createAndInit = async (cwd, _ref, {
182
195
  name,
183
196
  version
184
197
  } = _ref,
185
- rest = _objectWithoutPropertiesLoose(_ref, ["name", "version"]);
198
+ rest = _objectWithoutPropertiesLoose(_ref, _excluded);
186
199
 
187
200
  const options = Object.assign({
188
201
  name,
@@ -196,8 +209,6 @@ const createAndInit = async (cwd, _ref, {
196
209
  logger.log();
197
210
  logger.info(`🏃 Starting for ${name} ${version}`);
198
211
  logger.log();
199
- logger.debug(options);
200
- logger.log();
201
212
  await doTask(generate, Object.assign({}, options, {
202
213
  cwd: options.creationPath
203
214
  }));
package/dist/esm/repro.js CHANGED
@@ -25,9 +25,9 @@ var _scripts = require("./repro-generators/scripts");
25
25
 
26
26
  var configs = _interopRequireWildcard(require("./repro-generators/configs"));
27
27
 
28
- function _getRequireWildcardCache() { if (typeof WeakMap !== "function") return null; var cache = new WeakMap(); _getRequireWildcardCache = function () { return cache; }; return cache; }
28
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
29
29
 
30
- function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
30
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
31
31
 
32
32
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
33
33
 
@@ -169,6 +169,7 @@ const repro = async ({
169
169
  }));
170
170
  } catch (error) {
171
171
  logger.error('🚨 Failed to create repro');
172
+ throw new Error(error);
172
173
  }
173
174
  };
174
175
 
@@ -0,0 +1,3 @@
1
+ declare module '@storybook/codemod';
2
+ declare module 'envinfo';
3
+ declare module '@storybook/semver';
@@ -3,7 +3,9 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.upgrade = exports.addExtraFlags = exports.checkVersionConsistency = exports.isCorePackage = exports.getStorybookVersion = void 0;
6
+ exports.upgrade = exports.isCorePackage = exports.getStorybookVersion = exports.checkVersionConsistency = exports.addExtraFlags = void 0;
7
+
8
+ require("core-js/modules/es.array.sort.js");
7
9
 
8
10
  require("core-js/modules/es.promise.js");
9
11
 
@@ -0,0 +1,66 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ // auto generated file, do not edit
8
+ var _default = {
9
+ "@storybook/addon-a11y": "6.5.0-alpha.50",
10
+ "@storybook/addon-actions": "6.5.0-alpha.50",
11
+ "@storybook/addon-backgrounds": "6.5.0-alpha.50",
12
+ "@storybook/addon-controls": "6.5.0-alpha.50",
13
+ "@storybook/addon-docs": "6.5.0-alpha.50",
14
+ "@storybook/addon-essentials": "6.5.0-alpha.50",
15
+ "@storybook/addon-interactions": "6.5.0-alpha.50",
16
+ "@storybook/addon-jest": "6.5.0-alpha.50",
17
+ "@storybook/addon-links": "6.5.0-alpha.50",
18
+ "@storybook/addon-measure": "6.5.0-alpha.50",
19
+ "@storybook/addon-outline": "6.5.0-alpha.50",
20
+ "@storybook/addon-storyshots": "6.5.0-alpha.50",
21
+ "@storybook/addon-storyshots-puppeteer": "6.5.0-alpha.50",
22
+ "@storybook/addon-storysource": "6.5.0-alpha.50",
23
+ "@storybook/addon-toolbars": "6.5.0-alpha.50",
24
+ "@storybook/addon-viewport": "6.5.0-alpha.50",
25
+ "@storybook/addons": "6.5.0-alpha.50",
26
+ "@storybook/angular": "6.5.0-alpha.50",
27
+ "@storybook/api": "6.5.0-alpha.50",
28
+ "@storybook/builder-webpack4": "6.5.0-alpha.50",
29
+ "@storybook/builder-webpack5": "6.5.0-alpha.50",
30
+ "@storybook/channel-postmessage": "6.5.0-alpha.50",
31
+ "@storybook/channel-websocket": "6.5.0-alpha.50",
32
+ "@storybook/channels": "6.5.0-alpha.50",
33
+ "@storybook/cli": "6.5.0-alpha.50",
34
+ "@storybook/client-api": "6.5.0-alpha.50",
35
+ "@storybook/client-logger": "6.5.0-alpha.50",
36
+ "@storybook/codemod": "6.5.0-alpha.50",
37
+ "@storybook/components": "6.5.0-alpha.50",
38
+ "@storybook/core": "6.5.0-alpha.50",
39
+ "@storybook/core-client": "6.5.0-alpha.50",
40
+ "@storybook/core-common": "6.5.0-alpha.50",
41
+ "@storybook/core-events": "6.5.0-alpha.50",
42
+ "@storybook/core-server": "6.5.0-alpha.50",
43
+ "@storybook/csf-tools": "6.5.0-alpha.50",
44
+ "@storybook/docs-tools": "6.5.0-alpha.50",
45
+ "@storybook/ember": "6.5.0-alpha.50",
46
+ "@storybook/html": "6.5.0-alpha.50",
47
+ "@storybook/instrumenter": "6.5.0-alpha.50",
48
+ "@storybook/manager-webpack4": "6.5.0-alpha.50",
49
+ "@storybook/manager-webpack5": "6.5.0-alpha.50",
50
+ "@storybook/node-logger": "6.5.0-alpha.50",
51
+ "@storybook/postinstall": "6.5.0-alpha.50",
52
+ "@storybook/preact": "6.5.0-alpha.50",
53
+ "@storybook/preview-web": "6.5.0-alpha.50",
54
+ "@storybook/react": "6.5.0-alpha.50",
55
+ "@storybook/router": "6.5.0-alpha.50",
56
+ "@storybook/server": "6.5.0-alpha.50",
57
+ "@storybook/source-loader": "6.5.0-alpha.50",
58
+ "@storybook/store": "6.5.0-alpha.50",
59
+ "@storybook/svelte": "6.5.0-alpha.50",
60
+ "@storybook/theming": "6.5.0-alpha.50",
61
+ "@storybook/ui": "6.5.0-alpha.50",
62
+ "@storybook/vue": "6.5.0-alpha.50",
63
+ "@storybook/vue3": "6.5.0-alpha.50",
64
+ "@storybook/web-components": "6.5.0-alpha.50"
65
+ };
66
+ exports.default = _default;
@@ -1 +1,5 @@
1
- "use strict";
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
@@ -4,7 +4,7 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.add = add;
7
- exports.addStorybookAddonToFile = exports.getPackageArg = exports.getInstalledStorybookVersion = exports.getPackageName = exports.storybookAddonScope = void 0;
7
+ exports.storybookAddonScope = exports.getPackageName = exports.getPackageArg = exports.getInstalledStorybookVersion = exports.addStorybookAddonToFile = void 0;
8
8
 
9
9
  require("core-js/modules/es.promise.js");
10
10
 
@@ -1 +1,5 @@
1
- "use strict";
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.generateStorybookBabelConfig = exports.generateStorybookBabelConfigInCWD = void 0;
6
+ exports.generateStorybookBabelConfigInCWD = exports.generateStorybookBabelConfig = void 0;
7
7
 
8
8
  require("core-js/modules/es.promise.js");
9
9
 
@@ -3,10 +3,10 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
+ exports.detect = detect;
6
7
  exports.detectFrameworkPreset = detectFrameworkPreset;
7
- exports.isStorybookInstalled = isStorybookInstalled;
8
8
  exports.detectLanguage = detectLanguage;
9
- exports.detect = detect;
9
+ exports.isStorybookInstalled = isStorybookInstalled;
10
10
 
11
11
  var _path = _interopRequireDefault(require("path"));
12
12
 
@@ -24,8 +24,13 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de
24
24
  const read = async url => {
25
25
  const browser = await usePuppeteerBrowser();
26
26
  const page = await browser.newPage();
27
- await page.goto(url);
28
- await page.waitForFunction('window.__STORYBOOK_STORY_STORE__ && window.__STORYBOOK_STORY_STORE__.extract && window.__STORYBOOK_STORY_STORE__.extract()');
27
+ await page.goto(url); // we don't know whether we are running against a new or old storybook
28
+ // FIXME: add tests for both
29
+
30
+ await page.waitForFunction(`
31
+ (window.__STORYBOOK_PREVIEW__ && window.__STORYBOOK_PREVIEW__.extract && window.__STORYBOOK_PREVIEW__.extract()) ||
32
+ (window.__STORYBOOK_STORY_STORE__ && window.__STORYBOOK_STORY_STORE__.extract && window.__STORYBOOK_STORY_STORE__.extract())
33
+ `);
29
34
  const data = JSON.parse(await page.evaluate(async () => {
30
35
  // eslint-disable-next-line no-undef
31
36
  return JSON.stringify(window.__STORYBOOK_STORY_STORE__.getStoriesJsonData(), null, 2);
@@ -24,3 +24,9 @@ h1 {
24
24
  button + button {
25
25
  margin-left: 10px;
26
26
  }
27
+
28
+ .welcome {
29
+ color: #333;
30
+ font-size: 14px;
31
+ margin-right: 10px;
32
+ }
@@ -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
  };
@@ -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
+ };
@@ -0,0 +1,29 @@
1
+ import Header from './Header.svelte';
2
+
3
+ export default {
4
+ title: 'Example/Header',
5
+ component: Header,
6
+ argTypes: {
7
+ onLogin: { action: 'onLogin' },
8
+ onLogout: { action: 'onLogout' },
9
+ onCreateAccount: { action: 'onCreateAccount' },
10
+ },
11
+ };
12
+
13
+ const Template = (args) => ({
14
+ Component: Header,
15
+ props: args,
16
+ on: {
17
+ login: args.onLogin,
18
+ logout: args.onLogout,
19
+ createAccount: args.onCreateAccount,
20
+ },
21
+ });
22
+
23
+ export const LoggedIn = Template.bind({});
24
+ LoggedIn.args = {
25
+ user: {},
26
+ };
27
+
28
+ export const LoggedOut = Template.bind({});
29
+ LoggedOut.args = {};