create-storybook 8.4.0-alpha.5 → 8.4.0-alpha.7

Sign up to get free protection for your applications and to get access to all the features.
@@ -12,7 +12,7 @@
12
12
  `).map(line=>exec(line,columns,options)).join(`
13
13
  `)}var import_cli_boxes2=__toESM(require_cli_boxes(),1),NEWLINE=`
14
14
  `,PAD=" ",NONE="none",terminalColumns=()=>{let{env:env2,stdout,stderr}=import_node_process2.default;return stdout?.columns?stdout.columns:stderr?.columns?stderr.columns:env2.COLUMNS?Number.parseInt(env2.COLUMNS,10):80},getObject=detail=>typeof detail=="number"?{top:detail,right:detail*3,bottom:detail,left:detail*3}:{top:0,right:0,bottom:0,left:0,...detail},getBorderWidth=borderStyle=>borderStyle===NONE?0:2,getBorderChars=borderStyle=>{let sides=["topLeft","topRight","bottomRight","bottomLeft","left","right","top","bottom"],characters;if(borderStyle===NONE){borderStyle={};for(let side of sides)borderStyle[side]=""}if(typeof borderStyle=="string"){if(characters=import_cli_boxes.default[borderStyle],!characters)throw new TypeError(`Invalid border style: ${borderStyle}`)}else{typeof borderStyle?.vertical=="string"&&(borderStyle.left=borderStyle.vertical,borderStyle.right=borderStyle.vertical),typeof borderStyle?.horizontal=="string"&&(borderStyle.top=borderStyle.horizontal,borderStyle.bottom=borderStyle.horizontal);for(let side of sides)if(borderStyle[side]===null||typeof borderStyle[side]!="string")throw new TypeError(`Invalid border style: ${side}`);characters=borderStyle}return characters},makeTitle=(text,horizontal,alignment)=>{let title="",textWidth=stringWidth(text);switch(alignment){case"left":{title=text+horizontal.slice(textWidth);break}case"right":{title=horizontal.slice(textWidth)+text;break}default:{horizontal=horizontal.slice(textWidth),horizontal.length%2===1?(horizontal=horizontal.slice(Math.floor(horizontal.length/2)),title=horizontal.slice(1)+text+horizontal):(horizontal=horizontal.slice(horizontal.length/2),title=horizontal+text+horizontal);break}}return title},makeContentText=(text,{padding,width,textAlignment,height})=>{text=(0,import_ansi_align.default)(text,{align:textAlignment});let lines=text.split(NEWLINE),textWidth=widestLine(text),max=width-padding.left-padding.right;if(textWidth>max){let newLines=[];for(let line of lines){let createdLines=wrapAnsi(line,max,{hard:!0}),alignedLinesArray=(0,import_ansi_align.default)(createdLines,{align:textAlignment}).split(`
15
- `),longestLength=Math.max(...alignedLinesArray.map(s=>stringWidth(s)));for(let alignedLine of alignedLinesArray){let paddedLine;switch(textAlignment){case"center":{paddedLine=PAD.repeat((max-longestLength)/2)+alignedLine;break}case"right":{paddedLine=PAD.repeat(max-longestLength)+alignedLine;break}default:{paddedLine=alignedLine;break}}newLines.push(paddedLine)}}lines=newLines}textAlignment==="center"&&textWidth<max?lines=lines.map(line=>PAD.repeat((max-textWidth)/2)+line):textAlignment==="right"&&textWidth<max&&(lines=lines.map(line=>PAD.repeat(max-textWidth)+line));let paddingLeft=PAD.repeat(padding.left),paddingRight=PAD.repeat(padding.right);return lines=lines.map(line=>paddingLeft+line+paddingRight),lines=lines.map(line=>{if(width-stringWidth(line)>0)switch(textAlignment){case"center":return line+PAD.repeat(width-stringWidth(line));case"right":return line+PAD.repeat(width-stringWidth(line));default:return line+PAD.repeat(width-stringWidth(line))}return line}),padding.top>0&&(lines=[...Array.from({length:padding.top}).fill(PAD.repeat(width)),...lines]),padding.bottom>0&&(lines=[...lines,...Array.from({length:padding.bottom}).fill(PAD.repeat(width))]),height&&lines.length>height?lines=lines.slice(0,height):height&&lines.length<height&&(lines=[...lines,...Array.from({length:height-lines.length}).fill(PAD.repeat(width))]),lines.join(NEWLINE)},boxContent=(content,contentWidth,options)=>{let colorizeBorder=border=>{let newBorder=options.borderColor?getColorFn(options.borderColor)(border):border;return options.dimBorder?source_default.dim(newBorder):newBorder},colorizeContent=content2=>options.backgroundColor?getBGColorFn(options.backgroundColor)(content2):content2,chars=getBorderChars(options.borderStyle),columns=terminalColumns(),marginLeft=PAD.repeat(options.margin.left);if(options.float==="center"){let marginWidth=Math.max((columns-contentWidth-getBorderWidth(options.borderStyle))/2,0);marginLeft=PAD.repeat(marginWidth)}else if(options.float==="right"){let marginWidth=Math.max(columns-contentWidth-options.margin.right-getBorderWidth(options.borderStyle),0);marginLeft=PAD.repeat(marginWidth)}let result="";options.margin.top&&(result+=NEWLINE.repeat(options.margin.top)),(options.borderStyle!==NONE||options.title)&&(result+=colorizeBorder(marginLeft+chars.topLeft+(options.title?makeTitle(options.title,chars.top.repeat(contentWidth),options.titleAlignment):chars.top.repeat(contentWidth))+chars.topRight)+NEWLINE);let lines=content.split(NEWLINE);return result+=lines.map(line=>marginLeft+colorizeBorder(chars.left)+colorizeContent(line)+colorizeBorder(chars.right)).join(NEWLINE),options.borderStyle!==NONE&&(result+=NEWLINE+colorizeBorder(marginLeft+chars.bottomLeft+chars.bottom.repeat(contentWidth)+chars.bottomRight)),options.margin.bottom&&(result+=NEWLINE.repeat(options.margin.bottom)),result},sanitizeOptions=options=>{if(options.fullscreen&&import_node_process2.default?.stdout){let newDimensions=[import_node_process2.default.stdout.columns,import_node_process2.default.stdout.rows];typeof options.fullscreen=="function"&&(newDimensions=options.fullscreen(...newDimensions)),options.width||(options.width=newDimensions[0]),options.height||(options.height=newDimensions[1])}return options.width&&(options.width=Math.max(1,options.width-getBorderWidth(options.borderStyle))),options.height&&(options.height=Math.max(1,options.height-getBorderWidth(options.borderStyle))),options},formatTitle=(title,borderStyle)=>borderStyle===NONE?title:` ${title} `,determineDimensions=(text,options)=>{options=sanitizeOptions(options);let widthOverride=options.width!==void 0,columns=terminalColumns(),borderWidth=getBorderWidth(options.borderStyle),maxWidth=columns-options.margin.left-options.margin.right-borderWidth,widest=widestLine(wrapAnsi(text,columns-borderWidth,{hard:!0,trim:!1}))+options.padding.left+options.padding.right;if(options.title&&widthOverride?(options.title=options.title.slice(0,Math.max(0,options.width-2)),options.title&&(options.title=formatTitle(options.title,options.borderStyle))):options.title&&(options.title=options.title.slice(0,Math.max(0,maxWidth-2)),options.title&&(options.title=formatTitle(options.title,options.borderStyle),stringWidth(options.title)>widest&&(options.width=stringWidth(options.title)))),options.width=options.width?options.width:widest,!widthOverride){if(options.margin.left&&options.margin.right&&options.width>maxWidth){let multiplier=(columns-options.width-borderWidth)/(options.margin.left+options.margin.right);options.margin.left=Math.max(0,Math.floor(options.margin.left*multiplier)),options.margin.right=Math.max(0,Math.floor(options.margin.right*multiplier))}options.width=Math.min(options.width,columns-borderWidth-options.margin.left-options.margin.right)}return options.width-(options.padding.left+options.padding.right)<=0&&(options.padding.left=0,options.padding.right=0),options.height&&options.height-(options.padding.top+options.padding.bottom)<=0&&(options.padding.top=0,options.padding.bottom=0),options},isHex=color=>color.match(/^#(?:[0-f]{3}){1,2}$/i),isColorValid=color=>typeof color=="string"&&(source_default[color]??isHex(color)),getColorFn=color=>isHex(color)?source_default.hex(color):source_default[color],getBGColorFn=color=>isHex(color)?source_default.bgHex(color):source_default[camelCase(["bg",color])];function boxen(text,options){if(options={padding:0,borderStyle:"single",dimBorder:!1,textAlignment:"left",float:"left",titleAlignment:"left",...options},options.align&&(options.textAlignment=options.align),options.borderColor&&!isColorValid(options.borderColor))throw new Error(`${options.borderColor} is not a valid borderColor`);if(options.backgroundColor&&!isColorValid(options.backgroundColor))throw new Error(`${options.backgroundColor} is not a valid backgroundColor`);return options.padding=getObject(options.padding),options.margin=getObject(options.margin),options=determineDimensions(text,options),text=makeContentText(text,options),boxContent(text,options.width,options)}var import_find_up=__toESM(require("find-up"),1),import_picocolors2=__toESM(require_picocolors(),1),import_prompts2=__toESM(require("prompts"),1),import_semver2=require("semver"),import_ts_dedent5=require("ts-dedent");var import_node_path3=require("path"),import_cli6=require("storybook/internal/cli"),import_cli7=require("storybook/internal/cli"),import_cli8=require("storybook/internal/cli"),import_common2=require("storybook/internal/common");var import_promises2=require("fs/promises"),import_node_path2=require("path"),import_cli2=require("storybook/internal/cli"),import_cli3=require("storybook/internal/cli"),import_cli4=require("storybook/internal/cli"),import_cli5=require("storybook/internal/cli"),import_common=require("storybook/internal/common"),import_ora=__toESM(require("ora"),1),import_tiny_invariant=__toESM(require("tiny-invariant"),1),import_ts_dedent2=require("ts-dedent");var import_promises=require("fs/promises"),import_node_path=require("path"),import_cli=require("storybook/internal/cli"),import_node_logger=require("storybook/internal/node-logger"),import_ts_dedent=require("ts-dedent"),pathExists=async path=>(0,import_promises.stat)(path).then(()=>!0).catch(()=>!1),sanitizeFramework=framework=>{let matches=framework.match(/(@storybook\/\w+(?:-\w+)*)|(storybook-(\w+(?:-\w+)*))/g);if(matches)return matches[0]};async function configureMain({addons,extensions=["js","jsx","mjs","ts","tsx"],storybookConfigFolder,language,prefixes=[],...custom}){let srcPath=(0,import_node_path.resolve)(storybookConfigFolder,"../src"),prefix=await pathExists(srcPath)?"../src":"../stories",config={stories:[`${prefix}/**/*.mdx`,`${prefix}/**/*.stories.@(${extensions.join("|")})`],addons,...custom},isTypescript=language===import_cli.SupportedLanguage.TYPESCRIPT_4_9||language===import_cli.SupportedLanguage.TYPESCRIPT_3_8,mainConfigTemplate=import_ts_dedent.dedent`<<import>><<prefix>>const config<<type>> = <<mainContents>>;
15
+ `),longestLength=Math.max(...alignedLinesArray.map(s=>stringWidth(s)));for(let alignedLine of alignedLinesArray){let paddedLine;switch(textAlignment){case"center":{paddedLine=PAD.repeat((max-longestLength)/2)+alignedLine;break}case"right":{paddedLine=PAD.repeat(max-longestLength)+alignedLine;break}default:{paddedLine=alignedLine;break}}newLines.push(paddedLine)}}lines=newLines}textAlignment==="center"&&textWidth<max?lines=lines.map(line=>PAD.repeat((max-textWidth)/2)+line):textAlignment==="right"&&textWidth<max&&(lines=lines.map(line=>PAD.repeat(max-textWidth)+line));let paddingLeft=PAD.repeat(padding.left),paddingRight=PAD.repeat(padding.right);return lines=lines.map(line=>paddingLeft+line+paddingRight),lines=lines.map(line=>{if(width-stringWidth(line)>0)switch(textAlignment){case"center":return line+PAD.repeat(width-stringWidth(line));case"right":return line+PAD.repeat(width-stringWidth(line));default:return line+PAD.repeat(width-stringWidth(line))}return line}),padding.top>0&&(lines=[...Array.from({length:padding.top}).fill(PAD.repeat(width)),...lines]),padding.bottom>0&&(lines=[...lines,...Array.from({length:padding.bottom}).fill(PAD.repeat(width))]),height&&lines.length>height?lines=lines.slice(0,height):height&&lines.length<height&&(lines=[...lines,...Array.from({length:height-lines.length}).fill(PAD.repeat(width))]),lines.join(NEWLINE)},boxContent=(content,contentWidth,options)=>{let colorizeBorder=border=>{let newBorder=options.borderColor?getColorFn(options.borderColor)(border):border;return options.dimBorder?source_default.dim(newBorder):newBorder},colorizeContent=content2=>options.backgroundColor?getBGColorFn(options.backgroundColor)(content2):content2,chars=getBorderChars(options.borderStyle),columns=terminalColumns(),marginLeft=PAD.repeat(options.margin.left);if(options.float==="center"){let marginWidth=Math.max((columns-contentWidth-getBorderWidth(options.borderStyle))/2,0);marginLeft=PAD.repeat(marginWidth)}else if(options.float==="right"){let marginWidth=Math.max(columns-contentWidth-options.margin.right-getBorderWidth(options.borderStyle),0);marginLeft=PAD.repeat(marginWidth)}let result="";options.margin.top&&(result+=NEWLINE.repeat(options.margin.top)),(options.borderStyle!==NONE||options.title)&&(result+=colorizeBorder(marginLeft+chars.topLeft+(options.title?makeTitle(options.title,chars.top.repeat(contentWidth),options.titleAlignment):chars.top.repeat(contentWidth))+chars.topRight)+NEWLINE);let lines=content.split(NEWLINE);return result+=lines.map(line=>marginLeft+colorizeBorder(chars.left)+colorizeContent(line)+colorizeBorder(chars.right)).join(NEWLINE),options.borderStyle!==NONE&&(result+=NEWLINE+colorizeBorder(marginLeft+chars.bottomLeft+chars.bottom.repeat(contentWidth)+chars.bottomRight)),options.margin.bottom&&(result+=NEWLINE.repeat(options.margin.bottom)),result},sanitizeOptions=options=>{if(options.fullscreen&&import_node_process2.default?.stdout){let newDimensions=[import_node_process2.default.stdout.columns,import_node_process2.default.stdout.rows];typeof options.fullscreen=="function"&&(newDimensions=options.fullscreen(...newDimensions)),options.width||(options.width=newDimensions[0]),options.height||(options.height=newDimensions[1])}return options.width&&(options.width=Math.max(1,options.width-getBorderWidth(options.borderStyle))),options.height&&(options.height=Math.max(1,options.height-getBorderWidth(options.borderStyle))),options},formatTitle=(title,borderStyle)=>borderStyle===NONE?title:` ${title} `,determineDimensions=(text,options)=>{options=sanitizeOptions(options);let widthOverride=options.width!==void 0,columns=terminalColumns(),borderWidth=getBorderWidth(options.borderStyle),maxWidth=columns-options.margin.left-options.margin.right-borderWidth,widest=widestLine(wrapAnsi(text,columns-borderWidth,{hard:!0,trim:!1}))+options.padding.left+options.padding.right;if(options.title&&widthOverride?(options.title=options.title.slice(0,Math.max(0,options.width-2)),options.title&&(options.title=formatTitle(options.title,options.borderStyle))):options.title&&(options.title=options.title.slice(0,Math.max(0,maxWidth-2)),options.title&&(options.title=formatTitle(options.title,options.borderStyle),stringWidth(options.title)>widest&&(options.width=stringWidth(options.title)))),options.width=options.width?options.width:widest,!widthOverride){if(options.margin.left&&options.margin.right&&options.width>maxWidth){let multiplier=(columns-options.width-borderWidth)/(options.margin.left+options.margin.right);options.margin.left=Math.max(0,Math.floor(options.margin.left*multiplier)),options.margin.right=Math.max(0,Math.floor(options.margin.right*multiplier))}options.width=Math.min(options.width,columns-borderWidth-options.margin.left-options.margin.right)}return options.width-(options.padding.left+options.padding.right)<=0&&(options.padding.left=0,options.padding.right=0),options.height&&options.height-(options.padding.top+options.padding.bottom)<=0&&(options.padding.top=0,options.padding.bottom=0),options},isHex=color=>color.match(/^#(?:[0-f]{3}){1,2}$/i),isColorValid=color=>typeof color=="string"&&(source_default[color]??isHex(color)),getColorFn=color=>isHex(color)?source_default.hex(color):source_default[color],getBGColorFn=color=>isHex(color)?source_default.bgHex(color):source_default[camelCase(["bg",color])];function boxen(text,options){if(options={padding:0,borderStyle:"single",dimBorder:!1,textAlignment:"left",float:"left",titleAlignment:"left",...options},options.align&&(options.textAlignment=options.align),options.borderColor&&!isColorValid(options.borderColor))throw new Error(`${options.borderColor} is not a valid borderColor`);if(options.backgroundColor&&!isColorValid(options.backgroundColor))throw new Error(`${options.backgroundColor} is not a valid backgroundColor`);return options.padding=getObject(options.padding),options.margin=getObject(options.margin),options=determineDimensions(text,options),text=makeContentText(text,options),boxContent(text,options.width,options)}var import_find_up=__toESM(require("find-up"),1),import_picocolors2=__toESM(require_picocolors(),1),import_prompts2=__toESM(require("prompts"),1),import_semver3=require("semver"),import_ts_dedent5=require("ts-dedent");var import_node_path3=require("path"),import_cli6=require("storybook/internal/cli"),import_cli7=require("storybook/internal/cli"),import_cli8=require("storybook/internal/cli"),import_common2=require("storybook/internal/common");var import_promises2=require("fs/promises"),import_node_path2=require("path"),import_cli2=require("storybook/internal/cli"),import_cli3=require("storybook/internal/cli"),import_cli4=require("storybook/internal/cli"),import_cli5=require("storybook/internal/cli"),import_common=require("storybook/internal/common"),import_ora=__toESM(require("ora"),1),import_tiny_invariant=__toESM(require("tiny-invariant"),1),import_ts_dedent2=require("ts-dedent");var import_promises=require("fs/promises"),import_node_path=require("path"),import_cli=require("storybook/internal/cli"),import_node_logger=require("storybook/internal/node-logger"),import_ts_dedent=require("ts-dedent"),pathExists=async path=>(0,import_promises.stat)(path).then(()=>!0).catch(()=>!1),sanitizeFramework=framework=>{let matches=framework.match(/(@storybook\/\w+(?:-\w+)*)|(storybook-(\w+(?:-\w+)*))/g);if(matches)return matches[0]};async function configureMain({addons,extensions=["js","jsx","mjs","ts","tsx"],storybookConfigFolder,language,prefixes=[],...custom}){let srcPath=(0,import_node_path.resolve)(storybookConfigFolder,"../src"),prefix=await pathExists(srcPath)?"../src":"../stories",config={stories:[`${prefix}/**/*.mdx`,`${prefix}/**/*.stories.@(${extensions.join("|")})`],addons,...custom},isTypescript=language===import_cli.SupportedLanguage.TYPESCRIPT_4_9||language===import_cli.SupportedLanguage.TYPESCRIPT_3_8,mainConfigTemplate=import_ts_dedent.dedent`<<import>><<prefix>>const config<<type>> = <<mainContents>>;
16
16
  export default config;`,frameworkPackage=sanitizeFramework(custom.framework?.name);frameworkPackage||(mainConfigTemplate=mainConfigTemplate.replace("<<import>>","").replace("<<type>>",""),import_node_logger.logger.warn("Could not find framework package name"));let mainContents=JSON.stringify(config,null,2).replace(/['"]%%/g,"").replace(/%%['"]/g,""),imports=[],finalPrefixes=[...prefixes];custom.framework?.name.includes("path.dirname(")&&imports.push("import path from 'node:path';"),isTypescript?imports.push(`import type { StorybookConfig } from '${frameworkPackage}';`):finalPrefixes.push(`/** @type { import('${frameworkPackage}').StorybookConfig } */`);let mainJsContents=mainConfigTemplate.replace("<<import>>",`${imports.join(`
17
17
 
18
18
  `)}
