@storybook/core-common 7.0.0-alpha.11 → 7.0.0-alpha.12

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.
package/dist/index.d.ts CHANGED
@@ -162,7 +162,7 @@ interface StorybookConfigOptions {
162
162
  presetsList?: LoadedPreset[];
163
163
  }
164
164
  declare type Options$1 = LoadOptions & StorybookConfigOptions & CLIOptions & BuilderOptions;
165
- interface Builder<Config, Stats> {
165
+ interface Builder<Config, BuilderStats extends Stats = Stats> {
166
166
  getConfig: (options: Options$1) => Promise<Config>;
167
167
  start: (args: {
168
168
  options: Options$1;
@@ -170,14 +170,14 @@ interface Builder<Config, Stats> {
170
170
  router: Router;
171
171
  server: Server;
172
172
  }) => Promise<void | {
173
- stats: Stats;
173
+ stats?: BuilderStats;
174
174
  totalTime: ReturnType<typeof process.hrtime>;
175
175
  bail: (e?: Error) => Promise<void>;
176
176
  }>;
177
177
  build: (arg: {
178
178
  options: Options$1;
179
179
  startTime: ReturnType<typeof process.hrtime>;
180
- }) => Promise<void | Stats>;
180
+ }) => Promise<void | BuilderStats>;
181
181
  bail: (e?: Error) => Promise<void>;
182
182
  corePresets?: string[];
183
183
  overridePresets?: string[];
@@ -199,6 +199,7 @@ interface StoryIndex {
199
199
  interface StoryIndexer {
200
200
  test: RegExp;
201
201
  indexer: (fileName: string, options: IndexerOptions) => Promise<StoryIndex>;
202
+ addDocsTemplate?: boolean;
202
203
  }
203
204
  /**
204
205
  * Options for TypeScript usage within Storybook.
@@ -252,6 +253,20 @@ declare type StorybookRefs = Record<string, {
252
253
  } | {
253
254
  disable: boolean;
254
255
  }>;
256
+ declare type DocsOptions = {
257
+ /**
258
+ * Should we generate docs entries at all under any circumstances? (i.e. can they be rendered)
259
+ */
260
+ enabled?: boolean;
261
+ /**
262
+ * What should we call the generated docs entries?
263
+ */
264
+ defaultName?: string;
265
+ /**
266
+ * Should we generate a docs entry per CSF file?
267
+ */
268
+ docsPage?: boolean;
269
+ };
255
270
  /**
256
271
  * The interface for Storybook configuration in `main.ts` files.
257
272
  */
@@ -355,6 +370,10 @@ interface StorybookConfig {
355
370
  * Process CSF files for the story index.
356
371
  */
357
372
  storyIndexers?: (indexers: StoryIndexer[], options: Options$1) => StoryIndexer[];
373
+ /**
374
+ * Docs related features in index generation
375
+ */
376
+ docs?: DocsOptions;
358
377
  }
359
378
  declare type PresetProperty<K, TStorybookConfig = StorybookConfig> = TStorybookConfig[K extends keyof TStorybookConfig ? K : never] | PresetPropertyFn<K, TStorybookConfig>;
360
379
  declare type PresetPropertyFn<K, TStorybookConfig = StorybookConfig, TOptions = {}> = (config: TStorybookConfig[K extends keyof TStorybookConfig ? K : never], options: Options$1 & TOptions) => TStorybookConfig[K extends keyof TStorybookConfig ? K : never] | Promise<TStorybookConfig[K extends keyof TStorybookConfig ? K : never]>;
@@ -391,13 +410,13 @@ interface ResolvedAddonVirtual {
391
410
  })[];
392
411
  }
393
412
  declare const resolveAddonName: (configDir: string, name: string, options: any) => ResolvedAddonPreset | ResolvedAddonVirtual | undefined;
394
- declare function loadPreset(input: PresetConfig, level: number, storybookOptions: InterPresetOptions): LoadedPreset[];
413
+ declare function loadPreset(input: PresetConfig, level: number, storybookOptions: InterPresetOptions): Promise<LoadedPreset[]>;
395
414
  declare type InterPresetOptions = Omit<CLIOptions & LoadOptions & BuilderOptions, 'frameworkPresets'>;
396
- declare function getPresets(presets: PresetConfig[], storybookOptions: InterPresetOptions): Presets;
415
+ declare function getPresets(presets: PresetConfig[], storybookOptions: InterPresetOptions): Promise<Presets>;
397
416
  declare function loadAllPresets(options: CLIOptions & LoadOptions & BuilderOptions & {
398
417
  corePresets: string[];
399
418
  overridePresets: string[];
400
- }): Presets;
419
+ }): Promise<Presets>;
401
420
 
