@storybook/core-common 6.4.0-beta.3 → 6.4.0-beta.33

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 (54) hide show
  1. package/dist/cjs/index.js +26 -0
  2. package/dist/cjs/presets.js +41 -9
  3. package/dist/cjs/templates/base-preview-body.html +231 -1
  4. package/dist/cjs/templates/base-preview-head.html +10 -5
  5. package/dist/cjs/templates/index.ejs +14 -18
  6. package/dist/cjs/utils/check-addon-order.js +54 -0
  7. package/dist/cjs/utils/findDistEsm.js +22 -0
  8. package/dist/cjs/utils/glob-to-regexp.js +32 -0
  9. package/dist/cjs/utils/normalize-stories.js +95 -64
  10. package/dist/cjs/utils/progress-reporting.js +1 -0
  11. package/dist/cjs/utils/to-importFn.js +25 -14
  12. package/dist/cjs/utils/to-require-context.js +16 -78
  13. package/dist/esm/index.js +2 -0
  14. package/dist/esm/presets.js +41 -10
  15. package/dist/esm/templates/base-preview-body.html +231 -1
  16. package/dist/esm/templates/base-preview-head.html +10 -5
  17. package/dist/esm/templates/index.ejs +14 -18
  18. package/dist/esm/utils/check-addon-order.js +45 -0
  19. package/dist/esm/utils/findDistEsm.js +8 -0
  20. package/dist/esm/utils/glob-to-regexp.js +24 -0
  21. package/dist/esm/utils/normalize-stories.js +89 -63
  22. package/dist/esm/utils/progress-reporting.js +1 -0
  23. package/dist/esm/utils/to-importFn.js +23 -14
  24. package/dist/esm/utils/to-require-context.js +15 -72
  25. package/dist/modern/index.js +2 -0
  26. package/dist/modern/presets.js +41 -10
  27. package/dist/modern/templates/base-preview-body.html +231 -1
  28. package/dist/modern/templates/base-preview-head.html +10 -5
  29. package/dist/modern/templates/index.ejs +14 -18
  30. package/dist/modern/utils/check-addon-order.js +45 -0
  31. package/dist/modern/utils/findDistEsm.js +8 -0
  32. package/dist/modern/utils/glob-to-regexp.js +24 -0
  33. package/dist/modern/utils/normalize-stories.js +89 -63
  34. package/dist/modern/utils/progress-reporting.js +1 -0
  35. package/dist/modern/utils/to-importFn.js +23 -14
  36. package/dist/modern/utils/to-require-context.js +15 -72
  37. package/dist/ts3.4/index.d.ts +2 -0
  38. package/dist/ts3.4/types.d.ts +71 -9
  39. package/dist/ts3.4/utils/check-addon-order.d.ts +16 -0
  40. package/dist/ts3.4/utils/findDistEsm.d.ts +1 -0
  41. package/dist/ts3.4/utils/glob-to-regexp.d.ts +1 -0
  42. package/dist/ts3.4/utils/normalize-stories.d.ts +4 -7
  43. package/dist/ts3.4/utils/to-importFn.d.ts +2 -1
  44. package/dist/ts3.4/utils/to-require-context.d.ts +7 -2
  45. package/dist/ts3.9/index.d.ts +2 -0
  46. package/dist/ts3.9/types.d.ts +71 -9
  47. package/dist/ts3.9/utils/check-addon-order.d.ts +16 -0
  48. package/dist/ts3.9/utils/findDistEsm.d.ts +1 -0
  49. package/dist/ts3.9/utils/glob-to-regexp.d.ts +1 -0
  50. package/dist/ts3.9/utils/normalize-stories.d.ts +4 -7
  51. package/dist/ts3.9/utils/to-importFn.d.ts +2 -1
  52. package/dist/ts3.9/utils/to-require-context.d.ts +7 -2
  53. package/package.json +8 -5
  54. package/typings.d.ts +9 -0