@@ -73,7 +73,7 @@
73
73
  Storybook 7.0+ doesn't support react-scripts@<5.0.0.
74
74
 
75
75
  https://github.com/storybookjs/storybook/blob/next/MIGRATION.md#create-react-app-dropped-cra4-support
76
- `);let extraPackages=[];extraPackages.push("webpack"),extraPackages.push("prop-types");let extraAddons=["@storybook/preset-create-react-app","@storybook/addon-onboarding"];await baseGenerator(packageManager,npmOptions,{...options,builder:import_cli17.CoreBuilder.Webpack5},"react",{webpackCompiler:()=>{},extraAddons,extraPackages,staticDir:(0,import_node_fs2.existsSync)((0,import_node_path5.resolve)("./public"))?"public":void 0,extraMain})},REACT_SCRIPTS_default=generator9;var import_cli18=require("storybook/internal/cli");var generator10=async(packageManager,npmOptions,options)=>{await baseGenerator(packageManager,npmOptions,{...options,builder:import_cli18.CoreBuilder.Webpack5},"server",{webpackCompiler:()=>"swc",extensions:["json","yaml","yml"]})},SERVER_default=generator10;var import_cli19=require("storybook/internal/cli");var generator11=async(packageManager,npmOptions,options)=>{await baseGenerator(packageManager,npmOptions,{...options,builder:import_cli19.CoreBuilder.Vite},"solid",{},"solid")},SOLID_default=generator11;var generator12=async(packageManager,npmOptions,options)=>{await baseGenerator(packageManager,npmOptions,options,"svelte",{extensions:["js","ts","svelte"],extraAddons:["@storybook/addon-svelte-csf"]})},SVELTE_default=generator12;var import_cli20=require("storybook/internal/cli");var generator13=async(packageManager,npmOptions,options)=>{await baseGenerator(packageManager,npmOptions,{...options,builder:import_cli20.CoreBuilder.Vite},"svelte",{extensions:["js","ts","svelte"],extraAddons:["@storybook/addon-svelte-csf"]},"sveltekit")},SVELTEKIT_default=generator13;var import_cli21=require("storybook/internal/cli");var generator14=async(packageManager,npmOptions,options)=>{await baseGenerator(packageManager,npmOptions,options,"vue3",{extraAddons:["@storybook/addon-onboarding"],extraPackages:async({builder})=>builder===import_cli21.CoreBuilder.Webpack5?["vue-loader@^17.0.0","@vue/compiler-sfc@^3.2.0"]:[],webpackCompiler:({builder})=>builder===import_cli21.CoreBuilder.Webpack5?"swc":void 0})},VUE3_default=generator14;var import_cli22=require("storybook/internal/cli");var generator15=async(packageManager,npmOptions,options)=>baseGenerator(packageManager,npmOptions,options,"web-components",{extraPackages:["lit"],webpackCompiler:({builder})=>builder===import_cli22.CoreBuilder.Webpack5?"swc":void 0}),WEB_COMPONENTS_default=generator15;var import_cli23=require("storybook/internal/cli");var generator16=async(packageManager,npmOptions,options)=>{await baseGenerator(packageManager,npmOptions,options,"react",{extraAddons:["@storybook/addon-onboarding"],webpackCompiler:({builder})=>builder===import_cli23.CoreBuilder.Webpack5?"swc":void 0})},WEBPACK_REACT_default=generator16;var import_node_fs3=require("fs"),import_promises3=require("fs/promises"),import_node_logger2=require("storybook/internal/node-logger"),import_server_errors=require("storybook/internal/server-errors"),import_telemetry=require("storybook/internal/telemetry");var import_execa=__toESM(require("execa"),1),import_picocolors=__toESM(require_picocolors(),1),import_prompts=__toESM(require("prompts"),1),import_ts_dedent4=require("ts-dedent"),SUPPORTED_PROJECTS={"react-vite-ts":{displayName:{type:"React",builder:"Vite",language:"TS"},createScript:{npm:"npm create vite@latest . -- --template react-ts",yarn:"yarn create vite@latest . --template react-ts",pnpm:"pnpm create vite@latest . --template react-ts"}},"nextjs-ts":{displayName:{type:"Next.js",language:"TS"},createScript:{npm:'npm create next-app . -- --typescript --use-npm --eslint --tailwind --no-app --import-alias="@/*" --src-dir',yarn:'yarn create next-app . --typescript --use-yarn --eslint --tailwind --no-app --import-alias="@/*" --src-dir',pnpm:'pnpm create next-app . --typescript --use-pnpm --eslint --tailwind --no-app --import-alias="@/*" --src-dir'}},"vue-vite-ts":{displayName:{type:"Vue 3",builder:"Vite",language:"TS"},createScript:{npm:"npm create vite@latest . -- --template vue-ts",yarn:"yarn create vite@latest . --template vue-ts",pnpm:"pnpm create vite@latest . --template vue-ts"}},"angular-cli":{displayName:{type:"Angular",language:"TS"},createScript:{npm:"npx -p @angular/cli@latest ng new angular-latest --directory . --routing=true --minimal=true --style=scss --strict --skip-git --skip-install",yarn:"yarn dlx -p @angular/cli ng new angular-latest --directory . --routing=true --minimal=true --style=scss --strict --skip-git --package-manager=yarn --skip-install && touch yarn.lock && yarn set version berry && yarn config set nodeLinker node-modules",pnpm:"pnpm --package @angular/cli dlx ng new angular-latest --directory . --routing=true --minimal=true --style=scss --strict --skip-git --package-manager=pnpm --skip-install"}},"lit-vite-ts":{displayName:{type:"Lit",builder:"Vite",language:"TS"},createScript:{npm:"npm create vite@latest . -- --template lit-ts",yarn:"yarn create vite@latest . --template lit-ts && touch yarn.lock && yarn set version berry && yarn config set nodeLinker pnp",pnpm:"pnpm create vite@latest . --template lit-ts"}}},packageManagerToCoercedName=packageManager=>{switch(packageManager){case"npm":return"npm";case"pnpm":return"pnpm";default:return"yarn"}},buildProjectDisplayNameForPrint=({displayName})=>{let{type,builder,language}=displayName;return`${import_picocolors.default.bold(import_picocolors.default.blue(type))} ${builder?`+ ${builder} `:""}(${language})`},scaffoldNewProject=async(packageManager,{disableTelemetry})=>{let packageManagerName=packageManagerToCoercedName(packageManager);import_node_logger2.logger.plain(boxen(import_ts_dedent4.dedent`
76
+ `);let extraPackages=[];extraPackages.push("webpack"),extraPackages.push("prop-types");let extraAddons=["@storybook/preset-create-react-app","@storybook/addon-onboarding"];await baseGenerator(packageManager,npmOptions,{...options,builder:import_cli17.CoreBuilder.Webpack5},"react",{webpackCompiler:()=>{},extraAddons,extraPackages,staticDir:(0,import_node_fs2.existsSync)((0,import_node_path5.resolve)("./public"))?"public":void 0,extraMain})},REACT_SCRIPTS_default=generator9;var import_cli18=require("storybook/internal/cli");var generator10=async(packageManager,npmOptions,options)=>{await baseGenerator(packageManager,npmOptions,{...options,builder:import_cli18.CoreBuilder.Webpack5},"server",{webpackCompiler:()=>"swc",extensions:["json","yaml","yml"]})},SERVER_default=generator10;var import_cli19=require("storybook/internal/cli");var generator11=async(packageManager,npmOptions,options)=>{await baseGenerator(packageManager,npmOptions,{...options,builder:import_cli19.CoreBuilder.Vite},"solid",{},"solid")},SOLID_default=generator11;var import_semver2=require("semver");var versionHelper=svelteMajor=>svelteMajor===4?"4":svelteMajor===5?"^5.0.0-next.0":"",getAddonSvelteCsfVersion=async packageManager=>{let svelteVersion=await packageManager.getInstalledVersion("svelte");try{if(svelteVersion)return versionHelper((0,import_semver2.major)((0,import_semver2.coerce)(svelteVersion)||""));{let svelteSpecifier=(await packageManager.getAllDependencies()).svelte,coerced=(0,import_semver2.coerce)(svelteSpecifier);if(coerced?.version)return versionHelper((0,import_semver2.major)(coerced.version))}}catch{}return""},generator12=async(packageManager,npmOptions,options)=>{let addonSvelteCsfVersion=await getAddonSvelteCsfVersion(packageManager);await baseGenerator(packageManager,npmOptions,options,"svelte",{extensions:["js","ts","svelte"],extraAddons:[`@storybook/addon-svelte-csf${addonSvelteCsfVersion&&`@${addonSvelteCsfVersion}`}`]})},SVELTE_default=generator12;var import_cli20=require("storybook/internal/cli");var generator13=async(packageManager,npmOptions,options)=>{let addonSvelteCsfVersion=await getAddonSvelteCsfVersion(packageManager);await baseGenerator(packageManager,npmOptions,{...options,builder:import_cli20.CoreBuilder.Vite},"svelte",{extensions:["js","ts","svelte"],extraAddons:[`@storybook/addon-svelte-csf${addonSvelteCsfVersion&&`@${addonSvelteCsfVersion}`}`]},"sveltekit")},SVELTEKIT_default=generator13;var import_cli21=require("storybook/internal/cli");var generator14=async(packageManager,npmOptions,options)=>{await baseGenerator(packageManager,npmOptions,options,"vue3",{extraAddons:["@storybook/addon-onboarding"],extraPackages:async({builder})=>builder===import_cli21.CoreBuilder.Webpack5?["vue-loader@^17.0.0","@vue/compiler-sfc@^3.2.0"]:[],webpackCompiler:({builder})=>builder===import_cli21.CoreBuilder.Webpack5?"swc":void 0})},VUE3_default=generator14;var import_cli22=require("storybook/internal/cli");var generator15=async(packageManager,npmOptions,options)=>baseGenerator(packageManager,npmOptions,options,"web-components",{extraPackages:["lit"],webpackCompiler:({builder})=>builder===import_cli22.CoreBuilder.Webpack5?"swc":void 0}),WEB_COMPONENTS_default=generator15;var import_cli23=require("storybook/internal/cli");var generator16=async(packageManager,npmOptions,options)=>{await baseGenerator(packageManager,npmOptions,options,"react",{extraAddons:["@storybook/addon-onboarding"],webpackCompiler:({builder})=>builder===import_cli23.CoreBuilder.Webpack5?"swc":void 0})},WEBPACK_REACT_default=generator16;var import_node_fs3=require("fs"),import_promises3=require("fs/promises"),import_node_logger2=require("storybook/internal/node-logger"),import_server_errors=require("storybook/internal/server-errors"),import_telemetry=require("storybook/internal/telemetry");var import_execa=__toESM(require("execa"),1),import_picocolors=__toESM(require_picocolors(),1),import_prompts=__toESM(require("prompts"),1),import_ts_dedent4=require("ts-dedent"),SUPPORTED_PROJECTS={"react-vite-ts":{displayName:{type:"React",builder:"Vite",language:"TS"},createScript:{npm:"npm create vite@latest . -- --template react-ts",yarn:"yarn create vite@latest . --template react-ts",pnpm:"pnpm create vite@latest . --template react-ts"}},"nextjs-ts":{displayName:{type:"Next.js",language:"TS"},createScript:{npm:'npm create next-app . -- --typescript --use-npm --eslint --tailwind --no-app --import-alias="@/*" --src-dir',yarn:'yarn create next-app . --typescript --use-yarn --eslint --tailwind --no-app --import-alias="@/*" --src-dir',pnpm:'pnpm create next-app . --typescript --use-pnpm --eslint --tailwind --no-app --import-alias="@/*" --src-dir'}},"vue-vite-ts":{displayName:{type:"Vue 3",builder:"Vite",language:"TS"},createScript:{npm:"npm create vite@latest . -- --template vue-ts",yarn:"yarn create vite@latest . --template vue-ts",pnpm:"pnpm create vite@latest . --template vue-ts"}},"angular-cli":{displayName:{type:"Angular",language:"TS"},createScript:{npm:"npx -p @angular/cli@latest ng new angular-latest --directory . --routing=true --minimal=true --style=scss --strict --skip-git --skip-install",yarn:"yarn dlx -p @angular/cli ng new angular-latest --directory . --routing=true --minimal=true --style=scss --strict --skip-git --package-manager=yarn --skip-install && touch yarn.lock && yarn set version berry && yarn config set nodeLinker node-modules",pnpm:"pnpm --package @angular/cli dlx ng new angular-latest --directory . --routing=true --minimal=true --style=scss --strict --skip-git --package-manager=pnpm --skip-install"}},"lit-vite-ts":{displayName:{type:"Lit",builder:"Vite",language:"TS"},createScript:{npm:"npm create vite@latest . -- --template lit-ts",yarn:"yarn create vite@latest . --template lit-ts && touch yarn.lock && yarn set version berry && yarn config set nodeLinker pnp",pnpm:"pnpm create vite@latest . --template lit-ts"}}},packageManagerToCoercedName=packageManager=>{switch(packageManager){case"npm":return"npm";case"pnpm":return"pnpm";default:return"yarn"}},buildProjectDisplayNameForPrint=({displayName})=>{let{type,builder,language}=displayName;return`${import_picocolors.default.bold(import_picocolors.default.blue(type))} ${builder?`+ ${builder} `:""}(${language})`},scaffoldNewProject=async(packageManager,{disableTelemetry})=>{let packageManagerName=packageManagerToCoercedName(packageManager);import_node_logger2.logger.plain(boxen(import_ts_dedent4.dedent`
77
77
  Would you like to generate a new project from the following list?
