@storybook/addon-onboarding 8.1.0-alpha.1 → 8.1.0-alpha.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/dist/preset.js +3 -3
  2. package/package.json +10 -10
package/dist/preset.js CHANGED
@@ -535,7 +535,7 @@ ${rootStack}`,err}}}}});var require_lib19=__commonJS({"../../node_modules/@babel
535
535
  `),!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=__toESM2(require_resolve_from()),safeResolveFrom=(path18,file)=>{try{return (0,import_resolve_from.default)(path18,file)}catch{return}},safeResolve=file=>{try{return __require.resolve(file)}catch{return}},import_path3=__toESM2(__require("path"));function normalizePath(id){return import_path3.default.posix.normalize(slash(id))}function stripAbsNodeModulesPath(absPath){let splits=absPath.split(`node_modules${import_path3.default.sep}`);return normalizePath(splits[splits.length-1])}var isObject=val=>val!=null&&typeof val=="object"&&Array.isArray(val)===!1,isFunction=val=>typeof val=="function";function filterPresetsConfig(presetsConfig){return presetsConfig.filter(preset=>{let presetName=typeof preset=="string"?preset:preset.name;return !/@storybook[\\\\/]preset-typescript/.test(presetName)})}function resolvePathToMjs(filePath){let{dir,name}=(0, import_path4.parse)(filePath),mjsPath=(0, import_path4.join)(dir,`${name}.mjs`);return safeResolve(mjsPath)?mjsPath:filePath}function resolvePresetFunction(input,presetOptions,storybookOptions){return isFunction(input)?[...input({...storybookOptions,...presetOptions})]:Array.isArray(input)?[...input]:[]}var resolveAddonName=(configDir,name,options)=>{let resolve=name.startsWith("/")?safeResolve:safeResolveFrom.bind(null,configDir),resolved=resolve(name);if(resolved){let{dir:fdir,name:fname}=(0, import_path4.parse)(resolved);if(name.match(/\/(manager|register(-panel)?)(\.(js|mjs|ts|tsx|jsx))?$/))return {type:"virtual",name,managerEntries:[resolvePathToMjs((0, import_path4.join)(fdir,fname))]};if(name.match(/\/(preset)(\.(js|mjs|ts|tsx|jsx))?$/))return {type:"presets",name:resolved}}let checkExists=exportName=>{if(resolve(`${name}${exportName}`))return `${name}${exportName}`},absolutizeExport=(exportName,preferMJS)=>{let found=resolve(`${name}${exportName}`);if(found)return preferMJS?resolvePathToMjs(found):found},managerFile=absolutizeExport("/manager",!0),registerFile=absolutizeExport("/register",!0)||absolutizeExport("/register-panel",!0),previewFile=checkExists("/preview"),previewFileAbsolute=absolutizeExport("/preview",!0),presetFile=absolutizeExport("/preset",!1);if(!(managerFile||previewFile)&&presetFile)return {type:"presets",name:presetFile};if(managerFile||registerFile||previewFile||presetFile){let managerEntries=[];return managerFile&&managerEntries.push(managerFile),!managerFile&&registerFile&&!presetFile&&managerEntries.push(registerFile),{type:"virtual",name,...managerEntries.length?{managerEntries}:{},...previewFile?{previewAnnotations:[previewFileAbsolute?{bare:previewFile.includes("node_modules")?stripAbsNodeModulesPath(previewFile):previewFile,absolute:previewFileAbsolute}:previewFile]}:{},...presetFile?{presets:[{name:presetFile,options}]}:{}}}if(resolved)return {type:"presets",name:resolved}},map=({configDir})=>item=>{let options=isObject(item)&&item.options||void 0,name=isObject(item)?item.name:item,resolved;try{resolved=resolveAddonName(configDir,name,options);}catch{import_node_logger2.logger.error(`Addon value should end in /manager or /preview or /register OR it should be a valid preset https://storybook.js.org/docs/react/addons/writing-presets/
536
536
  ${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`
537
537
  ${input} is not a valid preset
538
- `)}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=__toESM2(require_lib5());function createFileSystemCache(options){return (0, import_file_system_cache.default)(options)}var import_path5=__toESM2(__require("path")),import_find_cache_dir=__toESM2(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"}),import_fs_extra2=require_lib6(),import_path7=__require("path"),import_tempy=__toESM2(require_tempy()),import_path6=__toESM2(__require("path")),import_fs_extra=__toESM2(require_lib6());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}},versions_default={"@storybook/addon-a11y":"8.1.0-alpha.1","@storybook/addon-actions":"8.1.0-alpha.1","@storybook/addon-backgrounds":"8.1.0-alpha.1","@storybook/addon-controls":"8.1.0-alpha.1","@storybook/addon-docs":"8.1.0-alpha.1","@storybook/addon-essentials":"8.1.0-alpha.1","@storybook/addon-highlight":"8.1.0-alpha.1","@storybook/addon-interactions":"8.1.0-alpha.1","@storybook/addon-jest":"8.1.0-alpha.1","@storybook/addon-links":"8.1.0-alpha.1","@storybook/addon-mdx-gfm":"8.1.0-alpha.1","@storybook/addon-measure":"8.1.0-alpha.1","@storybook/addon-onboarding":"8.1.0-alpha.1","@storybook/addon-outline":"8.1.0-alpha.1","@storybook/addon-storysource":"8.1.0-alpha.1","@storybook/addon-themes":"8.1.0-alpha.1","@storybook/addon-toolbars":"8.1.0-alpha.1","@storybook/addon-viewport":"8.1.0-alpha.1","@storybook/angular":"8.1.0-alpha.1","@storybook/blocks":"8.1.0-alpha.1","@storybook/builder-manager":"8.1.0-alpha.1","@storybook/builder-vite":"8.1.0-alpha.1","@storybook/builder-webpack5":"8.1.0-alpha.1","@storybook/channels":"8.1.0-alpha.1","@storybook/cli":"8.1.0-alpha.1","@storybook/client-logger":"8.1.0-alpha.1","@storybook/codemod":"8.1.0-alpha.1","@storybook/components":"8.1.0-alpha.1","@storybook/core-common":"8.1.0-alpha.1","@storybook/core-events":"8.1.0-alpha.1","@storybook/core-server":"8.1.0-alpha.1","@storybook/core-webpack":"8.1.0-alpha.1","@storybook/csf-plugin":"8.1.0-alpha.1","@storybook/csf-tools":"8.1.0-alpha.1","@storybook/docs-tools":"8.1.0-alpha.1","@storybook/ember":"8.1.0-alpha.1","@storybook/html":"8.1.0-alpha.1","@storybook/html-vite":"8.1.0-alpha.1","@storybook/html-webpack5":"8.1.0-alpha.1","@storybook/instrumenter":"8.1.0-alpha.1","@storybook/manager":"8.1.0-alpha.1","@storybook/manager-api":"8.1.0-alpha.1","@storybook/nextjs":"8.1.0-alpha.1","@storybook/node-logger":"8.1.0-alpha.1","@storybook/preact":"8.1.0-alpha.1","@storybook/preact-vite":"8.1.0-alpha.1","@storybook/preact-webpack5":"8.1.0-alpha.1","@storybook/preset-create-react-app":"8.1.0-alpha.1","@storybook/preset-html-webpack":"8.1.0-alpha.1","@storybook/preset-preact-webpack":"8.1.0-alpha.1","@storybook/preset-react-webpack":"8.1.0-alpha.1","@storybook/preset-server-webpack":"8.1.0-alpha.1","@storybook/preset-svelte-webpack":"8.1.0-alpha.1","@storybook/preset-vue3-webpack":"8.1.0-alpha.1","@storybook/preview":"8.1.0-alpha.1","@storybook/preview-api":"8.1.0-alpha.1","@storybook/react":"8.1.0-alpha.1","@storybook/react-dom-shim":"8.1.0-alpha.1","@storybook/react-vite":"8.1.0-alpha.1","@storybook/react-webpack5":"8.1.0-alpha.1","@storybook/router":"8.1.0-alpha.1","@storybook/server":"8.1.0-alpha.1","@storybook/server-webpack5":"8.1.0-alpha.1","@storybook/source-loader":"8.1.0-alpha.1","@storybook/svelte":"8.1.0-alpha.1","@storybook/svelte-vite":"8.1.0-alpha.1","@storybook/svelte-webpack5":"8.1.0-alpha.1","@storybook/sveltekit":"8.1.0-alpha.1","@storybook/telemetry":"8.1.0-alpha.1","@storybook/test":"8.1.0-alpha.1","@storybook/theming":"8.1.0-alpha.1","@storybook/types":"8.1.0-alpha.1","@storybook/vue3":"8.1.0-alpha.1","@storybook/vue3-vite":"8.1.0-alpha.1","@storybook/vue3-webpack5":"8.1.0-alpha.1","@storybook/web-components":"8.1.0-alpha.1","@storybook/web-components-vite":"8.1.0-alpha.1","@storybook/web-components-webpack5":"8.1.0-alpha.1",sb:"8.1.0-alpha.1",storybook:"8.1.0-alpha.1"};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),import_node_logger3=require_dist4(),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}`);}},import_lazy_universal_dotenv=require_lib8(),import_path8=__toESM2(__require("path")),import_find_up=__toESM2(require_find_up3()),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),{}),NODE_MODULES_RE=/node_modules/,commonGlobOptions=glob2=>NODE_MODULES_RE.test(glob2)?{}:{ignore:["**/node_modules/**"]};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=(init_esm(),__toCommonJS(esm_exports));async function getFrameworkName(options){let framework=await options.presets.apply("framework","",options);if(!framework)throw new Error(import_ts_dedent3.dedent`
538
+ `)}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=__toESM2(require_lib5());function createFileSystemCache(options){return (0, import_file_system_cache.default)(options)}var import_path5=__toESM2(__require("path")),import_find_cache_dir=__toESM2(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"}),import_fs_extra2=require_lib6(),import_path7=__require("path"),import_tempy=__toESM2(require_tempy()),import_path6=__toESM2(__require("path")),import_fs_extra=__toESM2(require_lib6());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}},versions_default={"@storybook/addon-a11y":"8.1.0-alpha.3","@storybook/addon-actions":"8.1.0-alpha.3","@storybook/addon-backgrounds":"8.1.0-alpha.3","@storybook/addon-controls":"8.1.0-alpha.3","@storybook/addon-docs":"8.1.0-alpha.3","@storybook/addon-essentials":"8.1.0-alpha.3","@storybook/addon-highlight":"8.1.0-alpha.3","@storybook/addon-interactions":"8.1.0-alpha.3","@storybook/addon-jest":"8.1.0-alpha.3","@storybook/addon-links":"8.1.0-alpha.3","@storybook/addon-mdx-gfm":"8.1.0-alpha.3","@storybook/addon-measure":"8.1.0-alpha.3","@storybook/addon-onboarding":"8.1.0-alpha.3","@storybook/addon-outline":"8.1.0-alpha.3","@storybook/addon-storysource":"8.1.0-alpha.3","@storybook/addon-themes":"8.1.0-alpha.3","@storybook/addon-toolbars":"8.1.0-alpha.3","@storybook/addon-viewport":"8.1.0-alpha.3","@storybook/angular":"8.1.0-alpha.3","@storybook/blocks":"8.1.0-alpha.3","@storybook/builder-manager":"8.1.0-alpha.3","@storybook/builder-vite":"8.1.0-alpha.3","@storybook/builder-webpack5":"8.1.0-alpha.3","@storybook/channels":"8.1.0-alpha.3","@storybook/cli":"8.1.0-alpha.3","@storybook/client-logger":"8.1.0-alpha.3","@storybook/codemod":"8.1.0-alpha.3","@storybook/components":"8.1.0-alpha.3","@storybook/core-common":"8.1.0-alpha.3","@storybook/core-events":"8.1.0-alpha.3","@storybook/core-server":"8.1.0-alpha.3","@storybook/core-webpack":"8.1.0-alpha.3","@storybook/csf-plugin":"8.1.0-alpha.3","@storybook/csf-tools":"8.1.0-alpha.3","@storybook/docs-tools":"8.1.0-alpha.3","@storybook/ember":"8.1.0-alpha.3","@storybook/html":"8.1.0-alpha.3","@storybook/html-vite":"8.1.0-alpha.3","@storybook/html-webpack5":"8.1.0-alpha.3","@storybook/instrumenter":"8.1.0-alpha.3","@storybook/manager":"8.1.0-alpha.3","@storybook/manager-api":"8.1.0-alpha.3","@storybook/nextjs":"8.1.0-alpha.3","@storybook/node-logger":"8.1.0-alpha.3","@storybook/preact":"8.1.0-alpha.3","@storybook/preact-vite":"8.1.0-alpha.3","@storybook/preact-webpack5":"8.1.0-alpha.3","@storybook/preset-create-react-app":"8.1.0-alpha.3","@storybook/preset-html-webpack":"8.1.0-alpha.3","@storybook/preset-preact-webpack":"8.1.0-alpha.3","@storybook/preset-react-webpack":"8.1.0-alpha.3","@storybook/preset-server-webpack":"8.1.0-alpha.3","@storybook/preset-svelte-webpack":"8.1.0-alpha.3","@storybook/preset-vue3-webpack":"8.1.0-alpha.3","@storybook/preview":"8.1.0-alpha.3","@storybook/preview-api":"8.1.0-alpha.3","@storybook/react":"8.1.0-alpha.3","@storybook/react-dom-shim":"8.1.0-alpha.3","@storybook/react-vite":"8.1.0-alpha.3","@storybook/react-webpack5":"8.1.0-alpha.3","@storybook/router":"8.1.0-alpha.3","@storybook/server":"8.1.0-alpha.3","@storybook/server-webpack5":"8.1.0-alpha.3","@storybook/source-loader":"8.1.0-alpha.3","@storybook/svelte":"8.1.0-alpha.3","@storybook/svelte-vite":"8.1.0-alpha.3","@storybook/svelte-webpack5":"8.1.0-alpha.3","@storybook/sveltekit":"8.1.0-alpha.3","@storybook/telemetry":"8.1.0-alpha.3","@storybook/test":"8.1.0-alpha.3","@storybook/theming":"8.1.0-alpha.3","@storybook/types":"8.1.0-alpha.3","@storybook/vue3":"8.1.0-alpha.3","@storybook/vue3-vite":"8.1.0-alpha.3","@storybook/vue3-webpack5":"8.1.0-alpha.3","@storybook/web-components":"8.1.0-alpha.3","@storybook/web-components-vite":"8.1.0-alpha.3","@storybook/web-components-webpack5":"8.1.0-alpha.3",sb:"8.1.0-alpha.3",storybook:"8.1.0-alpha.3"};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),import_node_logger3=require_dist4(),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}`);}},import_lazy_universal_dotenv=require_lib8(),import_path8=__toESM2(__require("path")),import_find_up=__toESM2(require_find_up3()),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),{}),NODE_MODULES_RE=/node_modules/,commonGlobOptions=glob2=>NODE_MODULES_RE.test(glob2)?{}:{ignore:["**/node_modules/**"]};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=(init_esm(),__toCommonJS(esm_exports));async function getFrameworkName(options){let framework=await options.presets.apply("framework","",options);if(!framework)throw new Error(import_ts_dedent3.dedent`
539
539
  You must specify a framework in '.storybook/main.js' config.
540
540
 
541
541
  https://github.com/storybookjs/storybook/blob/next/MIGRATION.md#framework-field-mandatory
@@ -556,9 +556,9 @@ ${item}`);return}if(!resolved){import_node_logger2.logger.warn(`Could not resolv
556
556
  There was an error while reading the package.json file at ${this.packageJsonPath()}: ${errMessage}
557
557
  Please fix the error and try again.
558
558
  `)}return {...packageJson,dependencies:{...packageJson.dependencies},devDependencies:{...packageJson.devDependencies},peerDependencies:{...packageJson.peerDependencies}}}async getAllDependencies(){let{dependencies,devDependencies,peerDependencies}=await this.retrievePackageJson();return {...dependencies,...devDependencies,...peerDependencies}}async addDependencies(options,dependencies){let{skipInstall}=options;if(skipInstall){let{packageJson}=options;(0, import_tiny_invariant.default)(packageJson,"Missing packageJson.");let dependenciesMap=dependencies.reduce((acc,dep)=>{let[packageName,packageVersion]=getPackageDetails(dep);return {...acc,[packageName]:packageVersion}},{});options.installAsDevDependencies?packageJson.devDependencies={...packageJson.devDependencies,...dependenciesMap}:packageJson.dependencies={...packageJson.dependencies,...dependenciesMap},await this.writePackageJson(packageJson);}else try{await this.runAddDeps(dependencies,!!options.installAsDevDependencies);}catch(e){throw logger7.error(`
559
- An error occurred while installing dependencies:`),logger7.log(e.message),new HandledError(e)}}async removeDependencies(options,dependencies){let{skipInstall}=options;if(skipInstall){let{packageJson}=options;(0, import_tiny_invariant.default)(packageJson,"Missing packageJson."),dependencies.forEach(dep=>{packageJson.devDependencies&&delete packageJson.devDependencies[dep],packageJson.dependencies&&delete packageJson.dependencies[dep];}),await this.writePackageJson(packageJson);}else try{await this.runRemoveDeps(dependencies);}catch(e){throw logger7.error("An error occurred while removing dependencies."),logger7.log(String(e)),new HandledError(e)}}getVersionedPackages(packages){return Promise.all(packages.map(async pkg=>{let[packageName,packageVersion]=getPackageDetails(pkg),latestInRange=await this.latestVersion(packageName,packageVersion),currentVersion=versions_default[packageName];return currentVersion===latestInRange?`${packageName}`:currentVersion?`${packageName}@${currentVersion}`:`${packageName}@^${latestInRange}`}))}getVersions(...packageNames){return Promise.all(packageNames.map(packageName=>this.getVersion(packageName)))}async getVersion(packageName,constraint){let current;/(@storybook|^sb$|^storybook$)/.test(packageName)&&(current=versions_default[packageName]);let latest;try{latest=await this.latestVersion(packageName,constraint);}catch(e){if(current)return logger7.warn(`
559
+ An error occurred while installing dependencies:`),logger7.log(e.message),new HandledError(e)}}async removeDependencies(options,dependencies){let{skipInstall}=options;if(skipInstall){let{packageJson}=options;(0, import_tiny_invariant.default)(packageJson,"Missing packageJson."),dependencies.forEach(dep=>{packageJson.devDependencies&&delete packageJson.devDependencies[dep],packageJson.dependencies&&delete packageJson.dependencies[dep];}),await this.writePackageJson(packageJson);}else try{await this.runRemoveDeps(dependencies);}catch(e){throw logger7.error("An error occurred while removing dependencies."),logger7.log(String(e)),new HandledError(e)}}getVersionedPackages(packages){return Promise.all(packages.map(async pkg=>{let[packageName,packageVersion]=getPackageDetails(pkg),latestInRange=await this.latestVersion(packageName,packageVersion),currentVersion=versions_default[packageName];return currentVersion===latestInRange?`${packageName}`:currentVersion?`${packageName}@${currentVersion}`:`${packageName}@^${latestInRange}`}))}getVersions(...packageNames){return Promise.all(packageNames.map(packageName=>this.getVersion(packageName)))}async getVersion(packageName,constraint){let current;packageName in versions_default&&(current=versions_default[packageName]);let latest;try{latest=await this.latestVersion(packageName,constraint);}catch(e){if(current)return logger7.warn(`
560
560
  ${import_chalk3.default.yellow(String(e))}`),current;throw logger7.error(`
561
- ${import_chalk3.default.red(String(e))}`),new HandledError(e)}return `^${current&&(!constraint||(0, import_semver.satisfies)(current,constraint))&&(0, import_semver.gt)(current,latest)?current:latest}`}async latestVersion(packageName,constraint){if(!constraint)return this.runGetVersions(packageName,!1);let latestVersionSatisfyingTheConstraint=(await this.runGetVersions(packageName,!0)).reverse().find(version=>(0, import_semver.satisfies)(version,constraint));return (0, import_tiny_invariant.default)(latestVersionSatisfyingTheConstraint!=null,"No version satisfying the constraint."),latestVersionSatisfyingTheConstraint}async addStorybookCommandInScripts(options){let storybookCmd=`storybook dev -p ${options?.port??6006}`,buildStorybookCmd="storybook build",preCommand=options?.preCommand?this.getRunCommand(options.preCommand):void 0;await this.addScripts({storybook:[preCommand,storybookCmd].filter(Boolean).join(" && "),"build-storybook":[preCommand,buildStorybookCmd].filter(Boolean).join(" && ")});}async addScripts(scripts){let packageJson=await this.retrievePackageJson();await this.writePackageJson({...packageJson,scripts:{...packageJson.scripts,...scripts}});}async addPackageResolutions(versions2){let packageJson=await this.retrievePackageJson(),resolutions=this.getResolutions(packageJson,versions2);this.writePackageJson({...packageJson,...resolutions});}executeCommandSync({command,args=[],stdio,cwd,ignoreError=!1,env,...execaOptions}){try{return (0,import_execa.sync)(command,args,{cwd:cwd??this.cwd,stdio:stdio??"pipe",encoding:"utf-8",shell:!0,cleanup:!0,env,...execaOptions}).stdout??""}catch(err){if(ignoreError!==!0)throw err;return ""}}async executeCommand({command,args=[],stdio,cwd,ignoreError=!1,env,...execaOptions}){try{return (await(0,import_execa.command)([command,...args].join(" "),{cwd:cwd??this.cwd,stdio:stdio??"pipe",encoding:"utf-8",shell:!0,cleanup:!0,env,...execaOptions})).stdout??""}catch(err){if(ignoreError!==!0)throw err;return ""}}},NPM_ERROR_REGEX=/npm ERR! code (\w+)/,NPM_ERROR_CODES={E401:"Authentication failed or is required.",E403:"Access to the resource is forbidden.",E404:"Requested resource not found.",EACCES:"Permission issue.",EAI_FAIL:"DNS lookup failed.",EBADENGINE:"Engine compatibility check failed.",EBADPLATFORM:"Platform not supported.",ECONNREFUSED:"Connection refused.",ECONNRESET:"Connection reset.",EEXIST:"File or directory already exists.",EINVALIDTYPE:"Invalid type encountered.",EISGIT:"Git operation failed or conflicts with an existing file.",EJSONPARSE:"Error parsing JSON data.",EMISSINGARG:"Required argument missing.",ENEEDAUTH:"Authentication needed.",ENOAUDIT:"No audit available.",ENOENT:"File or directory does not exist.",ENOGIT:"Git not found or failed to run.",ENOLOCK:"Lockfile missing.",ENOSPC:"Insufficient disk space.",ENOTFOUND:"Resource not found.",EOTP:"One-time password required.",EPERM:"Permission error.",EPUBLISHCONFLICT:"Conflict during package publishing.",ERESOLVE:"Dependency resolution error.",EROFS:"File system is read-only.",ERR_SOCKET_TIMEOUT:"Socket timed out.",ETARGET:"Package target not found.",ETIMEDOUT:"Operation timed out.",ETOOMANYARGS:"Too many arguments provided.",EUNKNOWNTYPE:"Unknown type encountered."},NPMProxy=class extends JsPackageManager{constructor(){super(...arguments),this.type="npm";}async initPackageJson(){await this.executeCommand({command:"npm",args:["init","-y"]});}getRunStorybookCommand(){return "npm run storybook"}getRunCommand(command){return `npm run ${command}`}async getNpmVersion(){return this.executeCommand({command:"npm",args:["--version"]})}async getPackageJSON(packageName,basePath=this.cwd){let packageJsonPath=await(0, import_find_up3.sync)(dir=>{let possiblePath=import_path15.default.join(dir,"node_modules",packageName,"package.json");return (0, import_fs3.existsSync)(possiblePath)?possiblePath:void 0},{cwd:basePath});return packageJsonPath?JSON.parse((0, import_fs3.readFileSync)(packageJsonPath,"utf-8")):null}getInstallArgs(){return this.installArgs||(this.installArgs=[]),this.installArgs}runPackageCommandSync(command,args,cwd,stdio){return this.executeCommandSync({command:"npm",args:["exec","--",command,...args],cwd,stdio})}async runPackageCommand(command,args,cwd){return this.executeCommand({command:"npm",args:["exec","--",command,...args],cwd})}async findInstallations(pattern){let exec=async({depth})=>{let pipeToNull=(0, import_os.platform)()==="win32"?"2>NUL":"2>/dev/null";return this.executeCommand({command:"npm",args:["ls","--json",`--depth=${depth}`,pipeToNull],env:{FORCE_COLOR:"false"}})};try{let commandResult=await exec({depth:99}),parsedOutput=JSON.parse(commandResult);return this.mapDependencies(parsedOutput,pattern)}catch{try{let commandResult=await exec({depth:0}),parsedOutput=JSON.parse(commandResult);return this.mapDependencies(parsedOutput,pattern)}catch{import_node_logger6.logger.warn("An issue occurred while trying to find dependencies metadata using npm.");return}}}getResolutions(packageJson,versions2){return {overrides:{...packageJson.overrides,...versions2}}}async runInstall(){await this.executeCommand({command:"npm",args:["install",...this.getInstallArgs()],stdio:"inherit"});}async runAddDeps(dependencies,installAsDevDependencies){let{logStream,readLogFile,moveLogFile,removeLogFile}=await createLogStream(),args=[...dependencies];installAsDevDependencies&&(args=["-D",...args]);try{await this.executeCommand({command:"npm",args:["install",...args,...this.getInstallArgs()],stdio:process.env.CI?"inherit":["ignore",logStream,logStream]});}catch{let stdout=await readLogFile(),errorMessage=this.parseErrorFromLogs(stdout);throw await moveLogFile(),new Error(import_ts_dedent7.default`${errorMessage}
561
+ ${import_chalk3.default.red(String(e))}`),new HandledError(e)}return `^${current&&(!constraint||(0, import_semver.satisfies)(current,constraint))&&(0, import_semver.gt)(current,latest)?current:latest}`}async latestVersion(packageName,constraint){if(!constraint)return this.runGetVersions(packageName,!1);let latestVersionSatisfyingTheConstraint=(await this.runGetVersions(packageName,!0)).reverse().find(version=>(0, import_semver.satisfies)(version,constraint));return (0, import_tiny_invariant.default)(latestVersionSatisfyingTheConstraint!=null,"No version satisfying the constraint."),latestVersionSatisfyingTheConstraint}async addStorybookCommandInScripts(options){let storybookCmd=`storybook dev -p ${options?.port??6006}`,buildStorybookCmd="storybook build",preCommand=options?.preCommand?this.getRunCommand(options.preCommand):void 0;await this.addScripts({storybook:[preCommand,storybookCmd].filter(Boolean).join(" && "),"build-storybook":[preCommand,buildStorybookCmd].filter(Boolean).join(" && ")});}async addScripts(scripts){let packageJson=await this.retrievePackageJson();await this.writePackageJson({...packageJson,scripts:{...packageJson.scripts,...scripts}});}async addPackageResolutions(versions2){let packageJson=await this.retrievePackageJson(),resolutions=this.getResolutions(packageJson,versions2);this.writePackageJson({...packageJson,...resolutions});}executeCommandSync({command,args=[],stdio,cwd,ignoreError=!1,env,...execaOptions}){try{return (0,import_execa.sync)(command,args,{cwd:cwd??this.cwd,stdio:stdio??"pipe",encoding:"utf-8",shell:!0,cleanup:!0,env,...execaOptions}).stdout??""}catch(err){if(ignoreError!==!0)throw err;return ""}}async getInstalledVersion(packageName){let installations=await this.findInstallations([packageName]);return installations&&Object.entries(installations.dependencies)[0]?.[1]?.[0].version||null}async executeCommand({command,args=[],stdio,cwd,ignoreError=!1,env,...execaOptions}){try{return (await(0,import_execa.command)([command,...args].join(" "),{cwd:cwd??this.cwd,stdio:stdio??"pipe",encoding:"utf-8",shell:!0,cleanup:!0,env,...execaOptions})).stdout??""}catch(err){if(ignoreError!==!0)throw err;return ""}}},NPM_ERROR_REGEX=/npm ERR! code (\w+)/,NPM_ERROR_CODES={E401:"Authentication failed or is required.",E403:"Access to the resource is forbidden.",E404:"Requested resource not found.",EACCES:"Permission issue.",EAI_FAIL:"DNS lookup failed.",EBADENGINE:"Engine compatibility check failed.",EBADPLATFORM:"Platform not supported.",ECONNREFUSED:"Connection refused.",ECONNRESET:"Connection reset.",EEXIST:"File or directory already exists.",EINVALIDTYPE:"Invalid type encountered.",EISGIT:"Git operation failed or conflicts with an existing file.",EJSONPARSE:"Error parsing JSON data.",EMISSINGARG:"Required argument missing.",ENEEDAUTH:"Authentication needed.",ENOAUDIT:"No audit available.",ENOENT:"File or directory does not exist.",ENOGIT:"Git not found or failed to run.",ENOLOCK:"Lockfile missing.",ENOSPC:"Insufficient disk space.",ENOTFOUND:"Resource not found.",EOTP:"One-time password required.",EPERM:"Permission error.",EPUBLISHCONFLICT:"Conflict during package publishing.",ERESOLVE:"Dependency resolution error.",EROFS:"File system is read-only.",ERR_SOCKET_TIMEOUT:"Socket timed out.",ETARGET:"Package target not found.",ETIMEDOUT:"Operation timed out.",ETOOMANYARGS:"Too many arguments provided.",EUNKNOWNTYPE:"Unknown type encountered."},NPMProxy=class extends JsPackageManager{constructor(){super(...arguments),this.type="npm";}async initPackageJson(){await this.executeCommand({command:"npm",args:["init","-y"]});}getRunStorybookCommand(){return "npm run storybook"}getRunCommand(command){return `npm run ${command}`}async getNpmVersion(){return this.executeCommand({command:"npm",args:["--version"]})}async getPackageJSON(packageName,basePath=this.cwd){let packageJsonPath=await(0, import_find_up3.sync)(dir=>{let possiblePath=import_path15.default.join(dir,"node_modules",packageName,"package.json");return (0, import_fs3.existsSync)(possiblePath)?possiblePath:void 0},{cwd:basePath});return packageJsonPath?JSON.parse((0, import_fs3.readFileSync)(packageJsonPath,"utf-8")):null}getInstallArgs(){return this.installArgs||(this.installArgs=[]),this.installArgs}runPackageCommandSync(command,args,cwd,stdio){return this.executeCommandSync({command:"npm",args:["exec","--",command,...args],cwd,stdio})}async runPackageCommand(command,args,cwd){return this.executeCommand({command:"npm",args:["exec","--",command,...args],cwd})}async findInstallations(pattern){let exec=async({depth})=>{let pipeToNull=(0, import_os.platform)()==="win32"?"2>NUL":"2>/dev/null";return this.executeCommand({command:"npm",args:["ls","--json",`--depth=${depth}`,pipeToNull],env:{FORCE_COLOR:"false"}})};try{let commandResult=await exec({depth:99}),parsedOutput=JSON.parse(commandResult);return this.mapDependencies(parsedOutput,pattern)}catch{try{let commandResult=await exec({depth:0}),parsedOutput=JSON.parse(commandResult);return this.mapDependencies(parsedOutput,pattern)}catch{import_node_logger6.logger.warn("An issue occurred while trying to find dependencies metadata using npm.");return}}}getResolutions(packageJson,versions2){return {overrides:{...packageJson.overrides,...versions2}}}async runInstall(){await this.executeCommand({command:"npm",args:["install",...this.getInstallArgs()],stdio:"inherit"});}async runAddDeps(dependencies,installAsDevDependencies){let{logStream,readLogFile,moveLogFile,removeLogFile}=await createLogStream(),args=[...dependencies];installAsDevDependencies&&(args=["-D",...args]);try{await this.executeCommand({command:"npm",args:["install",...args,...this.getInstallArgs()],stdio:process.env.CI?"inherit":["ignore",logStream,logStream]});}catch{let stdout=await readLogFile(),errorMessage=this.parseErrorFromLogs(stdout);throw await moveLogFile(),new Error(import_ts_dedent7.default`${errorMessage}
562
562
 
563
563
  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:"npm",args:["uninstall",...this.getInstallArgs(),...args],stdio:"inherit"});}async runGetVersions(packageName,fetchAllVersions){let args=[fetchAllVersions?"versions":"version","--json"],commandResult=await this.executeCommand({command:"npm",args:["info",packageName,...args]});try{let parsedOutput=JSON.parse(commandResult);if(parsedOutput.error)throw new Error(parsedOutput.error.summary);return parsedOutput}catch{throw new Error(`Unable to find versions of ${packageName} using npm`)}}mapDependencies(input,pattern){let acc={},existingVersions={},duplicatedDependencies={},recurse=([name,packageInfo])=>{if(!name||!pattern.some(p=>new RegExp(`^${p.replace(/\*/g,".*")}$`).test(name)))return;let value={version:packageInfo.version,location:""};existingVersions[name]?.includes(value.version)||(acc[name]?acc[name].push(value):acc[name]=[value],existingVersions[name]=(0, import_sort.default)([...existingVersions[name]||[],value.version]),existingVersions[name].length>1&&(duplicatedDependencies[name]=existingVersions[name])),packageInfo.dependencies&&Object.entries(packageInfo.dependencies).forEach(recurse);};return Object.entries(input.dependencies).forEach(recurse),{dependencies:acc,duplicatedDependencies,infoCommand:"npm ls --depth=1",dedupeCommand:"npm dedupe"}}parseErrorFromLogs(logs){let finalMessage="NPM error",match=logs.match(NPM_ERROR_REGEX);if(match){let errorCode=match[1];errorCode&&(finalMessage=`${finalMessage} ${errorCode}`);let errorMessage=NPM_ERROR_CODES[errorCode];errorMessage&&(finalMessage=`${finalMessage} - ${errorMessage}`);}return finalMessage.trim()}},import_fs_extra6=require_lib6(),import_ts_dedent8=__toESM2((init_esm(),__toCommonJS(esm_exports))),import_find_up4=require_find_up3(),import_path16=__toESM2(__require("path")),import_fs4=__toESM2(__require("fs")),PNPM_ERROR_REGEX=/(ELIFECYCLE|ERR_PNPM_[A-Z_]+)\s+(.*)/i,PNPMProxy=class extends JsPackageManager{constructor(){super(...arguments),this.type="pnpm";}detectWorkspaceRoot(){let pnpmWorkspaceYaml=`${process.cwd()}/pnpm-workspace.yaml`;return (0, import_fs_extra6.pathExistsSync)(pnpmWorkspaceYaml)}async initPackageJson(){await this.executeCommand({command:"pnpm",args:["init"]});}getRunStorybookCommand(){return "pnpm run storybook"}getRunCommand(command){return `pnpm run ${command}`}async getPnpmVersion(){return this.executeCommand({command:"pnpm",args:["--version"]})}getInstallArgs(){return this.installArgs||(this.installArgs=[],this.detectWorkspaceRoot()&&this.installArgs.push("-w")),this.installArgs}runPackageCommandSync(command,args,cwd,stdio){return this.executeCommandSync({command:"pnpm",args:["exec",command,...args],cwd,stdio})}async runPackageCommand(command,args,cwd){return this.executeCommand({command:"pnpm",args:["exec",command,...args],cwd})}async findInstallations(pattern){let commandResult=await this.executeCommand({command:"pnpm",args:["list",pattern.map(p=>`"${p}"`).join(" "),"--json","--depth=99"],env:{FORCE_COLOR:"false"}});try{let parsedOutput=JSON.parse(commandResult);return this.mapDependencies(parsedOutput,pattern)}catch{return}}async getPackageJSON(packageName,basePath=this.cwd){let pnpapiPath=(0, import_find_up4.sync)([".pnp.js",".pnp.cjs"],{cwd:basePath});if(pnpapiPath)try{let pnpApi=__require(pnpapiPath),resolvedPath=await pnpApi.resolveToUnqualified(packageName,basePath,{considerBuiltins:!1}),pkgLocator=pnpApi.findPackageLocator(resolvedPath),pkg=pnpApi.getPackageInformation(pkgLocator);return JSON.parse(import_fs4.default.readFileSync(import_path16.default.join(pkg.packageLocation,"package.json"),"utf-8"))}catch(error){return error.code!=="MODULE_NOT_FOUND"&&console.error("Error while fetching package version in PNPM PnP mode:",error),null}let packageJsonPath=await(0, import_find_up4.sync)(dir=>{let possiblePath=import_path16.default.join(dir,"node_modules",packageName,"package.json");return import_fs4.default.existsSync(possiblePath)?possiblePath:void 0},{cwd:basePath});return packageJsonPath?JSON.parse(import_fs4.default.readFileSync(packageJsonPath,"utf-8")):null}getResolutions(packageJson,versions2){return {overrides:{...packageJson.overrides,...versions2}}}async runInstall(){await this.executeCommand({command:"pnpm",args:["install",...this.getInstallArgs()],stdio:"inherit"});}async runAddDeps(dependencies,installAsDevDependencies){let args=[...dependencies];installAsDevDependencies&&(args=["-D",...args]);let{logStream,readLogFile,moveLogFile,removeLogFile}=await createLogStream();try{await this.executeCommand({command:"pnpm",args:["add",...args,...this.getInstallArgs()],stdio:process.env.CI?"inherit":["ignore",logStream,logStream]});}catch{let stdout=await readLogFile(),errorMessage=this.parseErrorFromLogs(stdout);throw await moveLogFile(),new Error(import_ts_dedent8.default`${errorMessage}