package/dist/cjs/index.js CHANGED
@@ -43,6 +43,19 @@ Object.keys(_checkWebpackVersion).forEach(function (key) {
43
43
  });
44
44
  });
45
45
 
46
+ var _checkAddonOrder = require("./utils/check-addon-order");
47
+
48
+ Object.keys(_checkAddonOrder).forEach(function (key) {
49
+ if (key === "default" || key === "__esModule") return;
50
+ if (key in exports && exports[key] === _checkAddonOrder[key]) return;
51
+ Object.defineProperty(exports, key, {
52
+ enumerable: true,
53
+ get: function () {
54
+ return _checkAddonOrder[key];
55
+ }
56
+ });
57
+ });
58
+
46
59
  var _envs = require("./utils/envs");
47
60
 
48
61
  Object.keys(_envs).forEach(function (key) {
@@ -342,6 +355,19 @@ Object.keys(_readTemplate).forEach(function (key) {
342
355
  });
343
356
  });
344
357
 
358
+ var _findDistEsm = require("./utils/findDistEsm");
359
+
360
+ Object.keys(_findDistEsm).forEach(function (key) {
361
+ if (key === "default" || key === "__esModule") return;
362
+ if (key in exports && exports[key] === _findDistEsm[key]) return;
363
+ Object.defineProperty(exports, key, {
364
+ enumerable: true,
365
+ get: function () {
366
+ return _findDistEsm[key];
367
+ }
368
+ });
369
+ });
370
+
345
371
  var _types = require("./types");
346
372
 
347
373
  Object.keys(_types).forEach(function (key) {
@@ -21,6 +21,8 @@ var _resolveFrom = _interopRequireDefault(require("resolve-from"));
21
21
 
22
22
  var _loadCustomPresets = require("./utils/load-custom-presets");
23
23
 
24
+ var _interpretRequire = require("./utils/interpret-require");
25
+
24
26
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
25
27
 
26
28
  function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
@@ -48,13 +50,15 @@ function filterPresetsConfig(presetsConfig) {
48
50
  });
49
51
  }
50
52
 