78
78
 
79
79
  ${import_picocolors.default.bold("Note:")}
@@ -86,7 +86,7 @@
86
86
 
87
87
  Continuing with Storybook installation...
88
88
  `,{title:import_picocolors.default.bold("\u2705 Success!"),padding:1,borderStyle:"double",borderColor:"green"})),import_node_logger2.logger.line(1)},BASE_IGNORED_FILES=[".git",".gitignore",".DS_Store",".cache"],IGNORED_FILES_BY_PACKAGE_MANAGER={npm:[...BASE_IGNORED_FILES],yarn:[...BASE_IGNORED_FILES,".yarnrc.yml",".yarn"],pnpm:[...BASE_IGNORED_FILES]},currentDirectoryIsEmpty=packageManager=>{let packageManagerName=packageManagerToCoercedName(packageManager),cwdFolderEntries=(0,import_node_fs3.readdirSync)(process.cwd()),filesToIgnore=IGNORED_FILES_BY_PACKAGE_MANAGER[packageManagerName];return cwdFolderEntries.length===0||cwdFolderEntries.every(entry=>filesToIgnore.includes(entry))};var logger4=console,installStorybook=async(projectType,packageManager,options)=>{let npmOptions={installAsDevDependencies:!0,skipInstall:options.skipInstall},language=await(0,import_cli25.detectLanguage)(packageManager),pnp=await(0,import_cli25.detectPnp)(),generatorOptions={language,builder:options.builder,linkable:!!options.linkable,pnp:pnp||options.usePnp,yes:options.yes,projectType},runGenerator=async()=>{switch(projectType){case import_cli24.ProjectType.REACT_SCRIPTS:return REACT_SCRIPTS_default(packageManager,npmOptions,generatorOptions).then((0,import_common3.commandLog)('Adding Storybook support to your "Create React App" based project'));case import_cli24.ProjectType.REACT:return REACT_default(packageManager,npmOptions,generatorOptions).then((0,import_common3.commandLog)('Adding Storybook support to your "React" app'));case import_cli24.ProjectType.REACT_NATIVE:return REACT_NATIVE_default(packageManager,npmOptions).then((0,import_common3.commandLog)('Adding Storybook support to your "React Native" app'));case import_cli24.ProjectType.QWIK:return QWIK_default(packageManager,npmOptions,generatorOptions).then((0,import_common3.commandLog)('Adding Storybook support to your "Qwik" app'));case import_cli24.ProjectType.WEBPACK_REACT:return WEBPACK_REACT_default(packageManager,npmOptions,generatorOptions).then((0,import_common3.commandLog)('Adding Storybook support to your "Webpack React" app'));case import_cli24.ProjectType.REACT_PROJECT:return REACT_default(packageManager,npmOptions,generatorOptions).then((0,import_common3.commandLog)('Adding Storybook support to your "React" library'));case import_cli24.ProjectType.NEXTJS:return NEXTJS_default(packageManager,npmOptions,generatorOptions).then((0,import_common3.commandLog)('Adding Storybook support to your "Next" app'));case import_cli24.ProjectType.VUE3:return VUE3_default(packageManager,npmOptions,generatorOptions).then((0,import_common3.commandLog)('Adding Storybook support to your "Vue 3" app'));case import_cli24.ProjectType.ANGULAR:return(0,import_common3.commandLog)('Adding Storybook support to your "Angular" app'),ANGULAR_default(packageManager,npmOptions,generatorOptions,options);case import_cli24.ProjectType.EMBER:return EMBER_default(packageManager,npmOptions,generatorOptions).then((0,import_common3.commandLog)('Adding Storybook support to your "Ember" app'));case import_cli24.ProjectType.HTML:return HTML_default(packageManager,npmOptions,generatorOptions).then((0,import_common3.commandLog)('Adding Storybook support to your "HTML" app'));case import_cli24.ProjectType.WEB_COMPONENTS:return WEB_COMPONENTS_default(packageManager,npmOptions,generatorOptions).then((0,import_common3.commandLog)('Adding Storybook support to your "web components" app'));case import_cli24.ProjectType.PREACT:return PREACT_default(packageManager,npmOptions,generatorOptions).then((0,import_common3.commandLog)('Adding Storybook support to your "Preact" app'));case import_cli24.ProjectType.SVELTE:return SVELTE_default(packageManager,npmOptions,generatorOptions).then((0,import_common3.commandLog)('Adding Storybook support to your "Svelte" app'));case import_cli24.ProjectType.SVELTEKIT:return SVELTEKIT_default(packageManager,npmOptions,generatorOptions).then((0,import_common3.commandLog)('Adding Storybook support to your "SvelteKit" app'));case import_cli24.ProjectType.SERVER:return SERVER_default(packageManager,npmOptions,generatorOptions).then((0,import_common3.commandLog)('Adding Storybook support to your "Server" app'));case import_cli24.ProjectType.NX:throw new import_server_errors2.NxProjectDetectedError;case import_cli24.ProjectType.SOLID:return SOLID_default(packageManager,npmOptions,generatorOptions).then((0,import_common3.commandLog)('Adding Storybook support to your "SolidJS" app'));case import_cli24.ProjectType.UNSUPPORTED:return(0,import_common3.paddedLog)("We detected a project type that we don't support yet."),(0,import_common3.paddedLog)("If you'd like your framework to be supported, please let use know about it at https://github.com/storybookjs/storybook/issues"),logger4.log(),Promise.resolve();default:return(0,import_common3.paddedLog)(`We couldn't detect your project type. (code: ${projectType})`),(0,import_common3.paddedLog)("You can specify a project type explicitly via `storybook init --type <type>`, see our docs on how to configure Storybook for your framework: https://storybook.js.org/docs/react/get-started/install"),logger4.log(),projectTypeInquirer(options,packageManager)}};try{return await runGenerator()}catch(err){throw err?.message!=="Canceled by the user"&&err?.stack&&logger4.error(`
