hghcn 3.6.15 → 3.6.17

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.
@@ -1,4 +1,4 @@
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 Or from'ora';import {Project,SyntaxKind,ScriptKind,QuoteKind}from'ts-morph';import {transformFromAstSync}from'@babel/core';import {parse}from'@babel/parser';import Vr from'@babel/plugin-transform-typescript';import*as Ve from'recast';import es from'prompts';import pe from'deepmerge';import {HttpsProxyAgent}from'https-proxy-agent';import As from'node-fetch';import {createHash}from'crypto';import Ls from'stringify-object';import sn 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 pn=[{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:
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
2
  {
3
3
  "registries": {
4
4
  "${r}": "[URL_TO_REGISTRY]"
@@ -14,7 +14,7 @@ ${s.errors.map(i=>` - ${i.path.join(".")}: ${i.message}`).join(`
14
14
  ${t.errors.map(n=>` - ${n.path.join(".")}: ${n.message}`).join(`
15
15
  `)}`:r=`Failed to parse registries index:
16
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 kn="@/components",$n="@/lib/utils",An="app/globals.css",wr="tailwind.config.js";var Ae=cosmiconfig("components",{searchPlaces:["components.json"]});async function Oe(e){let t=await Er(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):wr,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 Er(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(!Rr(s,e$1))continue;let n=e$1.resolvedPaths[s],i=await vr(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 vr(e,t){let r=Cr(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 Rr(e,t){return Object.keys(t.resolvedPaths).filter(r=>r!=="utils").includes(e)}function Cr(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")),$r(e),jr(e),Pr(e),jt(e),kr(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 Tr(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 Tr(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 Pr(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 jr(e){let t=await Le.glob("tailwind.config.*",{cwd:e,deep:3,ignore:De});return t.length?t[0]:null}async function kr(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 $r(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,`
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
18
  `).trim(),i=t.replace(/\r\n/g,`
19
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
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(`
@@ -24,11 +24,11 @@ ${t.errors.map(n=>` - ${n.path.join(".")}: ${n.message}`).join(`
24
24
  `),n+`
25
25
  `):n&&!n.endsWith(`
26
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 Or({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=Lr(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 Nr=["bg-","text-","border-","ring-offset-","ring-"];function Lr(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=Nr.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=zr(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 zr(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 Wr={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,Wr)}}),n=transformFromAstSync(s,r,{cloneInputAst:false,code:false,ast:true,plugins:[Vr],configFile:false});if(!n||!n.ast)throw new Error("Failed to transform JSX");return Ve.print(n.ast).code};var Mr=/^["']use client["']$/g,We=async({sourceFile:e,config:t})=>{if(t.rsc)return e;let r=e.getFirstChildByKind(SyntaxKind.ExpressionStatement);return r&&Mr.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 qr=new Project({compilerOptions:{}});async function Yr(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 Yr(e.filename),s=qr.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 Zr=["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=Zr.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 es({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 as(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=os(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=ns(e,t),n=is(e.path,s);return y__default.join(s,n)}function ns(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 is(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 os(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 as(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=ls(u,e,t);if(!w)continue;let m=cs(w,t,s);!m||m===x||(f.setModuleSpecifier(m),await promises.writeFile(a,l.getFullText(),"utf-8"),i.push(o));}}return i}function ls(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 cs(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"],gs=[/^(react|react-dom|next)(\/.*)?$/,/^(node|jsr|npm):.*$/],us=new Project({compilerOptions:{}});function hs(e){if(gs.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 ys(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 xs(y.basename(n)),l=us.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 _=hs(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 ys(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 xs(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(!ws(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 ws(e){return !!(e?.resolvedPaths?.cwd&&(e?.resolvedPaths?.ui||e?.resolvedPaths?.lib||e?.resolvedPaths?.components||e?.resolvedPaths?.hooks))}function vs(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:vs(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 Rs(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=Rs(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="?",Cs="&";function Ss(e){return e.startsWith("./")||e.startsWith("/")}function ce(e,t){let{registry:r,item:s}=se(e);if(!r){if(L(e)||ae(e)||Ss(e))return null;r="@shadcn";}let i={...F,...t?.registries}[r];if(!i)throw new U(r);return Ht(r,i),{url:bs(s,i,t),headers:Is(i)}}function bs(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?Ts(s,t.params):s}function Is(e){if(typeof e=="string"||!e.headers)return {};let t={};for(let[r,s]of Object.entries(e.headers)){let n=de(s);Ps(s,n)&&(t[r]=n);}return t}function Ts(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)?Cs:Zt;return `${e}${n}${s}`}function Ps(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 Os=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 As(n,{agent:Os,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 _s(i,e,t);await promises.writeFile(t.resolvedPaths.tailwindConfig,o,"utf8"),n?.succeed();}async function _s(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=Us(n);return Ks(n,{name:"darkMode",value:"class"},{quoteChar:i}),t.plugins?.forEach(o=>{Ws(n,o);}),t.theme&&await Vs(n,t.theme),s.getFullText()}function Ks(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 Vs(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 Ms(n),o=pe(i,t,{arrayMerge:(p,c)=>c}),a=Ls(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 Ws(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 Us(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 Ms(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 Js(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 Gs(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=qs(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 Js(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 Gs(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 Hs(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 qs(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}=Hs(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(`
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
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 Qs(e,t){let{config:r,useCache:s=false}=t||{};return Re(),Q(e,le(r),{useCache:s})}async function Xs(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(`
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
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 en(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 en(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 tn(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 rn(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 rn(t)).find(s=>s.name.toLowerCase()===e.toLowerCase())??null}async function nn(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:cn(w.name,f)}));a=a.concat(u);}r&&(a=an(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 on=z.object({name:z.string(),type:z.string().optional(),description:z.string().optional(),registry:z.string().optional(),addCommandArgument:z.string().optional()}).passthrough();function an(e,t){t={limit:100,threshold:-1e4,...t};let s=sn.go(t.query,e,{keys:t.keys,threshold:t.threshold,limit:t.limit}).map(n=>n.obj);return z.array(on).parse(s)}function ln(e){try{return new URL(e),!0}catch{return false}}function cn(e,t){if(!ln(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{Xs 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,ys 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,Us as V,Q as W,ar as X,fe as Y,ct as Z,Qs as _,It as a,tl as aa,F as b,lr as ba,pn as c,rl as ca,P as d,sl as da,kn as e,nl as ea,$n as f,Me as fa,An as g,en as ga,wr as h,il as ha,Oe as i,ol as ia,Qe as j,tn as ja,On as k,rn as ka,vr as l,al as la,Cr as m,nn 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-X3VF5OTV.js.map
34
- //# sourceMappingURL=chunk-X3VF5OTV.js.map
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