@storybook/core-common 8.1.0-alpha.7 → 8.1.0-beta.0

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
@@ -461,6 +461,12 @@ declare function satisfies<A>(): <T extends A>(x: T) => T;
461
461
 
462
462
  declare function stripAbsNodeModulesPath(absPath: string): string;
463
463
 
464
+ /**
465
+ * Format the content of a file using prettier.
466
+ * If prettier is not available in the user's project, it will fallback to use editorconfig settings if available and formats the file by a prettier-fallback.
467
+ */
468
+ declare function formatFileContent(filePath: string, content: string): Promise<string>;
469
+
464
470
  declare const _default: {
465
471
  '@storybook/addon-a11y': string;
466
472
  '@storybook/addon-actions': string;
@@ -548,4 +554,4 @@ type Options = Parameters<typeof Cache__default>['0'];
548
554
  type FileSystemCache = ReturnType<typeof Cache__default>;
549
555
  declare function createFileSystemCache(options: Options): FileSystemCache;
550
556
 
551
- export { HandledError, InstallationMetadata, JsPackageManager, JsPackageManagerFactory, PackageJsonWithDepsAndDevDeps, PackageJsonWithMaybeDeps, PackageManagerName, PackageMetadata, boost, builderPackages, cache, checkAddonOrder, codeLog, commandLog, commonGlobOptions, createFileSystemCache, createLogStream, extractProperFrameworkName, extractProperRendererNameFromFramework, filterPresetsConfig, findConfigFile, frameworkPackages, frameworkToRenderer, getAutoRefs, getBuilderOptions, getChars, getCoercedStorybookVersion, getConfigInfo, getDirectoryFromWorkingDir, getEnvConfig, getFrameworkName, getInterpretedFile, getInterpretedFileWithExt, getPackageDetails, getPresets, getPreviewBodyTemplate, getPreviewHeadTemplate, getProjectRoot, getRefs, getRendererName, getStorybookConfiguration, getStorybookInfo, globToRegexp, handlebars, interopRequireDefault, interpolate, isCorePackage, isPreservingSymlinks, loadAllPresets, loadCustomPresets, loadEnvs, loadMainConfig, loadManagerOrAddonsFile, loadPreset, loadPreviewOrConfigFile, logConfig, nodePathsToArray, normalizeStories, normalizeStoriesEntry, normalizeStoryPath, paddedLog, parseList, readTemplate, removeAddon, rendererPackages, resolveAddonName, resolvePathInStorybookCache, satisfies, serverRequire, serverResolve, stringifyEnvs, stringifyProcessEnvs, stripAbsNodeModulesPath, validateConfigurationFiles, validateFrameworkName, _default as versions };
557
+ export { HandledError, InstallationMetadata, JsPackageManager, JsPackageManagerFactory, PackageJsonWithDepsAndDevDeps, PackageJsonWithMaybeDeps, PackageManagerName, PackageMetadata, boost, builderPackages, cache, checkAddonOrder, codeLog, commandLog, commonGlobOptions, createFileSystemCache, createLogStream, extractProperFrameworkName, extractProperRendererNameFromFramework, filterPresetsConfig, findConfigFile, formatFileContent, frameworkPackages, frameworkToRenderer, getAutoRefs, getBuilderOptions, getChars, getCoercedStorybookVersion, getConfigInfo, getDirectoryFromWorkingDir, getEnvConfig, getFrameworkName, getInterpretedFile, getInterpretedFileWithExt, getPackageDetails, getPresets, getPreviewBodyTemplate, getPreviewHeadTemplate, getProjectRoot, getRefs, getRendererName, getStorybookConfiguration, getStorybookInfo, globToRegexp, handlebars, interopRequireDefault, interpolate, isCorePackage, isPreservingSymlinks, loadAllPresets, loadCustomPresets, loadEnvs, loadMainConfig, loadManagerOrAddonsFile, loadPreset, loadPreviewOrConfigFile, logConfig, nodePathsToArray, normalizeStories, normalizeStoriesEntry, normalizeStoryPath, paddedLog, parseList, readTemplate, removeAddon, rendererPackages, resolveAddonName, resolvePathInStorybookCache, satisfies, serverRequire, serverResolve, stringifyEnvs, stringifyProcessEnvs, stripAbsNodeModulesPath, validateConfigurationFiles, validateFrameworkName, _default as versions };
package/dist/index.js CHANGED
@@ -1,4 +1,4 @@
1
- "use strict";var __create=Object.create;var __defProp=Object.defineProperty;var __getOwnPropDesc=Object.getOwnPropertyDescriptor;var __getOwnPropNames=Object.getOwnPropertyNames;var __getProtoOf=Object.getPrototypeOf,__hasOwnProp=Object.prototype.hasOwnProperty;var __export=(target,all)=>{for(var name in all)__defProp(target,name,{get:all[name],enumerable:!0})},__copyProps=(to,from,except,desc)=>{if(from&&typeof from=="object"||typeof from=="function")for(let key of __getOwnPropNames(from))!__hasOwnProp.call(to,key)&&key!==except&&__defProp(to,key,{get:()=>from[key],enumerable:!(desc=__getOwnPropDesc(from,key))||desc.enumerable});return to};var __toESM=(mod,isNodeMode,target)=>(target=mod!=null?__create(__getProtoOf(mod)):{},__copyProps(isNodeMode||!mod||!mod.__esModule?__defProp(target,"default",{value:mod,enumerable:!0}):target,mod)),__toCommonJS=mod=>__copyProps(__defProp({},"__esModule",{value:!0}),mod);var src_exports={};__export(src_exports,{HandledError:()=>HandledError,JsPackageManager:()=>JsPackageManager,JsPackageManagerFactory:()=>JsPackageManagerFactory,boost:()=>boost,builderPackages:()=>builderPackages,cache:()=>cache,checkAddonOrder:()=>checkAddonOrder,codeLog:()=>codeLog,commandLog:()=>commandLog,commonGlobOptions:()=>commonGlobOptions,createFileSystemCache:()=>createFileSystemCache,createLogStream:()=>createLogStream,extractProperFrameworkName:()=>extractProperFrameworkName,extractProperRendererNameFromFramework:()=>extractProperRendererNameFromFramework,filterPresetsConfig:()=>filterPresetsConfig,findConfigFile:()=>findConfigFile,frameworkPackages:()=>frameworkPackages,frameworkToRenderer:()=>frameworkToRenderer,getAutoRefs:()=>getAutoRefs,getBuilderOptions:()=>getBuilderOptions,getChars:()=>getChars,getCoercedStorybookVersion:()=>getCoercedStorybookVersion,getConfigInfo:()=>getConfigInfo,getDirectoryFromWorkingDir:()=>getDirectoryFromWorkingDir,getEnvConfig:()=>getEnvConfig,getFrameworkName:()=>getFrameworkName,getInterpretedFile:()=>getInterpretedFile,getInterpretedFileWithExt:()=>getInterpretedFileWithExt,getPackageDetails:()=>getPackageDetails,getPresets:()=>getPresets,getPreviewBodyTemplate:()=>getPreviewBodyTemplate,getPreviewHeadTemplate:()=>getPreviewHeadTemplate,getProjectRoot:()=>getProjectRoot,getRefs:()=>getRefs,getRendererName:()=>getRendererName,getStorybookConfiguration:()=>getStorybookConfiguration,getStorybookInfo:()=>getStorybookInfo,globToRegexp:()=>globToRegexp,handlebars:()=>handlebars,interopRequireDefault:()=>interopRequireDefault,interpolate:()=>interpolate,isCorePackage:()=>isCorePackage,isPreservingSymlinks:()=>isPreservingSymlinks,loadAllPresets:()=>loadAllPresets,loadCustomPresets:()=>loadCustomPresets,loadEnvs:()=>loadEnvs,loadMainConfig:()=>loadMainConfig,loadManagerOrAddonsFile:()=>loadManagerOrAddonsFile,loadPreset:()=>loadPreset,loadPreviewOrConfigFile:()=>loadPreviewOrConfigFile,logConfig:()=>logConfig,nodePathsToArray:()=>nodePathsToArray,normalizeStories:()=>normalizeStories,normalizeStoriesEntry:()=>normalizeStoriesEntry,normalizeStoryPath:()=>normalizeStoryPath,paddedLog:()=>paddedLog,parseList:()=>parseList,readTemplate:()=>readTemplate,removeAddon:()=>removeAddon,rendererPackages:()=>rendererPackages,resolveAddonName:()=>resolveAddonName,resolvePathInStorybookCache:()=>resolvePathInStorybookCache,satisfies:()=>satisfies2,serverRequire:()=>serverRequire,serverResolve:()=>serverResolve,stringifyEnvs:()=>stringifyEnvs,stringifyProcessEnvs:()=>stringifyProcessEnvs,stripAbsNodeModulesPath:()=>stripAbsNodeModulesPath,validateConfigurationFiles:()=>validateConfigurationFiles,validateFrameworkName:()=>validateFrameworkName,versions:()=>versions_default});module.exports=__toCommonJS(src_exports);var import_ts_dedent2=require("ts-dedent"),import_node_logger2=require("@storybook/node-logger"),import_path4=require("path"),import_server_errors2=require("@storybook/core-events/server-errors");var import_path2=__toESM(require("path"));var import_fs=__toESM(require("fs")),boost=new Set([".js",".jsx",".ts",".tsx",".cts",".mts",".cjs",".mjs"]);function sortExtensions(){return[...Array.from(boost)]}var possibleExtensions=sortExtensions();function getInterpretedFile(pathToFile){return possibleExtensions.map(ext=>pathToFile.endsWith(ext)?pathToFile:`${pathToFile}${ext}`).find(candidate=>import_fs.default.existsSync(candidate))}function getInterpretedFileWithExt(pathToFile){return possibleExtensions.map(ext=>({path:pathToFile.endsWith(ext)?pathToFile:`${pathToFile}${ext}`,ext})).find(candidate=>import_fs.default.existsSync(candidate.path))}var registered=!1;function interopRequireDefault(filePath){let hasEsbuildBeenRegistered=!!require("module")._extensions[".ts"];if(registered===!1&&!hasEsbuildBeenRegistered){let{register}=require("esbuild-register/dist/node");registered=!0,register({target:`node${process.version.slice(1)}`,format:"cjs",hookIgnoreNodeModules:!0,keepNames:!0,tsconfigRaw:`{
1
+ "use strict";var __create=Object.create;var __defProp=Object.defineProperty;var __getOwnPropDesc=Object.getOwnPropertyDescriptor;var __getOwnPropNames=Object.getOwnPropertyNames;var __getProtoOf=Object.getPrototypeOf,__hasOwnProp=Object.prototype.hasOwnProperty;var __export=(target,all)=>{for(var name in all)__defProp(target,name,{get:all[name],enumerable:!0})},__copyProps=(to,from,except,desc)=>{if(from&&typeof from=="object"||typeof from=="function")for(let key of __getOwnPropNames(from))!__hasOwnProp.call(to,key)&&key!==except&&__defProp(to,key,{get:()=>from[key],enumerable:!(desc=__getOwnPropDesc(from,key))||desc.enumerable});return to};var __toESM=(mod,isNodeMode,target)=>(target=mod!=null?__create(__getProtoOf(mod)):{},__copyProps(isNodeMode||!mod||!mod.__esModule?__defProp(target,"default",{value:mod,enumerable:!0}):target,mod)),__toCommonJS=mod=>__copyProps(__defProp({},"__esModule",{value:!0}),mod);var src_exports={};__export(src_exports,{HandledError:()=>HandledError,JsPackageManager:()=>JsPackageManager,JsPackageManagerFactory:()=>JsPackageManagerFactory,boost:()=>boost,builderPackages:()=>builderPackages,cache:()=>cache,checkAddonOrder:()=>checkAddonOrder,codeLog:()=>codeLog,commandLog:()=>commandLog,commonGlobOptions:()=>commonGlobOptions,createFileSystemCache:()=>createFileSystemCache,createLogStream:()=>createLogStream,extractProperFrameworkName:()=>extractProperFrameworkName,extractProperRendererNameFromFramework:()=>extractProperRendererNameFromFramework,filterPresetsConfig:()=>filterPresetsConfig,findConfigFile:()=>findConfigFile,formatFileContent:()=>formatFileContent,frameworkPackages:()=>frameworkPackages,frameworkToRenderer:()=>frameworkToRenderer,getAutoRefs:()=>getAutoRefs,getBuilderOptions:()=>getBuilderOptions,getChars:()=>getChars,getCoercedStorybookVersion:()=>getCoercedStorybookVersion,getConfigInfo:()=>getConfigInfo,getDirectoryFromWorkingDir:()=>getDirectoryFromWorkingDir,getEnvConfig:()=>getEnvConfig,getFrameworkName:()=>getFrameworkName,getInterpretedFile:()=>getInterpretedFile,getInterpretedFileWithExt:()=>getInterpretedFileWithExt,getPackageDetails:()=>getPackageDetails,getPresets:()=>getPresets,getPreviewBodyTemplate:()=>getPreviewBodyTemplate,getPreviewHeadTemplate:()=>getPreviewHeadTemplate,getProjectRoot:()=>getProjectRoot,getRefs:()=>getRefs,getRendererName:()=>getRendererName,getStorybookConfiguration:()=>getStorybookConfiguration,getStorybookInfo:()=>getStorybookInfo,globToRegexp:()=>globToRegexp,handlebars:()=>handlebars,interopRequireDefault:()=>interopRequireDefault,interpolate:()=>interpolate,isCorePackage:()=>isCorePackage,isPreservingSymlinks:()=>isPreservingSymlinks,loadAllPresets:()=>loadAllPresets,loadCustomPresets:()=>loadCustomPresets,loadEnvs:()=>loadEnvs,loadMainConfig:()=>loadMainConfig,loadManagerOrAddonsFile:()=>loadManagerOrAddonsFile,loadPreset:()=>loadPreset,loadPreviewOrConfigFile:()=>loadPreviewOrConfigFile,logConfig:()=>logConfig,nodePathsToArray:()=>nodePathsToArray,normalizeStories:()=>normalizeStories,normalizeStoriesEntry:()=>normalizeStoriesEntry,normalizeStoryPath:()=>normalizeStoryPath,paddedLog:()=>paddedLog,parseList:()=>parseList,readTemplate:()=>readTemplate,removeAddon:()=>removeAddon,rendererPackages:()=>rendererPackages,resolveAddonName:()=>resolveAddonName,resolvePathInStorybookCache:()=>resolvePathInStorybookCache,satisfies:()=>satisfies2,serverRequire:()=>serverRequire,serverResolve:()=>serverResolve,stringifyEnvs:()=>stringifyEnvs,stringifyProcessEnvs:()=>stringifyProcessEnvs,stripAbsNodeModulesPath:()=>stripAbsNodeModulesPath,validateConfigurationFiles:()=>validateConfigurationFiles,validateFrameworkName:()=>validateFrameworkName,versions:()=>versions_default});module.exports=__toCommonJS(src_exports);var import_ts_dedent2=require("ts-dedent"),import_node_logger2=require("@storybook/node-logger"),import_path4=require("path"),import_server_errors2=require("@storybook/core-events/server-errors");var import_path2=__toESM(require("path"));var import_fs=__toESM(require("fs")),boost=new Set([".js",".jsx",".ts",".tsx",".cts",".mts",".cjs",".mjs"]);function sortExtensions(){return[...Array.from(boost)]}var possibleExtensions=sortExtensions();function getInterpretedFile(pathToFile){return possibleExtensions.map(ext=>pathToFile.endsWith(ext)?pathToFile:`${pathToFile}${ext}`).find(candidate=>import_fs.default.existsSync(candidate))}function getInterpretedFileWithExt(pathToFile){return possibleExtensions.map(ext=>({path:pathToFile.endsWith(ext)?pathToFile:`${pathToFile}${ext}`,ext})).find(candidate=>import_fs.default.existsSync(candidate.path))}var registered=!1;function interopRequireDefault(filePath){let hasEsbuildBeenRegistered=!!require("module")._extensions[".ts"];if(registered===!1&&!hasEsbuildBeenRegistered){let{register}=require("esbuild-register/dist/node");registered=!0,register({target:`node${process.version.slice(1)}`,format:"cjs",hookIgnoreNodeModules:!0,keepNames:!0,tsconfigRaw:`{
2
2
  "compilerOptions": {
3
3
  "strict": false,
4
4
  "skipLibCheck": true,
@@ -9,7 +9,7 @@
9
9
  `),!mainConfigPath)throw new import_server_errors.MainFileMissingError({location:configDir})}function loadCustomPresets({configDir}){validateConfigurationFiles(configDir);let presets=serverRequire(import_path2.default.resolve(configDir,"presets"));if(serverRequire(import_path2.default.resolve(configDir,"main"))){let resolved=serverResolve(import_path2.default.resolve(configDir,"main"));if(resolved)return[resolved]}return presets||[]}var import_resolve_from=__toESM(require("resolve-from")),safeResolveFrom=(path19,file)=>{try{return(0,import_resolve_from.default)(path19,file)}catch{return}},safeResolve=file=>{try{return require.resolve(file)}catch{return}};var import_path3=__toESM(require("path"));function normalizePath(id){return import_path3.default.posix.normalize(slash(id))}function stripAbsNodeModulesPath(absPath){let splits=absPath.split(`node_modules${import_path3.default.sep}`);return normalizePath(splits[splits.length-1])}var isObject=val=>val!=null&&typeof val=="object"&&Array.isArray(val)===!1,isFunction=val=>typeof val=="function";function filterPresetsConfig(presetsConfig){return presetsConfig.filter(preset=>{let presetName=typeof preset=="string"?preset:preset.name;return!/@storybook[\\\\/]preset-typescript/.test(presetName)})}function resolvePathToMjs(filePath){let{dir,name}=(0,import_path4.parse)(filePath),mjsPath=(0,import_path4.join)(dir,`${name}.mjs`);return safeResolve(mjsPath)?mjsPath:filePath}function resolvePresetFunction(input,presetOptions,storybookOptions){return isFunction(input)?[...input({...storybookOptions,...presetOptions})]:Array.isArray(input)?[...input]:[]}var resolveAddonName=(configDir,name,options)=>{let resolve=name.startsWith("/")?safeResolve:safeResolveFrom.bind(null,configDir),resolved=resolve(name);if(resolved){let{dir:fdir,name:fname}=(0,import_path4.parse)(resolved);if(name.match(/\/(manager|register(-panel)?)(\.(js|mjs|ts|tsx|jsx))?$/))return{type:"virtual",name,managerEntries:[resolvePathToMjs((0,import_path4.join)(fdir,fname))]};if(name.match(/\/(preset)(\.(js|mjs|ts|tsx|jsx))?$/))return{type:"presets",name:resolved}}let checkExists=exportName=>{if(resolve(`${name}${exportName}`))return`${name}${exportName}`},absolutizeExport=(exportName,preferMJS)=>{let found=resolve(`${name}${exportName}`);if(found)return preferMJS?resolvePathToMjs(found):found},managerFile=absolutizeExport("/manager",!0),registerFile=absolutizeExport("/register",!0)||absolutizeExport("/register-panel",!0),previewFile=checkExists("/preview"),previewFileAbsolute=absolutizeExport("/preview",!0),presetFile=absolutizeExport("/preset",!1);if(!(managerFile||previewFile)&&presetFile)return{type:"presets",name:presetFile};if(managerFile||registerFile||previewFile||presetFile){let managerEntries=[];return managerFile&&managerEntries.push(managerFile),!managerFile&&registerFile&&!presetFile&&managerEntries.push(registerFile),{type:"virtual",name,...managerEntries.length?{managerEntries}:{},...previewFile?{previewAnnotations:[previewFileAbsolute?{bare:previewFile.includes("node_modules")?stripAbsNodeModulesPath(previewFile):previewFile,absolute:previewFileAbsolute}:previewFile]}:{},...presetFile?{presets:[{name:presetFile,options}]}:{}}}if(resolved)return{type:"presets",name:resolved}},map=({configDir})=>item=>{let options=isObject(item)&&item.options||void 0,name=isObject(item)?item.name:item,resolved;try{resolved=resolveAddonName(configDir,name,options)}catch{import_node_logger2.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/
10
10
  ${item}`);return}if(!resolved){import_node_logger2.logger.warn(`Could not resolve addon "${name}", skipping. Is it installed?`);return}return{...options?{options}:{},...resolved}};async function getContent(input){if(input.type==="virtual"){let{type,name:name2,...rest}=input;return rest}let name=input.name?input.name:input;return interopRequireDefault(name)}async function loadPreset(input,level,storybookOptions){let presetName=input.name?input.name:input;try{let presetOptions=input.options?input.options:{},contents=await getContent(input);if(typeof contents=="function"&&(contents=contents(storybookOptions,presetOptions)),Array.isArray(contents))return await loadPresets(contents,level+1,storybookOptions);if(isObject(contents)){let{addons:addonsInput=[],presets:presetsInput=[],...rest}=contents,filter=i=>!0;storybookOptions.isCritical!==!0&&(storybookOptions.build?.test?.disabledAddons?.length||0)>0&&(filter=i=>{let name=i.name?i.name:i;return!storybookOptions.build?.test?.disabledAddons?.find(n=>name.includes(n))});let subPresets=resolvePresetFunction(presetsInput,presetOptions,storybookOptions).filter(filter),subAddons=resolvePresetFunction(addonsInput,presetOptions,storybookOptions).filter(filter);return[...await loadPresets([...subPresets],level+1,storybookOptions),...await loadPresets([...subAddons.map(map(storybookOptions))].filter(Boolean),level+1,storybookOptions),{name:presetName,preset:rest,options:presetOptions}]}throw new Error(import_ts_dedent2.dedent`
11
11
  ${input} is not a valid preset
12
- `)}catch(error){if(storybookOptions?.isCritical)throw new import_server_errors2.CriticalPresetLoadError({error,presetName});let warning=level>0?` Failed to load preset: ${JSON.stringify(input)} on level ${level}`:` Failed to load preset: ${JSON.stringify(input)}`;return import_node_logger2.logger.warn(warning),import_node_logger2.logger.error(error),[]}}async function loadPresets(presets,level,storybookOptions){return!presets||!Array.isArray(presets)||!presets.length?[]:(await Promise.all(presets.map(async preset=>loadPreset(preset,level,storybookOptions)))).reduce((acc,loaded)=>acc.concat(loaded),[])}function applyPresets(presets,extension,config,args,storybookOptions){let presetResult=new Promise(res=>res(config));return presets.length?presets.reduce((accumulationPromise,{preset,options})=>{let change=preset[extension];if(!change)return accumulationPromise;if(typeof change=="function"){let extensionFn=change,context={preset,combinedOptions:{...storybookOptions,...args,...options,presetsList:presets,presets:{apply:async(ext,c,a={})=>applyPresets(presets,ext,c,a,storybookOptions)}}};return accumulationPromise.then(newConfig=>extensionFn.call(context.preset,newConfig,context.combinedOptions))}return accumulationPromise.then(newConfig=>Array.isArray(newConfig)&&Array.isArray(change)?[...newConfig,...change]:isObject(newConfig)&&isObject(change)?{...newConfig,...change}:change)},presetResult):presetResult}async function getPresets(presets,storybookOptions){let loadedPresets=await loadPresets(presets,0,storybookOptions);return{apply:async(extension,config,args={})=>applyPresets(loadedPresets,extension,config,args,storybookOptions)}}async function loadAllPresets(options){let{corePresets=[],overridePresets=[],...restOptions}=options,presetsConfig=[...corePresets,...loadCustomPresets(options),...overridePresets],filteredPresetConfig=filterPresetsConfig(presetsConfig);return filteredPresetConfig.length<presetsConfig.length&&import_node_logger2.logger.warn("Storybook now supports TypeScript natively. You can safely remove `@storybook/preset-typescript`."),getPresets(filteredPresetConfig,restOptions)}var import_file_system_cache=__toESM(require("file-system-cache"));function createFileSystemCache(options){return(0,import_file_system_cache.default)(options)}var import_path5=__toESM(require("path")),import_find_cache_dir=__toESM(require("find-cache-dir"));function resolvePathInStorybookCache(fileOrDirectoryName,sub="default"){let cacheDirectory=(0,import_find_cache_dir.default)({name:"storybook"});return cacheDirectory||=import_path5.default.join(process.cwd(),".cache","storybook"),import_path5.default.join(cacheDirectory,sub,fileOrDirectoryName)}var cache=createFileSystemCache({basePath:resolvePathInStorybookCache("dev-server"),ns:"storybook"});var import_fs_extra2=require("fs-extra"),import_path7=require("path"),import_tempy=__toESM(require("tempy"));var import_path6=__toESM(require("path")),import_fs_extra=__toESM(require("fs-extra"));function getStorybookConfiguration(storybookScript,shortName,longName){if(!storybookScript)return null;let parts=storybookScript.split(/[\s='"]+/),index=parts.indexOf(longName);return index===-1&&(index=parts.indexOf(shortName)),index===-1?null:parts[index+1]}var rendererPackages={"@storybook/react":"react","@storybook/vue3":"vue3","@storybook/angular":"angular","@storybook/html":"html","@storybook/web-components":"web-components","@storybook/polymer":"polymer","@storybook/ember":"ember","@storybook/svelte":"svelte","@storybook/preact":"preact","@storybook/server":"server","storybook-framework-qwik":"qwik","storybook-solidjs":"solid","@storybook/vue":"vue"},frameworkPackages={"@storybook/angular":"angular","@storybook/ember":"ember","@storybook/html-vite":"html-vite","@storybook/html-webpack5":"html-webpack5","@storybook/nextjs":"nextjs","@storybook/preact-vite":"preact-vite","@storybook/preact-webpack5":"preact-webpack5","@storybook/react-vite":"react-vite","@storybook/react-webpack5":"react-webpack5","@storybook/server-webpack5":"server-webpack5","@storybook/svelte-vite":"svelte-vite","@storybook/svelte-webpack5":"svelte-webpack5","@storybook/sveltekit":"sveltekit","@storybook/vue3-vite":"vue3-vite","@storybook/vue3-webpack5":"vue3-webpack5","@storybook/web-components-vite":"web-components-vite","@storybook/web-components-webpack5":"web-components-webpack5","storybook-framework-qwik":"qwik","storybook-solidjs-vite":"solid"},builderPackages=["@storybook/builder-webpack5","@storybook/builder-vite"],logger2=console,findDependency=({dependencies,devDependencies,peerDependencies},predicate)=>[Object.entries(dependencies||{}).find(predicate),Object.entries(devDependencies||{}).find(predicate),Object.entries(peerDependencies||{}).find(predicate)],getRendererInfo=packageJson=>{let[dep,devDep,peerDep]=findDependency(packageJson,([key])=>rendererPackages[key]),[pkg,version]=dep||devDep||peerDep||[];return dep&&devDep&&dep[0]===devDep[0]&&logger2.warn(`Found "${dep[0]}" in both "dependencies" and "devDependencies". This is probably a mistake.`),dep&&peerDep&&dep[0]===peerDep[0]&&logger2.warn(`Found "${dep[0]}" in both "dependencies" and "peerDependencies". This is probably a mistake.`),{version,frameworkPackage:pkg}},validConfigExtensions=["ts","js","tsx","jsx","mjs","cjs"],findConfigFile=(prefix,configDir)=>{let filePrefix=import_path6.default.join(configDir,prefix),extension=validConfigExtensions.find(ext=>import_fs_extra.default.existsSync(`${filePrefix}.${ext}`));return extension?`${filePrefix}.${extension}`:null},getConfigInfo=(packageJson,configDir)=>{let storybookConfigDir=configDir??".storybook",storybookScript=packageJson.scripts?.storybook;if(storybookScript&&!configDir){let configParam=getStorybookConfiguration(storybookScript,"-c","--config-dir");configParam&&(storybookConfigDir=configParam)}return{configDir:storybookConfigDir,mainConfig:findConfigFile("main",storybookConfigDir),previewConfig:findConfigFile("preview",storybookConfigDir),managerConfig:findConfigFile("manager",storybookConfigDir)}},getStorybookInfo=(packageJson,configDir)=>{let rendererInfo=getRendererInfo(packageJson),configInfo=getConfigInfo(packageJson,configDir);return{...rendererInfo,...configInfo}};var versions_default={"@storybook/addon-a11y":"8.1.0-alpha.7","@storybook/addon-actions":"8.1.0-alpha.7","@storybook/addon-backgrounds":"8.1.0-alpha.7","@storybook/addon-controls":"8.1.0-alpha.7","@storybook/addon-docs":"8.1.0-alpha.7","@storybook/addon-essentials":"8.1.0-alpha.7","@storybook/addon-highlight":"8.1.0-alpha.7","@storybook/addon-interactions":"8.1.0-alpha.7","@storybook/addon-jest":"8.1.0-alpha.7","@storybook/addon-links":"8.1.0-alpha.7","@storybook/addon-mdx-gfm":"8.1.0-alpha.7","@storybook/addon-measure":"8.1.0-alpha.7","@storybook/addon-onboarding":"8.1.0-alpha.7","@storybook/addon-outline":"8.1.0-alpha.7","@storybook/addon-storysource":"8.1.0-alpha.7","@storybook/addon-themes":"8.1.0-alpha.7","@storybook/addon-toolbars":"8.1.0-alpha.7","@storybook/addon-viewport":"8.1.0-alpha.7","@storybook/angular":"8.1.0-alpha.7","@storybook/blocks":"8.1.0-alpha.7","@storybook/builder-manager":"8.1.0-alpha.7","@storybook/builder-vite":"8.1.0-alpha.7","@storybook/builder-webpack5":"8.1.0-alpha.7","@storybook/channels":"8.1.0-alpha.7","@storybook/cli":"8.1.0-alpha.7","@storybook/client-logger":"8.1.0-alpha.7","@storybook/codemod":"8.1.0-alpha.7","@storybook/components":"8.1.0-alpha.7","@storybook/core-common":"8.1.0-alpha.7","@storybook/core-events":"8.1.0-alpha.7","@storybook/core-server":"8.1.0-alpha.7","@storybook/core-webpack":"8.1.0-alpha.7","@storybook/csf-plugin":"8.1.0-alpha.7","@storybook/csf-tools":"8.1.0-alpha.7","@storybook/docs-tools":"8.1.0-alpha.7","@storybook/ember":"8.1.0-alpha.7","@storybook/html":"8.1.0-alpha.7","@storybook/html-vite":"8.1.0-alpha.7","@storybook/html-webpack5":"8.1.0-alpha.7","@storybook/instrumenter":"8.1.0-alpha.7","@storybook/manager":"8.1.0-alpha.7","@storybook/manager-api":"8.1.0-alpha.7","@storybook/nextjs":"8.1.0-alpha.7","@storybook/node-logger":"8.1.0-alpha.7","@storybook/preact":"8.1.0-alpha.7","@storybook/preact-vite":"8.1.0-alpha.7","@storybook/preact-webpack5":"8.1.0-alpha.7","@storybook/preset-create-react-app":"8.1.0-alpha.7","@storybook/preset-html-webpack":"8.1.0-alpha.7","@storybook/preset-preact-webpack":"8.1.0-alpha.7","@storybook/preset-react-webpack":"8.1.0-alpha.7","@storybook/preset-server-webpack":"8.1.0-alpha.7","@storybook/preset-svelte-webpack":"8.1.0-alpha.7","@storybook/preset-vue3-webpack":"8.1.0-alpha.7","@storybook/preview":"8.1.0-alpha.7","@storybook/preview-api":"8.1.0-alpha.7","@storybook/react":"8.1.0-alpha.7","@storybook/react-dom-shim":"8.1.0-alpha.7","@storybook/react-vite":"8.1.0-alpha.7","@storybook/react-webpack5":"8.1.0-alpha.7","@storybook/router":"8.1.0-alpha.7","@storybook/server":"8.1.0-alpha.7","@storybook/server-webpack5":"8.1.0-alpha.7","@storybook/source-loader":"8.1.0-alpha.7","@storybook/svelte":"8.1.0-alpha.7","@storybook/svelte-vite":"8.1.0-alpha.7","@storybook/svelte-webpack5":"8.1.0-alpha.7","@storybook/sveltekit":"8.1.0-alpha.7","@storybook/telemetry":"8.1.0-alpha.7","@storybook/test":"8.1.0-alpha.7","@storybook/theming":"8.1.0-alpha.7","@storybook/types":"8.1.0-alpha.7","@storybook/vue3":"8.1.0-alpha.7","@storybook/vue3-vite":"8.1.0-alpha.7","@storybook/vue3-webpack5":"8.1.0-alpha.7","@storybook/web-components":"8.1.0-alpha.7","@storybook/web-components-vite":"8.1.0-alpha.7","@storybook/web-components-webpack5":"8.1.0-alpha.7",sb:"8.1.0-alpha.7",storybook:"8.1.0-alpha.7"};function parseList(str){return str.split(",").map(item=>item.trim()).filter(item=>item.length>0)}async function getCoercedStorybookVersion(packageManager){return(await Promise.all(Object.keys(rendererPackages).map(async pkg=>({name:pkg,version:await packageManager.getPackageVersion(pkg)})))).filter(({version})=>!!version)[0]?.version}function getEnvConfig(program,configEnv){Object.keys(configEnv).forEach(fieldName=>{let envVarName=configEnv[fieldName],envVarValue=process.env[envVarName];envVarValue&&(program[fieldName]=envVarValue)})}var createLogStream=async(logFileName="storybook.log")=>{let finalLogPath=(0,import_path7.join)(process.cwd(),logFileName),temporaryLogPath=import_tempy.default.file({name:logFileName}),logStream=(0,import_fs_extra2.createWriteStream)(temporaryLogPath,{encoding:"utf8"});return new Promise((resolve,reject)=>{logStream.once("open",()=>{resolve({logStream,moveLogFile:async()=>(0,import_fs_extra2.move)(temporaryLogPath,finalLogPath,{overwrite:!0}),clearLogFile:async()=>(0,import_fs_extra2.writeFile)(temporaryLogPath,""),removeLogFile:async()=>(0,import_fs_extra2.remove)(temporaryLogPath),readLogFile:async()=>(0,import_fs_extra2.readFile)(temporaryLogPath,"utf8")})}),logStream.once("error",reject)})},isCorePackage=pkg=>Object.keys(versions_default).includes(pkg);var import_node_logger3=require("@storybook/node-logger"),predicateFor=addon=>entry=>{let name=entry.name||entry;return name&&name.replaceAll(/(\\){1,2}/g,"/").includes(addon)},isCorrectOrder=(addons,before,after)=>{let essentialsIndex=addons.findIndex(predicateFor("@storybook/addon-essentials")),beforeIndex=addons.findIndex(predicateFor(before.name)),afterIndex=addons.findIndex(predicateFor(after.name));return beforeIndex===-1&&before.inEssentials&&(beforeIndex=essentialsIndex),afterIndex===-1&&after.inEssentials&&(afterIndex=essentialsIndex),beforeIndex!==-1&&afterIndex!==-1&&beforeIndex<=afterIndex},checkAddonOrder=async({before,after,configFile,getConfig})=>{try{let config=await getConfig(configFile);if(!config?.addons){import_node_logger3.logger.warn("Unable to find 'addons' config in main Storybook config");return}if(!isCorrectOrder(config.addons,before,after)){let orEssentials=" (or '@storybook/addon-essentials')",beforeText=`'${before.name}'${before.inEssentials?orEssentials:""}`,afterText=`'${after.name}'${after.inEssentials?orEssentials:""}`;import_node_logger3.logger.warn(`Expected ${beforeText} to be listed before ${afterText} in main Storybook config.`)}}catch{import_node_logger3.logger.warn(`Unable to load config file: ${configFile}`)}};var import_lazy_universal_dotenv=require("lazy-universal-dotenv");var import_path8=__toESM(require("path")),import_find_up=__toESM(require("find-up")),getProjectRoot=()=>{let result;if(process.env.STORYBOOK_PROJECT_ROOT)return process.env.STORYBOOK_PROJECT_ROOT;try{let found=import_find_up.default.sync(".git",{type:"directory"});found&&(result=import_path8.default.join(found,".."))}catch{}try{let found=import_find_up.default.sync(".svn",{type:"directory"});found&&(result=result||import_path8.default.join(found,".."))}catch{}try{let found=import_find_up.default.sync(".hg",{type:"directory"});found&&(result=result||import_path8.default.join(found,".."))}catch{}try{let found=import_find_up.default.sync(".yarn",{type:"directory"});found&&(result=result||import_path8.default.join(found,".."))}catch{}try{result=result||__dirname.split("node_modules")[0]}catch{}return result||process.cwd()},nodePathsToArray=nodePath=>nodePath.split(process.platform==="win32"?";":":").filter(Boolean).map(p=>import_path8.default.resolve("./",p)),relativePattern=/^\.{1,2}([/\\]|$)/;function normalizeStoryPath(filename){return relativePattern.test(filename)?filename:`.${import_path8.default.sep}${filename}`}function loadEnvs(options={}){let defaultNodeEnv=options.production?"production":"development",env={NODE_ENV:process.env.NODE_ENV||defaultNodeEnv,NODE_PATH:process.env.NODE_PATH||"",STORYBOOK:process.env.STORYBOOK||"true",PUBLIC_URL:options.production?".":""};Object.keys(process.env).filter(name=>/^STORYBOOK_/.test(name)).forEach(name=>{env[name]=process.env[name]});let base=Object.entries(env).reduce((acc,[k,v])=>Object.assign(acc,{[k]:JSON.stringify(v)}),{}),{stringified,raw}=(0,import_lazy_universal_dotenv.getEnvironment)({nodeEnv:env.NODE_ENV}),fullRaw={...env,...raw};return fullRaw.NODE_PATH=nodePathsToArray(fullRaw.NODE_PATH||""),{stringified:{...base,...stringified},raw:fullRaw}}var stringifyEnvs=raw=>Object.entries(raw).reduce((acc,[key,value])=>(acc[key]=JSON.stringify(value),acc),{}),stringifyProcessEnvs=raw=>Object.entries(raw).reduce((acc,[key,value])=>(acc[`process.env.${key}`]=JSON.stringify(value),acc),{});var NODE_MODULES_RE=/node_modules/,commonGlobOptions=glob2=>NODE_MODULES_RE.test(glob2)?{}:{ignore:["**/node_modules/**"]};var frameworkToRenderer={angular:"angular",ember:"ember","html-vite":"html","html-webpack5":"html",nextjs:"react","preact-vite":"preact","preact-webpack5":"preact",qwik:"qwik","react-vite":"react","react-webpack5":"react","server-webpack5":"server",solid:"solid","svelte-vite":"svelte","svelte-webpack5":"svelte",sveltekit:"svelte","vue3-vite":"vue3","vue3-webpack5":"vue3","web-components-vite":"web-components","web-components-webpack5":"web-components",html:"html",preact:"preact","react-native":"react-native",react:"react",server:"server",svelte:"svelte",vue3:"vue3","web-components":"web-components"};async function getBuilderOptions(options){let framework=await options.presets.apply("framework",{},options);if(typeof framework!="string"&&framework?.options?.builder)return framework.options.builder;let{builder}=await options.presets.apply("core",{},options);return typeof builder!="string"&&builder?.options?builder.options:{}}var import_ts_dedent3=require("ts-dedent");var import_path9=__toESM(require("path"));function normalizePath2(p){return import_path9.default.posix.normalize(p.replace(/\\/g,"/"))}async function getFrameworkName(options){let framework=await options.presets.apply("framework","",options);if(!framework)throw new Error(import_ts_dedent3.dedent`
12
+ `)}catch(error){if(storybookOptions?.isCritical)throw new import_server_errors2.CriticalPresetLoadError({error,presetName});let warning=level>0?` Failed to load preset: ${JSON.stringify(input)} on level ${level}`:` Failed to load preset: ${JSON.stringify(input)}`;return import_node_logger2.logger.warn(warning),import_node_logger2.logger.error(error),[]}}async function loadPresets(presets,level,storybookOptions){return!presets||!Array.isArray(presets)||!presets.length?[]:(await Promise.all(presets.map(async preset=>loadPreset(preset,level,storybookOptions)))).reduce((acc,loaded)=>acc.concat(loaded),[])}function applyPresets(presets,extension,config,args,storybookOptions){let presetResult=new Promise(res=>res(config));return presets.length?presets.reduce((accumulationPromise,{preset,options})=>{let change=preset[extension];if(!change)return accumulationPromise;if(typeof change=="function"){let extensionFn=change,context={preset,combinedOptions:{...storybookOptions,...args,...options,presetsList:presets,presets:{apply:async(ext,c,a={})=>applyPresets(presets,ext,c,a,storybookOptions)}}};return accumulationPromise.then(newConfig=>extensionFn.call(context.preset,newConfig,context.combinedOptions))}return accumulationPromise.then(newConfig=>Array.isArray(newConfig)&&Array.isArray(change)?[...newConfig,...change]:isObject(newConfig)&&isObject(change)?{...newConfig,...change}:change)},presetResult):presetResult}async function getPresets(presets,storybookOptions){let loadedPresets=await loadPresets(presets,0,storybookOptions);return{apply:async(extension,config,args={})=>applyPresets(loadedPresets,extension,config,args,storybookOptions)}}async function loadAllPresets(options){let{corePresets=[],overridePresets=[],...restOptions}=options,presetsConfig=[...corePresets,...loadCustomPresets(options),...overridePresets],filteredPresetConfig=filterPresetsConfig(presetsConfig);return filteredPresetConfig.length<presetsConfig.length&&import_node_logger2.logger.warn("Storybook now supports TypeScript natively. You can safely remove `@storybook/preset-typescript`."),getPresets(filteredPresetConfig,restOptions)}var import_file_system_cache=__toESM(require("file-system-cache"));function createFileSystemCache(options){return(0,import_file_system_cache.default)(options)}var import_path5=__toESM(require("path")),import_find_cache_dir=__toESM(require("find-cache-dir"));function resolvePathInStorybookCache(fileOrDirectoryName,sub="default"){let cacheDirectory=(0,import_find_cache_dir.default)({name:"storybook"});return cacheDirectory||=import_path5.default.join(process.cwd(),".cache","storybook"),import_path5.default.join(cacheDirectory,sub,fileOrDirectoryName)}var cache=createFileSystemCache({basePath:resolvePathInStorybookCache("dev-server"),ns:"storybook"});var import_fs_extra2=require("fs-extra"),import_path7=require("path"),import_tempy=__toESM(require("tempy"));var import_path6=__toESM(require("path")),import_fs_extra=__toESM(require("fs-extra"));function getStorybookConfiguration(storybookScript,shortName,longName){if(!storybookScript)return null;let parts=storybookScript.split(/[\s='"]+/),index=parts.indexOf(longName);return index===-1&&(index=parts.indexOf(shortName)),index===-1?null:parts[index+1]}var rendererPackages={"@storybook/react":"react","@storybook/vue3":"vue3","@storybook/angular":"angular","@storybook/html":"html","@storybook/web-components":"web-components","@storybook/polymer":"polymer","@storybook/ember":"ember","@storybook/svelte":"svelte","@storybook/preact":"preact","@storybook/server":"server","storybook-framework-qwik":"qwik","storybook-solidjs":"solid","@storybook/vue":"vue"},frameworkPackages={"@storybook/angular":"angular","@storybook/ember":"ember","@storybook/html-vite":"html-vite","@storybook/html-webpack5":"html-webpack5","@storybook/nextjs":"nextjs","@storybook/preact-vite":"preact-vite","@storybook/preact-webpack5":"preact-webpack5","@storybook/react-vite":"react-vite","@storybook/react-webpack5":"react-webpack5","@storybook/server-webpack5":"server-webpack5","@storybook/svelte-vite":"svelte-vite","@storybook/svelte-webpack5":"svelte-webpack5","@storybook/sveltekit":"sveltekit","@storybook/vue3-vite":"vue3-vite","@storybook/vue3-webpack5":"vue3-webpack5","@storybook/web-components-vite":"web-components-vite","@storybook/web-components-webpack5":"web-components-webpack5","storybook-framework-qwik":"qwik","storybook-solidjs-vite":"solid"},builderPackages=["@storybook/builder-webpack5","@storybook/builder-vite"],logger2=console,findDependency=({dependencies,devDependencies,peerDependencies},predicate)=>[Object.entries(dependencies||{}).find(predicate),Object.entries(devDependencies||{}).find(predicate),Object.entries(peerDependencies||{}).find(predicate)],getRendererInfo=packageJson=>{let[dep,devDep,peerDep]=findDependency(packageJson,([key])=>rendererPackages[key]),[pkg,version]=dep||devDep||peerDep||[];return dep&&devDep&&dep[0]===devDep[0]&&logger2.warn(`Found "${dep[0]}" in both "dependencies" and "devDependencies". This is probably a mistake.`),dep&&peerDep&&dep[0]===peerDep[0]&&logger2.warn(`Found "${dep[0]}" in both "dependencies" and "peerDependencies". This is probably a mistake.`),{version,frameworkPackage:pkg}},validConfigExtensions=["ts","js","tsx","jsx","mjs","cjs"],findConfigFile=(prefix,configDir)=>{let filePrefix=import_path6.default.join(configDir,prefix),extension=validConfigExtensions.find(ext=>import_fs_extra.default.existsSync(`${filePrefix}.${ext}`));return extension?`${filePrefix}.${extension}`:null},getConfigInfo=(packageJson,configDir)=>{let storybookConfigDir=configDir??".storybook",storybookScript=packageJson.scripts?.storybook;if(storybookScript&&!configDir){let configParam=getStorybookConfiguration(storybookScript,"-c","--config-dir");configParam&&(storybookConfigDir=configParam)}return{configDir:storybookConfigDir,mainConfig:findConfigFile("main",storybookConfigDir),previewConfig:findConfigFile("preview",storybookConfigDir),managerConfig:findConfigFile("manager",storybookConfigDir)}},getStorybookInfo=(packageJson,configDir)=>{let rendererInfo=getRendererInfo(packageJson),configInfo=getConfigInfo(packageJson,configDir);return{...rendererInfo,...configInfo}};var versions_default={"@storybook/addon-a11y":"8.1.0-beta.0","@storybook/addon-actions":"8.1.0-beta.0","@storybook/addon-backgrounds":"8.1.0-beta.0","@storybook/addon-controls":"8.1.0-beta.0","@storybook/addon-docs":"8.1.0-beta.0","@storybook/addon-essentials":"8.1.0-beta.0","@storybook/addon-highlight":"8.1.0-beta.0","@storybook/addon-interactions":"8.1.0-beta.0","@storybook/addon-jest":"8.1.0-beta.0","@storybook/addon-links":"8.1.0-beta.0","@storybook/addon-mdx-gfm":"8.1.0-beta.0","@storybook/addon-measure":"8.1.0-beta.0","@storybook/addon-onboarding":"8.1.0-beta.0","@storybook/addon-outline":"8.1.0-beta.0","@storybook/addon-storysource":"8.1.0-beta.0","@storybook/addon-themes":"8.1.0-beta.0","@storybook/addon-toolbars":"8.1.0-beta.0","@storybook/addon-viewport":"8.1.0-beta.0","@storybook/angular":"8.1.0-beta.0","@storybook/blocks":"8.1.0-beta.0","@storybook/builder-manager":"8.1.0-beta.0","@storybook/builder-vite":"8.1.0-beta.0","@storybook/builder-webpack5":"8.1.0-beta.0","@storybook/channels":"8.1.0-beta.0","@storybook/cli":"8.1.0-beta.0","@storybook/client-logger":"8.1.0-beta.0","@storybook/codemod":"8.1.0-beta.0","@storybook/components":"8.1.0-beta.0","@storybook/core-common":"8.1.0-beta.0","@storybook/core-events":"8.1.0-beta.0","@storybook/core-server":"8.1.0-beta.0","@storybook/core-webpack":"8.1.0-beta.0","@storybook/csf-plugin":"8.1.0-beta.0","@storybook/csf-tools":"8.1.0-beta.0","@storybook/docs-tools":"8.1.0-beta.0","@storybook/ember":"8.1.0-beta.0","@storybook/html":"8.1.0-beta.0","@storybook/html-vite":"8.1.0-beta.0","@storybook/html-webpack5":"8.1.0-beta.0","@storybook/instrumenter":"8.1.0-beta.0","@storybook/manager":"8.1.0-beta.0","@storybook/manager-api":"8.1.0-beta.0","@storybook/nextjs":"8.1.0-beta.0","@storybook/node-logger":"8.1.0-beta.0","@storybook/preact":"8.1.0-beta.0","@storybook/preact-vite":"8.1.0-beta.0","@storybook/preact-webpack5":"8.1.0-beta.0","@storybook/preset-create-react-app":"8.1.0-beta.0","@storybook/preset-html-webpack":"8.1.0-beta.0","@storybook/preset-preact-webpack":"8.1.0-beta.0","@storybook/preset-react-webpack":"8.1.0-beta.0","@storybook/preset-server-webpack":"8.1.0-beta.0","@storybook/preset-svelte-webpack":"8.1.0-beta.0","@storybook/preset-vue3-webpack":"8.1.0-beta.0","@storybook/preview":"8.1.0-beta.0","@storybook/preview-api":"8.1.0-beta.0","@storybook/react":"8.1.0-beta.0","@storybook/react-dom-shim":"8.1.0-beta.0","@storybook/react-vite":"8.1.0-beta.0","@storybook/react-webpack5":"8.1.0-beta.0","@storybook/router":"8.1.0-beta.0","@storybook/server":"8.1.0-beta.0","@storybook/server-webpack5":"8.1.0-beta.0","@storybook/source-loader":"8.1.0-beta.0","@storybook/svelte":"8.1.0-beta.0","@storybook/svelte-vite":"8.1.0-beta.0","@storybook/svelte-webpack5":"8.1.0-beta.0","@storybook/sveltekit":"8.1.0-beta.0","@storybook/telemetry":"8.1.0-beta.0","@storybook/test":"8.1.0-beta.0","@storybook/theming":"8.1.0-beta.0","@storybook/types":"8.1.0-beta.0","@storybook/vue3":"8.1.0-beta.0","@storybook/vue3-vite":"8.1.0-beta.0","@storybook/vue3-webpack5":"8.1.0-beta.0","@storybook/web-components":"8.1.0-beta.0","@storybook/web-components-vite":"8.1.0-beta.0","@storybook/web-components-webpack5":"8.1.0-beta.0",sb:"8.1.0-beta.0",storybook:"8.1.0-beta.0"};function parseList(str){return str.split(",").map(item=>item.trim()).filter(item=>item.length>0)}async function getCoercedStorybookVersion(packageManager){return(await Promise.all(Object.keys(rendererPackages).map(async pkg=>({name:pkg,version:await packageManager.getPackageVersion(pkg)})))).filter(({version})=>!!version)[0]?.version}function getEnvConfig(program,configEnv){Object.keys(configEnv).forEach(fieldName=>{let envVarName=configEnv[fieldName],envVarValue=process.env[envVarName];envVarValue&&(program[fieldName]=envVarValue)})}var createLogStream=async(logFileName="storybook.log")=>{let finalLogPath=(0,import_path7.join)(process.cwd(),logFileName),temporaryLogPath=import_tempy.default.file({name:logFileName}),logStream=(0,import_fs_extra2.createWriteStream)(temporaryLogPath,{encoding:"utf8"});return new Promise((resolve,reject)=>{logStream.once("open",()=>{resolve({logStream,moveLogFile:async()=>(0,import_fs_extra2.move)(temporaryLogPath,finalLogPath,{overwrite:!0}),clearLogFile:async()=>(0,import_fs_extra2.writeFile)(temporaryLogPath,""),removeLogFile:async()=>(0,import_fs_extra2.remove)(temporaryLogPath),readLogFile:async()=>(0,import_fs_extra2.readFile)(temporaryLogPath,"utf8")})}),logStream.once("error",reject)})},isCorePackage=pkg=>Object.keys(versions_default).includes(pkg);var import_node_logger3=require("@storybook/node-logger"),predicateFor=addon=>entry=>{let name=entry.name||entry;return name&&name.replaceAll(/(\\){1,2}/g,"/").includes(addon)},isCorrectOrder=(addons,before,after)=>{let essentialsIndex=addons.findIndex(predicateFor("@storybook/addon-essentials")),beforeIndex=addons.findIndex(predicateFor(before.name)),afterIndex=addons.findIndex(predicateFor(after.name));return beforeIndex===-1&&before.inEssentials&&(beforeIndex=essentialsIndex),afterIndex===-1&&after.inEssentials&&(afterIndex=essentialsIndex),beforeIndex!==-1&&afterIndex!==-1&&beforeIndex<=afterIndex},checkAddonOrder=async({before,after,configFile,getConfig})=>{try{let config=await getConfig(configFile);if(!config?.addons){import_node_logger3.logger.warn("Unable to find 'addons' config in main Storybook config");return}if(!isCorrectOrder(config.addons,before,after)){let orEssentials=" (or '@storybook/addon-essentials')",beforeText=`'${before.name}'${before.inEssentials?orEssentials:""}`,afterText=`'${after.name}'${after.inEssentials?orEssentials:""}`;import_node_logger3.logger.warn(`Expected ${beforeText} to be listed before ${afterText} in main Storybook config.`)}}catch{import_node_logger3.logger.warn(`Unable to load config file: ${configFile}`)}};var import_lazy_universal_dotenv=require("lazy-universal-dotenv");var import_path8=__toESM(require("path")),import_find_up=__toESM(require("find-up")),getProjectRoot=()=>{let result;if(process.env.STORYBOOK_PROJECT_ROOT)return process.env.STORYBOOK_PROJECT_ROOT;try{let found=import_find_up.default.sync(".git",{type:"directory"});found&&(result=import_path8.default.join(found,".."))}catch{}try{let found=import_find_up.default.sync(".svn",{type:"directory"});found&&(result=result||import_path8.default.join(found,".."))}catch{}try{let found=import_find_up.default.sync(".hg",{type:"directory"});found&&(result=result||import_path8.default.join(found,".."))}catch{}try{let splitDirname=__dirname.split("node_modules");result=result||(splitDirname.length>=2?splitDirname[0]:void 0)}catch{}try{let found=import_find_up.default.sync(".yarn",{type:"directory"});found&&(result=result||import_path8.default.join(found,".."))}catch{}return result||process.cwd()},nodePathsToArray=nodePath=>nodePath.split(process.platform==="win32"?";":":").filter(Boolean).map(p=>import_path8.default.resolve("./",p)),relativePattern=/^\.{1,2}([/\\]|$)/;function normalizeStoryPath(filename){return relativePattern.test(filename)?filename:`.${import_path8.default.sep}${filename}`}function loadEnvs(options={}){let defaultNodeEnv=options.production?"production":"development",env={NODE_ENV:process.env.NODE_ENV||defaultNodeEnv,NODE_PATH:process.env.NODE_PATH||"",STORYBOOK:process.env.STORYBOOK||"true",PUBLIC_URL:options.production?".":""};Object.keys(process.env).filter(name=>/^STORYBOOK_/.test(name)).forEach(name=>{env[name]=process.env[name]});let base=Object.entries(env).reduce((acc,[k,v])=>Object.assign(acc,{[k]:JSON.stringify(v)}),{}),{stringified,raw}=(0,import_lazy_universal_dotenv.getEnvironment)({nodeEnv:env.NODE_ENV}),fullRaw={...env,...raw};return fullRaw.NODE_PATH=nodePathsToArray(fullRaw.NODE_PATH||""),{stringified:{...base,...stringified},raw:fullRaw}}var stringifyEnvs=raw=>Object.entries(raw).reduce((acc,[key,value])=>(acc[key]=JSON.stringify(value),acc),{}),stringifyProcessEnvs=raw=>Object.entries(raw).reduce((acc,[key,value])=>(acc[`process.env.${key}`]=JSON.stringify(value),acc),{});var NODE_MODULES_RE=/node_modules/,commonGlobOptions=glob2=>NODE_MODULES_RE.test(glob2)?{}:{ignore:["**/node_modules/**"]};var frameworkToRenderer={angular:"angular",ember:"ember","html-vite":"html","html-webpack5":"html",nextjs:"react","preact-vite":"preact","preact-webpack5":"preact",qwik:"qwik","react-vite":"react","react-webpack5":"react","server-webpack5":"server",solid:"solid","svelte-vite":"svelte","svelte-webpack5":"svelte",sveltekit:"svelte","vue3-vite":"vue3","vue3-webpack5":"vue3","web-components-vite":"web-components","web-components-webpack5":"web-components",html:"html",preact:"preact","react-native":"react-native",react:"react",server:"server",svelte:"svelte",vue3:"vue3","web-components":"web-components"};async function getBuilderOptions(options){let framework=await options.presets.apply("framework",{},options);if(typeof framework!="string"&&framework?.options?.builder)return framework.options.builder;let{builder}=await options.presets.apply("core",{},options);return typeof builder!="string"&&builder?.options?builder.options:{}}var import_ts_dedent3=require("ts-dedent");var import_path9=__toESM(require("path"));function normalizePath2(p){return import_path9.default.posix.normalize(p.replace(/\\/g,"/"))}async function getFrameworkName(options){let framework=await options.presets.apply("framework","",options);if(!framework)throw new Error(import_ts_dedent3.dedent`
13
13
  You must specify a framework in '.storybook/main.js' config.
14
14
 
15
15
  https://github.com/storybookjs/storybook/blob/next/MIGRATION.md#framework-field-mandatory
@@ -47,4 +47,8 @@ An error occurred while installing dependencies:`),logger7.log(e.message),new Ha
47
47
 
48
48
  Please check the logfile generated at ./storybook.log for troubleshooting and try again.`)}await removeLogFile()}async runRemoveDeps(dependencies){let args=[...dependencies];await this.executeCommand({command:"yarn",args:["remove",...this.getInstallArgs(),...args],stdio:"inherit"})}async runGetVersions(packageName,fetchAllVersions){let args=[fetchAllVersions?"versions":"version","--json"],commandResult=await this.executeCommand({command:"yarn",args:["info",packageName,...args]});try{let parsedOutput=JSON.parse(commandResult);if(parsedOutput.type==="inspect")return parsedOutput.data;throw new Error(`Unable to find versions of ${packageName} using yarn`)}catch{throw new Error(`Unable to find versions of ${packageName} using yarn`)}}mapDependencies(input,pattern){if(input.type==="tree"){let{trees}=input.data,acc={},existingVersions={},duplicatedDependencies={},recurse=tree=>{let{children}=tree,{name,value}=parsePackageData(tree.name);!name||!pattern.some(p=>new RegExp(`^${p.replace(/\*/g,".*")}$`).test(name))||(existingVersions[name]?.includes(value.version)||(acc[name]?acc[name].push(value):acc[name]=[value],existingVersions[name]=[...existingVersions[name]||[],value.version],existingVersions[name].length>1&&(duplicatedDependencies[name]=existingVersions[name])),children.forEach(recurse))};return trees.forEach(recurse),{dependencies:acc,duplicatedDependencies,infoCommand:"yarn why",dedupeCommand:"yarn dedupe"}}throw new Error("Something went wrong while parsing yarn output")}parseErrorFromLogs(logs){let finalMessage="YARN1 error",match=logs.match(YARN1_ERROR_REGEX);if(match){let errorMessage=match[0]?.replace(/^error\s(.*)$/,"$1");errorMessage&&(finalMessage=`${finalMessage}: ${errorMessage}`)}return finalMessage.trim()}};var NPM_LOCKFILE="package-lock.json",PNPM_LOCKFILE="pnpm-lock.yaml",YARN_LOCKFILE="yarn.lock",JsPackageManagerFactory=class{static getPackageManager({force}={},cwd){if(force&&force in this.PROXY_MAP)return new this.PROXY_MAP[force]({cwd});let closestLockfilePath=(0,import_find_up7.sync)([YARN_LOCKFILE,PNPM_LOCKFILE,NPM_LOCKFILE],{cwd}),closestLockfile=closestLockfilePath&&import_node_path.default.basename(closestLockfilePath),hasNPMCommand=hasNPM(cwd),hasPNPMCommand=hasPNPM(cwd),yarnVersion=getYarnVersion(cwd);if(yarnVersion&&(closestLockfile===YARN_LOCKFILE||!hasNPMCommand&&!hasPNPMCommand))return yarnVersion===1?new Yarn1Proxy({cwd}):new Yarn2Proxy({cwd});if(hasPNPMCommand&&closestLockfile===PNPM_LOCKFILE)return new PNPMProxy({cwd});if(hasNPMCommand&&closestLockfile===NPM_LOCKFILE)return new NPMProxy({cwd});let inferredPackageManager=this.inferPackageManagerFromUserAgent();if(inferredPackageManager&&inferredPackageManager in this.PROXY_MAP)return new this.PROXY_MAP[inferredPackageManager]({cwd});if(hasNPMCommand)return new NPMProxy({cwd});throw new Error("Unable to find a usable package manager within NPM, PNPM, Yarn and Yarn 2")}static{this.PROXY_MAP={npm:NPMProxy,pnpm:PNPMProxy,yarn1:Yarn1Proxy,yarn2:Yarn2Proxy}}static inferPackageManagerFromUserAgent(){let userAgent=process.env.npm_config_user_agent;if(userAgent){let packageSpec=userAgent.split(" ")[0],[pkgMgrName,pkgMgrVersion]=packageSpec.split("/");if(pkgMgrName==="pnpm")return"pnpm";if(pkgMgrName==="npm")return"npm";if(pkgMgrName==="yarn")return`yarn${pkgMgrVersion?.startsWith("1.")?"1":"2"}`}}};function hasNPM(cwd){return(0,import_cross_spawn.sync)("npm",["--version"],{cwd,shell:!0}).status===0}function hasPNPM(cwd){return(0,import_cross_spawn.sync)("pnpm",["--version"],{cwd,shell:!0}).status===0}function getYarnVersion(cwd){let yarnVersionCommand=(0,import_cross_spawn.sync)("yarn",["--version"],{cwd,shell:!0});if(yarnVersionCommand.status!==0)return;let yarnVersion=yarnVersionCommand.output.toString().replace(/,/g,"").replace(/"/g,"");return/^1\.+/.test(yarnVersion)?1:2}var logger9=console;async function removeAddon(addon,options={}){let{packageManager:pkgMgr}=options,packageManager=JsPackageManagerFactory.getPackageManager({force:pkgMgr}),packageJson=await packageManager.retrievePackageJson(),{mainConfig,configDir}=getStorybookInfo(packageJson);if(typeof configDir>"u")throw new Error(import_ts_dedent11.default`
49
49
  Unable to find storybook config directory
50
- `);if(!mainConfig){logger9.error("Unable to find storybook main.js config");return}let main=await(0,import_csf_tools.readConfig)(mainConfig);logger9.log(`Uninstalling ${addon}`),await packageManager.removeDependencies({packageJson},[addon]),logger9.log(`Removing '${addon}' from main.js addons field.`);try{main.removeEntryFromArray(["addons"],addon),await(0,import_csf_tools.writeConfig)(main)}catch{logger9.warn(`Failed to remove '${addon}' from main.js addons field.`)}}function isPreservingSymlinks(){let{NODE_OPTIONS,NODE_PRESERVE_SYMLINKS}=process.env;return!!NODE_PRESERVE_SYMLINKS||NODE_OPTIONS?.includes("--preserve-symlinks")}var import_path20=__toESM(require("path")),import_pkg_dir=require("pkg-dir"),import_fs7=__toESM(require("fs")),interpolate2=(string,data={})=>Object.entries(data).reduce((acc,[k,v])=>acc.replace(new RegExp(`%${k}%`,"g"),v),string);function getPreviewBodyTemplate(configDirPath,interpolations){let base=import_fs7.default.readFileSync(`${(0,import_pkg_dir.sync)(__dirname)}/templates/base-preview-body.html`,"utf8"),bodyHtmlPath=import_path20.default.resolve(configDirPath,"preview-body.html"),result=base;return import_fs7.default.existsSync(bodyHtmlPath)&&(result=import_fs7.default.readFileSync(bodyHtmlPath,"utf8")+result),interpolate2(result,interpolations)}function getPreviewHeadTemplate(configDirPath,interpolations){let base=import_fs7.default.readFileSync(`${(0,import_pkg_dir.sync)(__dirname)}/templates/base-preview-head.html`,"utf8"),headHtmlPath=import_path20.default.resolve(configDirPath,"preview-head.html"),result=base;return import_fs7.default.existsSync(headHtmlPath)&&(result+=import_fs7.default.readFileSync(headHtmlPath,"utf8")),interpolate2(result,interpolations)}var import_path21=require("path"),import_server_errors5=require("@storybook/core-events/server-errors");var renderers=["html","preact","react","server","svelte","vue","vue3","web-components"],rendererNames=[...renderers,...renderers.map(renderer=>`@storybook/${renderer}`)];function validateFrameworkName(frameworkName){if(!frameworkName)throw new import_server_errors5.MissingFrameworkFieldError;if(rendererNames.includes(frameworkName))throw new import_server_errors5.InvalidFrameworkNameError({frameworkName});if(!Object.keys(frameworkPackages).includes(frameworkName))try{require.resolve((0,import_path21.join)(frameworkName,"preset"))}catch{throw new import_server_errors5.CouldNotEvaluateFrameworkError({frameworkName})}}function satisfies2(){return x=>x}0&&(module.exports={HandledError,JsPackageManager,JsPackageManagerFactory,boost,builderPackages,cache,checkAddonOrder,codeLog,commandLog,commonGlobOptions,createFileSystemCache,createLogStream,extractProperFrameworkName,extractProperRendererNameFromFramework,filterPresetsConfig,findConfigFile,frameworkPackages,frameworkToRenderer,getAutoRefs,getBuilderOptions,getChars,getCoercedStorybookVersion,getConfigInfo,getDirectoryFromWorkingDir,getEnvConfig,getFrameworkName,getInterpretedFile,getInterpretedFileWithExt,getPackageDetails,getPresets,getPreviewBodyTemplate,getPreviewHeadTemplate,getProjectRoot,getRefs,getRendererName,getStorybookConfiguration,getStorybookInfo,globToRegexp,handlebars,interopRequireDefault,interpolate,isCorePackage,isPreservingSymlinks,loadAllPresets,loadCustomPresets,loadEnvs,loadMainConfig,loadManagerOrAddonsFile,loadPreset,loadPreviewOrConfigFile,logConfig,nodePathsToArray,normalizeStories,normalizeStoriesEntry,normalizeStoryPath,paddedLog,parseList,readTemplate,removeAddon,rendererPackages,resolveAddonName,resolvePathInStorybookCache,satisfies,serverRequire,serverResolve,stringifyEnvs,stringifyProcessEnvs,stripAbsNodeModulesPath,validateConfigurationFiles,validateFrameworkName,versions});
50
+ `);if(!mainConfig){logger9.error("Unable to find storybook main.js config");return}let main=await(0,import_csf_tools.readConfig)(mainConfig);logger9.log(`Uninstalling ${addon}`),await packageManager.removeDependencies({packageJson},[addon]),logger9.log(`Removing '${addon}' from main.js addons field.`);try{main.removeEntryFromArray(["addons"],addon),await(0,import_csf_tools.writeConfig)(main)}catch{logger9.warn(`Failed to remove '${addon}' from main.js addons field.`)}}function isPreservingSymlinks(){let{NODE_OPTIONS,NODE_PRESERVE_SYMLINKS}=process.env;return!!NODE_PRESERVE_SYMLINKS||NODE_OPTIONS?.includes("--preserve-symlinks")}var import_path20=__toESM(require("path")),import_pkg_dir=require("pkg-dir"),import_fs7=__toESM(require("fs")),interpolate2=(string,data={})=>Object.entries(data).reduce((acc,[k,v])=>acc.replace(new RegExp(`%${k}%`,"g"),v),string);function getPreviewBodyTemplate(configDirPath,interpolations){let base=import_fs7.default.readFileSync(`${(0,import_pkg_dir.sync)(__dirname)}/templates/base-preview-body.html`,"utf8"),bodyHtmlPath=import_path20.default.resolve(configDirPath,"preview-body.html"),result=base;return import_fs7.default.existsSync(bodyHtmlPath)&&(result=import_fs7.default.readFileSync(bodyHtmlPath,"utf8")+result),interpolate2(result,interpolations)}function getPreviewHeadTemplate(configDirPath,interpolations){let base=import_fs7.default.readFileSync(`${(0,import_pkg_dir.sync)(__dirname)}/templates/base-preview-head.html`,"utf8"),headHtmlPath=import_path20.default.resolve(configDirPath,"preview-head.html"),result=base;return import_fs7.default.existsSync(headHtmlPath)&&(result+=import_fs7.default.readFileSync(headHtmlPath,"utf8")),interpolate2(result,interpolations)}var import_path21=require("path"),import_server_errors5=require("@storybook/core-events/server-errors");var renderers=["html","preact","react","server","svelte","vue","vue3","web-components"],rendererNames=[...renderers,...renderers.map(renderer=>`@storybook/${renderer}`)];function validateFrameworkName(frameworkName){if(!frameworkName)throw new import_server_errors5.MissingFrameworkFieldError;if(rendererNames.includes(frameworkName))throw new import_server_errors5.InvalidFrameworkNameError({frameworkName});if(!Object.keys(frameworkPackages).includes(frameworkName))try{require.resolve((0,import_path21.join)(frameworkName,"preset"))}catch{throw new import_server_errors5.CouldNotEvaluateFrameworkError({frameworkName})}}function satisfies2(){return x=>x}var import_semver2=__toESM(require("semver")),import_ts_dedent12=__toESM(require("ts-dedent")),prettierInstance,prettierVersion=null,getPrettier=async()=>{if(!prettierInstance)try{return prettierInstance=await import("prettier"),prettierVersion=prettierInstance?.version?import_semver2.default.major(prettierInstance.version):null,{version:prettierVersion,instance:prettierInstance}}catch{return{instance:void 0,version:null}}return{instance:prettierInstance,version:prettierVersion}};async function formatFileContent(filePath,content){try{let prettier=await getPrettier();switch(prettier.version){case 2:case 3:let config=await prettier.instance.resolveConfig(filePath);return!config||Object.keys(config).length===0?await formatWithEditorConfig(filePath,content):await prettier.instance.format(content,{...config,filepath:filePath});case null:case void 0:return await formatWithEditorConfig(filePath,content);default:return console.warn(import_ts_dedent12.default`
51
+ Your prettier version ${prettier.version} is not supported to format files which were edited by Storybook.
52
+ Please raise an issue on the Storybook GitHub repository.
53
+ Falling back to EditorConfig settings, if available.
54
+ `),await formatWithEditorConfig(filePath,content)}}catch{return content}}async function formatWithEditorConfig(filePath,content){let prettier=await import("prettier-fallback"),config=await prettier.resolveConfig(filePath,{editorconfig:!0});return!config||Object.keys(config).length===0?content:prettier.format(content,{...config,filepath:filePath})}0&&(module.exports={HandledError,JsPackageManager,JsPackageManagerFactory,boost,builderPackages,cache,checkAddonOrder,codeLog,commandLog,commonGlobOptions,createFileSystemCache,createLogStream,extractProperFrameworkName,extractProperRendererNameFromFramework,filterPresetsConfig,findConfigFile,formatFileContent,frameworkPackages,frameworkToRenderer,getAutoRefs,getBuilderOptions,getChars,getCoercedStorybookVersion,getConfigInfo,getDirectoryFromWorkingDir,getEnvConfig,getFrameworkName,getInterpretedFile,getInterpretedFileWithExt,getPackageDetails,getPresets,getPreviewBodyTemplate,getPreviewHeadTemplate,getProjectRoot,getRefs,getRendererName,getStorybookConfiguration,getStorybookInfo,globToRegexp,handlebars,interopRequireDefault,interpolate,isCorePackage,isPreservingSymlinks,loadAllPresets,loadCustomPresets,loadEnvs,loadMainConfig,loadManagerOrAddonsFile,loadPreset,loadPreviewOrConfigFile,logConfig,nodePathsToArray,normalizeStories,normalizeStoriesEntry,normalizeStoryPath,paddedLog,parseList,readTemplate,removeAddon,rendererPackages,resolveAddonName,resolvePathInStorybookCache,satisfies,serverRequire,serverResolve,stringifyEnvs,stringifyProcessEnvs,stripAbsNodeModulesPath,validateConfigurationFiles,validateFrameworkName,versions});
package/dist/index.mjs CHANGED
@@ -21,7 +21,7 @@ import { readConfig, writeConfig } from '@storybook/csf-tools';
21
21
  import { sync as sync$2 } from 'cross-spawn';
22
22
  import sort from 'semver/functions/sort';
23
23
  import { platform } from 'os';
24
- import { satisfies, gt } from 'semver';
24
+ import semver, { satisfies, gt } from 'semver';
25
25
  import { sync, command } from 'execa';
26
26
  import invariant from 'tiny-invariant';
27
27
  import { ZipOpenFS, VirtualFS, PosixFS } from '@yarnpkg/fslib';
@@ -39,7 +39,7 @@ var __require=(x=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(x,{get:(
39
39
  `),!mainConfigPath)throw new MainFileMissingError({location:configDir})}function loadCustomPresets({configDir}){validateConfigurationFiles(configDir);let presets=serverRequire(path6.resolve(configDir,"presets"));if(serverRequire(path6.resolve(configDir,"main"))){let resolved=serverResolve(path6.resolve(configDir,"main"));if(resolved)return [resolved]}return presets||[]}var safeResolveFrom=(path19,file)=>{try{return resolveFrom(path19,file)}catch{return}},safeResolve=file=>{try{return __require.resolve(file)}catch{return}};function normalizePath(id){return path6.posix.normalize(slash(id))}function stripAbsNodeModulesPath(absPath){let splits=absPath.split(`node_modules${path6.sep}`);return normalizePath(splits[splits.length-1])}var isObject=val=>val!=null&&typeof val=="object"&&Array.isArray(val)===!1,isFunction=val=>typeof val=="function";function filterPresetsConfig(presetsConfig){return presetsConfig.filter(preset=>{let presetName=typeof preset=="string"?preset:preset.name;return !/@storybook[\\\\/]preset-typescript/.test(presetName)})}function resolvePathToMjs(filePath){let{dir,name}=parse(filePath),mjsPath=join(dir,`${name}.mjs`);return safeResolve(mjsPath)?mjsPath:filePath}function resolvePresetFunction(input,presetOptions,storybookOptions){return isFunction(input)?[...input({...storybookOptions,...presetOptions})]:Array.isArray(input)?[...input]:[]}var resolveAddonName=(configDir,name,options)=>{let resolve=name.startsWith("/")?safeResolve:safeResolveFrom.bind(null,configDir),resolved=resolve(name);if(resolved){let{dir:fdir,name:fname}=parse(resolved);if(name.match(/\/(manager|register(-panel)?)(\.(js|mjs|ts|tsx|jsx))?$/))return {type:"virtual",name,managerEntries:[resolvePathToMjs(join(fdir,fname))]};if(name.match(/\/(preset)(\.(js|mjs|ts|tsx|jsx))?$/))return {type:"presets",name:resolved}}let checkExists=exportName=>{if(resolve(`${name}${exportName}`))return `${name}${exportName}`},absolutizeExport=(exportName,preferMJS)=>{let found=resolve(`${name}${exportName}`);if(found)return preferMJS?resolvePathToMjs(found):found},managerFile=absolutizeExport("/manager",!0),registerFile=absolutizeExport("/register",!0)||absolutizeExport("/register-panel",!0),previewFile=checkExists("/preview"),previewFileAbsolute=absolutizeExport("/preview",!0),presetFile=absolutizeExport("/preset",!1);if(!(managerFile||previewFile)&&presetFile)return {type:"presets",name:presetFile};if(managerFile||registerFile||previewFile||presetFile){let managerEntries=[];return managerFile&&managerEntries.push(managerFile),!managerFile&&registerFile&&!presetFile&&managerEntries.push(registerFile),{type:"virtual",name,...managerEntries.length?{managerEntries}:{},...previewFile?{previewAnnotations:[previewFileAbsolute?{bare:previewFile.includes("node_modules")?stripAbsNodeModulesPath(previewFile):previewFile,absolute:previewFileAbsolute}:previewFile]}:{},...presetFile?{presets:[{name:presetFile,options}]}:{}}}if(resolved)return {type:"presets",name:resolved}},map=({configDir})=>item=>{let options=isObject(item)&&item.options||void 0,name=isObject(item)?item.name:item,resolved;try{resolved=resolveAddonName(configDir,name,options);}catch{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/
40
40
  ${item}`);return}if(!resolved){logger.warn(`Could not resolve addon "${name}", skipping. Is it installed?`);return}return {...options?{options}:{},...resolved}};async function getContent(input){if(input.type==="virtual"){let{type,name:name2,...rest}=input;return rest}let name=input.name?input.name:input;return interopRequireDefault(name)}async function loadPreset(input,level,storybookOptions){let presetName=input.name?input.name:input;try{let presetOptions=input.options?input.options:{},contents=await getContent(input);if(typeof contents=="function"&&(contents=contents(storybookOptions,presetOptions)),Array.isArray(contents))return await loadPresets(contents,level+1,storybookOptions);if(isObject(contents)){let{addons:addonsInput=[],presets:presetsInput=[],...rest}=contents,filter=i=>!0;storybookOptions.isCritical!==!0&&(storybookOptions.build?.test?.disabledAddons?.length||0)>0&&(filter=i=>{let name=i.name?i.name:i;return !storybookOptions.build?.test?.disabledAddons?.find(n=>name.includes(n))});let subPresets=resolvePresetFunction(presetsInput,presetOptions,storybookOptions).filter(filter),subAddons=resolvePresetFunction(addonsInput,presetOptions,storybookOptions).filter(filter);return [...await loadPresets([...subPresets],level+1,storybookOptions),...await loadPresets([...subAddons.map(map(storybookOptions))].filter(Boolean),level+1,storybookOptions),{name:presetName,preset:rest,options:presetOptions}]}throw new Error(dedent`
41
41
  ${input} is not a valid preset
42
- `)}catch(error){if(storybookOptions?.isCritical)throw new CriticalPresetLoadError({error,presetName});let warning=level>0?` Failed to load preset: ${JSON.stringify(input)} on level ${level}`:` Failed to load preset: ${JSON.stringify(input)}`;return logger.warn(warning),logger.error(error),[]}}async function loadPresets(presets,level,storybookOptions){return !presets||!Array.isArray(presets)||!presets.length?[]:(await Promise.all(presets.map(async preset=>loadPreset(preset,level,storybookOptions)))).reduce((acc,loaded)=>acc.concat(loaded),[])}function applyPresets(presets,extension,config,args,storybookOptions){let presetResult=new Promise(res=>res(config));return presets.length?presets.reduce((accumulationPromise,{preset,options})=>{let change=preset[extension];if(!change)return accumulationPromise;if(typeof change=="function"){let extensionFn=change,context={preset,combinedOptions:{...storybookOptions,...args,...options,presetsList:presets,presets:{apply:async(ext,c,a={})=>applyPresets(presets,ext,c,a,storybookOptions)}}};return accumulationPromise.then(newConfig=>extensionFn.call(context.preset,newConfig,context.combinedOptions))}return accumulationPromise.then(newConfig=>Array.isArray(newConfig)&&Array.isArray(change)?[...newConfig,...change]:isObject(newConfig)&&isObject(change)?{...newConfig,...change}:change)},presetResult):presetResult}async function getPresets(presets,storybookOptions){let loadedPresets=await loadPresets(presets,0,storybookOptions);return {apply:async(extension,config,args={})=>applyPresets(loadedPresets,extension,config,args,storybookOptions)}}async function loadAllPresets(options){let{corePresets=[],overridePresets=[],...restOptions}=options,presetsConfig=[...corePresets,...loadCustomPresets(options),...overridePresets],filteredPresetConfig=filterPresetsConfig(presetsConfig);return filteredPresetConfig.length<presetsConfig.length&&logger.warn("Storybook now supports TypeScript natively. You can safely remove `@storybook/preset-typescript`."),getPresets(filteredPresetConfig,restOptions)}function createFileSystemCache(options){return Cache(options)}function resolvePathInStorybookCache(fileOrDirectoryName,sub="default"){let cacheDirectory=findCacheDirectory({name:"storybook"});return cacheDirectory||=path6.join(process.cwd(),".cache","storybook"),path6.join(cacheDirectory,sub,fileOrDirectoryName)}var cache=createFileSystemCache({basePath:resolvePathInStorybookCache("dev-server"),ns:"storybook"});function getStorybookConfiguration(storybookScript,shortName,longName){if(!storybookScript)return null;let parts=storybookScript.split(/[\s='"]+/),index=parts.indexOf(longName);return index===-1&&(index=parts.indexOf(shortName)),index===-1?null:parts[index+1]}var rendererPackages={"@storybook/react":"react","@storybook/vue3":"vue3","@storybook/angular":"angular","@storybook/html":"html","@storybook/web-components":"web-components","@storybook/polymer":"polymer","@storybook/ember":"ember","@storybook/svelte":"svelte","@storybook/preact":"preact","@storybook/server":"server","storybook-framework-qwik":"qwik","storybook-solidjs":"solid","@storybook/vue":"vue"},frameworkPackages={"@storybook/angular":"angular","@storybook/ember":"ember","@storybook/html-vite":"html-vite","@storybook/html-webpack5":"html-webpack5","@storybook/nextjs":"nextjs","@storybook/preact-vite":"preact-vite","@storybook/preact-webpack5":"preact-webpack5","@storybook/react-vite":"react-vite","@storybook/react-webpack5":"react-webpack5","@storybook/server-webpack5":"server-webpack5","@storybook/svelte-vite":"svelte-vite","@storybook/svelte-webpack5":"svelte-webpack5","@storybook/sveltekit":"sveltekit","@storybook/vue3-vite":"vue3-vite","@storybook/vue3-webpack5":"vue3-webpack5","@storybook/web-components-vite":"web-components-vite","@storybook/web-components-webpack5":"web-components-webpack5","storybook-framework-qwik":"qwik","storybook-solidjs-vite":"solid"},builderPackages=["@storybook/builder-webpack5","@storybook/builder-vite"],logger2=console,findDependency=({dependencies,devDependencies,peerDependencies},predicate)=>[Object.entries(dependencies||{}).find(predicate),Object.entries(devDependencies||{}).find(predicate),Object.entries(peerDependencies||{}).find(predicate)],getRendererInfo=packageJson=>{let[dep,devDep,peerDep]=findDependency(packageJson,([key])=>rendererPackages[key]),[pkg,version]=dep||devDep||peerDep||[];return dep&&devDep&&dep[0]===devDep[0]&&logger2.warn(`Found "${dep[0]}" in both "dependencies" and "devDependencies". This is probably a mistake.`),dep&&peerDep&&dep[0]===peerDep[0]&&logger2.warn(`Found "${dep[0]}" in both "dependencies" and "peerDependencies". This is probably a mistake.`),{version,frameworkPackage:pkg}},validConfigExtensions=["ts","js","tsx","jsx","mjs","cjs"],findConfigFile=(prefix,configDir)=>{let filePrefix=path6.join(configDir,prefix),extension=validConfigExtensions.find(ext=>fse.existsSync(`${filePrefix}.${ext}`));return extension?`${filePrefix}.${extension}`:null},getConfigInfo=(packageJson,configDir)=>{let storybookConfigDir=configDir??".storybook",storybookScript=packageJson.scripts?.storybook;if(storybookScript&&!configDir){let configParam=getStorybookConfiguration(storybookScript,"-c","--config-dir");configParam&&(storybookConfigDir=configParam);}return {configDir:storybookConfigDir,mainConfig:findConfigFile("main",storybookConfigDir),previewConfig:findConfigFile("preview",storybookConfigDir),managerConfig:findConfigFile("manager",storybookConfigDir)}},getStorybookInfo=(packageJson,configDir)=>{let rendererInfo=getRendererInfo(packageJson),configInfo=getConfigInfo(packageJson,configDir);return {...rendererInfo,...configInfo}};var versions_default={"@storybook/addon-a11y":"8.1.0-alpha.7","@storybook/addon-actions":"8.1.0-alpha.7","@storybook/addon-backgrounds":"8.1.0-alpha.7","@storybook/addon-controls":"8.1.0-alpha.7","@storybook/addon-docs":"8.1.0-alpha.7","@storybook/addon-essentials":"8.1.0-alpha.7","@storybook/addon-highlight":"8.1.0-alpha.7","@storybook/addon-interactions":"8.1.0-alpha.7","@storybook/addon-jest":"8.1.0-alpha.7","@storybook/addon-links":"8.1.0-alpha.7","@storybook/addon-mdx-gfm":"8.1.0-alpha.7","@storybook/addon-measure":"8.1.0-alpha.7","@storybook/addon-onboarding":"8.1.0-alpha.7","@storybook/addon-outline":"8.1.0-alpha.7","@storybook/addon-storysource":"8.1.0-alpha.7","@storybook/addon-themes":"8.1.0-alpha.7","@storybook/addon-toolbars":"8.1.0-alpha.7","@storybook/addon-viewport":"8.1.0-alpha.7","@storybook/angular":"8.1.0-alpha.7","@storybook/blocks":"8.1.0-alpha.7","@storybook/builder-manager":"8.1.0-alpha.7","@storybook/builder-vite":"8.1.0-alpha.7","@storybook/builder-webpack5":"8.1.0-alpha.7","@storybook/channels":"8.1.0-alpha.7","@storybook/cli":"8.1.0-alpha.7","@storybook/client-logger":"8.1.0-alpha.7","@storybook/codemod":"8.1.0-alpha.7","@storybook/components":"8.1.0-alpha.7","@storybook/core-common":"8.1.0-alpha.7","@storybook/core-events":"8.1.0-alpha.7","@storybook/core-server":"8.1.0-alpha.7","@storybook/core-webpack":"8.1.0-alpha.7","@storybook/csf-plugin":"8.1.0-alpha.7","@storybook/csf-tools":"8.1.0-alpha.7","@storybook/docs-tools":"8.1.0-alpha.7","@storybook/ember":"8.1.0-alpha.7","@storybook/html":"8.1.0-alpha.7","@storybook/html-vite":"8.1.0-alpha.7","@storybook/html-webpack5":"8.1.0-alpha.7","@storybook/instrumenter":"8.1.0-alpha.7","@storybook/manager":"8.1.0-alpha.7","@storybook/manager-api":"8.1.0-alpha.7","@storybook/nextjs":"8.1.0-alpha.7","@storybook/node-logger":"8.1.0-alpha.7","@storybook/preact":"8.1.0-alpha.7","@storybook/preact-vite":"8.1.0-alpha.7","@storybook/preact-webpack5":"8.1.0-alpha.7","@storybook/preset-create-react-app":"8.1.0-alpha.7","@storybook/preset-html-webpack":"8.1.0-alpha.7","@storybook/preset-preact-webpack":"8.1.0-alpha.7","@storybook/preset-react-webpack":"8.1.0-alpha.7","@storybook/preset-server-webpack":"8.1.0-alpha.7","@storybook/preset-svelte-webpack":"8.1.0-alpha.7","@storybook/preset-vue3-webpack":"8.1.0-alpha.7","@storybook/preview":"8.1.0-alpha.7","@storybook/preview-api":"8.1.0-alpha.7","@storybook/react":"8.1.0-alpha.7","@storybook/react-dom-shim":"8.1.0-alpha.7","@storybook/react-vite":"8.1.0-alpha.7","@storybook/react-webpack5":"8.1.0-alpha.7","@storybook/router":"8.1.0-alpha.7","@storybook/server":"8.1.0-alpha.7","@storybook/server-webpack5":"8.1.0-alpha.7","@storybook/source-loader":"8.1.0-alpha.7","@storybook/svelte":"8.1.0-alpha.7","@storybook/svelte-vite":"8.1.0-alpha.7","@storybook/svelte-webpack5":"8.1.0-alpha.7","@storybook/sveltekit":"8.1.0-alpha.7","@storybook/telemetry":"8.1.0-alpha.7","@storybook/test":"8.1.0-alpha.7","@storybook/theming":"8.1.0-alpha.7","@storybook/types":"8.1.0-alpha.7","@storybook/vue3":"8.1.0-alpha.7","@storybook/vue3-vite":"8.1.0-alpha.7","@storybook/vue3-webpack5":"8.1.0-alpha.7","@storybook/web-components":"8.1.0-alpha.7","@storybook/web-components-vite":"8.1.0-alpha.7","@storybook/web-components-webpack5":"8.1.0-alpha.7",sb:"8.1.0-alpha.7",storybook:"8.1.0-alpha.7"};function parseList(str){return str.split(",").map(item=>item.trim()).filter(item=>item.length>0)}async function getCoercedStorybookVersion(packageManager){return (await Promise.all(Object.keys(rendererPackages).map(async pkg=>({name:pkg,version:await packageManager.getPackageVersion(pkg)})))).filter(({version})=>!!version)[0]?.version}function getEnvConfig(program,configEnv){Object.keys(configEnv).forEach(fieldName=>{let envVarName=configEnv[fieldName],envVarValue=process.env[envVarName];envVarValue&&(program[fieldName]=envVarValue);});}var createLogStream=async(logFileName="storybook.log")=>{let finalLogPath=join(process.cwd(),logFileName),temporaryLogPath=tempy.file({name:logFileName}),logStream=createWriteStream(temporaryLogPath,{encoding:"utf8"});return new Promise((resolve,reject)=>{logStream.once("open",()=>{resolve({logStream,moveLogFile:async()=>move(temporaryLogPath,finalLogPath,{overwrite:!0}),clearLogFile:async()=>writeFile(temporaryLogPath,""),removeLogFile:async()=>remove(temporaryLogPath),readLogFile:async()=>readFile(temporaryLogPath,"utf8")});}),logStream.once("error",reject);})},isCorePackage=pkg=>Object.keys(versions_default).includes(pkg);var predicateFor=addon=>entry=>{let name=entry.name||entry;return name&&name.replaceAll(/(\\){1,2}/g,"/").includes(addon)},isCorrectOrder=(addons,before,after)=>{let essentialsIndex=addons.findIndex(predicateFor("@storybook/addon-essentials")),beforeIndex=addons.findIndex(predicateFor(before.name)),afterIndex=addons.findIndex(predicateFor(after.name));return beforeIndex===-1&&before.inEssentials&&(beforeIndex=essentialsIndex),afterIndex===-1&&after.inEssentials&&(afterIndex=essentialsIndex),beforeIndex!==-1&&afterIndex!==-1&&beforeIndex<=afterIndex},checkAddonOrder=async({before,after,configFile,getConfig})=>{try{let config=await getConfig(configFile);if(!config?.addons){logger.warn("Unable to find 'addons' config in main Storybook config");return}if(!isCorrectOrder(config.addons,before,after)){let orEssentials=" (or '@storybook/addon-essentials')",beforeText=`'${before.name}'${before.inEssentials?orEssentials:""}`,afterText=`'${after.name}'${after.inEssentials?orEssentials:""}`;logger.warn(`Expected ${beforeText} to be listed before ${afterText} in main Storybook config.`);}}catch{logger.warn(`Unable to load config file: ${configFile}`);}};var getProjectRoot=()=>{let result;if(process.env.STORYBOOK_PROJECT_ROOT)return process.env.STORYBOOK_PROJECT_ROOT;try{let found=findUp.sync(".git",{type:"directory"});found&&(result=path6.join(found,".."));}catch{}try{let found=findUp.sync(".svn",{type:"directory"});found&&(result=result||path6.join(found,".."));}catch{}try{let found=findUp.sync(".hg",{type:"directory"});found&&(result=result||path6.join(found,".."));}catch{}try{let found=findUp.sync(".yarn",{type:"directory"});found&&(result=result||path6.join(found,".."));}catch{}try{result=result||__dirname.split("node_modules")[0];}catch{}return result||process.cwd()},nodePathsToArray=nodePath=>nodePath.split(process.platform==="win32"?";":":").filter(Boolean).map(p=>path6.resolve("./",p)),relativePattern=/^\.{1,2}([/\\]|$)/;function normalizeStoryPath(filename){return relativePattern.test(filename)?filename:`.${path6.sep}${filename}`}function loadEnvs(options={}){let defaultNodeEnv=options.production?"production":"development",env={NODE_ENV:process.env.NODE_ENV||defaultNodeEnv,NODE_PATH:process.env.NODE_PATH||"",STORYBOOK:process.env.STORYBOOK||"true",PUBLIC_URL:options.production?".":""};Object.keys(process.env).filter(name=>/^STORYBOOK_/.test(name)).forEach(name=>{env[name]=process.env[name];});let base=Object.entries(env).reduce((acc,[k,v])=>Object.assign(acc,{[k]:JSON.stringify(v)}),{}),{stringified,raw}=getEnvironment({nodeEnv:env.NODE_ENV}),fullRaw={...env,...raw};return fullRaw.NODE_PATH=nodePathsToArray(fullRaw.NODE_PATH||""),{stringified:{...base,...stringified},raw:fullRaw}}var stringifyEnvs=raw=>Object.entries(raw).reduce((acc,[key,value])=>(acc[key]=JSON.stringify(value),acc),{}),stringifyProcessEnvs=raw=>Object.entries(raw).reduce((acc,[key,value])=>(acc[`process.env.${key}`]=JSON.stringify(value),acc),{});var NODE_MODULES_RE=/node_modules/,commonGlobOptions=glob2=>NODE_MODULES_RE.test(glob2)?{}:{ignore:["**/node_modules/**"]};var frameworkToRenderer={angular:"angular",ember:"ember","html-vite":"html","html-webpack5":"html",nextjs:"react","preact-vite":"preact","preact-webpack5":"preact",qwik:"qwik","react-vite":"react","react-webpack5":"react","server-webpack5":"server",solid:"solid","svelte-vite":"svelte","svelte-webpack5":"svelte",sveltekit:"svelte","vue3-vite":"vue3","vue3-webpack5":"vue3","web-components-vite":"web-components","web-components-webpack5":"web-components",html:"html",preact:"preact","react-native":"react-native",react:"react",server:"server",svelte:"svelte",vue3:"vue3","web-components":"web-components"};async function getBuilderOptions(options){let framework=await options.presets.apply("framework",{},options);if(typeof framework!="string"&&framework?.options?.builder)return framework.options.builder;let{builder}=await options.presets.apply("core",{},options);return typeof builder!="string"&&builder?.options?builder.options:{}}function normalizePath2(p){return path6.posix.normalize(p.replace(/\\/g,"/"))}async function getFrameworkName(options){let framework=await options.presets.apply("framework","",options);if(!framework)throw new Error(dedent`
42
+ `)}catch(error){if(storybookOptions?.isCritical)throw new CriticalPresetLoadError({error,presetName});let warning=level>0?` Failed to load preset: ${JSON.stringify(input)} on level ${level}`:` Failed to load preset: ${JSON.stringify(input)}`;return logger.warn(warning),logger.error(error),[]}}async function loadPresets(presets,level,storybookOptions){return !presets||!Array.isArray(presets)||!presets.length?[]:(await Promise.all(presets.map(async preset=>loadPreset(preset,level,storybookOptions)))).reduce((acc,loaded)=>acc.concat(loaded),[])}function applyPresets(presets,extension,config,args,storybookOptions){let presetResult=new Promise(res=>res(config));return presets.length?presets.reduce((accumulationPromise,{preset,options})=>{let change=preset[extension];if(!change)return accumulationPromise;if(typeof change=="function"){let extensionFn=change,context={preset,combinedOptions:{...storybookOptions,...args,...options,presetsList:presets,presets:{apply:async(ext,c,a={})=>applyPresets(presets,ext,c,a,storybookOptions)}}};return accumulationPromise.then(newConfig=>extensionFn.call(context.preset,newConfig,context.combinedOptions))}return accumulationPromise.then(newConfig=>Array.isArray(newConfig)&&Array.isArray(change)?[...newConfig,...change]:isObject(newConfig)&&isObject(change)?{...newConfig,...change}:change)},presetResult):presetResult}async function getPresets(presets,storybookOptions){let loadedPresets=await loadPresets(presets,0,storybookOptions);return {apply:async(extension,config,args={})=>applyPresets(loadedPresets,extension,config,args,storybookOptions)}}async function loadAllPresets(options){let{corePresets=[],overridePresets=[],...restOptions}=options,presetsConfig=[...corePresets,...loadCustomPresets(options),...overridePresets],filteredPresetConfig=filterPresetsConfig(presetsConfig);return filteredPresetConfig.length<presetsConfig.length&&logger.warn("Storybook now supports TypeScript natively. You can safely remove `@storybook/preset-typescript`."),getPresets(filteredPresetConfig,restOptions)}function createFileSystemCache(options){return Cache(options)}function resolvePathInStorybookCache(fileOrDirectoryName,sub="default"){let cacheDirectory=findCacheDirectory({name:"storybook"});return cacheDirectory||=path6.join(process.cwd(),".cache","storybook"),path6.join(cacheDirectory,sub,fileOrDirectoryName)}var cache=createFileSystemCache({basePath:resolvePathInStorybookCache("dev-server"),ns:"storybook"});function getStorybookConfiguration(storybookScript,shortName,longName){if(!storybookScript)return null;let parts=storybookScript.split(/[\s='"]+/),index=parts.indexOf(longName);return index===-1&&(index=parts.indexOf(shortName)),index===-1?null:parts[index+1]}var rendererPackages={"@storybook/react":"react","@storybook/vue3":"vue3","@storybook/angular":"angular","@storybook/html":"html","@storybook/web-components":"web-components","@storybook/polymer":"polymer","@storybook/ember":"ember","@storybook/svelte":"svelte","@storybook/preact":"preact","@storybook/server":"server","storybook-framework-qwik":"qwik","storybook-solidjs":"solid","@storybook/vue":"vue"},frameworkPackages={"@storybook/angular":"angular","@storybook/ember":"ember","@storybook/html-vite":"html-vite","@storybook/html-webpack5":"html-webpack5","@storybook/nextjs":"nextjs","@storybook/preact-vite":"preact-vite","@storybook/preact-webpack5":"preact-webpack5","@storybook/react-vite":"react-vite","@storybook/react-webpack5":"react-webpack5","@storybook/server-webpack5":"server-webpack5","@storybook/svelte-vite":"svelte-vite","@storybook/svelte-webpack5":"svelte-webpack5","@storybook/sveltekit":"sveltekit","@storybook/vue3-vite":"vue3-vite","@storybook/vue3-webpack5":"vue3-webpack5","@storybook/web-components-vite":"web-components-vite","@storybook/web-components-webpack5":"web-components-webpack5","storybook-framework-qwik":"qwik","storybook-solidjs-vite":"solid"},builderPackages=["@storybook/builder-webpack5","@storybook/builder-vite"],logger2=console,findDependency=({dependencies,devDependencies,peerDependencies},predicate)=>[Object.entries(dependencies||{}).find(predicate),Object.entries(devDependencies||{}).find(predicate),Object.entries(peerDependencies||{}).find(predicate)],getRendererInfo=packageJson=>{let[dep,devDep,peerDep]=findDependency(packageJson,([key])=>rendererPackages[key]),[pkg,version]=dep||devDep||peerDep||[];return dep&&devDep&&dep[0]===devDep[0]&&logger2.warn(`Found "${dep[0]}" in both "dependencies" and "devDependencies". This is probably a mistake.`),dep&&peerDep&&dep[0]===peerDep[0]&&logger2.warn(`Found "${dep[0]}" in both "dependencies" and "peerDependencies". This is probably a mistake.`),{version,frameworkPackage:pkg}},validConfigExtensions=["ts","js","tsx","jsx","mjs","cjs"],findConfigFile=(prefix,configDir)=>{let filePrefix=path6.join(configDir,prefix),extension=validConfigExtensions.find(ext=>fse.existsSync(`${filePrefix}.${ext}`));return extension?`${filePrefix}.${extension}`:null},getConfigInfo=(packageJson,configDir)=>{let storybookConfigDir=configDir??".storybook",storybookScript=packageJson.scripts?.storybook;if(storybookScript&&!configDir){let configParam=getStorybookConfiguration(storybookScript,"-c","--config-dir");configParam&&(storybookConfigDir=configParam);}return {configDir:storybookConfigDir,mainConfig:findConfigFile("main",storybookConfigDir),previewConfig:findConfigFile("preview",storybookConfigDir),managerConfig:findConfigFile("manager",storybookConfigDir)}},getStorybookInfo=(packageJson,configDir)=>{let rendererInfo=getRendererInfo(packageJson),configInfo=getConfigInfo(packageJson,configDir);return {...rendererInfo,...configInfo}};var versions_default={"@storybook/addon-a11y":"8.1.0-beta.0","@storybook/addon-actions":"8.1.0-beta.0","@storybook/addon-backgrounds":"8.1.0-beta.0","@storybook/addon-controls":"8.1.0-beta.0","@storybook/addon-docs":"8.1.0-beta.0","@storybook/addon-essentials":"8.1.0-beta.0","@storybook/addon-highlight":"8.1.0-beta.0","@storybook/addon-interactions":"8.1.0-beta.0","@storybook/addon-jest":"8.1.0-beta.0","@storybook/addon-links":"8.1.0-beta.0","@storybook/addon-mdx-gfm":"8.1.0-beta.0","@storybook/addon-measure":"8.1.0-beta.0","@storybook/addon-onboarding":"8.1.0-beta.0","@storybook/addon-outline":"8.1.0-beta.0","@storybook/addon-storysource":"8.1.0-beta.0","@storybook/addon-themes":"8.1.0-beta.0","@storybook/addon-toolbars":"8.1.0-beta.0","@storybook/addon-viewport":"8.1.0-beta.0","@storybook/angular":"8.1.0-beta.0","@storybook/blocks":"8.1.0-beta.0","@storybook/builder-manager":"8.1.0-beta.0","@storybook/builder-vite":"8.1.0-beta.0","@storybook/builder-webpack5":"8.1.0-beta.0","@storybook/channels":"8.1.0-beta.0","@storybook/cli":"8.1.0-beta.0","@storybook/client-logger":"8.1.0-beta.0","@storybook/codemod":"8.1.0-beta.0","@storybook/components":"8.1.0-beta.0","@storybook/core-common":"8.1.0-beta.0","@storybook/core-events":"8.1.0-beta.0","@storybook/core-server":"8.1.0-beta.0","@storybook/core-webpack":"8.1.0-beta.0","@storybook/csf-plugin":"8.1.0-beta.0","@storybook/csf-tools":"8.1.0-beta.0","@storybook/docs-tools":"8.1.0-beta.0","@storybook/ember":"8.1.0-beta.0","@storybook/html":"8.1.0-beta.0","@storybook/html-vite":"8.1.0-beta.0","@storybook/html-webpack5":"8.1.0-beta.0","@storybook/instrumenter":"8.1.0-beta.0","@storybook/manager":"8.1.0-beta.0","@storybook/manager-api":"8.1.0-beta.0","@storybook/nextjs":"8.1.0-beta.0","@storybook/node-logger":"8.1.0-beta.0","@storybook/preact":"8.1.0-beta.0","@storybook/preact-vite":"8.1.0-beta.0","@storybook/preact-webpack5":"8.1.0-beta.0","@storybook/preset-create-react-app":"8.1.0-beta.0","@storybook/preset-html-webpack":"8.1.0-beta.0","@storybook/preset-preact-webpack":"8.1.0-beta.0","@storybook/preset-react-webpack":"8.1.0-beta.0","@storybook/preset-server-webpack":"8.1.0-beta.0","@storybook/preset-svelte-webpack":"8.1.0-beta.0","@storybook/preset-vue3-webpack":"8.1.0-beta.0","@storybook/preview":"8.1.0-beta.0","@storybook/preview-api":"8.1.0-beta.0","@storybook/react":"8.1.0-beta.0","@storybook/react-dom-shim":"8.1.0-beta.0","@storybook/react-vite":"8.1.0-beta.0","@storybook/react-webpack5":"8.1.0-beta.0","@storybook/router":"8.1.0-beta.0","@storybook/server":"8.1.0-beta.0","@storybook/server-webpack5":"8.1.0-beta.0","@storybook/source-loader":"8.1.0-beta.0","@storybook/svelte":"8.1.0-beta.0","@storybook/svelte-vite":"8.1.0-beta.0","@storybook/svelte-webpack5":"8.1.0-beta.0","@storybook/sveltekit":"8.1.0-beta.0","@storybook/telemetry":"8.1.0-beta.0","@storybook/test":"8.1.0-beta.0","@storybook/theming":"8.1.0-beta.0","@storybook/types":"8.1.0-beta.0","@storybook/vue3":"8.1.0-beta.0","@storybook/vue3-vite":"8.1.0-beta.0","@storybook/vue3-webpack5":"8.1.0-beta.0","@storybook/web-components":"8.1.0-beta.0","@storybook/web-components-vite":"8.1.0-beta.0","@storybook/web-components-webpack5":"8.1.0-beta.0",sb:"8.1.0-beta.0",storybook:"8.1.0-beta.0"};function parseList(str){return str.split(",").map(item=>item.trim()).filter(item=>item.length>0)}async function getCoercedStorybookVersion(packageManager){return (await Promise.all(Object.keys(rendererPackages).map(async pkg=>({name:pkg,version:await packageManager.getPackageVersion(pkg)})))).filter(({version})=>!!version)[0]?.version}function getEnvConfig(program,configEnv){Object.keys(configEnv).forEach(fieldName=>{let envVarName=configEnv[fieldName],envVarValue=process.env[envVarName];envVarValue&&(program[fieldName]=envVarValue);});}var createLogStream=async(logFileName="storybook.log")=>{let finalLogPath=join(process.cwd(),logFileName),temporaryLogPath=tempy.file({name:logFileName}),logStream=createWriteStream(temporaryLogPath,{encoding:"utf8"});return new Promise((resolve,reject)=>{logStream.once("open",()=>{resolve({logStream,moveLogFile:async()=>move(temporaryLogPath,finalLogPath,{overwrite:!0}),clearLogFile:async()=>writeFile(temporaryLogPath,""),removeLogFile:async()=>remove(temporaryLogPath),readLogFile:async()=>readFile(temporaryLogPath,"utf8")});}),logStream.once("error",reject);})},isCorePackage=pkg=>Object.keys(versions_default).includes(pkg);var predicateFor=addon=>entry=>{let name=entry.name||entry;return name&&name.replaceAll(/(\\){1,2}/g,"/").includes(addon)},isCorrectOrder=(addons,before,after)=>{let essentialsIndex=addons.findIndex(predicateFor("@storybook/addon-essentials")),beforeIndex=addons.findIndex(predicateFor(before.name)),afterIndex=addons.findIndex(predicateFor(after.name));return beforeIndex===-1&&before.inEssentials&&(beforeIndex=essentialsIndex),afterIndex===-1&&after.inEssentials&&(afterIndex=essentialsIndex),beforeIndex!==-1&&afterIndex!==-1&&beforeIndex<=afterIndex},checkAddonOrder=async({before,after,configFile,getConfig})=>{try{let config=await getConfig(configFile);if(!config?.addons){logger.warn("Unable to find 'addons' config in main Storybook config");return}if(!isCorrectOrder(config.addons,before,after)){let orEssentials=" (or '@storybook/addon-essentials')",beforeText=`'${before.name}'${before.inEssentials?orEssentials:""}`,afterText=`'${after.name}'${after.inEssentials?orEssentials:""}`;logger.warn(`Expected ${beforeText} to be listed before ${afterText} in main Storybook config.`);}}catch{logger.warn(`Unable to load config file: ${configFile}`);}};var getProjectRoot=()=>{let result;if(process.env.STORYBOOK_PROJECT_ROOT)return process.env.STORYBOOK_PROJECT_ROOT;try{let found=findUp.sync(".git",{type:"directory"});found&&(result=path6.join(found,".."));}catch{}try{let found=findUp.sync(".svn",{type:"directory"});found&&(result=result||path6.join(found,".."));}catch{}try{let found=findUp.sync(".hg",{type:"directory"});found&&(result=result||path6.join(found,".."));}catch{}try{let splitDirname=__dirname.split("node_modules");result=result||(splitDirname.length>=2?splitDirname[0]:void 0);}catch{}try{let found=findUp.sync(".yarn",{type:"directory"});found&&(result=result||path6.join(found,".."));}catch{}return result||process.cwd()},nodePathsToArray=nodePath=>nodePath.split(process.platform==="win32"?";":":").filter(Boolean).map(p=>path6.resolve("./",p)),relativePattern=/^\.{1,2}([/\\]|$)/;function normalizeStoryPath(filename){return relativePattern.test(filename)?filename:`.${path6.sep}${filename}`}function loadEnvs(options={}){let defaultNodeEnv=options.production?"production":"development",env={NODE_ENV:process.env.NODE_ENV||defaultNodeEnv,NODE_PATH:process.env.NODE_PATH||"",STORYBOOK:process.env.STORYBOOK||"true",PUBLIC_URL:options.production?".":""};Object.keys(process.env).filter(name=>/^STORYBOOK_/.test(name)).forEach(name=>{env[name]=process.env[name];});let base=Object.entries(env).reduce((acc,[k,v])=>Object.assign(acc,{[k]:JSON.stringify(v)}),{}),{stringified,raw}=getEnvironment({nodeEnv:env.NODE_ENV}),fullRaw={...env,...raw};return fullRaw.NODE_PATH=nodePathsToArray(fullRaw.NODE_PATH||""),{stringified:{...base,...stringified},raw:fullRaw}}var stringifyEnvs=raw=>Object.entries(raw).reduce((acc,[key,value])=>(acc[key]=JSON.stringify(value),acc),{}),stringifyProcessEnvs=raw=>Object.entries(raw).reduce((acc,[key,value])=>(acc[`process.env.${key}`]=JSON.stringify(value),acc),{});var NODE_MODULES_RE=/node_modules/,commonGlobOptions=glob2=>NODE_MODULES_RE.test(glob2)?{}:{ignore:["**/node_modules/**"]};var frameworkToRenderer={angular:"angular",ember:"ember","html-vite":"html","html-webpack5":"html",nextjs:"react","preact-vite":"preact","preact-webpack5":"preact",qwik:"qwik","react-vite":"react","react-webpack5":"react","server-webpack5":"server",solid:"solid","svelte-vite":"svelte","svelte-webpack5":"svelte",sveltekit:"svelte","vue3-vite":"vue3","vue3-webpack5":"vue3","web-components-vite":"web-components","web-components-webpack5":"web-components",html:"html",preact:"preact","react-native":"react-native",react:"react",server:"server",svelte:"svelte",vue3:"vue3","web-components":"web-components"};async function getBuilderOptions(options){let framework=await options.presets.apply("framework",{},options);if(typeof framework!="string"&&framework?.options?.builder)return framework.options.builder;let{builder}=await options.presets.apply("core",{},options);return typeof builder!="string"&&builder?.options?builder.options:{}}function normalizePath2(p){return path6.posix.normalize(p.replace(/\\/g,"/"))}async function getFrameworkName(options){let framework=await options.presets.apply("framework","",options);if(!framework)throw new Error(dedent`
43
43
  You must specify a framework in '.storybook/main.js' config.
44
44
 
45
45
  https://github.com/storybookjs/storybook/blob/next/MIGRATION.md#framework-field-mandatory
@@ -77,6 +77,10 @@ An error occurred while installing dependencies:`),logger7.log(e.message),new Ha
77
77
 
78
78
  Please check the logfile generated at ./storybook.log for troubleshooting and try again.`)}await removeLogFile();}async runRemoveDeps(dependencies){let args=[...dependencies];await this.executeCommand({command:"yarn",args:["remove",...this.getInstallArgs(),...args],stdio:"inherit"});}async runGetVersions(packageName,fetchAllVersions){let args=[fetchAllVersions?"versions":"version","--json"],commandResult=await this.executeCommand({command:"yarn",args:["info",packageName,...args]});try{let parsedOutput=JSON.parse(commandResult);if(parsedOutput.type==="inspect")return parsedOutput.data;throw new Error(`Unable to find versions of ${packageName} using yarn`)}catch{throw new Error(`Unable to find versions of ${packageName} using yarn`)}}mapDependencies(input,pattern){if(input.type==="tree"){let{trees}=input.data,acc={},existingVersions={},duplicatedDependencies={},recurse=tree=>{let{children}=tree,{name,value}=parsePackageData(tree.name);!name||!pattern.some(p=>new RegExp(`^${p.replace(/\*/g,".*")}$`).test(name))||(existingVersions[name]?.includes(value.version)||(acc[name]?acc[name].push(value):acc[name]=[value],existingVersions[name]=[...existingVersions[name]||[],value.version],existingVersions[name].length>1&&(duplicatedDependencies[name]=existingVersions[name])),children.forEach(recurse));};return trees.forEach(recurse),{dependencies:acc,duplicatedDependencies,infoCommand:"yarn why",dedupeCommand:"yarn dedupe"}}throw new Error("Something went wrong while parsing yarn output")}parseErrorFromLogs(logs){let finalMessage="YARN1 error",match=logs.match(YARN1_ERROR_REGEX);if(match){let errorMessage=match[0]?.replace(/^error\s(.*)$/,"$1");errorMessage&&(finalMessage=`${finalMessage}: ${errorMessage}`);}return finalMessage.trim()}};var NPM_LOCKFILE="package-lock.json",PNPM_LOCKFILE="pnpm-lock.yaml",YARN_LOCKFILE="yarn.lock",JsPackageManagerFactory=class{static getPackageManager({force}={},cwd){if(force&&force in this.PROXY_MAP)return new this.PROXY_MAP[force]({cwd});let closestLockfilePath=sync$1([YARN_LOCKFILE,PNPM_LOCKFILE,NPM_LOCKFILE],{cwd}),closestLockfile=closestLockfilePath&&path6.basename(closestLockfilePath),hasNPMCommand=hasNPM(cwd),hasPNPMCommand=hasPNPM(cwd),yarnVersion=getYarnVersion(cwd);if(yarnVersion&&(closestLockfile===YARN_LOCKFILE||!hasNPMCommand&&!hasPNPMCommand))return yarnVersion===1?new Yarn1Proxy({cwd}):new Yarn2Proxy({cwd});if(hasPNPMCommand&&closestLockfile===PNPM_LOCKFILE)return new PNPMProxy({cwd});if(hasNPMCommand&&closestLockfile===NPM_LOCKFILE)return new NPMProxy({cwd});let inferredPackageManager=this.inferPackageManagerFromUserAgent();if(inferredPackageManager&&inferredPackageManager in this.PROXY_MAP)return new this.PROXY_MAP[inferredPackageManager]({cwd});if(hasNPMCommand)return new NPMProxy({cwd});throw new Error("Unable to find a usable package manager within NPM, PNPM, Yarn and Yarn 2")}static inferPackageManagerFromUserAgent(){let userAgent=process.env.npm_config_user_agent;if(userAgent){let packageSpec=userAgent.split(" ")[0],[pkgMgrName,pkgMgrVersion]=packageSpec.split("/");if(pkgMgrName==="pnpm")return "pnpm";if(pkgMgrName==="npm")return "npm";if(pkgMgrName==="yarn")return `yarn${pkgMgrVersion?.startsWith("1.")?"1":"2"}`}}};JsPackageManagerFactory.PROXY_MAP={npm:NPMProxy,pnpm:PNPMProxy,yarn1:Yarn1Proxy,yarn2:Yarn2Proxy};function hasNPM(cwd){return sync$2("npm",["--version"],{cwd,shell:!0}).status===0}function hasPNPM(cwd){return sync$2("pnpm",["--version"],{cwd,shell:!0}).status===0}function getYarnVersion(cwd){let yarnVersionCommand=sync$2("yarn",["--version"],{cwd,shell:!0});if(yarnVersionCommand.status!==0)return;let yarnVersion=yarnVersionCommand.output.toString().replace(/,/g,"").replace(/"/g,"");return /^1\.+/.test(yarnVersion)?1:2}var logger9=console;async function removeAddon(addon,options={}){let{packageManager:pkgMgr}=options,packageManager=JsPackageManagerFactory.getPackageManager({force:pkgMgr}),packageJson=await packageManager.retrievePackageJson(),{mainConfig,configDir}=getStorybookInfo(packageJson);if(typeof configDir>"u")throw new Error(dedent6`
79
79
  Unable to find storybook config directory
80
- `);if(!mainConfig){logger9.error("Unable to find storybook main.js config");return}let main=await readConfig(mainConfig);logger9.log(`Uninstalling ${addon}`),await packageManager.removeDependencies({packageJson},[addon]),logger9.log(`Removing '${addon}' from main.js addons field.`);try{main.removeEntryFromArray(["addons"],addon),await writeConfig(main);}catch{logger9.warn(`Failed to remove '${addon}' from main.js addons field.`);}}function isPreservingSymlinks(){let{NODE_OPTIONS,NODE_PRESERVE_SYMLINKS}=process.env;return !!NODE_PRESERVE_SYMLINKS||NODE_OPTIONS?.includes("--preserve-symlinks")}var interpolate2=(string,data={})=>Object.entries(data).reduce((acc,[k,v])=>acc.replace(new RegExp(`%${k}%`,"g"),v),string);function getPreviewBodyTemplate(configDirPath,interpolations){let base=fs5__default.readFileSync(`${sync$3(__dirname)}/templates/base-preview-body.html`,"utf8"),bodyHtmlPath=path6.resolve(configDirPath,"preview-body.html"),result=base;return fs5__default.existsSync(bodyHtmlPath)&&(result=fs5__default.readFileSync(bodyHtmlPath,"utf8")+result),interpolate2(result,interpolations)}function getPreviewHeadTemplate(configDirPath,interpolations){let base=fs5__default.readFileSync(`${sync$3(__dirname)}/templates/base-preview-head.html`,"utf8"),headHtmlPath=path6.resolve(configDirPath,"preview-head.html"),result=base;return fs5__default.existsSync(headHtmlPath)&&(result+=fs5__default.readFileSync(headHtmlPath,"utf8")),interpolate2(result,interpolations)}var renderers=["html","preact","react","server","svelte","vue","vue3","web-components"],rendererNames=[...renderers,...renderers.map(renderer=>`@storybook/${renderer}`)];function validateFrameworkName(frameworkName){if(!frameworkName)throw new MissingFrameworkFieldError;if(rendererNames.includes(frameworkName))throw new InvalidFrameworkNameError({frameworkName});if(!Object.keys(frameworkPackages).includes(frameworkName))try{__require.resolve(join(frameworkName,"preset"));}catch{throw new CouldNotEvaluateFrameworkError({frameworkName})}}function satisfies2(){return x=>x}
80
+ `);if(!mainConfig){logger9.error("Unable to find storybook main.js config");return}let main=await readConfig(mainConfig);logger9.log(`Uninstalling ${addon}`),await packageManager.removeDependencies({packageJson},[addon]),logger9.log(`Removing '${addon}' from main.js addons field.`);try{main.removeEntryFromArray(["addons"],addon),await writeConfig(main);}catch{logger9.warn(`Failed to remove '${addon}' from main.js addons field.`);}}function isPreservingSymlinks(){let{NODE_OPTIONS,NODE_PRESERVE_SYMLINKS}=process.env;return !!NODE_PRESERVE_SYMLINKS||NODE_OPTIONS?.includes("--preserve-symlinks")}var interpolate2=(string,data={})=>Object.entries(data).reduce((acc,[k,v])=>acc.replace(new RegExp(`%${k}%`,"g"),v),string);function getPreviewBodyTemplate(configDirPath,interpolations){let base=fs5__default.readFileSync(`${sync$3(__dirname)}/templates/base-preview-body.html`,"utf8"),bodyHtmlPath=path6.resolve(configDirPath,"preview-body.html"),result=base;return fs5__default.existsSync(bodyHtmlPath)&&(result=fs5__default.readFileSync(bodyHtmlPath,"utf8")+result),interpolate2(result,interpolations)}function getPreviewHeadTemplate(configDirPath,interpolations){let base=fs5__default.readFileSync(`${sync$3(__dirname)}/templates/base-preview-head.html`,"utf8"),headHtmlPath=path6.resolve(configDirPath,"preview-head.html"),result=base;return fs5__default.existsSync(headHtmlPath)&&(result+=fs5__default.readFileSync(headHtmlPath,"utf8")),interpolate2(result,interpolations)}var renderers=["html","preact","react","server","svelte","vue","vue3","web-components"],rendererNames=[...renderers,...renderers.map(renderer=>`@storybook/${renderer}`)];function validateFrameworkName(frameworkName){if(!frameworkName)throw new MissingFrameworkFieldError;if(rendererNames.includes(frameworkName))throw new InvalidFrameworkNameError({frameworkName});if(!Object.keys(frameworkPackages).includes(frameworkName))try{__require.resolve(join(frameworkName,"preset"));}catch{throw new CouldNotEvaluateFrameworkError({frameworkName})}}function satisfies2(){return x=>x}var prettierInstance,prettierVersion=null,getPrettier=async()=>{if(!prettierInstance)try{return prettierInstance=await import('prettier'),prettierVersion=prettierInstance?.version?semver.major(prettierInstance.version):null,{version:prettierVersion,instance:prettierInstance}}catch{return {instance:void 0,version:null}}return {instance:prettierInstance,version:prettierVersion}};async function formatFileContent(filePath,content){try{let prettier=await getPrettier();switch(prettier.version){case 2:case 3:let config=await prettier.instance.resolveConfig(filePath);return !config||Object.keys(config).length===0?await formatWithEditorConfig(filePath,content):await prettier.instance.format(content,{...config,filepath:filePath});case null:case void 0:return await formatWithEditorConfig(filePath,content);default:return console.warn(dedent6`
81
+ Your prettier version ${prettier.version} is not supported to format files which were edited by Storybook.
82
+ Please raise an issue on the Storybook GitHub repository.
83
+ Falling back to EditorConfig settings, if available.
84
+ `),await formatWithEditorConfig(filePath,content)}}catch{return content}}async function formatWithEditorConfig(filePath,content){let prettier=await import('prettier-fallback'),config=await prettier.resolveConfig(filePath,{editorconfig:!0});return !config||Object.keys(config).length===0?content:prettier.format(content,{...config,filepath:filePath})}
81
85
 
82
- export { HandledError, JsPackageManager, JsPackageManagerFactory, boost, builderPackages, cache, checkAddonOrder, codeLog, commandLog, commonGlobOptions, createFileSystemCache, createLogStream, extractProperFrameworkName, extractProperRendererNameFromFramework, filterPresetsConfig, findConfigFile, frameworkPackages, frameworkToRenderer, getAutoRefs, getBuilderOptions, getChars, getCoercedStorybookVersion, getConfigInfo, getDirectoryFromWorkingDir, getEnvConfig, getFrameworkName, getInterpretedFile, getInterpretedFileWithExt, getPackageDetails, getPresets, getPreviewBodyTemplate, getPreviewHeadTemplate, getProjectRoot, getRefs, getRendererName, getStorybookConfiguration, getStorybookInfo, globToRegexp, handlebars, interopRequireDefault, interpolate, isCorePackage, isPreservingSymlinks, loadAllPresets, loadCustomPresets, loadEnvs, loadMainConfig, loadManagerOrAddonsFile, loadPreset, loadPreviewOrConfigFile, logConfig, nodePathsToArray, normalizeStories, normalizeStoriesEntry, normalizeStoryPath, paddedLog, parseList, readTemplate, removeAddon, rendererPackages, resolveAddonName, resolvePathInStorybookCache, satisfies2 as satisfies, serverRequire, serverResolve, stringifyEnvs, stringifyProcessEnvs, stripAbsNodeModulesPath, validateConfigurationFiles, validateFrameworkName, versions_default as versions };
86
+ export { HandledError, JsPackageManager, JsPackageManagerFactory, boost, builderPackages, cache, checkAddonOrder, codeLog, commandLog, commonGlobOptions, createFileSystemCache, createLogStream, extractProperFrameworkName, extractProperRendererNameFromFramework, filterPresetsConfig, findConfigFile, formatFileContent, frameworkPackages, frameworkToRenderer, getAutoRefs, getBuilderOptions, getChars, getCoercedStorybookVersion, getConfigInfo, getDirectoryFromWorkingDir, getEnvConfig, getFrameworkName, getInterpretedFile, getInterpretedFileWithExt, getPackageDetails, getPresets, getPreviewBodyTemplate, getPreviewHeadTemplate, getProjectRoot, getRefs, getRendererName, getStorybookConfiguration, getStorybookInfo, globToRegexp, handlebars, interopRequireDefault, interpolate, isCorePackage, isPreservingSymlinks, loadAllPresets, loadCustomPresets, loadEnvs, loadMainConfig, loadManagerOrAddonsFile, loadPreset, loadPreviewOrConfigFile, logConfig, nodePathsToArray, normalizeStories, normalizeStoriesEntry, normalizeStoryPath, paddedLog, parseList, readTemplate, removeAddon, rendererPackages, resolveAddonName, resolvePathInStorybookCache, satisfies2 as satisfies, serverRequire, serverResolve, stringifyEnvs, stringifyProcessEnvs, stripAbsNodeModulesPath, validateConfigurationFiles, validateFrameworkName, versions_default as versions };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@storybook/core-common",
3
- "version": "8.1.0-alpha.7",
3
+ "version": "8.1.0-beta.0",
4
4
  "description": "Storybook framework-agnostic API",
5
5
  "keywords": [
6
6
  "storybook"
@@ -44,10 +44,10 @@
44
44
  "prep": "node --loader ../../../scripts/node_modules/esbuild-register/loader.js -r ../../../scripts/node_modules/esbuild-register/register.js ../../../scripts/prepare/bundle.ts"
45
45
  },
46
46
  "dependencies": {
47
- "@storybook/core-events": "8.1.0-alpha.7",
48
- "@storybook/csf-tools": "8.1.0-alpha.7",
49
- "@storybook/node-logger": "8.1.0-alpha.7",
50
- "@storybook/types": "8.1.0-alpha.7",
47
+ "@storybook/core-events": "8.1.0-beta.0",
48
+ "@storybook/csf-tools": "8.1.0-beta.0",
49
+ "@storybook/node-logger": "8.1.0-beta.0",
50
+ "@storybook/types": "8.1.0-beta.0",
51
51
  "@yarnpkg/fslib": "2.10.3",
52
52
  "@yarnpkg/libzip": "2.3.0",
53
53
  "chalk": "^4.1.0",
@@ -65,6 +65,7 @@
65
65
  "node-fetch": "^2.0.0",
66
66
  "picomatch": "^2.3.0",
67
67
  "pkg-dir": "^5.0.0",
68
+ "prettier-fallback": "npm:prettier@^3",
68
69
  "pretty-hrtime": "^1.0.3",
69
70
  "resolve-from": "^5.0.0",
70
71
  "semver": "^7.3.7",
@@ -80,12 +81,23 @@
80
81
  "@types/node": "^18.0.0",
81
82
  "@types/node-fetch": "^2.6.4",
82
83
  "@types/picomatch": "^2.3.0",
84
+ "@types/prettier-v2": "npm:@types/prettier@^2",
83
85
  "@types/pretty-hrtime": "^1.0.0",
84
86
  "mock-fs": "^5.2.0",
87
+ "prettier-v2": "npm:prettier@^2",
88
+ "prettier-v3": "npm:prettier@^3",
85
89
  "slash": "^5.0.0",
86
90
  "type-fest": "~2.19",
87
91
  "typescript": "^5.3.2"
88
92
  },
93
+ "peerDependencies": {
94
+ "prettier": "^2 || ^3"
95
+ },
96
+ "peerDependenciesMeta": {
97
+ "prettier": {
98
+ "optional": true
99
+ }
100
+ },
89
101
  "publishConfig": {
90
102
  "access": "public"
91
103
  },
@@ -82,6 +82,38 @@
82
82
  </div>
83
83
 
84
84
  <div class="sb-errordisplay sb-wrapper">
85
- <pre id="error-message" class="sb-heading"></pre>
86
- <pre class="sb-errordisplay_code"><code id="error-stack"></code></pre>
85
+ <div class="sb-errordisplay_main">
86
+ <h1 id="error-message"></h1>
87
+ <p>
88
+ The component failed to render properly, likely due to a configuration issue in Storybook.
89
+ Here are some common causes and how you can address them:
90
+ </p>
91
+ <ol>
92
+ <li>
93
+ <strong>Missing Context/Providers</strong>: You can use decorators to supply specific
94
+ contexts or providers, which are sometimes necessary for components to render correctly. For
95
+ detailed instructions on using decorators, please visit the
96
+ <a href="https://storybook.js.org/docs/react/writing-stories/decorators"
97
+ >Decorators documentation</a
98
+ >.
99
+ </li>
100
+ <li>
101
+ <strong>Misconfigured Webpack or Vite</strong>: Verify that Storybook picks up all necessary
102
+ settings for loaders, plugins, and other relevant parameters. You can find step-by-step
103
+ guides for configuring
104
+ <a href="https://storybook.js.org/docs/builders/webpack">Webpack</a> or
105
+ <a href="https://storybook.js.org/docs/builders/vite">Vite</a>
106
+ with Storybook.
107
+ </li>
108
+ <li>
109
+ <strong>Missing Environment Variables</strong>: Your Storybook may require specific
110
+ environment variables to function as intended. You can set up custom environment variables
111
+ as outlined in the
112
+ <a href="https://storybook.js.org/docs/configure/environment-variables"
113
+ >Environment Variables documentation</a
114
+ >.
115
+ </li>
116
+ </ol>
117
+ <pre class="sb-errordisplay_code"><code id="error-stack"></code></pre>
118
+ </div>
87
119
  </div>
@@ -30,7 +30,8 @@
30
30
  box-sizing: border-box;
31
31
  margin: auto;
32
32
  padding: 1rem;
33
- max-height: 100%; /* Hack for centering correctly in IE11 */
33
+ max-height: 100%;
34
+ /* Hack for centering correctly in IE11 */
34
35
  }
35
36
 
36
37
  /* Vertical centering fix for IE11 */
@@ -61,7 +62,9 @@
61
62
  bottom: 0;
62
63
  left: 0;
63
64
  right: 0;
64
- padding: 20px;
65
+ box-sizing: border-box;
66
+
67
+ padding: 40px;
65
68
  font-family:
66
69
  'Nunito Sans',
67
70
  -apple-system,
@@ -77,6 +80,18 @@
77
80
  overflow: auto;
78
81
  }
79
82
 
83
+ @media (max-width: 700px) {
84
+ .sb-wrapper {
85
+ padding: 20px;
86
+ }
87
+ }
88
+
89
+ @media (max-width: 500px) {
90
+ .sb-wrapper {
91
+ padding: 10px;
92
+ }
93
+ }
94
+
80
95
  .sb-heading {
81
96
  font-size: 14px;
82
97
  font-weight: 600;
@@ -89,6 +104,7 @@
89
104
  display: flex;
90
105
  align-content: center;
91
106
  justify-content: center;
107
+ box-sizing: border-box;
92
108
  }
93
109
 
94
110
  .sb-nopreview_main {
@@ -103,54 +119,133 @@
103
119
  }
104
120
 
105
121
  .sb-errordisplay {
106
- border: 20px solid rgb(187, 49, 49);
107
- background: #222;
108
- color: #fff;
122
+ background: #f6f9fc;
123
+ color: black;
109
124
  z-index: 999999;
125
+ width: 100vw;
126
+ min-height: 100vh;
127
+ box-sizing: border-box;
128
+
129
+ & ol {
130
+ padding-left: 18px;
131
+ margin: 0;
132
+ }
133
+
134
+ & h1 {
135
+ font-family: Nunito Sans;
136
+ font-size: 22px;
137
+ font-weight: 400;
138
+ line-height: 30px;
139
+ font-weight: normal;
140
+ margin: 0;
141
+
142
+ &::before {
143
+ content: '';
144
+ display: inline-block;
145
+ width: 12px;
146
+ height: 12px;
147
+ background: #ff4400;
148
+ border-radius: 50%;
149
+ margin-right: 8px;
150
+ }
151
+ }
152
+
153
+ & p,
154
+ & ol {
155
+ font-family: Nunito Sans;
156
+ font-size: 14px;
157
+ font-weight: 400;
158
+ line-height: 19px;
159
+ margin: 0;
160
+ }
161
+
162
+ & li + li {
163
+ margin: 0;
164
+ padding: 0;
165
+ padding-top: 12px;
166
+ }
167
+
168
+ & a {
169
+ color: currentColor;
170
+ }
171
+ }
172
+
173
+ .sb-errordisplay_main {
174
+ margin: auto;
175
+ padding: 24px;
176
+ display: flex;
177
+ box-sizing: border-box;
178
+
179
+ flex-direction: column;
180
+ min-height: 100%;
181
+ width: 100%;
182
+ border-radius: 6px;
183
+ background: white;
184
+ border: 1px solid #ff0000;
185
+ box-shadow: 0 0 64px rgba(0, 0, 0, 0.1);
186
+ gap: 24px;
110
187
  }
111
188
 
112
189
  .sb-errordisplay_code {
113
190
  padding: 10px;
114
- background: #000;
115
- color: #eee;
191
+ flex: 1;
192
+ background: #242424;
193
+ color: #c6c6c6;
194
+ box-sizing: border-box;
195
+
196
+ font-size: 14px;
197
+ font-weight: 400;
198
+ line-height: 19px;
199
+ border-radius: 4px;
200
+
116
201
  font-family: 'Operator Mono', 'Fira Code Retina', 'Fira Code', 'FiraCode-Retina', 'Andale Mono',
117
202
  'Lucida Console', Consolas, Monaco, monospace;
203
+ margin: 0;
204
+ overflow: auto;
118
205
  }
119
206
 
120
207
  .sb-errordisplay pre {
121
208
  white-space: pre-wrap;
209
+ white-space: revert;
122
210
  }
123
211
 
124
212
  @-webkit-keyframes sb-rotate360 {
125
213
  from {
126
214
  transform: rotate(0deg);
127
215
  }
216
+
128
217
  to {
129
218
  transform: rotate(360deg);
130
219
  }
131
220
  }
221
+
132
222
  @keyframes sb-rotate360 {
133
223
  from {
134
224
  transform: rotate(0deg);
135
225
  }
226
+
136
227
  to {
137
228
  transform: rotate(360deg);
138
229
  }
139
230
  }
231
+
140
232
  @-webkit-keyframes sb-glow {
141
233
  0%,
142
234
  100% {
143
235
  opacity: 1;
144
236
  }
237
+
145
238
  50% {
146
239
  opacity: 0.4;
147
240
  }
148
241
  }
242
+
149
243
  @keyframes sb-glow {
150
244
  0%,
151
245
  100% {
152
246
  opacity: 1;
153
247
  }
248
+
154
249
  50% {
155
250
  opacity: 0.4;
156
251
  }
@@ -213,6 +308,7 @@
213
308
  height: 14px;
214
309
  width: 14px;
215
310
  }
311
+
216
312
  .sb-previewBlock_icon:last-child {
217
313
  margin-left: auto;
218
314
  }
@@ -234,23 +330,28 @@
234
330
  text-align: left;
235
331
  width: 100%;
236
332
  }