89
- ${import_picocolors2.default.red(err.stack)}`),new import_common3.HandledError(err)}},projectTypeInquirer=async(options,packageManager)=>{let manualAnswer=options.yes?!0:await(0,import_prompts2.default)([{type:"confirm",name:"manual",message:"Do you want to manually choose a Storybook project type to install?"}]);if(manualAnswer!==!0&&manualAnswer.manual){let{manualFramework}=await(0,import_prompts2.default)([{type:"select",name:"manualFramework",message:"Please choose a project type from the following list:",choices:import_cli24.installableProjectTypes.map(type=>({title:type,value:type.toUpperCase()}))}]);if(manualFramework)return installStorybook(manualFramework,packageManager,options)}logger4.log(),logger4.log("For more information about installing Storybook: https://storybook.js.org/docs"),process.exit(0)};async function doInitiate(options){let{packageManager:pkgMgr}=options,packageManager=import_common3.JsPackageManagerFactory.getPackageManager({force:pkgMgr}),latestVersion=await packageManager.latestVersion("storybook"),currentVersion=import_common3.versions.storybook,isPrerelease=(0,import_semver2.prerelease)(currentVersion),isOutdated=(0,import_semver2.lt)(currentVersion,latestVersion),borderColor=isOutdated?"#FC521F":"#F1618C",messages={welcome:`Adding Storybook version ${import_picocolors2.default.bold(currentVersion)} to your project..`,notLatest:import_picocolors2.default.red(import_ts_dedent5.dedent`
89
+ ${import_picocolors2.default.red(err.stack)}`),new import_common3.HandledError(err)}},projectTypeInquirer=async(options,packageManager)=>{let manualAnswer=options.yes?!0:await(0,import_prompts2.default)([{type:"confirm",name:"manual",message:"Do you want to manually choose a Storybook project type to install?"}]);if(manualAnswer!==!0&&manualAnswer.manual){let{manualFramework}=await(0,import_prompts2.default)([{type:"select",name:"manualFramework",message:"Please choose a project type from the following list:",choices:import_cli24.installableProjectTypes.map(type=>({title:type,value:type.toUpperCase()}))}]);if(manualFramework)return installStorybook(manualFramework,packageManager,options)}logger4.log(),logger4.log("For more information about installing Storybook: https://storybook.js.org/docs"),process.exit(0)};async function doInitiate(options){let{packageManager:pkgMgr}=options,packageManager=import_common3.JsPackageManagerFactory.getPackageManager({force:pkgMgr}),latestVersion=await packageManager.latestVersion("storybook"),currentVersion=import_common3.versions.storybook,isPrerelease=(0,import_semver3.prerelease)(currentVersion),isOutdated=(0,import_semver3.lt)(currentVersion,latestVersion),borderColor=isOutdated?"#FC521F":"#F1618C",messages={welcome:`Adding Storybook version ${import_picocolors2.default.bold(currentVersion)} to your project..`,notLatest:import_picocolors2.default.red(import_ts_dedent5.dedent`
90
90
  This version is behind the latest release, which is: ${import_picocolors2.default.bold(latestVersion)}!
91
91
  You likely ran the init command through npx, which can use a locally cached version, to get the latest please run:
92
92
  ${import_picocolors2.default.bold("npx storybook@latest init")}
package/dist/bin/index.js CHANGED
@@ -1,4 +1,4 @@
1
- import { initiate } from '../chunk-KIUOXM7S.js';
1
+ import { initiate } from '../chunk-3J34TFIM.js';
2
2
  import { versions } from 'storybook/internal/common';
3
3
  import { addToGlobalContext } from 'storybook/internal/telemetry';
4
4
  import { program } from 'commander';
@@ -9,7 +9,7 @@ import os from 'node:os';
9
9
  import tty from 'node:tty';
10
10
  import findUp from 'find-up';
11
11
  import prompts2 from 'prompts';
12
- import semver, { prerelease, lt } from 'semver';
12
+ import semver, { prerelease, lt, major, coerce } from 'semver';
13
13
  import { dedent } from 'ts-dedent';
14
14
  import { join, resolve, dirname } from 'node:path';
15
15
  import ora from 'ora';
@@ -93,7 +93,7 @@ var __create=Object.create;var __defProp=Object.defineProperty;var __getOwnPropD
93
93
  Storybook 7.0+ doesn't support react-scripts@<5.0.0.
94
94
 
95
95
  https://github.com/storybookjs/storybook/blob/next/MIGRATION.md#create-react-app-dropped-cra4-support
