hghcn 3.6.2

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/README.md ADDED
@@ -0,0 +1,51 @@
1
+ # shadcn
2
+
3
+ A CLI for adding components to your project.
4
+
5
+ ## create
6
+
7
+ Use the `create` command to create a new project. You will be taken to a website to build your custom design system and choose your framework.
8
+
9
+ ```bash
10
+ npx shadcn create
11
+ ```
12
+
13
+ ## init
14
+
15
+ Use the `init` command to initialize dependencies for a new project.
16
+
17
+ The `init` command installs dependencies, adds the `cn` util, configures Tailwind CSS, and CSS variables for the project.
18
+
19
+ ```bash
20
+ npx shadcn init
21
+ ```
22
+
23
+ ## add
24
+
25
+ Use the `add` command to add components to your project.
26
+
27
+ The `add` command adds a component to your project and installs all required dependencies.
28
+
29
+ ```bash
30
+ npx shadcn add [component]
31
+ ```
32
+
33
+ ### Example
34
+
35
+ ```bash
36
+ npx shadcn add alert-dialog
37
+ ```
38
+
39
+ You can also run the command without any arguments to view a list of all available components:
40
+
41
+ ```bash
42
+ npx shadcn add
43
+ ```
44
+
45
+ ## Documentation
46
+
47
+ Visit https://ui.shadcn.com/docs/cli to view the documentation.
48
+
49
+ ## License
50
+
51
+ Licensed under the [MIT license](https://github.com/shadcn-ui/ui/blob/main/LICENSE.md).
@@ -0,0 +1,3 @@
1
+ var e={lucide:{name:"lucide",title:"Lucide",packages:["lucide-react"],import:"import { ICON } from 'lucide-react'",usage:"<ICON />",export:"lucide-react"},tabler:{name:"tabler",title:"Tabler Icons",packages:["@tabler/icons-react"],import:"import { ICON } from '@tabler/icons-react'",usage:"<ICON />",export:"@tabler/icons-react"},hugeicons:{name:"hugeicons",title:"HugeIcons",packages:["@hugeicons/react","@hugeicons/core-free-icons"],import:`import { HugeiconsIcon } from '@hugeicons/react'
2
+ import { ICON } from '@hugeicons/core-free-icons';`,usage:"<HugeiconsIcon icon={ICON} strokeWidth={2} />",export:"@hugeicons/core-free-icons"},phosphor:{name:"phosphor",title:"Phosphor Icons",packages:["@phosphor-icons/react"],import:"import { ICON } from '@phosphor-icons/react'",usage:"<ICON strokeWidth={2} />",export:"@phosphor-icons/react"}};export{e as a};//# sourceMappingURL=chunk-BFNVF2P5.js.map
3
+ //# sourceMappingURL=chunk-BFNVF2P5.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/icons/libraries.ts"],"names":["iconLibraries"],"mappings":"AAAO,IAAMA,CAAAA,CAAgB,CAC3B,MAAA,CAAQ,CACN,KAAM,QAAA,CACN,KAAA,CAAO,SACP,QAAA,CAAU,CAAC,cAAc,CAAA,CACzB,MAAA,CAAQ,sCACR,KAAA,CAAO,UAAA,CACP,OAAQ,cACV,CAAA,CACA,MAAA,CAAQ,CACN,IAAA,CAAM,QAAA,CACN,MAAO,cAAA,CACP,QAAA,CAAU,CAAC,qBAAqB,CAAA,CAChC,OAAQ,4CAAA,CACR,KAAA,CAAO,UAAA,CACP,MAAA,CAAQ,qBACV,CAAA,CACA,UAAW,CACT,IAAA,CAAM,YACN,KAAA,CAAO,WAAA,CACP,SAAU,CAAC,kBAAA,CAAoB,4BAA4B,CAAA,CAC3D,MAAA,CACE,CAAA;AAAA,kDAAA,CAAA,CACF,KAAA,CAAO,gDACP,MAAA,CAAQ,4BACV,EACA,QAAA,CAAU,CACR,KAAM,UAAA,CACN,KAAA,CAAO,iBACP,QAAA,CAAU,CAAC,uBAAuB,CAAA,CAClC,MAAA,CAAQ,+CACR,KAAA,CAAO,0BAAA,CACP,MAAA,CAAQ,uBACV,CACF","file":"chunk-BFNVF2P5.js","sourcesContent":["export const iconLibraries = {\n lucide: {\n name: \"lucide\",\n title: \"Lucide\",\n packages: [\"lucide-react\"],\n import: \"import { ICON } from 'lucide-react'\",\n usage: \"<ICON />\",\n export: \"lucide-react\",\n },\n tabler: {\n name: \"tabler\",\n title: \"Tabler Icons\",\n packages: [\"@tabler/icons-react\"],\n import: \"import { ICON } from '@tabler/icons-react'\",\n usage: \"<ICON />\",\n export: \"@tabler/icons-react\",\n },\n hugeicons: {\n name: \"hugeicons\",\n title: \"HugeIcons\",\n packages: [\"@hugeicons/react\", \"@hugeicons/core-free-icons\"],\n import:\n \"import { HugeiconsIcon } from '@hugeicons/react'\\nimport { ICON } from '@hugeicons/core-free-icons';\",\n usage: \"<HugeiconsIcon icon={ICON} strokeWidth={2} />\",\n export: \"@hugeicons/core-free-icons\",\n },\n phosphor: {\n name: \"phosphor\",\n title: \"Phosphor Icons\",\n packages: [\"@phosphor-icons/react\"],\n import: \"import { ICON } from '@phosphor-icons/react'\",\n usage: \"<ICON strokeWidth={2} />\",\n export: \"@phosphor-icons/react\",\n },\n} as const\n\nexport type IconLibraries = typeof iconLibraries\n\nexport type IconLibrary = IconLibraries[keyof IconLibraries]\n\nexport type IconLibraryName = keyof IconLibraries\n"]}
@@ -0,0 +1,34 @@
1
+ import {m,l,f,d,c,e,n,t,o,b as b$1,p,q as q$1,r,s,w,y as y$1,v,g}from'./chunk-WKG3W635.js';import {a,b}from'./chunk-PMFK2ZSQ.js';import*as y from'path';import y__default,{basename}from'path';import {z}from'zod';import*as G from'fs/promises';import {tmpdir,homedir}from'os';import {green,cyan,yellow,red}from'kleur/colors';import {loadConfig,createMatchPath}from'tsconfig-paths';import {cosmiconfig}from'cosmiconfig';import Le from'fast-glob';import Ne from'fs-extra';import {existsSync,statSync,promises}from'fs';import Ar from'ora';import {Project,SyntaxKind,ScriptKind,QuoteKind}from'ts-morph';import {transformFromAstSync}from'@babel/core';import {parse}from'@babel/parser';import Kr from'@babel/plugin-transform-typescript';import*as Ve from'recast';import Xr from'prompts';import pe from'deepmerge';import {HttpsProxyAgent}from'https-proxy-agent';import $s from'node-fetch';import {createHash}from'crypto';import Ns from'stringify-object';import rn from'fuzzysort';var te=process.env.REGISTRY_URL??"https://ui.shadcn.com/r",ke="new-york-v4",It=[{name:"neutral",label:"Neutral"},{name:"gray",label:"Gray"},{name:"zinc",label:"Zinc"},{name:"stone",label:"Stone"},{name:"slate",label:"Slate"}],F={"@shadcn":`${te}/styles/{style}/{name}.json`};var cn=[{name:"toast",deprecatedBy:"sonner",message:"The toast component is deprecated. Use the sonner component instead."},{name:"toaster",deprecatedBy:"sonner",message:"The toaster component is deprecated. Use the sonner component instead."}];function de(e){return e.replace(/\${(\w+)}/g,(t,r)=>process.env[r]||"")}function ge(e){let t=[],r=/\${(\w+)}/g,s;for(;(s=r.exec(e))!==null;)t.push(s[1]);return t}var N={NOT_FOUND:"NOT_FOUND",UNAUTHORIZED:"UNAUTHORIZED",FORBIDDEN:"FORBIDDEN",FETCH_ERROR:"FETCH_ERROR",NOT_CONFIGURED:"NOT_CONFIGURED",INVALID_CONFIG:"INVALID_CONFIG",MISSING_ENV_VARS:"MISSING_ENV_VARS",LOCAL_FILE_ERROR:"LOCAL_FILE_ERROR",PARSE_ERROR:"PARSE_ERROR",VALIDATION_ERROR:"VALIDATION_ERROR",UNKNOWN_ERROR:"UNKNOWN_ERROR"},I=class extends Error{code;statusCode;context;suggestion;timestamp;cause;constructor(t,r={}){super(t),this.name="RegistryError",this.code=r.code||N.UNKNOWN_ERROR,this.statusCode=r.statusCode,this.cause=r.cause,this.context=r.context,this.suggestion=r.suggestion,this.timestamp=new Date,Error.captureStackTrace&&Error.captureStackTrace(this,this.constructor);}toJSON(){return {name:this.name,message:this.message,code:this.code,statusCode:this.statusCode,context:this.context,suggestion:this.suggestion,timestamp:this.timestamp,stack:this.stack}}},q=class extends I{constructor(r,s){let n=`The item at ${r} was not found. It may not exist at the registry.`;super(n,{code:N.NOT_FOUND,statusCode:404,cause:s,context:{url:r},suggestion:"Check if the item name is correct and the registry URL is accessible."});this.url=r;this.name="RegistryNotFoundError";}},ue=class extends I{constructor(r,s){let n=`You are not authorized to access the item at ${r}. If this is a remote registry, you may need to authenticate.`;super(n,{code:N.UNAUTHORIZED,statusCode:401,cause:s,context:{url:r},suggestion:"Check your authentication credentials and environment variables."});this.url=r;this.name="RegistryUnauthorizedError";}},he=class extends I{constructor(r,s){let n=`You are not authorized to access the item at ${r}. If this is a remote registry, you may need to authenticate.`;super(n,{code:N.FORBIDDEN,statusCode:403,cause:s,context:{url:r},suggestion:"Check your authentication credentials and environment variables."});this.url=r;this.name="RegistryForbiddenError";}},ye=class extends I{constructor(r,s,n,i){let o=s?`Failed to fetch from registry (${s}): ${r}`:`Failed to fetch from registry: ${r}`,a=typeof i=="string"&&i?`${o} - ${i}`:o,p="Check your network connection and try again.";s===404?p="The requested resource was not found. Check the URL or item name.":s===500?p="The registry server encountered an error. Try again later.":s&&s>=400&&s<500&&(p="There was a client error. Check your request parameters.");super(a,{code:N.FETCH_ERROR,statusCode:s,cause:i,context:{url:r,responseBody:n},suggestion:p});this.url=r;this.responseBody=n;this.name="RegistryFetchError";}},U=class extends I{constructor(r){let s=r?`Unknown registry "${r}". Make sure it is defined in components.json as follows:
2
+ {
3
+ "registries": {
4
+ "${r}": "[URL_TO_REGISTRY]"
5
+ }
6
+ }`:'Unknown registry. Make sure it is defined in components.json under "registries".';super(s,{code:N.NOT_CONFIGURED,context:{registryName:r},suggestion:"Add the registry configuration to your components.json file. Consult the registry documentation for the correct format."});this.registryName=r;this.name="RegistryNotConfiguredError";}},re=class extends I{constructor(r,s){super(`Failed to read local registry file: ${r}`,{code:N.LOCAL_FILE_ERROR,cause:s,context:{filePath:r},suggestion:"Check if the file exists and you have read permissions."});this.filePath=r;this.name="RegistryLocalFileError";}},$=class extends I{constructor(r,s){let n=`Failed to parse registry item: ${r}`;s instanceof z.ZodError&&(n=`Failed to parse registry item: ${r}
7
+ ${s.errors.map(i=>` - ${i.path.join(".")}: ${i.message}`).join(`
8
+ `)}`);super(n,{code:N.PARSE_ERROR,cause:s,context:{item:r},suggestion:"The registry item may be corrupted or have an invalid format. Please make sure it returns a valid JSON object. See https://ui.shadcn.com/schema/registry-item.json."});this.item=r;this.parseError=s,this.name="RegistryParseError";}parseError},xe=class extends I{constructor(r,s){let n=`Registry "${r}" requires the following environment variables:
9
+
10
+ `+s.map(i=>` \u2022 ${i}`).join(`
11
+ `);super(n,{code:N.MISSING_ENV_VARS,context:{registryName:r,missingVars:s},suggestion:"Set the required environment variables to your .env or .env.local file."});this.registryName=r;this.missingVars=s;this.name="RegistryMissingEnvironmentVariablesError";}},we=class extends I{constructor(r){let s=`Invalid registry namespace: "${r}". Registry names must start with @ (e.g., @shadcn, @v0).`;super(s,{code:N.VALIDATION_ERROR,context:{name:r},suggestion:"Use a valid registry name starting with @ or provide a direct URL to the registry."});this.name=r;this.name="RegistryInvalidNamespaceError";}};var $e=class extends I{constructor(r,s){let n=`Invalid components.json configuration in ${r}.`;s instanceof z.ZodError&&(n=`Invalid components.json configuration in ${r}:
12
+ ${s.errors.map(i=>` - ${i.path.join(".")}: ${i.message}`).join(`
13
+ `)}`);super(n,{code:N.INVALID_CONFIG,cause:s,context:{cwd:r},suggestion:"Check your components.json file for syntax errors or invalid configuration. Run 'npx shadcn@latest init' to regenerate a valid configuration."});this.cwd=r;this.name="ConfigParseError";}},Ee=class extends I{parseError;constructor(t){let r="Failed to parse registries index";if(t instanceof z.ZodError){let s=t.errors.filter(n=>n.path.length>0).map(n=>`"${n.path[0]}"`).filter((n,i,o)=>o.indexOf(n)===i);s.length>0?r=`Failed to parse registries index. Invalid registry namespace(s): ${s.join(", ")}
14
+ ${t.errors.map(n=>` - ${n.path.join(".")}: ${n.message}`).join(`
15
+ `)}`:r=`Failed to parse registries index:
16
+ ${t.errors.map(n=>` - ${n.path.join(".")}: ${n.message}`).join(`
17
+ `)}`;}super(r,{code:N.PARSE_ERROR,cause:t,context:{parseError:t},suggestion:"The registries index may be corrupted or have invalid registry namespace format. Registry names must start with @ (e.g., @shadcn, @example)."}),this.parseError=t,this.name="RegistriesIndexParseError";}};var pr=/^(@[a-zA-Z0-9](?:[a-zA-Z0-9-_]*[a-zA-Z0-9])?)\/(.+)$/;function se(e){if(!e.startsWith("@"))return {registry:null,item:e};let t=e.match(pr);return t?{registry:t[1],item:t[2]}:{registry:null,item:e}}var A={"next-app":{name:"next-app",label:"Next.js",links:{installation:"https://ui.shadcn.com/docs/installation/next",tailwind:"https://tailwindcss.com/docs/guides/nextjs"}},"next-pages":{name:"next-pages",label:"Next.js",links:{installation:"https://ui.shadcn.com/docs/installation/next",tailwind:"https://tailwindcss.com/docs/guides/nextjs"}},remix:{name:"remix",label:"Remix",links:{installation:"https://ui.shadcn.com/docs/installation/remix",tailwind:"https://tailwindcss.com/docs/guides/remix"}},"react-router":{name:"react-router",label:"React Router",links:{installation:"https://ui.shadcn.com/docs/installation/react-router",tailwind:"https://tailwindcss.com/docs/installation/framework-guides/react-router"}},vite:{name:"vite",label:"Vite",links:{installation:"https://ui.shadcn.com/docs/installation/vite",tailwind:"https://tailwindcss.com/docs/guides/vite"}},astro:{name:"astro",label:"Astro",links:{installation:"https://ui.shadcn.com/docs/installation/astro",tailwind:"https://tailwindcss.com/docs/guides/astro"}},laravel:{name:"laravel",label:"Laravel",links:{installation:"https://ui.shadcn.com/docs/installation/laravel",tailwind:"https://tailwindcss.com/docs/guides/laravel"}},"tanstack-start":{name:"tanstack-start",label:"TanStack Start",links:{installation:"https://ui.shadcn.com/docs/installation/tanstack",tailwind:"https://tailwindcss.com/docs/installation/using-postcss"}},gatsby:{name:"gatsby",label:"Gatsby",links:{installation:"https://ui.shadcn.com/docs/installation/gatsby",tailwind:"https://tailwindcss.com/docs/guides/gatsby"}},expo:{name:"expo",label:"Expo",links:{installation:"https://ui.shadcn.com/docs/installation/expo",tailwind:"https://www.nativewind.dev/docs/getting-started/installation"}},manual:{name:"manual",label:"Manual",links:{installation:"https://ui.shadcn.com/docs/installation/manual",tailwind:"https://tailwindcss.com/docs/installation"}}};var P={error:red,warn:yellow,info:cyan,success:green};async function O(e,t){return createMatchPath(t.absoluteBaseUrl,t.paths)(e,void 0,()=>true,[".ts",".tsx",".jsx",".js",".css"])}var jn="@/components",kn="@/lib/utils",$n="app/globals.css",An="tailwind.config.js";var Ae=cosmiconfig("components",{searchPlaces:["components.json"]});async function Oe(e){let t=await wr(e);return t?(t.iconLibrary||(t.iconLibrary=t.style==="new-york"?"radix":"lucide"),await Qe(e,t)):null}async function Qe(e,t){t.registries={...F,...t.registries||{}};let r=await loadConfig(e);if(r.resultType==="failed")throw new Error(`Failed to load ${t.tsx?"tsconfig":"jsconfig"}.json. ${r.message??""}`.trim());return d.parse({...t,resolvedPaths:{cwd:e,tailwindConfig:t.tailwind.config?y__default.resolve(e,t.tailwind.config):"",tailwindCss:y__default.resolve(e,t.tailwind.css),utils:await O(t.aliases.utils,r),components:await O(t.aliases.components,r),ui:t.aliases.ui?await O(t.aliases.ui,r):y__default.resolve(await O(t.aliases.components,r)??e,"ui"),lib:t.aliases.lib?await O(t.aliases.lib,r):y__default.resolve(await O(t.aliases.utils,r)??e,".."),hooks:t.aliases.hooks?await O(t.aliases.hooks,r):y__default.resolve(await O(t.aliases.components,r)??e,"..","hooks")}})}async function wr(e){try{let t=await Ae.search(e);if(!t)return null;let r=c.parse(t.config);if(r.registries){for(let s of Object.keys(r.registries))if(s in F)throw new Error(`"${s}" is a built-in registry and cannot be overridden.`)}return r}catch(t){let r=`${e}/components.json`;throw t instanceof Error&&t.message.includes("reserved registry")?t:new Error(`Invalid configuration found in ${P.info(r)}.`)}}async function On(e$1){let t={};for(let s of Object.keys(e$1.aliases)){if(!vr(s,e$1))continue;let n=e$1.resolvedPaths[s],i=await Er(e$1.resolvedPaths.cwd,n);if(!i){t[s]=e$1;continue}t[s]=await Oe(i);}let r=e.safeParse(t);return r.success?r.data:null}async function Er(e,t){let r=Rr(e,t),s=y__default.relative(r,t),i=(await Le.glob("**/package.json",{cwd:r,deep:3,ignore:["**/node_modules/**","**/dist/**","**/build/**","**/public/**"]})).map(o=>y__default.dirname(o)).find(o=>s.startsWith(o));return i?y__default.join(r,i):null}function vr(e,t){return Object.keys(t.resolvedPaths).filter(r=>r!=="utils").includes(e)}function Rr(e,t){let r=e.split(y__default.sep),s=t.split(y__default.sep),n=[];for(let i=0;i<Math.min(r.length,s.length)&&r[i]===s[i];i++)n.push(r[i]);return n.join(y__default.sep)}async function Tt(e,t){return (await W(e))?.tailwindVersion==="v4"?"new-york-v4":t}function Pt(e){let t={resolvedPaths:{cwd:process.cwd(),tailwindConfig:"",tailwindCss:"",utils:"",components:"",ui:"",lib:"",hooks:""},style:"",tailwind:{config:"",css:"",baseColor:"",cssVariables:false},rsc:false,tsx:true,aliases:{components:"",utils:""},registries:{...F}};return e?{...t,...e,resolvedPaths:{...t.resolvedPaths,...e.resolvedPaths||{}},tailwind:{...t.tailwind,...e.tailwind||{}},aliases:{...t.aliases,...e.aliases||{}},registries:{...t.registries,...e.registries||{}}}:t}function Xe(e="",t=true){let r=y__default.join(e,"package.json");return Ne.readJSONSync(r,{throws:t})}var De=["**/node_modules/**",".next","public","dist","build"];z.object({compilerOptions:z.object({paths:z.record(z.string().or(z.array(z.string())))})});async function W(e){let[t,r,s,n,i,o,a,p]=await Promise.all([Le.glob("**/{next,vite,astro,app}.config.*|gatsby-config.*|composer.json|react-router.config.*",{cwd:e,deep:3,ignore:De}),Ne.pathExists(y__default.resolve(e,"src")),kr(e),Pr(e),Tr(e),jt(e),jr(e),Xe(e,false)]),c=await Ne.pathExists(y__default.resolve(e,`${r?"src/":""}app`)),l={framework:A.manual,isSrcDir:r,isRSC:false,isTsx:s,tailwindConfigFile:n,tailwindCssFile:i,tailwindVersion:o,frameworkVersion:null,aliasPrefix:a};if(t.find(f=>f.startsWith("next.config."))?.length)return l.framework=c?A["next-app"]:A["next-pages"],l.isRSC=c,l.frameworkVersion=await Ir(l.framework,p),l;if(t.find(f=>f.startsWith("astro.config."))?.length)return l.framework=A.astro,l;if(t.find(f=>f.startsWith("gatsby-config."))?.length)return l.framework=A.gatsby,l;if(t.find(f=>f.startsWith("composer.json"))?.length)return l.framework=A.laravel,l;if(Object.keys(p?.dependencies??{}).find(f=>f.startsWith("@remix-run/")))return l.framework=A.remix,l;if([...Object.keys(p?.dependencies??{}),...Object.keys(p?.devDependencies??{})].find(f=>f.startsWith("@tanstack/react-start")))return l.framework=A["tanstack-start"],l;if(t.find(f=>f.startsWith("react-router.config."))?.length)return l.framework=A["react-router"],l;if(t.find(f=>f.startsWith("vite.config."))?.length)return l.framework=A.vite,l;let d=t.find(f=>f.startsWith("app.config"));return d?.length&&(await Ne.readFile(y__default.resolve(e,d),"utf8")).includes("defineConfig")?(l.framework=A.vite,l):(p?.dependencies?.expo&&(l.framework=A.expo),l)}async function Ir(e,t){if(!t||!["next-app","next-pages"].includes(e.name))return null;let r=t.dependencies?.next||t.devDependencies?.next;if(!r)return null;let s=r.match(/^[\^~]?(\d+\.\d+\.\d+)/);if(s)return s[1];let n=r.match(/(\d+\.\d+\.\d+)/);return n?n[1]:r}async function jt(e){let[t,r]=await Promise.all([Xe(e,false),Oe(e)]);return r?.tailwind?.config===""?"v4":!t?.dependencies?.tailwindcss&&!t?.devDependencies?.tailwindcss?null:/^(?:\^|~)?3(?:\.\d+)*(?:-.*)?$/.test(t?.dependencies?.tailwindcss||t?.devDependencies?.tailwindcss||"")?"v3":"v4"}async function Tr(e){let[t,r]=await Promise.all([Le.glob(["**/*.css","**/*.scss"],{cwd:e,deep:5,ignore:De}),jt(e)]);if(!t.length)return null;for(let n of t){let i=await Ne.readFile(y__default.resolve(e,n),"utf8");if(i.includes('@import "tailwindcss"')||i.includes("@import 'tailwindcss'")||i.includes("@tailwind base"))return n}return null}async function Pr(e){let t=await Le.glob("tailwind.config.*",{cwd:e,deep:3,ignore:De});return t.length?t[0]:null}async function jr(e){let t=await loadConfig(e);if(t?.resultType==="failed"||!Object.entries(t?.paths).length)return null;for(let[r,s]of Object.entries(t.paths))if(s.includes("./*")||s.includes("./src/*")||s.includes("./app/*")||s.includes("./resources/js/*"))return r.replace(/\/\*$/,"")??null;return Object.keys(t?.paths)?.[0].replace(/\/\*$/,"")??null}async function kr(e){return (await Le.glob("tsconfig.*",{cwd:e,deep:1,ignore:De})).length>0}async function qn(e,t=null){let[r,s]=await Promise.all([Oe(e),t?Promise.resolve(t):W(e)]);if(r)return r;if(!s||!s.tailwindCssFile||s.tailwindVersion==="v3"&&!s.tailwindConfigFile)return null;let n={$schema:"https://ui.shadcn.com/schema.json",rsc:s.isRSC,tsx:s.isTsx,style:"new-york",tailwind:{config:s.tailwindConfigFile??"",baseColor:"zinc",css:s.tailwindCssFile,cssVariables:true,prefix:""},iconLibrary:"lucide",aliases:{components:`${s.aliasPrefix}/components`,ui:`${s.aliasPrefix}/components/ui`,hooks:`${s.aliasPrefix}/hooks`,lib:`${s.aliasPrefix}/lib`,utils:`${s.aliasPrefix}/lib/utils`}};return await Qe(e,n)}async function ze(e){if(!e.resolvedPaths?.cwd)return "v3";let t=await W(e.resolvedPaths.cwd);return t?.tailwindVersion?t.tailwindVersion:null}function kt(e,t,r={}){let{ignoreImports:s=false}=r,n=e.replace(/\r\n/g,`
18
+ `).trim(),i=t.replace(/\r\n/g,`
19
+ `).trim();if(n===i)return true;if(!s)return false;let o=/^(import\s+(?:type\s+)?(?:\*\s+as\s+\w+|\{[^}]*\}|\w+)?(?:\s*,\s*(?:\{[^}]*\}|\w+))?\s+from\s+["'])([^"']+)(["'])/gm,a=l=>l.replace(o,(d,f,x,u)=>{if(x.startsWith("."))return `${f}${x}${u}`;let w=x.split("/"),m=w[w.length-1];return `${f}@normalized/${m}${u}`}),p=a(n),c=a(i);return p===c}function Y(e){let t=y__default.basename(e);return /^\.env(\.|$)/.test(t)}function At(e){let t=[".env.local",".env",".env.development.local",".env.development"];for(let r of t){let s=y__default.join(e,r);if(existsSync(s))return s}return null}function ie(e){let t=e.split(`
20
+ `),r={};for(let s of t){let n=s.trim();if(!n||n.startsWith("#"))continue;let i=n.indexOf("=");if(i===-1)continue;let o=n.substring(0,i).trim(),a=n.substring(i+1).trim();o&&(r[o]=a.replace(/^["']|["']$/g,""));}return r}function Ot(e,t){let r=ie(e),s=ie(t),n=[];for(let i of Object.keys(s))i in r||n.push(i);return n}function Ft(e,t){let r=ie(e),s=ie(t),n=e.trimEnd();n&&!n.endsWith(`
21
+ `)&&(n+=`
22
+ `);let i=[];for(let[o,a]of Object.entries(s))o in r||i.push(`${o}=${a}`);return i.length>0?(n&&(n+=`
23
+ `),n+=i.join(`
24
+ `),n+`
25
+ `):n&&!n.endsWith(`
26
+ `)?n+`
27
+ `:n}var R={error(...e){console.log(P.error(e.join(" ")));},warn(...e){console.log(P.warn(e.join(" ")));},info(...e){console.log(P.info(e.join(" ")));},success(...e){console.log(P.success(e.join(" ")));},log(...e){console.log(e.join(" "));},break(){console.log("");}};function Z(e,t){return Ar({text:e,isSilent:t?.silent})}var _e=async({sourceFile:e,config:t,baseColor:r})=>(t.tailwind?.cssVariables||!r?.inlineColors||e.getDescendantsOfKind(SyntaxKind.StringLiteral).forEach(s=>{let n=s.getLiteralText(),i=Nr(n,r.inlineColors).trim();i!==n&&s.setLiteralValue(i);}),e);function et(e){if(!e.includes("/")&&!e.includes(":"))return [null,e,null];let t=[],[r,s]=e.split("/");if(!r.includes(":"))return [null,r,s];let n=r.split(":"),i=n.pop(),o=n.join(":");return t.push(o??null,i??null,s??null),t}var Fr=["bg-","text-","border-","ring-offset-","ring-"];function Nr(e,t){e.includes(" border ")&&(e=e.replace(" border "," border border-border "));let r=e.split(" "),s=new Set,n=new Set;for(let i of r){let[o,a,p]=et(i),c=Fr.find(d=>a?.startsWith(d));if(!c){s.has(i)||s.add(i);continue}let l=a?.replace(c,"");if(l&&l in t.light){s.add([o,`${c}${t.light[l]}`].filter(Boolean).join(":")+(p?`/${p}`:"")),n.add(["dark",o,`${c}${t.dark[l]}`].filter(Boolean).join(":")+(p?`/${p}`:""));continue}s.has(i)||s.add(i);}return [...Array.from(s),...Array.from(n)].join(" ").trim()}var Ke=async({sourceFile:e,config:t,isRemote:r})=>{let s=t.aliases?.utils,i=`${typeof s=="string"&&s.includes("/")?s.split("/")[0]:"@"}/lib/utils`;if(![".tsx",".ts",".jsx",".js"].includes(e.getExtension()))return e;for(let o of e.getImportStringLiterals()){let a=Dr(o.getLiteralValue(),t,r);if(o.setLiteralValue(a),i===a||a==="@/lib/utils"){if(!o.getFirstAncestorByKind(SyntaxKind.ImportDeclaration)?.getNamedImports().some(l=>l.getName()==="cn")||!t.aliases.utils)continue;o.setLiteralValue(i===a?a.replace(i,t.aliases.utils):t.aliases.utils);}}return e};function Dr(e,t,r=false){if(!e.startsWith("@/")&&!r)return e;if(r&&e.startsWith("@/")&&(e=e.replace(/^@\//,"@/registry/new-york/")),!e.startsWith("@/registry/")){let s=t.aliases.components.split("/")[0];return e.replace(/^@\//,`${s}/`)}return e.match(/^@\/registry\/(.+)\/ui/)?e.replace(/^@\/registry\/(.+)\/ui/,t.aliases.ui??`${t.aliases.components}/ui`):t.aliases.components&&e.match(/^@\/registry\/(.+)\/components/)?e.replace(/^@\/registry\/(.+)\/components/,t.aliases.components):t.aliases.lib&&e.match(/^@\/registry\/(.+)\/lib/)?e.replace(/^@\/registry\/(.+)\/lib/,t.aliases.lib):t.aliases.hooks&&e.match(/^@\/registry\/(.+)\/hooks/)?e.replace(/^@\/registry\/(.+)\/hooks/,t.aliases.hooks):e.replace(/^@\/registry\/[^/]+/,t.aliases.components)}var Vr={sourceType:"module",allowImportExportEverywhere:true,allowReturnOutsideFunction:true,startLine:1,tokens:true,plugins:["asyncGenerators","bigInt","classPrivateMethods","classPrivateProperties","classProperties","classStaticBlock","decimal","decorators-legacy","doExpressions","dynamicImport","exportDefaultFrom","exportNamespaceFrom","functionBind","functionSent","importAssertions","importMeta","nullishCoalescingOperator","numericSeparator","objectRestSpread","optionalCatchBinding","optionalChaining",["pipelineOperator",{proposal:"minimal"}],["recordAndTuple",{syntaxType:"hash"}],"throwExpressions","topLevelAwait","v8intrinsic","typescript","jsx"]},Nt=async({sourceFile:e,config:t})=>{let r=e.getFullText();if(t.tsx)return r;let s=Ve.parse(r,{parser:{parse:i=>parse(i,Vr)}}),n=transformFromAstSync(s,r,{cloneInputAst:false,code:false,ast:true,plugins:[Kr],configFile:false});if(!n||!n.ast)throw new Error("Failed to transform JSX");return Ve.print(n.ast).code};var Ur=/^["']use client["']$/g,We=async({sourceFile:e,config:t})=>{if(t.rsc)return e;let r=e.getFirstChildByKind(SyntaxKind.ExpressionStatement);return r&&Ur.test(r.getText())&&r.remove(),e};var Ue=async({sourceFile:e,config:t})=>{if(!t.tailwind?.prefix)return e;let r=await ze(t);return e.getDescendantsOfKind(SyntaxKind.CallExpression).filter(s=>s.getExpression().getText()==="cva").forEach(s=>{if(s.getArguments()[0]?.isKind(SyntaxKind.StringLiteral)){let n=s.getArguments()[0];n&&n.replaceWithText(`"${M(n.getText()?.replace(/"|'/g,""),t.tailwind.prefix,r)}"`);}s.getArguments()[1]?.isKind(SyntaxKind.ObjectLiteralExpression)&&s.getArguments()[1]?.getDescendantsOfKind(SyntaxKind.PropertyAssignment).find(n=>n.getName()==="variants")?.getDescendantsOfKind(SyntaxKind.PropertyAssignment).forEach(n=>{n.getDescendantsOfKind(SyntaxKind.PropertyAssignment).forEach(i=>{let o=i.getInitializerIfKind(SyntaxKind.StringLiteral);o&&o?.replaceWithText(`"${M(o.getText()?.replace(/"|'/g,""),t.tailwind.prefix,r)}"`);});});}),e.getDescendantsOfKind(SyntaxKind.JsxAttribute).forEach(s=>{if(s.getNameNode().getText()==="className"){if(s.getInitializer()?.isKind(SyntaxKind.StringLiteral)){let n=s.getInitializer();n&&n.replaceWithText(`"${M(n.getText()?.replace(/"|'/g,""),t.tailwind.prefix,r)}"`);}if(s.getInitializer()?.isKind(SyntaxKind.JsxExpression)){let n=s.getInitializer()?.getDescendantsOfKind(SyntaxKind.CallExpression).find(i=>i.getExpression().getText()==="cn");n&&n.getArguments().forEach(i=>{(i.isKind(SyntaxKind.ConditionalExpression)||i.isKind(SyntaxKind.BinaryExpression))&&i.getChildrenOfKind(SyntaxKind.StringLiteral).forEach(o=>{o.replaceWithText(`"${M(o.getText()?.replace(/"|'/g,""),t.tailwind.prefix,r)}"`);}),i.isKind(SyntaxKind.StringLiteral)&&i.replaceWithText(`"${M(i.getText()?.replace(/"|'/g,""),t.tailwind.prefix,r)}"`);});}}s.getNameNode().getText()==="classNames"&&s.getInitializer()?.isKind(SyntaxKind.JsxExpression)&&s.getDescendantsOfKind(SyntaxKind.PropertyAssignment).forEach(n=>{if(n.getInitializer()?.isKind(SyntaxKind.CallExpression)){let i=n.getInitializerIfKind(SyntaxKind.CallExpression);i&&i.getArguments().forEach(o=>{o.isKind(SyntaxKind.ConditionalExpression)&&o.getChildrenOfKind(SyntaxKind.StringLiteral).forEach(a=>{a.replaceWithText(`"${M(a.getText()?.replace(/"|'/g,""),t.tailwind.prefix,r)}"`);}),o.isKind(SyntaxKind.StringLiteral)&&o.replaceWithText(`"${M(o.getText()?.replace(/"|'/g,""),t.tailwind.prefix,r)}"`);});}if(n.getInitializer()?.isKind(SyntaxKind.StringLiteral)&&n.getNameNode().getText()!=="variant"){let i=n.getInitializer();i&&i.replaceWithText(`"${M(i.getText()?.replace(/"|'/g,""),t.tailwind.prefix,r)}"`);}});}),e};function M(e,t="",r){return r==="v3"?e.split(" ").map(s=>{let[n,i,o]=et(s);return n?o?`${n}:${t}${i}/${o}`:`${n}:${t}${i}`:o?`${t}${i}/${o}`:`${t}${i}`}).join(" "):e.split(" ").map(s=>s.indexOf(`${t}:`)===0?s:`${t}:${s.trim()}`).join(" ")}var Hr=new Project({compilerOptions:{}});async function qr(e){let t=await promises.mkdtemp(y__default.join(tmpdir(),"shadcn-"));return y__default.join(t,e)}async function Dt(e,t=[Ke,We,_e,Ue,a]){let r=await qr(e.filename),s=Hr.createSourceFile(r,e.raw,{scriptKind:ScriptKind.TSX});for(let n of t)await n({sourceFile:s,...e});return e.transformJsx?await Nt({sourceFile:s,...e}):s.getText()}var Yr=["a","span","div","Link","label","Label"],zt=async({sourceFile:e,config:t})=>{if(!t.style?.startsWith("base-"))return e;let r=[],s=e.getDescendantsOfKind(SyntaxKind.JsxElement);for(let n of s){let i=n.getOpeningElement(),o=i.getAttribute("asChild");if(!o)continue;let a=i.getTagNameNode().getText(),c=n.getJsxChildren().find(u=>u.getKind()===SyntaxKind.JsxElement||u.getKind()===SyntaxKind.JsxSelfClosingElement);if(!c){o.remove();continue}let l,d,f;if(c.getKind()===SyntaxKind.JsxSelfClosingElement){let u=c.asKindOrThrow(SyntaxKind.JsxSelfClosingElement);l=u.getTagNameNode().getText(),d=u.getAttributes().map(w=>w.getText()).join(" "),f="";}else {let u=c.asKindOrThrow(SyntaxKind.JsxElement),w=u.getOpeningElement();l=w.getTagNameNode().getText(),d=w.getAttributes().map(m=>m.getText()).join(" "),f=u.getJsxChildren().map(m=>m.getText()).join("");}let x=Yr.includes(l);r.push({parentElement:n,parentTagName:a,childTagName:l,childProps:d,childChildren:f,needsNativeButton:x});}for(let n of r.reverse()){let i=n.parentElement.getOpeningElement();n.parentElement.getClosingElement();let a=i.getAttributes().filter(f=>f.getKind()===SyntaxKind.JsxAttribute?f.asKindOrThrow(SyntaxKind.JsxAttribute).getNameNode().getText()!=="asChild":true).map(f=>f.getText()).join(" "),p=n.childProps?`{<${n.childTagName} ${n.childProps} />}`:`{<${n.childTagName} />}`,c=a?`${a} `:"";c+=`render=${p}`,n.needsNativeButton&&(c+=" nativeButton={false}");let l=n.childChildren.trim()?`${n.childChildren}`:"",d=`<${n.parentTagName} ${c}>${l}</${n.parentTagName}>`;n.parentElement.replaceWithText(d);}return e};var _t=async({sourceFile:e})=>(e.getFunctions().forEach(t=>{t.getName()==="middleware"&&t.rename("proxy");}),e.getVariableDeclarations().forEach(t=>{t.getName()==="middleware"&&t.rename("proxy");}),e.getExportDeclarations().forEach(t=>{t.getNamedExports().forEach(s=>{s.getName()==="middleware"&&s.setName("proxy"),s.getAliasNode()?.getText()==="middleware"&&s.setAlias("proxy");});}),e);async function ao(e,t,r){if(!e?.length)return {filesCreated:[],filesUpdated:[],filesSkipped:[]};r={overwrite:false,force:false,silent:false,isRemote:false,isWorkspace:false,...r};let s=Z("Updating files.",{silent:r.silent})?.start(),[n,i]=await Promise.all([W(t.resolvedPaths.cwd),t.tailwind.baseColor?Me(t.tailwind.baseColor):Promise.resolve(void 0)]),o=[],a$1=[],p=[],c=[],l=null;for(let u=0;u<e.length;u++){let w=e[u];if(!w.content)continue;let m=tt(w,t,{isSrcDir:n?.isSrcDir,framework:n?.framework.name,commonRoot:rt(e.map(v=>v.path),w.path),path:r.path,fileIndex:u});if(!m)continue;let k=basename(w.path),g=y__default.dirname(m);if(t.tsx||(m=m.replace(/\.tsx?$/,v=>v===".tsx"?".jsx":".js")),Y(m)&&!existsSync(m)){let v=At(g);v&&(m=v);}let E=existsSync(m);if(E&&statSync(m).isDirectory())throw new Error(`Cannot write to ${m}: path exists and is a directory. Please provide a file path instead.`);let S=Y(m)?w.content:await Dt({filename:w.path,raw:w.content,config:t,baseColor:i,transformJsx:!t.tsx,isRemote:r.isRemote},[Ke,We,_e,Ue,a,b,zt,...Kt(m,n,t)?[_t]:[]]);if(E&&!Y(m)){let v=await promises.readFile(m,"utf-8");if(kt(v,S,{ignoreImports:r.isWorkspace})){p.push(y__default.relative(t.resolvedPaths.cwd,m));continue}}if(E&&!r.overwrite&&!Y(m)){s.stop(),r.rootSpinner&&r.rootSpinner.stop();let{overwrite:v}=await Xr({type:"confirm",name:"overwrite",message:`The file ${P.info(k)} already exists. Would you like to overwrite?`,initial:false});if(!v){p.push(y__default.relative(t.resolvedPaths.cwd,m)),r.rootSpinner&&r.rootSpinner.start();continue}s?.start(),r.rootSpinner&&r.rootSpinner.start();}if(Kt(m,n,t)&&(m=m.replace(/middleware\.(ts|js)$/,"proxy.$1")),existsSync(g)||await promises.mkdir(g,{recursive:true}),Y(m)&&E){let v=await promises.readFile(m,"utf-8"),b=Ft(v,S);if(c=Ot(v,S),l=y__default.relative(t.resolvedPaths.cwd,m),!c.length){p.push(y__default.relative(t.resolvedPaths.cwd,m));continue}await promises.writeFile(m,b,"utf-8"),a$1.push(y__default.relative(t.resolvedPaths.cwd,m));continue}await promises.writeFile(m,S,"utf-8"),E?a$1.push(y__default.relative(t.resolvedPaths.cwd,m)):(o.push(y__default.relative(t.resolvedPaths.cwd,m)),Y(m)&&(c=Object.keys(ie(S)),l=y__default.relative(t.resolvedPaths.cwd,m)));}let d=[...o,...a$1,...p],f=await os(d,t);if(a$1.push(...f),a$1=a$1.filter(u=>!o.includes(u)),!(o.length||a$1.length)&&!p.length&&s?.info("No files updated."),o=Array.from(new Set(o)),a$1=Array.from(new Set(a$1)),p=Array.from(new Set(p)),o.length){if(s?.succeed(`Created ${o.length} ${o.length===1?"file":"files"}:`),!r.silent)for(let u of o)R.log(` - ${u}`);}else s?.stop();if(a$1.length&&(Z(`Updated ${a$1.length} ${a$1.length===1?"file":"files"}:`,{silent:r.silent})?.info(),!r.silent))for(let u of a$1)R.log(` - ${u}`);if(p.length&&(Z(`Skipped ${p.length} ${a$1.length===1?"file":"files"}: (files might be identical, use --overwrite to overwrite)`,{silent:r.silent})?.info(),!r.silent))for(let u of p)R.log(` - ${u}`);if(c.length&&l&&(Z(`Added the following variables to ${P.info(l)}:`)?.info(),!r.silent))for(let u of c)R.log(` ${P.success("+")} ${u}`);return r.silent||R.break(),{filesCreated:o,filesUpdated:a$1,filesSkipped:p}}function tt(e,t,r){if(r.path){let i=y__default.isAbsolute(r.path)?r.path:y__default.join(t.resolvedPaths.cwd,r.path);if(/\.[^/\\]+$/.test(i)){if(r.fileIndex===0)return i}else {let a=y__default.basename(e.path);return y__default.join(i,a)}}if(e.target){if(e.target.startsWith("~/"))return y__default.join(t.resolvedPaths.cwd,e.target.replace("~/",""));let i=e.target;return e.type==="registry:page"&&(i=is(i,r.framework),!i)?"":r.isSrcDir?y__default.join(t.resolvedPaths.cwd,"src",i.replace("src/","")):y__default.join(t.resolvedPaths.cwd,i.replace("src/",""))}let s=ss(e,t),n=ns(e.path,s);return y__default.join(s,n)}function ss(e,t){return e.type==="registry:ui"?t.resolvedPaths.ui:e.type==="registry:lib"?t.resolvedPaths.lib:e.type==="registry:block"||e.type==="registry:component"?t.resolvedPaths.components:e.type==="registry:hook"?t.resolvedPaths.hooks:t.resolvedPaths.components}function rt(e,t){let r=e.map(o=>o.replace(/^\//,"")),s=t.replace(/^\//,""),n=s.split("/").slice(0,-1).join("/");if(!n)return "";let i=n.split("/");for(let o=i.length;o>0;o--){let a=i.slice(0,o).join("/");if(r.some(c=>c!==s&&c.startsWith(a+"/")))return "/"+a}return "/"+n}function ns(e,t){let r=e.replace(/^\/|\/$/g,""),s=t.replace(/^\/|\/$/g,""),n=r.split("/"),i=s.split("/"),o=i[i.length-1],a=n.findIndex(p=>p===o);return a===-1?n[n.length-1]:n.slice(a+1).join("/")}function is(e,t){if(!t)return "";if(t==="next-app")return e;if(t==="next-pages"){let r=e.replace(/^app\//,"pages/");return r=r.replace(/\/page(\.[jt]sx?)$/,"$1"),r}if(t==="react-router"){let r=e.replace(/^app\//,"app/routes/");return r=r.replace(/\/page(\.[jt]sx?)$/,"$1"),r}if(t==="laravel"){let r=e.replace(/^app\//,"resources/js/pages/");return r=r.replace(/\/page(\.[jt]sx?)$/,"$1"),r}return ""}async function os(e,t){let r=new Project({compilerOptions:{}}),s=await W(t.resolvedPaths.cwd),n=loadConfig(t.resolvedPaths.cwd),i=[];if(!s||n.resultType==="failed")return [];for(let o of e){let a=y__default.resolve(t.resolvedPaths.cwd,o);if(!existsSync(a))continue;let p=await promises.readFile(a,"utf-8"),c=await promises.mkdtemp(y__default.join(tmpdir(),"shadcn-")),l=r.createSourceFile(y__default.join(c,basename(a)),p,{scriptKind:ScriptKind.TSX});if(![".tsx",".ts",".jsx",".js"].includes(l.getExtension()))continue;let d=l.getImportDeclarations();for(let f of d){let x=f.getModuleSpecifierValue();if(s?.aliasPrefix&&!x.startsWith(`${s.aliasPrefix}/`))continue;let u=await O(x,n);if(!u)continue;let w=as(u,e,t);if(!w)continue;let m=ls(w,t,s);!m||m===x||(f.setModuleSpecifier(m),await promises.writeFile(a,l.getFullText(),"utf-8"),i.push(o));}}return i}function as(e,t,r,s=[".tsx",".ts",".js",".jsx",".css"]){let n=y__default.normalize(r.resolvedPaths.cwd),i=t.map(m=>m.split(y__default.sep).join(y__default.posix.sep)),o=new Set(i),a=y__default.extname(e),p=a!=="",c=p?e.slice(0,-a.length):e,d=y__default.relative(n,c).split(y__default.sep).join(y__default.posix.sep),f=p?[a]:s,x=new Set;for(let m of f){let k=c+m,g=y__default.posix.normalize(y__default.relative(n,k));(o.has(g)||existsSync(k))&&x.add(g);let E=y__default.join(c,`index${m}`),S=y__default.posix.normalize(y__default.relative(n,E));(o.has(S)||existsSync(E))&&x.add(S);}let u=y__default.basename(c);for(let m of i)f.some(k=>m.endsWith(`/${u}${k}`))&&x.add(m);return x.size===0?null:Array.from(x).sort((m,k)=>{let g=y__default.posix.extname(m),E=y__default.posix.extname(k),S=f.indexOf(g)-f.indexOf(E);if(S!==0)return S;let v=d&&m.startsWith(d)?-1:1,b=d&&k.startsWith(d)?-1:1;return v-b})[0]}function ls(e,t,r){let s=y__default.normalize(y__default.join(t.resolvedPaths.cwd,e)),n=Object.entries(t.resolvedPaths).filter(([,u])=>u&&s.startsWith(y__default.normalize(u+y__default.sep))).sort((u,w)=>w[1].length-u[1].length);if(n.length===0)return null;let[i,o]=n[0],a=y__default.relative(o,s);a=a.split(y__default.sep).join("/");let p=y__default.posix.extname(a),l=[".ts",".tsx",".js",".jsx"].includes(p)?"":p,d=a.slice(0,a.length-p.length);d.endsWith("/index")&&(d=d.slice(0,-6));let f=i==="cwd"?r.aliasPrefix:t.aliases[i];if(!f)return null;let x=d===""?"":`/${d}`;return x=x.replace("/src",""),`${f}${x}${l}`}function Kt(e,t,r){let s=e===y__default.join(r.resolvedPaths.cwd,"middleware.ts")||e===y__default.join(r.resolvedPaths.cwd,"middleware.js"),n=t?.framework.name==="next-app"||t?.framework.name==="next-pages";if(!s||!n||!t?.frameworkVersion)return false;let i=parseInt(t.frameworkVersion.split(".")[0]);return !isNaN(i)&&i>=16}var Ut=[".tsx",".ts",".jsx",".js",".css"],Mt=["lib/utils.ts"],ds=[/^(react|react-dom|next)(\/.*)?$/,/^(node|jsr|npm):.*$/],gs=new Project({compilerOptions:{}});function us(e){if(ds.some(t=>t.test(e)))return null;if(!e.startsWith("@")&&e.includes("/")&&(e=e.split("/")[0]),e.startsWith("@")){let t=e.split("/");t.length>2&&(e=t.slice(0,2).join("/"));}return e}async function hs(e,t,r,s=new Set){let n=y.resolve(t.resolvedPaths.cwd,e),i=y.relative(t.resolvedPaths.cwd,n);if(Mt.includes(i))return {dependencies:[],files:[]};let o=y.extname(e);if(!Ut.includes(o))return {dependencies:[],files:[]};if(s.has(i))return {dependencies:[],files:[]};if(s.add(i),!(await G.stat(n)).isFile())return {dependencies:[],files:[]};let p=await G.readFile(n,"utf-8"),c=await ys(y.basename(n)),l=gs.createSourceFile(c,p,{scriptKind:ScriptKind.TSX}),d=await loadConfig(t.resolvedPaths.cwd);if(d.resultType==="failed")return {dependencies:[],files:[]};let f=[],x=new Set,u=Bt(e),w={path:i,type:u,target:""};f.push(w);let m=l.getImportDeclarations();for(let g of m){let E=g.getModuleSpecifierValue(),S=E.startsWith(".");if(!E.startsWith(`${r.aliasPrefix}/`)&&!S){let _=us(E);_&&x.add(_);continue}let b=await O(E,d);if(S&&(b=y.resolve(y.dirname(n),E)),!b)continue;if(!y.extname(b))for(let _ of Ut){let pt=`${b}${_}`;try{await G.access(pt),b=pt;break}catch{continue}}let D=y.relative(t.resolvedPaths.cwd,b);if(s.has(D)||Mt.includes(D))continue;let K=Bt(E),Te={path:D,type:K,target:""};(K==="registry:page"||K==="registry:file")&&(Te.target=E),f.push(Te);let ee=await hs(D,t,r,s);if(ee.files)for(let _ of ee.files)s.has(_.path)||(s.add(_.path),f.push(_));ee.dependencies&&ee.dependencies.forEach(_=>x.add(_));}let k=Array.from(new Map(f.map(g=>[g.path,g])).values());return {dependencies:Array.from(x),files:k}}async function ys(e){let t=await G.mkdtemp(y.join(tmpdir(),"shadcn-"));return y.join(t,e)}function Bt(e){return e.includes("/ui/")?"registry:ui":e.includes("/lib/")?"registry:lib":e.includes("/hooks/")?"registry:hook":(e.includes("/components/"),"registry:component")}function L(e){try{return new URL(e),!0}catch{return false}}function ae(e){return e.endsWith(".json")&&!L(e)}function vo(e){return !e||e.type!=="registry:item"&&e.type!=="registry:file"?false:(e.files??[]).every(r=>!!r.target&&(r.type==="registry:file"||r.type==="registry:item"))}async function Jt(e,t){if(!xs(t))return z.array(g).parse(e.flat().filter(Boolean));let r=await W(t.resolvedPaths.cwd),s=new Map,n=z.array(g).parse(e.flat().filter(Boolean));return n.forEach(i=>{let o=tt(i,t,{isSrcDir:r?.isSrcDir,framework:r?.framework.name,commonRoot:rt(n.map(a=>a.path),i.path)});o&&s.set(o,i);}),Array.from(s.values())}function xs(e){return !!(e?.resolvedPaths?.cwd&&(e?.resolvedPaths?.ui||e?.resolvedPaths?.lib||e?.resolvedPaths?.components||e?.resolvedPaths?.hooks))}function Es(e){return e.style?e.style==="new-york"&&e.tailwind?.config===""?ke:e.style:ke}function le(e){let t=Pt({style:ke,registries:F});return e?d.parse(pe(t,{...e,style:Es(e),registries:{...F,...e.registries}})):t}var Be={headers:{}};function ve(e){Be.headers={...Be.headers,...e};}function Gt(e){return Be.headers[e]||{}}function Re(){Be.headers={};}function vs(e){let t=new Set;return typeof e=="string"?ge(e).forEach(r=>t.add(r)):(ge(e.url).forEach(r=>t.add(r)),e.params&&Object.values(e.params).forEach(r=>{ge(r).forEach(s=>t.add(s));}),e.headers&&Object.values(e.headers).forEach(r=>{ge(r).forEach(s=>t.add(s));})),Array.from(t)}function Ht(e,t){let s=vs(t).filter(n=>!process.env[n]);if(s.length>0)throw new xe(e,s)}function Lo(e,t){for(let r of e)ce(r,le(t));Re();}var qt="{name}",Je="{style}",Yt=/\${(\w+)}/g,Zt="?",Rs="&";function Cs(e){return e.startsWith("./")||e.startsWith("/")}function ce(e,t){let{registry:r,item:s}=se(e);if(!r){if(L(e)||ae(e)||Cs(e))return null;r="@shadcn";}let i={...F,...t?.registries}[r];if(!i)throw new U(r);return Ht(r,i),{url:Ss(s,i,t),headers:bs(i)}}function Ss(e,t,r){if(typeof t=="string"){let n=t.replace(qt,e);return r?.style&&n.includes(Je)&&(n=n.replace(Je,r.style)),de(n)}let s=t.url.replace(qt,e);return r?.style&&s.includes(Je)&&(s=s.replace(Je,r.style)),s=de(s),t.params?Is(s,t.params):s}function bs(e){if(typeof e=="string"||!e.headers)return {};let t={};for(let[r,s]of Object.entries(e.headers)){let n=de(s);Ts(s,n)&&(t[r]=n);}return t}function Is(e,t){let r=new URLSearchParams;for(let[i,o]of Object.entries(t)){let a=de(o);a&&r.append(i,a);}let s=r.toString();if(!s)return e;let n=e.includes(Zt)?Rs:Zt;return `${e}${n}${s}`}function Ts(e,t){let r=t.trim();if(!r)return false;if(e.includes("${")&&e.match(Yt)){let n=e.replace(Yt,"").trim();return r!==n}return true}function Ge(e){if(L(e)){let t=new URL(e);return t.pathname.match(/\/chat\/b\//)&&!t.pathname.endsWith("/json")&&(t.pathname=`${t.pathname}/json`),t.toString()}return `${te}/${e}`}var As=process.env.https_proxy?new HttpsProxyAgent(process.env.https_proxy):void 0,st=new Map;async function j(e,t={}){t={useCache:true,...t};try{return await Promise.all(e.map(async s=>{let n=Ge(s);if(t.useCache&&st.has(n))return st.get(n);let i=(async()=>{let o=Gt(n),a=await $s(n,{agent:As,headers:{...o}});if(!a.ok){let p;if(a.headers.get("content-type")?.includes("application/json")){let c=await a.json(),l=z.object({detail:z.string().optional(),title:z.string().optional(),message:z.string().optional(),error:z.string().optional()}).safeParse(c);l.success&&(p=l.data.detail||l.data.message,l.data.error&&(p=`[${l.data.error}] ${p}`));}throw a.status===401?new ue(n,p):a.status===404?new q(n,p):a.status===403?new he(n,p):new ye(n,a.status,p)}return a.json()})();return t.useCache&&st.set(n,i),i}))}catch(r){throw r}}async function Xt(e){try{let t=e;e.startsWith("~/")&&(t=y__default.join(homedir(),e.slice(2)));let r=y__default.resolve(t),s=await promises.readFile(r,"utf8"),n$1=JSON.parse(s);try{return n.parse(n$1)}catch(i){throw new $(e,i)}}catch(t){throw t instanceof Error&&(t.message.includes("ENOENT")||t.message.includes("no such file"))?new re(e,t):t instanceof $?t:new re(e,t)}}async function ga(e,t,r){if(!e||(r={silent:false,tailwindVersion:"v3",...r},r.tailwindVersion==="v4"))return;let s=y__default.relative(t.resolvedPaths.cwd,t.resolvedPaths.tailwindConfig),n=Z(`Updating ${P.info(s)}`,{silent:r.silent}).start(),i=await promises.readFile(t.resolvedPaths.tailwindConfig,"utf8"),o=await zs(i,e,t);await promises.writeFile(t.resolvedPaths.tailwindConfig,o,"utf8"),n?.succeed();}async function zs(e,t,r){let s=await tr(e,r),n=s.getDescendantsOfKind(SyntaxKind.ObjectLiteralExpression).find(o=>o.getProperties().some(a=>a.isKind(SyntaxKind.PropertyAssignment)&&a.getName()==="content"));if(!n)return e;let i=Ws(n);return _s(n,{name:"darkMode",value:"class"},{quoteChar:i}),t.plugins?.forEach(o=>{Vs(n,o);}),t.theme&&await Ks(n,t.theme),s.getFullText()}function _s(e,t,{quoteChar:r}){let s=e.getProperty("darkMode");if(!s){let n={name:t.name,initializer:`[${r}${t.value}${r}]`};return t.name==="darkMode"?(e.insertPropertyAssignment(0,n),e):(e.addPropertyAssignment(n),e)}if(s.isKind(SyntaxKind.PropertyAssignment)){let n=s.getInitializer(),i=`${r}${t.value}${r}`;if(n?.isKind(SyntaxKind.StringLiteral)){let o=n.getText();return n.replaceWithText(`[${o}, ${i}]`),e}if(n?.isKind(SyntaxKind.ArrayLiteralExpression)){if(n.getElements().map(o=>o.getText()).includes(i))return e;n.addElement(i);}return e}return e}async function Ks(e,t){e.getProperty("theme")||e.addPropertyAssignment({name:"theme",initializer:"{}"}),it(e);let s=(e.getPropertyOrThrow("theme")?.asKindOrThrow(SyntaxKind.PropertyAssignment)).getInitializer();if(s?.isKind(SyntaxKind.ObjectLiteralExpression)){let n=s.getText(),i=await Us(n),o=pe(i,t,{arrayMerge:(p,c)=>c}),a=Ns(o).replace(/\'\.\.\.(.*)\'/g,"...$1").replace(/\'\"/g,"'").replace(/\"\'/g,"'").replace(/\'\[/g,"[").replace(/\]\'/g,"]").replace(/\'\\\'/g,"'").replace(/\\\'/g,"'").replace(/\\\'\'/g,"'").replace(/\'\'/g,"'");s.replaceWithText(a);}ot(e);}function Vs(e,t){let r=e.getProperty("plugins");if(!r)return e.addPropertyAssignment({name:"plugins",initializer:`[${t}]`}),e;if(r.isKind(SyntaxKind.PropertyAssignment)){let s=r.getInitializer();if(s?.isKind(SyntaxKind.ArrayLiteralExpression)){if(s.getElements().map(n=>n.getText().replace(/["']/g,"")).includes(t.replace(/["']/g,"")))return e;s.addElement(t);}return e}return e}async function tr(e,t){let r=await promises.mkdtemp(y__default.join(tmpdir(),"shadcn-")),s=t?.resolvedPaths?.tailwindConfig||"tailwind.config.ts",n=y__default.join(r,`shadcn-${y__default.basename(s)}`);return new Project({compilerOptions:{}}).createSourceFile(n,e,{scriptKind:y__default.extname(s)===".ts"?ScriptKind.TS:ScriptKind.JS})}function Ws(e){return e.getFirstDescendantByKind(SyntaxKind.StringLiteral)?.getQuoteKind()===QuoteKind.Single?"'":'"'}function it(e){let t=e.getProperties();for(let r=0;r<t.length;r++){let s=t[r];if(s.isKind(SyntaxKind.SpreadAssignment)){let n=s.asKindOrThrow(SyntaxKind.SpreadAssignment),i=n.getExpression().getText();e.insertPropertyAssignment(r,{name:`"___${i.replace(/^\.\.\./,"")}"`,initializer:`"...${i.replace(/^\.\.\./,"")}"`}),n.remove();}else if(s.isKind(SyntaxKind.PropertyAssignment)){let i=s.asKindOrThrow(SyntaxKind.PropertyAssignment).getInitializer();i&&i.isKind(SyntaxKind.ObjectLiteralExpression)?it(i.asKindOrThrow(SyntaxKind.ObjectLiteralExpression)):i&&i.isKind(SyntaxKind.ArrayLiteralExpression)&&rr(i.asKindOrThrow(SyntaxKind.ArrayLiteralExpression));}}}function rr(e){let t=e.getElements();for(let r=0;r<t.length;r++){let s=t[r];if(s.isKind(SyntaxKind.ObjectLiteralExpression))it(s.asKindOrThrow(SyntaxKind.ObjectLiteralExpression));else if(s.isKind(SyntaxKind.ArrayLiteralExpression))rr(s.asKindOrThrow(SyntaxKind.ArrayLiteralExpression));else if(s.isKind(SyntaxKind.SpreadElement)){let n=s.getText();e.removeElement(r),e.insertElement(r,`"${n}"`);}}}function ot(e){let t=e.getProperties();for(let r=0;r<t.length;r++){let s=t[r];if(s.isKind(SyntaxKind.PropertyAssignment)){let n=s,i=n.getInitializer();if(i&&i.isKind(SyntaxKind.StringLiteral)){let o=i.asKindOrThrow(SyntaxKind.StringLiteral).getLiteralValue();o.startsWith("...")&&(e.insertSpreadAssignment(r,{expression:o.slice(3)}),n.remove());}else i?.isKind(SyntaxKind.ObjectLiteralExpression)?ot(i):i&&i.isKind(SyntaxKind.ArrayLiteralExpression)&&sr(i.asKindOrThrow(SyntaxKind.ArrayLiteralExpression));}}}function sr(e){let t=e.getElements();for(let r=0;r<t.length;r++){let s=t[r];if(s.isKind(SyntaxKind.ObjectLiteralExpression))ot(s.asKindOrThrow(SyntaxKind.ObjectLiteralExpression));else if(s.isKind(SyntaxKind.ArrayLiteralExpression))sr(s.asKindOrThrow(SyntaxKind.ArrayLiteralExpression));else if(s.isKind(SyntaxKind.StringLiteral)){let n=s.getText(),i=/(?:^['"])(\.\.\..*)(?:['"]$)/g;i.test(n)&&(e.removeElement(r),e.insertElement(r,n.replace(i,"$1")));}}}async function Us(e){let r=(await tr(`const theme = ${e}`,null)).getStatements()[0];if(r?.getKind()===SyntaxKind.VariableStatement){let n=(r.getDeclarationList()?.getDeclarations()[0]).getInitializer();if(n?.isKind(SyntaxKind.ObjectLiteralExpression))return await He(n)}throw new Error("Invalid input: not an object literal")}function He(e){let t={};for(let r of e.getProperties())if(r.isKind(SyntaxKind.PropertyAssignment)){let s=r.getName().replace(/\'/g,"");r.getInitializer()?.isKind(SyntaxKind.ObjectLiteralExpression)?t[s]=He(r.getInitializer()):r.getInitializer()?.isKind(SyntaxKind.ArrayLiteralExpression)?t[s]=nr(r.getInitializer()):t[s]=at(r.getInitializer());}return t}function nr(e){let t=[];for(let r of e.getElements())r.isKind(SyntaxKind.ObjectLiteralExpression)?t.push(He(r.asKindOrThrow(SyntaxKind.ObjectLiteralExpression))):r.isKind(SyntaxKind.ArrayLiteralExpression)?t.push(nr(r.asKindOrThrow(SyntaxKind.ArrayLiteralExpression))):t.push(at(r));return t}function at(e){switch(e.getKind()){case SyntaxKind.StringLiteral:return e.getText();case SyntaxKind.NumericLiteral:return Number(e.getText());case SyntaxKind.TrueKeyword:return true;case SyntaxKind.FalseKeyword:return false;case SyntaxKind.NullKeyword:return null;case SyntaxKind.ArrayLiteralExpression:return e.getElements().map(at);case SyntaxKind.ObjectLiteralExpression:return He(e);default:return e.getText()}}function ir(e){let t={};for(let r of Object.keys(e)){let s=r.split("-"),n=s[0],i=s.slice(1).join("-");i===""?typeof t[n]=="object"?t[n].DEFAULT=`hsl(var(--${r}))`:t[n]=`hsl(var(--${r}))`:(typeof t[n]!="object"&&(t[n]={DEFAULT:`hsl(var(--${n}))`}),t[n][i]=`hsl(var(--${r}))`);}for(let[r,s]of Object.entries(t))typeof s=="object"&&s.DEFAULT===`hsl(var(--${r}))`&&!(r in e)&&delete s.DEFAULT;return t}function be(e,t){let r={},s=[...e];if(!t?.registries)return ve({}),s;for(let n=0;n<s.length;n++){let i=ce(s[n],t);i&&(s[n]=i.url,Object.keys(i.headers).length>0&&(r[i.url]=i.headers));}return ve(r),s}async function Q(e,t,r={}){return await Promise.all(e.map(async n$1=>{if(ae(n$1))return Xt(n$1);if(L(n$1)){let[a]=await j([n$1],r);try{return n.parse(a)}catch(p){throw new $(n$1,p)}}if(n$1.startsWith("@")&&t?.registries){let a=be([n$1],t),[p]=await j(a,r);try{return n.parse(p)}catch(c){throw new $(n$1,c)}}let i=`styles/${t?.style??"new-york-v4"}/${n$1}.json`,[o]=await j([i],r);try{return n.parse(o)}catch(a){throw new $(n$1,a)}}))}m.extend({type:f,_source:z.string().optional(),font:l.optional(),config:z.any().optional()}).passthrough();async function ar(e,t$1,r={}){r={useCache:true,...r};let s=[],n$1=[],i=[],o=Array.from(new Set(e)),a=await Q(o,t$1,r),p=new Map;for(let g=0;g<a.length;g++)a[g]&&p.set(o[g],a[g]);for(let[g,E]of Array.from(p.entries())){let S={...E,_source:g};if(s.push(S),E.registryDependencies){let v=E.registryDependencies;if(t$1?.registries)v=be(E.registryDependencies,t$1);else {let D=E.registryDependencies.filter(K=>K.startsWith("@"));if(D.length>0){let{registry:K}=se(D[0]);throw new U(K)}}let{items:b,registryNames:me}=await Ie(v,t$1,r,new Set(o));n$1.push(...b),i.push(...me);}}if(s.push(...n$1),i.length>0){let g=Array.from(new Set(i)),E=g.filter(v=>!v.startsWith("@")),S=g.filter(v=>v.startsWith("@"));if(S.length>0){let v=await Q(S,t$1,r);for(let b=0;b<v.length;b++){let D={...v[b],_source:S[b]};s.push(D);}}if(E.length>0){let v=await lr();if(!v&&s.length===0)return null;if(v){E.includes("index")&&E.unshift("index");let b=[];for(let Te of E){let ee=await Bs(Te,t$1,r);b.push(...ee);}let me=Array.from(new Set(b)),D=await j(me,r),K=z.array(n).parse(D);s.push(...K);}}}if(!s.length)return null;if((o.includes("index")||i.includes("index"))&&t$1.tailwind.baseColor){let g=await Js(t$1.tailwind.baseColor,t$1);g&&s.unshift(g);}let c=new Map;s.forEach(g=>{let E=g._source||g.name;c.set(g,E);}),s=Hs(s,c),s.sort((g,E)=>g.type==="registry:theme"&&E.type!=="registry:theme"?-1:g.type!=="registry:theme"&&E.type==="registry:theme"?1:0);let l={};s.forEach(g=>{l=pe(l,g.tailwind??{});});let d={};s.forEach(g=>{d=pe(d,g.cssVars??{});});let f={};s.forEach(g=>{f=pe(f,g.css??{});});let x="";s.forEach(g=>{g.docs&&(x+=`${g.docs}
28
+ `);});let u={};s.forEach(g=>{u=pe(u,g.envVars??{});});let w=await Jt(s.map(g=>g.files??[]),t$1),m=s.filter(g=>g.type==="registry:font"&&g.font).map(g=>({...g,type:"registry:font",font:g.font})),k=t.parse({dependencies:pe.all(s.map(g=>g.dependencies??[])),devDependencies:pe.all(s.map(g=>g.devDependencies??[])),files:w,tailwind:l,cssVars:d,css:f,docs:x,fonts:m.length>0?m:void 0});return Object.keys(u).length>0&&(k.envVars=u),k}async function Ie(e,t,r={},s=new Set){let n=[],i=[];for(let o of e)if(!s.has(o)){if(s.add(o),L(o)||ae(o)){let[a]=await Q([o],t,r);if(a&&(n.push(a),a.registryDependencies)){let p=t?.registries?be(a.registryDependencies,t):a.registryDependencies,c=await Ie(p,t,r,s);n.push(...c.items),i.push(...c.registryNames);}}else if(o.startsWith("@")&&t?.registries){let{registry:a}=se(o);if(a&&!(a in t.registries))throw new U(a);let[p]=await Q([o],t,r);if(p&&(n.push(p),p.registryDependencies)){let c=t?.registries?be(p.registryDependencies,t):p.registryDependencies,l=await Ie(c,t,r,s);n.push(...l.items),i.push(...l.registryNames);}}else if(i.push(o),t)try{let[a]=await Q([o],t,r);if(a&&a.registryDependencies){let p=t?.registries?be(a.registryDependencies,t):a.registryDependencies,c=await Ie(p,t,r,s);n.push(...c.items),i.push(...c.registryNames);}}catch{}}return {items:n,registryNames:i}}async function Bs(e,t,r={}){if(L(e))return [e];let{registryNames:s}=await Ie([e],t,r,new Set),n=t.resolvedPaths?.cwd?await Tt(t.resolvedPaths.cwd,t.style):t.style,i=s.map(o=>Ge(L(o)?o:`styles/${n}/${o}.json`));return Array.from(new Set(i))}async function Js(e,t){let[r,s]=await Promise.all([Me(e),ze(t)]);if(!r)return null;let n={name:e,type:"registry:theme",tailwind:{config:{theme:{extend:{borderRadius:{lg:"var(--radius)",md:"calc(var(--radius) - 2px)",sm:"calc(var(--radius) - 4px)"},colors:{}}}}},cssVars:{theme:{},light:{radius:"0.5rem"},dark:{}}};return t.tailwind.cssVariables&&(n.tailwind.config.theme.extend.colors={...n.tailwind.config.theme.extend.colors,...ir(r.cssVars.dark??{})},n.cssVars={theme:{...r.cssVars.theme,...n.cssVars.theme},light:{...r.cssVars.light,...n.cssVars.light},dark:{...r.cssVars.dark,...n.cssVars.dark}},s==="v4"&&r.cssVarsV4&&(n.cssVars={theme:{...r.cssVarsV4.theme,...n.cssVars.theme},light:{radius:"0.625rem",...r.cssVarsV4.light},dark:{...r.cssVarsV4.dark}})),n}function H(e,t){let r=t||e.name,s=createHash("sha256").update(r).digest("hex").substring(0,8);return `${e.name}::${s}`}function Gs(e){if(L(e)){let s=new URL(e).pathname,n=s.match(/\/([^/]+)\.json$/),i=n?n[1]:y__default.basename(s,".json");return {name:i,hash:H({name:i},e)}}if(ae(e)){let r=e.match(/\/([^/]+)\.json$/),s=r?r[1]:y__default.basename(e,".json");return {name:s,hash:H({name:s},e)}}let{item:t}=se(e);return {name:t,hash:H({name:t},e)}}function Hs(e,t){let r=new Map,s=new Map,n=new Map,i=new Map;e.forEach(c=>{let l=t.get(c)||c.name,d=H(c,l);r.set(d,c),s.set(d,c),n.set(d,0),i.set(d,[]);});let o=new Map;e.forEach(c=>{let l=t.get(c)||c.name,d=H(c,l);o.has(c.name)||o.set(c.name,[]),o.get(c.name).push(d),l!==c.name&&(o.has(l)||o.set(l,[]),o.get(l).push(d));}),e.forEach(c=>{let l=t.get(c)||c.name,d=H(c,l);c.registryDependencies&&c.registryDependencies.forEach(f=>{let x,u=o.get(f)||[];if(u.length===1)x=u[0];else if(u.length>1)x=u[0];else {let{name:w}=Gs(f),m=o.get(w)||[];m.length>0&&(x=m[0]);}x&&r.has(x)&&(i.get(x).push(d),n.set(d,n.get(d)+1));});});let a=[],p=[];for(n.forEach((c,l)=>{c===0&&a.push(l);});a.length>0;){let c=a.shift(),l=r.get(c);p.push(l),i.get(c).forEach(d=>{let f=n.get(d)-1;n.set(d,f),f===0&&a.push(d);});}if(p.length!==e.length){console.warn("Circular dependency detected in registry items");let c=new Set(p.map(l=>{let d=t.get(l)||l.name;return H(l,d)}));e.forEach(l=>{let d=t.get(l)||l.name,f=H(l,d);c.has(f)||p.push(l);});}return p}function fe(e){if(R.break(),R.error("Something went wrong. Please check the error below for more details."),R.error("If the problem persists, please open an issue on GitHub."),R.error(""),typeof e=="string"&&(R.error(e),R.break(),process.exit(1)),e instanceof I&&(e.message&&(R.error(e.cause?"Error:":"Message:"),R.error(e.message)),e.cause&&(R.error(`
29
+ Message:`),R.error(e.cause)),e.suggestion&&(R.error(`
30
+ Suggestion:`),R.error(e.suggestion)),R.break(),process.exit(1)),e instanceof z.ZodError){R.error("Validation failed:");for(let[t,r]of Object.entries(e.flatten().fieldErrors))R.error(`- ${P.info(t)}: ${r}`);R.break(),process.exit(1);}e instanceof Error&&(R.error(e.message),R.break(),process.exit(1)),R.break(),process.exit(1);}async function ct(e,t){let{config:r,useCache:s}=t||{};if(L(e)){let[a]=await j([e],{useCache:s});try{return o.parse(a)}catch(p){throw new $(e,p)}}if(!e.startsWith("@"))throw new we(e);let n=e;n.endsWith("/registry")||(n=`${n}/registry`);let i=ce(n,le(r));if(!i?.url)throw new q(n);i.headers&&Object.keys(i.headers).length>0&&ve({[i.url]:i.headers});let[o$1]=await j([i.url],{useCache:s});try{return o.parse(o$1)}catch(a){throw new $(n,a)}}async function Zs(e,t){let{config:r,useCache:s=false}=t||{};return Re(),Q(e,le(r),{useCache:s})}async function Qs(e,t){let{config:r,useCache:s=false}=t||{};return Re(),ar(e,le(r),{useCache:s})}async function tl(e,t){let{useCache:r=true}=t||{};r||Ae.clearCaches();let s=await Ae.search(e);if(!s)return {registries:F};let n=z.object({registries:b$1.optional()}).safeParse(s.config);if(!n.success)throw new $e(e,n.error);return {registries:{...F,...n.data.registries||{}}}}async function lr(){try{let[e]=await j(["index.json"]);return p.parse(e)}catch(e){R.error(`
31
+ `),fe(e);}}async function rl(){try{let[e]=await j(["styles/index.json"]);return q$1.parse(e)}catch(e){return R.error(`
32
+ `),fe(e),[]}}async function sl(){try{let[e]=await j(["icons/index.json"]);return r.parse(e)}catch(e){return fe(e),{}}}async function nl(){return It}async function Me(e){try{let[t]=await j([`colors/${e}.json`]);return s.parse(t)}catch(t){fe(t);}}async function Xs(e,t){let r=[];for(let s of t){let n=e.find(i=>i.name===s);if(n&&(r.push(n),n.registryDependencies)){let i=await Xs(e,n.registryDependencies);r.push(...i);}}return r.filter((s,n,i)=>i.findIndex(o=>o.name===s.name)===n)}async function il(e,t){try{let r=t.map(n=>`styles/${e}/${n.name}.json`);return (await j(r)).map(n$1=>n.parse(n$1))}catch(r){return fe(r),[]}}async function ol(e,t,r){if(r)return r;if(t.type==="registry:ui")return e.resolvedPaths.ui??e.resolvedPaths.components;let[s,n]=t.type?.split(":")??[];return s in e.resolvedPaths?y__default.join(e.resolvedPaths[s],n):null}async function en(e){e={useCache:true,...e};let t=`${te}/registries.json`,[r]=await j([t],{useCache:e.useCache});try{return w.parse(r)}catch(s){throw s instanceof z.ZodError?new Ee(s):s}}async function tn(e){e={useCache:true,...e};let t=`${te}/config.json`,[r]=await j([t],{useCache:e.useCache});return y$1.parse(r).presets}async function al(e,t){return (await tn(t)).find(s=>s.name.toLowerCase()===e.toLowerCase())??null}async function sn(e,t){let{query:r,limit:s,offset:n,config:i,useCache:o}=t||{},a=[];for(let f of e){let u=((await ct(f,{config:i,useCache:o})).items||[]).map(w=>({name:w.name,type:w.type,description:w.description,registry:f,addCommandArgument:ln(w.name,f)}));a=a.concat(u);}r&&(a=on(a,{query:r,limit:a.length,keys:["name","description"]}));let p=n||0,c=s||a.length,l=a.length,d={pagination:{total:l,offset:p,limit:c,hasMore:p+c<l},items:a.slice(p,p+c)};return v.parse(d)}var nn=z.object({name:z.string(),type:z.string().optional(),description:z.string().optional(),registry:z.string().optional(),addCommandArgument:z.string().optional()}).passthrough();function on(e,t){t={limit:100,threshold:-1e4,...t};let s=rn.go(t.query,e,{keys:t.keys,threshold:t.threshold,limit:t.limit}).map(n=>n.obj);return z.array(nn).parse(s)}function an(e){try{return new URL(e),!0}catch{return false}}function ln(e,t){if(!an(t))return `${t}/${e}`;let r=t.indexOf("://")+3,s=t.indexOf("/",r);if(s===-1){let f=t.indexOf("?",r);if(f!==-1){let x=t.substring(0,f),w=t.substring(f).replace(/\bregistry\b/g,e);return x+w}return t}let n=t.substring(0,s),i=t.substring(s),o=i.indexOf("?")!==-1?i.indexOf("?"):i.length,a=i.substring(0,o),p=i.substring(o),c=a.lastIndexOf("registry"),l=a;c!==-1&&(l=a.substring(0,c)+e+a.substring(c+8));let d=p.replace(/\bregistry\b/g,e);return n+l+d}
33
+ export{Qs as $,re as A,$ as B,xe as C,we as D,Ee as E,se as F,At as G,Ot as H,Ft as I,Dt as J,ao as K,hs as L,L as M,vo as N,le as O,Re as P,Lo as Q,ce as R,j as S,ga as T,tr as U,Ws as V,Q as W,ar as X,fe as Y,ct as Z,Zs as _,It as a,tl as aa,F as b,lr as ba,cn as c,rl as ca,P as d,sl as da,jn as e,nl as ea,kn as f,Me as fa,$n as g,Xs as ga,An as h,il as ha,Oe as i,ol as ia,Qe as j,en as ja,On as k,tn as ka,Er as l,al as la,Rr as m,sn as ma,Pt as n,Xe as o,W as p,qn as q,ze as r,R as s,Z as t,I as u,q as v,ue as w,he as x,ye as y,U as z};//# sourceMappingURL=chunk-I3JXSMK6.js.map
34
+ //# sourceMappingURL=chunk-I3JXSMK6.js.map