333
+
237
334
  .sb-argstableBlock th:first-of-type,
238
335
  .sb-argstableBlock td:first-of-type {
239
336
  padding-left: 20px;
240
337
  }
338
+
241
339
  .sb-argstableBlock th:nth-of-type(2),
242
340
  .sb-argstableBlock td:nth-of-type(2) {
243
341
  width: 35%;
244
342
  }
343
+
245
344
  .sb-argstableBlock th:nth-of-type(3),
246
345
  .sb-argstableBlock td:nth-of-type(3) {
247
346
  width: 15%;
248
347
  }
348
+
249
349
  .sb-argstableBlock th:last-of-type,
250
350
  .sb-argstableBlock td:last-of-type {
251
351
  width: 25%;
252
352
  padding-right: 20px;
253
353
  }
354
+
254
355
  .sb-argstableBlock th span,
255
356
  .sb-argstableBlock td span {
256
357
  -webkit-animation: sb-glow 1.5s ease-in-out infinite;
@@ -260,6 +361,7 @@
260
361
  box-shadow: none;
261
362
  color: transparent;
262
363
  }
364
+
263
365
  .sb-argstableBlock th {
264
366
  padding: 10px 15px;
265
367
  }
@@ -270,35 +372,44 @@
270
372
  rgba(0, 0, 0, 0.1) 0 1px 3px 1px,