96
- `);let extraPackages=[];extraPackages.push("webpack"),extraPackages.push("prop-types");let extraAddons=["@storybook/preset-create-react-app","@storybook/addon-onboarding"];await baseGenerator(packageManager,npmOptions,{...options,builder:CoreBuilder.Webpack5},"react",{webpackCompiler:()=>{},extraAddons,extraPackages,staticDir:existsSync(resolve("./public"))?"public":void 0,extraMain});},REACT_SCRIPTS_default=generator9;var generator10=async(packageManager,npmOptions,options)=>{await baseGenerator(packageManager,npmOptions,{...options,builder:CoreBuilder.Webpack5},"server",{webpackCompiler:()=>"swc",extensions:["json","yaml","yml"]});},SERVER_default=generator10;var generator11=async(packageManager,npmOptions,options)=>{await baseGenerator(packageManager,npmOptions,{...options,builder:CoreBuilder.Vite},"solid",{},"solid");},SOLID_default=generator11;var generator12=async(packageManager,npmOptions,options)=>{await baseGenerator(packageManager,npmOptions,options,"svelte",{extensions:["js","ts","svelte"],extraAddons:["@storybook/addon-svelte-csf"]});},SVELTE_default=generator12;var generator13=async(packageManager,npmOptions,options)=>{await baseGenerator(packageManager,npmOptions,{...options,builder:CoreBuilder.Vite},"svelte",{extensions:["js","ts","svelte"],extraAddons:["@storybook/addon-svelte-csf"]},"sveltekit");},SVELTEKIT_default=generator13;var generator14=async(packageManager,npmOptions,options)=>{await baseGenerator(packageManager,npmOptions,options,"vue3",{extraAddons:["@storybook/addon-onboarding"],extraPackages:async({builder})=>builder===CoreBuilder.Webpack5?["vue-loader@^17.0.0","@vue/compiler-sfc@^3.2.0"]:[],webpackCompiler:({builder})=>builder===CoreBuilder.Webpack5?"swc":void 0});},VUE3_default=generator14;var generator15=async(packageManager,npmOptions,options)=>baseGenerator(packageManager,npmOptions,options,"web-components",{extraPackages:["lit"],webpackCompiler:({builder})=>builder===CoreBuilder.Webpack5?"swc":void 0}),WEB_COMPONENTS_default=generator15;var generator16=async(packageManager,npmOptions,options)=>{await baseGenerator(packageManager,npmOptions,options,"react",{extraAddons:["@storybook/addon-onboarding"],webpackCompiler:({builder})=>builder===CoreBuilder.Webpack5?"swc":void 0});},WEBPACK_REACT_default=generator16;var import_picocolors=__toESM(require_picocolors(),1);var SUPPORTED_PROJECTS={"react-vite-ts":{displayName:{type:"React",builder:"Vite",language:"TS"},createScript:{npm:"npm create vite@latest . -- --template react-ts",yarn:"yarn create vite@latest . --template react-ts",pnpm:"pnpm create vite@latest . --template react-ts"}},"nextjs-ts":{displayName:{type:"Next.js",language:"TS"},createScript:{npm:'npm create next-app . -- --typescript --use-npm --eslint --tailwind --no-app --import-alias="@/*" --src-dir',yarn:'yarn create next-app . --typescript --use-yarn --eslint --tailwind --no-app --import-alias="@/*" --src-dir',pnpm:'pnpm create next-app . --typescript --use-pnpm --eslint --tailwind --no-app --import-alias="@/*" --src-dir'}},"vue-vite-ts":{displayName:{type:"Vue 3",builder:"Vite",language:"TS"},createScript:{npm:"npm create vite@latest . -- --template vue-ts",yarn:"yarn create vite@latest . --template vue-ts",pnpm:"pnpm create vite@latest . --template vue-ts"}},"angular-cli":{displayName:{type:"Angular",language:"TS"},createScript:{npm:"npx -p @angular/cli@latest ng new angular-latest --directory . --routing=true --minimal=true --style=scss --strict --skip-git --skip-install",yarn:"yarn dlx -p @angular/cli ng new angular-latest --directory . --routing=true --minimal=true --style=scss --strict --skip-git --package-manager=yarn --skip-install && touch yarn.lock && yarn set version berry && yarn config set nodeLinker node-modules",pnpm:"pnpm --package @angular/cli dlx ng new angular-latest --directory . --routing=true --minimal=true --style=scss --strict --skip-git --package-manager=pnpm --skip-install"}},"lit-vite-ts":{displayName:{type:"Lit",builder:"Vite",language:"TS"},createScript:{npm:"npm create vite@latest . -- --template lit-ts",yarn:"yarn create vite@latest . --template lit-ts && touch yarn.lock && yarn set version berry && yarn config set nodeLinker pnp",pnpm:"pnpm create vite@latest . --template lit-ts"}}},packageManagerToCoercedName=packageManager=>{switch(packageManager){case"npm":return "npm";case"pnpm":return "pnpm";default:return "yarn"}},buildProjectDisplayNameForPrint=({displayName})=>{let{type,builder,language}=displayName;return `${import_picocolors.default.bold(import_picocolors.default.blue(type))} ${builder?`+ ${builder} `:""}(${language})`},scaffoldNewProject=async(packageManager,{disableTelemetry})=>{let packageManagerName=packageManagerToCoercedName(packageManager);logger.plain(boxen(dedent`
96
+ `);let extraPackages=[];extraPackages.push("webpack"),extraPackages.push("prop-types");let extraAddons=["@storybook/preset-create-react-app","@storybook/addon-onboarding"];await baseGenerator(packageManager,npmOptions,{...options,builder:CoreBuilder.Webpack5},"react",{webpackCompiler:()=>{},extraAddons,extraPackages,staticDir:existsSync(resolve("./public"))?"public":void 0,extraMain});},REACT_SCRIPTS_default=generator9;var generator10=async(packageManager,npmOptions,options)=>{await baseGenerator(packageManager,npmOptions,{...options,builder:CoreBuilder.Webpack5},"server",{webpackCompiler:()=>"swc",extensions:["json","yaml","yml"]});},SERVER_default=generator10;var generator11=async(packageManager,npmOptions,options)=>{await baseGenerator(packageManager,npmOptions,{...options,builder:CoreBuilder.Vite},"solid",{},"solid");},SOLID_default=generator11;var versionHelper=svelteMajor=>svelteMajor===4?"4":svelteMajor===5?"^5.0.0-next.0":"",getAddonSvelteCsfVersion=async packageManager=>{let svelteVersion=await packageManager.getInstalledVersion("svelte");try{if(svelteVersion)return versionHelper(major(coerce(svelteVersion)||""));{let svelteSpecifier=(await packageManager.getAllDependencies()).svelte,coerced=coerce(svelteSpecifier);if(coerced?.version)return versionHelper(major(coerced.version))}}catch{}return ""},generator12=async(packageManager,npmOptions,options)=>{let addonSvelteCsfVersion=await getAddonSvelteCsfVersion(packageManager);await baseGenerator(packageManager,npmOptions,options,"svelte",{extensions:["js","ts","svelte"],extraAddons:[`@storybook/addon-svelte-csf${addonSvelteCsfVersion&&`@${addonSvelteCsfVersion}`}`]});},SVELTE_default=generator12;var generator13=async(packageManager,npmOptions,options)=>{let addonSvelteCsfVersion=await getAddonSvelteCsfVersion(packageManager);await baseGenerator(packageManager,npmOptions,{...options,builder:CoreBuilder.Vite},"svelte",{extensions:["js","ts","svelte"],extraAddons:[`@storybook/addon-svelte-csf${addonSvelteCsfVersion&&`@${addonSvelteCsfVersion}`}`]},"sveltekit");},SVELTEKIT_default=generator13;var generator14=async(packageManager,npmOptions,options)=>{await baseGenerator(packageManager,npmOptions,options,"vue3",{extraAddons:["@storybook/addon-onboarding"],extraPackages:async({builder})=>builder===CoreBuilder.Webpack5?["vue-loader@^17.0.0","@vue/compiler-sfc@^3.2.0"]:[],webpackCompiler:({builder})=>builder===CoreBuilder.Webpack5?"swc":void 0});},VUE3_default=generator14;var generator15=async(packageManager,npmOptions,options)=>baseGenerator(packageManager,npmOptions,options,"web-components",{extraPackages:["lit"],webpackCompiler:({builder})=>builder===CoreBuilder.Webpack5?"swc":void 0}),WEB_COMPONENTS_default=generator15;var generator16=async(packageManager,npmOptions,options)=>{await baseGenerator(packageManager,npmOptions,options,"react",{extraAddons:["@storybook/addon-onboarding"],webpackCompiler:({builder})=>builder===CoreBuilder.Webpack5?"swc":void 0});},WEBPACK_REACT_default=generator16;var import_picocolors=__toESM(require_picocolors(),1);var SUPPORTED_PROJECTS={"react-vite-ts":{displayName:{type:"React",builder:"Vite",language:"TS"},createScript:{npm:"npm create vite@latest . -- --template react-ts",yarn:"yarn create vite@latest . --template react-ts",pnpm:"pnpm create vite@latest . --template react-ts"}},"nextjs-ts":{displayName:{type:"Next.js",language:"TS"},createScript:{npm:'npm create next-app . -- --typescript --use-npm --eslint --tailwind --no-app --import-alias="@/*" --src-dir',yarn:'yarn create next-app . --typescript --use-yarn --eslint --tailwind --no-app --import-alias="@/*" --src-dir',pnpm:'pnpm create next-app . --typescript --use-pnpm --eslint --tailwind --no-app --import-alias="@/*" --src-dir'}},"vue-vite-ts":{displayName:{type:"Vue 3",builder:"Vite",language:"TS"},createScript:{npm:"npm create vite@latest . -- --template vue-ts",yarn:"yarn create vite@latest . --template vue-ts",pnpm:"pnpm create vite@latest . --template vue-ts"}},"angular-cli":{displayName:{type:"Angular",language:"TS"},createScript:{npm:"npx -p @angular/cli@latest ng new angular-latest --directory . --routing=true --minimal=true --style=scss --strict --skip-git --skip-install",yarn:"yarn dlx -p @angular/cli ng new angular-latest --directory . --routing=true --minimal=true --style=scss --strict --skip-git --package-manager=yarn --skip-install && touch yarn.lock && yarn set version berry && yarn config set nodeLinker node-modules",pnpm:"pnpm --package @angular/cli dlx ng new angular-latest --directory . --routing=true --minimal=true --style=scss --strict --skip-git --package-manager=pnpm --skip-install"}},"lit-vite-ts":{displayName:{type:"Lit",builder:"Vite",language:"TS"},createScript:{npm:"npm create vite@latest . -- --template lit-ts",yarn:"yarn create vite@latest . --template lit-ts && touch yarn.lock && yarn set version berry && yarn config set nodeLinker pnp",pnpm:"pnpm create vite@latest . --template lit-ts"}}},packageManagerToCoercedName=packageManager=>{switch(packageManager){case"npm":return "npm";case"pnpm":return "pnpm";default:return "yarn"}},buildProjectDisplayNameForPrint=({displayName})=>{let{type,builder,language}=displayName;return `${import_picocolors.default.bold(import_picocolors.default.blue(type))} ${builder?`+ ${builder} `:""}(${language})`},scaffoldNewProject=async(packageManager,{disableTelemetry})=>{let packageManagerName=packageManagerToCoercedName(packageManager);logger.plain(boxen(dedent`
97
97
  Would you like to generate a new project from the following list?
98
98
 
99
99
  ${import_picocolors.default.bold("Note:")}
package/dist/index.cjs CHANGED
@@ -12,7 +12,7 @@
12
12
  `).map(line=>exec(line,columns,options)).join(`
13
13
  `)}var import_cli_boxes2=__toESM(require_cli_boxes(),1),NEWLINE=`
14
14
  `,PAD=" ",NONE="none",terminalColumns=()=>{let{env:env2,stdout,stderr}=import_node_process2.default;return stdout?.columns?stdout.columns:stderr?.columns?stderr.columns:env2.COLUMNS?Number.parseInt(env2.COLUMNS,10):80},getObject=detail=>typeof detail=="number"?{top:detail,right:detail*3,bottom:detail,left:detail*3}:{top:0,right:0,bottom:0,left:0,...detail},getBorderWidth=borderStyle=>borderStyle===NONE?0:2,getBorderChars=borderStyle=>{let sides=["topLeft","topRight","bottomRight","bottomLeft","left","right","top","bottom"],characters;if(borderStyle===NONE){borderStyle={};for(let side of sides)borderStyle[side]=""}if(typeof borderStyle=="string"){if(characters=import_cli_boxes.default[borderStyle],!characters)throw new TypeError(`Invalid border style: ${borderStyle}`)}else{typeof borderStyle?.vertical=="string"&&(borderStyle.left=borderStyle.vertical,borderStyle.right=borderStyle.vertical),typeof borderStyle?.horizontal=="string"&&(borderStyle.top=borderStyle.horizontal,borderStyle.bottom=borderStyle.horizontal);for(let side of sides)if(borderStyle[side]===null||typeof borderStyle[side]!="string")throw new TypeError(`Invalid border style: ${side}`);characters=borderStyle}return characters},makeTitle=(text,horizontal,alignment)=>{let title="",textWidth=stringWidth(text);switch(alignment){case"left":{title=text+horizontal.slice(textWidth);break}case"right":{title=horizontal.slice(textWidth)+text;break}default:{horizontal=horizontal.slice(textWidth),horizontal.length%2===1?(horizontal=horizontal.slice(Math.floor(horizontal.length/2)),title=horizontal.slice(1)+text+horizontal):(horizontal=horizontal.slice(horizontal.length/2),title=horizontal+text+horizontal);break}}return title},makeContentText=(text,{padding,width,textAlignment,height})=>{text=(0,import_ansi_align.default)(text,{align:textAlignment});let lines=text.split(NEWLINE),textWidth=widestLine(text),max=width-padding.left-padding.right;if(textWidth>max){let newLines=[];for(let line of lines){let createdLines=wrapAnsi(line,max,{hard:!0}),alignedLinesArray=(0,import_ansi_align.default)(createdLines,{align:textAlignment}).split(`