564
564
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@storybook/addon-onboarding",
3
- "version": "8.1.0-alpha.1",
3
+ "version": "8.1.0-alpha.3",
4
4
  "description": "Storybook Addon Onboarding - Introduces a new onboarding experience",
5
5
  "keywords": [
6
6
  "storybook-addons",
@@ -47,16 +47,16 @@
47
47
  },
48
48
  "devDependencies": {
49
49
  "@radix-ui/react-dialog": "^1.0.5",
50
- "@storybook/channels": "8.1.0-alpha.1",
51
- "@storybook/components": "8.1.0-alpha.1",
52
- "@storybook/core-events": "8.1.0-alpha.1",
50
+ "@storybook/channels": "8.1.0-alpha.3",
51
+ "@storybook/components": "8.1.0-alpha.3",
52
+ "@storybook/core-events": "8.1.0-alpha.3",
53
53
  "@storybook/icons": "^1.2.5",
54
- "@storybook/manager-api": "8.1.0-alpha.1",
55
- "@storybook/react": "8.1.0-alpha.1",
56
- "@storybook/telemetry": "8.1.0-alpha.1",
57
- "@storybook/test": "8.1.0-alpha.1",
58
- "@storybook/theming": "8.1.0-alpha.1",
59
- "@storybook/types": "8.1.0-alpha.1",
54
+ "@storybook/manager-api": "8.1.0-alpha.3",
55
+ "@storybook/react": "8.1.0-alpha.3",
56
+ "@storybook/telemetry": "8.1.0-alpha.3",
57
+ "@storybook/test": "8.1.0-alpha.3",
58
+ "@storybook/theming": "8.1.0-alpha.3",
59
+ "@storybook/types": "8.1.0-alpha.3",
60
60
  "framer-motion": "^11.0.3",
61
61
  "react": "^18.2.0",
62
62
  "react-confetti": "^6.1.0",