271
373
  rgba(0, 0, 0, 0.065) 0 0 0 1px;
272
374
  }
375
+
273
376
  .sb-argstableBlock-body tr {
274
377
  background: transparent;
275
378
  overflow: hidden;
276
379
  }
380
+
277
381
  .sb-argstableBlock-body tr:not(:first-child) {
278
382
  border-top: 1px solid #e6e6e6;
279
383
  }
384
+
280
385
  .sb-argstableBlock-body tr:first-child td:first-child {
281
386
  border-top-left-radius: 4px;
282
387
  }
388
+
283
389
  .sb-argstableBlock-body tr:first-child td:last-child {
284
390
  border-top-right-radius: 4px;
285
391
  }
392
+
286
393
  .sb-argstableBlock-body tr:last-child td:first-child {
287
394
  border-bottom-left-radius: 4px;
288
395
  }
396
+
289
397
  .sb-argstableBlock-body tr:last-child td:last-child {
290
398
  border-bottom-right-radius: 4px;
291
399
  }
400
+
292
401
  .sb-argstableBlock-body td {
293
402
  background: #fff;
294
403
  padding-bottom: 10px;
295
404
  padding-top: 10px;
296
405
  vertical-align: top;
297
406
  }
407
+
298
408
  .sb-argstableBlock-body td:not(:first-of-type) {
299
409
  padding-left: 15px;
300
410
  padding-right: 15px;
301
411
  }
412
+
302
413
  .sb-argstableBlock-body button {
303
414
  -webkit-animation: sb-glow 1.5s ease-in-out infinite;
304
415
  animation: sb-glow 1.5s ease-in-out infinite;