15
- `),longestLength=Math.max(...alignedLinesArray.map(s=>stringWidth(s)));for(let alignedLine of alignedLinesArray){let paddedLine;switch(textAlignment){case"center":{paddedLine=PAD.repeat((max-longestLength)/2)+alignedLine;break}case"right":{paddedLine=PAD.repeat(max-longestLength)+alignedLine;break}default:{paddedLine=alignedLine;break}}newLines.push(paddedLine)}}lines=newLines}textAlignment==="center"&&textWidth<max?lines=lines.map(line=>PAD.repeat((max-textWidth)/2)+line):textAlignment==="right"&&textWidth<max&&(lines=lines.map(line=>PAD.repeat(max-textWidth)+line));let paddingLeft=PAD.repeat(padding.left),paddingRight=PAD.repeat(padding.right);return lines=lines.map(line=>paddingLeft+line+paddingRight),lines=lines.map(line=>{if(width-stringWidth(line)>0)switch(textAlignment){case"center":return line+PAD.repeat(width-stringWidth(line));case"right":return line+PAD.repeat(width-stringWidth(line));default:return line+PAD.repeat(width-stringWidth(line))}return line}),padding.top>0&&(lines=[...Array.from({length:padding.top}).fill(PAD.repeat(width)),...lines]),padding.bottom>0&&(lines=[...lines,...Array.from({length:padding.bottom}).fill(PAD.repeat(width))]),height&&lines.length>height?lines=lines.slice(0,height):height&&lines.length<height&&(lines=[...lines,...Array.from({length:height-lines.length}).fill(PAD.repeat(width))]),lines.join(NEWLINE)},boxContent=(content,contentWidth,options)=>{let colorizeBorder=border=>{let newBorder=options.borderColor?getColorFn(options.borderColor)(border):border;return options.dimBorder?source_default.dim(newBorder):newBorder},colorizeContent=content2=>options.backgroundColor?getBGColorFn(options.backgroundColor)(content2):content2,chars=getBorderChars(options.borderStyle),columns=terminalColumns(),marginLeft=PAD.repeat(options.margin.left);if(options.float==="center"){let marginWidth=Math.max((columns-contentWidth-getBorderWidth(options.borderStyle))/2,0);marginLeft=PAD.repeat(marginWidth)}else if(options.float==="right"){let marginWidth=Math.max(columns-contentWidth-options.margin.right-getBorderWidth(options.borderStyle),0);marginLeft=PAD.repeat(marginWidth)}let result="";options.margin.top&&(result+=NEWLINE.repeat(options.margin.top)),(options.borderStyle!==NONE||options.title)&&(result+=colorizeBorder(marginLeft+chars.topLeft+(options.title?makeTitle(options.title,chars.top.repeat(contentWidth),options.titleAlignment):chars.top.repeat(contentWidth))+chars.topRight)+NEWLINE);let lines=content.split(NEWLINE);return result+=lines.map(line=>marginLeft+colorizeBorder(chars.left)+colorizeContent(line)+colorizeBorder(chars.right)).join(NEWLINE),options.borderStyle!==NONE&&(result+=NEWLINE+colorizeBorder(marginLeft+chars.bottomLeft+chars.bottom.repeat(contentWidth)+chars.bottomRight)),options.margin.bottom&&(result+=NEWLINE.repeat(options.margin.bottom)),result},sanitizeOptions=options=>{if(options.fullscreen&&import_node_process2.default?.stdout){let newDimensions=[import_node_process2.default.stdout.columns,import_node_process2.default.stdout.rows];typeof options.fullscreen=="function"&&(newDimensions=options.fullscreen(...newDimensions)),options.width||(options.width=newDimensions[0]),options.height||(options.height=newDimensions[1])}return options.width&&(options.width=Math.max(1,options.width-getBorderWidth(options.borderStyle))),options.height&&(options.height=Math.max(1,options.height-getBorderWidth(options.borderStyle))),options},formatTitle=(title,borderStyle)=>borderStyle===NONE?title:` ${title} `,determineDimensions=(text,options)=>{options=sanitizeOptions(options);let widthOverride=options.width!==void 0,columns=terminalColumns(),borderWidth=getBorderWidth(options.borderStyle),maxWidth=columns-options.margin.left-options.margin.right-borderWidth,widest=widestLine(wrapAnsi(text,columns-borderWidth,{hard:!0,trim:!1}))+options.padding.left+options.padding.right;if(options.title&&widthOverride?(options.title=options.title.slice(0,Math.max(0,options.width-2)),options.title&&(options.title=formatTitle(options.title,options.borderStyle))):options.title&&(options.title=options.title.slice(0,Math.max(0,maxWidth-2)),options.title&&(options.title=formatTitle(options.title,options.borderStyle),stringWidth(options.title)>widest&&(options.width=stringWidth(options.title)))),options.width=options.width?options.width:widest,!widthOverride){if(options.margin.left&&options.margin.right&&options.width>maxWidth){let multiplier=(columns-options.width-borderWidth)/(options.margin.left+options.margin.right);options.margin.left=Math.max(0,Math.floor(options.margin.left*multiplier)),options.margin.right=Math.max(0,Math.floor(options.margin.right*multiplier))}options.width=Math.min(options.width,columns-borderWidth-options.margin.left-options.margin.right)}return options.width-(options.padding.left+options.padding.right)<=0&&(options.padding.left=0,options.padding.right=0),options.height&&options.height-(options.padding.top+options.padding.bottom)<=0&&(options.padding.top=0,options.padding.bottom=0),options},isHex=color=>color.match(/^#(?:[0-f]{3}){1,2}$/i),isColorValid=color=>typeof color=="string"&&(source_default[color]??isHex(color)),getColorFn=color=>isHex(color)?source_default.hex(color):source_default[color],getBGColorFn=color=>isHex(color)?source_default.bgHex(color):source_default[camelCase(["bg",color])];function boxen(text,options){if(options={padding:0,borderStyle:"single",dimBorder:!1,textAlignment:"left",float:"left",titleAlignment:"left",...options},options.align&&(options.textAlignment=options.align),options.borderColor&&!isColorValid(options.borderColor))throw new Error(`${options.borderColor} is not a valid borderColor`);if(options.backgroundColor&&!isColorValid(options.backgroundColor))throw new Error(`${options.backgroundColor} is not a valid backgroundColor`);return options.padding=getObject(options.padding),options.margin=getObject(options.margin),options=determineDimensions(text,options),text=makeContentText(text,options),boxContent(text,options.width,options)}var import_find_up=__toESM(require("find-up"),1),import_picocolors2=__toESM(require_picocolors(),1),import_prompts2=__toESM(require("prompts"),1),import_semver2=require("semver"),import_ts_dedent5=require("ts-dedent");var import_node_path3=require("path"),import_cli6=require("storybook/internal/cli"),import_cli7=require("storybook/internal/cli"),import_cli8=require("storybook/internal/cli"),import_common2=require("storybook/internal/common");var import_promises2=require("fs/promises"),import_node_path2=require("path"),import_cli2=require("storybook/internal/cli"),import_cli3=require("storybook/internal/cli"),import_cli4=require("storybook/internal/cli"),import_cli5=require("storybook/internal/cli"),import_common=require("storybook/internal/common"),import_ora=__toESM(require("ora"),1),import_tiny_invariant=__toESM(require("tiny-invariant"),1),import_ts_dedent2=require("ts-dedent");var import_promises=require("fs/promises"),import_node_path=require("path"),import_cli=require("storybook/internal/cli"),import_node_logger=require("storybook/internal/node-logger"),import_ts_dedent=require("ts-dedent"),pathExists=async path=>(0,import_promises.stat)(path).then(()=>!0).catch(()=>!1),sanitizeFramework=framework=>{let matches=framework.match(/(@storybook\/\w+(?:-\w+)*)|(storybook-(\w+(?:-\w+)*))/g);if(matches)return matches[0]};async function configureMain({addons,extensions=["js","jsx","mjs","ts","tsx"],storybookConfigFolder,language,prefixes=[],...custom}){let srcPath=(0,import_node_path.resolve)(storybookConfigFolder,"../src"),prefix=await pathExists(srcPath)?"../src":"../stories",config={stories:[`${prefix}/**/*.mdx`,`${prefix}/**/*.stories.@(${extensions.join("|")})`],addons,...custom},isTypescript=language===import_cli.SupportedLanguage.TYPESCRIPT_4_9||language===import_cli.SupportedLanguage.TYPESCRIPT_3_8,mainConfigTemplate=import_ts_dedent.dedent`<<import>><<prefix>>const config<<type>> = <<mainContents>>;
15
+ `),longestLength=Math.max(...alignedLinesArray.map(s=>stringWidth(s)));for(let alignedLine of alignedLinesArray){let paddedLine;switch(textAlignment){case"center":{paddedLine=PAD.repeat((max-longestLength)/2)+alignedLine;break}case"right":{paddedLine=PAD.repeat(max-longestLength)+alignedLine;break}default:{paddedLine=alignedLine;break}}newLines.push(paddedLine)}}lines=newLines}textAlignment==="center"&&textWidth<max?lines=lines.map(line=>PAD.repeat((max-textWidth)/2)+line):textAlignment==="right"&&textWidth<max&&(lines=lines.map(line=>PAD.repeat(max-textWidth)+line));let paddingLeft=PAD.repeat(padding.left),paddingRight=PAD.repeat(padding.right);return lines=lines.map(line=>paddingLeft+line+paddingRight),lines=lines.map(line=>{if(width-stringWidth(line)>0)switch(textAlignment){case"center":return line+PAD.repeat(width-stringWidth(line));case"right":return line+PAD.repeat(width-stringWidth(line));default:return line+PAD.repeat(width-stringWidth(line))}return line}),padding.top>0&&(lines=[...Array.from({length:padding.top}).fill(PAD.repeat(width)),...lines]),padding.bottom>0&&(lines=[...lines,...Array.from({length:padding.bottom}).fill(PAD.repeat(width))]),height&&lines.length>height?lines=lines.slice(0,height):height&&lines.length<height&&(lines=[...lines,...Array.from({length:height-lines.length}).fill(PAD.repeat(width))]),lines.join(NEWLINE)},boxContent=(content,contentWidth,options)=>{let colorizeBorder=border=>{let newBorder=options.borderColor?getColorFn(options.borderColor)(border):border;return options.dimBorder?source_default.dim(newBorder):newBorder},colorizeContent=content2=>options.backgroundColor?getBGColorFn(options.backgroundColor)(content2):content2,chars=getBorderChars(options.borderStyle),columns=terminalColumns(),marginLeft=PAD.repeat(options.margin.left);if(options.float==="center"){let marginWidth=Math.max((columns-contentWidth-getBorderWidth(options.borderStyle))/2,0);marginLeft=PAD.repeat(marginWidth)}else if(options.float==="right"){let marginWidth=Math.max(columns-contentWidth-options.margin.right-getBorderWidth(options.borderStyle),0);marginLeft=PAD.repeat(marginWidth)}let result="";options.margin.top&&(result+=NEWLINE.repeat(options.margin.top)),(options.borderStyle!==NONE||options.title)&&(result+=colorizeBorder(marginLeft+chars.topLeft+(options.title?makeTitle(options.title,chars.top.repeat(contentWidth),options.titleAlignment):chars.top.repeat(contentWidth))+chars.topRight)+NEWLINE);let lines=content.split(NEWLINE);return result+=lines.map(line=>marginLeft+colorizeBorder(chars.left)+colorizeContent(line)+colorizeBorder(chars.right)).join(NEWLINE),options.borderStyle!==NONE&&(result+=NEWLINE+colorizeBorder(marginLeft+chars.bottomLeft+chars.bottom.repeat(contentWidth)+chars.bottomRight)),options.margin.bottom&&(result+=NEWLINE.repeat(options.margin.bottom)),result},sanitizeOptions=options=>{if(options.fullscreen&&import_node_process2.default?.stdout){let newDimensions=[import_node_process2.default.stdout.columns,import_node_process2.default.stdout.rows];typeof options.fullscreen=="function"&&(newDimensions=options.fullscreen(...newDimensions)),options.width||(options.width=newDimensions[0]),options.height||(options.height=newDimensions[1])}return options.width&&(options.width=Math.max(1,options.width-getBorderWidth(options.borderStyle))),options.height&&(options.height=Math.max(1,options.height-getBorderWidth(options.borderStyle))),options},formatTitle=(title,borderStyle)=>borderStyle===NONE?title:` ${title} `,determineDimensions=(text,options)=>{options=sanitizeOptions(options);let widthOverride=options.width!==void 0,columns=terminalColumns(),borderWidth=getBorderWidth(options.borderStyle),maxWidth=columns-options.margin.left-options.margin.right-borderWidth,widest=widestLine(wrapAnsi(text,columns-borderWidth,{hard:!0,trim:!1}))+options.padding.left+options.padding.right;if(options.title&&widthOverride?(options.title=options.title.slice(0,Math.max(0,options.width-2)),options.title&&(options.title=formatTitle(options.title,options.borderStyle))):options.title&&(options.title=options.title.slice(0,Math.max(0,maxWidth-2)),options.title&&(options.title=formatTitle(options.title,options.borderStyle),stringWidth(options.title)>widest&&(options.width=stringWidth(options.title)))),options.width=options.width?options.width:widest,!widthOverride){if(options.margin.left&&options.margin.right&&options.width>maxWidth){let multiplier=(columns-options.width-borderWidth)/(options.margin.left+options.margin.right);options.margin.left=Math.max(0,Math.floor(options.margin.left*multiplier)),options.margin.right=Math.max(0,Math.floor(options.margin.right*multiplier))}options.width=Math.min(options.width,columns-borderWidth-options.margin.left-options.margin.right)}return options.width-(options.padding.left+options.padding.right)<=0&&(options.padding.left=0,options.padding.right=0),options.height&&options.height-(options.padding.top+options.padding.bottom)<=0&&(options.padding.top=0,options.padding.bottom=0),options},isHex=color=>color.match(/^#(?:[0-f]{3}){1,2}$/i),isColorValid=color=>typeof color=="string"&&(source_default[color]??isHex(color)),getColorFn=color=>isHex(color)?source_default.hex(color):source_default[color],getBGColorFn=color=>isHex(color)?source_default.bgHex(color):source_default[camelCase(["bg",color])];function boxen(text,options){if(options={padding:0,borderStyle:"single",dimBorder:!1,textAlignment:"left",float:"left",titleAlignment:"left",...options},options.align&&(options.textAlignment=options.align),options.borderColor&&!isColorValid(options.borderColor))throw new Error(`${options.borderColor} is not a valid borderColor`);if(options.backgroundColor&&!isColorValid(options.backgroundColor))throw new Error(`${options.backgroundColor} is not a valid backgroundColor`);return options.padding=getObject(options.padding),options.margin=getObject(options.margin),options=determineDimensions(text,options),text=makeContentText(text,options),boxContent(text,options.width,options)}var import_find_up=__toESM(require("find-up"),1),import_picocolors2=__toESM(require_picocolors(),1),import_prompts2=__toESM(require("prompts"),1),import_semver3=require("semver"),import_ts_dedent5=require("ts-dedent");var import_node_path3=require("path"),import_cli6=require("storybook/internal/cli"),import_cli7=require("storybook/internal/cli"),import_cli8=require("storybook/internal/cli"),import_common2=require("storybook/internal/common");var import_promises2=require("fs/promises"),import_node_path2=require("path"),import_cli2=require("storybook/internal/cli"),import_cli3=require("storybook/internal/cli"),import_cli4=require("storybook/internal/cli"),import_cli5=require("storybook/internal/cli"),import_common=require("storybook/internal/common"),import_ora=__toESM(require("ora"),1),import_tiny_invariant=__toESM(require("tiny-invariant"),1),import_ts_dedent2=require("ts-dedent");var import_promises=require("fs/promises"),import_node_path=require("path"),import_cli=require("storybook/internal/cli"),import_node_logger=require("storybook/internal/node-logger"),import_ts_dedent=require("ts-dedent"),pathExists=async path=>(0,import_promises.stat)(path).then(()=>!0).catch(()=>!1),sanitizeFramework=framework=>{let matches=framework.match(/(@storybook\/\w+(?:-\w+)*)|(storybook-(\w+(?:-\w+)*))/g);if(matches)return matches[0]};async function configureMain({addons,extensions=["js","jsx","mjs","ts","tsx"],storybookConfigFolder,language,prefixes=[],...custom}){let srcPath=(0,import_node_path.resolve)(storybookConfigFolder,"../src"),prefix=await pathExists(srcPath)?"../src":"../stories",config={stories:[`${prefix}/**/*.mdx`,`${prefix}/**/*.stories.@(${extensions.join("|")})`],addons,...custom},isTypescript=language===import_cli.SupportedLanguage.TYPESCRIPT_4_9||language===import_cli.SupportedLanguage.TYPESCRIPT_3_8,mainConfigTemplate=import_ts_dedent.dedent`<<import>><<prefix>>const config<<type>> = <<mainContents>>;
16
16
  export default config;`,frameworkPackage=sanitizeFramework(custom.framework?.name);frameworkPackage||(mainConfigTemplate=mainConfigTemplate.replace("<<import>>","").replace("<<type>>",""),import_node_logger.logger.warn("Could not find framework package name"));let mainContents=JSON.stringify(config,null,2).replace(/['"]%%/g,"").replace(/%%['"]/g,""),imports=[],finalPrefixes=[...prefixes];custom.framework?.name.includes("path.dirname(")&&imports.push("import path from 'node:path';"),isTypescript?imports.push(`import type { StorybookConfig } from '${frameworkPackage}';`):finalPrefixes.push(`/** @type { import('${frameworkPackage}').StorybookConfig } */`);let mainJsContents=mainConfigTemplate.replace("<<import>>",`${imports.join(`
17
17
 
18
18
  `)}