402
421
  declare type OptionsEntry = {
403
422
  name: string;
@@ -527,4 +546,4 @@ declare function readTemplate(filename: string): Promise<string>;
527
546
 
528
547
  declare const findDistEsm: (cwd: string, relativePath: string) => string;
529
548
 
530
- export { AddonEntry, AddonInfo, Builder, BuilderName, BuilderOptions, BuilderResult, CLIOptions, CoreConfig, Entry, IndexedStory, IndexerOptions, LoadOptions, LoadedPreset, NormalizedStoriesSpecifier, Options$1 as Options, OptionsEntry, PackageJson, Preset, PresetConfig, PresetProperty, PresetPropertyFn, Presets, Ref, ReleaseNotesData, Stats, StoriesEntry, StoryIndex, StoryIndexer, StorybookConfig, StorybookConfigOptions, TypescriptOptions, VersionCheck, boost, cache, checkAddonOrder, createFileSystemCache, filterPresetsConfig, findDistEsm, getAutoRefs, getDirectoryFromWorkingDir, getInterpretedFile, getInterpretedFileWithExt, getPresets, getPreviewBodyTemplate, getPreviewHeadTemplate, getPreviewMainTemplate, getProjectRoot, getRefs, getStorybookConfiguration, getStorybookInfo, globToRegexp, handlebars, interopRequireDefault, interpolate, loadAllPresets, loadCustomPresets, loadEnvs, loadMainConfig, loadManagerOrAddonsFile, loadPreset, loadPreviewOrConfigFile, logConfig, nodePathsToArray, normalizeStories, normalizeStoriesEntry, normalizeStoryPath, readTemplate, resolveAddonName, resolvePathInStorybookCache, serverRequire, serverResolve, stringifyEnvs, stringifyProcessEnvs, useProgressReporting, validateConfigurationFiles };
549
+ export { AddonEntry, AddonInfo, Builder, BuilderName, BuilderOptions, BuilderResult, CLIOptions, CoreConfig, DocsOptions, Entry, IndexedStory, IndexerOptions, LoadOptions, LoadedPreset, NormalizedStoriesSpecifier, Options$1 as Options, OptionsEntry, PackageJson, Preset, PresetConfig, PresetProperty, PresetPropertyFn, Presets, Ref, ReleaseNotesData, Stats, StoriesEntry, StoryIndex, StoryIndexer, StorybookConfig, StorybookConfigOptions, TypescriptOptions, VersionCheck, boost, cache, checkAddonOrder, createFileSystemCache, filterPresetsConfig, findDistEsm, getAutoRefs, getDirectoryFromWorkingDir, getInterpretedFile, getInterpretedFileWithExt, getPresets, getPreviewBodyTemplate, getPreviewHeadTemplate, getPreviewMainTemplate, getProjectRoot, getRefs, getStorybookConfiguration, getStorybookInfo, globToRegexp, handlebars, interopRequireDefault, interpolate, loadAllPresets, loadCustomPresets, loadEnvs, loadMainConfig, loadManagerOrAddonsFile, loadPreset, loadPreviewOrConfigFile, logConfig, nodePathsToArray, normalizeStories, normalizeStoriesEntry, normalizeStoryPath, readTemplate, resolveAddonName, resolvePathInStorybookCache, serverRequire, serverResolve, stringifyEnvs, stringifyProcessEnvs, useProgressReporting, validateConfigurationFiles };
package/dist/index.js CHANGED
@@ -1,23 +1,28 @@
1
- "use strict";var tt=Object.create;var w=Object.defineProperty;var rt=Object.getOwnPropertyDescriptor;var ot=Object.getOwnPropertyNames;var nt=Object.getPrototypeOf,st=Object.prototype.hasOwnProperty;var n=(e,t)=>w(e,"name",{value:t,configurable:!0});var it=(e,t)=>{for(var r in t)w(e,r,{get:t[r],enumerable:!0})},ie=(e,t,r,o)=>{if(t&&typeof t=="object"||typeof t=="function")for(let s of ot(t))!st.call(e,s)&&s!==r&&w(e,s,{get:()=>t[s],enumerable:!(o=rt(t,s))||o.enumerable});return e};var p=(e,t,r)=>(r=e!=null?tt(nt(e)):{},ie(t||!e||!e.__esModule?w(r,"default",{value:e,enumerable:!0}):r,e)),at=e=>ie(w({},"__esModule",{value:!0}),e);var Gt={};it(Gt,{boost:()=>$,cache:()=>_t,checkAddonOrder:()=>yt,createFileSystemCache:()=>M,filterPresetsConfig:()=>be,findDistEsm:()=>Jt,getAutoRefs:()=>Ne,getDirectoryFromWorkingDir:()=>Xe,getInterpretedFile:()=>y,getInterpretedFileWithExt:()=>D,getPresets:()=>ke,getPreviewBodyTemplate:()=>Lt,getPreviewHeadTemplate:()=>Mt,getPreviewMainTemplate:()=>Ht,getProjectRoot:()=>ht,getRefs:()=>Ft,getStorybookConfiguration:()=>Z,getStorybookInfo:()=>St,globToRegexp:()=>oe,handlebars:()=>$t,interopRequireDefault:()=>A,interpolate:()=>Ut,loadAllPresets:()=>ut,loadCustomPresets:()=>J,loadEnvs:()=>bt,loadMainConfig:()=>kt,loadManagerOrAddonsFile:()=>Rt,loadPreset:()=>we,loadPreviewOrConfigFile:()=>It,logConfig:()=>Nt,nodePathsToArray:()=>V,normalizeStories:()=>Wt,normalizeStoriesEntry:()=>Ze,normalizeStoryPath:()=>X,readTemplate:()=>Yt,resolveAddonName:()=>ve,resolvePathInStorybookCache:()=>te,serverRequire:()=>x,serverResolve:()=>F,stringifyEnvs:()=>vt,stringifyProcessEnvs:()=>wt,useProgressReporting:()=>Tt,validateConfigurationFiles:()=>P});module.exports=at(Gt);var xe=require("ts-dedent"),j=require("@storybook/node-logger");var R=p(require("path"));var fe=p(require("interpret")),pe=p(require("path")),W=require("@storybook/node-logger");var B=p(require("fs")),ae=require("interpret"),$=new Set([".js",".jsx",".ts",".tsx",".cjs",".mjs"]);function ct(){return[...Array.from($),...Object.keys(ae.extensions).filter(e=>!$.has(e)).sort((e,t)=>e.length-t.length)]}n(ct,"sortExtensions");var ce=ct();function y(e){return ce.map(t=>e.endsWith(t)?e:`${e}${t}`).find(t=>B.default.existsSync(t))}n(y,"getInterpretedFile");function D(e){return ce.map(t=>({path:e.endsWith(t)?e:`${e}${t}`,ext:t})).find(t=>B.default.existsSync(t.path))}n(D,"getInterpretedFileWithExt");var O=new Map;function le(e){if(!e)return 0;let t=O.get(e);if(t!==void 0)return t;if(typeof e=="string")return require(e),O.set(e,1),1;if(!Array.isArray(e))return e.register(require(e.module)),O.set(e,1),1;let r=0;for(let o=0;o<e.length;o+=1)try{r+=le(e[o]);break}catch{}return O.set(e,r),r}n(le,"registerCompiler");function A(e){let t=require(e);return typeof t=="object"&&t!==null&&typeof t.default<"u"?t.default:t}n(A,"interopRequireDefault");function ft(e){for(let t=0;t<e.length;t+=1){let r=D(e[t]);if(r)return r}}n(ft,"getCandidate");function x(e){let t=F(e);if(!t)return null;let r=pe.default.extname(t),o=fe.default.extensions[r];return o&&le(o)===0?(W.logger.warn(`=> File ${t} is detected`),W.logger.warn(` but impossible to import loader for ${r}`),null):A(t)}n(x,"serverRequire");function F(e){let t=Array.isArray(e)?e:[e],r=ft(t);return r?r.path:null}n(F,"serverResolve");var k=require("ts-dedent"),me=p(require("util-deprecate")),de=p(require("glob")),b=p(require("path"));var pt=(0,me.default)(()=>{},k.dedent`
1
+ "use strict";var Ve=Object.create;var $=Object.defineProperty;var Xe=Object.getOwnPropertyDescriptor;var Ze=Object.getOwnPropertyNames;var Qe=Object.getPrototypeOf,et=Object.prototype.hasOwnProperty;var n=(e,t)=>$(e,"name",{value:t,configurable:!0});var tt=(e,t)=>{for(var r in t)$(e,r,{get:t[r],enumerable:!0})},ne=(e,t,r,o)=>{if(t&&typeof t=="object"||typeof t=="function")for(let s of Ze(t))!et.call(e,s)&&s!==r&&$(e,s,{get:()=>t[s],enumerable:!(o=Xe(t,s))||o.enumerable});return e};var l=(e,t,r)=>(r=e!=null?Ve(Qe(e)):{},ne(t||!e||!e.__esModule?$(r,"default",{value:e,enumerable:!0}):r,e)),rt=e=>ne($({},"__esModule",{value:!0}),e);var Bt={};tt(Bt,{boost:()=>O,cache:()=>Ft,checkAddonOrder:()=>lt,createFileSystemCache:()=>D,filterPresetsConfig:()=>ue,findDistEsm:()=>Ut,getAutoRefs:()=>Se,getDirectoryFromWorkingDir:()=>Je,getInterpretedFile:()=>y,getInterpretedFileWithExt:()=>B,getPresets:()=>xe,getPreviewBodyTemplate:()=>Rt,getPreviewHeadTemplate:()=>It,getPreviewMainTemplate:()=>Nt,getProjectRoot:()=>mt,getRefs:()=>Et,getStorybookConfiguration:()=>V,getStorybookInfo:()=>kt,globToRegexp:()=>te,handlebars:()=>ht,interopRequireDefault:()=>S,interpolate:()=>Tt,loadAllPresets:()=>ft,loadCustomPresets:()=>q,loadEnvs:()=>ut,loadMainConfig:()=>xt,loadManagerOrAddonsFile:()=>Ct,loadPreset:()=>ye,loadPreviewOrConfigFile:()=>Ot,logConfig:()=>St,nodePathsToArray:()=>z,normalizeStories:()=>Mt,normalizeStoriesEntry:()=>Ge,normalizeStoryPath:()=>K,readTemplate:()=>Ht,resolveAddonName:()=>ge,resolvePathInStorybookCache:()=>Q,serverRequire:()=>x,serverResolve:()=>A,stringifyEnvs:()=>gt,stringifyProcessEnvs:()=>yt,useProgressReporting:()=>At,validateConfigurationFiles:()=>P});module.exports=rt(Bt);var de=require("ts-dedent"),v=require("@storybook/node-logger");var F=l(require("path"));var U=l(require("fs")),O=new Set([".js",".jsx",".ts",".tsx",".cjs",".mjs"]);function ot(){return[...Array.from(O)]}n(ot,"sortExtensions");var se=ot();function y(e){return se.map(t=>e.endsWith(t)?e:`${e}${t}`).find(t=>U.default.existsSync(t))}n(y,"getInterpretedFile");function B(e){return se.map(t=>({path:e.endsWith(t)?e:`${e}${t}`,ext:t})).find(t=>U.default.existsSync(t.path))}n(B,"getInterpretedFileWithExt");var ie=!1;function S(e){if(ie===!1){let{register:o}=require("esbuild-register/dist/node");ie=!0,o({target:`node${process.version.slice(1)}`,format:"cjs",hookIgnoreNodeModules:!1,tsconfigRaw:`{
2
+ "compilerOptions": {
3
+ "strict": false,
4
+ "skipLibCheck": true,
5
+ },
6
+ }`})}let t=require(e);return typeof t=="object"&&t!==null&&typeof t.default<"u"?t.default:t}n(S,"interopRequireDefault");function nt(e){for(let t=0;t<e.length;t+=1){let r=B(e[t]);if(r)return r}}n(nt,"getCandidate");function x(e){let t=A(e);return t?S(t):null}n(x,"serverRequire");function A(e){let t=Array.isArray(e)?e:[e],r=nt(t);return r?r.path:null}n(A,"serverResolve");var k=require("ts-dedent"),ae=l(require("util-deprecate")),ce=l(require("glob")),b=l(require("path"));var st=(0,ae.default)(()=>{},k.dedent`
2
7
  Configuration files such as "config", "presets" and "addons" are deprecated and will be removed in Storybook 7.0.
3
8
  Read more about it in the migration guide: https://github.com/storybookjs/storybook/blob/master/MIGRATION.md#to-mainjs-configuration
4
- `),Y=n((e,t,r)=>{let o=b.default.resolve(r,e),s=b.default.resolve(r,t);throw new Error(k.dedent`
9
+ `),W=n((e,t,r)=>{let o=b.default.resolve(r,e),s=b.default.resolve(r,t);throw new Error(k.dedent`
5
10
  You have mixing configuration files:
6
11
  ${o}
7
12
  ${s}
8
13
  "${e}" and "${t}" cannot coexist.
9
14
  Please check the documentation for migration steps: https://github.com/storybookjs/storybook/blob/master/MIGRATION.md#to-mainjs-configuration
10
- `)},"errorMixingConfigFiles");function P(e){let t=`{${Array.from($).join(",")}}`,r=n(a=>!!de.default.sync(b.default.resolve(e,`${a}${t}`)).length,"exists"),o=r("main"),s=r("config");if(!o&&!s)throw new Error(k.dedent`
15
+ `)},"errorMixingConfigFiles");function P(e){let t=`{${Array.from(O).join(",")}}`,r=n(a=>!!ce.default.sync(b.default.resolve(e,`${a}${t}`)).length,"exists"),o=r("main"),s=r("config");if(!o&&!s)throw new Error(k.dedent`
11
16
  No configuration files have been found in your configDir (${b.default.resolve(e)}).
12
17
  Storybook needs either a "main" or "config" file.
13
18
  `);if(o&&s)throw new Error(k.dedent`
14
- You have both a "main" and a "config". Please remove the "config" file from your configDir (${b.default.resolve(e,"config")})`);let i=r("presets");o&&i&&Y("main","presets",e),r("preview")&&s&&Y("preview","config",e);let f=r("addons");r("manager")&&f&&Y("manager","addons",e),(i||s||f)&&pt()}n(P,"validateConfigurationFiles");function J({configDir:e}){P(e);let t=x(R.default.resolve(e,"presets"));if(x(R.default.resolve(e,"main"))){let o=F(R.default.resolve(e,"main"));if(o)return[o]}return t||[]}n(J,"loadCustomPresets");var ue=p(require("resolve-from")),ge=n((e,t)=>{try{return(0,ue.default)(e,t)}catch{return}},"safeResolveFrom"),ye=n(e=>{try{return require.resolve(e)}catch{return}},"safeResolve");var E=n(e=>e!=null&&typeof e=="object"&&Array.isArray(e)===!1,"isObject"),lt=n(e=>typeof e=="function","isFunction");function be(e){return e.filter(t=>{let r=typeof t=="string"?t:t.name;return!/@storybook[\\\\/]preset-typescript/.test(r)})}n(be,"filterPresetsConfig");function he(e,t,r){return lt(e)?[...e({...r,...t})]:Array.isArray(e)?[...e]:[]}n(he,"resolvePresetFunction");var ve=n((e,t,r)=>{let o=t.startsWith("/")?ye:ge.bind(null,e),s=o(t);if(s){if(t.match(/\/(manager|register(-panel)?)(\.(js|ts|tsx|jsx))?$/))return{type:"virtual",name:t,managerEntries:[s]};if(t.match(/\/(preset)(\.(js|ts|tsx|jsx))?$/))return{type:"presets",name:s}}let i=t,l=o(`${i}/manager`),f=o(`${i}/register`)||o(`${i}/register-panel`),m=o(`${i}/preview`),a=o(`${i}/preset`);if(!(l||m)&&a)return{type:"presets",name:a};if(l||f||m||a){let c=[];return l&&c.push(l),!l&&f&&!a&&c.push(f),{type:"virtual",name:i,...c.length?{managerEntries:c}:{},...m?{previewAnnotations:[m]}:{},...a?{presets:[{name:a,options:r}]}:{}}}if(s)return{type:"presets",name:s}},"resolveAddonName"),mt=n(({configDir:e})=>t=>{let r=E(t)&&t.options||void 0,o=E(t)?t.name:t;try{let s=ve(e,o,r);return{...r?{options:r}:{},...s}}catch{j.logger.error(`Addon value should end in /manager or /preview or /register OR it should be a valid preset https://storybook.js.org/docs/react/addons/writing-presets/
15
- ${t}`)}},"map");function dt(e){if(e.type==="virtual"){let{type:r,name:o,...s}=e;return s}let t=e.name?e.name:e;return A(t)}n(dt,"getContent");function we(e,t,r){try{let o=e.name?e.name:e,s=e.options?e.options:{},i=dt(e);if(typeof i=="function"&&(i=i(r,s)),Array.isArray(i))return I(i,t+1,r);if(E(i)){let{addons:l,presets:f,...m}=i,a=he(f,s,r),c=he(l,s,r);return[...I([...a],t+1,r),...I([...c.map(mt(r))].filter(Boolean),t+1,r),{name:o,preset:m,options:s}]}throw new Error(xe.dedent`
19
+ You have both a "main" and a "config". Please remove the "config" file from your configDir (${b.default.resolve(e,"config")})`);let i=r("presets");o&&i&&W("main","presets",e),r("preview")&&s&&W("preview","config",e);let f=r("addons");r("manager")&&f&&W("manager","addons",e),(i||s||f)&&st()}n(P,"validateConfigurationFiles");function q({configDir:e}){P(e);let t=x(F.default.resolve(e,"presets"));if(x(F.default.resolve(e,"main"))){let o=A(F.default.resolve(e,"main"));if(o)return[o]}return t||[]}n(q,"loadCustomPresets");var fe=l(require("resolve-from")),pe=n((e,t)=>{try{return(0,fe.default)(e,t)}catch{return}},"safeResolveFrom"),le=n(e=>{try{return require.resolve(e)}catch{return}},"safeResolve");var j=n(e=>e!=null&&typeof e=="object"&&Array.isArray(e)===!1,"isObject"),it=n(e=>typeof e=="function","isFunction");function ue(e){return e.filter(t=>{let r=typeof t=="string"?t:t.name;return!/@storybook[\\\\/]preset-typescript/.test(r)})}n(ue,"filterPresetsConfig");function me(e,t,r){return it(e)?[...e({...r,...t})]:Array.isArray(e)?[...e]:[]}n(me,"resolvePresetFunction");var ge=n((e,t,r)=>{let o=t.startsWith("/")?le:pe.bind(null,e),s=o(t);if(s){if(t.match(/\/(manager|register(-panel)?)(\.(js|ts|tsx|jsx))?$/))return{type:"virtual",name:t,managerEntries:[s]};if(t.match(/\/(preset)(\.(js|ts|tsx|jsx))?$/))return{type:"presets",name:s}}let i=t,p=o(`${i}/manager`),f=o(`${i}/register`)||o(`${i}/register-panel`),m=o(`${i}/preview`),a=o(`${i}/preset`);if(!(p||m)&&a)return{type:"presets",name:a};if(p||f||m||a){let c=[];return p&&c.push(p),!p&&f&&!a&&c.push(f),{type:"virtual",name:i,...c.length?{managerEntries:c}:{},...m?{previewAnnotations:[m]}:{},...a?{presets:[{name:a,options:r}]}:{}}}if(s)return{type:"presets",name:s}},"resolveAddonName"),at=n(({configDir:e})=>t=>{let r=j(t)&&t.options||void 0,o=j(t)?t.name:t;try{let s=ge(e,o,r);return{...r?{options:r}:{},...s}}catch{v.logger.error(`Addon value should end in /manager or /preview or /register OR it should be a valid preset https://storybook.js.org/docs/react/addons/writing-presets/
20
+ ${t}`)}},"map");async function ct(e){if(e.type==="virtual"){let{type:r,name:o,...s}=e;return s}let t=e.name?e.name:e;return S(t)}n(ct,"getContent");async function ye(e,t,r){try{let o=e.name?e.name:e,s=e.options?e.options:{},i=await ct(e);if(typeof i=="function"&&(i=i(r,s)),Array.isArray(i))return R(i,t+1,r);if(j(i)){let{addons:p,presets:f,...m}=i,a=me(f,s,r),c=me(p,s,r);return[...await R([...a],t+1,r),...await R([...c.map(at(r))].filter(Boolean),t+1,r),{name:o,preset:m,options:s}]}throw new Error(de.dedent`
16
21
  ${e} is not a valid preset
17
- `)}catch(o){let s=t>0?` Failed to load preset: ${JSON.stringify(e)} on level ${t}`:` Failed to load preset: ${JSON.stringify(e)}`;return j.logger.warn(s),j.logger.error(o),[]}}n(we,"loadPreset");function I(e,t,r){return!e||!Array.isArray(e)||!e.length?[]:e.reduce((o,s)=>{let i=we(s,t,r);return o.concat(i)},[])}n(I,"loadPresets");function $e(e,t,r,o,s){let i=new Promise(l=>l(r));return e.length?e.reduce((l,{preset:f,options:m})=>{let a=f[t];if(!a)return l;if(typeof a=="function"){let c=a,d={preset:f,combinedOptions:{...s,...o,...m,presetsList:e,presets:{apply:async(u,g,S={})=>$e(e,u,g,S,s)}}};return l.then(u=>c.call(d.preset,u,d.combinedOptions))}return l.then(c=>Array.isArray(c)&&Array.isArray(a)?[...c,...a]:E(c)&&E(a)?{...c,...a}:a)},i):i}n($e,"applyPresets");function ke(e,t){let r=I(e,0,t);return{apply:async(o,s,i={})=>$e(r,o,s,i,t)}}n(ke,"getPresets");function ut(e){let{corePresets:t=[],overridePresets:r=[],...o}=e,s=[...t,...J(e),...r],i=be(s);return i.length<s.length&&j.logger.warn("Storybook now supports TypeScript natively. You can safely remove `@storybook/preset-typescript`."),ke(i,o)}n(ut,"loadAllPresets");var{logger:G}=require("@storybook/node-logger"),z=n(e=>t=>{let r=t.name||t;return r&&r.includes(e)},"predicateFor"),gt=n((e,t,r)=>{let o=e.findIndex(z("@storybook/addon-essentials")),s=e.findIndex(z(t.name)),i=e.findIndex(z(r.name));return s===-1&&t.inEssentials&&(s=o),i===-1&&r.inEssentials&&(i=o),s!==-1&&i!==-1&&s<=i},"isCorrectOrder"),yt=n(async({before:e,after:t,configFile:r,getConfig:o})=>{try{let s=await o(r);if(!(s!=null&&s.addons)){G.warn("Unable to find 'addons' config in main Storybook config");return}if(!gt(s.addons,e,t)){let i=" (or '@storybook/addon-essentials')",l=`'${e.name}'${e.inEssentials?i:""}`,f=`'${t.name}'${t.inEssentials?i:""}`;G.warn(`Expected ${l} to be listed before ${f} in main Storybook config.`)}}catch{G.warn(`Unable to load config file: ${r}`)}},"checkAddonOrder");var Pe=require("lazy-universal-dotenv");var C=p(require("path")),K=p(require("find-up")),ht=n(()=>{let e;try{let t=K.default.sync(".git",{type:"directory"});t&&(e=e||C.default.join(t,".."))}catch{}try{let t=K.default.sync(".svn",{type:"directory"});t&&(e=e||C.default.join(t,".."))}catch{}try{e=e||__dirname.split("node_modules")[0]}catch{}return e||process.cwd()},"getProjectRoot"),V=n(e=>e.split(process.platform==="win32"?";":":").filter(Boolean).map(t=>C.default.resolve("./",t)),"nodePathsToArray"),xt=/^\.{1,2}([/\\]|$)/;function X(e){return xt.test(e)?e:`.${C.default.sep}${e}`}n(X,"normalizeStoryPath");function bt(e={}){let t=e.production?"production":"development",r={NODE_ENV:process.env.NODE_ENV||t,NODE_PATH:process.env.NODE_PATH||"",STORYBOOK:process.env.STORYBOOK||"true",PUBLIC_URL:e.production?".":""};Object.keys(process.env).filter(f=>/^STORYBOOK_/.test(f)).forEach(f=>{r[f]=process.env[f]});let o=Object.entries(r).reduce((f,[m,a])=>Object.assign(f,{[m]:JSON.stringify(a)}),{}),{stringified:s,raw:i}=(0,Pe.getEnvironment)({nodeEnv:r.NODE_ENV}),l={...r,...i};return l.NODE_PATH=V(l.NODE_PATH||""),{stringified:{...o,...s},raw:l}}n(bt,"loadEnvs");var vt=n(e=>Object.entries(e).reduce((t,[r,o])=>(t[r]=JSON.stringify(o),t),{}),"stringifyEnvs"),wt=n(e=>Object.entries(e).reduce((r,[o,s])=>(r[`process.env.${o}`]=JSON.stringify(s),r),{"process.env.XSTORYBOOK_EXAMPLE_APP":'""'}),"stringifyProcessEnvs");var je=p(require("handlebars"));function $t(e,t){return je.default.compile(e)(t)}n($t,"handlebars");var Ee=p(require("path"));function kt({configDir:e}){return P(e),x(Ee.default.resolve(e,"main"))}n(kt,"loadMainConfig");function Z(e,t,r){if(!e)return null;let o=e.split(/[\s='"]+/),s=o.indexOf(r);return s===-1&&(s=o.indexOf(t)),s===-1?null:o[s+1]}n(Z,"getStorybookConfiguration");var Oe=p(require("path")),Ae=p(require("fs-extra"));var Ce={"@storybook/react":"react","@storybook/vue":"vue","@storybook/vue3":"vue3","@storybook/angular":"angular","@storybook/html":"html","@storybook/web-components":"web-components","@storybook/polymer":"polymer","@storybook/ember":"ember","@storybook/marko":"marko","@storybook/mithril":"mithril","@storybook/riot":"riot","@storybook/svelte":"svelte","@storybook/preact":"preact","@storybook/rax":"rax","@storybook/server":"server"},Se=console,Pt=n(({dependencies:e,devDependencies:t,peerDependencies:r},o)=>[Object.entries(e||{}).find(o),Object.entries(t||{}).find(o),Object.entries(r||{}).find(o)],"findDependency"),jt=n(e=>{let[t,r,o]=Pt(e,([f])=>Ce[f]),[s,i]=t||r||o||[],l=s?Ce[s]:void 0;return t&&r&&t[0]===r[0]&&Se.warn(`Found "${t[0]}" in both "dependencies" and "devDependencies". This is probably a mistake.`),t&&o&&t[0]===o[0]&&Se.warn(`Found "${t[0]}" in both "dependencies" and "peerDependencies". This is probably a mistake.`),{framework:l,version:i,frameworkPackage:s}},"getFrameworkInfo"),Et=["ts","js","tsx","jsx","mjs","cjs"],Q=n((e,t)=>{let r=Oe.default.join(t,e),o=Et.find(s=>Ae.default.existsSync(`${r}.${s}`));return o?`${r}.${o}`:null},"findConfigFile"),Ct=n(e=>{var o;let t=".storybook",r=(o=e.scripts)==null?void 0:o.storybook;if(r){let s=Z(r,"-c","--config-dir");s&&(t=s)}return{configDir:t,mainConfig:Q("main",t),previewConfig:Q("preview",t),managerConfig:Q("manager",t)}},"getConfigInfo"),St=n(e=>{let t=jt(e),r=Ct(e);return{...t,...r}},"getStorybookInfo");var ee=require("fs-extra"),N=require("path"),Fe=p(require("find-up")),Re=p(require("resolve-from")),Ie=require("@storybook/node-logger"),Ne=n(async e=>{let t=await(0,Fe.default)("package.json",{cwd:e.configDir});if(!t)return{};let r=(0,N.dirname)(t),{dependencies:o=[],devDependencies:s=[]}=await(0,ee.readJSON)(t)||{},i=Object.keys({...o,...s});return(await Promise.all(i.map(async f=>{try{let m=(0,Re.default)(r,(0,N.join)(f,"package.json")),{storybook:a,name:c,version:d}=await(0,ee.readJSON)(m)||{};if(a!=null&&a.url)return{id:c,...a,version:d}}catch{Ie.logger.warn(`unable to find package.json for ${f}`);return}}))).filter(Boolean).reduce((f,m)=>({...f,[m.id]:{id:m.id.toLowerCase(),url:Te(m.url),title:m.title,version:m.version}}),{})},"getAutoRefs"),Ot=n(e=>fetch(`${e}/iframe.html`).then(({ok:t})=>t,()=>!1),"checkRef"),Te=n(e=>e.replace(/\/$/,""),"stripTrailingSlash"),At=n(e=>{let t=e.replace(/[A-Z]/g,r=>` ${r}`).replace(/[-_][A-Z]/gi,r=>` ${r.toUpperCase()}`).replace(/-/g," ").replace(/_/g," ");return`${t.substring(0,1).toUpperCase()}${t.substring(1)}`.trim()},"toTitle");async function Ft(e){let t=await e.presets.apply("refs",await Ne(e));return Object.entries(t).forEach(([r,o])=>{if(o.disable){delete t[r];return}t[r.toLowerCase()]={...o,id:r.toLowerCase(),title:o.title||At(o.id||r),url:Te(o.url)}}),await Promise.all(Object.entries(t).map(async([r,o])=>{let s=await Ot(o.url);t[r]={...o,type:s?"server-checked":"unknown"}})),t}n(Ft,"getRefs");var T=p(require("path")),_e=require("@storybook/node-logger"),Le=require("ts-dedent");function Rt({configDir:e}){let t=y(T.default.resolve(e,"addons")),r=y(T.default.resolve(e,"manager"));if((t||r)&&_e.logger.info("=> Loading custom manager config"),t&&r)throw new Error(Le.dedent`
18
- You have both a "addons.js" and a "manager.js", remove the "addons.js" file from your configDir (${T.default.resolve(e,"addons")})`);return r||t}n(Rt,"loadManagerOrAddonsFile");var _=p(require("path")),Me=require("ts-dedent");function It({configDir:e}){let t=y(_.default.resolve(e,"config")),r=y(_.default.resolve(e,"preview"));if(t&&r)throw new Error(Me.dedent`
19
- You have both a "config.js" and a "preview.js", remove the "config.js" file from your configDir (${_.default.resolve(e,"config")})`);return r||t}n(It,"loadPreviewOrConfigFile");var He=p(require("chalk"));function Nt(e,t){console.log(He.default.cyan(e)),console.dir(t,{depth:null})}n(Nt,"logConfig");var Ue=p(require("pretty-hrtime")),qe=n(e=>(0,Ue.default)(process.hrtime(e)).replace(" ms"," milliseconds").replace(" s"," seconds").replace(" m"," minutes"),"printDuration");var Tt=n(async(e,t,r)=>{var m;let o=0,s,i=n(()=>{},"reportProgress");e.get("/progress",(a,c)=>{let d=!1,u=n(()=>{d=!0,c.end()},"close");c.on("close",u),!(d||c.writableEnded)&&(c.setHeader("Cache-Control","no-cache"),c.setHeader("Content-Type","text/event-stream"),c.setHeader("Connection","keep-alive"),c.flushHeaders(),i=n(g=>{d||c.writableEnded||(c.write(`data: ${JSON.stringify(g)}
22
+ `)}catch(o){let s=t>0?` Failed to load preset: ${JSON.stringify(e)} on level ${t}`:` Failed to load preset: ${JSON.stringify(e)}`;return v.logger.warn(s),v.logger.error(o),[]}}n(ye,"loadPreset");async function R(e,t,r){return!e||!Array.isArray(e)||!e.length?[]:(t||v.logger.info("=> Loading presets"),(await Promise.all(e.map(async o=>ye(o,t,r)))).reduce((o,s)=>o.concat(s),[]))}n(R,"loadPresets");function he(e,t,r,o,s){let i=new Promise(p=>p(r));return e.length?e.reduce((p,{preset:f,options:m})=>{let a=f[t];if(!a)return p;if(typeof a=="function"){let c=a,d={preset:f,combinedOptions:{...s,...o,...m,presetsList:e,presets:{apply:async(u,g,C={})=>he(e,u,g,C,s)}}};return p.then(u=>c.call(d.preset,u,d.combinedOptions))}return p.then(c=>Array.isArray(c)&&Array.isArray(a)?[...c,...a]:j(c)&&j(a)?{...c,...a}:a)},i):i}n(he,"applyPresets");async function xe(e,t){let r=await R(e,0,t);return{apply:async(o,s,i={})=>he(r,o,s,i,t)}}n(xe,"getPresets");async function ft(e){let{corePresets:t=[],overridePresets:r=[],...o}=e,s=[...t,...q(e),...r],i=ue(s);return i.length<s.length&&v.logger.warn("Storybook now supports TypeScript natively. You can safely remove `@storybook/preset-typescript`."),xe(i,o)}n(ft,"loadAllPresets");var{logger:Y}=require("@storybook/node-logger"),J=n(e=>t=>{let r=t.name||t;return r&&r.includes(e)},"predicateFor"),pt=n((e,t,r)=>{let o=e.findIndex(J("@storybook/addon-essentials")),s=e.findIndex(J(t.name)),i=e.findIndex(J(r.name));return s===-1&&t.inEssentials&&(s=o),i===-1&&r.inEssentials&&(i=o),s!==-1&&i!==-1&&s<=i},"isCorrectOrder"),lt=n(async({before:e,after:t,configFile:r,getConfig:o})=>{try{let s=await o(r);if(!(s!=null&&s.addons)){Y.warn("Unable to find 'addons' config in main Storybook config");return}if(!pt(s.addons,e,t)){let i=" (or '@storybook/addon-essentials')",p=`'${e.name}'${e.inEssentials?i:""}`,f=`'${t.name}'${t.inEssentials?i:""}`;Y.warn(`Expected ${p} to be listed before ${f} in main Storybook config.`)}}catch{Y.warn(`Unable to load config file: ${r}`)}},"checkAddonOrder");var be=require("lazy-universal-dotenv");var E=l(require("path")),G=l(require("find-up")),mt=n(()=>{let e;try{let t=G.default.sync(".git",{type:"directory"});t&&(e=e||E.default.join(t,".."))}catch{}try{let t=G.default.sync(".svn",{type:"directory"});t&&(e=e||E.default.join(t,".."))}catch{}try{e=e||__dirname.split("node_modules")[0]}catch{}return e||process.cwd()},"getProjectRoot"),z=n(e=>e.split(process.platform==="win32"?";":":").filter(Boolean).map(t=>E.default.resolve("./",t)),"nodePathsToArray"),dt=/^\.{1,2}([/\\]|$)/;function K(e){return dt.test(e)?e:`.${E.default.sep}${e}`}n(K,"normalizeStoryPath");function ut(e={}){let t=e.production?"production":"development",r={NODE_ENV:process.env.NODE_ENV||t,NODE_PATH:process.env.NODE_PATH||"",STORYBOOK:process.env.STORYBOOK||"true",PUBLIC_URL:e.production?".":""};Object.keys(process.env).filter(f=>/^STORYBOOK_/.test(f)).forEach(f=>{r[f]=process.env[f]});let o=Object.entries(r).reduce((f,[m,a])=>Object.assign(f,{[m]:JSON.stringify(a)}),{}),{stringified:s,raw:i}=(0,be.getEnvironment)({nodeEnv:r.NODE_ENV}),p={...r,...i};return p.NODE_PATH=z(p.NODE_PATH||""),{stringified:{...o,...s},raw:p}}n(ut,"loadEnvs");var gt=n(e=>Object.entries(e).reduce((t,[r,o])=>(t[r]=JSON.stringify(o),t),{}),"stringifyEnvs"),yt=n(e=>Object.entries(e).reduce((r,[o,s])=>(r[`process.env.${o}`]=JSON.stringify(s),r),{"process.env.XSTORYBOOK_EXAMPLE_APP":'""'}),"stringifyProcessEnvs");var ve=l(require("handlebars"));function ht(e,t){return ve.default.compile(e)(t)}n(ht,"handlebars");var we=l(require("path"));function xt({configDir:e}){return P(e),x(we.default.resolve(e,"main"))}n(xt,"loadMainConfig");function V(e,t,r){if(!e)return null;let o=e.split(/[\s='"]+/),s=o.indexOf(r);return s===-1&&(s=o.indexOf(t)),s===-1?null:o[s+1]}n(V,"getStorybookConfiguration");var Pe=l(require("path")),je=l(require("fs-extra"));var $e={"@storybook/react":"react","@storybook/vue":"vue","@storybook/vue3":"vue3","@storybook/angular":"angular","@storybook/html":"html","@storybook/web-components":"web-components","@storybook/polymer":"polymer","@storybook/ember":"ember","@storybook/marko":"marko","@storybook/mithril":"mithril","@storybook/riot":"riot","@storybook/svelte":"svelte","@storybook/preact":"preact","@storybook/rax":"rax","@storybook/server":"server"},ke=console,bt=n(({dependencies:e,devDependencies:t,peerDependencies:r},o)=>[Object.entries(e||{}).find(o),Object.entries(t||{}).find(o),Object.entries(r||{}).find(o)],"findDependency"),vt=n(e=>{let[t,r,o]=bt(e,([f])=>$e[f]),[s,i]=t||r||o||[],p=s?$e[s]:void 0;return t&&r&&t[0]===r[0]&&ke.warn(`Found "${t[0]}" in both "dependencies" and "devDependencies". This is probably a mistake.`),t&&o&&t[0]===o[0]&&ke.warn(`Found "${t[0]}" in both "dependencies" and "peerDependencies". This is probably a mistake.`),{framework:p,version:i,frameworkPackage:s}},"getFrameworkInfo"),wt=["ts","js","tsx","jsx","mjs","cjs"],X=n((e,t)=>{let r=Pe.default.join(t,e),o=wt.find(s=>je.default.existsSync(`${r}.${s}`));return o?`${r}.${o}`:null},"findConfigFile"),$t=n(e=>{var o;let t=".storybook",r=(o=e.scripts)==null?void 0:o.storybook;if(r){let s=V(r,"-c","--config-dir");s&&(t=s)}return{configDir:t,mainConfig:X("main",t),previewConfig:X("preview",t),managerConfig:X("manager",t)}},"getConfigInfo"),kt=n(e=>{let t=vt(e),r=$t(e);return{...t,...r}},"getStorybookInfo");var Z=require("fs-extra"),I=require("path"),Ee=l(require("find-up")),Ce=l(require("resolve-from")),Oe=require("@storybook/node-logger"),Se=n(async e=>{let t=await(0,Ee.default)("package.json",{cwd:e.configDir});if(!t)return{};let r=(0,I.dirname)(t),{dependencies:o=[],devDependencies:s=[]}=await(0,Z.readJSON)(t)||{},i=Object.keys({...o,...s});return(await Promise.all(i.map(async f=>{try{let m=(0,Ce.default)(r,(0,I.join)(f,"package.json")),{storybook:a,name:c,version:d}=await(0,Z.readJSON)(m)||{};if(a!=null&&a.url)return{id:c,...a,version:d}}catch{Oe.logger.warn(`unable to find package.json for ${f}`);return}}))).filter(Boolean).reduce((f,m)=>({...f,[m.id]:{id:m.id.toLowerCase(),url:Ae(m.url),title:m.title,version:m.version}}),{})},"getAutoRefs"),Pt=n(e=>fetch(`${e}/iframe.html`).then(({ok:t})=>t,()=>!1),"checkRef"),Ae=n(e=>e.replace(/\/$/,""),"stripTrailingSlash"),jt=n(e=>{let t=e.replace(/[A-Z]/g,r=>` ${r}`).replace(/[-_][A-Z]/gi,r=>` ${r.toUpperCase()}`).replace(/-/g," ").replace(/_/g," ");return`${t.substring(0,1).toUpperCase()}${t.substring(1)}`.trim()},"toTitle");async function Et(e){let t=await e.presets.apply("refs",await Se(e));return Object.entries(t).forEach(([r,o])=>{if(o.disable){delete t[r];return}t[r.toLowerCase()]={...o,id:r.toLowerCase(),title:o.title||jt(o.id||r),url:Ae(o.url)}}),await Promise.all(Object.entries(t).map(async([r,o])=>{let s=await Pt(o.url);t[r]={...o,type:s?"server-checked":"unknown"}})),t}n(Et,"getRefs");var N=l(require("path")),Fe=require("@storybook/node-logger"),Re=require("ts-dedent");function Ct({configDir:e}){let t=y(N.default.resolve(e,"addons")),r=y(N.default.resolve(e,"manager"));if((t||r)&&Fe.logger.info("=> Loading custom manager config"),t&&r)throw new Error(Re.dedent`
23
+ You have both a "addons.js" and a "manager.js", remove the "addons.js" file from your configDir (${N.default.resolve(e,"addons")})`);return r||t}n(Ct,"loadManagerOrAddonsFile");var T=l(require("path")),Ie=require("ts-dedent");function Ot({configDir:e}){let t=y(T.default.resolve(e,"config")),r=y(T.default.resolve(e,"preview"));if(t&&r)throw new Error(Ie.dedent`
24
+ You have both a "config.js" and a "preview.js", remove the "config.js" file from your configDir (${T.default.resolve(e,"config")})`);return r||t}n(Ot,"loadPreviewOrConfigFile");var Ne=l(require("chalk"));function St(e,t){console.log(Ne.default.cyan(e)),console.dir(t,{depth:null})}n(St,"logConfig");var Te=l(require("pretty-hrtime")),_e=n(e=>(0,Te.default)(process.hrtime(e)).replace(" ms"," milliseconds").replace(" s"," seconds").replace(" m"," minutes"),"printDuration");var At=n(async(e,t,r)=>{var m;let o=0,s,i=n(()=>{},"reportProgress");e.get("/progress",(a,c)=>{let d=!1,u=n(()=>{d=!0,c.end()},"close");c.on("close",u),!(d||c.writableEnded)&&(c.setHeader("Cache-Control","no-cache"),c.setHeader("Content-Type","text/event-stream"),c.setHeader("Connection","keep-alive"),c.flushHeaders(),i=n(g=>{d||c.writableEnded||(c.write(`data: ${JSON.stringify(g)}
20
25
 
21
- `),c.flush(),g.value===1&&u())},"reportProgress"))});let l=n((a,c,d)=>{o=Math.max(a,o);let u={value:o,message:c.charAt(0).toUpperCase()+c.slice(1)};if(c==="building"){let g=d&&d.match(/(\d+)\/(\d+)/)||[],S=parseInt(g[1],10),q=parseInt(g[2],10);!Number.isNaN(S)&&!Number.isNaN(q)&&(u.modules={complete:S,total:q},s=q)}o===1&&(r.cache&&r.cache.set("modulesCount",s),u.message||(u.message=`Completed in ${qe(t)}.`)),i(u)},"handler"),f=await((m=r.cache)==null?void 0:m.get("modulesCount").catch(()=>{}))||1e3;return{handler:l,modulesCount:f}},"useProgressReporting");var L=p(require("path")),Be=p(require("pkg-dir"));function te(e){let t=process.cwd(),r=Be.default.sync(t),o;return r?o=L.default.resolve(r,"node_modules/.cache/storybook"):o=L.default.resolve(t,".cache/storybook"),L.default.join(o,e)}n(te,"resolvePathInStorybookCache");var De=p(require("file-system-cache"));function M(e){return(0,De.default)(e)}n(M,"createFileSystemCache");var _t=M({basePath:te("dev-server"),ns:"storybook"});var re=p(require("path")),H=require("pkg-dir"),h=p(require("fs")),We=n((e,t={})=>Object.entries(t).reduce((r,[o,s])=>r.replace(new RegExp(`%${o}%`,"g"),s),e),"interpolate");function Lt(e,t){let r=h.default.readFileSync(`${(0,H.sync)(__dirname)}/templates/base-preview-body.html`,"utf8"),o=re.default.resolve(e,"preview-body.html"),s=r;return h.default.existsSync(o)&&(s=h.default.readFileSync(o,"utf8")+s),We(s,t)}n(Lt,"getPreviewBodyTemplate");function Mt(e,t){let r=h.default.readFileSync(`${(0,H.sync)(__dirname)}/templates/base-preview-head.html`,"utf8"),o=re.default.resolve(e,"preview-head.html"),s=r;return h.default.existsSync(o)&&(s+=h.default.readFileSync(o,"utf8")),We(s,t)}n(Mt,"getPreviewHeadTemplate");function Ht(){return`${(0,H.sync)(__dirname)}/templates/preview.ejs`}n(Ht,"getPreviewMainTemplate");var Ut=n((e,t)=>Object.entries(t).reduce((r,[o,s])=>{let i=s.replace(/\\/g,"/").replace(/\$/g,"$$$");return r.replace(new RegExp(`{{${o}}}`,"g"),i)},e),"interpolate");var Ye=require("picomatch");function oe(e){let t=(0,Ye.makeRe)(e,{fastpaths:!1,noglobstar:!1,bash:!1});if(!t.source.startsWith("^"))throw new Error(`Invalid glob: >> ${e} >> ${t}`);return e.startsWith("./")?new RegExp(["^\\.",e.startsWith("./**")?"":"[\\\\/]",t.source.substring(1)].join("")):t}n(oe,"globToRegexp");var Ge=p(require("fs")),v=p(require("path")),ze=p(require("util-deprecate")),Ke=require("ts-dedent"),Ve=require("picomatch"),ne=p(require("slash"));var U="",Je="**/*.(stories|docs).@(mdx|tsx|ts|jsx|js)",qt=(0,ze.default)(e=>e.input.replace(e[1],`@${e[1]}`),Ke.dedent`
26
+ `),c.flush(),g.value===1&&u())},"reportProgress"))});let p=n((a,c,d)=>{o=Math.max(a,o);let u={value:o,message:c.charAt(0).toUpperCase()+c.slice(1)};if(c==="building"){let g=d&&d.match(/(\d+)\/(\d+)/)||[],C=parseInt(g[1],10),H=parseInt(g[2],10);!Number.isNaN(C)&&!Number.isNaN(H)&&(u.modules={complete:C,total:H},s=H)}o===1&&(r.cache&&r.cache.set("modulesCount",s),u.message||(u.message=`Completed in ${_e(t)}.`)),i(u)},"handler"),f=await((m=r.cache)==null?void 0:m.get("modulesCount").catch(()=>{}))||1e3;return{handler:p,modulesCount:f}},"useProgressReporting");var _=l(require("path")),De=l(require("pkg-dir"));function Q(e){let t=process.cwd(),r=De.default.sync(t),o;return r?o=_.default.resolve(r,"node_modules/.cache/storybook"):o=_.default.resolve(t,".cache/storybook"),_.default.join(o,e)}n(Q,"resolvePathInStorybookCache");var Le=l(require("file-system-cache"));function D(e){return(0,Le.default)(e)}n(D,"createFileSystemCache");var Ft=D({basePath:Q("dev-server"),ns:"storybook"});var ee=l(require("path")),L=require("pkg-dir"),h=l(require("fs")),Me=n((e,t={})=>Object.entries(t).reduce((r,[o,s])=>r.replace(new RegExp(`%${o}%`,"g"),s),e),"interpolate");function Rt(e,t){let r=h.default.readFileSync(`${(0,L.sync)(__dirname)}/templates/base-preview-body.html`,"utf8"),o=ee.default.resolve(e,"preview-body.html"),s=r;return h.default.existsSync(o)&&(s=h.default.readFileSync(o,"utf8")+s),Me(s,t)}n(Rt,"getPreviewBodyTemplate");function It(e,t){let r=h.default.readFileSync(`${(0,L.sync)(__dirname)}/templates/base-preview-head.html`,"utf8"),o=ee.default.resolve(e,"preview-head.html"),s=r;return h.default.existsSync(o)&&(s+=h.default.readFileSync(o,"utf8")),Me(s,t)}n(It,"getPreviewHeadTemplate");function Nt(){return`${(0,L.sync)(__dirname)}/templates/preview.ejs`}n(Nt,"getPreviewMainTemplate");var Tt=n((e,t)=>Object.entries(t).reduce((r,[o,s])=>{let i=s.replace(/\\/g,"/").replace(/\$/g,"$$$");return r.replace(new RegExp(`{{${o}}}`,"g"),i)},e),"interpolate");var He=require("picomatch");function te(e){let t=(0,He.makeRe)(e,{fastpaths:!1,noglobstar:!1,bash:!1});if(!t.source.startsWith("^"))throw new Error(`Invalid glob: >> ${e} >> ${t}`);return e.startsWith("./")?new RegExp(["^\\.",e.startsWith("./**")?"":"[\\\\/]",t.source.substring(1)].join("")):t}n(te,"globToRegexp");var Be=l(require("fs")),w=l(require("path")),We=l(require("util-deprecate")),qe=require("ts-dedent"),Ye=require("picomatch"),re=l(require("slash"));var M="",Ue="**/*.(stories|docs).@(mdx|tsx|ts|jsx|js)",_t=(0,We.default)(e=>e.input.replace(e[1],`@${e[1]}`),qe.dedent`
22
27
  You have specified an invalid glob, we've attempted to fix it, please ensure that the glob you specify is valid. See: https://github.com/storybookjs/storybook/blob/next/MIGRATION.md#correct-globs-in-mainjs
23
- `),Bt=n(e=>{let t=e.match(/\.(\([^)]+\))/);return t?qt(t):e},"detectBadGlob"),Dt=n((e,t)=>{try{return Ge.default.lstatSync(v.default.resolve(e,t)).isDirectory()}catch{return!1}},"isDirectory"),Xe=n(({configDir:e,workingDir:t,directory:r})=>{let o=v.default.resolve(e,r),s=v.default.relative(t,o);return X(s)},"getDirectoryFromWorkingDir"),Ze=n((e,{configDir:t,workingDir:r})=>{let o;if(typeof e=="string"){let m=Bt(e),a=(0,Ve.scan)(m);if(a.isGlob){let c=a.prefix+a.base,d=a.glob;o={titlePrefix:U,directory:c,files:d}}else Dt(t,e)?o={titlePrefix:U,directory:e,files:Je}:o={titlePrefix:U,directory:v.default.dirname(e),files:v.default.basename(e)}}else o={titlePrefix:U,files:Je,...e};let s=(0,ne.default)(o.files),{directory:i}=o,l=(0,ne.default)(Xe({configDir:t,workingDir:r,directory:i})).replace(/\/$/,""),f=oe(`${l}/${s}`);return{...o,directory:l,importPathMatcher:f}},"normalizeStoriesEntry"),Wt=n((e,t)=>e.map(r=>Ze(r,t)),"normalizeStories");var Qe=p(require("fs-extra"));async function Yt(e){return Qe.default.readFile(e,{encoding:"utf8"})}n(Yt,"readTemplate");var se=p(require("path")),et=require("find-up"),Jt=n((e,t)=>{let r=(0,et.sync)("package.json",{cwd:e});if(!r)throw new Error(`Could not find package.json in: ${e}`);let o=se.default.dirname(r);return se.default.join(o,"dist","esm",t)},"findDistEsm");0&&(module.exports={boost,cache,checkAddonOrder,createFileSystemCache,filterPresetsConfig,findDistEsm,getAutoRefs,getDirectoryFromWorkingDir,getInterpretedFile,getInterpretedFileWithExt,getPresets,getPreviewBodyTemplate,getPreviewHeadTemplate,getPreviewMainTemplate,getProjectRoot,getRefs,getStorybookConfiguration,getStorybookInfo,globToRegexp,handlebars,interopRequireDefault,interpolate,loadAllPresets,loadCustomPresets,loadEnvs,loadMainConfig,loadManagerOrAddonsFile,loadPreset,loadPreviewOrConfigFile,logConfig,nodePathsToArray,normalizeStories,normalizeStoriesEntry,normalizeStoryPath,readTemplate,resolveAddonName,resolvePathInStorybookCache,serverRequire,serverResolve,stringifyEnvs,stringifyProcessEnvs,useProgressReporting,validateConfigurationFiles});
28
+ `),Dt=n(e=>{let t=e.match(/\.(\([^)]+\))/);return t?_t(t):e},"detectBadGlob"),Lt=n((e,t)=>{try{return Be.default.lstatSync(w.default.resolve(e,t)).isDirectory()}catch{return!1}},"isDirectory"),Je=n(({configDir:e,workingDir:t,directory:r})=>{let o=w.default.resolve(e,r),s=w.default.relative(t,o);return K(s)},"getDirectoryFromWorkingDir"),Ge=n((e,{configDir:t,workingDir:r})=>{let o;if(typeof e=="string"){let m=Dt(e),a=(0,Ye.scan)(m);if(a.isGlob){let c=a.prefix+a.base,d=a.glob;o={titlePrefix:M,directory:c,files:d}}else Lt(t,e)?o={titlePrefix:M,directory:e,files:Ue}:o={titlePrefix:M,directory:w.default.dirname(e),files:w.default.basename(e)}}else o={titlePrefix:M,files:Ue,...e};let s=(0,re.default)(o.files),{directory:i}=o,p=(0,re.default)(Je({configDir:t,workingDir:r,directory:i})).replace(/\/$/,""),f=te(`${p}/${s}`);return{...o,directory:p,importPathMatcher:f}},"normalizeStoriesEntry"),Mt=n((e,t)=>e.map(r=>Ge(r,t)),"normalizeStories");var ze=l(require("fs-extra"));async function Ht(e){return ze.default.readFile(e,{encoding:"utf8"})}n(Ht,"readTemplate");var oe=l(require("path")),Ke=require("find-up"),Ut=n((e,t)=>{let r=(0,Ke.sync)("package.json",{cwd:e});if(!r)throw new Error(`Could not find package.json in: ${e}`);let o=oe.default.dirname(r);return oe.default.join(o,"dist","esm",t)},"findDistEsm");0&&(module.exports={boost,cache,checkAddonOrder,createFileSystemCache,filterPresetsConfig,findDistEsm,getAutoRefs,getDirectoryFromWorkingDir,getInterpretedFile,getInterpretedFileWithExt,getPresets,getPreviewBodyTemplate,getPreviewHeadTemplate,getPreviewMainTemplate,getProjectRoot,getRefs,getStorybookConfiguration,getStorybookInfo,globToRegexp,handlebars,interopRequireDefault,interpolate,loadAllPresets,loadCustomPresets,loadEnvs,loadMainConfig,loadManagerOrAddonsFile,loadPreset,loadPreviewOrConfigFile,logConfig,nodePathsToArray,normalizeStories,normalizeStoriesEntry,normalizeStoryPath,readTemplate,resolveAddonName,resolvePathInStorybookCache,serverRequire,serverResolve,stringifyEnvs,stringifyProcessEnvs,useProgressReporting,validateConfigurationFiles});
package/dist/index.mjs CHANGED
@@ -1,23 +1,28 @@
1
- "use strict";var ye=Object.defineProperty;var n=(e,t)=>ye(e,"name",{value:t,configurable:!0}),g=(e=>typeof require!="undefined"?require:typeof Proxy!="undefined"?new Proxy(e,{get:(t,r)=>(typeof require!="undefined"?require:t)[r]}):e)(function(e){if(typeof require!="undefined")return require.apply(this,arguments);throw new Error('Dynamic require of "'+e+'" is not supported')});var c={};import{dedent as Ce}from"ts-dedent";import{logger as O}from"@storybook/node-logger";import T from"path";import ve from"interpret";import we from"path";import{logger as G}from"@storybook/node-logger";import W from"fs";import{extensions as xe}from"interpret";var P=new Set([".js",".jsx",".ts",".tsx",".cjs",".mjs"]);function be(){return[...Array.from(P),...Object.keys(xe).filter(e=>!P.has(e)).sort((e,t)=>e.length-t.length)]}n(be,"sortExtensions");var Y=be();function y(e){return Y.map(t=>e.endsWith(t)?e:`${e}${t}`).find(t=>W.existsSync(t))}n(y,"getInterpretedFile");function J(e){return Y.map(t=>({path:e.endsWith(t)?e:`${e}${t}`,ext:t})).find(t=>W.existsSync(t.path))}n(J,"getInterpretedFileWithExt");var j=new Map;function z(e){if(!e)return 0;let t=j.get(e);if(t!==void 0)return t;if(typeof e=="string")return g(e),j.set(e,1),1;if(!Array.isArray(e))return e.register(g(e.module)),j.set(e,1),1;let r=0;for(let o=0;o<e.length;o+=1)try{r+=z(e[o]);break}catch{}return j.set(e,r),r}n(z,"registerCompiler");function R(e){let t=g(e);return typeof t=="object"&&t!==null&&typeof t.default<"u"?t.default:t}n(R,"interopRequireDefault");function $e(e){for(let t=0;t<e.length;t+=1){let r=J(e[t]);if(r)return r}}n($e,"getCandidate");function b(e){let t=I(e);if(!t)return null;let r=we.extname(t),o=ve.extensions[r];return o&&z(o)===0?(G.warn(`=> File ${t} is detected`),G.warn(` but impossible to import loader for ${r}`),null):R(t)}n(b,"serverRequire");function I(e){let t=Array.isArray(e)?e:[e],r=$e(t);return r?r.path:null}n(I,"serverResolve");import{dedent as E}from"ts-dedent";import ke from"util-deprecate";import Pe from"glob";import v from"path";var je=ke(()=>{},E`
1
+ var ue=Object.defineProperty;var n=(e,t)=>ue(e,"name",{value:t,configurable:!0}),g=(e=>typeof require!="undefined"?require:typeof Proxy!="undefined"?new Proxy(e,{get:(t,r)=>(typeof require!="undefined"?require:t)[r]}):e)(function(e){if(typeof require!="undefined")return require.apply(this,arguments);throw new Error('Dynamic require of "'+e+'" is not supported')});var c={};import{dedent as $e}from"ts-dedent";import{logger as w}from"@storybook/node-logger";import N from"path";import W from"fs";var A=new Set([".js",".jsx",".ts",".tsx",".cjs",".mjs"]);function ye(){return[...Array.from(A)]}n(ye,"sortExtensions");var q=ye();function y(e){return q.map(t=>e.endsWith(t)?e:`${e}${t}`).find(t=>W.existsSync(t))}n(y,"getInterpretedFile");function Y(e){return q.map(t=>({path:e.endsWith(t)?e:`${e}${t}`,ext:t})).find(t=>W.existsSync(t.path))}n(Y,"getInterpretedFileWithExt");var J=!1;function F(e){if(J===!1){let{register:o}=g("esbuild-register/dist/node");J=!0,o({target:`node${process.version.slice(1)}`,format:"cjs",hookIgnoreNodeModules:!1,tsconfigRaw:`{
2
+ "compilerOptions": {
3
+ "strict": false,
4
+ "skipLibCheck": true,
5
+ },
6
+ }`})}let t=g(e);return typeof t=="object"&&t!==null&&typeof t.default<"u"?t.default:t}n(F,"interopRequireDefault");function he(e){for(let t=0;t<e.length;t+=1){let r=Y(e[t]);if(r)return r}}n(he,"getCandidate");function b(e){let t=R(e);return t?F(t):null}n(b,"serverRequire");function R(e){let t=Array.isArray(e)?e:[e],r=he(t);return r?r.path:null}n(R,"serverResolve");import{dedent as j}from"ts-dedent";import xe from"util-deprecate";import be from"glob";import v from"path";var ve=xe(()=>{},j`
2
7
  Configuration files such as "config", "presets" and "addons" are deprecated and will be removed in Storybook 7.0.
3
8
  Read more about it in the migration guide: https://github.com/storybookjs/storybook/blob/master/MIGRATION.md#to-mainjs-configuration
4
- `),N=n((e,t,r)=>{let o=v.resolve(r,e),s=v.resolve(r,t);throw new Error(E`
9
+ `),I=n((e,t,r)=>{let o=v.resolve(r,e),s=v.resolve(r,t);throw new Error(j`
5
10
  You have mixing configuration files:
6
11
  ${o}
7
12
  ${s}
8
13
  "${e}" and "${t}" cannot coexist.
9
14
  Please check the documentation for migration steps: https://github.com/storybookjs/storybook/blob/master/MIGRATION.md#to-mainjs-configuration
10
- `)},"errorMixingConfigFiles");function C(e){let t=`{${Array.from(P).join(",")}}`,r=n(a=>!!Pe.sync(v.resolve(e,`${a}${t}`)).length,"exists"),o=r("main"),s=r("config");if(!o&&!s)throw new Error(E`
15
+ `)},"errorMixingConfigFiles");function E(e){let t=`{${Array.from(A).join(",")}}`,r=n(a=>!!be.sync(v.resolve(e,`${a}${t}`)).length,"exists"),o=r("main"),s=r("config");if(!o&&!s)throw new Error(j`
11
16
  No configuration files have been found in your configDir (${v.resolve(e)}).
12
17
  Storybook needs either a "main" or "config" file.
13
- `);if(o&&s)throw new Error(E`
14
- You have both a "main" and a "config". Please remove the "config" file from your configDir (${v.resolve(e,"config")})`);let i=r("presets");o&&i&&N("main","presets",e),r("preview")&&s&&N("preview","config",e);let f=r("addons");r("manager")&&f&&N("manager","addons",e),(i||s||f)&&je()}n(C,"validateConfigurationFiles");function K({configDir:e}){C(e);let t=b(T.resolve(e,"presets"));if(b(T.resolve(e,"main"))){let o=I(T.resolve(e,"main"));if(o)return[o]}return t||[]}n(K,"loadCustomPresets");import Ee from"resolve-from";var V=n((e,t)=>{try{return Ee(e,t)}catch{return}},"safeResolveFrom"),X=n(e=>{try{return g.resolve(e)}catch{return}},"safeResolve");var w=n(e=>e!=null&&typeof e=="object"&&Array.isArray(e)===!1,"isObject"),Se=n(e=>typeof e=="function","isFunction");function Oe(e){return e.filter(t=>{let r=typeof t=="string"?t:t.name;return!/@storybook[\\\\/]preset-typescript/.test(r)})}n(Oe,"filterPresetsConfig");function Z(e,t,r){return Se(e)?[...e({...r,...t})]:Array.isArray(e)?[...e]:[]}n(Z,"resolvePresetFunction");var Ae=n((e,t,r)=>{let o=t.startsWith("/")?X:V.bind(null,e),s=o(t);if(s){if(t.match(/\/(manager|register(-panel)?)(\.(js|ts|tsx|jsx))?$/))return{type:"virtual",name:t,managerEntries:[s]};if(t.match(/\/(preset)(\.(js|ts|tsx|jsx))?$/))return{type:"presets",name:s}}let i=t,p=o(`${i}/manager`),f=o(`${i}/register`)||o(`${i}/register-panel`),l=o(`${i}/preview`),a=o(`${i}/preset`);if(!(p||l)&&a)return{type:"presets",name:a};if(p||f||l||a){let m=[];return p&&m.push(p),!p&&f&&!a&&m.push(f),{type:"virtual",name:i,...m.length?{managerEntries:m}:{},...l?{previewAnnotations:[l]}:{},...a?{presets:[{name:a,options:r}]}:{}}}if(s)return{type:"presets",name:s}},"resolveAddonName"),Fe=n(({configDir:e})=>t=>{let r=w(t)&&t.options||void 0,o=w(t)?t.name:t;try{let s=Ae(e,o,r);return{...r?{options:r}:{},...s}}catch{O.error(`Addon value should end in /manager or /preview or /register OR it should be a valid preset https://storybook.js.org/docs/react/addons/writing-presets/
15
- ${t}`)}},"map");function Re(e){if(e.type==="virtual"){let{type:r,name:o,...s}=e;return s}let t=e.name?e.name:e;return R(t)}n(Re,"getContent");function Ie(e,t,r){try{let o=e.name?e.name:e,s=e.options?e.options:{},i=Re(e);if(typeof i=="function"&&(i=i(r,s)),Array.isArray(i))return S(i,t+1,r);if(w(i)){let{addons:p,presets:f,...l}=i,a=Z(f,s,r),m=Z(p,s,r);return[...S([...a],t+1,r),...S([...m.map(Fe(r))].filter(Boolean),t+1,r),{name:o,preset:l,options:s}]}throw new Error(Ce`
18
+ `);if(o&&s)throw new Error(j`
19
+ You have both a "main" and a "config". Please remove the "config" file from your configDir (${v.resolve(e,"config")})`);let i=r("presets");o&&i&&I("main","presets",e),r("preview")&&s&&I("preview","config",e);let f=r("addons");r("manager")&&f&&I("manager","addons",e),(i||s||f)&&ve()}n(E,"validateConfigurationFiles");function G({configDir:e}){E(e);let t=b(N.resolve(e,"presets"));if(b(N.resolve(e,"main"))){let o=R(N.resolve(e,"main"));if(o)return[o]}return t||[]}n(G,"loadCustomPresets");import we from"resolve-from";var z=n((e,t)=>{try{return we(e,t)}catch{return}},"safeResolveFrom"),K=n(e=>{try{return g.resolve(e)}catch{return}},"safeResolve");var $=n(e=>e!=null&&typeof e=="object"&&Array.isArray(e)===!1,"isObject"),ke=n(e=>typeof e=="function","isFunction");function Pe(e){return e.filter(t=>{let r=typeof t=="string"?t:t.name;return!/@storybook[\\\\/]preset-typescript/.test(r)})}n(Pe,"filterPresetsConfig");function V(e,t,r){return ke(e)?[...e({...r,...t})]:Array.isArray(e)?[...e]:[]}n(V,"resolvePresetFunction");var je=n((e,t,r)=>{let o=t.startsWith("/")?K:z.bind(null,e),s=o(t);if(s){if(t.match(/\/(manager|register(-panel)?)(\.(js|ts|tsx|jsx))?$/))return{type:"virtual",name:t,managerEntries:[s]};if(t.match(/\/(preset)(\.(js|ts|tsx|jsx))?$/))return{type:"presets",name:s}}let i=t,p=o(`${i}/manager`),f=o(`${i}/register`)||o(`${i}/register-panel`),l=o(`${i}/preview`),a=o(`${i}/preset`);if(!(p||l)&&a)return{type:"presets",name:a};if(p||f||l||a){let m=[];return p&&m.push(p),!p&&f&&!a&&m.push(f),{type:"virtual",name:i,...m.length?{managerEntries:m}:{},...l?{previewAnnotations:[l]}:{},...a?{presets:[{name:a,options:r}]}:{}}}if(s)return{type:"presets",name:s}},"resolveAddonName"),Ee=n(({configDir:e})=>t=>{let r=$(t)&&t.options||void 0,o=$(t)?t.name:t;try{let s=je(e,o,r);return{...r?{options:r}:{},...s}}catch{w.error(`Addon value should end in /manager or /preview or /register OR it should be a valid preset https://storybook.js.org/docs/react/addons/writing-presets/
20
+ ${t}`)}},"map");async function Ce(e){if(e.type==="virtual"){let{type:r,name:o,...s}=e;return s}let t=e.name?e.name:e;return F(t)}n(Ce,"getContent");async function Oe(e,t,r){try{let o=e.name?e.name:e,s=e.options?e.options:{},i=await Ce(e);if(typeof i=="function"&&(i=i(r,s)),Array.isArray(i))return C(i,t+1,r);if($(i)){let{addons:p,presets:f,...l}=i,a=V(f,s,r),m=V(p,s,r);return[...await C([...a],t+1,r),...await C([...m.map(Ee(r))].filter(Boolean),t+1,r),{name:o,preset:l,options:s}]}throw new Error($e`
16
21
  ${e} is not a valid preset
17
- `)}catch(o){let s=t>0?` Failed to load preset: ${JSON.stringify(e)} on level ${t}`:` Failed to load preset: ${JSON.stringify(e)}`;return O.warn(s),O.error(o),[]}}n(Ie,"loadPreset");function S(e,t,r){return!e||!Array.isArray(e)||!e.length?[]:e.reduce((o,s)=>{let i=Ie(s,t,r);return o.concat(i)},[])}n(S,"loadPresets");function Q(e,t,r,o,s){let i=new Promise(p=>p(r));return e.length?e.reduce((p,{preset:f,options:l})=>{let a=f[t];if(!a)return p;if(typeof a=="function"){let m=a,d={preset:f,combinedOptions:{...s,...o,...l,presetsList:e,presets:{apply:async(u,k,x={})=>Q(e,u,k,x,s)}}};return p.then(u=>m.call(d.preset,u,d.combinedOptions))}return p.then(m=>Array.isArray(m)&&Array.isArray(a)?[...m,...a]:w(m)&&w(a)?{...m,...a}:a)},i):i}n(Q,"applyPresets");function Ne(e,t){let r=S(e,0,t);return{apply:async(o,s,i={})=>Q(r,o,s,i,t)}}n(Ne,"getPresets");function Jt(e){let{corePresets:t=[],overridePresets:r=[],...o}=e,s=[...t,...K(e),...r],i=Oe(s);return i.length<s.length&&O.warn("Storybook now supports TypeScript natively. You can safely remove `@storybook/preset-typescript`."),Ne(i,o)}n(Jt,"loadAllPresets");var{logger:_}=g("@storybook/node-logger"),L=n(e=>t=>{let r=t.name||t;return r&&r.includes(e)},"predicateFor"),Te=n((e,t,r)=>{let o=e.findIndex(L("@storybook/addon-essentials")),s=e.findIndex(L(t.name)),i=e.findIndex(L(r.name));return s===-1&&t.inEssentials&&(s=o),i===-1&&r.inEssentials&&(i=o),s!==-1&&i!==-1&&s<=i},"isCorrectOrder"),zt=n(async({before:e,after:t,configFile:r,getConfig:o})=>{try{let s=await o(r);if(!s?.addons){_.warn("Unable to find 'addons' config in main Storybook config");return}if(!Te(s.addons,e,t)){let i=" (or '@storybook/addon-essentials')",p=`'${e.name}'${e.inEssentials?i:""}`,f=`'${t.name}'${t.inEssentials?i:""}`;_.warn(`Expected ${p} to be listed before ${f} in main Storybook config.`)}}catch{_.warn(`Unable to load config file: ${r}`)}},"checkAddonOrder");import{getEnvironment as Le}from"lazy-universal-dotenv";import A from"path";import ee from"find-up";var Zt=n(()=>{let e;try{let t=ee.sync(".git",{type:"directory"});t&&(e=e||A.join(t,".."))}catch{}try{let t=ee.sync(".svn",{type:"directory"});t&&(e=e||A.join(t,".."))}catch{}try{e=e||__dirname.split("node_modules")[0]}catch{}return e||process.cwd()},"getProjectRoot"),te=n(e=>e.split(process.platform==="win32"?";":":").filter(Boolean).map(t=>A.resolve("./",t)),"nodePathsToArray"),_e=/^\.{1,2}([/\\]|$)/;function re(e){return _e.test(e)?e:`.${A.sep}${e}`}n(re,"normalizeStoryPath");function rr(e={}){let t=e.production?"production":"development",r={NODE_ENV:"production",NODE_PATH:c.NODE_PATH||"",STORYBOOK:c.STORYBOOK||"true",PUBLIC_URL:e.production?".":""};Object.keys(c).filter(f=>/^STORYBOOK_/.test(f)).forEach(f=>{r[f]=c[f]});let o=Object.entries(r).reduce((f,[l,a])=>Object.assign(f,{[l]:JSON.stringify(a)}),{}),{stringified:s,raw:i}=Le({nodeEnv:r.NODE_ENV}),p={...r,...i};return p.NODE_PATH=te(p.NODE_PATH||""),{stringified:{...o,...s},raw:p}}n(rr,"loadEnvs");var or=n(e=>Object.entries(e).reduce((t,[r,o])=>(t[r]=JSON.stringify(o),t),{}),"stringifyEnvs"),nr=n(e=>Object.entries(e).reduce((r,[o,s])=>(r[`process.env.${o}`]=JSON.stringify(s),r),{"process.env.XSTORYBOOK_EXAMPLE_APP":'""'}),"stringifyProcessEnvs");import Me from"handlebars";function ar(e,t){return Me.compile(e)(t)}n(ar,"handlebars");import He from"path";function mr({configDir:e}){return C(e),b(He.resolve(e,"main"))}n(mr,"loadMainConfig");function oe(e,t,r){if(!e)return null;let o=e.split(/[\s='"]+/),s=o.indexOf(r);return s===-1&&(s=o.indexOf(t)),s===-1?null:o[s+1]}n(oe,"getStorybookConfiguration");import Ue from"path";import qe from"fs-extra";var ne={"@storybook/react":"react","@storybook/vue":"vue","@storybook/vue3":"vue3","@storybook/angular":"angular","@storybook/html":"html","@storybook/web-components":"web-components","@storybook/polymer":"polymer","@storybook/ember":"ember","@storybook/marko":"marko","@storybook/mithril":"mithril","@storybook/riot":"riot","@storybook/svelte":"svelte","@storybook/preact":"preact","@storybook/rax":"rax","@storybook/server":"server"},se=console,Be=n(({dependencies:e,devDependencies:t,peerDependencies:r},o)=>[Object.entries(e||{}).find(o),Object.entries(t||{}).find(o),Object.entries(r||{}).find(o)],"findDependency"),De=n(e=>{let[t,r,o]=Be(e,([f])=>ne[f]),[s,i]=t||r||o||[],p=s?ne[s]:void 0;return t&&r&&t[0]===r[0]&&se.warn(`Found "${t[0]}" in both "dependencies" and "devDependencies". This is probably a mistake.`),t&&o&&t[0]===o[0]&&se.warn(`Found "${t[0]}" in both "dependencies" and "peerDependencies". This is probably a mistake.`),{framework:p,version:i,frameworkPackage:s}},"getFrameworkInfo"),We=["ts","js","tsx","jsx","mjs","cjs"],M=n((e,t)=>{let r=Ue.join(t,e),o=We.find(s=>qe.existsSync(`${r}.${s}`));return o?`${r}.${o}`:null},"findConfigFile"),Ye=n(e=>{let t=".storybook",r=e.scripts?.storybook;if(r){let o=oe(r,"-c","--config-dir");o&&(t=o)}return{configDir:t,mainConfig:M("main",t),previewConfig:M("preview",t),managerConfig:M("manager",t)}},"getConfigInfo"),xr=n(e=>{let t=De(e),r=Ye(e);return{...t,...r}},"getStorybookInfo");import{readJSON as ie}from"fs-extra";import{dirname as Je,join as Ge}from"path";import ze from"find-up";import Ke from"resolve-from";import{logger as Ve}from"@storybook/node-logger";var Xe=n(async e=>{let t=await ze("package.json",{cwd:e.configDir});if(!t)return{};let r=Je(t),{dependencies:o=[],devDependencies:s=[]}=await ie(t)||{},i=Object.keys({...o,...s});return(await Promise.all(i.map(async f=>{try{let l=Ke(r,Ge(f,"package.json")),{storybook:a,name:m,version:d}=await ie(l)||{};if(a?.url)return{id:m,...a,version:d}}catch{Ve.warn(`unable to find package.json for ${f}`);return}}))).filter(Boolean).reduce((f,l)=>({...f,[l.id]:{id:l.id.toLowerCase(),url:ae(l.url),title:l.title,version:l.version}}),{})},"getAutoRefs"),Ze=n(e=>fetch(`${e}/iframe.html`).then(({ok:t})=>t,()=>!1),"checkRef"),ae=n(e=>e.replace(/\/$/,""),"stripTrailingSlash"),Qe=n(e=>{let t=e.replace(/[A-Z]/g,r=>` ${r}`).replace(/[-_][A-Z]/gi,r=>` ${r.toUpperCase()}`).replace(/-/g," ").replace(/_/g," ");return`${t.substring(0,1).toUpperCase()}${t.substring(1)}`.trim()},"toTitle");async function jr(e){let t=await e.presets.apply("refs",await Xe(e));return Object.entries(t).forEach(([r,o])=>{if(o.disable){delete t[r];return}t[r.toLowerCase()]={...o,id:r.toLowerCase(),title:o.title||Qe(o.id||r),url:ae(o.url)}}),await Promise.all(Object.entries(t).map(async([r,o])=>{let s=await Ze(o.url);t[r]={...o,type:s?"server-checked":"unknown"}})),t}n(jr,"getRefs");import H from"path";import{logger as et}from"@storybook/node-logger";import{dedent as tt}from"ts-dedent";function Fr({configDir:e}){let t=y(H.resolve(e,"addons")),r=y(H.resolve(e,"manager"));if((t||r)&&et.info("=> Loading custom manager config"),t&&r)throw new Error(tt`
18
- You have both a "addons.js" and a "manager.js", remove the "addons.js" file from your configDir (${H.resolve(e,"addons")})`);return r||t}n(Fr,"loadManagerOrAddonsFile");import U from"path";import{dedent as rt}from"ts-dedent";function _r({configDir:e}){let t=y(U.resolve(e,"config")),r=y(U.resolve(e,"preview"));if(t&&r)throw new Error(rt`
19
- You have both a "config.js" and a "preview.js", remove the "config.js" file from your configDir (${U.resolve(e,"config")})`);return r||t}n(_r,"loadPreviewOrConfigFile");import ot from"chalk";function Hr(e,t){console.log(ot.cyan(e)),console.dir(t,{depth:null})}n(Hr,"logConfig");import nt from"pretty-hrtime";var ce=n(e=>nt(process.hrtime(e)).replace(" ms"," milliseconds").replace(" s"," seconds").replace(" m"," minutes"),"printDuration");var Wr=n(async(e,t,r)=>{let o=0,s,i=n(()=>{},"reportProgress");e.get("/progress",(l,a)=>{let m=!1,d=n(()=>{m=!0,a.end()},"close");a.on("close",d),!(m||a.writableEnded)&&(a.setHeader("Cache-Control","no-cache"),a.setHeader("Content-Type","text/event-stream"),a.setHeader("Connection","keep-alive"),a.flushHeaders(),i=n(u=>{m||a.writableEnded||(a.write(`data: ${JSON.stringify(u)}
22
+ `)}catch(o){let s=t>0?` Failed to load preset: ${JSON.stringify(e)} on level ${t}`:` Failed to load preset: ${JSON.stringify(e)}`;return w.warn(s),w.error(o),[]}}n(Oe,"loadPreset");async function C(e,t,r){return!e||!Array.isArray(e)||!e.length?[]:(t||w.info("=> Loading presets"),(await Promise.all(e.map(async o=>Oe(o,t,r)))).reduce((o,s)=>o.concat(s),[]))}n(C,"loadPresets");function X(e,t,r,o,s){let i=new Promise(p=>p(r));return e.length?e.reduce((p,{preset:f,options:l})=>{let a=f[t];if(!a)return p;if(typeof a=="function"){let m=a,d={preset:f,combinedOptions:{...s,...o,...l,presetsList:e,presets:{apply:async(u,P,x={})=>X(e,u,P,x,s)}}};return p.then(u=>m.call(d.preset,u,d.combinedOptions))}return p.then(m=>Array.isArray(m)&&Array.isArray(a)?[...m,...a]:$(m)&&$(a)?{...m,...a}:a)},i):i}n(X,"applyPresets");async function Se(e,t){let r=await C(e,0,t);return{apply:async(o,s,i={})=>X(r,o,s,i,t)}}n(Se,"getPresets");async function Dt(e){let{corePresets:t=[],overridePresets:r=[],...o}=e,s=[...t,...G(e),...r],i=Pe(s);return i.length<s.length&&w.warn("Storybook now supports TypeScript natively. You can safely remove `@storybook/preset-typescript`."),Se(i,o)}n(Dt,"loadAllPresets");var{logger:T}=g("@storybook/node-logger"),_=n(e=>t=>{let r=t.name||t;return r&&r.includes(e)},"predicateFor"),Ae=n((e,t,r)=>{let o=e.findIndex(_("@storybook/addon-essentials")),s=e.findIndex(_(t.name)),i=e.findIndex(_(r.name));return s===-1&&t.inEssentials&&(s=o),i===-1&&r.inEssentials&&(i=o),s!==-1&&i!==-1&&s<=i},"isCorrectOrder"),Mt=n(async({before:e,after:t,configFile:r,getConfig:o})=>{try{let s=await o(r);if(!s?.addons){T.warn("Unable to find 'addons' config in main Storybook config");return}if(!Ae(s.addons,e,t)){let i=" (or '@storybook/addon-essentials')",p=`'${e.name}'${e.inEssentials?i:""}`,f=`'${t.name}'${t.inEssentials?i:""}`;T.warn(`Expected ${p} to be listed before ${f} in main Storybook config.`)}}catch{T.warn(`Unable to load config file: ${r}`)}},"checkAddonOrder");import{getEnvironment as Re}from"lazy-universal-dotenv";import O from"path";import Z from"find-up";var Wt=n(()=>{let e;try{let t=Z.sync(".git",{type:"directory"});t&&(e=e||O.join(t,".."))}catch{}try{let t=Z.sync(".svn",{type:"directory"});t&&(e=e||O.join(t,".."))}catch{}try{e=e||__dirname.split("node_modules")[0]}catch{}return e||process.cwd()},"getProjectRoot"),Q=n(e=>e.split(process.platform==="win32"?";":":").filter(Boolean).map(t=>O.resolve("./",t)),"nodePathsToArray"),Fe=/^\.{1,2}([/\\]|$)/;function ee(e){return Fe.test(e)?e:`.${O.sep}${e}`}n(ee,"normalizeStoryPath");function Gt(e={}){let t=e.production?"production":"development",r={NODE_ENV:"production",NODE_PATH:c.NODE_PATH||"",STORYBOOK:c.STORYBOOK||"true",PUBLIC_URL:e.production?".":""};Object.keys(c).filter(f=>/^STORYBOOK_/.test(f)).forEach(f=>{r[f]=c[f]});let o=Object.entries(r).reduce((f,[l,a])=>Object.assign(f,{[l]:JSON.stringify(a)}),{}),{stringified:s,raw:i}=Re({nodeEnv:r.NODE_ENV}),p={...r,...i};return p.NODE_PATH=Q(p.NODE_PATH||""),{stringified:{...o,...s},raw:p}}n(Gt,"loadEnvs");var zt=n(e=>Object.entries(e).reduce((t,[r,o])=>(t[r]=JSON.stringify(o),t),{}),"stringifyEnvs"),Kt=n(e=>Object.entries(e).reduce((r,[o,s])=>(r[`process.env.${o}`]=JSON.stringify(s),r),{"process.env.XSTORYBOOK_EXAMPLE_APP":'""'}),"stringifyProcessEnvs");import Ie from"handlebars";function Zt(e,t){return Ie.compile(e)(t)}n(Zt,"handlebars");import Ne from"path";function or({configDir:e}){return E(e),b(Ne.resolve(e,"main"))}n(or,"loadMainConfig");function te(e,t,r){if(!e)return null;let o=e.split(/[\s='"]+/),s=o.indexOf(r);return s===-1&&(s=o.indexOf(t)),s===-1?null:o[s+1]}n(te,"getStorybookConfiguration");import Te from"path";import _e from"fs-extra";var re={"@storybook/react":"react","@storybook/vue":"vue","@storybook/vue3":"vue3","@storybook/angular":"angular","@storybook/html":"html","@storybook/web-components":"web-components","@storybook/polymer":"polymer","@storybook/ember":"ember","@storybook/marko":"marko","@storybook/mithril":"mithril","@storybook/riot":"riot","@storybook/svelte":"svelte","@storybook/preact":"preact","@storybook/rax":"rax","@storybook/server":"server"},oe=console,De=n(({dependencies:e,devDependencies:t,peerDependencies:r},o)=>[Object.entries(e||{}).find(o),Object.entries(t||{}).find(o),Object.entries(r||{}).find(o)],"findDependency"),Le=n(e=>{let[t,r,o]=De(e,([f])=>re[f]),[s,i]=t||r||o||[],p=s?re[s]:void 0;return t&&r&&t[0]===r[0]&&oe.warn(`Found "${t[0]}" in both "dependencies" and "devDependencies". This is probably a mistake.`),t&&o&&t[0]===o[0]&&oe.warn(`Found "${t[0]}" in both "dependencies" and "peerDependencies". This is probably a mistake.`),{framework:p,version:i,frameworkPackage:s}},"getFrameworkInfo"),Me=["ts","js","tsx","jsx","mjs","cjs"],D=n((e,t)=>{let r=Te.join(t,e),o=Me.find(s=>_e.existsSync(`${r}.${s}`));return o?`${r}.${o}`:null},"findConfigFile"),He=n(e=>{let t=".storybook",r=e.scripts?.storybook;if(r){let o=te(r,"-c","--config-dir");o&&(t=o)}return{configDir:t,mainConfig:D("main",t),previewConfig:D("preview",t),managerConfig:D("manager",t)}},"getConfigInfo"),fr=n(e=>{let t=Le(e),r=He(e);return{...t,...r}},"getStorybookInfo");import{readJSON as ne}from"fs-extra";import{dirname as Ue,join as Be}from"path";import We from"find-up";import qe from"resolve-from";import{logger as Ye}from"@storybook/node-logger";var Je=n(async e=>{let t=await We("package.json",{cwd:e.configDir});if(!t)return{};let r=Ue(t),{dependencies:o=[],devDependencies:s=[]}=await ne(t)||{},i=Object.keys({...o,...s});return(await Promise.all(i.map(async f=>{try{let l=qe(r,Be(f,"package.json")),{storybook:a,name:m,version:d}=await ne(l)||{};if(a?.url)return{id:m,...a,version:d}}catch{Ye.warn(`unable to find package.json for ${f}`);return}}))).filter(Boolean).reduce((f,l)=>({...f,[l.id]:{id:l.id.toLowerCase(),url:se(l.url),title:l.title,version:l.version}}),{})},"getAutoRefs"),Ge=n(e=>fetch(`${e}/iframe.html`).then(({ok:t})=>t,()=>!1),"checkRef"),se=n(e=>e.replace(/\/$/,""),"stripTrailingSlash"),ze=n(e=>{let t=e.replace(/[A-Z]/g,r=>` ${r}`).replace(/[-_][A-Z]/gi,r=>` ${r.toUpperCase()}`).replace(/-/g," ").replace(/_/g," ");return`${t.substring(0,1).toUpperCase()}${t.substring(1)}`.trim()},"toTitle");async function yr(e){let t=await e.presets.apply("refs",await Je(e));return Object.entries(t).forEach(([r,o])=>{if(o.disable){delete t[r];return}t[r.toLowerCase()]={...o,id:r.toLowerCase(),title:o.title||ze(o.id||r),url:se(o.url)}}),await Promise.all(Object.entries(t).map(async([r,o])=>{let s=await Ge(o.url);t[r]={...o,type:s?"server-checked":"unknown"}})),t}n(yr,"getRefs");import L from"path";import{logger as Ke}from"@storybook/node-logger";import{dedent as Ve}from"ts-dedent";function $r({configDir:e}){let t=y(L.resolve(e,"addons")),r=y(L.resolve(e,"manager"));if((t||r)&&Ke.info("=> Loading custom manager config"),t&&r)throw new Error(Ve`
23
+ You have both a "addons.js" and a "manager.js", remove the "addons.js" file from your configDir (${L.resolve(e,"addons")})`);return r||t}n($r,"loadManagerOrAddonsFile");import M from"path";import{dedent as Xe}from"ts-dedent";function Cr({configDir:e}){let t=y(M.resolve(e,"config")),r=y(M.resolve(e,"preview"));if(t&&r)throw new Error(Xe`
24
+ You have both a "config.js" and a "preview.js", remove the "config.js" file from your configDir (${M.resolve(e,"config")})`);return r||t}n(Cr,"loadPreviewOrConfigFile");import Ze from"chalk";function Ar(e,t){console.log(Ze.cyan(e)),console.dir(t,{depth:null})}n(Ar,"logConfig");import Qe from"pretty-hrtime";var ie=n(e=>Qe(process.hrtime(e)).replace(" ms"," milliseconds").replace(" s"," seconds").replace(" m"," minutes"),"printDuration");var Tr=n(async(e,t,r)=>{let o=0,s,i=n(()=>{},"reportProgress");e.get("/progress",(l,a)=>{let m=!1,d=n(()=>{m=!0,a.end()},"close");a.on("close",d),!(m||a.writableEnded)&&(a.setHeader("Cache-Control","no-cache"),a.setHeader("Content-Type","text/event-stream"),a.setHeader("Connection","keep-alive"),a.flushHeaders(),i=n(u=>{m||a.writableEnded||(a.write(`data: ${JSON.stringify(u)}
20
25
 
21
- `),a.flush(),u.value===1&&d())},"reportProgress"))});let p=n((l,a,m)=>{o=Math.max(l,o);let d={value:o,message:a.charAt(0).toUpperCase()+a.slice(1)};if(a==="building"){let u=m&&m.match(/(\d+)\/(\d+)/)||[],k=parseInt(u[1],10),x=parseInt(u[2],10);!Number.isNaN(k)&&!Number.isNaN(x)&&(d.modules={complete:k,total:x},s=x)}o===1&&(r.cache&&r.cache.set("modulesCount",s),d.message||(d.message=`Completed in ${ce(t)}.`)),i(d)},"handler"),f=await r.cache?.get("modulesCount").catch(()=>{})||1e3;return{handler:p,modulesCount:f}},"useProgressReporting");import q from"path";import st from"pkg-dir";function fe(e){let t=process.cwd(),r=st.sync(t),o;return r?o=q.resolve(r,"node_modules/.cache/storybook"):o=q.resolve(t,".cache/storybook"),q.join(o,e)}n(fe,"resolvePathInStorybookCache");import it from"file-system-cache";function B(e){return it(e)}n(B,"createFileSystemCache");var Qr=B({basePath:fe("dev-server"),ns:"storybook"});import pe from"path";import{sync as D}from"pkg-dir";import h from"fs";var le=n((e,t={})=>Object.entries(t).reduce((r,[o,s])=>r.replace(new RegExp(`%${o}%`,"g"),s),e),"interpolate");function no(e,t){let r=h.readFileSync(`${D(__dirname)}/templates/base-preview-body.html`,"utf8"),o=pe.resolve(e,"preview-body.html"),s=r;return h.existsSync(o)&&(s=h.readFileSync(o,"utf8")+s),le(s,t)}n(no,"getPreviewBodyTemplate");function so(e,t){let r=h.readFileSync(`${D(__dirname)}/templates/base-preview-head.html`,"utf8"),o=pe.resolve(e,"preview-head.html"),s=r;return h.existsSync(o)&&(s+=h.readFileSync(o,"utf8")),le(s,t)}n(so,"getPreviewHeadTemplate");function io(){return`${D(__dirname)}/templates/preview.ejs`}n(io,"getPreviewMainTemplate");var co=n((e,t)=>Object.entries(t).reduce((r,[o,s])=>{let i=s.replace(/\\/g,"/").replace(/\$/g,"$$$");return r.replace(new RegExp(`{{${o}}}`,"g"),i)},e),"interpolate");import{makeRe as at}from"picomatch";function me(e){let t=at(e,{fastpaths:!1,noglobstar:!1,bash:!1});if(!t.source.startsWith("^"))throw new Error(`Invalid glob: >> ${e} >> ${t}`);return e.startsWith("./")?new RegExp(["^\\.",e.startsWith("./**")?"":"[\\\\/]",t.source.substring(1)].join("")):t}n(me,"globToRegexp");import ct from"fs";import $ from"path";import ft from"util-deprecate";import{dedent as pt}from"ts-dedent";import{scan as lt}from"picomatch";import de from"slash";var F="",ue="**/*.(stories|docs).@(mdx|tsx|ts|jsx|js)",mt=ft(e=>e.input.replace(e[1],`@${e[1]}`),pt`
26
+ `),a.flush(),u.value===1&&d())},"reportProgress"))});let p=n((l,a,m)=>{o=Math.max(l,o);let d={value:o,message:a.charAt(0).toUpperCase()+a.slice(1)};if(a==="building"){let u=m&&m.match(/(\d+)\/(\d+)/)||[],P=parseInt(u[1],10),x=parseInt(u[2],10);!Number.isNaN(P)&&!Number.isNaN(x)&&(d.modules={complete:P,total:x},s=x)}o===1&&(r.cache&&r.cache.set("modulesCount",s),d.message||(d.message=`Completed in ${ie(t)}.`)),i(d)},"handler"),f=await r.cache?.get("modulesCount").catch(()=>{})||1e3;return{handler:p,modulesCount:f}},"useProgressReporting");import H from"path";import et from"pkg-dir";function ae(e){let t=process.cwd(),r=et.sync(t),o;return r?o=H.resolve(r,"node_modules/.cache/storybook"):o=H.resolve(t,".cache/storybook"),H.join(o,e)}n(ae,"resolvePathInStorybookCache");import tt from"file-system-cache";function U(e){return tt(e)}n(U,"createFileSystemCache");var qr=U({basePath:ae("dev-server"),ns:"storybook"});import ce from"path";import{sync as B}from"pkg-dir";import h from"fs";var fe=n((e,t={})=>Object.entries(t).reduce((r,[o,s])=>r.replace(new RegExp(`%${o}%`,"g"),s),e),"interpolate");function Kr(e,t){let r=h.readFileSync(`${B(__dirname)}/templates/base-preview-body.html`,"utf8"),o=ce.resolve(e,"preview-body.html"),s=r;return h.existsSync(o)&&(s=h.readFileSync(o,"utf8")+s),fe(s,t)}n(Kr,"getPreviewBodyTemplate");function Vr(e,t){let r=h.readFileSync(`${B(__dirname)}/templates/base-preview-head.html`,"utf8"),o=ce.resolve(e,"preview-head.html"),s=r;return h.existsSync(o)&&(s+=h.readFileSync(o,"utf8")),fe(s,t)}n(Vr,"getPreviewHeadTemplate");function Xr(){return`${B(__dirname)}/templates/preview.ejs`}n(Xr,"getPreviewMainTemplate");var Qr=n((e,t)=>Object.entries(t).reduce((r,[o,s])=>{let i=s.replace(/\\/g,"/").replace(/\$/g,"$$$");return r.replace(new RegExp(`{{${o}}}`,"g"),i)},e),"interpolate");import{makeRe as rt}from"picomatch";function pe(e){let t=rt(e,{fastpaths:!1,noglobstar:!1,bash:!1});if(!t.source.startsWith("^"))throw new Error(`Invalid glob: >> ${e} >> ${t}`);return e.startsWith("./")?new RegExp(["^\\.",e.startsWith("./**")?"":"[\\\\/]",t.source.substring(1)].join("")):t}n(pe,"globToRegexp");import ot from"fs";import k from"path";import nt from"util-deprecate";import{dedent as st}from"ts-dedent";import{scan as it}from"picomatch";import le from"slash";var S="",me="**/*.(stories|docs).@(mdx|tsx|ts|jsx|js)",at=nt(e=>e.input.replace(e[1],`@${e[1]}`),st`
22
27
  You have specified an invalid glob, we've attempted to fix it, please ensure that the glob you specify is valid. See: https://github.com/storybookjs/storybook/blob/next/MIGRATION.md#correct-globs-in-mainjs
23
- `),dt=n(e=>{let t=e.match(/\.(\([^)]+\))/);return t?mt(t):e},"detectBadGlob"),ut=n((e,t)=>{try{return ct.lstatSync($.resolve(e,t)).isDirectory()}catch{return!1}},"isDirectory"),gt=n(({configDir:e,workingDir:t,directory:r})=>{let o=$.resolve(e,r),s=$.relative(t,o);return re(s)},"getDirectoryFromWorkingDir"),yt=n((e,{configDir:t,workingDir:r})=>{let o;if(typeof e=="string"){let l=dt(e),a=lt(l);if(a.isGlob){let m=a.prefix+a.base,d=a.glob;o={titlePrefix:F,directory:m,files:d}}else ut(t,e)?o={titlePrefix:F,directory:e,files:ue}:o={titlePrefix:F,directory:$.dirname(e),files:$.basename(e)}}else o={titlePrefix:F,files:ue,...e};let s=de(o.files),{directory:i}=o,p=de(gt({configDir:t,workingDir:r,directory:i})).replace(/\/$/,""),f=me(`${p}/${s}`);return{...o,directory:p,importPathMatcher:f}},"normalizeStoriesEntry"),wo=n((e,t)=>e.map(r=>yt(r,t)),"normalizeStories");import ht from"fs-extra";async function Po(e){return ht.readFile(e,{encoding:"utf8"})}n(Po,"readTemplate");import ge from"path";import{sync as xt}from"find-up";var So=n((e,t)=>{let r=xt("package.json",{cwd:e});if(!r)throw new Error(`Could not find package.json in: ${e}`);let o=ge.dirname(r);return ge.join(o,"dist","esm",t)},"findDistEsm");export{P as boost,Qr as cache,zt as checkAddonOrder,B as createFileSystemCache,Oe as filterPresetsConfig,So as findDistEsm,Xe as getAutoRefs,gt as getDirectoryFromWorkingDir,y as getInterpretedFile,J as getInterpretedFileWithExt,Ne as getPresets,no as getPreviewBodyTemplate,so as getPreviewHeadTemplate,io as getPreviewMainTemplate,Zt as getProjectRoot,jr as getRefs,oe as getStorybookConfiguration,xr as getStorybookInfo,me as globToRegexp,ar as handlebars,R as interopRequireDefault,co as interpolate,Jt as loadAllPresets,K as loadCustomPresets,rr as loadEnvs,mr as loadMainConfig,Fr as loadManagerOrAddonsFile,Ie as loadPreset,_r as loadPreviewOrConfigFile,Hr as logConfig,te as nodePathsToArray,wo as normalizeStories,yt as normalizeStoriesEntry,re as normalizeStoryPath,Po as readTemplate,Ae as resolveAddonName,fe as resolvePathInStorybookCache,b as serverRequire,I as serverResolve,or as stringifyEnvs,nr as stringifyProcessEnvs,Wr as useProgressReporting,C as validateConfigurationFiles};
28
+ `),ct=n(e=>{let t=e.match(/\.(\([^)]+\))/);return t?at(t):e},"detectBadGlob"),ft=n((e,t)=>{try{return ot.lstatSync(k.resolve(e,t)).isDirectory()}catch{return!1}},"isDirectory"),pt=n(({configDir:e,workingDir:t,directory:r})=>{let o=k.resolve(e,r),s=k.relative(t,o);return ee(s)},"getDirectoryFromWorkingDir"),lt=n((e,{configDir:t,workingDir:r})=>{let o;if(typeof e=="string"){let l=ct(e),a=it(l);if(a.isGlob){let m=a.prefix+a.base,d=a.glob;o={titlePrefix:S,directory:m,files:d}}else ft(t,e)?o={titlePrefix:S,directory:e,files:me}:o={titlePrefix:S,directory:k.dirname(e),files:k.basename(e)}}else o={titlePrefix:S,files:me,...e};let s=le(o.files),{directory:i}=o,p=le(pt({configDir:t,workingDir:r,directory:i})).replace(/\/$/,""),f=pe(`${p}/${s}`);return{...o,directory:p,importPathMatcher:f}},"normalizeStoriesEntry"),lo=n((e,t)=>e.map(r=>lt(r,t)),"normalizeStories");import mt from"fs-extra";async function go(e){return mt.readFile(e,{encoding:"utf8"})}n(go,"readTemplate");import de from"path";import{sync as dt}from"find-up";var bo=n((e,t)=>{let r=dt("package.json",{cwd:e});if(!r)throw new Error(`Could not find package.json in: ${e}`);let o=de.dirname(r);return de.join(o,"dist","esm",t)},"findDistEsm");export{A as boost,qr as cache,Mt as checkAddonOrder,U as createFileSystemCache,Pe as filterPresetsConfig,bo as findDistEsm,Je as getAutoRefs,pt as getDirectoryFromWorkingDir,y as getInterpretedFile,Y as getInterpretedFileWithExt,Se as getPresets,Kr as getPreviewBodyTemplate,Vr as getPreviewHeadTemplate,Xr as getPreviewMainTemplate,Wt as getProjectRoot,yr as getRefs,te as getStorybookConfiguration,fr as getStorybookInfo,pe as globToRegexp,Zt as handlebars,F as interopRequireDefault,Qr as interpolate,Dt as loadAllPresets,G as loadCustomPresets,Gt as loadEnvs,or as loadMainConfig,$r as loadManagerOrAddonsFile,Oe as loadPreset,Cr as loadPreviewOrConfigFile,Ar as logConfig,Q as nodePathsToArray,lo as normalizeStories,lt as normalizeStoriesEntry,ee as normalizeStoryPath,go as readTemplate,je as resolveAddonName,ae as resolvePathInStorybookCache,b as serverRequire,R as serverResolve,zt as stringifyEnvs,Kt as stringifyProcessEnvs,Tr as useProgressReporting,E as validateConfigurationFiles};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@storybook/core-common",
3
- "version": "7.0.0-alpha.11",
3
+ "version": "7.0.0-alpha.12",
4
4
  "description": "Storybook framework-agnostic API",