51
- function resolvePresetFunction(input, presetOptions, storybookOptions) {
53
+ function resolvePresetFunction(input, presetOptions, framework, storybookOptions) {
54
+ var prepend = [framework].filter(Boolean);
55
+
52
56
  if (isFunction(input)) {
53
- return input(_objectSpread(_objectSpread({}, storybookOptions), presetOptions));
57
+ return [...prepend, ...input(_objectSpread(_objectSpread({}, storybookOptions), presetOptions))];
54
58
  }
55
59
 
56
60
  if (Array.isArray(input)) {
57
- return input;
61
+ return [...prepend, ...input];
58
62
  }
59
63
 
60
64
  return [];
@@ -197,11 +201,12 @@ function loadPreset(input, level, storybookOptions) {
197
201
  var _contents = contents,
198
202
  addonsInput = _contents.addons,
199
203
  presetsInput = _contents.presets,
200
- rest = _objectWithoutProperties(_contents, ["addons", "presets"]);
204
+ framework = _contents.framework,
205
+ rest = _objectWithoutProperties(_contents, ["addons", "presets", "framework"]);
201
206
 
202
- var _subPresets = resolvePresetFunction(presetsInput, presetOptions, storybookOptions);
207
+ var _subPresets = resolvePresetFunction(presetsInput, presetOptions, framework, storybookOptions);
203
208
 
204
- var subAddons = resolvePresetFunction(addonsInput, presetOptions, storybookOptions);
209
+ var subAddons = resolvePresetFunction(addonsInput, presetOptions, framework, storybookOptions);
205
210
  return [...loadPresets([..._subPresets], level + 1, storybookOptions), ...loadPresets([...subAddons.map(map(storybookOptions))].filter(Boolean), level + 1, storybookOptions), {
206
211
  name: name,
207
212
  preset: rest,
@@ -239,8 +244,8 @@ function loadPresets(presets, level, storybookOptions) {
239
244
  }
240
245
 
241
246
  function applyPresets(presets, extension, config, args, storybookOptions) {
242
- var presetResult = new Promise(function (resolve) {
243
- return resolve(config);
247
+ var presetResult = new Promise(function (res) {
248
+ return res(config);
244
249
  });
245
250
 
246
251
  if (!presets.length) {
@@ -297,6 +302,32 @@ function getPresets(presets, storybookOptions) {
297
302
  }
298
303
  };
299
304
  }
305
+ /**
306
+ * Get the `framework` provided in main.js and also do error checking up front
307
+ */
308
+
309
+
310
+ var getFrameworkPackage = function (configDir) {
311
+ var main = (0, _interpretRequire.serverRequire)((0, _path.resolve)(configDir, 'main'));
312
+ if (!main) return null;
313
+ var frameworkPackage = main.framework,
314
+ _main$features = main.features,
315
+ features = _main$features === void 0 ? {} : _main$features;
316
+
317
+ if (features.breakingChangesV7 && !frameworkPackage) {
318
+ throw new Error((0, _tsDedent.default)`
319
+ Expected 'framework' in your main.js, didn't find one.
320
+
321
+ You can fix this automatically by running:
322
+
323
+ npx sb@next automigrate
324
+
325
+ More info: https://github.com/storybookjs/storybook/blob/next/MIGRATION.md#mainjs-framework-field
326
+ `);
327
+ }
328
+
329
+ return frameworkPackage;
330
+ };
300
331
 
301
332
  function loadAllPresets(options) {
302
333
  var _options$corePresets = options.corePresets,
@@ -307,7 +338,8 @@ function loadAllPresets(options) {
307
338
  overridePresets = _options$overridePres === void 0 ? [] : _options$overridePres,
308
339
  restOptions = _objectWithoutProperties(options, ["corePresets", "frameworkPresets", "overridePresets"]);
309
340
 
310
- var presetsConfig = [...corePresets, ...frameworkPresets, ...(0, _loadCustomPresets.loadCustomPresets)(options), ...overridePresets]; // Remove `@storybook/preset-typescript` and add a warning if in use.
341
+ var frameworkPackage = getFrameworkPackage(options.configDir);
342
+ var presetsConfig = [...corePresets, ...(frameworkPackage ? [] : frameworkPresets), ...(0, _loadCustomPresets.loadCustomPresets)(options), ...overridePresets]; // Remove `@storybook/preset-typescript` and add a warning if in use.
311
343
 
312
344
  var filteredPresetConfig = filterPresetsConfig(presetsConfig);
313
345
 
@@ -1,3 +1,231 @@
1
+ <style>
2
+ @-webkit-keyframes rotate360 {
3
+ from {
4
+ transform: rotate(0deg);
5
+ }
6
+ to {
7
+ transform: rotate(360deg);
8
+ }
9
+ }
10
+ @keyframes rotate360 {
11
+ from {
12
+ transform: rotate(0deg);
13
+ }
14
+ to {
15
+ transform: rotate(360deg);
16
+ }
17
+ }
18
+ @-webkit-keyframes glow {
19
+ 0%,
20
+ 100% {
21
+ opacity: 1;
22
+ }
23
+ 50% {
24
+ opacity: 0.4;
25
+ }
26
+ }
27
+ @keyframes glow {
28
+ 0%,
29
+ 100% {
30
+ opacity: 1;
31
+ }
32
+ 50% {
33
+ opacity: 0.4;
34
+ }
35
+ }
36
+ .isLoading {
37
+ cursor: progress;
38
+ }
39
+
40
+ .loader {
41
+ -webkit-animation: rotate360 0.7s linear infinite;
42
+ animation: rotate360 0.7s linear infinite;
43
+ border-color: rgba(97, 97, 97, 0.29);
44
+ border-radius: 50%;
45
+ border-style: solid;
46
+ border-top-color: #646464;
47
+ border-width: 2px;
48
+ display: inline-block;
49
+ height: 32px;
50
+ left: 50%;
51
+ margin-left: -16px;
52
+ margin-top: -16px;
53
+ mix-blend-mode: difference;
54
+ overflow: hidden;
55
+ position: absolute;
56
+ top: 50%;
57
+ transition: all 200ms ease-out;
58
+ vertical-align: top;
59
+ width: 32px;
60
+ z-index: 4;
61
+ }
62
+
63
+ .previewBlock {
64
+ background: #fff;
65
+ border: 1px solid rgba(0, 0, 0, 0.1);
66
+ border-radius: 4px;
67
+ box-shadow: rgba(0, 0, 0, 0.1) 0 1px 3px 0;
68
+ margin: 25px auto 40px;
69
+ max-width: 600px;
70
+ }
71
+
72
+ .previewBlock_header {
73
+ align-items: center;
74
+ background: #fff;
75
+ box-shadow: rgba(0, 0, 0, 0.1) 0 -1px 0 0 inset;
76
+ display: flex;
77
+ gap: 14px;
78
+ height: 40px;
79
+ padding: 0 12px;
80
+ }
81
+
82
+ .previewBlock_icon {
83
+ -webkit-animation: glow 1.5s ease-in-out infinite;
84
+ animation: glow 1.5s ease-in-out infinite;
85
+ background: #e6e6e6;
86
+ height: 14px;
87
+ width: 14px;
88
+ }
89
+ .previewBlock_icon:last-child {
90
+ margin-left: auto;
91
+ }
92
+
93
+ .previewBlock_body {
94
+ -webkit-animation: glow 1.5s ease-in-out infinite;
95
+ animation: glow 1.5s ease-in-out infinite;
96
+ height: 110px;
97
+ position: relative;
98
+ }
99
+
100
+ .argsTable {
101
+ margin: 0 auto;
102
+ max-width: 600px;
103
+ }
104
+
105
+ .argsTable_header {
106
+ align-content: stretch;
107
+ display: flex;
108
+ gap: 16px;
109
+ margin-top: 25px;
110
+ padding: 10px 20px;
111
+ }
112
+ .argsTable_header div {
113
+ -webkit-animation: glow 1.5s ease-in-out infinite;
114
+ animation: glow 1.5s ease-in-out infinite;
115
+ background: #e6e6e6;
116
+ flex-shrink: 0;
117
+ height: 20px;
118
+ }
119
+ .argsTable_header div:first-child,
120
+ .argsTable_header div:nth-child(4) {
121
+ width: 20%;
122
+ }
123
+ .argsTable_header div:nth-child(2) {
124
+ width: 30%;
125
+ }
126
+ .argsTable_header div:nth-child(3) {
127
+ flex-grow: 1;
128
+ }
129
+ .argsTable_header div:last-child {
130
+ width: 30px;
131
+ }
132
+ @media (max-width: 500px) {
133
+ .argsTable_header div:nth-child(n + 4) {
134
+ display: none;
135
+ }
136
+ }
137
+
138
+ .argsTable_body {
139
+ background: #ffffff;
140
+ border-radius: 4px;
141
+ box-shadow: rgba(0, 0, 0, 0.1) 0 1px 3px 1px, rgba(0, 0, 0, 0.065) 0 0 0 1px;
142
+ }
143
+
144
+ .argsTable_row {
145
+ align-content: stretch;
146
+ border-top-color: #e6e6e6;
147
+ border-top-style: solid;
148
+ border-top-width: 1px;
149
+ display: flex;
150
+ gap: 16px;
151
+ padding: 20px;
152
+ }
153
+ .argsTable_row:first-child {
154
+ border-top: 0;
155
+ }
156
+ .argsTable_row div {
157
+ -webkit-animation: glow 1.5s ease-in-out infinite;
158
+ animation: glow 1.5s ease-in-out infinite;
159
+ background: rgba(0, 0, 0, 0.1);
160
+ flex-shrink: 0;
161
+ height: 20px;
162
+ }
163
+ .argsTable_row div:first-child {
164
+ width: 20%;
165
+ }
166
+ .argsTable_row div:nth-child(2) {
167
+ width: 30%;
168
+ }
169
+ .argsTable_row div:nth-child(3) {
170
+ flex-grow: 1;
171
+ }
172
+ .argsTable_row div:last-child {
173
+ width: calc(20% + 47px);
174
+ }
175
+ @media (max-width: 500px) {
176
+ .argsTable_row div:last-child {
177
+ display: none;
178
+ }
179
+ }
180
+ </style>
181
+
182
+ <div class="sb-preparing-story sb-wrapper">
183
+ <div class="loader"></div>
184
+ </div>
185
+
186
+ <div class="sb-preparing-docs sb-wrapper">
187
+ <div class="previewBlock">
188
+ <div class="previewBlock_header">
189
+ <div class="previewBlock_icon"></div>
190
+ <div class="previewBlock_icon"></div>
191
+ <div class="previewBlock_icon"></div>
192
+ <div class="previewBlock_icon"></div>
193
+ </div>
194
+ <div class="previewBlock_body">
195
+ <div class="loader"></div>
196
+ </div>
197
+ </div>
198
+ <div class="argsTable">
199
+ <div class="argsTable_header">
200
+ <div></div>
201
+ <div></div>
202
+ <div></div>
203
+ <div></div>
204
+ <div></div>
205
+ </div>
206
+ <div class="argsTable_body">
207
+ <div class="argsTable_row">
208
+ <div></div>
209
+ <div></div>
210
+ <div></div>
211
+ <div></div>
212
+ </div>
213
+ <div class="argsTable_row">
214
+ <div></div>
215
+ <div></div>
216
+ <div></div>
217
+ <div></div>
218
+ </div>
219
+ <div class="argsTable_row">
220
+ <div></div>
221
+ <div></div>
222
+ <div></div>
223
+ <div></div>
224
+ </div>
225
+ </div>
226
+ </div>
227
+ </div>
228
+
1
229
  <div class="sb-nopreview sb-wrapper">
2
230
  <div class="sb-nopreview_main">
3
231
  <h1 class="sb-nopreview_heading sb-heading">No Preview</h1>
@@ -6,7 +234,9 @@
6
234
  <li>Please check the Storybook config.</li>
7
235
  <li>Try reloading the page.</li>
8
236
  </ul>
9
- <p>If the problem persists, check the browser console, or the terminal you've run Storybook from.</p>
237
+ <p>
238
+ If the problem persists, check the browser console, or the terminal you've run Storybook from.
239
+ </p>
10
240
  </div>
11
241
  </div>
12
242
 
@@ -1,7 +1,10 @@
1
- <base target="_parent">
1
+ <base target="_parent" />
2
2
 
3
3
  <style>
4
- :not(.sb-show-main) > .sb-main,
4
+ :not(.sb-show-main) > #root,
5
+ :not(.sb-show-main) > #docs-root,
6
+ :not(.sb-show-preparing-story) > .sb-preparing-story,
7
+ :not(.sb-show-preparing-docs) > .sb-preparing-docs,
5
8
  :not(.sb-show-nopreview) > .sb-nopreview,
6
9
  :not(.sb-show-errordisplay) > .sb-errordisplay {
7
10
  display: none;
@@ -50,7 +53,8 @@
50
53
  left: 0;
51
54
  right: 0;
52
55
  padding: 20px;
53
- font-family: "Nunito Sans", -apple-system, ".SFNSText-Regular", "San Francisco", BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", Helvetica, Arial, sans-serif;
56
+ font-family: 'Nunito Sans', -apple-system, '.SFNSText-Regular', 'San Francisco',
57
+ BlinkMacSystemFont, 'Segoe UI', 'Helvetica Neue', Helvetica, Arial, sans-serif;
54
58
  -webkit-font-smoothing: antialiased;
55
59
  overflow: auto;
56
60
  }
@@ -73,7 +77,7 @@
73
77
  margin: auto;
74
78
  padding: 30px;
75
79
  border-radius: 10px;
76
- background: rgba(0,0,0,0.03);
80
+ background: rgba(0, 0, 0, 0.03);
77
81
  }
78
82
 
79
83
  .sb-nopreview_heading {
@@ -91,7 +95,8 @@
91
95
  padding: 10px;
92
96
  background: #000;
93
97
  color: #eee;
94
- font-family: "Operator Mono", "Fira Code Retina", "Fira Code", "FiraCode-Retina", "Andale Mono", "Lucida Console", Consolas, Monaco, monospace;
98
+ font-family: 'Operator Mono', 'Fira Code Retina', 'Fira Code', 'FiraCode-Retina', 'Andale Mono',
99
+ 'Lucida Console', Consolas, Monaco, monospace;
95
100
  }
96
101
 
97
102
  .sb-errordisplay pre {
@@ -2,16 +2,16 @@
2
2
  <html lang="en">
3
3
  <head>
4
4
  <meta charset="utf-8" />
5
- <title><%= options.title || 'Storybook'%></title>
5
+ <title><%= htmlWebpackPlugin.options.title || 'Storybook'%></title>
6
6
 
7
- <% if (files.favicon) { %>
8
- <link rel="shortcut icon" href="<%= files.favicon%>" />
7
+ <% if (htmlWebpackPlugin.files.favicon) { %>
8
+ <link rel="shortcut icon" href="<%= htmlWebpackPlugin.files.favicon%>" />
9
9
  <% } %>
10
10
 
11
11
  <meta name="viewport" content="width=device-width, initial-scale=1" />
12
12
 
13
13
  <% if (typeof headHtmlSnippet !== 'undefined') { %> <%= headHtmlSnippet %> <% } %> <%
14
- files.css.forEach(file => { %>
14
+ htmlWebpackPlugin.files.css.forEach(file => { %>
15
15
  <link href="<%= file %>" rel="stylesheet" />
16
16
  <% }); %>
17
17
 
@@ -23,25 +23,21 @@
23
23
  </style>
24
24
  </head>
25
25
  <body>
26
- <% if (typeof bodyHtmlSnippet !== 'undefined') { %>
27
- <%= bodyHtmlSnippet %>
28
- <% } %>
26
+ <% if (typeof bodyHtmlSnippet !== 'undefined') { %> <%= bodyHtmlSnippet %> <% } %>
29
27
 
30
28
  <div id="root"></div>
31
29
  <div id="docs-root"></div>
32
30
 
33
31
  <% if (typeof globals !== 'undefined' && Object.keys(globals).length) { %>
34
- <script>
35
- <% for (var varName in globals) { %>
36
- <% if (globals[varName] != undefined) { %>
37
- window['<%=varName%>'] = <%= JSON.stringify(globals[varName]) %>;
38
- <% } %>
39
- <% } %>
40
- </script>
41
- <% } %>
42
-
43
- <% files.js.forEach(file => { %>
44
- <script src="<%= file %>"></script>
32
+ <script>
33
+ <% for (var varName in globals) { %>
34
+ <% if (globals[varName] != undefined) { %>
35
+ window['<%=varName%>'] = <%= JSON.stringify(globals[varName]) %>;
36
+ <% } %>
37
+ <% } %>
38
+ </script>
39
+ <% } %> <% htmlWebpackPlugin.files.js.forEach(file => { %>
40
+ <script src="<%= file %>"></script>
45
41
  <% }); %>
46
42
  </body>
47
43
  </html>
@@ -0,0 +1,54 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.checkAddonOrder = void 0;
7
+
8
+ require("core-js/modules/es.promise.js");
9
+
10
+ var _require = require('@storybook/node-logger'),
11
+ logger = _require.logger;
12
+
13
+ var predicateFor = function (addon) {
14
+ return function (entry) {
15
+ var name = entry.name || entry;
16
+ return name && name.includes(addon);
17
+ };
18
+ };
19
+
20
+ var isCorrectOrder = function (addons, before, after) {
21
+ var essentialsIndex = addons.findIndex(predicateFor('@storybook/addon-essentials'));
22
+ var beforeIndex = addons.findIndex(predicateFor(before.name));
23
+ var afterIndex = addons.findIndex(predicateFor(after.name));
24
+ if (beforeIndex === -1 && before.inEssentials) beforeIndex = essentialsIndex;
25
+ if (afterIndex === -1 && after.inEssentials) afterIndex = essentialsIndex;
26
+ return beforeIndex !== -1 && afterIndex !== -1 && beforeIndex <= afterIndex;
27
+ };
28
+
29
+ var checkAddonOrder = async function ({
30
+ before: before,
31
+ after: after,
32
+ configFile: configFile,
33
+ getConfig: getConfig
34
+ }) {
35
+ try {
36
+ var config = await getConfig(configFile);
37
+
38
+ if (!(config !== null && config !== void 0 && config.addons)) {
39
+ logger.warn(`Unable to find 'addons' config in main Storybook config`);
40
+ return;
41
+ }
42
+
43
+ if (!isCorrectOrder(config.addons, before, after)) {
44
+ var orEssentials = " (or '@storybook/addon-essentials')";
45
+ var beforeText = `'${before.name}'${before.inEssentials ? orEssentials : ''}`;
46
+ var afterText = `'${after.name}'${after.inEssentials ? orEssentials : ''}`;
47
+ logger.warn(`Expected ${beforeText} to be listed before ${afterText} in main Storybook config.`);
48
+ }
49
+ } catch (e) {
50
+ logger.warn(`Unable to load config file: ${configFile}`);
51
+ }
52
+ };
53
+
54
+ exports.checkAddonOrder = checkAddonOrder;
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.findDistEsm = void 0;
7
+
8
+ var _path = _interopRequireDefault(require("path"));
9
+
10
+ var _findUp = require("find-up");
11
+
12
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
13
+
14
+ var findDistEsm = function (cwd, relativePath) {
15
+ var packageDir = _path.default.dirname((0, _findUp.sync)('package.json', {
16
+ cwd: cwd
17
+ }));
18
+
19
+ return _path.default.join(packageDir, 'dist', 'esm', relativePath);
20
+ };
21
+
22
+ exports.findDistEsm = findDistEsm;
@@ -0,0 +1,32 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.globToRegexp = globToRegexp;
7
+
8
+ var _picomatch = require("picomatch");
9
+
10
+ function globToRegexp(glob) {
11
+ var regex = (0, _picomatch.makeRe)(glob, {
12
+ fastpaths: false,
13
+ noglobstar: false,
14
+ bash: false
15
+ });
16
+
17
+ if (!regex.source.startsWith('^')) {
18
+ throw new Error(`Invalid glob: >> ${glob} >> ${regex}`);
19
+ }
20
+
21
+ if (!glob.startsWith('./')) {
22
+ return regex;
23
+ } // makeRe is sort of funny. If you pass it a directory starting with `./` it
24
+ // creates a matcher that expects files with no prefix (e.g. `src/file.js`)
25
+ // but if you pass it a directory that starts with `../` it expects files that
26
+ // start with `../`. Let's make it consistent.
27
+ // Globs starting `**` require special treatment due to the regex they
28
+ // produce, specifically a negative look-ahead
29
+
30
+
31
+ return new RegExp(['^\\.', glob.startsWith('./**') ? '' : '[\\\\/]', regex.source.substring(1)].join(''));
32
+ }