shadcn 4.21.2 → 4.21.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.
- package/dist/index.js +1 -1
- package/package.json +2 -2
package/dist/index.js
CHANGED
|
@@ -3,7 +3,7 @@ import {b,c,a as a$1}from'./chunk-3W6BGJGE.js';import {a}from'./chunk-SILUCKGE.j
|
|
|
3
3
|
To start over, remove the ${highlighter.info("components.json")} file and run ${highlighter.info("init")} again.`),logger.break(),process.exit(1)),r?.succeed();let o=spinner("Verifying framework.",{silent:e.silent}).start(),n=e.existingConfig?.tailwind,i=await getProjectInfo(e.cwd,{configCssFile:typeof n?.css=="string"?n.css:void 0});if(!i||i?.framework.name==="manual"){if(t["7"]=true,o?.fail(),!e.monorepo&&await isMonorepoRoot(e.cwd)){let l=await getMonorepoTargets(e.cwd);l.length>0&&(formatMonorepoMessage("init",l),process.exit(1));}logger.break(),i?.framework.links.installation&&logger.error(`We could not detect a supported framework at ${highlighter.info(e.cwd)}.
|
|
4
4
|
Visit ${highlighter.info(i?.framework.links.installation)} to manually configure your project.
|
|
5
5
|
Once configured, you can use the cli to add components.`),logger.break(),process.exit(1);}o?.succeed(`Verifying framework. Found ${highlighter.info(i.framework.label)}.`);let s="Validating Tailwind CSS.";i.tailwindVersion==="v4"&&(s=`Validating Tailwind CSS. Found ${highlighter.info("v4")}.`);let a=spinner(s,{silent:e.silent}).start();i.tailwindVersion==="v3"&&(!i?.tailwindConfigFile||!i?.tailwindCssFile)?(t["5"]=true,a?.fail()):i.tailwindVersion==="v4"&&!i?.tailwindCssFile?(t["5"]=true,a?.fail()):i.tailwindVersion?a?.succeed():(t["5"]=true,a?.fail());let c=spinner("Validating import alias.",{silent:e.silent}).start();return i?.aliasPrefix?c?.succeed():(t["6"]=true,c?.fail()),Object.keys(t).length>0&&(t["5"]&&(logger.break(),logger.error(`No Tailwind CSS configuration found at ${highlighter.info(e.cwd)}.`),logger.error("It is likely you do not have Tailwind CSS installed or have an invalid configuration."),logger.error("Install Tailwind CSS then try again."),i?.framework.links.tailwind&&logger.error(`Visit ${highlighter.info(i?.framework.links.tailwind)} to get started.`)),t["6"]&&(logger.break(),logger.error(`Could not find valid path aliases or package imports for ${highlighter.info("init")}.`),logger.error(`Configure path aliases in ${highlighter.info("tsconfig.json")} or imports in ${highlighter.info("package.json")}, then run ${highlighter.info("init")} again.`),logger.error(`Learn more at ${highlighter.info(`${SHADCN_URL}/docs/installation/manual#configure-import-aliases`)}.`)),logger.break(),process.exit(1)),{errors:t,projectInfo:i}}async function _(e,t,r={}){r={silent:false,writeFile:true,...r};let n=(await resolveRegistryNamespaces(e,t)).filter(m=>!t.registries?.[m]&&!Object.keys(BUILTIN_REGISTRIES).includes(m));if(n.length===0)return {config:t,newRegistries:[],discoveredRegistries:{},packageJsonRegistries:{}};let i=await getPackageJsonRegistries(t.resolvedPaths.cwd),s={},a=[];for(let m of n)i[m]?s[m]=i[m]:a.push(m);let c={};if(a.length>0){let m=await getRegistriesIndex({useCache:process.env.NODE_ENV!=="development"});if(m)for(let d of a)m[d]&&(c[d]=m[d]);}let l={...s,...c};if(Object.keys(l).length===0)return {config:t,newRegistries:[],discoveredRegistries:{},packageJsonRegistries:{}};let p=Object.fromEntries(Object.entries(t.registries||{}).filter(([m])=>!Object.keys(BUILTIN_REGISTRIES).includes(m))),f={...t,registries:{...p,...l}};if(r.writeFile&&Object.keys(c).length>0){let m=X__default.resolve(t.resolvedPaths.cwd,"components.json");if(F.existsSync(m)){let d=spinner("Updating components.json.",{silent:r.silent}).start(),u=await F.readJson(m),g={...u,registries:{...u.registries,...c}};await F.writeFile(m,JSON.stringify(g,null,2)+`
|
|
6
|
-
`,"utf-8"),d.succeed();}}return {config:f,newRegistries:Object.keys(l),discoveredRegistries:c,packageJsonRegistries:s}}var J={nova:{title:"Nova",description:"Lucide / Geist",style:"nova",baseColor:"neutral",theme:"neutral",chartColor:"neutral",iconLibrary:"lucide",font:"geist",fontHeading:"inherit",menuAccent:"subtle",menuColor:"default",radius:"default",rtl:false},vega:{title:"Vega",description:"Lucide / Inter",style:"vega",baseColor:"neutral",theme:"neutral",chartColor:"neutral",iconLibrary:"lucide",font:"inter",fontHeading:"inherit",menuAccent:"subtle",menuColor:"default",radius:"default",rtl:false},maia:{title:"Maia",description:"Hugeicons / Figtree",style:"maia",baseColor:"neutral",theme:"neutral",chartColor:"neutral",iconLibrary:"hugeicons",font:"figtree",fontHeading:"inherit",menuAccent:"subtle",menuColor:"default",radius:"default",rtl:false},lyra:{title:"Lyra",description:"Phosphor / JetBrains Mono",style:"lyra",baseColor:"neutral",theme:"neutral",chartColor:"neutral",iconLibrary:"phosphor",font:"jetbrains-mono",fontHeading:"inherit",menuAccent:"subtle",menuColor:"default",radius:"default",rtl:false},mira:{title:"Mira",description:"Hugeicons / Inter",style:"mira",baseColor:"neutral",theme:"neutral",chartColor:"neutral",iconLibrary:"hugeicons",font:"inter",fontHeading:"inherit",menuAccent:"subtle",menuColor:"default",radius:"default",rtl:false},luma:{title:"Luma",description:"Lucide / Inter",style:"luma",baseColor:"neutral",theme:"neutral",chartColor:"neutral",iconLibrary:"lucide",font:"inter",fontHeading:"inherit",menuAccent:"subtle",menuColor:"default",radius:"default",rtl:false},sera:{title:"Sera",description:"Lucide / Noto Sans + Playfair Display",style:"sera",baseColor:"taupe",theme:"taupe",chartColor:"taupe",iconLibrary:"lucide",font:"noto-sans",fontHeading:"playfair-display",menuAccent:"subtle",menuColor:"default",radius:"default",rtl:false},rhea:{title:"Rhea",description:"Lucide / Inter",style:"rhea",baseColor:"neutral",theme:"neutral",chartColor:"neutral",iconLibrary:"lucide",font:"inter",fontHeading:"inherit",menuAccent:"subtle",menuColor:"default",radius:"default",rtl:false}};function pr(e){let t=new URL(`${SHADCN_URL}/create`),{rtl:r,pointer:o,...n}=e??{};for(let[i,s]of Object.entries(n))s!==void 0&&t.searchParams.set(i,String(s));return r&&t.searchParams.set("rtl","true"),o&&t.searchParams.set("pointer","true"),t.toString()}async function mr(e){if(logger.break(),logger.log(` Build your custom preset on ${highlighter.info(e.createUrl)}`),logger.log(` ${e.followUp}`),logger.break(),e.prompt===false)return;let{proceed:t}=await ae({type:"confirm",name:"proceed",message:"Open in browser?",initial:true});t&&await Bs(e.createUrl);}function ne(e,t){let r=new URLSearchParams({base:e.base,style:e.style,baseColor:e.baseColor,theme:e.theme,iconLibrary:e.iconLibrary,font:e.font,rtl:String(e.rtl??false),menuAccent:e.menuAccent,menuColor:e.menuColor,radius:e.radius});return e.chartColor&&e.chartColor!=="neutral"&&r.set("chartColor",e.chartColor),e.fontHeading&&e.fontHeading!=="inherit"&&r.set("fontHeading",e.fontHeading),t?.preset&&r.set("preset",t.preset),t?.template&&r.set("template",t.template),t?.only&&r.set("only",t.only),t?.pointer&&r.set("pointer","true"),r.set("track","1"),`${SHADCN_URL}/init?${r.toString()}`}async function Ne(){let{base:e}=await ae({type:"select",name:"base",message:`Select a ${highlighter.info("component library")}`,choices:[{title:"Base UI (Recommended)",value:"base"},{title:"React Aria",value:"aria"},{title:"Radix UI",value:"radix"}]});return e||process.exit(1),e}async function qe(e){let t=Object.entries(J),{selectedPreset:r}=await ae({type:"select",name:"selectedPreset",message:`Which ${highlighter.info("preset")} would you like to use?`,choices:[...t.map(([n,i])=>({title:i.title,description:i.description,value:n})),{title:"Custom",description:`Build your own at ${highlighter.info(`${SHADCN_URL}/create`)}`,value:"custom"}]});if(r||process.exit(1),r==="custom"){let n=pr({command:"init",rtl:e.rtl,pointer:e.pointer,base:e.base,...e.template&&{template:e.template}});await mr({createUrl:n,followUp:`Then ${highlighter.info("copy and run the command")} from ui.shadcn.com.`}),process.exit(0);}let o=J[r];return o||process.exit(1),{url:ne({...o,base:e.base,rtl:e.rtl},{template:e.template,pointer:e.pointer}),base:e.base}}async function he(e,t,r){let o=configWithDefaults(createConfig({resolvedPaths:{cwd:t},...r?.registries&&{registries:r.registries}})),{config:n}=await _([e],o,{silent:true,writeFile:false});o=n,buildUrlAndHeadersForRegistryItem(e,o);let[i]=await getRegistryItems([e],{config:o,useCache:true}),s=i?.type==="registry:base"&&i.config?i.config:void 0,a=e;if(Us(e)){let c=new URL(e);c.searchParams.delete("track"),a=c.toString();}return {registryBaseConfig:s,installStyleIndex:i?.extends!=="none",url:a}}function Us(e){try{return new URL(e).pathname==="/init"&&e.startsWith(SHADCN_URL)}catch{return false}}var Ct={version:"4.21.
|
|
6
|
+
`,"utf-8"),d.succeed();}}return {config:f,newRegistries:Object.keys(l),discoveredRegistries:c,packageJsonRegistries:s}}var J={nova:{title:"Nova",description:"Lucide / Geist",style:"nova",baseColor:"neutral",theme:"neutral",chartColor:"neutral",iconLibrary:"lucide",font:"geist",fontHeading:"inherit",menuAccent:"subtle",menuColor:"default",radius:"default",rtl:false},vega:{title:"Vega",description:"Lucide / Inter",style:"vega",baseColor:"neutral",theme:"neutral",chartColor:"neutral",iconLibrary:"lucide",font:"inter",fontHeading:"inherit",menuAccent:"subtle",menuColor:"default",radius:"default",rtl:false},maia:{title:"Maia",description:"Hugeicons / Figtree",style:"maia",baseColor:"neutral",theme:"neutral",chartColor:"neutral",iconLibrary:"hugeicons",font:"figtree",fontHeading:"inherit",menuAccent:"subtle",menuColor:"default",radius:"default",rtl:false},lyra:{title:"Lyra",description:"Phosphor / JetBrains Mono",style:"lyra",baseColor:"neutral",theme:"neutral",chartColor:"neutral",iconLibrary:"phosphor",font:"jetbrains-mono",fontHeading:"inherit",menuAccent:"subtle",menuColor:"default",radius:"default",rtl:false},mira:{title:"Mira",description:"Hugeicons / Inter",style:"mira",baseColor:"neutral",theme:"neutral",chartColor:"neutral",iconLibrary:"hugeicons",font:"inter",fontHeading:"inherit",menuAccent:"subtle",menuColor:"default",radius:"default",rtl:false},luma:{title:"Luma",description:"Lucide / Inter",style:"luma",baseColor:"neutral",theme:"neutral",chartColor:"neutral",iconLibrary:"lucide",font:"inter",fontHeading:"inherit",menuAccent:"subtle",menuColor:"default",radius:"default",rtl:false},sera:{title:"Sera",description:"Lucide / Noto Sans + Playfair Display",style:"sera",baseColor:"taupe",theme:"taupe",chartColor:"taupe",iconLibrary:"lucide",font:"noto-sans",fontHeading:"playfair-display",menuAccent:"subtle",menuColor:"default",radius:"default",rtl:false},rhea:{title:"Rhea",description:"Lucide / Inter",style:"rhea",baseColor:"neutral",theme:"neutral",chartColor:"neutral",iconLibrary:"lucide",font:"inter",fontHeading:"inherit",menuAccent:"subtle",menuColor:"default",radius:"default",rtl:false}};function pr(e){let t=new URL(`${SHADCN_URL}/create`),{rtl:r,pointer:o,...n}=e??{};for(let[i,s]of Object.entries(n))s!==void 0&&t.searchParams.set(i,String(s));return r&&t.searchParams.set("rtl","true"),o&&t.searchParams.set("pointer","true"),t.toString()}async function mr(e){if(logger.break(),logger.log(` Build your custom preset on ${highlighter.info(e.createUrl)}`),logger.log(` ${e.followUp}`),logger.break(),e.prompt===false)return;let{proceed:t}=await ae({type:"confirm",name:"proceed",message:"Open in browser?",initial:true});t&&await Bs(e.createUrl);}function ne(e,t){let r=new URLSearchParams({base:e.base,style:e.style,baseColor:e.baseColor,theme:e.theme,iconLibrary:e.iconLibrary,font:e.font,rtl:String(e.rtl??false),menuAccent:e.menuAccent,menuColor:e.menuColor,radius:e.radius});return e.chartColor&&e.chartColor!=="neutral"&&r.set("chartColor",e.chartColor),e.fontHeading&&e.fontHeading!=="inherit"&&r.set("fontHeading",e.fontHeading),t?.preset&&r.set("preset",t.preset),t?.template&&r.set("template",t.template),t?.only&&r.set("only",t.only),t?.pointer&&r.set("pointer","true"),r.set("track","1"),`${SHADCN_URL}/init?${r.toString()}`}async function Ne(){let{base:e}=await ae({type:"select",name:"base",message:`Select a ${highlighter.info("component library")}`,choices:[{title:"Base UI (Recommended)",value:"base"},{title:"React Aria",value:"aria"},{title:"Radix UI",value:"radix"}]});return e||process.exit(1),e}async function qe(e){let t=Object.entries(J),{selectedPreset:r}=await ae({type:"select",name:"selectedPreset",message:`Which ${highlighter.info("preset")} would you like to use?`,choices:[...t.map(([n,i])=>({title:i.title,description:i.description,value:n})),{title:"Custom",description:`Build your own at ${highlighter.info(`${SHADCN_URL}/create`)}`,value:"custom"}]});if(r||process.exit(1),r==="custom"){let n=pr({command:"init",rtl:e.rtl,pointer:e.pointer,base:e.base,...e.template&&{template:e.template}});await mr({createUrl:n,followUp:`Then ${highlighter.info("copy and run the command")} from ui.shadcn.com.`}),process.exit(0);}let o=J[r];return o||process.exit(1),{url:ne({...o,base:e.base,rtl:e.rtl},{template:e.template,pointer:e.pointer}),base:e.base}}async function he(e,t,r){let o=configWithDefaults(createConfig({resolvedPaths:{cwd:t},...r?.registries&&{registries:r.registries}})),{config:n}=await _([e],o,{silent:true,writeFile:false});o=n,buildUrlAndHeadersForRegistryItem(e,o);let[i]=await getRegistryItems([e],{config:o,useCache:true}),s=i?.type==="registry:base"&&i.config?i.config:void 0,a=e;if(Us(e)){let c=new URL(e);c.searchParams.delete("track"),a=c.toString();}return {registryBaseConfig:s,installStyleIndex:i?.extends!=="none",url:a}}function Us(e){try{return new URL(e).pathname==="/init"&&e.startsWith(SHADCN_URL)}catch{return false}}var Ct={version:"4.21.3"};function C(e){if(logger.break(),logger.error("Something went wrong. Please check the error below for more details."),logger.error("If the problem persists, please open an issue on GitHub."),logger.error(""),typeof e=="string"&&(logger.error(e),Xe()),e instanceof RegistryError&&(e.message&&(logger.error(e.cause?"Error:":"Message:"),logger.error(e.message)),e.cause&&(logger.error(`
|
|
7
7
|
Message:`),logger.error(e.cause)),e.suggestion&&(logger.error(`
|
|
8
8
|
Suggestion:`),logger.error(e.suggestion)),Xe()),e instanceof z$1.ZodError){logger.error("Validation failed:");for(let[t,r]of Object.entries(e.flatten().fieldErrors))logger.error(`- ${highlighter.info(t)}: ${r}`);Xe();}e instanceof Error&&(logger.error(e.message),Xe()),Xe();}function Ys(e){let t=e.match(/^(\d+)\.(\d+)\.\d+/);if(!t)return null;let r=Number.parseInt(t[1],10),o=Number.parseInt(t[2],10);return o===0?null:`${r}.${o-1}.0`}function qs(e=Ct.version,t=process.argv.slice(2)){let r=Ys(e);return r?[...getPackageRunnerCommand(getPackageManagerFromUserAgent()).split(" "),`shadcn@${r}`,...t].map(Xs).join(" "):null}function Xe(){let e=qs();e&&(logger.error(""),logger.error("You can also try a previous version to see if that works:"),logger.error(e)),logger.break(),process.exit(1);}function Xs(e){return /^[a-zA-Z0-9_./:@%+=,-]+$/.test(e)?e:`'${e.replace(/'/g,"'\\''")}'`}var ta=process.env.SHADCN_GITHUB_URL??"https://github.com/shadcn-ui/ui.git";function z(e){return {...e,frameworks:e.frameworks??[],scaffold:e.scaffold??vo({title:e.title,templateDir:e.templateDir}),postInit:e.postInit??ia}}function we(e,{monorepo:t}){if(!t||!e.monorepo)return e;let r=e.monorepo,o={...e,templateDir:r.templateDir,defaultProjectName:r.defaultProjectName??r.templateDir,init:r.init??e.init,files:r.files??e.files};return o.scaffold=vo({title:e.title,templateDir:r.templateDir}),o}function ra(e){switch(e){case "pnpm":return ["--no-frozen-lockfile"];case "yarn":return ["--no-immutable"];case "npm":return ["--no-audit","--no-fund"];default:return []}}async function oa(e,t){if(t==="pnpm")return;let r=X__default.join(e,"pnpm-workspace.yaml"),o=X__default.join(e,"package.json"),n=X__default.join(e,"pnpm-lock.yaml");F.existsSync(n)&&await F.remove(n);let i=F.existsSync(r),s=i?parsePnpmWorkspacePackages(await F.readFile(r,"utf8")):[],a=s.length>0;if(F.existsSync(o)){let c=await F.readFile(o,"utf8"),l=JSON.parse(c);a?l.packageManager=await na(t):delete l.packageManager,a&&(l.workspaces=s),await F.writeFile(o,JSON.stringify(l,null,2)+`
|
|
9
9
|
`);}i&&await F.remove(r),a&&t==="npm"&&await So(e);}async function na(e){try{let{stdout:t}=await execa(e,["--version"]);return `${e}@${t.trim()}`}catch{return `${e}@*`}}async function So(e){let t=await F.readdir(e,{withFileTypes:true});for(let r of t){if(r.name==="node_modules")continue;let o=X__default.join(e,r.name);if(r.isDirectory())await So(o);else if(r.name==="package.json"){let n=await F.readFile(o,"utf8");if(!n.includes("workspace:"))continue;let i=JSON.parse(n),s=false;for(let a of ["dependencies","devDependencies","peerDependencies","optionalDependencies"]){let c=i[a];if(c)for(let[l,p]of Object.entries(c))typeof p=="string"&&p.startsWith("workspace:")&&(c[l]="*",s=true);}s&&await F.writeFile(o,JSON.stringify(i,null,2)+`
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "shadcn",
|
|
3
|
-
"version": "4.21.
|
|
3
|
+
"version": "4.21.3",
|
|
4
4
|
"description": "Add components to your apps.",
|
|
5
5
|
"homepage": "https://ui.shadcn.com",
|
|
6
6
|
"publishConfig": {
|
|
@@ -99,7 +99,7 @@
|
|
|
99
99
|
"validate-npm-package-name": "^7.0.1",
|
|
100
100
|
"zod": "^3.24.1",
|
|
101
101
|
"zod-to-json-schema": "^3.24.6",
|
|
102
|
-
"@shadcn/registry": "0.1.
|
|
102
|
+
"@shadcn/registry": "0.1.2"
|
|
103
103
|
},
|
|
104
104
|
"devDependencies": {
|
|
105
105
|
"@antfu/ni": "^25.0.0",
|