@@ -73,7 +73,7 @@
73
73
  Storybook 7.0+ doesn't support react-scripts@<5.0.0.
74
74
 
75
75
  https://github.com/storybookjs/storybook/blob/next/MIGRATION.md#create-react-app-dropped-cra4-support
76
- `);let extraPackages=[];extraPackages.push("webpack"),extraPackages.push("prop-types");let extraAddons=["@storybook/preset-create-react-app","@storybook/addon-onboarding"];await baseGenerator(packageManager,npmOptions,{...options,builder:import_cli17.CoreBuilder.Webpack5},"react",{webpackCompiler:()=>{},extraAddons,extraPackages,staticDir:(0,import_node_fs2.existsSync)((0,import_node_path5.resolve)("./public"))?"public":void 0,extraMain})},REACT_SCRIPTS_default=generator9;var import_cli18=require("storybook/internal/cli");var generator10=async(packageManager,npmOptions,options)=>{await baseGenerator(packageManager,npmOptions,{...options,builder:import_cli18.CoreBuilder.Webpack5},"server",{webpackCompiler:()=>"swc",extensions:["json","yaml","yml"]})},SERVER_default=generator10;var import_cli19=require("storybook/internal/cli");var generator11=async(packageManager,npmOptions,options)=>{await baseGenerator(packageManager,npmOptions,{...options,builder:import_cli19.CoreBuilder.Vite},"solid",{},"solid")},SOLID_default=generator11;var generator12=async(packageManager,npmOptions,options)=>{await baseGenerator(packageManager,npmOptions,options,"svelte",{extensions:["js","ts","svelte"],extraAddons:["@storybook/addon-svelte-csf"]})},SVELTE_default=generator12;var import_cli20=require("storybook/internal/cli");var generator13=async(packageManager,npmOptions,options)=>{await baseGenerator(packageManager,npmOptions,{...options,builder:import_cli20.CoreBuilder.Vite},"svelte",{extensions:["js","ts","svelte"],extraAddons:["@storybook/addon-svelte-csf"]},"sveltekit")},SVELTEKIT_default=generator13;var import_cli21=require("storybook/internal/cli");var generator14=async(packageManager,npmOptions,options)=>{await baseGenerator(packageManager,npmOptions,options,"vue3",{extraAddons:["@storybook/addon-onboarding"],extraPackages:async({builder})=>builder===import_cli21.CoreBuilder.Webpack5?["vue-loader@^17.0.0","@vue/compiler-sfc@^3.2.0"]:[],webpackCompiler:({builder})=>builder===import_cli21.CoreBuilder.Webpack5?"swc":void 0})},VUE3_default=generator14;var import_cli22=require("storybook/internal/cli");var generator15=async(packageManager,npmOptions,options)=>baseGenerator(packageManager,npmOptions,options,"web-components",{extraPackages:["lit"],webpackCompiler:({builder})=>builder===import_cli22.CoreBuilder.Webpack5?"swc":void 0}),WEB_COMPONENTS_default=generator15;var import_cli23=require("storybook/internal/cli");var generator16=async(packageManager,npmOptions,options)=>{await baseGenerator(packageManager,npmOptions,options,"react",{extraAddons:["@storybook/addon-onboarding"],webpackCompiler:({builder})=>builder===import_cli23.CoreBuilder.Webpack5?"swc":void 0})},WEBPACK_REACT_default=generator16;var import_node_fs3=require("fs"),import_promises3=require("fs/promises"),import_node_logger2=require("storybook/internal/node-logger"),import_server_errors=require("storybook/internal/server-errors"),import_telemetry=require("storybook/internal/telemetry");var import_execa=__toESM(require("execa"),1),import_picocolors=__toESM(require_picocolors(),1),import_prompts=__toESM(require("prompts"),1),import_ts_dedent4=require("ts-dedent"),SUPPORTED_PROJECTS={"react-vite-ts":{displayName:{type:"React",builder:"Vite",language:"TS"},createScript:{npm:"npm create vite@latest . -- --template react-ts",yarn:"yarn create vite@latest . --template react-ts",pnpm:"pnpm create vite@latest . --template react-ts"}},"nextjs-ts":{displayName:{type:"Next.js",language:"TS"},createScript:{npm:'npm create next-app . -- --typescript --use-npm --eslint --tailwind --no-app --import-alias="@/*" --src-dir',yarn:'yarn create next-app . --typescript --use-yarn --eslint --tailwind --no-app --import-alias="@/*" --src-dir',pnpm:'pnpm create next-app . --typescript --use-pnpm --eslint --tailwind --no-app --import-alias="@/*" --src-dir'}},"vue-vite-ts":{displayName:{type:"Vue 3",builder:"Vite",language:"TS"},createScript:{npm:"npm create vite@latest . -- --template vue-ts",yarn:"yarn create vite@latest . --template vue-ts",pnpm:"pnpm create vite@latest . --template vue-ts"}},"angular-cli":{displayName:{type:"Angular",language:"TS"},createScript:{npm:"npx -p @angular/cli@latest ng new angular-latest --directory . --routing=true --minimal=true --style=scss --strict --skip-git --skip-install",yarn:"yarn dlx -p @angular/cli ng new angular-latest --directory . --routing=true --minimal=true --style=scss --strict --skip-git --package-manager=yarn --skip-install && touch yarn.lock && yarn set version berry && yarn config set nodeLinker node-modules",pnpm:"pnpm --package @angular/cli dlx ng new angular-latest --directory . --routing=true --minimal=true --style=scss --strict --skip-git --package-manager=pnpm --skip-install"}},"lit-vite-ts":{displayName:{type:"Lit",builder:"Vite",language:"TS"},createScript:{npm:"npm create vite@latest . -- --template lit-ts",yarn:"yarn create vite@latest . --template lit-ts && touch yarn.lock && yarn set version berry && yarn config set nodeLinker pnp",pnpm:"pnpm create vite@latest . --template lit-ts"}}},packageManagerToCoercedName=packageManager=>{switch(packageManager){case"npm":return"npm";case"pnpm":return"pnpm";default:return"yarn"}},buildProjectDisplayNameForPrint=({displayName})=>{let{type,builder,language}=displayName;return`${import_picocolors.default.bold(import_picocolors.default.blue(type))} ${builder?`+ ${builder} `:""}(${language})`},scaffoldNewProject=async(packageManager,{disableTelemetry})=>{let packageManagerName=packageManagerToCoercedName(packageManager);import_node_logger2.logger.plain(boxen(import_ts_dedent4.dedent`
76
+ `);let extraPackages=[];extraPackages.push("webpack"),extraPackages.push("prop-types");let extraAddons=["@storybook/preset-create-react-app","@storybook/addon-onboarding"];await baseGenerator(packageManager,npmOptions,{...options,builder:import_cli17.CoreBuilder.Webpack5},"react",{webpackCompiler:()=>{},extraAddons,extraPackages,staticDir:(0,import_node_fs2.existsSync)((0,import_node_path5.resolve)("./public"))?"public":void 0,extraMain})},REACT_SCRIPTS_default=generator9;var import_cli18=require("storybook/internal/cli");var generator10=async(packageManager,npmOptions,options)=>{await baseGenerator(packageManager,npmOptions,{...options,builder:import_cli18.CoreBuilder.Webpack5},"server",{webpackCompiler:()=>"swc",extensions:["json","yaml","yml"]})},SERVER_default=generator10;var import_cli19=require("storybook/internal/cli");var generator11=async(packageManager,npmOptions,options)=>{await baseGenerator(packageManager,npmOptions,{...options,builder:import_cli19.CoreBuilder.Vite},"solid",{},"solid")},SOLID_default=generator11;var import_semver2=require("semver");var versionHelper=svelteMajor=>svelteMajor===4?"4":svelteMajor===5?"^5.0.0-next.0":"",getAddonSvelteCsfVersion=async packageManager=>{let svelteVersion=await packageManager.getInstalledVersion("svelte");try{if(svelteVersion)return versionHelper((0,import_semver2.major)((0,import_semver2.coerce)(svelteVersion)||""));{let svelteSpecifier=(await packageManager.getAllDependencies()).svelte,coerced=(0,import_semver2.coerce)(svelteSpecifier);if(coerced?.version)return versionHelper((0,import_semver2.major)(coerced.version))}}catch{}return""},generator12=async(packageManager,npmOptions,options)=>{let addonSvelteCsfVersion=await getAddonSvelteCsfVersion(packageManager);await baseGenerator(packageManager,npmOptions,options,"svelte",{extensions:["js","ts","svelte"],extraAddons:[`@storybook/addon-svelte-csf${addonSvelteCsfVersion&&`@${addonSvelteCsfVersion}`}`]})},SVELTE_default=generator12;var import_cli20=require("storybook/internal/cli");var generator13=async(packageManager,npmOptions,options)=>{let addonSvelteCsfVersion=await getAddonSvelteCsfVersion(packageManager);await baseGenerator(packageManager,npmOptions,{...options,builder:import_cli20.CoreBuilder.Vite},"svelte",{extensions:["js","ts","svelte"],extraAddons:[`@storybook/addon-svelte-csf${addonSvelteCsfVersion&&`@${addonSvelteCsfVersion}`}`]},"sveltekit")},SVELTEKIT_default=generator13;var import_cli21=require("storybook/internal/cli");var generator14=async(packageManager,npmOptions,options)=>{await baseGenerator(packageManager,npmOptions,options,"vue3",{extraAddons:["@storybook/addon-onboarding"],extraPackages:async({builder})=>builder===import_cli21.CoreBuilder.Webpack5?["vue-loader@^17.0.0","@vue/compiler-sfc@^3.2.0"]:[],webpackCompiler:({builder})=>builder===import_cli21.CoreBuilder.Webpack5?"swc":void 0})},VUE3_default=generator14;var import_cli22=require("storybook/internal/cli");var generator15=async(packageManager,npmOptions,options)=>baseGenerator(packageManager,npmOptions,options,"web-components",{extraPackages:["lit"],webpackCompiler:({builder})=>builder===import_cli22.CoreBuilder.Webpack5?"swc":void 0}),WEB_COMPONENTS_default=generator15;var import_cli23=require("storybook/internal/cli");var generator16=async(packageManager,npmOptions,options)=>{await baseGenerator(packageManager,npmOptions,options,"react",{extraAddons:["@storybook/addon-onboarding"],webpackCompiler:({builder})=>builder===import_cli23.CoreBuilder.Webpack5?"swc":void 0})},WEBPACK_REACT_default=generator16;var import_node_fs3=require("fs"),import_promises3=require("fs/promises"),import_node_logger2=require("storybook/internal/node-logger"),import_server_errors=require("storybook/internal/server-errors"),import_telemetry=require("storybook/internal/telemetry");var import_execa=__toESM(require("execa"),1),import_picocolors=__toESM(require_picocolors(),1),import_prompts=__toESM(require("prompts"),1),import_ts_dedent4=require("ts-dedent"),SUPPORTED_PROJECTS={"react-vite-ts":{displayName:{type:"React",builder:"Vite",language:"TS"},createScript:{npm:"npm create vite@latest . -- --template react-ts",yarn:"yarn create vite@latest . --template react-ts",pnpm:"pnpm create vite@latest . --template react-ts"}},"nextjs-ts":{displayName:{type:"Next.js",language:"TS"},createScript:{npm:'npm create next-app . -- --typescript --use-npm --eslint --tailwind --no-app --import-alias="@/*" --src-dir',yarn:'yarn create next-app . --typescript --use-yarn --eslint --tailwind --no-app --import-alias="@/*" --src-dir',pnpm:'pnpm create next-app . --typescript --use-pnpm --eslint --tailwind --no-app --import-alias="@/*" --src-dir'}},"vue-vite-ts":{displayName:{type:"Vue 3",builder:"Vite",language:"TS"},createScript:{npm:"npm create vite@latest . -- --template vue-ts",yarn:"yarn create vite@latest . --template vue-ts",pnpm:"pnpm create vite@latest . --template vue-ts"}},"angular-cli":{displayName:{type:"Angular",language:"TS"},createScript:{npm:"npx -p @angular/cli@latest ng new angular-latest --directory . --routing=true --minimal=true --style=scss --strict --skip-git --skip-install",yarn:"yarn dlx -p @angular/cli ng new angular-latest --directory . --routing=true --minimal=true --style=scss --strict --skip-git --package-manager=yarn --skip-install && touch yarn.lock && yarn set version berry && yarn config set nodeLinker node-modules",pnpm:"pnpm --package @angular/cli dlx ng new angular-latest --directory . --routing=true --minimal=true --style=scss --strict --skip-git --package-manager=pnpm --skip-install"}},"lit-vite-ts":{displayName:{type:"Lit",builder:"Vite",language:"TS"},createScript:{npm:"npm create vite@latest . -- --template lit-ts",yarn:"yarn create vite@latest . --template lit-ts && touch yarn.lock && yarn set version berry && yarn config set nodeLinker pnp",pnpm:"pnpm create vite@latest . --template lit-ts"}}},packageManagerToCoercedName=packageManager=>{switch(packageManager){case"npm":return"npm";case"pnpm":return"pnpm";default:return"yarn"}},buildProjectDisplayNameForPrint=({displayName})=>{let{type,builder,language}=displayName;return`${import_picocolors.default.bold(import_picocolors.default.blue(type))} ${builder?`+ ${builder} `:""}(${language})`},scaffoldNewProject=async(packageManager,{disableTelemetry})=>{let packageManagerName=packageManagerToCoercedName(packageManager);import_node_logger2.logger.plain(boxen(import_ts_dedent4.dedent`
77
77
  Would you like to generate a new project from the following list?