5
5
  "keywords": [
6
6
  "storybook"
@@ -69,7 +69,7 @@
69
69
  "@babel/preset-typescript": "^7.12.7",
70
70
  "@babel/register": "^7.12.1",
71
71
  "@storybook/csf": "0.0.2--canary.4566f4d.1",
72
- "@storybook/node-logger": "7.0.0-alpha.11",
72
+ "@storybook/node-logger": "7.0.0-alpha.12",
73
73
  "@storybook/semver": "^7.3.2",
74
74
  "@types/babel__core": "^7.0.0",
75
75
  "@types/express": "^4.7.0",
@@ -80,13 +80,14 @@
80
80
  "babel-plugin-polyfill-corejs3": "^0.1.0",
81
81
  "chalk": "^4.1.0",
82
82
  "core-js": "^3.8.2",
83
+ "esbuild": "^0.14.48",
84
+ "esbuild-register": "^3.3.3",
83
85
  "express": "^4.17.1",
84
86
  "file-system-cache": "^2.0.0",
85
87
  "find-up": "^5.0.0",
86
88
  "fs-extra": "^9.0.1",
87
89
  "glob": "^7.1.6",
88
90
  "handlebars": "^4.7.7",
89
- "interpret": "^2.2.0",
90
91
  "json5": "^2.1.3",
91
92
  "lazy-universal-dotenv": "^3.0.1",
92
93
  "picomatch": "^2.3.0",
@@ -101,7 +102,6 @@
101
102
  "devDependencies": {
102
103
  "@digitak/esrun": "^3.2.2",
103
104
  "@types/compression": "^1.7.0",
104
- "@types/interpret": "^1.1.1",
105
105
  "@types/mock-fs": "^4.13.0",
106
106
  "@types/picomatch": "^2.3.0",
107
107
  "mock-fs": "^4.13.0",
@@ -125,5 +125,5 @@
125
125
  ],
126
126
  "platform": "node"
127
127
  },
128
- "gitHead": "688d338903e84a7e83cb104472e868e734399f65"
128
+ "gitHead": "5070efff271ecb5c26b3eb94c128c4896171cffe"
129
129
  }