@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 +7 -1
- package/dist/index.js +7 -3
- package/dist/index.mjs +8 -4
- package/package.json +17 -5
- package/templates/base-preview-body.html +34 -2
- package/templates/base-preview-head.html +118 -7
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&®isterFile&&!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}
|
|
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&®isterFile&&!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-
|
|
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-
|
|
48
|
-
"@storybook/csf-tools": "8.1.0-
|
|
49
|
-
"@storybook/node-logger": "8.1.0-
|
|
50
|
-
"@storybook/types": "8.1.0-
|
|
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
|
-
<
|
|
86
|
-
|
|
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%;
|
|
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
|
-
|
|
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
|
-
|
|
107
|
-
|
|
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
|
-
|
|
115
|
-
|
|
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;
|