78
78
 
79
79
  ${import_picocolors.default.bold("Note:")}
@@ -86,7 +86,7 @@
86
86
 
87
87
  Continuing with Storybook installation...
88
88
  `,{title:import_picocolors.default.bold("\u2705 Success!"),padding:1,borderStyle:"double",borderColor:"green"})),import_node_logger2.logger.line(1)},BASE_IGNORED_FILES=[".git",".gitignore",".DS_Store",".cache"],IGNORED_FILES_BY_PACKAGE_MANAGER={npm:[...BASE_IGNORED_FILES],yarn:[...BASE_IGNORED_FILES,".yarnrc.yml",".yarn"],pnpm:[...BASE_IGNORED_FILES]},currentDirectoryIsEmpty=packageManager=>{let packageManagerName=packageManagerToCoercedName(packageManager),cwdFolderEntries=(0,import_node_fs3.readdirSync)(process.cwd()),filesToIgnore=IGNORED_FILES_BY_PACKAGE_MANAGER[packageManagerName];return cwdFolderEntries.length===0||cwdFolderEntries.every(entry=>filesToIgnore.includes(entry))};var logger4=console,installStorybook=async(projectType,packageManager,options)=>{let npmOptions={installAsDevDependencies:!0,skipInstall:options.skipInstall},language=await(0,import_cli25.detectLanguage)(packageManager),pnp=await(0,import_cli25.detectPnp)(),generatorOptions={language,builder:options.builder,linkable:!!options.linkable,pnp:pnp||options.usePnp,yes:options.yes,projectType},runGenerator=async()=>{switch(projectType){case import_cli24.ProjectType.REACT_SCRIPTS:return REACT_SCRIPTS_default(packageManager,npmOptions,generatorOptions).then((0,import_common3.commandLog)('Adding Storybook support to your "Create React App" based project'));case import_cli24.ProjectType.REACT:return REACT_default(packageManager,npmOptions,generatorOptions).then((0,import_common3.commandLog)('Adding Storybook support to your "React" app'));case import_cli24.ProjectType.REACT_NATIVE:return REACT_NATIVE_default(packageManager,npmOptions).then((0,import_common3.commandLog)('Adding Storybook support to your "React Native" app'));case import_cli24.ProjectType.QWIK:return QWIK_default(packageManager,npmOptions,generatorOptions).then((0,import_common3.commandLog)('Adding Storybook support to your "Qwik" app'));case import_cli24.ProjectType.WEBPACK_REACT:return WEBPACK_REACT_default(packageManager,npmOptions,generatorOptions).then((0,import_common3.commandLog)('Adding Storybook support to your "Webpack React" app'));case import_cli24.ProjectType.REACT_PROJECT:return REACT_default(packageManager,npmOptions,generatorOptions).then((0,import_common3.commandLog)('Adding Storybook support to your "React" library'));case import_cli24.ProjectType.NEXTJS:return NEXTJS_default(packageManager,npmOptions,generatorOptions).then((0,import_common3.commandLog)('Adding Storybook support to your "Next" app'));case import_cli24.ProjectType.VUE3:return VUE3_default(packageManager,npmOptions,generatorOptions).then((0,import_common3.commandLog)('Adding Storybook support to your "Vue 3" app'));case import_cli24.ProjectType.ANGULAR:return(0,import_common3.commandLog)('Adding Storybook support to your "Angular" app'),ANGULAR_default(packageManager,npmOptions,generatorOptions,options);case import_cli24.ProjectType.EMBER:return EMBER_default(packageManager,npmOptions,generatorOptions).then((0,import_common3.commandLog)('Adding Storybook support to your "Ember" app'));case import_cli24.ProjectType.HTML:return HTML_default(packageManager,npmOptions,generatorOptions).then((0,import_common3.commandLog)('Adding Storybook support to your "HTML" app'));case import_cli24.ProjectType.WEB_COMPONENTS:return WEB_COMPONENTS_default(packageManager,npmOptions,generatorOptions).then((0,import_common3.commandLog)('Adding Storybook support to your "web components" app'));case import_cli24.ProjectType.PREACT:return PREACT_default(packageManager,npmOptions,generatorOptions).then((0,import_common3.commandLog)('Adding Storybook support to your "Preact" app'));case import_cli24.ProjectType.SVELTE:return SVELTE_default(packageManager,npmOptions,generatorOptions).then((0,import_common3.commandLog)('Adding Storybook support to your "Svelte" app'));case import_cli24.ProjectType.SVELTEKIT:return SVELTEKIT_default(packageManager,npmOptions,generatorOptions).then((0,import_common3.commandLog)('Adding Storybook support to your "SvelteKit" app'));case import_cli24.ProjectType.SERVER:return SERVER_default(packageManager,npmOptions,generatorOptions).then((0,import_common3.commandLog)('Adding Storybook support to your "Server" app'));case import_cli24.ProjectType.NX:throw new import_server_errors2.NxProjectDetectedError;case import_cli24.ProjectType.SOLID:return SOLID_default(packageManager,npmOptions,generatorOptions).then((0,import_common3.commandLog)('Adding Storybook support to your "SolidJS" app'));case import_cli24.ProjectType.UNSUPPORTED:return(0,import_common3.paddedLog)("We detected a project type that we don't support yet."),(0,import_common3.paddedLog)("If you'd like your framework to be supported, please let use know about it at https://github.com/storybookjs/storybook/issues"),logger4.log(),Promise.resolve();default:return(0,import_common3.paddedLog)(`We couldn't detect your project type. (code: ${projectType})`),(0,import_common3.paddedLog)("You can specify a project type explicitly via `storybook init --type <type>`, see our docs on how to configure Storybook for your framework: https://storybook.js.org/docs/react/get-started/install"),logger4.log(),projectTypeInquirer(options,packageManager)}};try{return await runGenerator()}catch(err){throw err?.message!=="Canceled by the user"&&err?.stack&&logger4.error(`
89
- ${import_picocolors2.default.red(err.stack)}`),new import_common3.HandledError(err)}},projectTypeInquirer=async(options,packageManager)=>{let manualAnswer=options.yes?!0:await(0,import_prompts2.default)([{type:"confirm",name:"manual",message:"Do you want to manually choose a Storybook project type to install?"}]);if(manualAnswer!==!0&&manualAnswer.manual){let{manualFramework}=await(0,import_prompts2.default)([{type:"select",name:"manualFramework",message:"Please choose a project type from the following list:",choices:import_cli24.installableProjectTypes.map(type=>({title:type,value:type.toUpperCase()}))}]);if(manualFramework)return installStorybook(manualFramework,packageManager,options)}logger4.log(),logger4.log("For more information about installing Storybook: https://storybook.js.org/docs"),process.exit(0)};async function doInitiate(options){let{packageManager:pkgMgr}=options,packageManager=import_common3.JsPackageManagerFactory.getPackageManager({force:pkgMgr}),latestVersion=await packageManager.latestVersion("storybook"),currentVersion=import_common3.versions.storybook,isPrerelease=(0,import_semver2.prerelease)(currentVersion),isOutdated=(0,import_semver2.lt)(currentVersion,latestVersion),borderColor=isOutdated?"#FC521F":"#F1618C",messages={welcome:`Adding Storybook version ${import_picocolors2.default.bold(currentVersion)} to your project..`,notLatest:import_picocolors2.default.red(import_ts_dedent5.dedent`
89
+ ${import_picocolors2.default.red(err.stack)}`),new import_common3.HandledError(err)}},projectTypeInquirer=async(options,packageManager)=>{let manualAnswer=options.yes?!0:await(0,import_prompts2.default)([{type:"confirm",name:"manual",message:"Do you want to manually choose a Storybook project type to install?"}]);if(manualAnswer!==!0&&manualAnswer.manual){let{manualFramework}=await(0,import_prompts2.default)([{type:"select",name:"manualFramework",message:"Please choose a project type from the following list:",choices:import_cli24.installableProjectTypes.map(type=>({title:type,value:type.toUpperCase()}))}]);if(manualFramework)return installStorybook(manualFramework,packageManager,options)}logger4.log(),logger4.log("For more information about installing Storybook: https://storybook.js.org/docs"),process.exit(0)};async function doInitiate(options){let{packageManager:pkgMgr}=options,packageManager=import_common3.JsPackageManagerFactory.getPackageManager({force:pkgMgr}),latestVersion=await packageManager.latestVersion("storybook"),currentVersion=import_common3.versions.storybook,isPrerelease=(0,import_semver3.prerelease)(currentVersion),isOutdated=(0,import_semver3.lt)(currentVersion,latestVersion),borderColor=isOutdated?"#FC521F":"#F1618C",messages={welcome:`Adding Storybook version ${import_picocolors2.default.bold(currentVersion)} to your project..`,notLatest:import_picocolors2.default.red(import_ts_dedent5.dedent`
90
90
  This version is behind the latest release, which is: ${import_picocolors2.default.bold(latestVersion)}!
91
91
  You likely ran the init command through npx, which can use a locally cached version, to get the latest please run:
92
92
  ${import_picocolors2.default.bold("npx storybook@latest init")}
package/dist/index.js CHANGED
@@ -1 +1 @@
1
- export { doInitiate as initiate } from './chunk-KIUOXM7S.js';
1
+ export { doInitiate as initiate } from './chunk-3J34TFIM.js';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "create-storybook",
3
- "version": "8.4.0-alpha.5",
3
+ "version": "8.4.0-alpha.7",
4
4
  "description": "Initialize Storybook into your project",
5
5
  "homepage": "https://github.com/storybookjs/storybook/tree/next/code/lib/create-storybook",
6
6
  "bugs": {
@@ -64,7 +64,7 @@
64
64
  "prettier": "^3.1.1",
65
65
  "prompts": "^2.4.0",
66
66
  "semver": "^7.3.7",
67
- "storybook": "8.4.0-alpha.5",
67
+ "storybook": "8.4.0-alpha.7",
68
68
  "tiny-invariant": "^1.3.1",
69
69
  "ts-dedent": "^2.0.0"
70
70
  },