shadcn 4.17.0 → 4.18.0
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 {c as c$2}from'./chunk-2XFBGS5K.js';import {m,f,l,b,d as d$1,c as c$1,e,n,v,r,s,t,u,A,C,p,g,q as q$1,y}from'./chunk-4WBGNKSZ.js';import {a,d,c,b as b$1,g as g$1,f as f$1}from'./chunk-7SBJAAAY.js';import Do,{promises,existsSync,statSync}from'fs';import*as S from'path';import S__default,{join,basename,normalize,delimiter,resolve,dirname}from'path';import {z}from'zod';import {green,cyan,yellow,red}from'kleur/colors';import Q from'fs-extra';import Wt from'fast-glob';import {loadConfig,createMatchPath}from'tsconfig-paths';import {cosmiconfig}from'cosmiconfig';import bf,{tmpdir,homedir}from'os';import yc from'ora';import {Project,SyntaxKind,ScriptKind,VariableDeclarationKind,QuoteKind}from'ts-morph';import {transformFromAstSync}from'@babel/core';import {parse}from'@babel/parser';import Cc from'@babel/plugin-transform-typescript';import*as qt from'recast';import Wc from'prompts';import {AsyncLocalStorage}from'async_hooks';import Be from'deepmerge';import {createHash}from'crypto';import {SocksClient}from'socks';import {EnvHttpProxyAgent,Agent}from'undici';import {execa}from'execa';import fu from'stringify-object';import ie,{cwd}from'process';import uf from'readline';import vf from'events';import*as Vi from'fs/promises';import Vi__default from'fs/promises';import {createRequire}from'module';import {spawn}from'child_process';import {PassThrough}from'stream';import Rf from'tty';import A$1 from'postcss';import
|
|
1
|
+
import {c as c$2}from'./chunk-2XFBGS5K.js';import {m,f,l,b,d as d$1,c as c$1,e,n,v,r,s,t,u,A,C,p,g,q as q$1,y}from'./chunk-4WBGNKSZ.js';import {a,d,c,b as b$1,g as g$1,f as f$1}from'./chunk-7SBJAAAY.js';import Do,{promises,existsSync,statSync}from'fs';import*as S from'path';import S__default,{join,basename,normalize,delimiter,resolve,dirname}from'path';import {z}from'zod';import {green,cyan,yellow,red}from'kleur/colors';import Q from'fs-extra';import Wt from'fast-glob';import {loadConfig,createMatchPath}from'tsconfig-paths';import {cosmiconfig}from'cosmiconfig';import bf,{tmpdir,homedir}from'os';import yc from'ora';import {Project,SyntaxKind,ScriptKind,VariableDeclarationKind,QuoteKind}from'ts-morph';import {transformFromAstSync}from'@babel/core';import {parse}from'@babel/parser';import Cc from'@babel/plugin-transform-typescript';import*as qt from'recast';import Wc from'prompts';import {AsyncLocalStorage}from'async_hooks';import Be from'deepmerge';import {createHash}from'crypto';import {SocksClient}from'socks';import {EnvHttpProxyAgent,Agent}from'undici';import {execa}from'execa';import fu from'stringify-object';import ie,{cwd}from'process';import uf from'readline';import vf from'events';import*as Vi from'fs/promises';import Vi__default from'fs/promises';import {createRequire}from'module';import {spawn}from'child_process';import {PassThrough}from'stream';import Rf from'tty';import A$1 from'postcss';import Tp from'postcss/lib/at-rule';import {twMerge}from'tailwind-merge';import jd from'fuzzysort';var Ae=process.env.REGISTRY_URL??"https://ui.shadcn.com/r",V=Ae.replace(/\/r\/?$/,""),Pt="new-york-v4",xn=[{name:"neutral",label:"Neutral"},{name:"zinc",label:"Zinc"},{name:"stone",label:"Stone"},{name:"mauve",label:"Mauve"},{name:"olive",label:"Olive"},{name:"mist",label:"Mist"},{name:"taupe",label:"Taupe"}],H={"@shadcn":`${Ae}/styles/{style}/{name}.json`};var oh=[{name:"toast",deprecatedBy:"sonner",message:"The toast component is only available for Base UI projects. Use the sonner component instead.",availableIn:["base"]},{name:"toaster",deprecatedBy:"sonner",message:"The toaster component is deprecated. Use the sonner component instead."}],ah=[{name:"sonner",hiddenIn:["base"]}];var L={NETWORK_ERROR:"NETWORK_ERROR",NOT_FOUND:"NOT_FOUND",GONE:"GONE",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"},_=class extends Error{code;statusCode;context;suggestion;timestamp;cause;constructor(t,r={}){super(t),this.name="RegistryError",this.code=r.code||L.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}}},je=class extends _{constructor(r,s){let n=`The item at ${r} was not found. It may not exist at the registry.`;super(n,{code:L.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";}},$t=class extends _{constructor(r,s){let n=`The item at ${r} is no longer available. It may have been removed or expired.`;super(n,{code:L.GONE,statusCode:410,cause:s,context:{url:r},suggestion:"This resource was previously available but has been permanently removed. Check if a newer version exists or contact the registry maintainer."});this.url=r;this.name="RegistryGoneError";}},tt=class extends _{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:L.UNAUTHORIZED,statusCode:401,cause:s,context:{url:r},suggestion:"Check your authentication credentials and environment variables."});this.url=r;this.name="RegistryUnauthorizedError";}},rt=class extends _{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:L.FORBIDDEN,statusCode:403,cause:s,context:{url:r},suggestion:"Check your authentication credentials and environment variables."});this.url=r;this.name="RegistryForbiddenError";}},st=class extends _{constructor(r,s,n,i){let o=s?`Failed to fetch from registry (${s}): ${r}`:`Failed to fetch from registry: ${r}`,c=typeof i=="string"&&i?`${o} - ${i}`:o,a="Check your network connection and try again.";s===404?a="The requested resource was not found. Check the URL or item name.":s===500?a="The registry server encountered an error. Try again later.":s&&s>=400&&s<500&&(a="There was a client error. Check your request parameters.");super(c,{code:L.FETCH_ERROR,statusCode:s,cause:i,context:{url:r,responseBody:n},suggestion:a});this.url=r;this.responseBody=n;this.name="RegistryFetchError";}},de=class extends _{constructor(r){let s=r?`Unknown registry "${r}". Make sure it is defined under "registries" in your components.json or package.json file:
|
|
2
2
|
{
|
|
3
3
|
"registries": {
|
|
4
4
|
"${r}": "[URL_TO_REGISTRY]"
|
|
@@ -14,14 +14,14 @@ ${s.errors.map(c=>` - ${c.path.join(".")}: ${c.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:L.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 Ea=/^(@[a-zA-Z0-9](?:[a-zA-Z0-9-_]*[a-zA-Z0-9])?)\/(.+)$/;function he(e){if(!e.startsWith("@"))return {registry:null,item:e};let t=e.match(Ea);return t?{registry:t[1],item:t[2]}:{registry:null,item:e}}var G={"next-app":{name:"next-app",label:"Next.js",links:{installation:`${V}/docs/installation/next`,tailwind:"https://tailwindcss.com/docs/guides/nextjs"}},"next-pages":{name:"next-pages",label:"Next.js",links:{installation:`${V}/docs/installation/next`,tailwind:"https://tailwindcss.com/docs/guides/nextjs"}},remix:{name:"remix",label:"Remix",links:{installation:`${V}/docs/installation/remix`,tailwind:"https://tailwindcss.com/docs/guides/remix"}},"react-router":{name:"react-router",label:"React Router",links:{installation:`${V}/docs/installation/react-router`,tailwind:"https://tailwindcss.com/docs/installation/framework-guides/react-router"}},vite:{name:"vite",label:"Vite",links:{installation:`${V}/docs/installation/vite`,tailwind:"https://tailwindcss.com/docs/guides/vite"}},astro:{name:"astro",label:"Astro",links:{installation:`${V}/docs/installation/astro`,tailwind:"https://tailwindcss.com/docs/guides/astro"}},laravel:{name:"laravel",label:"Laravel",links:{installation:`${V}/docs/installation/laravel`,tailwind:"https://tailwindcss.com/docs/guides/laravel"}},"tanstack-start":{name:"tanstack-start",label:"TanStack Start",links:{installation:`${V}/docs/installation/tanstack`,tailwind:"https://tailwindcss.com/docs/installation/using-postcss"}},gatsby:{name:"gatsby",label:"Gatsby",links:{installation:`${V}/docs/installation/gatsby`,tailwind:"https://tailwindcss.com/docs/guides/gatsby"}},expo:{name:"expo",label:"Expo",links:{installation:`${V}/docs/installation/expo`,tailwind:"https://www.nativewind.dev/docs/getting-started/installation"}},manual:{name:"manual",label:"Manual",links:{installation:`${V}/docs/installation/manual`,tailwind:"https://tailwindcss.com/docs/installation"}}};var T={error:red,warn:yellow,info:cyan,success:green};function Tt(e){let t=[e];for(;t.length;){let r=t.shift();if(typeof r=="string"){if(r.startsWith("./"))return r;continue}if(Array.isArray(r)){t.unshift(...r);continue}r&&typeof r=="object"&&t.unshift(...Object.values(r));}return null}function At(e){if(!e.includes("*"))return "strip_extension";let t=e.slice(e.indexOf("*")+1);return t&&/^\.[^/]+$/.test(t)?"strip_extension":"preserve_extension"}function jt(e,t){let r=t.find(n=>!n.hasWildcard&&n.key===e);if(r)return {path:S__default.resolve(r.rootDir,r.target),matchedAlias:r.key,matchedTarget:r.target,emitMode:r.emitMode};let s=t.filter(n=>n.hasWildcard).sort((n,i)=>i.key.length-n.key.length);for(let n of s){let i=wr(e,n.key,{allowBareAliasBase:true});if(i!==null)return {path:S__default.resolve(n.rootDir,Ta(n.target,i)),matchedAlias:n.key,matchedTarget:n.target,emitMode:n.emitMode}}return null}function wr(e,t,r={}){if(!t.includes("*"))return e===t?"":null;let[s,n=""]=t.split("*");return e.startsWith(s)&&e.endsWith(n)?n?e.slice(s.length,-n.length):e.slice(s.length):r.allowBareAliasBase&&n===""&&s.endsWith("/")&&e===s.slice(0,-1)?"":null}function Ta(e,t){if(!e.includes("*"))return e;let[r,s=""]=e.split("*");return t?`${r}${t}${s}`:r.replace(/\/$/,"")}function J(e="",t=true){let r=S__default.join(e,"package.json");return Q.readJSONSync(r,{throws:t})}var xr=new Map;function vr(e){let t=S__default.resolve(e),r=xr.get(t);if(r)return r;let n=J(e,false)?.imports;if(!n||typeof n!="object"||Array.isArray(n))return xr.set(t,[]),[];let i=[];for(let[o,c]of Object.entries(n)){if(!o.startsWith("#"))continue;let a=Tt(c);a&&i.push({key:o,aliasBase:o==="#*"?"#":o.endsWith("/*")?o.slice(0,-2):o,target:a,emitMode:At(a),hasWildcard:o.includes("*"),rootDir:t});}return xr.set(t,i),i}function bn(e){let t=vr(e).map(r=>r.aliasBase);return t.length?Fa(t):null}function ct(e,t){return jt(e,vr(t))}function Rn(e){let t=vr(e),r=t.some(s=>s.key==="#*")?{components:"#components",ui:"#components/ui",lib:"#lib",hooks:"#hooks",utils:"#lib/utils"}:null;return {components:at(t,"components")??r?.components,ui:at(t,"ui")??r?.ui,lib:at(t,"lib")??r?.lib,hooks:at(t,"hooks")??r?.hooks,utils:at(t,"utils")??r?.utils}}function at(e,t){return e.map(s=>({entry:s,score:Na(s,t)})).filter(s=>s.score>0).sort((s,n)=>n.score-s.score||n.entry.aliasBase.length-s.entry.aliasBase.length)[0]?.entry.aliasBase}function Na(e,t){let r=e.aliasBase.toLowerCase(),s=_a(e.target).toLowerCase();switch(t){case "components":return r.endsWith("/ui")||s.includes("/components/ui")?0:Ot(r,"components")?4:Ot(s,"components")?3:0;case "ui":return r.endsWith("/ui")||r==="#ui"?5:s.includes("/components/ui")?4:s.endsWith("/ui")?3:0;case "lib":return r==="#lib"||r.endsWith("/lib")?5:s.endsWith("/lib")?4:Ot(s,"lib")?3:0;case "hooks":return r==="#hooks"||r.endsWith("/hooks")?5:s.endsWith("/hooks")?4:Ot(s,"hooks")?3:0;case "utils":return r==="#utils"||r.endsWith("/utils")?5:s.endsWith("/lib/utils")?4:s.endsWith("/utils")?3:0}}function _a(e){return e.replace(/\/\*$/,"").replace(/\*$/,"").replace(/\/index\.[^/]+$/,"")}function Ot(e,t){return e===t||e.includes(`/${t}`)||e.includes(`${t}/`)}function Fa(e){let t=e.map(r=>r.slice(1).split("/").filter(Boolean)).reduce((r,s,n)=>n?r.filter((i,o)=>s[o]===i):s,[]);return t.length?`#${t.join("/")}`:"#"}var I={error(...e){console.log(T.error(e.join(" ")));},warn(...e){console.log(T.warn(e.join(" ")));},info(...e){console.log(T.info(e.join(" ")));},success(...e){console.log(T.success(e.join(" ")));},log(...e){console.log(e.join(" "));},break(){console.log("");}};var Ma=["next.config.*","vite.config.*","astro.config.*","remix.config.*","nuxt.config.*","svelte.config.*","gatsby-config.*","angular.json"];async function
|
|
18
|
-
`)){let i=n.trim();if(!i||i.startsWith("#"))continue;let o=n.match(/^(\s*)([A-Za-z0-9_-]+)\s*:/);if(o){s=o[1].length,r=o[2]==="packages";continue}if(!r)continue;let c=n.match(/^(\s*)-\s*(.+?)\s*(?:#.*)?$/);!c||c[1].length<=s||t.push(c[2].trim().replace(/^["']|["']$/g,""));}return t}var In=new Map,br=new Map,_t=new Map;async function En(e,t){let r=Ga(e);if(!r)return null;let s=await za(t,r.packageName);return s?jt(e,Wa(s)):null}function Wa(e){let t=`${e.packageRoot}:${e.packageName}`,r=br.get(t);if(r)return r;let n=J(e.packageRoot,false)?.exports;if(!n||typeof n!="object"||Array.isArray(n))return br.set(t,[]),[];let i=[];for(let[o,c]of Object.entries(n)){if(o!=="."&&!o.startsWith("./"))continue;let a=Tt(c);if(!a)continue;let f=Ba(e.packageName,o);i.push({key:o.includes("*")?`${f}/*`:f,aliasBase:f,target:a,emitMode:At(a),hasWildcard:o.includes("*"),rootDir:e.packageRoot});}return br.set(t,i),i}async function za(e,t){let r=await Ha(e);if(!r)return null;let s=In.get(r);if(s?.has(t))return s.get(t)??null;let n=await Ua(r);return In.set(r,n),n.get(t)??null}async function Ua(e){let t=await Nt(e),r=new Map;if(!t.length)return r;let s=await Wt(t.map(n=>S__default.posix.join(n.split(S__default.sep).join("/"),"package.json")),{cwd:e,ignore:["**/node_modules/**"]});for(let n of s){let i=S__default.resolve(e,S__default.dirname(n)),c=J(i,false)?.name;c&&r.set(c,{packageName:c,packageRoot:i});}return r}async function Ha(e){let t=S__default.resolve(e),r=_t.get(t);if(r!==void 0)return r;let s=t,n=await Ka(t);for(;;){if((await Nt(s)).length)return _t.set(t,s),s;if(n&&s===n)return _t.set(t,null),null;let o=S__default.dirname(s);if(o===s)return _t.set(t,null),null;s=o;}}async function Ka(e){let t=S__default.resolve(e);for(;;){if(Q.existsSync(S__default.resolve(t,".git")))return t;let r=S__default.dirname(t);if(r===t)return null;t=r;}}function Ga(e){if(e.startsWith("#")||e.startsWith(".")||S__default.isAbsolute(e))return null;let t=e.split("/");return e.startsWith("@")?t.length<2?null:{packageName:`${t[0]}/${t[1]}`}:{packageName:t[0]}}function Ba(e,t){if(t===".")return e;let r=t.slice(2).replace(/\/\*$/,"");return r?`${e}/${r}`:e}async function Ft(e,t){let r=t.cwd??t.absoluteBaseUrl;if(e.startsWith("#")){let n=ct(e,r);if(n)return {path:n.path,source:"package_imports",matchedAlias:n.matchedAlias,matchedTarget:n.matchedTarget,emitMode:n.emitMode}}let s=await En(e,r);return s?{path:s.path,source:"workspace_package_exports",matchedAlias:s.matchedAlias,matchedTarget:s.matchedTarget,emitMode:s.emitMode}:Ya(e,t)}function Cn(e,t){return e.startsWith("#")?true:t?e.startsWith(`${t}/`):false}function Ja(e){return /^@[^/]+\/[^/]+(?:\/.*)?$/.test(e)}function Ya(e,t){let r=createMatchPath(t.absoluteBaseUrl,t.paths)(e,void 0,()=>true,[".ts",".tsx",".jsx",".js",".css"]);if(!r)return null;let s=Za(e,t.paths);return !s&&Ja(e)?null:{path:r,source:"tsconfig_paths",matchedAlias:s?.key??e,matchedTarget:s?.target??r,emitMode:"strip_extension"}}function Za(e,t){for(let[r,s]of Object.entries(t)){let n=Array.isArray(s)?s:[s],i=wr(e,r);if(i!==null)return {key:r,target:n[0]?.includes("*")&&i!==null?n[0].replace(/\*/g,i):n[0]}}return null}var
|
|
17
|
+
`)}`;}super(r,{code:L.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 Ea=/^(@[a-zA-Z0-9](?:[a-zA-Z0-9-_]*[a-zA-Z0-9])?)\/(.+)$/;function he(e){if(!e.startsWith("@"))return {registry:null,item:e};let t=e.match(Ea);return t?{registry:t[1],item:t[2]}:{registry:null,item:e}}var G={"next-app":{name:"next-app",label:"Next.js",links:{installation:`${V}/docs/installation/next`,tailwind:"https://tailwindcss.com/docs/guides/nextjs"}},"next-pages":{name:"next-pages",label:"Next.js",links:{installation:`${V}/docs/installation/next`,tailwind:"https://tailwindcss.com/docs/guides/nextjs"}},remix:{name:"remix",label:"Remix",links:{installation:`${V}/docs/installation/remix`,tailwind:"https://tailwindcss.com/docs/guides/remix"}},"react-router":{name:"react-router",label:"React Router",links:{installation:`${V}/docs/installation/react-router`,tailwind:"https://tailwindcss.com/docs/installation/framework-guides/react-router"}},vite:{name:"vite",label:"Vite",links:{installation:`${V}/docs/installation/vite`,tailwind:"https://tailwindcss.com/docs/guides/vite"}},astro:{name:"astro",label:"Astro",links:{installation:`${V}/docs/installation/astro`,tailwind:"https://tailwindcss.com/docs/guides/astro"}},laravel:{name:"laravel",label:"Laravel",links:{installation:`${V}/docs/installation/laravel`,tailwind:"https://tailwindcss.com/docs/guides/laravel"}},"tanstack-start":{name:"tanstack-start",label:"TanStack Start",links:{installation:`${V}/docs/installation/tanstack`,tailwind:"https://tailwindcss.com/docs/installation/using-postcss"}},gatsby:{name:"gatsby",label:"Gatsby",links:{installation:`${V}/docs/installation/gatsby`,tailwind:"https://tailwindcss.com/docs/guides/gatsby"}},expo:{name:"expo",label:"Expo",links:{installation:`${V}/docs/installation/expo`,tailwind:"https://www.nativewind.dev/docs/getting-started/installation"}},manual:{name:"manual",label:"Manual",links:{installation:`${V}/docs/installation/manual`,tailwind:"https://tailwindcss.com/docs/installation"}}};var T={error:red,warn:yellow,info:cyan,success:green};function Tt(e){let t=[e];for(;t.length;){let r=t.shift();if(typeof r=="string"){if(r.startsWith("./"))return r;continue}if(Array.isArray(r)){t.unshift(...r);continue}r&&typeof r=="object"&&t.unshift(...Object.values(r));}return null}function At(e){if(!e.includes("*"))return "strip_extension";let t=e.slice(e.indexOf("*")+1);return t&&/^\.[^/]+$/.test(t)?"strip_extension":"preserve_extension"}function jt(e,t){let r=t.find(n=>!n.hasWildcard&&n.key===e);if(r)return {path:S__default.resolve(r.rootDir,r.target),matchedAlias:r.key,matchedTarget:r.target,emitMode:r.emitMode};let s=t.filter(n=>n.hasWildcard).sort((n,i)=>i.key.length-n.key.length);for(let n of s){let i=wr(e,n.key,{allowBareAliasBase:true});if(i!==null)return {path:S__default.resolve(n.rootDir,Ta(n.target,i)),matchedAlias:n.key,matchedTarget:n.target,emitMode:n.emitMode}}return null}function wr(e,t,r={}){if(!t.includes("*"))return e===t?"":null;let[s,n=""]=t.split("*");return e.startsWith(s)&&e.endsWith(n)?n?e.slice(s.length,-n.length):e.slice(s.length):r.allowBareAliasBase&&n===""&&s.endsWith("/")&&e===s.slice(0,-1)?"":null}function Ta(e,t){if(!e.includes("*"))return e;let[r,s=""]=e.split("*");return t?`${r}${t}${s}`:r.replace(/\/$/,"")}function J(e="",t=true){let r=S__default.join(e,"package.json");return Q.readJSONSync(r,{throws:t})}var xr=new Map;function vr(e){let t=S__default.resolve(e),r=xr.get(t);if(r)return r;let n=J(e,false)?.imports;if(!n||typeof n!="object"||Array.isArray(n))return xr.set(t,[]),[];let i=[];for(let[o,c]of Object.entries(n)){if(!o.startsWith("#"))continue;let a=Tt(c);a&&i.push({key:o,aliasBase:o==="#*"?"#":o.endsWith("/*")?o.slice(0,-2):o,target:a,emitMode:At(a),hasWildcard:o.includes("*"),rootDir:t});}return xr.set(t,i),i}function bn(e){let t=vr(e).map(r=>r.aliasBase);return t.length?Fa(t):null}function ct(e,t){return jt(e,vr(t))}function Rn(e){let t=vr(e),r=t.some(s=>s.key==="#*")?{components:"#components",ui:"#components/ui",lib:"#lib",hooks:"#hooks",utils:"#lib/utils"}:null;return {components:at(t,"components")??r?.components,ui:at(t,"ui")??r?.ui,lib:at(t,"lib")??r?.lib,hooks:at(t,"hooks")??r?.hooks,utils:at(t,"utils")??r?.utils}}function at(e,t){return e.map(s=>({entry:s,score:Na(s,t)})).filter(s=>s.score>0).sort((s,n)=>n.score-s.score||n.entry.aliasBase.length-s.entry.aliasBase.length)[0]?.entry.aliasBase}function Na(e,t){let r=e.aliasBase.toLowerCase(),s=_a(e.target).toLowerCase();switch(t){case "components":return r.endsWith("/ui")||s.includes("/components/ui")?0:Ot(r,"components")?4:Ot(s,"components")?3:0;case "ui":return r.endsWith("/ui")||r==="#ui"?5:s.includes("/components/ui")?4:s.endsWith("/ui")?3:0;case "lib":return r==="#lib"||r.endsWith("/lib")?5:s.endsWith("/lib")?4:Ot(s,"lib")?3:0;case "hooks":return r==="#hooks"||r.endsWith("/hooks")?5:s.endsWith("/hooks")?4:Ot(s,"hooks")?3:0;case "utils":return r==="#utils"||r.endsWith("/utils")?5:s.endsWith("/lib/utils")?4:s.endsWith("/utils")?3:0}}function _a(e){return e.replace(/\/\*$/,"").replace(/\*$/,"").replace(/\/index\.[^/]+$/,"")}function Ot(e,t){return e===t||e.includes(`/${t}`)||e.includes(`${t}/`)}function Fa(e){let t=e.map(r=>r.slice(1).split("/").filter(Boolean)).reduce((r,s,n)=>n?r.filter((i,o)=>s[o]===i):s,[]);return t.length?`#${t.join("/")}`:"#"}var I={error(...e){console.log(T.error(e.join(" ")));},warn(...e){console.log(T.warn(e.join(" ")));},info(...e){console.log(T.info(e.join(" ")));},success(...e){console.log(T.success(e.join(" ")));},log(...e){console.log(e.join(" "));},break(){console.log("");}};var Ma=["next.config.*","vite.config.*","astro.config.*","remix.config.*","nuxt.config.*","svelte.config.*","gatsby-config.*","angular.json"];async function Oh(e){if(Q.existsSync(S__default.resolve(e,"pnpm-workspace.yaml")))return true;let t=S__default.resolve(e,"package.json");if(Q.existsSync(t))try{if((await Q.readJson(t)).workspaces)return !0}catch{}return !!(Q.existsSync(S__default.resolve(e,"lerna.json"))||Q.existsSync(S__default.resolve(e,"nx.json")))}async function Nh(e){let t=await Nt(e);if(!t.length)return [];let r=await Wt(t,{cwd:e,onlyDirectories:true,ignore:["**/node_modules/**"],suppressErrors:true}),s=[];for(let n of r){let i=S__default.resolve(e,n);if(!Q.existsSync(S__default.resolve(i,"package.json")))continue;let o=Q.existsSync(S__default.resolve(i,"components.json")),c=Ma.some(a=>Wt.sync(a,{cwd:i,dot:true}).length>0);(o||c)&&s.push({name:n,hasConfig:o});}return s}function _h(e,t,r){let s=r?.cwdFlag??"-c";I.break(),I.log(`It looks like you are running ${T.info(e)} from a monorepo root.`),I.log(`To use shadcn in a specific workspace, use the ${T.info(s)} flag:`),I.break();for(let n of t)I.log(` shadcn ${e} ${s} ${n.name}`);I.break();}async function Nt(e){let t=[],r=S__default.resolve(e,"pnpm-workspace.yaml");if(Q.existsSync(r)){let n=await Q.readFile(r,"utf8");t.push(...Da(n));}let s=S__default.resolve(e,"package.json");if(Q.existsSync(s))try{let n=await Q.readJson(s),i=Array.isArray(n.workspaces)?n.workspaces:n.workspaces?.packages;Array.isArray(i)&&t.push(...i.filter(o=>!o.startsWith("!")));}catch{}return Array.from(new Set(t))}function Da(e){let t=[],r=false,s=0;for(let n of e.split(`
|
|
18
|
+
`)){let i=n.trim();if(!i||i.startsWith("#"))continue;let o=n.match(/^(\s*)([A-Za-z0-9_-]+)\s*:/);if(o){s=o[1].length,r=o[2]==="packages";continue}if(!r)continue;let c=n.match(/^(\s*)-\s*(.+?)\s*(?:#.*)?$/);!c||c[1].length<=s||t.push(c[2].trim().replace(/^["']|["']$/g,""));}return t}var In=new Map,br=new Map,_t=new Map;async function En(e,t){let r=Ga(e);if(!r)return null;let s=await za(t,r.packageName);return s?jt(e,Wa(s)):null}function Wa(e){let t=`${e.packageRoot}:${e.packageName}`,r=br.get(t);if(r)return r;let n=J(e.packageRoot,false)?.exports;if(!n||typeof n!="object"||Array.isArray(n))return br.set(t,[]),[];let i=[];for(let[o,c]of Object.entries(n)){if(o!=="."&&!o.startsWith("./"))continue;let a=Tt(c);if(!a)continue;let f=Ba(e.packageName,o);i.push({key:o.includes("*")?`${f}/*`:f,aliasBase:f,target:a,emitMode:At(a),hasWildcard:o.includes("*"),rootDir:e.packageRoot});}return br.set(t,i),i}async function za(e,t){let r=await Ha(e);if(!r)return null;let s=In.get(r);if(s?.has(t))return s.get(t)??null;let n=await Ua(r);return In.set(r,n),n.get(t)??null}async function Ua(e){let t=await Nt(e),r=new Map;if(!t.length)return r;let s=await Wt(t.map(n=>S__default.posix.join(n.split(S__default.sep).join("/"),"package.json")),{cwd:e,ignore:["**/node_modules/**"],suppressErrors:true});for(let n of s){let i=S__default.resolve(e,S__default.dirname(n)),c=J(i,false)?.name;c&&r.set(c,{packageName:c,packageRoot:i});}return r}async function Ha(e){let t=S__default.resolve(e),r=_t.get(t);if(r!==void 0)return r;let s=t,n=await Ka(t);for(;;){if((await Nt(s)).length)return _t.set(t,s),s;if(n&&s===n)return _t.set(t,null),null;let o=S__default.dirname(s);if(o===s)return _t.set(t,null),null;s=o;}}async function Ka(e){let t=S__default.resolve(e);for(;;){if(Q.existsSync(S__default.resolve(t,".git")))return t;let r=S__default.dirname(t);if(r===t)return null;t=r;}}function Ga(e){if(e.startsWith("#")||e.startsWith(".")||S__default.isAbsolute(e))return null;let t=e.split("/");return e.startsWith("@")?t.length<2?null:{packageName:`${t[0]}/${t[1]}`}:{packageName:t[0]}}function Ba(e,t){if(t===".")return e;let r=t.slice(2).replace(/\/\*$/,"");return r?`${e}/${r}`:e}async function Ft(e,t){let r=t.cwd??t.absoluteBaseUrl;if(e.startsWith("#")){let n=ct(e,r);if(n)return {path:n.path,source:"package_imports",matchedAlias:n.matchedAlias,matchedTarget:n.matchedTarget,emitMode:n.emitMode}}let s=await En(e,r);return s?{path:s.path,source:"workspace_package_exports",matchedAlias:s.matchedAlias,matchedTarget:s.matchedTarget,emitMode:s.emitMode}:Ya(e,t)}function Cn(e,t){return e.startsWith("#")?true:t?e.startsWith(`${t}/`):false}function Ja(e){return /^@[^/]+\/[^/]+(?:\/.*)?$/.test(e)}function Ya(e,t){let r=createMatchPath(t.absoluteBaseUrl,t.paths)(e,void 0,()=>true,[".ts",".tsx",".jsx",".js",".css"]);if(!r)return null;let s=Za(e,t.paths);return !s&&Ja(e)?null:{path:r,source:"tsconfig_paths",matchedAlias:s?.key??e,matchedTarget:s?.target??r,emitMode:"strip_extension"}}function Za(e,t){for(let[r,s]of Object.entries(t)){let n=Array.isArray(s)?s:[s],i=wr(e,r);if(i!==null)return {key:r,target:n[0]?.includes("*")&&i!==null?n[0].replace(/\*/g,i):n[0]}}return null}var im="@/components",om="@/lib/utils",am="app/globals.css",cm="tailwind.config.js";var Mt=cosmiconfig("components",{searchPlaces:["components.json"]});async function ut(e){let t=await rc(e);return t?(t.iconLibrary||(t.iconLibrary=t.style==="new-york"?"radix":"lucide"),await Dt(e,t)):null}async function Dt(e,t){t.registries={...H,...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());let s=await lt("utils",t.aliases.utils,e,r),n=await lt("components",t.aliases.components,e,r),i=t.aliases.ui?await lt("ui",t.aliases.ui,e,r):S__default.resolve(n??e,"ui"),o=t.aliases.lib?await lt("lib",t.aliases.lib,e,r):S__default.resolve(s??e,".."),c=t.aliases.hooks?await lt("hooks",t.aliases.hooks,e,r):S__default.resolve(n??e,"..","hooks");return tc(e,{components:n,utils:s,ui:i,lib:o,hooks:c}),d$1.parse({...t,resolvedPaths:{cwd:e,tailwindConfig:t.tailwind.config?S__default.resolve(e,t.tailwind.config):"",tailwindCss:S__default.resolve(e,t.tailwind.css),utils:s,components:n,ui:i,lib:o,hooks:c}})}async function lt(e,t,r,s){let n=await Ft(t,{...s,cwd:r});if(!n?.path||t.startsWith("#")&&n.path===S__default.resolve(r,t))return null;if(e!=="utils"&&(n.source==="package_imports"||n.source==="workspace_package_exports")){if(!n.matchedAlias.includes("*")&&/\/index\.[^/]+$/.test(n.path))return S__default.dirname(n.path);if(n.matchedAlias.includes("*")&&/\.[^/]+$/.test(n.path))return n.path.replace(/\.[^/]+$/,"")}return n.path}function tc(e,t){let r=["components","ui","lib","hooks","utils"].filter(s=>!t[s]);if(r.length)throw new Error([`Could not resolve the following aliases in ${T.info(e)}: ${T.info(r.join(", "))}.`,`Configure path aliases in ${T.info("tsconfig.json")} or imports in ${T.info("package.json")} for this workspace and try again.`].join(`
|
|
19
19
|
`))}async function rc(e){try{let t=await Mt.search(e);if(!t)return null;let r=c$1.parse(t.config);if(r.registries){for(let s of Object.keys(r.registries))if(s in H)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 ${T.info(r)}.`)}}async function kn(e$1){let t={};for(let s of Object.keys(e$1.aliases)){if(!sc(s,e$1))continue;let n=e$1.resolvedPaths[s],i=await Rr(e$1.resolvedPaths.cwd,n);if(!i){t[s]=e$1;continue}let o=await ut(i);if(!o)throw new Error([`Could not load the workspace config in ${T.info(i)}.`,`Add ${T.info("components.json")} to this workspace and configure its path aliases or package imports, then try again.`].join(`
|
|
20
|
-
`));t[s]=o;}let r=e.safeParse(t);return r.success?r.data:null}async function Rr(e,t){let r=Lt(e,t),s=S__default.relative(r,t),i=(await Wt.glob("**/package.json",{cwd:r,deep:3,ignore:["**/node_modules/**","**/dist/**","**/build/**","**/public/**"]})).map(o=>S__default.dirname(o)).find(o=>s.startsWith(o));return i?S__default.join(r,i):null}function sc(e,t){return Object.keys(t.resolvedPaths).filter(r=>r!=="utils").includes(e)}function Lt(e,t){let r=e.split(S__default.sep),s=t.split(S__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(S__default.sep)}async function Pn(e,t){return (await Y(e))?.tailwindVersion==="v4"?"new-york-v4":t}function
|
|
20
|
+
`));t[s]=o;}let r=e.safeParse(t);return r.success?r.data:null}async function Rr(e,t){let r=Lt(e,t),s=S__default.relative(r,t),i=(await Wt.glob("**/package.json",{cwd:r,deep:3,ignore:["**/node_modules/**","**/dist/**","**/build/**","**/public/**"],suppressErrors:true})).map(o=>S__default.dirname(o)).find(o=>s.startsWith(o));return i?S__default.join(r,i):null}function sc(e,t){return Object.keys(t.resolvedPaths).filter(r=>r!=="utils").includes(e)}function Lt(e,t){let r=e.split(S__default.sep),s=t.split(S__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(S__default.sep)}async function Pn(e,t){return (await Y(e))?.tailwindVersion==="v4"?"new-york-v4":t}function lm(e){return e===void 0?"base":c$2(e).base??"radix"}function $n(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:{...H}};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}var zt=["**/node_modules/**",".next","public","dist","build"],oc=z.object({compilerOptions:z.object({paths:z.record(z.string().or(z.array(z.string())))})});async function Y(e,t){let[r,s,n,i,o,c,a,f]=await Promise.all([Wt.glob("**/{next,vite,astro,app}.config.*|gatsby-config.*|composer.json|react-router.config.*",{cwd:e,deep:3,ignore:zt,suppressErrors:true}),Q.pathExists(S__default.resolve(e,"src")),fc(e),lc(e),cc(e,t?.configCssFile),Tn(e),An(e),J(e,false)]),l=await Q.pathExists(S__default.resolve(e,`${s?"src/":""}app`)),u={framework:G.manual,isSrcDir:s,isRSC:false,isTsx:n,tailwindConfigFile:i,tailwindCssFile:o,tailwindVersion:c,frameworkVersion:null,aliasPrefix:a.prefix};if(r.find(p=>p.startsWith("next.config."))?.length)return u.framework=l?G["next-app"]:G["next-pages"],u.isRSC=l,u.frameworkVersion=await ac(u.framework,f),u;if(r.find(p=>p.startsWith("astro.config."))?.length)return u.framework=G.astro,u;if(r.find(p=>p.startsWith("gatsby-config."))?.length)return u.framework=G.gatsby,u;if(r.find(p=>p.startsWith("composer.json"))?.length)return u.framework=G.laravel,u;if(Object.keys(f?.dependencies??{}).find(p=>p.startsWith("@remix-run/")))return u.framework=G.remix,u;if([...Object.keys(f?.dependencies??{}),...Object.keys(f?.devDependencies??{})].find(p=>p.startsWith("@tanstack/react-start")))return u.framework=G["tanstack-start"],u;if(r.find(p=>p.startsWith("react-router.config."))?.length)return u.framework=G["react-router"],u;if(r.find(p=>p.startsWith("vite.config."))?.length)return u.framework=G.vite,u;let d=r.find(p=>p.startsWith("app.config"));return d?.length&&(await Q.readFile(S__default.resolve(e,d),"utf8")).includes("defineConfig")?(u.framework=G.vite,u):(f?.dependencies?.expo&&(u.framework=G.expo),u)}async function ac(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 Tn(e){let[t,r]=await Promise.all([J(e,false),ut(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 cc(e,t){if(t){let i=S__default.resolve(e,t);if(await Q.pathExists(i))return t}let[r,s]=await Promise.all([Wt.glob(["**/*.css","**/*.scss"],{cwd:e,deep:5,ignore:zt,suppressErrors:true}),Tn(e)]);if(!r.length)return null;for(let i of r){let o=await Q.readFile(S__default.resolve(e,i),"utf8");if(o.includes('@import "tailwindcss"')||o.includes("@import 'tailwindcss'")||o.includes("@tailwind base"))return i}return null}async function lc(e){let t=await Wt.glob("tailwind.config.*",{cwd:e,deep:3,ignore:zt});return t.length?t[0]:null}async function uc(e){let t=await loadConfig(e),r=t?.resultType==="success"&&Object.entries(t.paths).length?t.paths:(await pc(e))?.compilerOptions.paths;if(!r||!Object.entries(r).length)return null;for(let[s,n]of Object.entries(r)){let i=Array.isArray(n)?n:[n];if(i.includes("./*")||i.includes("./src/*")||i.includes("./app/*")||i.includes("./resources/js/*"))return s.replace(/\/\*$/,"")??null}return Object.keys(r)?.[0].replace(/\/\*$/,"")??null}async function An(e){let t=await uc(e),r=bn(e);return r&&t?.startsWith("#")?{prefix:r,source:"package_imports"}:t?{prefix:t,source:"tsconfig_paths"}:r?{prefix:r,source:"package_imports"}:{prefix:null,source:null}}async function fc(e){return (await Wt.glob("tsconfig.*",{cwd:e,deep:1,ignore:zt})).length>0}async function pc(e){for(let t of ["tsconfig.json","tsconfig.web.json","tsconfig.app.json"]){let r=S__default.resolve(e,t);if(!await Q.pathExists(r))continue;let s=await Q.readFile(r,"utf8"),n;try{n=JSON.parse(dc(s));}catch{continue}let i=oc.safeParse(n);if(!i.error)return i.data}return null}function dc(e){let t="",r=false,s=false;for(let n=0;n<e.length;n++){let i=e[n],o=e[n+1];if(r){if(t+=i,s){s=false;continue}if(i==="\\"){s=true;continue}i==='"'&&(r=false);continue}if(i==='"'){r=true,t+=i;continue}if(i==="/"&&o==="/"){for(;n<e.length&&e[n]!==`
|
|
21
21
|
`;)n++;n<e.length&&(t+=e[n]);continue}if(i==="/"&&o==="*"){for(n+=2;n<e.length;){if(e[n]==="*"&&e[n+1]==="/"){n++;break}e[n]===`
|
|
22
22
|
`&&(t+=`
|
|
23
23
|
`),n++;}continue}if(i===","){let c=n+1;for(;c<e.length;){for(;/\s/.test(e[c]??"");)c++;if(e[c]==="/"&&e[c+1]==="/"){for(c+=2;c<e.length&&e[c]!==`
|
|
24
|
-
`&&e[c]!=="\r";)c++;continue}if(e[c]==="/"&&e[c+1]==="*"){for(c+=2;c<e.length&&!(e[c]==="*"&&e[c+1]==="/");)c++;c+=2;continue}break}if(e[c]==="}"||e[c]==="]")continue}t+=i;}return t}async function
|
|
24
|
+
`&&e[c]!=="\r";)c++;continue}if(e[c]==="/"&&e[c+1]==="*"){for(c+=2;c<e.length&&!(e[c]==="*"&&e[c+1]==="/");)c++;c+=2;continue}break}if(e[c]==="}"||e[c]==="]")continue}t+=i;}return t}async function Im(e,t=null){let[r,s,n]=await Promise.all([ut(e),t?Promise.resolve(t):Y(e),An(e)]);if(r)return r;if(!s||!s.tailwindCssFile||s.tailwindVersion==="v3"&&!s.tailwindConfigFile)return null;let i=n.source==="package_imports"?Rn(e):null;if(!s.aliasPrefix)return null;let o=hc(s.aliasPrefix,n.source==="package_imports"),c=n.source==="package_imports"&&i?mc({...o,components:i.components??o.components,ui:i.ui??o.ui,hooks:i.hooks??o.hooks,lib:i.lib??o.lib,utils:i.utils??o.utils}):o;if(!c.components||!c.utils)return null;let a={$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:c};return await Dt(e,a)}function hc(e,t=false){return t&&e==="#"?{components:"",ui:void 0,hooks:void 0,lib:void 0,utils:""}:{components:`${e}/components`,ui:`${e}/components/ui`,hooks:`${e}/hooks`,lib:`${e}/lib`,utils:`${e}/lib/utils`}}function mc(e){let t={...e};return !t.ui&&t.components&&(t.ui=`${t.components}/ui`),!t.lib&&t.utils.endsWith("/utils")&&(t.lib=t.utils.slice(0,-6)),!t.utils&&t.lib&&(t.utils=`${t.lib}/utils`),t}async function Ne(e){if(!e.resolvedPaths?.cwd)return "v3";let t=await Y(e.resolvedPaths.cwd);return t?.tailwindVersion?t.tailwindVersion:null}async function Em(e){let t=await ut(e);if(!t)return [];let s=(await Dt(e,t)).resolvedPaths.ui;if(!Q.existsSync(s))return [];let n=await Vt(),i=new Set(n?.map(c=>c.name)??[]);return (await promises.readdir(s)).filter(c=>/\.(tsx|jsx)$/.test(c)).map(c=>S__default.basename(c,S__default.extname(c))).filter(c=>i.has(c))}function jn(e,t,r={}){let{ignoreImports:s=false}=r,n=e.replace(/\r\n/g,`
|
|
25
25
|
`).trim(),i=t.replace(/\r\n/g,`
|
|
26
26
|
`).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,c=l=>l.replace(o,(u,d,p,h)=>{if(p.startsWith("."))return `${d}${p}${h}`;let m=p.split("/"),g=m[m.length-1];return `${d}@normalized/${g}${h}`}),a=c(n),f=c(i);return a===f}function _e(e){let t=S__default.basename(e);return /^\.env(\.|$)/.test(t)}function Ut(e){let t=[".env.local",".env",".env.development.local",".env.development"];for(let r of t){let s=S__default.join(e,r);if(existsSync(s))return s}return null}function Ue(e){let t=e.split(`
|
|
27
27
|
`),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(),c=n.substring(i+1).trim();o&&(r[o]=c.replace(/^["']|["']$/g,""));}return r}function Ht(e,t){let r=Ue(e),s=Ue(t),n=[];for(let i of Object.keys(s))i in r||n.push(i);return n}function Kt(e,t){let r=Ue(e),s=Ue(t),n=e.trimEnd();n&&!n.endsWith(`
|
|
@@ -31,7 +31,7 @@ ${t.errors.map(n=>` - ${n.path.join(".")}: ${n.message}`).join(`
|
|
|
31
31
|
`),n+`
|
|
32
32
|
`):n&&!n.endsWith(`
|
|
33
33
|
`)?n+`
|
|
34
|
-
`:n}function j(e,t){return yc({text:e,isSilent:t?.silent})}var wc=["components","ui","lib","hooks"];function Sr(e){return wc.includes(e)}function Gt(e){let t=e?.match(/^@([^/]+)\//);return t&&Sr(t[1])?t[1]:null}var Bt=async({sourceFile:e,config:t,isRemote:r})=>{let s=t.aliases?.utils,n=typeof s=="string"?bc(s):"@",i=n?`${n}/lib/utils`:"@/lib/utils";if(![".tsx",".ts",".jsx",".js"].includes(e.getExtension()))return e;for(let o of e.getImportStringLiterals()){let c=vc(o.getLiteralValue(),t,r);if(o.setLiteralValue(c),i===c||c==="@/lib/utils"){if(!o.getFirstAncestorByKind(SyntaxKind.ImportDeclaration)?.getNamedImports().some(l=>l.getName()==="cn")||!t.aliases.utils)continue;o.setLiteralValue(i===c?c.replace(i,t.aliases.utils):t.aliases.utils);}}return e};function vc(e,t,r=false){if(e=Rc(e,t),!e.startsWith("@/")&&!r)return e;if(r&&e.startsWith("@/")&&(e=e.replace(/^@\//,"@/registry/new-york/")),e==="@/registry")return t.aliases.components;if(!e.startsWith("@/registry/")){if(e==="@/lib/utils"&&t.aliases.utils)return t.aliases.utils;if(t.aliases.ui&&e.match(/^@\/components\/ui(?=\/|$)/))return e.replace(/^@\/components\/ui/,t.aliases.ui);if(t.aliases.components&&e.match(/^@\/components(?=\/|$)/))return e.replace(/^@\/components/,t.aliases.components);if(t.aliases.hooks&&e.match(/^@\/hooks(?=\/|$)/))return e.replace(/^@\/hooks/,t.aliases.hooks);if(t.aliases.lib&&e.match(/^@\/lib(?=\/|$)/))return e.replace(/^@\/lib/,t.aliases.lib);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.utils&&e.match(/^@\/registry\/(.+)\/lib\/utils$/)?t.aliases.utils: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)}function bc(e){if(e.startsWith("#"))return "";if(e.endsWith("/lib/utils"))return e.slice(0,-10);if(e.startsWith("@")){let[r,s]=e.split("/");return r&&s?`${r}/${s}`:e}let t=e.indexOf("/");return t===-1?e:e.slice(0,t)}function Rc(e,t){if(e==="#registry")return "@/registry";if(e.startsWith("#/"))return e.replace(/^#\//,"@/");if(e.startsWith("#registry/"))return e.replace(/^#registry\//,"@/registry/");for(let{alias:r,normalized:s}of Sc(t)){if(e===r)return s;if(e.startsWith(`${r}/`))return `${s}${e.slice(r.length)}`}return e}function Sc(e){return e.aliases?[{alias:e.aliases.ui,normalized:"@/components/ui"},{alias:e.aliases.components,normalized:"@/components"},{alias:e.aliases.hooks,normalized:"@/hooks"},{alias:e.aliases.lib,normalized:"@/lib"},{alias:e.aliases.utils,normalized:"@/lib/utils"}].filter(t=>typeof t.alias=="string"&&t.alias.startsWith("#")).sort((t,r)=>r.alias.length-t.alias.length):[]}var kc={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"]},Nn=async({sourceFile:e,config:t})=>{let r=e.getFullText();if(t.tsx)return r;let s=qt.parse(r,{parser:{parse:i=>parse(i,kc)}}),n=transformFromAstSync(s,r,{cloneInputAst:false,code:false,ast:true,plugins:[Cc],configFile:false});if(!n||!n.ast)throw new Error("Failed to transform JSX");return qt.print(n.ast).code};var $c=/^["']use client["']$/g,Jt=async({sourceFile:e,config:t})=>{if(t.rsc)return e;let r=e.getFirstChildByKind(SyntaxKind.ExpressionStatement);return r&&$c.test(r.getText())&&r.remove(),e};var Tc=new Set(["cn-font-heading"]),Ac=/\bcn-[a-z-]+\b/;function _n(e){return Ac.test(e)&&!Tc.has(e)}function Fn(e){return e.split(/\s+/).filter(t=>t.length>0&&!_n(t)).join(" ")}function Mn(e){return e.split(/\s+/).some(_n)}function Yt(e){let t=e.getLiteralValue();if(!Mn(t))return;let r=Fn(t);r!==t&&e.setLiteralValue(r);}function Ir(e){for(let t of e.getDescendantsOfKind(SyntaxKind.StringLiteral))Yt(t);for(let t of e.getDescendantsOfKind(SyntaxKind.NoSubstitutionTemplateLiteral))Yt(t);}function jc(e){let t=[];for(let r of e.getDescendantsOfKind(SyntaxKind.JsxAttribute)){let s=r.getNameNode().getText();if(s!=="className"&&s!=="classNames")continue;let n=r.getInitializer();if(n?.isKind(SyntaxKind.StringLiteral)){let i=n.getLiteralValue();if(Mn(i)){let o=Fn(i);o===""?t.push(r):o!==i&&n.setLiteralValue(o);}}n?.isKind(SyntaxKind.JsxExpression)&&Ir(n);}for(let r of t)r.remove();for(let r of e.getDescendantsOfKind(SyntaxKind.CallExpression))if(r.getExpression().getText()==="cva")for(let s of r.getArguments()){if(s.isKind(SyntaxKind.StringLiteral)){Yt(s);continue}if(s.isKind(SyntaxKind.NoSubstitutionTemplateLiteral)){Yt(s);continue}Ir(s);}for(let r of e.getDescendantsOfKind(SyntaxKind.CallExpression))r.getExpression().getText()==="mergeProps"&&Ir(r);}var Zt=async({sourceFile:e})=>(jc(e),e);var Xt=async({sourceFile:e,config:t})=>{if(!t.tailwind?.prefix)return e;let r=await Ne(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(`"${ye(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(`"${ye(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(`"${ye(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(`"${ye(o.getText()?.replace(/"|'/g,""),t.tailwind.prefix,r)}"`);}),i.isKind(SyntaxKind.StringLiteral)&&i.replaceWithText(`"${ye(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(c=>{c.replaceWithText(`"${ye(c.getText()?.replace(/"|'/g,""),t.tailwind.prefix,r)}"`);}),o.isKind(SyntaxKind.StringLiteral)&&o.replaceWithText(`"${ye(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(`"${ye(i.getText()?.replace(/"|'/g,""),t.tailwind.prefix,r)}"`);}});}),e};function ye(e,t="",r){return r==="v3"?e.split(" ").map(s=>{let[n,i,o]=b$1(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 Mc=new Project({compilerOptions:{}});async function Dc(e){let t=await promises.mkdtemp(S__default.join(tmpdir(),"shadcn-"));return S__default.join(t,e)}async function Ln(e,t=[Bt,Jt,a,Xt,d,c,Zt]){let r=await Dc(e.filename),s=Mc.createSourceFile(r,e.raw,{scriptKind:ScriptKind.TSX});for(let n of t)await n({sourceFile:s,...e});return e.transformJsx?await Nn({sourceFile:s,...e}):s.getText()}var Lc=["a","span","div","Link","label","Label"],Vn=async({sourceFile:e,config:t})=>{if(!t.style?.startsWith("base-"))return e;let r=10;for(let s=0;s<r;s++){let i=e.getDescendantsOfKind(SyntaxKind.JsxElement).filter(a=>a.getOpeningElement().getAttribute("asChild"));if(i.length===0)break;let o=i.filter(a=>!a.getDescendantsOfKind(SyntaxKind.JsxElement).some(l=>l.getOpeningElement().getAttribute("asChild"))),c=[];for(let a of o){let f=a.getOpeningElement(),l=f.getAttribute("asChild");if(!l)continue;let u=f.getTagNameNode().getText(),p=a.getJsxChildren().find(y=>y.getKind()===SyntaxKind.JsxElement||y.getKind()===SyntaxKind.JsxSelfClosingElement);if(!p){l.remove();continue}let h,m,g;if(p.getKind()===SyntaxKind.JsxSelfClosingElement){let y=p.asKindOrThrow(SyntaxKind.JsxSelfClosingElement);h=y.getTagNameNode().getText(),m=y.getAttributes().map(w=>w.getText()).join(" "),g="";}else {let y=p.asKindOrThrow(SyntaxKind.JsxElement),w=y.getOpeningElement();h=w.getTagNameNode().getText(),m=w.getAttributes().map(v=>v.getText()).join(" "),g=y.getJsxChildren().map(v=>v.getText()).join("");}let x=u==="Button"&&Lc.includes(h);c.push({parentElement:a,parentTagName:u,childTagName:h,childProps:m,childChildren:g,needsNativeButton:x});}for(let a of c.reverse()){let l=a.parentElement.getOpeningElement().getAttributes().filter(m=>m.getKind()===SyntaxKind.JsxAttribute?m.asKindOrThrow(SyntaxKind.JsxAttribute).getNameNode().getText()!=="asChild":true).map(m=>m.getText()).join(" "),u=a.childProps?`{<${a.childTagName} ${a.childProps} />}`:`{<${a.childTagName} />}`,d=l?`${l} `:"";d+=`render=${u}`,a.needsNativeButton&&(d+=" nativeButton={false}");let p=a.childChildren.trim()?`${a.childChildren}`:"",h=`<${a.parentTagName} ${d}>${p}</${a.parentTagName}>`;a.parentElement.replaceWithText(h);}}return e};var Wn=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);var Cr=[".ts",".tsx",".js",".jsx"],zc=new Set(["tailwindConfig","tailwindCss"]);async function kr(e,t,r){if(!e?.length)return {filesCreated:[],filesUpdated:[],filesSkipped:[]};r={overwrite:false,force:false,silent:false,interactive:true,isRemote:false,isWorkspace:false,...r};let s=j("Updating files.",{silent:r.silent})?.start(),[n,i]=await Promise.all([Y(t.resolvedPaths.cwd),t.tailwind.baseColor?tr(t.tailwind.baseColor):Promise.resolve(void 0)]),o=loadConfig(t.resolvedPaths.cwd),c$1=qc(r.plannedFiles??e,t,{isSrcDir:n?.isSrcDir,framework:n?.framework.name,path:r.path}),a$1=new Project({compilerOptions:{}}),f=[],l=[],u=[],d$1=[],p=null;for(let x=0;x<e.length;x++){let y=e[x];if(!y.content)continue;let w=Qt(y,t,{isSrcDir:n?.isSrcDir,framework:n?.framework.name,commonRoot:er(e.map(P=>P.path),y.path),path:r.path,fileIndex:x});if(!w)continue;let v=basename(y.path),b=S__default.dirname(w);if(t.tsx||(w=w.replace(/\.tsx?$/,P=>P===".tsx"?".jsx":".js")),_e(w)&&!existsSync(w)){let P=Ut(b);P&&(w=P);}let R=existsSync(w);if(y.type==="registry:lib"&&basename(y.path)==="utils.ts"&&n?.framework.name==="laravel"&&R){u.push(S__default.relative(t.resolvedPaths.cwd,w));continue}if(R&&statSync(w).isDirectory())throw new Error(`Cannot write to ${w}: path exists and is a directory. Please provide a file path instead.`);let E=y.type==="registry:file"||y.type==="registry:item",k=_e(w)||E?y.content:await Ln({filename:y.path,raw:y.content,config:t,baseColor:i,transformJsx:!t.tsx,isRemote:r.isRemote,supportedFontMarkers:r.supportedFontMarkers},[Bt,Jt,a,Xt,c,g$1,Vn,d,...zn(w,n,t)?[Wn]:[],f$1,Zt]);if(R&&!_e(w)){let P=await Bn({config:t,content:k,filePaths:c$1,project:a$1,projectInfo:n,resolvedPath:w,tsConfig:o}),D=await promises.readFile(w,"utf-8");if(jn(D,P,{ignoreImports:r.isWorkspace})){u.push(S__default.relative(t.resolvedPaths.cwd,w));continue}}if(R&&!r.overwrite&&!_e(w)){if(!r.interactive){u.push(S__default.relative(t.resolvedPaths.cwd,w));continue}s.stop(),r.rootSpinner&&r.rootSpinner.stop();let{overwrite:P}=await Wc({type:"confirm",name:"overwrite",message:`The file ${T.info(v)} already exists. Would you like to overwrite?`,initial:false});if(!P){u.push(S__default.relative(t.resolvedPaths.cwd,w)),r.rootSpinner&&r.rootSpinner.start();continue}s?.start(),r.rootSpinner&&r.rootSpinner.start();}if(zn(w,n,t)&&(w=w.replace(/middleware\.(ts|js)$/,"proxy.$1")),existsSync(b)||await promises.mkdir(b,{recursive:true}),_e(w)&&R){let P=await promises.readFile(w,"utf-8"),D=Kt(P,k);if(d$1=Ht(P,k),p=S__default.relative(t.resolvedPaths.cwd,w),!d$1.length){u.push(S__default.relative(t.resolvedPaths.cwd,w));continue}await promises.writeFile(w,D,"utf-8"),l.push(S__default.relative(t.resolvedPaths.cwd,w));continue}await promises.writeFile(w,k,"utf-8"),R?l.push(S__default.relative(t.resolvedPaths.cwd,w)):(f.push(S__default.relative(t.resolvedPaths.cwd,w)),_e(w)&&(d$1=Object.keys(Ue(k)),p=S__default.relative(t.resolvedPaths.cwd,w)));}let h=r.interactive?[...f,...l,...u]:[...f,...l],m=await Bc(h,t,c$1);if(l.push(...m),f=Array.from(new Set(f)),l=Array.from(new Set(l.filter(x=>!f.includes(x)))),u=Array.from(new Set(u)),!(f.length||l.length)&&!u.length&&s?.info("No files updated."),f.length){if(s?.succeed(`Created ${f.length} ${f.length===1?"file":"files"}:`),!r.silent)for(let x of f)I.log(` - ${x}`);}else s?.stop();if(l.length&&(j(`Updated ${l.length} ${l.length===1?"file":"files"}:`,{silent:r.silent})?.info(),!r.silent))for(let x of l)I.log(` - ${x}`);if(u.length&&(j(`Skipped ${u.length} ${u.length===1?"file":"files"}: (files might be identical, use --overwrite to overwrite)`,{silent:r.silent})?.info(),!r.silent))for(let x of u)I.log(` - ${x}`);if(d$1.length&&p&&(j(`Added the following variables to ${T.info(p)}:`)?.info(),!r.silent))for(let x of d$1)I.log(` ${T.success("+")} ${x}`);return {filesCreated:f,filesUpdated:l,filesSkipped:u}}function Qt(e,t,r){if(r.path){let i=S__default.isAbsolute(r.path)?r.path:S__default.join(t.resolvedPaths.cwd,r.path);if(/\.[^/\\]+$/.test(i)){if(r.fileIndex===0)return i}else {let c=S__default.basename(e.path);return S__default.join(i,c)}}if(e.target){if(e.target.startsWith("~/"))return S__default.join(t.resolvedPaths.cwd,e.target.replace("~/",""));let i=e.target,o=Uc(i,t);return o?.resolvedPath?o.resolvedPath:(o?.target&&(i=o.target),e.type==="registry:page"&&(i=Gc(i,r.framework),!i)?"":r.isSrcDir?S__default.join(t.resolvedPaths.cwd,"src",i.replace("src/","")):S__default.join(t.resolvedPaths.cwd,i.replace("src/","")))}let s=Hc(e,t),n=Kc(e.path,s);return S__default.join(s,n)}function Uc(e,t){let r=e.match(/^@([^/]+)\/(.+)$/);if(!r)return null;let[,s,n]=r;if(!Sr(s))return {target:`${s}/${n}`};let i=S__default.resolve(t.resolvedPaths[s]),o=S__default.resolve(i,n);if(o!==i&&!o.startsWith(`${i}${S__default.sep}`))throw new Error(`Invalid target path "${e}". Target paths using @${s}/ must stay within the ${s} alias root.`);return {resolvedPath:o}}function Hc(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 er(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 c=i.slice(0,o).join("/");if(r.some(f=>f!==s&&f.startsWith(c+"/")))return "/"+c}return "/"+n}function Kc(e,t){let r=e.replace(/^\/|\/$/g,""),s=t.replace(/^\/|\/$/g,""),n=r.split("/"),i=s.split("/"),o=i[i.length-1],c=n.findIndex(a=>a===o);return c===-1?n[n.length-1]:n.slice(c+1).join("/")}function Gc(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 Bc(e,t,r=e){let s=new Project({compilerOptions:{}}),n=await Y(t.resolvedPaths.cwd),i=loadConfig(t.resolvedPaths.cwd),o=[];if(!n||i.resultType==="failed")return [];for(let c of e){let a=S__default.resolve(t.resolvedPaths.cwd,c);if(!existsSync(a))continue;let f=await promises.readFile(a,"utf-8"),l=await promises.mkdtemp(S__default.join(tmpdir(),"shadcn-")),u=s.createSourceFile(S__default.join(l,basename(a)),f,{scriptKind:ScriptKind.TSX});if(![".tsx",".ts",".jsx",".js"].includes(u.getExtension()))continue;let d=await Bn({config:t,content:f,filePaths:r,project:s,projectInfo:n,resolvedPath:a,sourceFile:u,tsConfig:i});d!==f&&(await promises.writeFile(a,d,"utf-8"),o.push(c));}return o}function qc(e,t,r){return (e??[])?.filter(s=>!!s?.content).map((s,n)=>{let i=Qt(s,t,{isSrcDir:r.isSrcDir,framework:r.framework,commonRoot:er((e??[]).map(o=>o.path),s.path),path:r.path,fileIndex:n});return i?(t.tsx||(i=i.replace(/\.tsx?$/,o=>o===".tsx"?".jsx":".js")),S__default.relative(t.resolvedPaths.cwd,i)):null}).filter(s=>!!s)}async function Bn({content:e,resolvedPath:t,filePaths:r,config:s,projectInfo:n,tsConfig:i,project:o,sourceFile:c}){if(!n||i.resultType==="failed")return e;let a=S__default.extname(t);if(![".tsx",".ts",".jsx",".js"].includes(a))return e;let f=c===void 0?o.createSourceFile(S__default.join(tmpdir(),`shadcn-${Math.random().toString(36).slice(2)}${a||".tsx"}`),e,{scriptKind:ScriptKind.TSX,overwrite:true}):null,l=c??f;try{let u=!1;for(let d of l.getImportDeclarations()){let p=d.getModuleSpecifierValue();if(!Cn(p,n.aliasPrefix??null))continue;let h=await Jc(p,r,s,i);if(!h)continue;let m=Zc(h,s,n,t);!m||m===p||(d.setModuleSpecifier(m),u=!0);}return u?l.getFullText():e}finally{f&&o.removeSourceFile(f);}}async function Jc(e,t,r,s){let n=(await Ft(e,{...s,cwd:r.resolvedPaths.cwd}))?.path,i=!n&&!e.startsWith(".")?Qc(e,r):null;return !n&&!i?null:Yc(n??i,t,r)}function Yc(e,t,r,s=[".tsx",".ts",".js",".jsx",".css"]){let n=S__default.normalize(r.resolvedPaths.cwd),i=t.map(g=>g.split(S__default.sep).join(S__default.posix.sep)),o=new Set(i),c=S__default.extname(e),a=c!=="",f=a?e.slice(0,-c.length):e,u=S__default.relative(n,f).split(S__default.sep).join(S__default.posix.sep),d=a?[c]:s,p=new Set;for(let g of d){let x=f+g,y=S__default.posix.normalize(S__default.relative(n,x));(o.has(y)||existsSync(x))&&p.add(y);let w=S__default.join(f,`index${g}`),v=S__default.posix.normalize(S__default.relative(n,w));(o.has(v)||existsSync(w))&&p.add(v);}let h=S__default.basename(f);for(let g of i)d.some(x=>g.endsWith(`/${h}${x}`))&&p.add(g);return p.size===0?null:Array.from(p).sort((g,x)=>{let y=S__default.posix.extname(g),w=S__default.posix.extname(x),v=d.indexOf(y)-d.indexOf(w);if(v!==0)return v;let b=u&&g.startsWith(u)?-1:1,R=u&&x.startsWith(u)?-1:1;return b-R})[0]}function Zc(e,t,r,s){let n=S__default.normalize(S__default.join(t.resolvedPaths.cwd,e)),i=Object.entries(t.resolvedPaths).filter(([h,m])=>{if(!m||zc.has(h))return false;let g=S__default.normalize(m);if(n===g){let x=t.aliases[h];if(typeof x!="string"||!x.startsWith("#"))return true;let y=ct(x,t.resolvedPaths.cwd);return y!==null&&!y.matchedAlias.includes("*")}return n.startsWith(S__default.normalize(m+S__default.sep))}).sort((h,m)=>m[1].length-h[1].length);if(i.length===0)return null;let[o,c]=i[0],a=S__default.relative(c,n);a=a.split(S__default.sep).join("/");let f=o==="cwd"?r.aliasPrefix:t.aliases[o];if(!f)return null;if(f.startsWith("#")){let h=ct(f,t.resolvedPaths.cwd);if(h)return Xc(f,a,h)??(s?tl(s,n):null)}let l=S__default.posix.extname(a),u=Cr.includes(l)?"":l,d=a.slice(0,a.length-l.length);d.endsWith("/index")&&(d=d.slice(0,-6));let p=d===""?"":`/${d}`;return p=p.replace("/src",""),`${f}${p}${u}`}function Xc(e,t,r){let s=S__default.posix.extname(t),n=Cr.includes(s)&&r.emitMode==="strip_extension"?"":s,i=t?t.slice(0,t.length-s.length)+n:"";return r.matchedAlias.includes("*")?i?`${e}/${i}`:e:i===""||i==="index"?e:null}function Qc(e,t){let r=el(t);for(let s of r){if(e===s.alias||e===s.canonical)return s.rootPath;if(e.startsWith(`${s.alias}/`))return S__default.join(s.rootPath,e.slice(s.alias.length+1));if(e.startsWith(`${s.canonical}/`))return S__default.join(s.rootPath,e.slice(s.canonical.length+1))}return null}function el(e){return [{alias:e.aliases.ui,canonical:"@/components/ui",rootPath:e.resolvedPaths.ui},{alias:e.aliases.components,canonical:"@/components",rootPath:e.resolvedPaths.components},{alias:e.aliases.hooks,canonical:"@/hooks",rootPath:e.resolvedPaths.hooks},{alias:e.aliases.lib,canonical:"@/lib",rootPath:e.resolvedPaths.lib},{alias:e.aliases.utils,canonical:"@/lib/utils",rootPath:e.resolvedPaths.utils}].filter(t=>typeof t.alias=="string"&&typeof t.rootPath=="string").sort((t,r)=>r.alias.length-t.alias.length||r.canonical.length-t.canonical.length)}function tl(e,t){let r=S__default.relative(S__default.dirname(e),t);r=r.split(S__default.sep).join("/");let s=S__default.posix.extname(r),n=Cr.includes(s)?"":s,i=r.slice(0,r.length-s.length);return i.endsWith("/index")&&(i=i.slice(0,-6)),i.startsWith(".")||(i=`./${i}`),`${i}${n}`}function zn(e,t,r){let s=e===S__default.join(r.resolvedPaths.cwd,"middleware.ts")||e===S__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}new Project({compilerOptions:{}});function M(e){try{return new URL(e),!0}catch{return false}}function xe(e){return e.endsWith(".json")&&!M(e)}function Jn(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 Yn(e,t){if(!sl(t))return z.array(g).parse(e.flat().filter(Boolean));let r=await Y(t.resolvedPaths.cwd),s=new Map,n=z.array(g).parse(e.flat().filter(Boolean));return n.forEach(i=>{let o=Qt(i,t,{isSrcDir:r?.isSrcDir,framework:r?.framework.name,commonRoot:er(n.map(c=>c.path),i.path)});o&&s.set(o,i);}),Array.from(s.values())}function sl(e){return !!(e?.resolvedPaths?.cwd&&(e?.resolvedPaths?.ui||e?.resolvedPaths?.lib||e?.resolvedPaths?.components||e?.resolvedPaths?.hooks))}var nl=/^(?!.*--)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,37}[a-zA-Z0-9])?$/,il=/^[a-zA-Z0-9._-]+$/,ol=new Set([".",".."]),al=/[\x00-\x1F\x7F]/,cl=/\s/,ll=/^-/;function ft(e){if(M(e))return {scheme:"url",url:e};if(xe(e))return {scheme:"file",path:e};let{registry:t,item:r}=he(e);if(t)return {scheme:"namespace",namespace:t,item:r};let s=ul(e);return s||{scheme:"shadcn",item:e}}function rr(e){return ft(e).scheme==="github"}function pt(e){let t=e.indexOf("#"),r=t===-1?e:e.slice(0,t),s=t===-1?void 0:e.slice(t+1),n=r.split("/");if(n.length!==2)return null;let[i,o]=n;if(!Xn(i)||!Qn(o))return null;if(s!==void 0&&!ei(s))throw new $(`Invalid GitHub ref in registry source "${e}".`,{context:{source:e,ref:s},suggestion:"Use a non-empty branch, tag, or commit SHA without whitespace, control characters or leading dashes."});return {owner:i,repo:o,ref:s}}function Zn(e){return pt(e)!==null}function ul(e){let t=e.indexOf("#"),r=t===-1?e:e.slice(0,t),s=t===-1?void 0:e.slice(t+1),n=r.split("/");if(n.length<3)return null;let[i,o,...c]=n;if(!Xn(i)||!Qn(o))return null;let a=c.join("/");if(!a)return null;if(s!==void 0&&!ei(s))throw new $(`Invalid GitHub ref in item address "${e}".`,{context:{address:e,ref:s},suggestion:"Use a non-empty branch, tag, or commit SHA without whitespace, control characters or leading dashes."});return {scheme:"github",owner:i,repo:o,item:a,ref:s}}function Xn(e){return nl.test(e)}function Qn(e){return il.test(e)&&!ol.has(e)}function ei(e){return !!e&&!al.test(e)&&!cl.test(e)&&!ll.test(e)}var Ke=new AsyncLocalStorage,Pr={headers:{}};function ve(e,t={}){let r=Ke.getStore();return Ke.run({headers:{},env:t.env??r?.env},e)}function dt(e){let t=Ke.getStore()??Pr;t.headers={...t.headers,...e};}function ti(e){return (Ke.getStore()??Pr).headers[e]||{}}function sr(e){let t=Ke.getStore();return t?.env?t.env[e]:process.env[e]}function ri(){let e=Ke.getStore()??Pr;e.headers={};}function ht(e){return e.replace(/\${(\w+)}/g,(t,r)=>sr(r)||"")}function mt(e){let t=[],r=/\${(\w+)}/g,s;for(;(s=r.exec(e))!==null;)t.push(s[1]);return t}function dl(e){return e.style?e.style==="new-york"&&e.tailwind?.config===""?Pt:e.style:Pt}function ne(e){let t=$n({style:Pt,registries:H});return e?d$1.parse(Be(t,{...e,style:dl(e),registries:{...H,...e.registries}})):t}function hl(e){let t=new Set;return typeof e=="string"?mt(e).forEach(r=>t.add(r)):(mt(e.url).forEach(r=>t.add(r)),e.params&&Object.values(e.params).forEach(r=>{mt(r).forEach(s=>t.add(s));}),e.headers&&Object.values(e.headers).forEach(r=>{mt(r).forEach(s=>t.add(s));})),Array.from(t)}function si(e,t){let s=hl(t).filter(n=>!sr(n));if(s.length>0)throw new nt(e,s)}function Py(e,t){for(let r of e)Zn(r)||Ge(r,ne(t));ri();}var ni="{name}",nr="{style}",ii=/\${(\w+)}/g,oi="?",ml="&";function gl(e){return e.startsWith("./")||e.startsWith("/")}function Ge(e,t){let{registry:r,item:s}=he(e);if(!r){if(M(e)||xe(e)||gl(e)||rr(e))return null;r="@shadcn";}let i={...H,...t?.registries}[r];if(!i)throw new de(r);return si(r,i),{url:yl(s,i,t),headers:wl(i)}}function yl(e,t,r){if(typeof t=="string"){let n=t.replace(ni,e);return r?.style&&n.includes(nr)&&(n=n.replace(nr,r.style)),ht(n)}let s=t.url.replace(ni,e);return r?.style&&s.includes(nr)&&(s=s.replace(nr,r.style)),s=ht(s),t.params?xl(s,t.params):s}function wl(e){if(typeof e=="string"||!e.headers)return {};let t={};for(let[r,s]of Object.entries(e.headers)){let n=ht(s);vl(s,n)&&(t[r]=n);}return t}function xl(e,t){let r=new URLSearchParams;for(let[i,o]of Object.entries(t)){let c=ht(o);c&&r.append(i,c);}let s=r.toString();if(!s)return e;let n=e.includes(oi)?ml:oi;return `${e}${n}${s}`}function vl(e,t){let r=t.trim();if(!r)return false;if(e.includes("${")&&e.match(ii)){let n=e.replace(ii,"").trim();return r!==n}return true}function ir(e){if(M(e)){let t=new URL(e);return t.pathname.match(/\/chat\/b\//)&&!t.pathname.endsWith("/json")&&(t.pathname=`${t.pathname}/json`),t.toString()}return `${Ae}/${e}`}var Il=["HTTPS_PROXY","https_proxy","HTTP_PROXY","http_proxy"],El=["ALL_PROXY","all_proxy"],Cl={"socks:":5,"socks4:":4,"socks4a:":4,"socks5:":5,"socks5h:":5};function kl(e){let t;try{t=new URL(e);}catch{return}let r=Cl[t.protocol];if(!r)return;let s=Number(t.port)||1080;return {host:t.hostname,port:s,type:r,...t.username?{userId:decodeURIComponent(t.username)}:void 0,...t.password?{password:decodeURIComponent(t.password)}:void 0}}function Pl(e){return new Agent({connect:(t,r)=>{SocksClient.createConnection({proxy:e,command:"connect",destination:{host:t.hostname??"",port:Number(t.port)}}).then(({socket:s})=>r(null,s)).catch(s=>r(s,null));}})}function $l(e=process.env){for(let r of El){let s=e[r];if(!s)continue;let n=kl(s);if(n)return Pl(n)}return Il.some(r=>e[r])?new EnvHttpProxyAgent:void 0}var Tl=$l(),Al=5,jl=new Set(["accept","user-agent"]);async function or(e,t){let r=new URL(e).origin,s=new Headers(t?.headers),n=new URL(e).toString(),i=s;for(let o=0;o<=Al;o++){let c=await Ol(n,t,i);if(!(c.status>=300&&c.status<400&&c.headers.has("location")))return c;let f=c.headers.get("location"),l=new URL(f,n);if(l.origin!==r){let u=new Headers;s.forEach((d,p)=>{jl.has(p.toLowerCase())&&u.set(p,d);}),i=u;}else i=s;n=l.toString();}throw new Error(`Too many redirects while fetching ${e}`)}async function Ol(e,t,r){try{return await fetch(e,{...t,headers:r,redirect:"manual",dispatcher:Tl})}catch(s){let n=s instanceof TypeError?s.cause:void 0;if(n){let i=new Error(`Request to ${e} failed, reason: ${ai(n)}`);throw i.cause=n,i}throw s}}function ai(e){if(e instanceof Error&&"errors"in e){let t=e.errors;if(Array.isArray(t)&&t.length)return ai(t[0])}return e instanceof Error?e.message||e.code||"unknown error":String(e)}var $r=new Map;async function U(e,t={}){t={useCache:true,...t};try{return await Promise.all(e.map(async s=>{let n=ir(s),i=ti(n),o=Ml(n,i);if(t.useCache&&$r.has(o))return $r.get(o);let c=(async()=>{let a=new Headers({Accept:"application/vnd.shadcn.v1+json, application/json;q=0.9","User-Agent":"shadcn"});for(let[l,u]of Object.entries(i))a.set(l,u);let f=await or(n,{headers:a});if(!f.ok){let l;if(f.headers.get("content-type")?.includes("application/json")){let u=await f.json(),d=z.object({detail:z.string().optional(),title:z.string().optional(),message:z.string().optional(),error:z.string().optional()}).safeParse(u);d.success&&(l=d.data.detail||d.data.message,d.data.error&&(l=`[${d.data.error}] ${l}`));}throw f.status===401?new tt(n,l):f.status===404?new je(n,l):f.status===410?new $t(n,l):f.status===403?new rt(n,l):new st(n,f.status,l)}return f.json()})();return t.useCache&&$r.set(o,c),c}))}catch(r){throw r}}function Ml(e,t){let r=Object.entries(t).map(([n,i])=>[n.toLowerCase(),i]).sort(([n],[i])=>n.localeCompare(i)),s=createHash("sha256").update(JSON.stringify(r)).digest("hex");return `${e}:${s}`}async function li(e){try{let t=e;e.startsWith("~/")&&(t=S__default.join(homedir(),e.slice(2)));let r=S__default.resolve(t),s=await promises.readFile(r,"utf8"),n$1=JSON.parse(s);try{return n.parse(n$1)}catch(i){throw new W(e,i)}}catch(t){throw t instanceof Error&&(t.message.includes("ENOENT")||t.message.includes("no such file"))?new ae(e,t):t instanceof W?t:new ae(e,t)}}var Ll="https://github.com",ui=/^[a-fA-F0-9]{40}$/,Vl=15e3;async function fi(e,t={}){let r=e.ref??"HEAD";if(ui.test(r))return r.toLowerCase();let s=`${e.owner}/${e.repo}#${r}`;if(t.cache?.has(s))return t.cache.get(s);let n=Wl(e,r).catch(i=>{throw t.cache?.delete(s),i});return t.cache?.set(s,n),n}async function Wl(e,t){let r=`${Ll}/${e.owner}/${e.repo}.git`,s=zl(t),n;try{n=(await execa("git",["ls-remote","--symref","--",r,...s],{env:{GIT_TERMINAL_PROMPT:"0"},timeout:Vl})).stdout;}catch(o){throw Hl(e,t,r,o)}let i=Ul(n);for(let o of pi(t)){let c=i.get(o);if(c)return c}throw new K("registry.json",void 0,{message:`Could not resolve GitHub ref "${t}" for ${e.owner}/${e.repo}.`,context:{reason:"github-ref-resolution",source:di(e),ref:t,repoUrl:r},suggestion:'Use an existing branch, tag, or full commit SHA. For example: "owner/repo/item#main" or "owner/repo/item#v1.0.0".'})}function zl(e){return Array.from(new Set(pi(e)))}function pi(e){return e==="HEAD"?["HEAD"]:e.startsWith("refs/tags/")?[`${e}^{}`,e]:e.startsWith("refs/")?[e]:[`refs/heads/${e}`,`refs/tags/${e}^{}`,`refs/tags/${e}`,e]}function Ul(e){let t=new Map;for(let r of e.split(`
|
|
34
|
+
`:n}function j(e,t){return yc({text:e,isSilent:t?.silent})}var wc=["components","ui","lib","hooks"];function Sr(e){return wc.includes(e)}function Gt(e){let t=e?.match(/^@([^/]+)\//);return t&&Sr(t[1])?t[1]:null}var Bt=async({sourceFile:e,config:t,isRemote:r})=>{let s=t.aliases?.utils,n=typeof s=="string"?bc(s):"@",i=n?`${n}/lib/utils`:"@/lib/utils";if(![".tsx",".ts",".jsx",".js"].includes(e.getExtension()))return e;for(let o of e.getImportStringLiterals()){let c=vc(o.getLiteralValue(),t,r);if(o.setLiteralValue(c),i===c||c==="@/lib/utils"){if(!o.getFirstAncestorByKind(SyntaxKind.ImportDeclaration)?.getNamedImports().some(l=>l.getName()==="cn")||!t.aliases.utils)continue;o.setLiteralValue(i===c?c.replace(i,t.aliases.utils):t.aliases.utils);}}return e};function vc(e,t,r=false){if(e=Rc(e,t),!e.startsWith("@/")&&!r)return e;if(r&&e.startsWith("@/")&&(e=e.replace(/^@\//,"@/registry/new-york/")),e==="@/registry")return t.aliases.components;if(!e.startsWith("@/registry/")){if(e==="@/lib/utils"&&t.aliases.utils)return t.aliases.utils;if(t.aliases.ui&&e.match(/^@\/components\/ui(?=\/|$)/))return e.replace(/^@\/components\/ui/,t.aliases.ui);if(t.aliases.components&&e.match(/^@\/components(?=\/|$)/))return e.replace(/^@\/components/,t.aliases.components);if(t.aliases.hooks&&e.match(/^@\/hooks(?=\/|$)/))return e.replace(/^@\/hooks/,t.aliases.hooks);if(t.aliases.lib&&e.match(/^@\/lib(?=\/|$)/))return e.replace(/^@\/lib/,t.aliases.lib);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.utils&&e.match(/^@\/registry\/(.+)\/lib\/utils$/)?t.aliases.utils: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)}function bc(e){if(e.startsWith("#"))return "";if(e.endsWith("/lib/utils"))return e.slice(0,-10);if(e.startsWith("@")){let[r,s]=e.split("/");return r&&s?`${r}/${s}`:e}let t=e.indexOf("/");return t===-1?e:e.slice(0,t)}function Rc(e,t){if(e==="#registry")return "@/registry";if(e.startsWith("#/"))return e.replace(/^#\//,"@/");if(e.startsWith("#registry/"))return e.replace(/^#registry\//,"@/registry/");for(let{alias:r,normalized:s}of Sc(t)){if(e===r)return s;if(e.startsWith(`${r}/`))return `${s}${e.slice(r.length)}`}return e}function Sc(e){return e.aliases?[{alias:e.aliases.ui,normalized:"@/components/ui"},{alias:e.aliases.components,normalized:"@/components"},{alias:e.aliases.hooks,normalized:"@/hooks"},{alias:e.aliases.lib,normalized:"@/lib"},{alias:e.aliases.utils,normalized:"@/lib/utils"}].filter(t=>typeof t.alias=="string"&&t.alias.startsWith("#")).sort((t,r)=>r.alias.length-t.alias.length):[]}var kc={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"]},Nn=async({sourceFile:e,config:t})=>{let r=e.getFullText();if(t.tsx)return r;let s=qt.parse(r,{parser:{parse:i=>parse(i,kc)}}),n=transformFromAstSync(s,r,{cloneInputAst:false,code:false,ast:true,plugins:[Cc],configFile:false});if(!n||!n.ast)throw new Error("Failed to transform JSX");return qt.print(n.ast).code};var $c=/^["']use client["']$/g,Jt=async({sourceFile:e,config:t})=>{if(t.rsc)return e;let r=e.getFirstChildByKind(SyntaxKind.ExpressionStatement);return r&&$c.test(r.getText())&&r.remove(),e};var Tc=new Set(["cn-font-heading"]),Ac=/\bcn-[a-z-]+\b/;function _n(e){return Ac.test(e)&&!Tc.has(e)}function Fn(e){return e.split(/\s+/).filter(t=>t.length>0&&!_n(t)).join(" ")}function Mn(e){return e.split(/\s+/).some(_n)}function Yt(e){let t=e.getLiteralValue();if(!Mn(t))return;let r=Fn(t);r!==t&&e.setLiteralValue(r);}function Ir(e){for(let t of e.getDescendantsOfKind(SyntaxKind.StringLiteral))Yt(t);for(let t of e.getDescendantsOfKind(SyntaxKind.NoSubstitutionTemplateLiteral))Yt(t);}function jc(e){let t=[];for(let r of e.getDescendantsOfKind(SyntaxKind.JsxAttribute)){let s=r.getNameNode().getText();if(s!=="className"&&s!=="classNames")continue;let n=r.getInitializer();if(n?.isKind(SyntaxKind.StringLiteral)){let i=n.getLiteralValue();if(Mn(i)){let o=Fn(i);o===""?t.push(r):o!==i&&n.setLiteralValue(o);}}n?.isKind(SyntaxKind.JsxExpression)&&Ir(n);}for(let r of t)r.remove();for(let r of e.getDescendantsOfKind(SyntaxKind.CallExpression))if(r.getExpression().getText()==="cva")for(let s of r.getArguments()){if(s.isKind(SyntaxKind.StringLiteral)){Yt(s);continue}if(s.isKind(SyntaxKind.NoSubstitutionTemplateLiteral)){Yt(s);continue}Ir(s);}for(let r of e.getDescendantsOfKind(SyntaxKind.CallExpression))r.getExpression().getText()==="mergeProps"&&Ir(r);}var Zt=async({sourceFile:e})=>(jc(e),e);var Xt=async({sourceFile:e,config:t})=>{if(!t.tailwind?.prefix)return e;let r=await Ne(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(`"${ye(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(`"${ye(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(`"${ye(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(`"${ye(o.getText()?.replace(/"|'/g,""),t.tailwind.prefix,r)}"`);}),i.isKind(SyntaxKind.StringLiteral)&&i.replaceWithText(`"${ye(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(c=>{c.replaceWithText(`"${ye(c.getText()?.replace(/"|'/g,""),t.tailwind.prefix,r)}"`);}),o.isKind(SyntaxKind.StringLiteral)&&o.replaceWithText(`"${ye(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(`"${ye(i.getText()?.replace(/"|'/g,""),t.tailwind.prefix,r)}"`);}});}),e};function ye(e,t="",r){return r==="v3"?e.split(" ").map(s=>{let[n,i,o]=b$1(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 Mc=new Project({compilerOptions:{}});async function Dc(e){let t=await promises.mkdtemp(S__default.join(tmpdir(),"shadcn-"));return S__default.join(t,e)}async function Ln(e,t=[Bt,Jt,a,Xt,d,c,Zt]){let r=await Dc(e.filename),s=Mc.createSourceFile(r,e.raw,{scriptKind:ScriptKind.TSX});for(let n of t)await n({sourceFile:s,...e});return e.transformJsx?await Nn({sourceFile:s,...e}):s.getText()}var Lc=["a","span","div","Link","label","Label"],Vn=async({sourceFile:e,config:t})=>{if(!t.style?.startsWith("base-"))return e;let r=10;for(let s=0;s<r;s++){let i=e.getDescendantsOfKind(SyntaxKind.JsxElement).filter(a=>a.getOpeningElement().getAttribute("asChild"));if(i.length===0)break;let o=i.filter(a=>!a.getDescendantsOfKind(SyntaxKind.JsxElement).some(l=>l.getOpeningElement().getAttribute("asChild"))),c=[];for(let a of o){let f=a.getOpeningElement(),l=f.getAttribute("asChild");if(!l)continue;let u=f.getTagNameNode().getText(),p=a.getJsxChildren().find(y=>y.getKind()===SyntaxKind.JsxElement||y.getKind()===SyntaxKind.JsxSelfClosingElement);if(!p){l.remove();continue}let h,m,g;if(p.getKind()===SyntaxKind.JsxSelfClosingElement){let y=p.asKindOrThrow(SyntaxKind.JsxSelfClosingElement);h=y.getTagNameNode().getText(),m=y.getAttributes().map(w=>w.getText()).join(" "),g="";}else {let y=p.asKindOrThrow(SyntaxKind.JsxElement),w=y.getOpeningElement();h=w.getTagNameNode().getText(),m=w.getAttributes().map(v=>v.getText()).join(" "),g=y.getJsxChildren().map(v=>v.getText()).join("");}let x=u==="Button"&&Lc.includes(h);c.push({parentElement:a,parentTagName:u,childTagName:h,childProps:m,childChildren:g,needsNativeButton:x});}for(let a of c.reverse()){let l=a.parentElement.getOpeningElement().getAttributes().filter(m=>m.getKind()===SyntaxKind.JsxAttribute?m.asKindOrThrow(SyntaxKind.JsxAttribute).getNameNode().getText()!=="asChild":true).map(m=>m.getText()).join(" "),u=a.childProps?`{<${a.childTagName} ${a.childProps} />}`:`{<${a.childTagName} />}`,d=l?`${l} `:"";d+=`render=${u}`,a.needsNativeButton&&(d+=" nativeButton={false}");let p=a.childChildren.trim()?`${a.childChildren}`:"",h=`<${a.parentTagName} ${d}>${p}</${a.parentTagName}>`;a.parentElement.replaceWithText(h);}}return e};var Wn=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);var Cr=[".ts",".tsx",".js",".jsx"],zc=new Set(["tailwindConfig","tailwindCss"]);async function kr(e,t,r){if(!e?.length)return {filesCreated:[],filesUpdated:[],filesSkipped:[]};r={overwrite:false,force:false,silent:false,interactive:true,isRemote:false,isWorkspace:false,...r};let s=j("Updating files.",{silent:r.silent})?.start(),[n,i]=await Promise.all([Y(t.resolvedPaths.cwd),t.tailwind.baseColor?tr(t.tailwind.baseColor):Promise.resolve(void 0)]),o=loadConfig(t.resolvedPaths.cwd),c$1=qc(r.plannedFiles??e,t,{isSrcDir:n?.isSrcDir,framework:n?.framework.name,path:r.path}),a$1=new Project({compilerOptions:{}}),f=[],l=[],u=[],d$1=[],p=null;for(let x=0;x<e.length;x++){let y=e[x];if(!y.content)continue;let w=Qt(y,t,{isSrcDir:n?.isSrcDir,framework:n?.framework.name,commonRoot:er(e.map(P=>P.path),y.path),path:r.path,fileIndex:x});if(!w)continue;let v=basename(y.path),b=S__default.dirname(w);if(t.tsx||(w=w.replace(/\.tsx?$/,P=>P===".tsx"?".jsx":".js")),_e(w)&&!existsSync(w)){let P=Ut(b);P&&(w=P);}let R=existsSync(w);if(y.type==="registry:lib"&&basename(y.path)==="utils.ts"&&n?.framework.name==="laravel"&&R){u.push(S__default.relative(t.resolvedPaths.cwd,w));continue}if(R&&statSync(w).isDirectory())throw new Error(`Cannot write to ${w}: path exists and is a directory. Please provide a file path instead.`);let E=y.type==="registry:file"||y.type==="registry:item",k=_e(w)||E?y.content:await Ln({filename:y.path,raw:y.content,config:t,baseColor:i,transformJsx:!t.tsx,isRemote:r.isRemote,supportedFontMarkers:r.supportedFontMarkers},[Bt,Jt,a,Xt,c,g$1,Vn,d,...zn(w,n,t)?[Wn]:[],f$1,Zt]);if(R&&!_e(w)){let P=await Bn({config:t,content:k,filePaths:c$1,project:a$1,projectInfo:n,resolvedPath:w,tsConfig:o}),D=await promises.readFile(w,"utf-8");if(jn(D,P,{ignoreImports:r.isWorkspace})){u.push(S__default.relative(t.resolvedPaths.cwd,w));continue}}if(R&&!r.overwrite&&!_e(w)){if(!r.interactive){u.push(S__default.relative(t.resolvedPaths.cwd,w));continue}s.stop(),r.rootSpinner&&r.rootSpinner.stop();let{overwrite:P}=await Wc({type:"confirm",name:"overwrite",message:`The file ${T.info(v)} already exists. Would you like to overwrite?`,initial:false});if(!P){u.push(S__default.relative(t.resolvedPaths.cwd,w)),r.rootSpinner&&r.rootSpinner.start();continue}s?.start(),r.rootSpinner&&r.rootSpinner.start();}if(zn(w,n,t)&&(w=w.replace(/middleware\.(ts|js)$/,"proxy.$1")),existsSync(b)||await promises.mkdir(b,{recursive:true}),_e(w)&&R){let P=await promises.readFile(w,"utf-8"),D=Kt(P,k);if(d$1=Ht(P,k),p=S__default.relative(t.resolvedPaths.cwd,w),!d$1.length){u.push(S__default.relative(t.resolvedPaths.cwd,w));continue}await promises.writeFile(w,D,"utf-8"),l.push(S__default.relative(t.resolvedPaths.cwd,w));continue}await promises.writeFile(w,k,"utf-8"),R?l.push(S__default.relative(t.resolvedPaths.cwd,w)):(f.push(S__default.relative(t.resolvedPaths.cwd,w)),_e(w)&&(d$1=Object.keys(Ue(k)),p=S__default.relative(t.resolvedPaths.cwd,w)));}let h=r.interactive?[...f,...l,...u]:[...f,...l],m=await Bc(h,t,c$1);if(l.push(...m),f=Array.from(new Set(f)),l=Array.from(new Set(l.filter(x=>!f.includes(x)))),u=Array.from(new Set(u)),!(f.length||l.length)&&!u.length&&s?.info("No files updated."),f.length){if(s?.succeed(`Created ${f.length} ${f.length===1?"file":"files"}:`),!r.silent)for(let x of f)I.log(` - ${x}`);}else s?.stop();if(l.length&&(j(`Updated ${l.length} ${l.length===1?"file":"files"}:`,{silent:r.silent})?.info(),!r.silent))for(let x of l)I.log(` - ${x}`);if(u.length&&(j(`Skipped ${u.length} ${u.length===1?"file":"files"}: (files might be identical, use --overwrite to overwrite)`,{silent:r.silent})?.info(),!r.silent))for(let x of u)I.log(` - ${x}`);if(d$1.length&&p&&(j(`Added the following variables to ${T.info(p)}:`)?.info(),!r.silent))for(let x of d$1)I.log(` ${T.success("+")} ${x}`);return {filesCreated:f,filesUpdated:l,filesSkipped:u}}function Qt(e,t,r){if(r.path){let i=S__default.isAbsolute(r.path)?r.path:S__default.join(t.resolvedPaths.cwd,r.path);if(/\.[^/\\]+$/.test(i)){if(r.fileIndex===0)return i}else {let c=S__default.basename(e.path);return S__default.join(i,c)}}if(e.target){if(e.target.startsWith("~/"))return S__default.join(t.resolvedPaths.cwd,e.target.replace("~/",""));let i=e.target,o=Uc(i,t);return o?.resolvedPath?o.resolvedPath:(o?.target&&(i=o.target),e.type==="registry:page"&&(i=Gc(i,r.framework),!i)?"":r.isSrcDir?S__default.join(t.resolvedPaths.cwd,"src",i.replace("src/","")):S__default.join(t.resolvedPaths.cwd,i.replace("src/","")))}let s=Hc(e,t),n=Kc(e.path,s);return S__default.join(s,n)}function Uc(e,t){let r=e.match(/^@([^/]+)\/(.+)$/);if(!r)return null;let[,s,n]=r;if(!Sr(s))return {target:`${s}/${n}`};let i=S__default.resolve(t.resolvedPaths[s]),o=S__default.resolve(i,n);if(o!==i&&!o.startsWith(`${i}${S__default.sep}`))throw new Error(`Invalid target path "${e}". Target paths using @${s}/ must stay within the ${s} alias root.`);return {resolvedPath:o}}function Hc(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 er(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 c=i.slice(0,o).join("/");if(r.some(f=>f!==s&&f.startsWith(c+"/")))return "/"+c}return "/"+n}function Kc(e,t){let r=e.replace(/^\/|\/$/g,""),s=t.replace(/^\/|\/$/g,""),n=r.split("/"),i=s.split("/"),o=i[i.length-1],c=n.findIndex(a=>a===o);return c===-1?n[n.length-1]:n.slice(c+1).join("/")}function Gc(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 Bc(e,t,r=e){let s=new Project({compilerOptions:{}}),n=await Y(t.resolvedPaths.cwd),i=loadConfig(t.resolvedPaths.cwd),o=[];if(!n||i.resultType==="failed")return [];for(let c of e){let a=S__default.resolve(t.resolvedPaths.cwd,c);if(!existsSync(a))continue;let f=await promises.readFile(a,"utf-8"),l=await promises.mkdtemp(S__default.join(tmpdir(),"shadcn-")),u=s.createSourceFile(S__default.join(l,basename(a)),f,{scriptKind:ScriptKind.TSX});if(![".tsx",".ts",".jsx",".js"].includes(u.getExtension()))continue;let d=await Bn({config:t,content:f,filePaths:r,project:s,projectInfo:n,resolvedPath:a,sourceFile:u,tsConfig:i});d!==f&&(await promises.writeFile(a,d,"utf-8"),o.push(c));}return o}function qc(e,t,r){return (e??[])?.filter(s=>!!s?.content).map((s,n)=>{let i=Qt(s,t,{isSrcDir:r.isSrcDir,framework:r.framework,commonRoot:er((e??[]).map(o=>o.path),s.path),path:r.path,fileIndex:n});return i?(t.tsx||(i=i.replace(/\.tsx?$/,o=>o===".tsx"?".jsx":".js")),S__default.relative(t.resolvedPaths.cwd,i)):null}).filter(s=>!!s)}async function Bn({content:e,resolvedPath:t,filePaths:r,config:s,projectInfo:n,tsConfig:i,project:o,sourceFile:c}){if(!n||i.resultType==="failed")return e;let a=S__default.extname(t);if(![".tsx",".ts",".jsx",".js"].includes(a))return e;let f=c===void 0?o.createSourceFile(S__default.join(tmpdir(),`shadcn-${Math.random().toString(36).slice(2)}${a||".tsx"}`),e,{scriptKind:ScriptKind.TSX,overwrite:true}):null,l=c??f;try{let u=!1;for(let d of l.getImportDeclarations()){let p=d.getModuleSpecifierValue();if(!Cn(p,n.aliasPrefix??null))continue;let h=await Jc(p,r,s,i);if(!h)continue;let m=Zc(h,s,n,t);!m||m===p||(d.setModuleSpecifier(m),u=!0);}return u?l.getFullText():e}finally{f&&o.removeSourceFile(f);}}async function Jc(e,t,r,s){let n=(await Ft(e,{...s,cwd:r.resolvedPaths.cwd}))?.path,i=!n&&!e.startsWith(".")?Qc(e,r):null;return !n&&!i?null:Yc(n??i,t,r)}function Yc(e,t,r,s=[".tsx",".ts",".js",".jsx",".css"]){let n=S__default.normalize(r.resolvedPaths.cwd),i=t.map(g=>g.split(S__default.sep).join(S__default.posix.sep)),o=new Set(i),c=S__default.extname(e),a=c!=="",f=a?e.slice(0,-c.length):e,u=S__default.relative(n,f).split(S__default.sep).join(S__default.posix.sep),d=a?[c]:s,p=new Set;for(let g of d){let x=f+g,y=S__default.posix.normalize(S__default.relative(n,x));(o.has(y)||existsSync(x))&&p.add(y);let w=S__default.join(f,`index${g}`),v=S__default.posix.normalize(S__default.relative(n,w));(o.has(v)||existsSync(w))&&p.add(v);}let h=S__default.basename(f);for(let g of i)d.some(x=>g.endsWith(`/${h}${x}`))&&p.add(g);return p.size===0?null:Array.from(p).sort((g,x)=>{let y=S__default.posix.extname(g),w=S__default.posix.extname(x),v=d.indexOf(y)-d.indexOf(w);if(v!==0)return v;let b=u&&g.startsWith(u)?-1:1,R=u&&x.startsWith(u)?-1:1;return b-R})[0]}function Zc(e,t,r,s){let n=S__default.normalize(S__default.join(t.resolvedPaths.cwd,e)),i=Object.entries(t.resolvedPaths).filter(([h,m])=>{if(!m||zc.has(h))return false;let g=S__default.normalize(m);if(n===g){let x=t.aliases[h];if(typeof x!="string"||!x.startsWith("#"))return true;let y=ct(x,t.resolvedPaths.cwd);return y!==null&&!y.matchedAlias.includes("*")}return n.startsWith(S__default.normalize(m+S__default.sep))}).sort((h,m)=>m[1].length-h[1].length);if(i.length===0)return null;let[o,c]=i[0],a=S__default.relative(c,n);a=a.split(S__default.sep).join("/");let f=o==="cwd"?r.aliasPrefix:t.aliases[o];if(!f)return null;if(f.startsWith("#")){let h=ct(f,t.resolvedPaths.cwd);if(h)return Xc(f,a,h)??(s?tl(s,n):null)}let l=S__default.posix.extname(a),u=Cr.includes(l)?"":l,d=a.slice(0,a.length-l.length);d.endsWith("/index")&&(d=d.slice(0,-6));let p=d===""?"":`/${d}`;return p=p.replace("/src",""),`${f}${p}${u}`}function Xc(e,t,r){let s=S__default.posix.extname(t),n=Cr.includes(s)&&r.emitMode==="strip_extension"?"":s,i=t?t.slice(0,t.length-s.length)+n:"";return r.matchedAlias.includes("*")?i?`${e}/${i}`:e:i===""||i==="index"?e:null}function Qc(e,t){let r=el(t);for(let s of r){if(e===s.alias||e===s.canonical)return s.rootPath;if(e.startsWith(`${s.alias}/`))return S__default.join(s.rootPath,e.slice(s.alias.length+1));if(e.startsWith(`${s.canonical}/`))return S__default.join(s.rootPath,e.slice(s.canonical.length+1))}return null}function el(e){return [{alias:e.aliases.ui,canonical:"@/components/ui",rootPath:e.resolvedPaths.ui},{alias:e.aliases.components,canonical:"@/components",rootPath:e.resolvedPaths.components},{alias:e.aliases.hooks,canonical:"@/hooks",rootPath:e.resolvedPaths.hooks},{alias:e.aliases.lib,canonical:"@/lib",rootPath:e.resolvedPaths.lib},{alias:e.aliases.utils,canonical:"@/lib/utils",rootPath:e.resolvedPaths.utils}].filter(t=>typeof t.alias=="string"&&typeof t.rootPath=="string").sort((t,r)=>r.alias.length-t.alias.length||r.canonical.length-t.canonical.length)}function tl(e,t){let r=S__default.relative(S__default.dirname(e),t);r=r.split(S__default.sep).join("/");let s=S__default.posix.extname(r),n=Cr.includes(s)?"":s,i=r.slice(0,r.length-s.length);return i.endsWith("/index")&&(i=i.slice(0,-6)),i.startsWith(".")||(i=`./${i}`),`${i}${n}`}function zn(e,t,r){let s=e===S__default.join(r.resolvedPaths.cwd,"middleware.ts")||e===S__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}new Project({compilerOptions:{}});function M(e){try{return new URL(e),!0}catch{return false}}function xe(e){return e.endsWith(".json")&&!M(e)}function Jn(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 Yn(e,t){if(!sl(t))return z.array(g).parse(e.flat().filter(Boolean));let r=await Y(t.resolvedPaths.cwd),s=new Map,n=z.array(g).parse(e.flat().filter(Boolean));return n.forEach(i=>{let o=Qt(i,t,{isSrcDir:r?.isSrcDir,framework:r?.framework.name,commonRoot:er(n.map(c=>c.path),i.path)});o&&s.set(o,i);}),Array.from(s.values())}function sl(e){return !!(e?.resolvedPaths?.cwd&&(e?.resolvedPaths?.ui||e?.resolvedPaths?.lib||e?.resolvedPaths?.components||e?.resolvedPaths?.hooks))}var nl=/^(?!.*--)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,37}[a-zA-Z0-9])?$/,il=/^[a-zA-Z0-9._-]+$/,ol=new Set([".",".."]),al=/[\x00-\x1F\x7F]/,cl=/\s/,ll=/^-/;function ft(e){if(M(e))return {scheme:"url",url:e};if(xe(e))return {scheme:"file",path:e};let{registry:t,item:r}=he(e);if(t)return {scheme:"namespace",namespace:t,item:r};let s=ul(e);return s||{scheme:"shadcn",item:e}}function rr(e){return ft(e).scheme==="github"}function pt(e){let t=e.indexOf("#"),r=t===-1?e:e.slice(0,t),s=t===-1?void 0:e.slice(t+1),n=r.split("/");if(n.length!==2)return null;let[i,o]=n;if(!Xn(i)||!Qn(o))return null;if(s!==void 0&&!ei(s))throw new $(`Invalid GitHub ref in registry source "${e}".`,{context:{source:e,ref:s},suggestion:"Use a non-empty branch, tag, or commit SHA without whitespace, control characters or leading dashes."});return {owner:i,repo:o,ref:s}}function Zn(e){return pt(e)!==null}function ul(e){let t=e.indexOf("#"),r=t===-1?e:e.slice(0,t),s=t===-1?void 0:e.slice(t+1),n=r.split("/");if(n.length<3)return null;let[i,o,...c]=n;if(!Xn(i)||!Qn(o))return null;let a=c.join("/");if(!a)return null;if(s!==void 0&&!ei(s))throw new $(`Invalid GitHub ref in item address "${e}".`,{context:{address:e,ref:s},suggestion:"Use a non-empty branch, tag, or commit SHA without whitespace, control characters or leading dashes."});return {scheme:"github",owner:i,repo:o,item:a,ref:s}}function Xn(e){return nl.test(e)}function Qn(e){return il.test(e)&&!ol.has(e)}function ei(e){return !!e&&!al.test(e)&&!cl.test(e)&&!ll.test(e)}var Ke=new AsyncLocalStorage,Pr={headers:{}};function ve(e,t={}){let r=Ke.getStore();return Ke.run({headers:{},env:t.env??r?.env},e)}function dt(e){let t=Ke.getStore()??Pr;t.headers={...t.headers,...e};}function ti(e){return (Ke.getStore()??Pr).headers[e]||{}}function sr(e){let t=Ke.getStore();return t?.env?t.env[e]:process.env[e]}function ri(){let e=Ke.getStore()??Pr;e.headers={};}function ht(e){return e.replace(/\${(\w+)}/g,(t,r)=>sr(r)||"")}function mt(e){let t=[],r=/\${(\w+)}/g,s;for(;(s=r.exec(e))!==null;)t.push(s[1]);return t}function dl(e){return e.style?e.style==="new-york"&&e.tailwind?.config===""?Pt:e.style:Pt}function ne(e){let t=$n({style:Pt,registries:H});return e?d$1.parse(Be(t,{...e,style:dl(e),registries:{...H,...e.registries}})):t}function hl(e){let t=new Set;return typeof e=="string"?mt(e).forEach(r=>t.add(r)):(mt(e.url).forEach(r=>t.add(r)),e.params&&Object.values(e.params).forEach(r=>{mt(r).forEach(s=>t.add(s));}),e.headers&&Object.values(e.headers).forEach(r=>{mt(r).forEach(s=>t.add(s));})),Array.from(t)}function si(e,t){let s=hl(t).filter(n=>!sr(n));if(s.length>0)throw new nt(e,s)}function $y(e,t){for(let r of e)Zn(r)||Ge(r,ne(t));ri();}var ni="{name}",nr="{style}",ii=/\${(\w+)}/g,oi="?",ml="&";function gl(e){return e.startsWith("./")||e.startsWith("/")}function Ge(e,t){let{registry:r,item:s}=he(e);if(!r){if(M(e)||xe(e)||gl(e)||rr(e))return null;r="@shadcn";}let i={...H,...t?.registries}[r];if(!i)throw new de(r);return si(r,i),{url:yl(s,i,t),headers:wl(i)}}function yl(e,t,r){if(typeof t=="string"){let n=t.replace(ni,e);return r?.style&&n.includes(nr)&&(n=n.replace(nr,r.style)),ht(n)}let s=t.url.replace(ni,e);return r?.style&&s.includes(nr)&&(s=s.replace(nr,r.style)),s=ht(s),t.params?xl(s,t.params):s}function wl(e){if(typeof e=="string"||!e.headers)return {};let t={};for(let[r,s]of Object.entries(e.headers)){let n=ht(s);vl(s,n)&&(t[r]=n);}return t}function xl(e,t){let r=new URLSearchParams;for(let[i,o]of Object.entries(t)){let c=ht(o);c&&r.append(i,c);}let s=r.toString();if(!s)return e;let n=e.includes(oi)?ml:oi;return `${e}${n}${s}`}function vl(e,t){let r=t.trim();if(!r)return false;if(e.includes("${")&&e.match(ii)){let n=e.replace(ii,"").trim();return r!==n}return true}function ir(e){if(M(e)){let t=new URL(e);return t.pathname.match(/\/chat\/b\//)&&!t.pathname.endsWith("/json")&&(t.pathname=`${t.pathname}/json`),t.toString()}return `${Ae}/${e}`}var Il=["HTTPS_PROXY","https_proxy","HTTP_PROXY","http_proxy"],El=["ALL_PROXY","all_proxy"],Cl={"socks:":5,"socks4:":4,"socks4a:":4,"socks5:":5,"socks5h:":5};function kl(e){let t;try{t=new URL(e);}catch{return}let r=Cl[t.protocol];if(!r)return;let s=Number(t.port)||1080;return {host:t.hostname,port:s,type:r,...t.username?{userId:decodeURIComponent(t.username)}:void 0,...t.password?{password:decodeURIComponent(t.password)}:void 0}}function Pl(e){return new Agent({connect:(t,r)=>{SocksClient.createConnection({proxy:e,command:"connect",destination:{host:t.hostname??"",port:Number(t.port)}}).then(({socket:s})=>r(null,s)).catch(s=>r(s,null));}})}function $l(e=process.env){for(let r of El){let s=e[r];if(!s)continue;let n=kl(s);if(n)return Pl(n)}return Il.some(r=>e[r])?new EnvHttpProxyAgent:void 0}var Tl=$l(),Al=5,jl=new Set(["accept","user-agent"]);async function or(e,t){let r=new URL(e).origin,s=new Headers(t?.headers),n=new URL(e).toString(),i=s;for(let o=0;o<=Al;o++){let c=await Ol(n,t,i);if(!(c.status>=300&&c.status<400&&c.headers.has("location")))return c;let f=c.headers.get("location"),l=new URL(f,n);if(l.origin!==r){let u=new Headers;s.forEach((d,p)=>{jl.has(p.toLowerCase())&&u.set(p,d);}),i=u;}else i=s;n=l.toString();}throw new Error(`Too many redirects while fetching ${e}`)}async function Ol(e,t,r){try{return await fetch(e,{...t,headers:r,redirect:"manual",dispatcher:Tl})}catch(s){let n=s instanceof TypeError?s.cause:void 0;if(n){let i=new Error(`Request to ${e} failed, reason: ${ai(n)}`);throw i.cause=n,i}throw s}}function ai(e){if(e instanceof Error&&"errors"in e){let t=e.errors;if(Array.isArray(t)&&t.length)return ai(t[0])}return e instanceof Error?e.message||e.code||"unknown error":String(e)}var $r=new Map;async function U(e,t={}){t={useCache:true,...t};try{return await Promise.all(e.map(async s=>{let n=ir(s),i=ti(n),o=Ml(n,i);if(t.useCache&&$r.has(o))return $r.get(o);let c=(async()=>{let a=new Headers({Accept:"application/vnd.shadcn.v1+json, application/json;q=0.9","User-Agent":"shadcn"});for(let[l,u]of Object.entries(i))a.set(l,u);let f=await or(n,{headers:a});if(!f.ok){let l;if(f.headers.get("content-type")?.includes("application/json")){let u=await f.json(),d=z.object({detail:z.string().optional(),title:z.string().optional(),message:z.string().optional(),error:z.string().optional()}).safeParse(u);d.success&&(l=d.data.detail||d.data.message,d.data.error&&(l=`[${d.data.error}] ${l}`));}throw f.status===401?new tt(n,l):f.status===404?new je(n,l):f.status===410?new $t(n,l):f.status===403?new rt(n,l):new st(n,f.status,l)}return f.json()})();return t.useCache&&$r.set(o,c),c}))}catch(r){throw r}}function Ml(e,t){let r=Object.entries(t).map(([n,i])=>[n.toLowerCase(),i]).sort(([n],[i])=>n.localeCompare(i)),s=createHash("sha256").update(JSON.stringify(r)).digest("hex");return `${e}:${s}`}async function li(e){try{let t=e;e.startsWith("~/")&&(t=S__default.join(homedir(),e.slice(2)));let r=S__default.resolve(t),s=await promises.readFile(r,"utf8"),n$1=JSON.parse(s);try{return n.parse(n$1)}catch(i){throw new W(e,i)}}catch(t){throw t instanceof Error&&(t.message.includes("ENOENT")||t.message.includes("no such file"))?new ae(e,t):t instanceof W?t:new ae(e,t)}}var Ll="https://github.com",ui=/^[a-fA-F0-9]{40}$/,Vl=15e3;async function fi(e,t={}){let r=e.ref??"HEAD";if(ui.test(r))return r.toLowerCase();let s=`${e.owner}/${e.repo}#${r}`;if(t.cache?.has(s))return t.cache.get(s);let n=Wl(e,r).catch(i=>{throw t.cache?.delete(s),i});return t.cache?.set(s,n),n}async function Wl(e,t){let r=`${Ll}/${e.owner}/${e.repo}.git`,s=zl(t),n;try{n=(await execa("git",["ls-remote","--symref","--",r,...s],{env:{GIT_TERMINAL_PROMPT:"0"},timeout:Vl})).stdout;}catch(o){throw Hl(e,t,r,o)}let i=Ul(n);for(let o of pi(t)){let c=i.get(o);if(c)return c}throw new K("registry.json",void 0,{message:`Could not resolve GitHub ref "${t}" for ${e.owner}/${e.repo}.`,context:{reason:"github-ref-resolution",source:di(e),ref:t,repoUrl:r},suggestion:'Use an existing branch, tag, or full commit SHA. For example: "owner/repo/item#main" or "owner/repo/item#v1.0.0".'})}function zl(e){return Array.from(new Set(pi(e)))}function pi(e){return e==="HEAD"?["HEAD"]:e.startsWith("refs/tags/")?[`${e}^{}`,e]:e.startsWith("refs/")?[e]:[`refs/heads/${e}`,`refs/tags/${e}^{}`,`refs/tags/${e}`,e]}function Ul(e){let t=new Map;for(let r of e.split(`
|
|
35
35
|
`)){let s=r.trim();if(!s||s.startsWith("ref:"))continue;let[n,i]=s.split(/\s+/);n&&i&&ui.test(n)&&t.set(i,n.toLowerCase());}return t}function Hl(e,t,r,s){return new K("registry.json",s,{message:`Failed to resolve GitHub ref "${t}" for ${e.owner}/${e.repo}.`,context:{reason:"github-ref-resolution",source:di(e),ref:t,repoUrl:r},suggestion:Kl(s)})}function Kl(e){return Gl(e)?"Install Git and try again. Git is required to resolve GitHub registry refs.":Bl(e)?"GitHub ref resolution timed out. Check your network connection and try again.":"Check that the public GitHub repository exists and the ref is accessible."}function Gl(e){return typeof e=="object"&&e!==null&&"code"in e&&e.code==="ENOENT"}function Bl(e){return typeof e=="object"&&e!==null&&"timedOut"in e&&e.timedOut===true}function di(e){return `${e.owner}/${e.repo}#${e.ref??"HEAD"}`}async function Tr(e,t,r={}){let s=Ei(r.registryFile??"registry.json"),n=await gi(s,t,{source:r.source}),i=n.registry.items.find(o=>o.name===e);if(!i)throw new Oe(e);return ql(i,n,t)}async function Ar(e,t={}){let r=Ei(t.registryFile??"registry.json"),s=await gi(r,e,{source:t.source});return Jl(s)}async function gi(e,t,r={}){let s=await vi(e,t,r),n=bi(s,e);hi(n,e);let i={itemSources:new Map,itemSourcesByItem:new Map,firstIncludedFrom:new Map},o=!!n.include?.length;if(!o){let l=Ii(e);return n.items.forEach((u,d)=>{Si(u,e,l);let p={registryFile:e,registryDir:l,itemIndex:d};i.itemSources.set(u.name,p),i.itemSourcesByItem.set(u,p);}),mi(n.items,i.itemSourcesByItem),{registry:n,itemSources:i.itemSources,itemSourcesByItem:i.itemSourcesByItem,usesInclude:o}}if(S__default.posix.basename(e)!=="registry.json")throw new $(`Invalid source registry file at ${e}: registries that use include must be named registry.json.`,{registryFile:e});let c=await xi(e,n,t,i,[]);mi(c.items,i.itemSourcesByItem);let{include:a,...f}=c;return hi(f,e),{registry:f,itemSources:i.itemSources,itemSourcesByItem:i.itemSourcesByItem,usesInclude:o}}async function ql(e,t,r){let s={...yi(e,t.itemSourcesByItem),$schema:"https://ui.shadcn.com/schema/registry-item.json"};return await Promise.all((e.files??[]).map(async(n,i)=>{let o=s.files?.[i];if(!o)return;let c=t.itemSourcesByItem.get(e),a=wi(e,n.path,t.itemSourcesByItem);o.content=await Yl(e.name,n.path,a,c,r);})),n.parse(s)}function Jl(e){return {...e.registry,items:e.registry.items.map(t=>Zl(yi(t,e.itemSourcesByItem)))}}async function Yl(e,t,r,s,n){try{return await n.readText(r)}catch(i){let o=i instanceof K&&i.context?.reason==="github-source-file";throw new K(r,i,{message:`Failed to read file "${t}" for registry item "${e}" (${yt(s)}). Expected file at ${r}.`,context:{registryFile:s?.registryFile,itemIndex:s?.itemIndex,itemName:e,itemFilePath:t,sourcePath:r},suggestion:o&&i.suggestion?i.suggestion:"Make sure the file path is relative to the registry.json file that declares the item."})}}function yi(e,t){return {...e,files:e.files?.map(r=>({...r,path:Xl(e,r.path,t)}))}}function Zl(e){return {...e,files:e.files?.map(({content:t,...r})=>r)}}function wi(e,t,r){let s=r.get(e);return jr(s?.registryDir??".",t)}function Xl(e,t,r){let s=wi(e,t,r);return eu(".",s)}async function xi(e,t,r,s,n){if(Ri(e),n.length>=32)throw new $(`Registry include tree is too deep at ${e}. The maximum include depth is 32.`,{registryFile:e,context:{maxDepth:32},suggestion:"Flatten part of the registry include tree or reduce nested include depth."});if(n.includes(e))throw new $(tu([...n,e]),{registryFile:e});let i=n.at(-1)??e,o=s.firstIncludedFrom.get(e);if(o)throw new $(`Registry file included more than once: ${e}.
|
|
36
36
|
- first included from ${o}
|
|
37
37
|
- included again from ${i}
|
|
@@ -42,7 +42,7 @@ ${su(s.error)}`,{registryFile:t,cause:s.error,suggestion:"Update the registry.js
|
|
|
42
42
|
Rename one of these items so each name is unique across the resolved registry.`,{context:{itemName:s.name,firstSource:yt(i),secondSource:yt(o)}})}}function Ii(e){let t=S__default.posix.dirname(e);return t==="."?".":t}function jr(...e){let t=S__default.posix.normalize(S__default.posix.join(...e));return t==="."?"":t}function Ei(e){let t=S__default.posix.normalize(e);return t.startsWith("./")?t.slice(2):t}function eu(e,t){return S__default.posix.relative(e,t)||S__default.posix.basename(t)}function Ci(e,t="."){let r=S__default.posix.relative(t,e);return !!r&&!r.startsWith("..")&&!S__default.posix.isAbsolute(r)}function ki(e){return e.split(/[\\/]+/).includes("..")}function tu(e){return `Registry include cycle detected:
|
|
43
43
|
${e.map(t=>` - ${t}`).join(`
|
|
44
44
|
`)}`}function yt(e){return e?`${e.registryFile} items[${e.itemIndex}]`:"unknown source"}function ru(e,t){return t?`${t}/${e}`:e}function su(e){return e.errors.map(t=>` - ${t.path.length?t.path.join("."):"(root)"}: ${t.message}`).join(`
|
|
45
|
-
`)}var nu="https://raw.githubusercontent.com",iu=8;async function $i(e,t={}){t={...t,sourceCache:t.sourceCache??new Map};let r=Or(e,t);return Tr(e.item,r,{source:Fe(e)})}async function Ti(e,t={}){t={...t,sourceCache:t.sourceCache??new Map};let r=Or(e,t);return Ar(r,{source:Fe(e)})}async function fw(e,t={}){let r=Fe(e),s=`${r}/registry.json`,n=new Set,i=t.sourceCache??new Map,o={...t,sourceCache:i},c=Or(e,o),a={async readText(f){return f.endsWith("registry.json")&&n.add(`${r}/${f}`),c.readText(f)}};try{let f=await Ar(a,{source:r}),u=(await cu(f.items,iu,async(d,p)=>{try{return await Tr(d.name,a,{source:r}),null}catch(h){return Pi(h,{defaultRegistryFile:s,itemName:d.name,itemIndex:p,sourceLabel:r})}})).filter(d=>d!==null);return {valid:u.length===0,cwd:r,registryFiles:n.size,registryFilePaths:Array.from(n),items:f.items.length,diagnostics:u}}catch(f){return {valid:false,cwd:r,registryFiles:n.size||1,registryFilePaths:n.size?Array.from(n):[s],items:0,diagnostics:[Pi(f,{defaultRegistryFile:s,sourceLabel:r})]}}}function Or(e,t){let r=fi(e,{cache:t.sourceCache});return {async readText(s){let n=await r,i=au(e,n,s);if(t.useCache!==false&&t.sourceCache?.has(i))return t.sourceCache.get(i);let o=ou(i,s,e);return t.useCache!==false&&t.sourceCache?.set(i,o),o}}}async function ou(e,t,r){let s;try{s=await or(e,{headers:new Headers({"Accept-Encoding":"identity","User-Agent":"shadcn"})});}catch(n){throw new K(t,n,{message:`Failed to read GitHub source file "${t}" from ${Fe(r)}.`,context:{reason:"github-source-file",url:e,source:Fe(r),filePath:t},suggestion:"GitHub ref resolution succeeded, but the CLI could not fetch from raw.githubusercontent.com. Check that raw.githubusercontent.com is accessible from this network."})}if(!s.ok)throw new K(t,void 0,{message:`Failed to read GitHub source file "${t}" from ${Fe(r)}.`,context:{reason:"github-source-file",url:e,statusCode:s.status,source:Fe(r),filePath:t},suggestion:t==="registry.json"?"The GitHub repository and ref were resolved, but raw.githubusercontent.com did not return a root registry.json file. Check that the public repository has registry.json at its root and that raw.githubusercontent.com is accessible from this network.":"Check that the file path exists in the public GitHub repository."});return s.text()}function au(e,t,r){let s=r.split("/").map(n=>encodeURIComponent(n)).join("/");return `${nu}/${e.owner}/${e.repo}/${t}/${s}`}async function cu(e,t,r){let s=new Array(e.length),n=0,i=Math.min(t,e.length),o=Array.from({length:i},async()=>{for(;n<e.length;){let c=n++;s[c]=await r(e[c],c);}});return await Promise.all(o),s}function Fe(e){return `${e.owner}/${e.repo}#${e.ref??"HEAD"}`}function Pi(e,t){return e instanceof _?{registryFile:typeof e.context?.registryFile=="string"?`${t.sourceLabel}/${e.context.registryFile}`:t.defaultRegistryFile,itemName:t.itemName,itemIndex:typeof e.context?.itemIndex=="number"?e.context.itemIndex:t.itemIndex,filePath:typeof e.context?.itemFilePath=="string"?e.context.itemFilePath:typeof e.context?.filePath=="string"?e.context.filePath:void 0,includePath:typeof e.context?.includePath=="string"?e.context.includePath:void 0,message:e.message,suggestion:e.suggestion}:{registryFile:t.defaultRegistryFile,itemName:t.itemName,itemIndex:t.itemIndex,message:e instanceof Error?e.message:"Unknown error."}}async function _r(e,t,r){if(!e||(r={silent:false,tailwindVersion:"v3",...r},r.tailwindVersion==="v4"))return;let s=S__default.relative(t.resolvedPaths.cwd,t.resolvedPaths.tailwindConfig),n=j(`Updating ${T.info(s)}`,{silent:r.silent}).start(),i=await promises.readFile(t.resolvedPaths.tailwindConfig,"utf8"),o=await hu(i,e,t);await promises.writeFile(t.resolvedPaths.tailwindConfig,o,"utf8"),n?.succeed();}async function hu(e,t,r){let s=await ji(e,r),n=s.getDescendantsOfKind(SyntaxKind.ObjectLiteralExpression).find(o=>o.getProperties().some(c=>c.isKind(SyntaxKind.PropertyAssignment)&&c.getName()==="content"));if(!n)return e;let i=wu(n);return mu(n,{name:"darkMode",value:"class"},{quoteChar:i}),t.plugins?.forEach(o=>{yu(n,o);}),t.theme&&await gu(n,t.theme),s.getFullText()}function mu(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 gu(e,t){e.getProperty("theme")||e.addPropertyAssignment({name:"theme",initializer:"{}"}),Fr(e);let s=(e.getPropertyOrThrow("theme")?.asKindOrThrow(SyntaxKind.PropertyAssignment)).getInitializer();if(s?.isKind(SyntaxKind.ObjectLiteralExpression)){let n=s.getText(),i=await xu(n),o=Be(i,t,{arrayMerge:(a,f)=>f}),c=fu(o).replace(/\'\.\.\.(.*)\'/g,"...$1").replace(/\'\"/g,"'").replace(/\"\'/g,"'").replace(/\'\[/g,"[").replace(/\]\'/g,"]").replace(/\'\\\'/g,"'").replace(/\\\'/g,"'").replace(/\\\'\'/g,"'").replace(/\'\'/g,"'");s.replaceWithText(c);}Mr(e);}function yu(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 ji(e,t){let r=await promises.mkdtemp(S__default.join(tmpdir(),"shadcn-")),s=t?.resolvedPaths?.tailwindConfig||"tailwind.config.ts",n=S__default.join(r,`shadcn-${S__default.basename(s)}`);return new Project({compilerOptions:{}}).createSourceFile(n,e,{scriptKind:S__default.extname(s)===".ts"?ScriptKind.TS:ScriptKind.JS})}function wu(e){return e.getFirstDescendantByKind(SyntaxKind.StringLiteral)?.getQuoteKind()===QuoteKind.Single?"'":'"'}function Fr(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)?Fr(i.asKindOrThrow(SyntaxKind.ObjectLiteralExpression)):i&&i.isKind(SyntaxKind.ArrayLiteralExpression)&&Oi(i.asKindOrThrow(SyntaxKind.ArrayLiteralExpression));}}}function Oi(e){let t=e.getElements();for(let r=0;r<t.length;r++){let s=t[r];if(s.isKind(SyntaxKind.ObjectLiteralExpression))Fr(s.asKindOrThrow(SyntaxKind.ObjectLiteralExpression));else if(s.isKind(SyntaxKind.ArrayLiteralExpression))Oi(s.asKindOrThrow(SyntaxKind.ArrayLiteralExpression));else if(s.isKind(SyntaxKind.SpreadElement)){let n=s.getText();e.removeElement(r),e.insertElement(r,`"${n}"`);}}}function Mr(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)?Mr(i):i&&i.isKind(SyntaxKind.ArrayLiteralExpression)&&Ni(i.asKindOrThrow(SyntaxKind.ArrayLiteralExpression));}}}function Ni(e){let t=e.getElements();for(let r=0;r<t.length;r++){let s=t[r];if(s.isKind(SyntaxKind.ObjectLiteralExpression))Mr(s.asKindOrThrow(SyntaxKind.ObjectLiteralExpression));else if(s.isKind(SyntaxKind.ArrayLiteralExpression))Ni(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 xu(e){let r=(await ji(`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 ar(n)}throw new Error("Invalid input: not an object literal")}function ar(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]=ar(r.getInitializer()):r.getInitializer()?.isKind(SyntaxKind.ArrayLiteralExpression)?t[s]=_i(r.getInitializer()):t[s]=Dr(r.getInitializer());}return t}function _i(e){let t=[];for(let r of e.getElements())r.isKind(SyntaxKind.ObjectLiteralExpression)?t.push(ar(r.asKindOrThrow(SyntaxKind.ObjectLiteralExpression))):r.isKind(SyntaxKind.ArrayLiteralExpression)?t.push(_i(r.asKindOrThrow(SyntaxKind.ArrayLiteralExpression))):t.push(Dr(r));return t}function Dr(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(Dr);case SyntaxKind.ObjectLiteralExpression:return ar(e);default:return e.getText()}}function Fi(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 qe(e,t){let r={},s=[...e];if(!t?.registries)return dt({}),s;for(let n=0;n<s.length;n++){if(rr(s[n]))continue;let i=Ge(s[n],t);i&&(s[n]=i.url,Object.keys(i.headers).length>0&&(r[i.url]=i.headers));}return dt(r),s}async function be(e,t,r={}){return r={...r,sourceCache:r.sourceCache??new Map},await Promise.all(e.map(async n$1=>{let i=ft(n$1);if(i.scheme==="github")return $i(i,r);if(xe(n$1))return li(n$1);if(M(n$1)){let[a]=await U([n$1],r);try{return n.parse(a)}catch(f){throw new W(n$1,f)}}if(n$1.startsWith("@")&&t?.registries){let a=qe([n$1],t),[f]=await U(a,r);try{return n.parse(f)}catch(l){throw new W(n$1,l)}}let o=`styles/${t?.style??"new-york-v4"}/${n$1}.json`,[c]=await U([o],r);try{return n.parse(c)}catch(a){throw new W(n$1,a)}}))}m.extend({type:f,_source:z.string().optional(),font:l.optional(),config:z.any().optional()}).passthrough();async function Ye(e,t,r={}){r={useCache:true,...r,sourceCache:r.sourceCache??new Map};let s=[],n$1=[],i=[],o=Array.from(new Set(e)),c=await be(o,t,r),a=new Map;for(let y=0;y<c.length;y++)c[y]&&a.set(o[y],c[y]);for(let[y,w]of Array.from(a.entries())){let v={...w,_source:y};if(s.push(v),w.registryDependencies){let b=w.registryDependencies;if(t?.registries)b=qe(w.registryDependencies,t);else {let k=w.registryDependencies.filter(P=>P.startsWith("@"));if(k.length>0){let{registry:P}=he(k[0]);throw new de(P)}}let{items:R,registryNames:E}=await Je(b,t,r,new Set(o));n$1.push(...R),i.push(...E);}}if(s.push(...n$1),i.length>0){let y=Array.from(new Set(i)),w=y.filter(b=>!b.startsWith("@")),v=y.filter(b=>b.startsWith("@"));if(v.length>0){let b=await be(v,t,r);for(let R=0;R<b.length;R++){let k={...b[R],_source:v[R]};s.push(k);}}if(w.length>0){let b=await Vt();if(!b&&s.length===0)return null;if(b){w.includes("index")&&w.unshift("index");let R=[];for(let D of w){let X=await bu(D,t,r);R.push(...X);}let E=Array.from(new Set(R)),k=await U(E,r),P=z.array(n).parse(k);s.push(...P);}}}if(!s.length)return null;if(r.requireUniversal&&!s.every(y=>Jn(y)))throw new Error("A full project config is required to add non-universal registry items or dependencies.");if((o.includes("index")||i.includes("index"))&&t.tailwind.baseColor){let y=await Ru(t.tailwind.baseColor,t);y&&s.unshift(y);}let f=new Map;s.forEach(y=>{let w=y._source||y.name;f.set(y,w);}),s=Iu(s,f),s.sort((y,w)=>y.type==="registry:theme"&&w.type!=="registry:theme"?-1:y.type!=="registry:theme"&&w.type==="registry:theme"?1:0);let l={};s.forEach(y=>{l=Be(l,y.tailwind??{});});let u={};s.forEach(y=>{u=Be(u,y.cssVars??{});});let d={};s.forEach(y=>{d=Be(d,y.css??{});});let p="";s.forEach(y=>{y.docs&&(p+=`${y.docs}
|
|
45
|
+
`)}var nu="https://raw.githubusercontent.com",iu=8;async function $i(e,t={}){t={...t,sourceCache:t.sourceCache??new Map};let r=Or(e,t);return Tr(e.item,r,{source:Fe(e)})}async function Ti(e,t={}){t={...t,sourceCache:t.sourceCache??new Map};let r=Or(e,t);return Ar(r,{source:Fe(e)})}async function pw(e,t={}){let r=Fe(e),s=`${r}/registry.json`,n=new Set,i=t.sourceCache??new Map,o={...t,sourceCache:i},c=Or(e,o),a={async readText(f){return f.endsWith("registry.json")&&n.add(`${r}/${f}`),c.readText(f)}};try{let f=await Ar(a,{source:r}),u=(await cu(f.items,iu,async(d,p)=>{try{return await Tr(d.name,a,{source:r}),null}catch(h){return Pi(h,{defaultRegistryFile:s,itemName:d.name,itemIndex:p,sourceLabel:r})}})).filter(d=>d!==null);return {valid:u.length===0,cwd:r,registryFiles:n.size,registryFilePaths:Array.from(n),items:f.items.length,diagnostics:u}}catch(f){return {valid:false,cwd:r,registryFiles:n.size||1,registryFilePaths:n.size?Array.from(n):[s],items:0,diagnostics:[Pi(f,{defaultRegistryFile:s,sourceLabel:r})]}}}function Or(e,t){let r=fi(e,{cache:t.sourceCache});return {async readText(s){let n=await r,i=au(e,n,s);if(t.useCache!==false&&t.sourceCache?.has(i))return t.sourceCache.get(i);let o=ou(i,s,e);return t.useCache!==false&&t.sourceCache?.set(i,o),o}}}async function ou(e,t,r){let s;try{s=await or(e,{headers:new Headers({"Accept-Encoding":"identity","User-Agent":"shadcn"})});}catch(n){throw new K(t,n,{message:`Failed to read GitHub source file "${t}" from ${Fe(r)}.`,context:{reason:"github-source-file",url:e,source:Fe(r),filePath:t},suggestion:"GitHub ref resolution succeeded, but the CLI could not fetch from raw.githubusercontent.com. Check that raw.githubusercontent.com is accessible from this network."})}if(!s.ok)throw new K(t,void 0,{message:`Failed to read GitHub source file "${t}" from ${Fe(r)}.`,context:{reason:"github-source-file",url:e,statusCode:s.status,source:Fe(r),filePath:t},suggestion:t==="registry.json"?"The GitHub repository and ref were resolved, but raw.githubusercontent.com did not return a root registry.json file. Check that the public repository has registry.json at its root and that raw.githubusercontent.com is accessible from this network.":"Check that the file path exists in the public GitHub repository."});return s.text()}function au(e,t,r){let s=r.split("/").map(n=>encodeURIComponent(n)).join("/");return `${nu}/${e.owner}/${e.repo}/${t}/${s}`}async function cu(e,t,r){let s=new Array(e.length),n=0,i=Math.min(t,e.length),o=Array.from({length:i},async()=>{for(;n<e.length;){let c=n++;s[c]=await r(e[c],c);}});return await Promise.all(o),s}function Fe(e){return `${e.owner}/${e.repo}#${e.ref??"HEAD"}`}function Pi(e,t){return e instanceof _?{registryFile:typeof e.context?.registryFile=="string"?`${t.sourceLabel}/${e.context.registryFile}`:t.defaultRegistryFile,itemName:t.itemName,itemIndex:typeof e.context?.itemIndex=="number"?e.context.itemIndex:t.itemIndex,filePath:typeof e.context?.itemFilePath=="string"?e.context.itemFilePath:typeof e.context?.filePath=="string"?e.context.filePath:void 0,includePath:typeof e.context?.includePath=="string"?e.context.includePath:void 0,message:e.message,suggestion:e.suggestion}:{registryFile:t.defaultRegistryFile,itemName:t.itemName,itemIndex:t.itemIndex,message:e instanceof Error?e.message:"Unknown error."}}async function _r(e,t,r){if(!e||(r={silent:false,tailwindVersion:"v3",...r},r.tailwindVersion==="v4"))return;let s=S__default.relative(t.resolvedPaths.cwd,t.resolvedPaths.tailwindConfig),n=j(`Updating ${T.info(s)}`,{silent:r.silent}).start(),i=await promises.readFile(t.resolvedPaths.tailwindConfig,"utf8"),o=await hu(i,e,t);await promises.writeFile(t.resolvedPaths.tailwindConfig,o,"utf8"),n?.succeed();}async function hu(e,t,r){let s=await ji(e,r),n=s.getDescendantsOfKind(SyntaxKind.ObjectLiteralExpression).find(o=>o.getProperties().some(c=>c.isKind(SyntaxKind.PropertyAssignment)&&c.getName()==="content"));if(!n)return e;let i=wu(n);return mu(n,{name:"darkMode",value:"class"},{quoteChar:i}),t.plugins?.forEach(o=>{yu(n,o);}),t.theme&&await gu(n,t.theme),s.getFullText()}function mu(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 gu(e,t){e.getProperty("theme")||e.addPropertyAssignment({name:"theme",initializer:"{}"}),Fr(e);let s=(e.getPropertyOrThrow("theme")?.asKindOrThrow(SyntaxKind.PropertyAssignment)).getInitializer();if(s?.isKind(SyntaxKind.ObjectLiteralExpression)){let n=s.getText(),i=await xu(n),o=Be(i,t,{arrayMerge:(a,f)=>f}),c=fu(o).replace(/\'\.\.\.(.*)\'/g,"...$1").replace(/\'\"/g,"'").replace(/\"\'/g,"'").replace(/\'\[/g,"[").replace(/\]\'/g,"]").replace(/\'\\\'/g,"'").replace(/\\\'/g,"'").replace(/\\\'\'/g,"'").replace(/\'\'/g,"'");s.replaceWithText(c);}Mr(e);}function yu(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 ji(e,t){let r=await promises.mkdtemp(S__default.join(tmpdir(),"shadcn-")),s=t?.resolvedPaths?.tailwindConfig||"tailwind.config.ts",n=S__default.join(r,`shadcn-${S__default.basename(s)}`);return new Project({compilerOptions:{}}).createSourceFile(n,e,{scriptKind:S__default.extname(s)===".ts"?ScriptKind.TS:ScriptKind.JS})}function wu(e){return e.getFirstDescendantByKind(SyntaxKind.StringLiteral)?.getQuoteKind()===QuoteKind.Single?"'":'"'}function Fr(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)?Fr(i.asKindOrThrow(SyntaxKind.ObjectLiteralExpression)):i&&i.isKind(SyntaxKind.ArrayLiteralExpression)&&Oi(i.asKindOrThrow(SyntaxKind.ArrayLiteralExpression));}}}function Oi(e){let t=e.getElements();for(let r=0;r<t.length;r++){let s=t[r];if(s.isKind(SyntaxKind.ObjectLiteralExpression))Fr(s.asKindOrThrow(SyntaxKind.ObjectLiteralExpression));else if(s.isKind(SyntaxKind.ArrayLiteralExpression))Oi(s.asKindOrThrow(SyntaxKind.ArrayLiteralExpression));else if(s.isKind(SyntaxKind.SpreadElement)){let n=s.getText();e.removeElement(r),e.insertElement(r,`"${n}"`);}}}function Mr(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)?Mr(i):i&&i.isKind(SyntaxKind.ArrayLiteralExpression)&&Ni(i.asKindOrThrow(SyntaxKind.ArrayLiteralExpression));}}}function Ni(e){let t=e.getElements();for(let r=0;r<t.length;r++){let s=t[r];if(s.isKind(SyntaxKind.ObjectLiteralExpression))Mr(s.asKindOrThrow(SyntaxKind.ObjectLiteralExpression));else if(s.isKind(SyntaxKind.ArrayLiteralExpression))Ni(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 xu(e){let r=(await ji(`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 ar(n)}throw new Error("Invalid input: not an object literal")}function ar(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]=ar(r.getInitializer()):r.getInitializer()?.isKind(SyntaxKind.ArrayLiteralExpression)?t[s]=_i(r.getInitializer()):t[s]=Dr(r.getInitializer());}return t}function _i(e){let t=[];for(let r of e.getElements())r.isKind(SyntaxKind.ObjectLiteralExpression)?t.push(ar(r.asKindOrThrow(SyntaxKind.ObjectLiteralExpression))):r.isKind(SyntaxKind.ArrayLiteralExpression)?t.push(_i(r.asKindOrThrow(SyntaxKind.ArrayLiteralExpression))):t.push(Dr(r));return t}function Dr(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(Dr);case SyntaxKind.ObjectLiteralExpression:return ar(e);default:return e.getText()}}function Fi(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 qe(e,t){let r={},s=[...e];if(!t?.registries)return dt({}),s;for(let n=0;n<s.length;n++){if(rr(s[n]))continue;let i=Ge(s[n],t);i&&(s[n]=i.url,Object.keys(i.headers).length>0&&(r[i.url]=i.headers));}return dt(r),s}async function be(e,t,r={}){return r={...r,sourceCache:r.sourceCache??new Map},await Promise.all(e.map(async n$1=>{let i=ft(n$1);if(i.scheme==="github")return $i(i,r);if(xe(n$1))return li(n$1);if(M(n$1)){let[a]=await U([n$1],r);try{return n.parse(a)}catch(f){throw new W(n$1,f)}}if(n$1.startsWith("@")&&t?.registries){let a=qe([n$1],t),[f]=await U(a,r);try{return n.parse(f)}catch(l){throw new W(n$1,l)}}let o=`styles/${t?.style??"new-york-v4"}/${n$1}.json`,[c]=await U([o],r);try{return n.parse(c)}catch(a){throw new W(n$1,a)}}))}m.extend({type:f,_source:z.string().optional(),font:l.optional(),config:z.any().optional()}).passthrough();async function Ye(e,t,r={}){r={useCache:true,...r,sourceCache:r.sourceCache??new Map};let s=[],n$1=[],i=[],o=Array.from(new Set(e)),c=await be(o,t,r),a=new Map;for(let y=0;y<c.length;y++)c[y]&&a.set(o[y],c[y]);for(let[y,w]of Array.from(a.entries())){let v={...w,_source:y};if(s.push(v),w.registryDependencies){let b=w.registryDependencies;if(t?.registries)b=qe(w.registryDependencies,t);else {let k=w.registryDependencies.filter(P=>P.startsWith("@"));if(k.length>0){let{registry:P}=he(k[0]);throw new de(P)}}let{items:R,registryNames:E}=await Je(b,t,r,new Set(o));n$1.push(...R),i.push(...E);}}if(s.push(...n$1),i.length>0){let y=Array.from(new Set(i)),w=y.filter(b=>!b.startsWith("@")),v=y.filter(b=>b.startsWith("@"));if(v.length>0){let b=await be(v,t,r);for(let R=0;R<b.length;R++){let k={...b[R],_source:v[R]};s.push(k);}}if(w.length>0){let b=await Vt();if(!b&&s.length===0)return null;if(b){w.includes("index")&&w.unshift("index");let R=[];for(let D of w){let X=await bu(D,t,r);R.push(...X);}let E=Array.from(new Set(R)),k=await U(E,r),P=z.array(n).parse(k);s.push(...P);}}}if(!s.length)return null;if(r.requireUniversal&&!s.every(y=>Jn(y)))throw new Error("A full project config is required to add non-universal registry items or dependencies.");if((o.includes("index")||i.includes("index"))&&t.tailwind.baseColor){let y=await Ru(t.tailwind.baseColor,t);y&&s.unshift(y);}let f=new Map;s.forEach(y=>{let w=y._source||y.name;f.set(y,w);}),s=Iu(s,f),s.sort((y,w)=>y.type==="registry:theme"&&w.type!=="registry:theme"?-1:y.type!=="registry:theme"&&w.type==="registry:theme"?1:0);let l={};s.forEach(y=>{l=Be(l,y.tailwind??{});});let u={};s.forEach(y=>{u=Be(u,y.cssVars??{});});let d={};s.forEach(y=>{d=Be(d,y.css??{});});let p="";s.forEach(y=>{y.docs&&(p+=`${y.docs}
|
|
46
46
|
`);});let h={};s.forEach(y=>{h=Be(h,y.envVars??{});});let m=await Yn(s.map(y=>y.files??[]),t),g=s.filter(y=>y.type==="registry:font"&&y.font).map(y=>({...y,type:"registry:font",font:y.font})),x=v.parse({dependencies:Be.all(s.map(y=>y.dependencies??[])),devDependencies:Be.all(s.map(y=>y.devDependencies??[])),files:m,tailwind:l,cssVars:u,css:d,docs:p,fonts:g.length>0?g:void 0});return Object.keys(h).length>0&&(x.envVars=h),x}async function Je(e,t,r={},s=new Set){let n=[],i=[];for(let o of e){if(s.has(o))continue;if(s.add(o),ft(o).scheme==="github"){let[a]=await be([o],t,r);if(a&&(n.push({...a,_source:o}),a.registryDependencies)){let f=t?.registries?qe(a.registryDependencies,t):a.registryDependencies,l=await Je(f,t,r,s);n.push(...l.items),i.push(...l.registryNames);}}else if(M(o)||xe(o)){let[a]=await be([o],t,r);if(a&&(n.push({...a,_source:o}),a.registryDependencies)){let f=t?.registries?qe(a.registryDependencies,t):a.registryDependencies,l=await Je(f,t,r,s);n.push(...l.items),i.push(...l.registryNames);}}else if(o.startsWith("@")&&t?.registries){let{registry:a}=he(o);if(a&&!(a in t.registries))throw new de(a);let[f]=await be([o],t,r);if(f&&(n.push(f),f.registryDependencies)){let l=t?.registries?qe(f.registryDependencies,t):f.registryDependencies,u=await Je(l,t,r,s);n.push(...u.items),i.push(...u.registryNames);}}else if(i.push(o),t)try{let[a]=await be([o],t,r);if(a&&a.registryDependencies){let f=t?.registries?qe(a.registryDependencies,t):a.registryDependencies,l=await Je(f,t,r,s);n.push(...l.items),i.push(...l.registryNames);}}catch{}}return {items:n,registryNames:i}}async function bu(e,t,r={}){if(M(e))return [e];let{registryNames:s}=await Je([e],t,r,new Set),n=t.resolvedPaths?.cwd?await Pn(t.resolvedPaths.cwd,t.style):t.style,i=s.map(o=>ir(M(o)?o:`styles/${n}/${o}.json`));return Array.from(new Set(i))}async function Ru(e,t){let[r,s]=await Promise.all([tr(e),Ne(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,...Fi(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 fe(e,t){let r=t||e.name,s=createHash("sha256").update(r).digest("hex").substring(0,8);return `${e.name}::${s}`}function Su(e){let t=ft(e);if(t.scheme==="github")return {name:t.item,hash:fe({name:t.item},e)};if(M(e)){let n=new URL(e).pathname,i=n.match(/\/([^/]+)\.json$/),o=i?i[1]:S__default.basename(n,".json");return {name:o,hash:fe({name:o},e)}}if(xe(e)){let s=e.match(/\/([^/]+)\.json$/),n=s?s[1]:S__default.basename(e,".json");return {name:n,hash:fe({name:n},e)}}let{item:r}=he(e);return {name:r,hash:fe({name:r},e)}}function Iu(e,t){let r=new Map,s=new Map,n=new Map,i=new Map;e.forEach(f=>{let l=t.get(f)||f.name,u=fe(f,l);r.set(u,f),s.set(u,f),n.set(u,0),i.set(u,[]);});let o=new Map;e.forEach(f=>{let l=t.get(f)||f.name,u=fe(f,l);o.has(f.name)||o.set(f.name,[]),o.get(f.name).push(u),l!==f.name&&(o.has(l)||o.set(l,[]),o.get(l).push(u));}),e.forEach(f=>{let l=t.get(f)||f.name,u=fe(f,l);f.registryDependencies&&f.registryDependencies.forEach(d=>{let p,h=o.get(d)||[];if(h.length===1)p=h[0];else if(h.length>1)p=h[0];else {let{name:m}=Su(d),g=o.get(m)||[];g.length>0&&(p=g[0]);}p&&r.has(p)&&(i.get(p).push(u),n.set(u,n.get(u)+1));});});let c=[],a=[];for(n.forEach((f,l)=>{f===0&&c.push(l);});c.length>0;){let f=c.shift(),l=r.get(f);a.push(l),i.get(f).forEach(u=>{let d=n.get(u)-1;n.set(u,d),d===0&&c.push(u);});}if(a.length!==e.length){let f=new Set(a.map(l=>{let u=t.get(l)||l.name;return fe(l,u)}));e.forEach(l=>{let u=t.get(l)||l.name,d=fe(l,u);f.has(d)||a.push(l);});}return a}var Vr=["npm","yarn","yarn@berry","pnpm","pnpm@6","bun","deno"],Wr={"bun.lock":"bun","bun.lockb":"bun","deno.lock":"deno","pnpm-lock.yaml":"pnpm","pnpm-workspace.yaml":"pnpm","yarn.lock":"yarn","package-lock.json":"npm","npm-shrinkwrap.json":"npm"},zr={"node_modules/.deno/":"deno","node_modules/.pnpm/":"pnpm","node_modules/.yarn-state.yml":"yarn","node_modules/.yarn_integrity":"yarn","node_modules/.package-lock.json":"npm",".pnp.cjs":"yarn",".pnp.js":"yarn","bun.lock":"bun","bun.lockb":"bun"},Di={bun:"https://bun.sh",deno:"https://deno.com",pnpm:"https://pnpm.io/installation","pnpm@6":"https://pnpm.io/6.x/installation",yarn:"https://classic.yarnpkg.com/en/docs/install","yarn@berry":"https://yarnpkg.com/getting-started/install",npm:"https://docs.npmjs.com/cli/configuring-npm/install"};async function Ur(e,t){try{let r=await Vi__default.stat(e);return t==="file"?r.isFile():r.isDirectory()}catch{return false}}function*Cu(e=ie.cwd()){let t=S__default.resolve(e),{root:r}=S__default.parse(t);for(;t&&t!==r;)yield t,t=S__default.dirname(t);}async function Li(e,t){return !e||!Ur(e,"file")?null:await Pu(e,t)}async function Hr(e={}){let{cwd:t,strategies:r=["lockfile","packageManager-field","devEngines-field"],onUnknown:s}=e,n;if(typeof e.stopDir=="string"){let i=S__default.resolve(e.stopDir);n=o=>o===i;}else n=e.stopDir;for(let i of Cu(t)){for(let o of r)switch(o){case "lockfile":{for(let c of Object.keys(Wr))if(await Ur(S__default.join(i,c),"file")){let a=Wr[c],f=await Li(S__default.join(i,"package.json"),s);return f||{name:a,agent:a}}break}case "packageManager-field":case "devEngines-field":{let c=await Li(S__default.join(i,"package.json"),s);if(c)return c;break}case "install-metadata":{for(let c of Object.keys(zr)){let a=c.endsWith("/")?"dir":"file";if(await Ur(S__default.join(i,c),a)){let f=zr[c],l=f==="yarn"?$u(c)?"yarn":"yarn@berry":f;return {name:f,agent:l}}}break}}if(n?.(i))break}return null}function ku(e){let t=r=>r?.match(/\d+(\.\d+){0,2}/)?.[0]??r;if(typeof e.packageManager=="string"){let[r,s]=e.packageManager.replace(/^\^/,"").split("@");return {name:r,ver:t(s)}}if(typeof e.devEngines?.packageManager?.name=="string")return {name:e.devEngines.packageManager.name,ver:t(e.devEngines.packageManager.version)}}async function Pu(e,t){try{let r=JSON.parse(await Vi__default.readFile(e,"utf8")),s,n=ku(r);if(n){let i=n.name,o=n.ver,c=o;return i==="yarn"&&o&&Number.parseInt(o)>1?(s="yarn@berry",c="berry",{name:i,agent:s,version:c}):i==="pnpm"&&o&&Number.parseInt(o)<7?(s="pnpm@6",{name:i,agent:s,version:c}):Vr.includes(i)?(s=i,{name:i,agent:s,version:c}):t?.(r.packageManager)??null}}catch{}return null}function $u(e){return e.endsWith(".yarn_integrity")}var Ze=createRequire(import.meta.url),Au=Object.create,Hi=Object.defineProperty,ju=Object.getOwnPropertyDescriptor,Ou=Object.getOwnPropertyNames,Nu=Object.getPrototypeOf,_u=Object.prototype.hasOwnProperty,Se=(e=>typeof Ze<"u"?Ze:typeof Proxy<"u"?new Proxy(e,{get:(t,r)=>(typeof Ze<"u"?Ze:t)[r]}):e)(function(e){if(typeof Ze<"u")return Ze.apply(this,arguments);throw Error('Dynamic require of "'+e+'" is not supported')}),q=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),Fu=(e,t,r,s)=>{if(t&&typeof t=="object"||typeof t=="function")for(let n of Ou(t))!_u.call(e,n)&&n!==r&&Hi(e,n,{get:()=>t[n],enumerable:!(s=ju(t,n))||s.enumerable});return e},Mu=(e,t,r)=>(r=e!=null?Au(Nu(e)):{},Fu(Hi(r,"default",{value:e,enumerable:true}),e)),Du=q((e,t)=>{t.exports=i,i.sync=o;var r=Se("fs");function s(c,a){var f=a.pathExt!==void 0?a.pathExt:process.env.PATHEXT;if(!f||(f=f.split(";"),f.indexOf("")!==-1))return true;for(var l=0;l<f.length;l++){var u=f[l].toLowerCase();if(u&&c.substr(-u.length).toLowerCase()===u)return true}return false}function n(c,a,f){return !c.isSymbolicLink()&&!c.isFile()?false:s(a,f)}function i(c,a,f){r.stat(c,function(l,u){f(l,l?false:n(u,c,a));});}function o(c,a){return n(r.statSync(c),c,a)}}),Lu=q((e,t)=>{t.exports=s,s.sync=n;var r=Se("fs");function s(c,a,f){r.stat(c,function(l,u){f(l,l?false:i(u,a));});}function n(c,a){return i(r.statSync(c),a)}function i(c,a){return c.isFile()&&o(c,a)}function o(c,a){var f=c.mode,l=c.uid,u=c.gid,d=a.uid!==void 0?a.uid:process.getuid&&process.getuid(),p=a.gid!==void 0?a.gid:process.getgid&&process.getgid(),h=parseInt("100",8),m=parseInt("010",8),g=parseInt("001",8),x=h|m,y=f&g||f&m&&u===p||f&h&&l===d||f&x&&d===0;return y}}),Vu=q((e,t)=>{Se("fs");var s;process.platform==="win32"||global.TESTING_WINDOWS?s=Du():s=Lu(),t.exports=n,n.sync=i;function n(o,c,a){if(typeof c=="function"&&(a=c,c={}),!a){if(typeof Promise!="function")throw new TypeError("callback not provided");return new Promise(function(f,l){n(o,c||{},function(u,d){u?l(u):f(d);});})}s(o,c||{},function(f,l){f&&(f.code==="EACCES"||c&&c.ignoreErrors)&&(f=null,l=false),a(f,l);});}function i(o,c){try{return s.sync(o,c||{})}catch(a){if(c&&c.ignoreErrors||a.code==="EACCES")return false;throw a}}}),Wu=q((e,t)=>{var r=process.platform==="win32"||process.env.OSTYPE==="cygwin"||process.env.OSTYPE==="msys",s=Se("path"),n=r?";":":",i=Vu(),o=l=>Object.assign(new Error(`not found: ${l}`),{code:"ENOENT"}),c=(l,u)=>{let d=u.colon||n,p=l.match(/\//)||r&&l.match(/\\/)?[""]:[...r?[process.cwd()]:[],...(u.path||process.env.PATH||"").split(d)],h=r?u.pathExt||process.env.PATHEXT||".EXE;.CMD;.BAT;.COM":"",m=r?h.split(d):[""];return r&&l.indexOf(".")!==-1&&m[0]!==""&&m.unshift(""),{pathEnv:p,pathExt:m,pathExtExe:h}},a=(l,u,d)=>{typeof u=="function"&&(d=u,u={}),u||(u={});let{pathEnv:p,pathExt:h,pathExtExe:m}=c(l,u),g=[],x=w=>new Promise((v,b)=>{if(w===p.length)return u.all&&g.length?v(g):b(o(l));let R=p[w],E=/^".*"$/.test(R)?R.slice(1,-1):R,k=s.join(E,l),P=!E&&/^\.[\\\/]/.test(l)?l.slice(0,2)+k:k;v(y(P,w,0));}),y=(w,v,b)=>new Promise((R,E)=>{if(b===h.length)return R(x(v+1));let k=h[b];i(w+k,{pathExt:m},(P,D)=>{if(!P&&D)if(u.all)g.push(w+k);else return R(w+k);return R(y(w,v,b+1))});});return d?x(0).then(w=>d(null,w),d):x(0)},f=(l,u)=>{u=u||{};let{pathEnv:d,pathExt:p,pathExtExe:h}=c(l,u),m=[];for(let g=0;g<d.length;g++){let x=d[g],y=/^".*"$/.test(x)?x.slice(1,-1):x,w=s.join(y,l),v=!y&&/^\.[\\\/]/.test(l)?l.slice(0,2)+w:w;for(let b=0;b<p.length;b++){let R=v+p[b];try{if(i.sync(R,{pathExt:h}))if(u.all)m.push(R);else return R}catch{}}}if(u.all&&m.length)return m;if(u.nothrow)return null;throw o(l)};t.exports=a,a.sync=f;}),zu=q((e,t)=>{var r=(s={})=>{let n=s.env||process.env;return (s.platform||process.platform)!=="win32"?"PATH":Object.keys(n).reverse().find(i=>i.toUpperCase()==="PATH")||"Path"};t.exports=r,t.exports.default=r;}),Uu=q((e,t)=>{var r=Se("path"),s=Wu(),n=zu();function i(c,a){let f=c.options.env||process.env,l=process.cwd(),u=c.options.cwd!=null,d=u&&process.chdir!==void 0&&!process.chdir.disabled;if(d)try{process.chdir(c.options.cwd);}catch{}let p;try{p=s.sync(c.command,{path:f[n({env:f})],pathExt:a?r.delimiter:void 0});}catch{}finally{d&&process.chdir(l);}return p&&(p=r.resolve(u?c.options.cwd:"",p)),p}function o(c){return i(c)||i(c,true)}t.exports=o;}),Hu=q((e,t)=>{var r=/([()\][%!^"`<>&|;, *?])/g;function s(i){return i=i.replace(r,"^$1"),i}function n(i,o){return i=`${i}`,i=i.replace(/(\\*)"/g,'$1$1\\"'),i=i.replace(/(\\*)$/,"$1$1"),i=`"${i}"`,i=i.replace(r,"^$1"),o&&(i=i.replace(r,"^$1")),i}t.exports.command=s,t.exports.argument=n;}),Ku=q((e,t)=>{t.exports=/^#!(.*)/;}),Gu=q((e,t)=>{var r=Ku();t.exports=(s="")=>{let n=s.match(r);if(!n)return null;let[i,o]=n[0].replace(/#! ?/,"").split(" "),c=i.split("/").pop();return c==="env"?o:o?`${c} ${o}`:c};}),Bu=q((e,t)=>{var r=Se("fs"),s=Gu();function n(i){let o=Buffer.alloc(150),c;try{c=r.openSync(i,"r"),r.readSync(c,o,0,150,0),r.closeSync(c);}catch{}return s(o.toString())}t.exports=n;}),qu=q((e,t)=>{var r=Se("path"),s=Uu(),n=Hu(),i=Bu(),o=process.platform==="win32",c=/\.(?:com|exe)$/i,a=/node_modules[\\/].bin[\\/][^\\/]+\.cmd$/i;function f(d){d.file=s(d);let p=d.file&&i(d.file);return p?(d.args.unshift(d.file),d.command=p,s(d)):d.file}function l(d){if(!o)return d;let p=f(d),h=!c.test(p);if(d.options.forceShell||h){let m=a.test(p);d.command=r.normalize(d.command),d.command=n.command(d.command),d.args=d.args.map(x=>n.argument(x,m));let g=[d.command].concat(d.args).join(" ");d.args=["/d","/s","/c",`"${g}"`],d.command=process.env.comspec||"cmd.exe",d.options.windowsVerbatimArguments=true;}return d}function u(d,p,h){p&&!Array.isArray(p)&&(h=p,p=null),p=p?p.slice(0):[],h=Object.assign({},h);let m={command:d,args:p,options:h,file:void 0,original:{command:d,args:p}};return h.shell?m:l(m)}t.exports=u;}),Ju=q((e,t)=>{var r=process.platform==="win32";function s(c,a){return Object.assign(new Error(`${a} ${c.command} ENOENT`),{code:"ENOENT",errno:"ENOENT",syscall:`${a} ${c.command}`,path:c.command,spawnargs:c.args})}function n(c,a){if(!r)return;let f=c.emit;c.emit=function(l,u){if(l==="exit"){let d=i(u,a);if(d)return f.call(c,"error",d)}return f.apply(c,arguments)};}function i(c,a){return r&&c===1&&!a.file?s(a.original,"spawn"):null}function o(c,a){return r&&c===1&&!a.file?s(a.original,"spawnSync"):null}t.exports={hookChildProcess:n,verifyENOENT:i,verifyENOENTSync:o,notFoundError:s};}),Yu=q((e,t)=>{var r=Se("child_process"),s=qu(),n=Ju();function i(c,a,f){let l=s(c,a,f),u=r.spawn(l.command,l.args,l.options);return n.hookChildProcess(u,l),u}function o(c,a,f){let l=s(c,a,f),u=r.spawnSync(l.command,l.args,l.options);return u.error=u.error||n.verifyENOENTSync(u.status,l),u}t.exports=i,t.exports.spawn=i,t.exports.sync=o,t.exports._parse=s,t.exports._enoent=n;}),rf=/^path$/i,zi={key:"PATH",value:""};function sf(e){for(let t in e){if(!Object.prototype.hasOwnProperty.call(e,t)||!rf.test(t))continue;let r=e[t];return r?{key:t,value:r}:zi}return zi}function nf(e,t){let r=t.value.split(delimiter),s=e,n;do r.push(resolve(s,"node_modules",".bin")),n=s,s=dirname(s);while(s!==n);return {key:t.key,value:r.join(delimiter)}}function of(e,t){let r={...process.env,...t},s=nf(e,sf(r));return r[s.key]=s.value,r}var cf=e=>{let t=e.length,r=new PassThrough,s=()=>{--t===0&&r.emit("end");};for(let n of e)n.pipe(r,{end:false}),n.on("end",s);return r},lf=Mu(Yu()),Ui=class extends Error{result;output;get exitCode(){if(this.result.exitCode!==null)return this.result.exitCode}constructor(e,t){super(`Process exited with non-zero status (${e.exitCode})`),this.result=e,this.output=t;}},ff={timeout:void 0,persist:false},pf={windowsHide:true};function df(e,t){return {command:normalize(e),args:t??[]}}function hf(e){let t=new AbortController;for(let r of e){if(r.aborted)return t.abort(),r;let s=()=>{t.abort(r.reason);};r.addEventListener("abort",s,{signal:t.signal});}return t.signal}var mf=class{_process;_aborted=false;_options;_command;_args;_resolveClose;_processClosed;_thrownError;get process(){return this._process}get pid(){return this._process?.pid}get exitCode(){if(this._process&&this._process.exitCode!==null)return this._process.exitCode}constructor(e,t,r){this._options={...ff,...r},this._command=e,this._args=t??[],this._processClosed=new Promise(s=>{this._resolveClose=s;});}kill(e){return this._process?.kill(e)===true}get aborted(){return this._aborted}get killed(){return this._process?.killed===true}pipe(e,t,r){return gf(e,t,{...r,stdin:this})}async*[Symbol.asyncIterator](){let e=this._process;if(!e)return;let t=[];this._streamErr&&t.push(this._streamErr),this._streamOut&&t.push(this._streamOut);let r=cf(t),s=uf.createInterface({input:r});for await(let n of s)yield n.toString();if(await this._processClosed,e.removeAllListeners(),this._thrownError)throw this._thrownError;if(this._options?.throwOnError&&this.exitCode!==0&&this.exitCode!==void 0)throw new Ui(this)}async _waitForOutput(){let e=this._process;if(!e)throw new Error("No process was started");let t="",r="";if(this._streamOut)for await(let n of this._streamOut)r+=n.toString();if(this._streamErr)for await(let n of this._streamErr)t+=n.toString();if(await this._processClosed,this._options?.stdin&&await this._options.stdin,e.removeAllListeners(),this._thrownError)throw this._thrownError;let s={stderr:t,stdout:r,exitCode:this.exitCode};if(this._options.throwOnError&&this.exitCode!==0&&this.exitCode!==void 0)throw new Ui(this,s);return s}then(e,t){return this._waitForOutput().then(e,t)}_streamOut;_streamErr;spawn(){let e=cwd(),t=this._options,r={...pf,...t.nodeOptions},s=[];this._resetState(),t.timeout!==void 0&&s.push(AbortSignal.timeout(t.timeout)),t.signal!==void 0&&s.push(t.signal),t.persist===true&&(r.detached=true),s.length>0&&(r.signal=hf(s)),r.env=of(e,r.env);let{command:n,args:i}=df(this._command,this._args),o=(0, lf._parse)(n,i,r),c=spawn(o.command,o.args,o.options);if(c.stderr&&(this._streamErr=c.stderr),c.stdout&&(this._streamOut=c.stdout),this._process=c,c.once("error",this._onError),c.once("close",this._onClose),t.stdin!==void 0&&c.stdin&&t.stdin.process){let{stdout:a}=t.stdin.process;a&&a.pipe(c.stdin);}}_resetState(){this._aborted=false,this._processClosed=new Promise(e=>{this._resolveClose=e;}),this._thrownError=void 0;}_onError=e=>{if(e.name==="AbortError"&&(!(e.cause instanceof Error)||e.cause.name!=="TimeoutError")){this._aborted=true;return}this._thrownError=e;};_onClose=()=>{this._resolveClose&&this._resolveClose();}},Kr=(e,t,r)=>{let s=new mf(e,t,r);return s.spawn(),s},gf=Kr;function Os(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var Br={},qr,Gi;function te(){if(Gi)return qr;Gi=1;let e,t,r,s,n=true;typeof process<"u"&&({FORCE_COLOR:e,NODE_DISABLE_COLORS:t,NO_COLOR:r,TERM:s}=process.env||{},n=process.stdout&&process.stdout.isTTY);let i={enabled:!t&&r==null&&s!=="dumb"&&(e!=null&&e!=="0"||n),reset:a(0,0),bold:a(1,22),dim:a(2,22),italic:a(3,23),underline:a(4,24),inverse:a(7,27),hidden:a(8,28),strikethrough:a(9,29),black:a(30,39),red:a(31,39),green:a(32,39),yellow:a(33,39),blue:a(34,39),magenta:a(35,39),cyan:a(36,39),white:a(37,39),gray:a(90,39),grey:a(90,39),bgBlack:a(40,49),bgRed:a(41,49),bgGreen:a(42,49),bgYellow:a(43,49),bgBlue:a(44,49),bgMagenta:a(45,49),bgCyan:a(46,49),bgWhite:a(47,49)};function o(f,l){let u=0,d,p="",h="";for(;u<f.length;u++)d=f[u],p+=d.open,h+=d.close,~l.indexOf(d.close)&&(l=l.replace(d.rgx,d.close+d.open));return p+l+h}function c(f,l){let u={has:f,keys:l};return u.reset=i.reset.bind(u),u.bold=i.bold.bind(u),u.dim=i.dim.bind(u),u.italic=i.italic.bind(u),u.underline=i.underline.bind(u),u.inverse=i.inverse.bind(u),u.hidden=i.hidden.bind(u),u.strikethrough=i.strikethrough.bind(u),u.black=i.black.bind(u),u.red=i.red.bind(u),u.green=i.green.bind(u),u.yellow=i.yellow.bind(u),u.blue=i.blue.bind(u),u.magenta=i.magenta.bind(u),u.cyan=i.cyan.bind(u),u.white=i.white.bind(u),u.gray=i.gray.bind(u),u.grey=i.grey.bind(u),u.bgBlack=i.bgBlack.bind(u),u.bgRed=i.bgRed.bind(u),u.bgGreen=i.bgGreen.bind(u),u.bgYellow=i.bgYellow.bind(u),u.bgBlue=i.bgBlue.bind(u),u.bgMagenta=i.bgMagenta.bind(u),u.bgCyan=i.bgCyan.bind(u),u.bgWhite=i.bgWhite.bind(u),u}function a(f,l){let u={open:`\x1B[${f}m`,close:`\x1B[${l}m`,rgx:new RegExp(`\\x1b\\[${l}m`,"g")};return function(d){return this!==void 0&&this.has!==void 0?(~this.has.indexOf(f)||(this.has.push(f),this.keys.push(u)),d===void 0?this:i.enabled?o(this.keys,d+""):d+""):d===void 0?c([f],[u]):i.enabled?o([u],d+""):d+""}}return qr=i,qr}var Jr,Bi;function Cf(){return Bi||(Bi=1,Jr=(e,t)=>{if(!(e.meta&&e.name!=="escape")){if(e.ctrl)return e.name==="a"?"first":e.name==="c"||e.name==="d"?"abort":e.name==="e"?"last":e.name==="g"?"reset":e.name==="n"?"down":e.name==="p"?"up":void 0;if(t){if(e.name==="j")return "down";if(e.name==="k")return "up"}return e.name==="return"||e.name==="enter"?"submit":e.name==="backspace"?"delete":e.name==="delete"?"deleteForward":e.name==="abort"?"abort":e.name==="escape"?"exit":e.name==="tab"?"next":e.name==="pagedown"?"nextPage":e.name==="pageup"?"prevPage":e.name==="home"?"home":e.name==="end"?"end":e.name==="up"?"up":e.name==="down"?"down":e.name==="right"?"right":e.name==="left"?"left":false}}),Jr}var Yr,qi;function Ns(){return qi||(qi=1,Yr=e=>{let t=["[\\u001B\\u009B][[\\]()#;?]*(?:(?:(?:(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]+)*|[a-zA-Z\\d]+(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]*)*)?\\u0007)","(?:(?:\\d{1,4}(?:;\\d{0,4})*)?[\\dA-PRZcf-ntqry=><~]))"].join("|"),r=new RegExp(t,"g");return typeof e=="string"?e.replace(r,""):e}),Yr}var Zr,Ji;function re(){if(Ji)return Zr;Ji=1;let e="\x1B",t=`${e}[`,r="\x07",s={to(o,c){return c?`${t}${c+1};${o+1}H`:`${t}${o+1}G`},move(o,c){let a="";return o<0?a+=`${t}${-o}D`:o>0&&(a+=`${t}${o}C`),c<0?a+=`${t}${-c}A`:c>0&&(a+=`${t}${c}B`),a},up:(o=1)=>`${t}${o}A`,down:(o=1)=>`${t}${o}B`,forward:(o=1)=>`${t}${o}C`,backward:(o=1)=>`${t}${o}D`,nextLine:(o=1)=>`${t}E`.repeat(o),prevLine:(o=1)=>`${t}F`.repeat(o),left:`${t}G`,hide:`${t}?25l`,show:`${t}?25h`,save:`${e}7`,restore:`${e}8`},n={up:(o=1)=>`${t}S`.repeat(o),down:(o=1)=>`${t}T`.repeat(o)},i={screen:`${t}2J`,up:(o=1)=>`${t}1J`.repeat(o),down:(o=1)=>`${t}J`.repeat(o),line:`${t}2K`,lineEnd:`${t}K`,lineStart:`${t}1K`,lines(o){let c="";for(let a=0;a<o;a++)c+=this.line+(a<o-1?s.up():"");return o&&(c+=s.left),c}};return Zr={cursor:s,scroll:n,erase:i,beep:r},Zr}var Xr,Yi;function kf(){if(Yi)return Xr;Yi=1;let e=Ns(),{erase:t,cursor:r}=re(),s=n=>[...e(n)].length;return Xr=function(n,i){if(!i)return t.line+r.to(0);let o=0,c=n.split(/\r?\n/);for(let a of c)o+=1+Math.floor(Math.max(s(a)-1,0)/i);return t.lines(o)},Xr}var Qr,Zi;function Vo(){if(Zi)return Qr;Zi=1;let e={arrowUp:"\u2191",arrowDown:"\u2193",arrowLeft:"\u2190",arrowRight:"\u2192",radioOn:"\u25C9",radioOff:"\u25EF",tick:"\u2714",cross:"\u2716",ellipsis:"\u2026",pointerSmall:"\u203A",line:"\u2500",pointer:"\u276F"},t={arrowUp:e.arrowUp,arrowDown:e.arrowDown,arrowLeft:e.arrowLeft,arrowRight:e.arrowRight,radioOn:"(*)",radioOff:"( )",tick:"\u221A",cross:"\xD7",ellipsis:"...",pointerSmall:"\xBB",line:"\u2500",pointer:">"};return Qr=process.platform==="win32"?t:e,Qr}var es,Xi;function Pf(){if(Xi)return es;Xi=1;let e=te(),t=Vo(),r=Object.freeze({password:{scale:1,render:a=>"*".repeat(a.length)},emoji:{scale:2,render:a=>"\u{1F603}".repeat(a.length)},invisible:{scale:0,render:a=>""},default:{scale:1,render:a=>`${a}`}}),s=a=>r[a]||r.default,n=Object.freeze({aborted:e.red(t.cross),done:e.green(t.tick),exited:e.yellow(t.cross),default:e.cyan("?")});return es={styles:r,render:s,symbols:n,symbol:(a,f,l)=>f?n.aborted:l?n.exited:a?n.done:n.default,delimiter:a=>e.gray(a?t.ellipsis:t.pointerSmall),item:(a,f)=>e.gray(a?f?t.pointerSmall:"+":t.line)},es}var ts,Qi;function $f(){if(Qi)return ts;Qi=1;let e=Ns();return ts=function(t,r){let s=String(e(t)||"").split(/\r?\n/);return r?s.map(n=>Math.ceil(n.length/r)).reduce((n,i)=>n+i):s.length},ts}var rs,eo;function Tf(){return eo||(eo=1,rs=(e,t={})=>{let r=Number.isSafeInteger(parseInt(t.margin))?new Array(parseInt(t.margin)).fill(" ").join(""):t.margin||"",s=t.width;return (e||"").split(/\r?\n/g).map(n=>n.split(/\s+/g).reduce((i,o)=>(o.length+r.length>=s||i[i.length-1].length+o.length+1<s?i[i.length-1]+=` ${o}`:i.push(`${r}${o}`),i),[r]).join(`
|
|
47
47
|
`)).join(`
|
|
48
48
|
`)}),rs}var ss,to;function Af(){return to||(to=1,ss=(e,t,r)=>{r=r||t;let s=Math.min(t-r,e-Math.floor(r/2));s<0&&(s=0);let n=Math.min(s+r,t);return {startIndex:s,endIndex:n}}),ss}var ns,ro;function oe(){return ro||(ro=1,ns={action:Cf(),clear:kf(),style:Pf(),strip:Ns(),figures:Vo(),lines:$f(),wrap:Tf(),entriesToDisplay:Af()}),ns}var is,so;function Ie(){if(so)return is;so=1;let e=uf,{action:t}=oe(),r=vf,{beep:s,cursor:n}=re(),i=te();class o extends r{constructor(a={}){super(),this.firstRender=true,this.in=a.stdin||process.stdin,this.out=a.stdout||process.stdout,this.onRender=(a.onRender||(()=>{})).bind(this);let f=e.createInterface({input:this.in,escapeCodeTimeout:50});e.emitKeypressEvents(this.in,f),this.in.isTTY&&this.in.setRawMode(true);let l=["SelectPrompt","MultiselectPrompt"].indexOf(this.constructor.name)>-1,u=(d,p)=>{let h=t(p,l);h===false?this._&&this._(d,p):typeof this[h]=="function"?this[h](p):this.bell();};this.close=()=>{this.out.write(n.show),this.in.removeListener("keypress",u),this.in.isTTY&&this.in.setRawMode(false),f.close(),this.emit(this.aborted?"abort":this.exited?"exit":"submit",this.value),this.closed=true;},this.in.on("keypress",u);}fire(){this.emit("state",{value:this.value,aborted:!!this.aborted,exited:!!this.exited});}bell(){this.out.write(s);}render(){this.onRender(i),this.firstRender&&(this.firstRender=false);}}return is=o,is}var os,no;function jf(){if(no)return os;no=1;let e=te(),t=Ie(),{erase:r,cursor:s}=re(),{style:n,clear:i,lines:o,figures:c}=oe();class a extends t{constructor(l={}){super(l),this.transform=n.render(l.style),this.scale=this.transform.scale,this.msg=l.message,this.initial=l.initial||"",this.validator=l.validate||(()=>true),this.value="",this.errorMsg=l.error||"Please Enter A Valid Value",this.cursor=+!!this.initial,this.cursorOffset=0,this.clear=i("",this.out.columns),this.render();}set value(l){!l&&this.initial?(this.placeholder=true,this.rendered=e.gray(this.transform.render(this.initial))):(this.placeholder=false,this.rendered=this.transform.render(l)),this._value=l,this.fire();}get value(){return this._value}reset(){this.value="",this.cursor=+!!this.initial,this.cursorOffset=0,this.fire(),this.render();}exit(){this.abort();}abort(){this.value=this.value||this.initial,this.done=this.aborted=true,this.error=false,this.red=false,this.fire(),this.render(),this.out.write(`
|
|
@@ -91,24 +91,24 @@ Filtered results for: ${this.inputValue?this.inputValue:e.gray("Enter something
|
|
|
91
91
|
`}renderOption(a,f,l,u){let d=(f.selected?e.green(i.radioOn):i.radioOff)+" "+u+" ",p;return f.disabled?p=a===l?e.gray().underline(f.title):e.strikethrough().gray(f.title):p=a===l?e.cyan().underline(f.title):f.title,d+p}renderDoneOrInstructions(){if(this.done)return this.value.filter(f=>f.selected).map(f=>f.title).join(", ");let a=[e.gray(this.hint),this.renderInstructions(),this.renderCurrentInput()];return this.filteredOptions.length&&this.filteredOptions[this.cursor].disabled&&a.push(e.yellow(this.warn)),a.join(" ")}render(){if(this.closed)return;this.firstRender&&this.out.write(t.hide),super.render();let a=[n.symbol(this.done,this.aborted),e.bold(this.msg),n.delimiter(false),this.renderDoneOrInstructions()].join(" ");this.showMinError&&(a+=e.red(`You must select a minimum of ${this.minSelected} choices.`),this.showMinError=false),a+=this.renderOptions(this.filteredOptions),this.out.write(this.clear+a),this.clear=s(a,this.out.columns);}}return Ss=o,Ss}var Is,So;function qf(){if(So)return Is;So=1;let e=te(),t=Ie(),{style:r,clear:s}=oe(),{erase:n,cursor:i}=re();class o extends t{constructor(a={}){super(a),this.msg=a.message,this.value=a.initial,this.initialValue=!!a.initial,this.yesMsg=a.yes||"yes",this.yesOption=a.yesOption||"(Y/n)",this.noMsg=a.no||"no",this.noOption=a.noOption||"(y/N)",this.render();}reset(){this.value=this.initialValue,this.fire(),this.render();}exit(){this.abort();}abort(){this.done=this.aborted=true,this.fire(),this.render(),this.out.write(`
|
|
92
92
|
`),this.close();}submit(){this.value=this.value||false,this.done=true,this.aborted=false,this.fire(),this.render(),this.out.write(`
|
|
93
93
|
`),this.close();}_(a,f){return a.toLowerCase()==="y"?(this.value=true,this.submit()):a.toLowerCase()==="n"?(this.value=false,this.submit()):this.bell()}render(){this.closed||(this.firstRender?this.out.write(i.hide):this.out.write(s(this.outputText,this.out.columns)),super.render(),this.outputText=[r.symbol(this.done,this.aborted),e.bold(this.msg),r.delimiter(this.done),this.done?this.value?this.yesMsg:this.noMsg:e.gray(this.initialValue?this.yesOption:this.noOption)].join(" "),this.out.write(n.line+i.to(0)+this.outputText));}}return Is=o,Is}var Es,Io;function Jf(){return Io||(Io=1,Es={TextPrompt:jf(),SelectPrompt:Of(),TogglePrompt:Nf(),DatePrompt:Hf(),NumberPrompt:Kf(),MultiselectPrompt:Wo(),AutocompletePrompt:Gf(),AutocompleteMultiselectPrompt:Bf(),ConfirmPrompt:qf()}),Es}var Eo;function Yf(){return Eo||(Eo=1,(function(e){let t=e,r=Jf(),s=o=>o;function n(o,c,a={}){return new Promise((f,l)=>{let u=new r[o](c),d=a.onAbort||s,p=a.onSubmit||s,h=a.onExit||s;u.on("state",c.onState||s),u.on("submit",m=>f(p(m))),u.on("exit",m=>f(h(m))),u.on("abort",m=>l(d(m)));})}t.text=o=>n("TextPrompt",o),t.password=o=>(o.style="password",t.text(o)),t.invisible=o=>(o.style="invisible",t.text(o)),t.number=o=>n("NumberPrompt",o),t.date=o=>n("DatePrompt",o),t.confirm=o=>n("ConfirmPrompt",o),t.list=o=>{let c=o.separator||",";return n("TextPrompt",o,{onSubmit:a=>a.split(c).map(f=>f.trim())})},t.toggle=o=>n("TogglePrompt",o),t.select=o=>n("SelectPrompt",o),t.multiselect=o=>{o.choices=[].concat(o.choices||[]);let c=a=>a.filter(f=>f.selected).map(f=>f.value);return n("MultiselectPrompt",o,{onAbort:c,onSubmit:c})},t.autocompleteMultiselect=o=>{o.choices=[].concat(o.choices||[]);let c=a=>a.filter(f=>f.selected).map(f=>f.value);return n("AutocompleteMultiselectPrompt",o,{onAbort:c,onSubmit:c})};let i=(o,c)=>Promise.resolve(c.filter(a=>a.title.slice(0,o.length).toLowerCase()===o.toLowerCase()));t.autocomplete=o=>(o.suggest=o.suggest||i,o.choices=[].concat(o.choices||[]),n("AutocompletePrompt",o));})(Br)),Br}var Cs,Co;function Zf(){if(Co)return Cs;Co=1;let e=Yf(),t=["suggest","format","onState","validate","onRender","type"],r=()=>{};async function s(c=[],{onSubmit:a=r,onCancel:f=r}={}){let l={},u=s._override||{};c=[].concat(c);let d,p,h,m,g,x,y=async(w,v,b=false)=>{if(!(!b&&w.validate&&w.validate(v)!==true))return w.format?await w.format(v,l):v};for(p of c)if({name:m,type:g}=p,typeof g=="function"&&(g=await g(d,{...l},p),p.type=g),!!g){for(let w in p){if(t.includes(w))continue;let v=p[w];p[w]=typeof v=="function"?await v(d,{...l},x):v;}if(x=p,typeof p.message!="string")throw new Error("prompt message is required");if({name:m,type:g}=p,e[g]===void 0)throw new Error(`prompt type (${g}) is not defined`);if(u[p.name]!==void 0&&(d=await y(p,u[p.name]),d!==void 0)){l[m]=d;continue}try{d=s._injected?n(s._injected,p.initial):await e[g](p),l[m]=d=await y(p,d,!0),h=await a(p,d,l);}catch{h=!await f(p,l);}if(h)return l}return l}function n(c,a){let f=c.shift();if(f instanceof Error)throw f;return f===void 0?a:f}function i(c){s._injected=(s._injected||[]).concat(c);}function o(c){s._override=Object.assign({},c);}return Cs=Object.assign(s,{prompt:s,prompts:e,inject:i,override:o}),Cs}var ks,ko;function Xf(){return ko||(ko=1,ks=Zf()),ks}var Qf=Xf(),ep=Os(Qf),_s=globalThis.window?.document!==void 0;globalThis.process?.versions?.node;globalThis.process?.versions?.bun;globalThis.Deno?.version?.deno;globalThis.process?.versions?.electron;globalThis.navigator?.userAgent?.includes("jsdom");typeof WorkerGlobalScope<"u"&&globalThis instanceof WorkerGlobalScope;typeof DedicatedWorkerGlobalScope<"u"&&globalThis instanceof DedicatedWorkerGlobalScope;typeof SharedWorkerGlobalScope<"u"&&globalThis instanceof SharedWorkerGlobalScope;typeof ServiceWorkerGlobalScope<"u"&&globalThis instanceof ServiceWorkerGlobalScope;var lr=globalThis.navigator?.userAgentData?.platform;lr==="macOS"||globalThis.navigator?.platform==="MacIntel"||globalThis.navigator?.userAgent?.includes(" Mac ")===true||globalThis.process?.platform;lr==="Windows"||globalThis.navigator?.platform==="Win32"||globalThis.process?.platform;lr==="Linux"||globalThis.navigator?.platform?.startsWith("Linux")===true||globalThis.navigator?.userAgent?.includes(" Linux ")===true||globalThis.process?.platform;lr==="Android"||globalThis.navigator?.platform==="Android"||globalThis.navigator?.userAgent?.includes(" Android ")===true||globalThis.process?.platform;var Po="\x1B]",$o="\x07",cr=";";!_s&&ie.env.TERM_PROGRAM;!_s&&ie.platform;_s||ie.cwd;var tp=(e,t)=>[Po,"8",cr,cr,t,$o,e,Po,"8",cr,cr,$o].join(""),Ps,To;function zo(){return To||(To=1,Ps=(e,t=process.argv)=>{let r=e.startsWith("-")?"":e.length===1?"-":"--",s=t.indexOf(r+e),n=t.indexOf("--");return s!==-1&&(n===-1||s<n)}),Ps}var $s,Ao;function rp(){if(Ao)return $s;Ao=1;let e=bf,t=Rf,r=zo(),{env:s}=process,n;r("no-color")||r("no-colors")||r("color=false")||r("color=never")?n=0:(r("color")||r("colors")||r("color=true")||r("color=always"))&&(n=1),"FORCE_COLOR"in s&&(s.FORCE_COLOR==="true"?n=1:s.FORCE_COLOR==="false"?n=0:n=s.FORCE_COLOR.length===0?1:Math.min(parseInt(s.FORCE_COLOR,10),3));function i(a){return a===0?false:{level:a,hasBasic:true,has256:a>=2,has16m:a>=3}}function o(a,f){if(n===0)return 0;if(r("color=16m")||r("color=full")||r("color=truecolor"))return 3;if(r("color=256"))return 2;if(a&&!f&&n===void 0)return 0;let l=n||0;if(s.TERM==="dumb")return l;if(process.platform==="win32"){let u=e.release().split(".");return Number(u[0])>=10&&Number(u[2])>=10586?Number(u[2])>=14931?3:2:1}if("CI"in s)return ["TRAVIS","CIRCLECI","APPVEYOR","GITLAB_CI","GITHUB_ACTIONS","BUILDKITE"].some(u=>u in s)||s.CI_NAME==="codeship"?1:l;if("TEAMCITY_VERSION"in s)return /^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(s.TEAMCITY_VERSION)?1:0;if(s.COLORTERM==="truecolor")return 3;if("TERM_PROGRAM"in s){let u=parseInt((s.TERM_PROGRAM_VERSION||"").split(".")[0],10);switch(s.TERM_PROGRAM){case "iTerm.app":return u>=3?3:2;case "Apple_Terminal":return 2}}return /-256(color)?$/i.test(s.TERM)?2:/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(s.TERM)||"COLORTERM"in s?1:l}function c(a){let f=o(a,a&&a.isTTY);return i(f)}return $s={supportsColor:c,stdout:i(o(true,t.isatty(1))),stderr:i(o(true,t.isatty(2)))},$s}var Ts,jo;function sp(){if(jo)return Ts;jo=1;let e=rp(),t=zo();function r(n){if(/^\d{3,4}$/.test(n)){let o=/(\d{1,2})(\d{2})/.exec(n)||[];return {major:0,minor:parseInt(o[1],10),patch:parseInt(o[2],10)}}let i=(n||"").split(".").map(o=>parseInt(o,10));return {major:i[0],minor:i[1],patch:i[2]}}function s(n){let{CI:i,FORCE_HYPERLINK:o,NETLIFY:c,TEAMCITY_VERSION:a,TERM_PROGRAM:f,TERM_PROGRAM_VERSION:l,VTE_VERSION:u,TERM:d}=process.env;if(o)return !(o.length>0&&parseInt(o,10)===0);if(t("no-hyperlink")||t("no-hyperlinks")||t("hyperlink=false")||t("hyperlink=never"))return false;if(t("hyperlink=true")||t("hyperlink=always")||c)return true;if(!e.supportsColor(n)||n&&!n.isTTY)return false;if("WT_SESSION"in process.env)return true;if(process.platform==="win32"||i||a)return false;if(f){let p=r(l||"");switch(f){case "iTerm.app":return p.major===3?p.minor>=1:p.major>3;case "WezTerm":return p.major>=20200620;case "vscode":return p.major>1||p.major===1&&p.minor>=72;case "ghostty":return true}}if(u){if(u==="0.50.0")return false;let p=r(u);return p.major>0||p.minor>=50}switch(d){case "alacritty":return true}return false}return Ts={supportsHyperlink:s,stdout:s(process.stdout),stderr:s(process.stderr)},Ts}var np=sp(),Fs=Os(np);function xt(e,t,{target:r="stdout",...s}={}){return Fs[r]?tp(e,t):s.fallback===false?e:typeof s.fallback=="function"?s.fallback(e,t):`${e} (\u200B${t}\u200B)`}xt.isSupported=Fs.stdout;xt.stderr=(e,t,r={})=>xt(e,t,{target:"stderr",...r});xt.stderr.isSupported=Fs.stderr;var ee={},Me={},Oo;function ip(){if(Oo)return Me;Oo=1,Object.defineProperty(Me,"__esModule",{value:true}),Me.sync=Me.isexe=void 0;let e=Do,t=Vi__default,r=async(o,c={})=>{let{ignoreErrors:a=false}=c;try{return n(await(0,t.stat)(o),c)}catch(f){let l=f;if(a||l.code==="EACCES")return false;throw l}};Me.isexe=r;let s=(o,c={})=>{let{ignoreErrors:a=false}=c;try{return n((0,e.statSync)(o),c)}catch(f){let l=f;if(a||l.code==="EACCES")return false;throw l}};Me.sync=s;let n=(o,c)=>o.isFile()&&i(o,c),i=(o,c)=>{let a=c.uid??process.getuid?.(),f=c.groups??process.getgroups?.()??[],l=c.gid??process.getgid?.()??f[0];if(a===void 0||l===void 0)throw new Error("cannot get uid or gid");let u=new Set([l,...f]),d=o.mode,p=o.uid,h=o.gid,m=parseInt("100",8),g=parseInt("010",8),x=parseInt("001",8),y=m|g;return !!(d&x||d&g&&u.has(h)||d&m&&p===a||d&y&&a===0)};return Me}var De={},No;function op(){if(No)return De;No=1,Object.defineProperty(De,"__esModule",{value:true}),De.sync=De.isexe=void 0;let e=Do,t=Vi__default,r=async(o,c={})=>{let{ignoreErrors:a=false}=c;try{return i(await(0,t.stat)(o),o,c)}catch(f){let l=f;if(a||l.code==="EACCES")return false;throw l}};De.isexe=r;let s=(o,c={})=>{let{ignoreErrors:a=false}=c;try{return i((0,e.statSync)(o),o,c)}catch(f){let l=f;if(a||l.code==="EACCES")return false;throw l}};De.sync=s;let n=(o,c)=>{let{pathExt:a=process.env.PATHEXT||""}=c,f=a.split(";");if(f.indexOf("")!==-1)return true;for(let l=0;l<f.length;l++){let u=f[l].toLowerCase(),d=o.substring(o.length-u.length).toLowerCase();if(u&&d===u)return true}return false},i=(o,c,a)=>o.isFile()&&n(c,a);return De}var As={},_o;function ap(){return _o||(_o=1,Object.defineProperty(As,"__esModule",{value:true})),As}var Fo;function cp(){return Fo||(Fo=1,(function(e){var t=ee&&ee.__createBinding||(Object.create?(function(f,l,u,d){d===void 0&&(d=u);var p=Object.getOwnPropertyDescriptor(l,u);(!p||("get"in p?!l.__esModule:p.writable||p.configurable))&&(p={enumerable:true,get:function(){return l[u]}}),Object.defineProperty(f,d,p);}):(function(f,l,u,d){d===void 0&&(d=u),f[d]=l[u];})),r=ee&&ee.__setModuleDefault||(Object.create?(function(f,l){Object.defineProperty(f,"default",{enumerable:true,value:l});}):function(f,l){f.default=l;}),s=ee&&ee.__importStar||function(f){if(f&&f.__esModule)return f;var l={};if(f!=null)for(var u in f)u!=="default"&&Object.prototype.hasOwnProperty.call(f,u)&&t(l,f,u);return r(l,f),l},n=ee&&ee.__exportStar||function(f,l){for(var u in f)u!=="default"&&!Object.prototype.hasOwnProperty.call(l,u)&&t(l,f,u);};Object.defineProperty(e,"__esModule",{value:true}),e.sync=e.isexe=e.posix=e.win32=void 0;let i=s(ip());e.posix=i;let o=s(op());e.win32=o,n(ap(),e);let a=(process.env._ISEXE_TEST_PLATFORM_||process.platform)==="win32"?o:i;e.isexe=a.isexe,e.sync=a.sync;})(ee)),ee}var js,Mo;function lp(){if(Mo)return js;Mo=1;let{isexe:e,sync:t}=cp(),{join:r,delimiter:s,sep:n,posix:i}=S__default,o=process.platform==="win32",c=new RegExp(`[${i.sep}${n===i.sep?"":n}]`.replace(/(\\)/g,"\\$1")),a=new RegExp(`^\\.${c.source}`),f=h=>Object.assign(new Error(`not found: ${h}`),{code:"ENOENT"}),l=(h,{path:m=process.env.PATH,pathExt:g=process.env.PATHEXT,delimiter:x=s})=>{let y=h.match(c)?[""]:[...o?[process.cwd()]:[],...(m||"").split(x)];if(o){let w=g||[".EXE",".CMD",".BAT",".COM"].join(x),v=w.split(x).flatMap(b=>[b,b.toLowerCase()]);return h.includes(".")&&v[0]!==""&&v.unshift(""),{pathEnv:y,pathExt:v,pathExtExe:w}}return {pathEnv:y,pathExt:[""]}},u=(h,m)=>{let g=/^".*"$/.test(h)?h.slice(1,-1):h;return (!g&&a.test(m)?m.slice(0,2):"")+r(g,m)},d=async(h,m={})=>{let{pathEnv:g,pathExt:x,pathExtExe:y}=l(h,m),w=[];for(let v of g){let b=u(v,h);for(let R of x){let E=b+R;if(await e(E,{pathExt:y,ignoreErrors:true})){if(!m.all)return E;w.push(E);}}}if(m.all&&w.length)return w;if(m.nothrow)return null;throw f(h)},p=(h,m={})=>{let{pathEnv:g,pathExt:x,pathExtExe:y}=l(h,m),w=[];for(let v of g){let b=u(v,h);for(let R of x){let E=b+R;if(t(E,{pathExt:y,ignoreErrors:true})){if(!m.all)return E;w.push(E);}}}if(m.all&&w.length)return w;if(m.nothrow)return null;throw f(h)};return js=d,d.sync=p,js}var up=lp(),fp=Os(up);join(bf.tmpdir(),"antfu-ni");function Uo(e){return fp.sync(e,{nothrow:true})!==null}async function Ms({autoInstall:e,programmatic:t,cwd:r}={}){let{name:s,agent:n,version:i}=await Hr({cwd:r,onUnknown:o=>{t||console.warn("[ni] Unknown packageManager:",o);}})||{};if(s&&!Uo(s)&&!t){if(!e){console.warn(`[ni] Detected ${s} but it doesn't seem to be installed.
|
|
94
|
-
`),ie.env.CI&&ie.exit(1);let o=xt(s,Di[s]),{tryInstall:c}=await ep({name:"tryInstall",type:"confirm",message:`Would you like to globally install ${o}?`});c||ie.exit(1);}await Kr("npm",["i","-g",`${s}${i?`@${i}`:""}`],{nodeOptions:{stdio:"inherit",cwd:r},throwOnError:true});}return n}ie.env.NI_CONFIG_FILE;var dp=ie.platform==="win32"?ie.env.USERPROFILE:ie.env.HOME;S__default.join(dp||"~/",".nirc");async function Ds(e,{withFallback:t}={withFallback:false}){let r=await Ms({programmatic:true,cwd:e});return r==="yarn@berry"?"yarn":r==="pnpm@6"?"pnpm":r==="bun"?"bun":r==="deno"?"deno":t?Ls()??"npm":r??"npm"}function Ls(e=process.env.npm_config_user_agent||""){return e.startsWith("yarn")?"yarn":e.startsWith("pnpm")?"pnpm":e.startsWith("bun")?"bun":e.startsWith("deno")?"deno":e.startsWith("npm")?"npm":null}function Vs(e){return e==="pnpm"?"pnpm dlx":e==="bun"?"bunx":"npx"}async function
|
|
94
|
+
`),ie.env.CI&&ie.exit(1);let o=xt(s,Di[s]),{tryInstall:c}=await ep({name:"tryInstall",type:"confirm",message:`Would you like to globally install ${o}?`});c||ie.exit(1);}await Kr("npm",["i","-g",`${s}${i?`@${i}`:""}`],{nodeOptions:{stdio:"inherit",cwd:r},throwOnError:true});}return n}ie.env.NI_CONFIG_FILE;var dp=ie.platform==="win32"?ie.env.USERPROFILE:ie.env.HOME;S__default.join(dp||"~/",".nirc");async function Ds(e,{withFallback:t}={withFallback:false}){let r=await Ms({programmatic:true,cwd:e});return r==="yarn@berry"?"yarn":r==="pnpm@6"?"pnpm":r==="bun"?"bun":r==="deno"?"deno":t?Ls()??"npm":r??"npm"}function Ls(e=process.env.npm_config_user_agent||""){return e.startsWith("yarn")?"yarn":e.startsWith("pnpm")?"pnpm":e.startsWith("bun")?"bun":e.startsWith("deno")?"deno":e.startsWith("npm")?"npm":null}function Vs(e){return e==="pnpm"?"pnpm dlx":e==="bun"?"bunx":"npx"}async function mv(e){let t=await Ds(e);return Vs(t)}var Ho={name:"shadcn",version:"4.18.0",description:"Add components to your apps.",publishConfig:{access:"public"},license:"MIT",author:{name:"shadcn",url:"https://twitter.com/shadcn"},repository:{type:"git",url:"https://github.com/shadcn-ui/ui.git",directory:"packages/shadcn"},files:["dist"],keywords:["components","ui","tailwind","radix-ui","base-ui","shadcn"],type:"module",exports:{".":{types:"./dist/index.d.ts",default:"./dist/index.js"},"./registry":{types:"./dist/registry/index.d.ts",default:"./dist/registry/index.js"},"./schema":{types:"./dist/schema/index.d.ts",default:"./dist/schema/index.js"},"./mcp":{types:"./dist/mcp/index.d.ts",default:"./dist/mcp/index.js"},"./utils":{types:"./dist/utils/index.d.ts",default:"./dist/utils/index.js"},"./icons":{types:"./dist/icons/index.d.ts",default:"./dist/icons/index.js"},"./preset":{types:"./dist/preset/index.d.ts",default:"./dist/preset/index.js"},"./tailwind.css":"./dist/tailwind.css"},sideEffects:["./dist/tailwind.css"],bin:"./dist/index.js",engines:{node:">=20.18.1"},scripts:{dev:"tsup --watch",build:"tsup",typecheck:"tsc --noEmit",clean:"rimraf dist && rimraf components","start:dev":"cross-env REGISTRY_URL=http://localhost:4000/r SHADCN_TEMPLATE_DIR=../../templates node dist/index.js","start:prod":"cross-env REGISTRY_URL=https://ui.shadcn.com/r node dist/index.js",start:"node dist/index.js","format:write":'prettier --write "**/*.{ts,tsx,mdx}" --cache',"format:check":'prettier --check "**/*.{ts,tsx,mdx}" --cache',release:"changeset version","pub:beta":"pnpm build && pnpm publish --no-git-checks --access public --tag beta","pub:rc":"pnpm build && pnpm publish --no-git-checks --access public --tag rc","pub:next":"pnpm build && pnpm publish --no-git-checks --access public --tag next","pub:release":"pnpm build && pnpm publish --access public",test:"vitest run","test:dev":"REGISTRY_URL=http://localhost:4000/r SHADCN_TEMPLATE_DIR=../../templates vitest run","mcp:inspect":"pnpm dlx @modelcontextprotocol/inspector node dist/index.js mcp"},dependencies:{"@babel/core":"^7.28.0","@babel/parser":"^7.28.0","@babel/plugin-transform-typescript":"^7.28.0","@babel/preset-typescript":"^7.27.1","@dotenvx/dotenvx":"^1.48.4","@modelcontextprotocol/sdk":"^1.26.0","@types/validate-npm-package-name":"^4.0.2",browserslist:"^4.26.2",commander:"^14.0.0",cosmiconfig:"^9.0.0",dedent:"^1.6.0",deepmerge:"^4.3.1",diff:"^8.0.2",execa:"^9.6.0","fast-glob":"^3.3.3","fs-extra":"^11.3.1",fuzzysort:"^3.1.0",kleur:"^4.1.5",open:"^11.0.0",ora:"^8.2.0",postcss:"^8.5.6","postcss-selector-parser":"^7.1.0",prompts:"^2.4.2",recast:"^0.23.11",socks:"^2.8.8","stringify-object":"^5.0.0","tailwind-merge":"^3.0.1","ts-morph":"^26.0.0","tsconfig-paths":"^4.2.0",undici:"^7.27.2","validate-npm-package-name":"^7.0.1",zod:"^3.24.1","zod-to-json-schema":"^3.24.6"},devDependencies:{"@antfu/ni":"^25.0.0","@types/babel__core":"^7.20.5","@types/fs-extra":"^11.0.4","@types/prompts":"^2.4.9","@types/stringify-object":"^4.0.5",msw:"^2.10.4",rimraf:"^6.0.1",tsup:"^8.5.0","type-fest":"^4.41.0",typescript:"^5.9.2"}};function ur(e){if(I.break(),I.error("Something went wrong. Please check the error below for more details."),I.error("If the problem persists, please open an issue on GitHub."),I.error(""),typeof e=="string"&&(I.error(e),vt()),e instanceof _&&(e.message&&(I.error(e.cause?"Error:":"Message:"),I.error(e.message)),e.cause&&(I.error(`
|
|
95
95
|
Message:`),I.error(e.cause)),e.suggestion&&(I.error(`
|
|
96
|
-
Suggestion:`),I.error(e.suggestion)),vt()),e instanceof z.ZodError){I.error("Validation failed:");for(let[t,r]of Object.entries(e.flatten().fieldErrors))I.error(`- ${T.info(t)}: ${r}`);vt();}e instanceof Error&&(I.error(e.message),vt()),vt();}function gp(e){let t=e.match(/^(\d+)\.(\d+)\.\d+/);if(!t)return null;let r=Number.parseInt(t[1],10),s=Number.parseInt(t[2],10);return s===0?null:`${r}.${s-1}.0`}function yp(e=Ho.version,t=process.argv.slice(2)){let r=gp(e);return r?[...Vs(Ls()).split(" "),`shadcn@${r}`,...t].map(wp).join(" "):null}function vt(){let e=yp();e&&(I.error(""),I.error("You can also try a previous version to see if that works:"),I.error(e)),I.break(),process.exit(1);}function wp(e){return /^[a-zA-Z0-9_./:@%+=,-]+$/.test(e)?e:`'${e.replace(/'/g,"'\\''")}'`}var
|
|
97
|
-
`),ur(e),[]}}async function
|
|
96
|
+
Suggestion:`),I.error(e.suggestion)),vt()),e instanceof z.ZodError){I.error("Validation failed:");for(let[t,r]of Object.entries(e.flatten().fieldErrors))I.error(`- ${T.info(t)}: ${r}`);vt();}e instanceof Error&&(I.error(e.message),vt()),vt();}function gp(e){let t=e.match(/^(\d+)\.(\d+)\.\d+/);if(!t)return null;let r=Number.parseInt(t[1],10),s=Number.parseInt(t[2],10);return s===0?null:`${r}.${s-1}.0`}function yp(e=Ho.version,t=process.argv.slice(2)){let r=gp(e);return r?[...Vs(Ls()).split(" "),`shadcn@${r}`,...t].map(wp).join(" "):null}function vt(){let e=yp();e&&(I.error(""),I.error("You can also try a previous version to see if that works:"),I.error(e)),I.break(),process.exit(1);}function wp(e){return /^[a-zA-Z0-9_./:@%+=,-]+$/.test(e)?e:`'${e.replace(/'/g,"'\\''")}'`}var Jo=cosmiconfig("registries",{packageProp:"registries",searchPlaces:["package.json"]}),vp=z.object({registries:b.optional()});function Ko(e,t){if(!t)return e;let r=new URL(e);return t.query&&r.searchParams.set("q",t.query),t.types?.length&&r.searchParams.set("type",t.types.join(",")),t.limit!==void 0&&r.searchParams.set("limit",String(t.limit)),t.offset!==void 0&&r.searchParams.set("offset",String(t.offset)),r.toString()}async function zs(e,t){return ve(()=>bp(e,t))}async function bp(e,t){let{config:r,useCache:s,searchParams:n}=t||{};if(M(e)){let l=Ko(e,n),[u]=await U([l],{useCache:s});return Go(e,u)}let i=pt(e);if(i)return Ti(i,{useCache:s});if(!e.startsWith("@"))throw new it(e);let o=e;o.endsWith("/registry")||(o=`${o}/registry`);let c=Ge(o,ne(r));if(!c?.url)throw new je(o);let a=Ko(c.url,n);c.headers&&Object.keys(c.headers).length>0&&dt({[a]:c.headers});let[f]=await U([a],{useCache:s});return Go(o,f)}function Go(e,t){try{let r=q$1.parse(t);if(r.include?.length)throw new $(`Registry catalog "${e}" uses "include", but consumer registry endpoints must serve a resolved registry catalog. Run "npx shadcn build" and serve the built registry.json, or use loadRegistry() in a dynamic route.`,{context:{registry:e,include:r.include},suggestion:"Serve a flattened registry.json for CLI consumers. Source registry.json files with include are supported by shadcn build and loadRegistry()."});return r}catch(r){throw r instanceof $?r:new W(e,r,{subject:"registry catalog",suggestion:"The registry catalog may be corrupted or have an invalid format. Please make sure it returns a valid registry.json object. See https://ui.shadcn.com/schema/registry.json."})}}async function Us(e,t){let{config:r,useCache:s=false}=t||{};return ve(()=>be(e,ne(r),{useCache:s}))}async function Rp(e,t){let{config:r,useCache:s=false}=t||{};return ve(()=>Ye(e,ne(r),{useCache:s}))}async function Sp(e,t){let{useCache:r=true}=t||{};r||(Mt.clearCaches(),Jo.clearCaches());let s=await Ip(e),n=S__default.resolve(e,"components.json");if(existsSync(n)){let i=await Mt.load(n),o=Yo(e,i?.config,"components.json");return {registries:{...H,...s,...o.registries}}}return {registries:s}}async function Ip(e){let t=S__default.resolve(e,"package.json");if(!existsSync(t))return {};let r=await Jo.load(t);return Yo(e,{registries:r?.config},"package.json").registries}function Yo(e,t,r){let s=vp.safeParse(t);if(!s.success)throw new We(e,s.error,r);return {registries:s.data.registries||{}}}async function Vt(){let[e]=await U(["index.json"]);return r.parse(e)}async function Kv(){try{let[e]=await U(["styles/index.json"]);return s.parse(e)}catch(e){return I.error(`
|
|
97
|
+
`),ur(e),[]}}async function Gv(){try{let[e]=await U(["icons/index.json"]);return t.parse(e)}catch(e){return ur(e),{}}}async function Bv(){return xn}async function tr(e){let[t]=await U([`colors/${e}.json`]);return u.parse(t)}async function Ep(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 Ep(e,n.registryDependencies);r.push(...i);}}return r.filter((s,n,i)=>i.findIndex(o=>o.name===s.name)===n)}async function qv(e,t){try{let r=t.map(n=>`styles/${e}/${n.name}.json`);return (await U(r)).map(n$1=>n.parse(n$1))}catch(r){return ur(r),[]}}async function Jv(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?S__default.join(e.resolvedPaths[s],n):null}async function Zo(e){e={useCache:true,...e};let t=`${Ae}/registries.json`,[r]=await U([t],{useCache:e.useCache});try{return A.parse(r)}catch(s){throw s instanceof z.ZodError?new ot(s):s}}async function Cp(e){let t=await Zo(e);return t?Object.fromEntries(t.map(r=>[r.name,r.url])):null}async function kp(e){e={useCache:true,...e};let t=`${Ae}/config.json`,[r]=await U([t],{useCache:e.useCache});return C.parse(r).presets}async function Yv(e,t){return (await kp(t)).find(s=>s.name.toLowerCase()===e.toLowerCase())??null}var Xo={"--font-heading":"cn-font-heading"};function Pp(e){return e.startsWith("--")?e:`--${e}`}function Hs(e){let t=new Set;for(let r of e){for(let s of r.fonts??[]){let n=s.font?.variable;if(!n)continue;let i=Xo[n];i&&t.add(i);}for(let s of Object.values(r.cssVars??{}))for(let n of Object.keys(s??{})){let i=Xo[Pp(n)];i&&t.add(i);}}return Array.from(t)}function Qo(e,t){if(e.includes("\0"))return false;let r;try{r=e;let d="";for(;r!==d&&r.includes("%");)d=r,r=decodeURIComponent(r);}catch{return false}let s=S__default.normalize(r.replace(/\\/g,"/")),n=S__default.normalize(t),i=d=>d.replace(/\[\.\.\..*?\]/g,"").includes("..");if(i(s)||i(r)||i(e))return false;let o=d=>d.replace(/\[\.\.\..*?\]/g,""),c=o(e),a=o(r);if([/\.\.[\/\\]/,/[\/\\]\.\./,/\.\./,/\.\.%/,/\x00/,/[\x01-\x1f]/].some(d=>d.test(c)||d.test(a))||(e.includes("~")||r.includes("~"))&&(e.includes("../")||r.includes("../")))return false;if(/^[a-zA-Z]:[\/\\]/.test(r))return process.platform==="win32"?r.toLowerCase().startsWith(t.toLowerCase()):false;if(S__default.isAbsolute(s))return s.startsWith(n+S__default.sep);let u=S__default.resolve(n,s);return u.startsWith(n+S__default.sep)||u===n}async function cb(e,t,r){if(!t.resolvedPaths.tailwindCss||!Object.keys(e??{}).length)return;r={cleanupDefaultNextStyles:false,silent:false,tailwindVersion:"v3",overwriteCssVars:false,...r};let s=t.resolvedPaths.tailwindCss,n=S__default.relative(t.resolvedPaths.cwd,s),i=j(`Updating CSS variables in ${T.info(n)}`,{silent:r.silent}).start(),o=await promises.readFile(s,"utf8"),c=await Ks(o,e??{},t,{cleanupDefaultNextStyles:r.cleanupDefaultNextStyles,tailwindVersion:r.tailwindVersion,tailwindConfig:r.tailwindConfig,overwriteCssVars:r.overwriteCssVars});await promises.writeFile(s,c,"utf8"),i.succeed();}async function Ks(e,t,r,s={cleanupDefaultNextStyles:false,tailwindVersion:"v3",tailwindConfig:void 0,overwriteCssVars:false}){s={cleanupDefaultNextStyles:false,tailwindVersion:"v3",tailwindConfig:void 0,overwriteCssVars:false,...s};let n=[Ap(t)];s.cleanupDefaultNextStyles&&n.push(ra()),s.tailwindVersion==="v4"&&(n=[],n.push(_p({params:"dark (&:is(.dark *))"})),s.cleanupDefaultNextStyles&&n.push(ra()),n.push(Op(t,{overwriteCssVars:s.overwriteCssVars})),n.push(Np(t)),s.tailwindConfig&&(n.push(Fp(s.tailwindConfig)),n.push(Dp(s.tailwindConfig)),n.push(Mp(s.tailwindConfig))));let o=(await A$1(n).process(e,{from:void 0})).css;return o=o.replace(/\/\* ---break--- \*\//g,""),s.tailwindVersion==="v4"&&(o=o.replace(/(\n\s*\n)+/g,`
|
|
98
98
|
|
|
99
|
-
`)),o}function
|
|
100
|
-
`,between:" "}}),t.append(r),t.insertBefore(r,A$1.comment({text:"---break---"}))),r!==void 0&&Object.entries(e).forEach(([s,n])=>{let i=s==="light"?":root":`.${s}`;
|
|
101
|
-
`}}),e.append(s)),Object.entries(r).forEach(([n,i])=>{let o=`--${n.replace(/^--/,"")}`,c=A$1.decl({prop:o,value:i,raws:{semicolon:true}}),a=s?.nodes.find(f=>f.type==="decl"&&f.prop===o);a?a.replaceWith(c):s?.append(c);});}function
|
|
102
|
-
`}}),r.append(o),r.insertBefore(o,A$1.comment({text:"---break---"}))),Object.entries(n).forEach(([c,a])=>{let f=`--${c.replace(/^--/,"")}`;f==="--sidebar-background"&&(f="--sidebar"),sa(a)&&(a=`hsl(${a})`);let l=A$1.decl({prop:f,value:a,raws:{semicolon:true}}),u=o?.nodes.find(d=>d.type==="decl"&&d.prop===f);t.overwriteCssVars?u?u.replaceWith(l):o?.append(l):u||o?.append(l);});});}}}function
|
|
103
|
-
`}}),e.append(t),e.insertBefore(t,A$1.comment({text:"---break---"}))),t}function
|
|
104
|
-
`}});if(s.length>0){let i=s[s.length-1];t.insertAfter(i,n);}else t.insertAfter(t.nodes[0],n);t.insertBefore(n,A$1.comment({text:"---break---"}));}}}}function
|
|
105
|
-
`}});t.insertAfter(i,a),t.insertBefore(a,A$1.comment({text:"---break---"}));}}}}function
|
|
99
|
+
`)),o}function Ap(e){return {postcssPlugin:"update-css-vars",Once(t){let r=t.nodes.find(s=>s.type==="atrule"&&s.name==="layer"&&s.params==="base");r instanceof Tp||(r=A$1.atRule({name:"layer",params:"base",nodes:[],raws:{semicolon:true,before:`
|
|
100
|
+
`,between:" "}}),t.append(r),t.insertBefore(r,A$1.comment({text:"---break---"}))),r!==void 0&&Object.entries(e).forEach(([s,n])=>{let i=s==="light"?":root":`.${s}`;jp(r,i,n);});}}}function ta(e){let t=e.nodes.find(r=>r.type==="rule"&&r.selector===":root");if(t){let r=["--background","--foreground"];t.nodes.filter(s=>s.type==="decl"&&r.includes(s.prop)).forEach(s=>s.remove()),t.nodes.length===0&&t.remove();}}function ra(){return {postcssPlugin:"cleanup-default-next-styles",Once(e){let t=e.nodes.find(s=>s.type==="rule"&&s.selector==="body");t&&(t.nodes.find(s=>s.type==="decl"&&s.prop==="color"&&["rgb(var(--foreground-rgb))","var(--foreground)"].includes(s.value))?.remove(),t.nodes.find(s=>s.type==="decl"&&s.prop==="background"&&(s.value.startsWith("linear-gradient")||s.value==="var(--background)"))?.remove(),t.nodes.find(s=>s.type==="decl"&&s.prop==="font-family"&&s.value==="Arial, Helvetica, sans-serif")?.remove(),t.nodes.length===0&&t.remove()),ta(e);let r=e.nodes.find(s=>s.type==="atrule"&&s.params==="(prefers-color-scheme: dark)");r&&(ta(r),r.nodes.length===0&&r.remove());}}}function jp(e,t,r){let s=e.nodes?.find(n=>n.type==="rule"&&n.selector===t);s||Object.keys(r).length>0&&(s=A$1.rule({selector:t,raws:{between:" ",before:`
|
|
101
|
+
`}}),e.append(s)),Object.entries(r).forEach(([n,i])=>{let o=`--${n.replace(/^--/,"")}`,c=A$1.decl({prop:o,value:i,raws:{semicolon:true}}),a=s?.nodes.find(f=>f.type==="decl"&&f.prop===o);a?a.replaceWith(c):s?.append(c);});}function Op(e,t){return {postcssPlugin:"update-css-vars-v4",Once(r){Object.entries(e).forEach(([s,n])=>{let i=s==="light"?":root":`.${s}`;if(s==="theme"){i="@theme";let c=fr(r);Object.entries(n).forEach(([a,f])=>{let l=`--${a.replace(/^--/,"")}`,u=A$1.decl({prop:l,value:f,raws:{semicolon:true}}),d=c?.nodes?.find(p=>p.type==="decl"&&p.prop===l);t.overwriteCssVars?d?d.replaceWith(u):c?.append(u):d||c?.append(u);});return}let o=r.nodes?.find(c=>c.type==="rule"&&c.selector===i);!o&&Object.keys(n).length>0&&(o=A$1.rule({selector:i,nodes:[],raws:{semicolon:true,between:" ",before:`
|
|
102
|
+
`}}),r.append(o),r.insertBefore(o,A$1.comment({text:"---break---"}))),Object.entries(n).forEach(([c,a])=>{let f=`--${c.replace(/^--/,"")}`;f==="--sidebar-background"&&(f="--sidebar"),sa(a)&&(a=`hsl(${a})`);let l=A$1.decl({prop:f,value:a,raws:{semicolon:true}}),u=o?.nodes.find(d=>d.type==="decl"&&d.prop===f);t.overwriteCssVars?u?u.replaceWith(l):o?.append(l):u||o?.append(l);});});}}}function Np(e){return {postcssPlugin:"update-theme",Once(t){let r=Array.from(new Set(Object.keys(e).flatMap(i=>Object.keys(e[i]||{}))));if(!r.length)return;let s=fr(t),n=s.nodes?.filter(i=>i.type==="decl"&&i.prop.startsWith("--"));for(let i of r){let o=Object.values(e).find(u=>u[i])?.[i];if(!o)continue;if(i==="radius"){let u={sm:"calc(var(--radius) * 0.6)",md:"calc(var(--radius) * 0.8)",lg:"var(--radius)",xl:"calc(var(--radius) * 1.4)","2xl":"calc(var(--radius) * 1.8)","3xl":"calc(var(--radius) * 2.2)","4xl":"calc(var(--radius) * 2.6)"};for(let[d,p]of Object.entries(u)){let h=A$1.decl({prop:`--radius-${d}`,value:p,raws:{semicolon:true}});s?.nodes?.find(m=>m.type==="decl"&&m.prop===h.prop)||s?.append(h);}continue}let c=sa(o)||Vp(o)?`--color-${i.replace(/^--/,"")}`:`--${i.replace(/^--/,"")}`;c==="--color-sidebar-background"&&(c="--color-sidebar");let a=`var(--${i})`;c==="--color-sidebar"&&(a="var(--sidebar)");let f=A$1.decl({prop:c,value:a,raws:{semicolon:true}});s?.nodes?.find(u=>u.type==="decl"&&u.prop===f.prop)||(n?.length?s?.insertAfter(n[n.length-1],f):s?.append(f));}}}}function fr(e){let t=e.nodes.find(r=>r.type==="atrule"&&r.name==="theme"&&r.params==="inline");return t||(t=A$1.atRule({name:"theme",params:"inline",nodes:[],raws:{semicolon:true,between:" ",before:`
|
|
103
|
+
`}}),e.append(t),e.insertBefore(t,A$1.comment({text:"---break---"}))),t}function _p({params:e}){return {postcssPlugin:"add-custom-variant",Once(t){if(!t.nodes.find(s=>s.type==="atrule"&&s.name==="custom-variant")){let s=t.nodes.filter(i=>i.type==="atrule"&&i.name==="import"),n=A$1.atRule({name:"custom-variant",params:e,raws:{semicolon:true,before:`
|
|
104
|
+
`}});if(s.length>0){let i=s[s.length-1];t.insertAfter(i,n);}else t.insertAfter(t.nodes[0],n);t.insertBefore(n,A$1.comment({text:"---break---"}));}}}}function Fp(e){return {postcssPlugin:"update-tailwind-config",Once(t){if(!e?.plugins)return;let s=Lp(t)==="single"?"'":'"',n=t.nodes.filter(o=>o.type==="atrule"&&o.name==="plugin"),i=n[n.length-1]||t.nodes[0];for(let o of e.plugins){let c=o.replace(/^require\(["']|["']\)$/g,"");if(n.some(f=>f.params.replace(/["']/g,"")===c))continue;let a=A$1.atRule({name:"plugin",params:`${s}${c}${s}`,raws:{semicolon:true,before:`
|
|
105
|
+
`}});t.insertAfter(i,a),t.insertBefore(a,A$1.comment({text:"---break---"}));}}}}function Mp(e){return {postcssPlugin:"update-tailwind-config-keyframes",Once(t){if(!e?.theme?.extend?.keyframes)return;let r=fr(t),s=r.nodes?.filter(i=>i.type==="atrule"&&i.name==="keyframes"),n=z.record(z.string(),z.record(z.string(),z.string()));for(let[i,o]of Object.entries(e.theme.extend.keyframes)){if(typeof i!="string")continue;let c=n.safeParse(o);if(!c.success||s?.find(f=>f.type==="atrule"&&f.name==="keyframes"&&f.params===i))continue;let a=A$1.atRule({name:"keyframes",params:i,nodes:[],raws:{semicolon:true,between:" ",before:`
|
|
106
106
|
`}});for(let[f,l]of Object.entries(c.data)){let u=A$1.rule({selector:f,nodes:Object.entries(l).map(([d,p])=>A$1.decl({prop:d,value:p,raws:{semicolon:true,before:`
|
|
107
107
|
`,between:": "}})),raws:{semicolon:true,between:" ",before:`
|
|
108
|
-
`}});a.append(u);}r.append(a),r.insertBefore(a,A$1.comment({text:"---break---"}));}}}}function
|
|
109
|
-
`}});r.append(a);}}}}function
|
|
108
|
+
`}});a.append(u);}r.append(a),r.insertBefore(a,A$1.comment({text:"---break---"}));}}}}function Dp(e){return {postcssPlugin:"update-tailwind-config-animation",Once(t){if(!e?.theme?.extend?.animation)return;let r=fr(t),s=r.nodes?.filter(i=>i.type==="decl"&&i.prop.startsWith("--animate-")),n=z.record(z.string(),z.string()).safeParse(e.theme.extend.animation);if(n.success)for(let[i,o]of Object.entries(n.data)){let c=`--animate-${i}`;if(s?.find(f=>f.prop===c))continue;let a=A$1.decl({prop:c,value:o,raws:{semicolon:true,between:": ",before:`
|
|
109
|
+
`}});r.append(a);}}}}function Lp(e){return e.nodes[0].toString().includes("'")?"single":"double"}function sa(e){if(e.startsWith("hsl")||e.startsWith("rgb")||e.startsWith("#")||e.startsWith("oklch"))return false;let t=e.split(" ");return t.length===3&&t.slice(1,3).every(r=>r.includes("%"))}function Vp(e){return e.startsWith("hsl")||e.startsWith("rgb")||e.startsWith("#")||e.startsWith("oklch")||e.includes("--color-")}async function Gs(e,t,r){let s=e&&Object.keys(e).length>0,n=Object.keys(r.cssVars??{}).length>0;if(!t.resolvedPaths.tailwindCss||!s&&!n)return;r={silent:false,...r};let i=t.resolvedPaths.tailwindCss,o=S__default.relative(t.resolvedPaths.cwd,i),c=j(`Updating ${T.info(o)}`,{silent:r.silent}).start(),a=await promises.readFile(i,"utf8");n&&(a=await Ks(a,r.cssVars,t,{cleanupDefaultNextStyles:r.cleanupDefaultNextStyles,tailwindVersion:r.tailwindVersion,tailwindConfig:r.tailwindConfig,overwriteCssVars:r.overwriteCssVars})),s&&(a=await Up(a,e)),await promises.writeFile(i,a,"utf8"),c.succeed();}async function Up(e,t){let r=[Hp(t)],s=await A$1(r).process(e,{from:void 0}),n=s.css,i=s.root;if(i.nodes&&i.nodes.length>0){let o=i.nodes[i.nodes.length-1];o.type==="atrule"&&!o.nodes&&!n.trimEnd().endsWith(";")&&(n=n.trimEnd()+";");}return n=n.replace(/\/\* ---break--- \*\//g,""),n=n.replace(/(\n\s*\n)+/g,`
|
|
110
110
|
|
|
111
|
-
`),n=n.trimEnd(),n}function
|
|
111
|
+
`),n=n.trimEnd(),n}function Hp(e){return {postcssPlugin:"update-css",Once(t){for(let[r,s]of Object.entries(e))if(r.startsWith("@")){let n=r.match(/@([a-zA-Z-]+)\s*(.*)/);if(!n)continue;let[,i,o]=n;if(i==="import"){if(!t.nodes?.find(a=>a.type==="atrule"&&a.name==="import"&&a.params===o)){let a=A$1.atRule({name:"import",params:o,raws:{semicolon:true}}),f=t.nodes?.filter(l=>l.type==="atrule"&&l.name==="import");if(f&&f.length>0){let l=f[f.length-1];a.raws.before=`
|
|
112
112
|
`,t.insertAfter(l,a);}else !t.nodes||t.nodes.length,a.raws.before="",t.prepend(a);}}else if(i==="plugin"){let c=o;o&&!o.startsWith('"')&&!o.startsWith("'")&&(c=`"${o}"`);let a=l=>l.startsWith('"')&&l.endsWith('"')||l.startsWith("'")&&l.endsWith("'")?l.slice(1,-1):l;if(!t.nodes?.find(l=>l.type!=="atrule"||l.name!=="plugin"?false:a(l.params)===a(o))){let l=A$1.atRule({name:"plugin",params:c,raws:{semicolon:true,before:`
|
|
113
113
|
`}}),u=t.nodes?.filter(p=>p.type==="atrule"&&p.name==="import"),d=t.nodes?.filter(p=>p.type==="atrule"&&p.name==="plugin");if(d&&d.length>0){let p=d[d.length-1];t.insertAfter(p,l);}else if(u&&u.length>0){let p=u[u.length-1];t.insertAfter(p,l),t.insertBefore(l,A$1.comment({text:"---break---"})),t.insertAfter(l,A$1.comment({text:"---break---"}));}else t.prepend(l),t.insertBefore(l,A$1.comment({text:"---break---"})),t.insertAfter(l,A$1.comment({text:"---break---"}));}}else if(typeof s=="object"&&Object.keys(s).length===0){if(!t.nodes?.find(a=>a.type==="atrule"&&a.name===i&&a.params===o)){let a=A$1.atRule({name:i,params:o,raws:{semicolon:true}});t.append(a),t.insertBefore(a,A$1.comment({text:"---break---"}));}}else if(i==="keyframes"){let c=t.nodes?.find(l=>l.type==="atrule"&&l.name==="theme"&&l.params==="inline");c||(c=A$1.atRule({name:"theme",params:"inline",raws:{semicolon:true,between:" ",before:`
|
|
114
114
|
`}}),t.append(c),t.insertBefore(c,A$1.comment({text:"---break---"})));let a=c.nodes?.find(l=>l.type==="atrule"&&l.name==="keyframes"&&l.params===o),f;if(a?(f=A$1.atRule({name:"keyframes",params:o,raws:{semicolon:true,between:" ",before:`
|
|
@@ -125,21 +125,21 @@ Suggestion:`),I.error(e.suggestion)),vt()),e instanceof z.ZodError){I.error("Val
|
|
|
125
125
|
`}}),e.append(s)),typeof r=="object"){for(let[n,i]of Object.entries(r))if(n.startsWith("@")&&typeof i=="object"&&i!==null&&Object.keys(i).length===0){let o=n.match(/@([a-zA-Z-]+)\s*(.*)/);if(o){let[,c,a]=o;if(!s.nodes?.find(l=>l.type==="atrule"&&l.name===c&&l.params===a)){if(c==="apply"){let u=s.nodes?.find(d=>d.type==="atrule"&&d.name==="apply");if(u){u.params=twMerge(u.params,a);continue}}let l=A$1.atRule({name:c,params:a,raws:{semicolon:true,before:`
|
|
126
126
|
`}});s.append(l);}}}else if(typeof i=="string"){let o=A$1.decl({prop:n,value:i,raws:{semicolon:true,before:`
|
|
127
127
|
`}}),c=s.nodes?.find(a=>a.type==="decl"&&a.prop===n);c?c.replaceWith(o):s.append(o);}else if(typeof i=="object"){let o=n.startsWith("&")?t.replace(/^([^:]+)/,`$1${n.substring(1)}`):n;Le(e,o,i);}}else if(typeof r=="string")try{let i=A$1.parse(`.temp{${r}}`).first;i&&i.nodes&&i.nodes.forEach(o=>{if(o.type==="decl"){let c=o.clone();c.raws.before=`
|
|
128
|
-
`,s?.append(c);}});}catch(n){throw console.error("Error parsing rule content:",t,r,n),n}}async function Bs(e,t,r,s){let n=J(r.resolvedPaths.cwd,false),i=await
|
|
128
|
+
`,s?.append(c);}});}catch(n){throw console.error("Error parsing rule content:",t,r,n),n}}async function Bs(e,t,r,s){let n=J(r.resolvedPaths.cwd,false),i=await qp(r),o=i!=="expo";if(e=oa(e,n,{skipInstalled:o}),t=oa(t,n,{skipInstalled:o}),!e?.length&&!t?.length)return;s={silent:false,interactive:true,...s};let c=j("Installing dependencies.",{silent:s.silent})?.start(),a="";if(Bp(r)&&i==="npm")if(s.silent||!s.interactive)a="force";else {c.stopAndPersist(),I.warn(`
|
|
129
129
|
It looks like you are using React 19.
|
|
130
130
|
Some packages may fail to install due to peer dependency issues in npm (see ${V}/react-19).
|
|
131
|
-
`);let f=await Wc([{type:"select",name:"flag",message:"How would you like to proceed?",choices:[{title:"Use --force",value:"force"},{title:"Use --legacy-peer-deps",value:"legacy-peer-deps"}]}]);f&&(a=f.flag);}c?.start(),await
|
|
131
|
+
`);let f=await Wc([{type:"select",name:"flag",message:"How would you like to proceed?",choices:[{title:"Use --force",value:"force"},{title:"Use --legacy-peer-deps",value:"legacy-peer-deps"}]}]);f&&(a=f.flag);}c?.start(),await Jp(i,e,t,r.resolvedPaths.cwd,a),c?.succeed();}function oa(e=[],t,{skipInstalled:r=true}={}){let s=new Set([...Object.keys(t?.dependencies??{}),...Object.keys(t?.devDependencies??{}),...Object.keys(t?.optionalDependencies??{}),...Object.keys(t?.peerDependencies??{})]),n=new Map;for(let i of e){let o=Gp(i);if(!o){n.set(i,{dependency:i,hasSpecifier:true});continue}if(r&&!o.hasSpecifier&&s.has(o.name))continue;let c=n.get(o.name);(!c||!c.hasSpecifier&&o.hasSpecifier)&&n.set(o.name,{dependency:i,hasSpecifier:o.hasSpecifier});}return Array.from(n.values()).map(({dependency:i})=>i)}function Gp(e){if(/^[a-z][a-z0-9+.-]*:/i.test(e))return null;let t=e.startsWith("@")?e.match(/^(@[^/]+\/[^@/]+)(@.+)?$/):e.match(/^([^@/]+)(@.+)?$/);return t?{name:t[1],hasSpecifier:!!t[2]}:null}function Bp(e){let t=J(e.resolvedPaths.cwd,false);if(!t?.dependencies?.react)return false;let r=/^(?:\^|~)?19(?:\.\d+)*(?:-.*)?$/.test(t.dependencies.react),s=t.dependencies["react-day-picker"]?.startsWith("8");return r&&s}async function qp(e){return J(e.resolvedPaths.cwd,false)?.dependencies?.expo?"expo":Ds(e.resolvedPaths.cwd)}function Qe(e){for(let t of e)if(t.trim().startsWith("-"))throw new Error(`Invalid dependency "${t}": dependency names cannot start with "-".`)}async function Jp(e,t,r,s,n){if(e==="npm")return Yp(t,r,s,n);if(e==="deno")return Zp(t,r,s);if(e==="expo")return Xp(t,r,s);Qe(t),Qe(r),t?.length&&await execa(e,["add","--",...t],{cwd:s}),r?.length&&await execa(e,["add","-D","--",...r],{cwd:s});}async function Yp(e,t,r,s){Qe(e),Qe(t),e.length&&await execa("npm",["install",...s?[`--${s}`]:[],"--",...e],{cwd:r}),t.length&&await execa("npm",["install",...s?[`--${s}`]:[],"-D","--",...t],{cwd:r});}async function Zp(e,t,r){e?.length&&await execa("deno",["add",...e.map(s=>`npm:${s}`)],{cwd:r}),t?.length&&await execa("deno",["add","-D",...t.map(s=>`npm:${s}`)],{cwd:r});}async function Xp(e,t,r){Qe(e),Qe(t),e.length&&await execa("npx",["expo","install","--",...e],{cwd:r}),t.length&&await execa("npx",["expo","install","-- -D","--",...t],{cwd:r});}async function Js(e,t,r){if(!e||Object.keys(e).length===0)return {envVarsAdded:[],envFileUpdated:null,envFileCreated:null};r={silent:false,...r};let s=j("Adding environment variables.",{silent:r.silent})?.start(),n=t.resolvedPaths.cwd,i=S__default.join(n,".env.local"),o=Ut(n);o&&(i=o);let c=existsSync(i),a=S__default.basename(i),f=Object.entries(e).map(([p,h])=>`${p}=${h}`).join(`
|
|
132
132
|
`),l=[],u=null,d=null;if(c){let p=await promises.readFile(i,"utf-8"),h=Kt(p,f);if(l=Ht(p,f),l.length>0){if(await promises.writeFile(i,h,"utf-8"),u=S__default.relative(n,i),s?.succeed(`Added the following variables to ${T.info(a)}:`),!r.silent)for(let m of l)I.log(` ${T.success("+")} ${m}`);}else s?.stop();}else if(await promises.writeFile(i,f+`
|
|
133
|
-
`,"utf-8"),d=S__default.relative(n,i),l=Object.keys(e),s?.succeed(`Added the following variables to ${T.info(a)}:`),!r.silent)for(let p of l)I.log(` ${T.success("+")} ${p}`);return !r.silent&&l.length>0&&I.break(),{envVarsAdded:l,envFileUpdated:u,envFileCreated:d}}var
|
|
134
|
-
`);}o.push(y),ud(u)&&c.push(u.font.variable.replace("--",""));}}let a=new Set(["font-sans","font-serif","font-mono"]),f=[...c].reverse().find(u=>a.has(u)),l=c.filter(u=>!a.has(u));return f&&l.unshift(f),o.length>0&&yd(n,o,l,r),n.getFullText()}function cd(e){let t={};return e.font.subsets?.length&&(t.subsets=e.font.subsets),e.font.weight?.length&&(t.weight=e.font.weight),t.variable=e.font.variable,JSON.stringify(t).replace(/"([^"]+)":/g,"$1:").replace(/"/g,"'")}function dr(e){return nd.has(e)}function ld(e){return dr(e)?"html":null}function ud(e){return !e.font.selector&&dr(e.font.variable)}function fd(e,t){let r=pd(e);return dr(t)?r:`${r}${dd(t.replace(/^--font-/,""))}`}function pd(e){return e.split("_").map((t,r)=>r===0?t.toLowerCase():t.charAt(0).toUpperCase()+t.slice(1).toLowerCase()).join("")}function dd(e){return e.split("-").map(t=>t.charAt(0).toUpperCase()+t.slice(1)).join("")}function hd(e,t){let r=e.getVariableStatements();for(let s of r)for(let n of s.getDeclarations()){let i=n.getInitializer();if(!i||i.getKind()!==SyntaxKind.CallExpression)continue;let c=i.getArguments();if(c.length===0)continue;let a=c[0].getText();if(a.includes("variable:")&&a.includes(t))return n}return null}function md(e,t){let r=e.getVariableStatements();for(let s of r)for(let n of s.getDeclarations()){let i=n.getInitializer();if(!i||i.getKind()!==SyntaxKind.CallExpression)continue;let o=i;if(o.getExpression().getText()!==t)continue;let c=o.getArguments();if(!c.length)continue;let a=c[0].getText();if(a.includes("variable:")&&a.includes("--font-heading"))return true}return false}function gd(e){let t=e.getImportDeclarations();return t.length>0?t[t.length-1].getChildIndex()+1:0}function yd(e,t,r,s){let n=e.getDescendantsOfKind(SyntaxKind.JsxOpeningElement);for(let i of n){if(i.getTagNameNode().getText()!=="html")continue;let c=r.map(p=>`"${p}"`),a=t.map(p=>`${p}.variable`),f=[...c,...a],l=i.getAttribute("className");if(!l){bt(e,s),i.addAttribute({name:"className",initializer:`{cn(${f.join(", ")})}`});return}if(l.getKind()!==SyntaxKind.JsxAttribute)return;let u=l.asKindOrThrow(SyntaxKind.JsxAttribute),d=u.getInitializer();if(!d)return;if(d.getKind()===SyntaxKind.StringLiteral){let p=d.getText().slice(1,-1);bt(e,s),u.setInitializer(`{cn("${p}", ${f.join(", ")})}`);}else if(d.getKind()===SyntaxKind.JsxExpression){let p=d.asKindOrThrow(SyntaxKind.JsxExpression),h=p.getExpression();if(!h)return;let m=h.getText();if(m.startsWith("cn(")){let g=a.every(b=>m.includes(b)),x=r.every(b=>m.includes(`"${b}"`)),y=["font-sans","font-serif","font-mono"].filter(b=>!r.includes(b)).some(b=>m.includes(`"${b}"`));if(g&&x&&!y)continue;let w=xd(m,a);w=vd(w);let v=bd(w,f);p.replaceWithText(`{${v}}`);}else if(/^\w+\.variable$/.test(m)){if(a.includes(m)&&r.length===0)continue;bt(e,s);let x=(m.split(".")[0]??"").toLowerCase().includes("heading")||r.length===0;p.replaceWithText(x?`{cn(${m}, ${f.join(", ")})}`:`{cn(${f.join(", ")})}`);}else if(m.startsWith("`")&&m.endsWith("`")){let g=wd(m);bt(e,s);let x=new Set(f),y=new Set(["font-sans","font-serif","font-mono"].map(v=>`"${v}"`)),w=g.filter(v=>!x.has(v)&&!y.has(v));p.replaceWithText(`{cn(${[...w,...f].join(", ")})}`);}else bt(e,s),p.replaceWithText(`{cn(${m}, ${f.join(", ")})}`);}}}function bt(e,t){if(!e.getImportDeclaration(s=>s.getNamedImports().some(i=>i.getName()==="cn"))){let s=e.getImportDeclaration(n=>n.getModuleSpecifierValue().includes("/lib/utils"));s?s.getNamedImports().some(i=>i.getName()==="cn")||s.addNamedImport("cn"):e.addImportDeclaration({moduleSpecifier:t.aliases.utils,namedImports:["cn"]});}}function wd(e){let t=[],r=[],n=e.slice(1,-1).split(/(\$\{[^}]+\})/);for(let i of n)if(i)if(i.startsWith("${")&&i.endsWith("}")){let o=i.slice(2,-1).trim();o&&r.push(o);}else {let o=i.trim().split(/\s+/).filter(Boolean);for(let c of o)t.push(`"${c}"`);}return [...t,...r]}function xd(e,t){let r=e;for(let s of t)r=r.replace(new RegExp(`,?\\s*${s.replace(".","\\.")}`,"g"),"").replace(/cn\(\s*,/,"cn(");return r}function vd(e){let t=e;for(let r of ["font-sans","font-serif","font-mono"])t=t.replace(new RegExp(`,?\\s*"${r}"`,"g"),"").replace(/cn\(\s*,/,"cn(");return t}function bd(e,t){let r=t.join(", ");return e.replace(/\)$/,`, ${r})`)}async function ca(e,t,r){r={overwrite:false,silent:false,interactive:true,isNewProject:false,...r};let s=await kn(t);return s&&s.ui&&s.ui.resolvedPaths.cwd!==t.resolvedPaths.cwd?await Id(e,t,s,{...r,isRemote:e?.length===1&&!!e[0].match(/\/chat\/b\//)}):await Sd(e,t,{...r,skipFonts:r.skipFonts})}async function Sd(e,t,r){if(!e.length)return;let s=await la(e,t,r),n=await Ne(t);r.skipFonts||(s=await Ys(s,t));let i=Hs([s]);await Bs(s.dependencies,s.devDependencies,t,{silent:r.silent,interactive:r.interactive}),await _r(s.tailwind?.config,t,{silent:r.silent,tailwindVersion:n}),await Js(s.envVars,t,{silent:r.silent}),r.skipFonts||await Zs(s.fonts,t,{silent:r.silent}),await kr(s.files,t,{overwrite:r.overwrite,silent:r.silent,interactive:r.interactive,path:r.path,supportedFontMarkers:i});let o=await ua(s,e,t,r.overwriteCssVars);await Gs(s.css,t,{silent:r.silent,cssVars:s.cssVars,cleanupDefaultNextStyles:r.isNewProject,overwriteCssVars:o,tailwindVersion:n,tailwindConfig:s.tailwind?.config}),s.docs&&I.info(s.docs);}async function Id(e,t,r,s){if(!e.length)return;let n=await la(e,t,s),i=[],o=[],c=[],a=j("Installing components.")?.start(),f=r.ui,l=await Ne(f),u=Lt(t.resolvedPaths.cwd,f.resolvedPaths.ui);n=await Ys(n,t);let d=Hs([n]);await Bs(n.dependencies,n.devDependencies,f,{silent:true,interactive:s.interactive}),n.tailwind?.config&&(await _r(n.tailwind?.config,f,{silent:true,tailwindVersion:l}),o.push(S__default.relative(u,f.resolvedPaths.tailwindConfig))),n.envVars&&await Js(n.envVars,f,{silent:true}),await Zs(n.fonts,t,{silent:true});let p=new Map,h={"registry:ui":"ui","registry:hook":"hooks","registry:lib":"lib"},m=R=>Gt(R.target)??h[R.type||"registry:ui"]??"components",g=R=>R&&r[R]?r[R]:t;for(let R of n.files??[]){let E=m(R);p.has(E)||p.set(E,[]),p.get(E).push(R);}for(let R of Array.from(p.keys())){let E=p.get(R),k=g(R),P=(n.files??[]).filter(Te=>g(m(Te)).resolvedPaths.cwd===k.resolvedPaths.cwd),D=Lt(t.resolvedPaths.cwd,k.resolvedPaths.ui||k.resolvedPaths.cwd),X=await Rr(D,k.resolvedPaths.cwd)??k.resolvedPaths.cwd,hr=await kr(E,k,{overwrite:s.overwrite,silent:true,interactive:s.interactive,rootSpinner:a,isRemote:s.isRemote,isWorkspace:true,path:s.path,plannedFiles:P,supportedFontMarkers:d});i.push(...hr.filesCreated.map(Te=>S__default.relative(D,S__default.join(X,Te)))),o.push(...hr.filesUpdated.map(Te=>S__default.relative(D,S__default.join(X,Te)))),c.push(...hr.filesSkipped.map(Te=>S__default.relative(D,S__default.join(X,Te))));}let x=await ua(n,e,t,s.overwriteCssVars);await Gs(n.css,f,{silent:true,cssVars:n.cssVars,overwriteCssVars:x,tailwindVersion:l,tailwindConfig:n.tailwind?.config}),(n.cssVars||n.css)&&o.push(S__default.relative(u,f.resolvedPaths.tailwindCss)),a?.succeed();let y=Array.from(new Set(i)).sort(),w=Array.from(new Set(o.filter(R=>!i.includes(R)))).sort(),v=Array.from(new Set(c)).sort();if(!(y.length||w.length)&&!v.length&&j("No files updated.",{silent:s.silent})?.info(),y.length){j(`Created ${y.length} ${y.length===1?"file":"files"}:`,{silent:s.silent})?.succeed();for(let R of y)I.log(` - ${R}`);}if(w.length){j(`Updated ${w.length} ${w.length===1?"file":"files"}:`,{silent:s.silent})?.info();for(let R of w)I.log(` - ${R}`);}if(v.length){j(`Skipped ${v.length} ${v.length===1?"file":"files"}: (use --overwrite to overwrite)`,{silent:s.silent})?.info();for(let R of v)I.log(` - ${R}`);}n.docs&&I.info(n.docs);}async function la(e,t,r){let s=j("Checking registry.",{silent:r.silent})?.start(),n=r.resolvedTree??await Ye(e,ne(t));if(!n)throw s?.fail(),new Error("Failed to fetch components from registry.");try{Cd(n.files??[],t.resolvedPaths.cwd);}catch(i){throw s?.fail(),i}return s?.succeed(),n}async function ua(e,t,r,s){if(!(!e.cssVars||Object.keys(e.cssVars).length===0))return s??Ed(t,r)}async function Ed(e,t){let r=await Us(e,{config:t});return z.array(n).parse(r).some(n=>n.type==="registry:theme"||n.type==="registry:style"||n.type==="registry:font"||n.type==="registry:base")}function Cd(e,t){for(let r of e){let s=r?.target??r?.path;if(s&&!Qo(s,t))throw new Error(`We found an unsafe file path "${s}" in the registry item. Installation aborted.`)}}async function fa(e=process.cwd(),t={}){let r=t.processEnv??process.env;try{let{config:s}=await import('@dotenvx/dotenvx'),n=[".env.local",".env.development.local",".env.development",".env"];for(let i of n){let o=join(e,i);existsSync(o)&&s({path:o,overload:!1,quiet:!0,processEnv:r});}}catch(s){I.warn("Failed to load env files:",s);}return r}async function $d(e,t={}){if(e.length===0)return;let{config:r,cwd:s,...n}=t,i=d$1.safeParse(r);if(!i.success&&r&&"resolvedPaths"in r){let l=typeof r.resolvedPaths?.cwd=="string"?r.resolvedPaths.cwd:void 0;throw new We(S__default.resolve(s??l??process.cwd()),i.error,"config")}let o=i.success?i.data.resolvedPaths.cwd:void 0,c=S__default.resolve(s??o??process.cwd());if(s!==void 0&&o!==void 0&&c!==S__default.resolve(o))throw new Error("The provided cwd must match config.resolvedPaths.cwd.");let a=ne(i.success?i.data:{...r,resolvedPaths:{...r?.resolvedPaths,cwd:c}}),f=await fa(c,{processEnv:{...process.env}});return ve(async()=>{let l=await Ye(e,a,{useCache:true,requireUniversal:!i.success});if(!l)throw new Error("Failed to fetch components from registry.");if(!i.success&&!Td(l,a))throw new Error("A full project config is required to resolve target aliases.");await ca(e,a,{...n,interactive:false,overwriteCssVars:t.overwriteCssVars??(i.success?void 0:false),resolvedTree:l});},{env:f})}function Td(e,t){return (e.files??[]).every(r=>{let s=Gt(r.target);return !s||!!t.resolvedPaths[s]})}function _R(e,t){return e.length>0?e:Object.keys(t?.registries??{}).filter(r=>!(r in H))}var jd=8;async function Od(e,t,r){let s=new Array(e.length),n=0;async function i(){for(;n<e.length;){let c=n++;try{s[c]={status:"fulfilled",value:await r(e[c])};}catch(a){s[c]={status:"rejected",reason:a};}}}let o=Array.from({length:Math.min(t,e.length)},()=>i());return await Promise.all(o),s}async function Nd(e,t){return ve(()=>_d(e,t))}async function _d(e,t){let{query:r,types:s,limit:n,offset:i,config:o,useCache:c=false,continueOnError:a}=t||{},f=[],l=e.length===1,u=s?.map(E=>Wd(E)),d=l?{query:r,types:u,limit:n,offset:i}:{query:r,types:u,limit:n!==void 0?(i||0)+n:void 0,offset:void 0},p=await Od(e,jd,E=>zs(E,{config:o,useCache:c,searchParams:d})),h=[],m=[];for(let E=0;E<e.length;E++){let k=e[E],P=p[E];if(P.status==="rejected"){if(!a)throw P.reason;f.push({registry:k,message:P.reason instanceof Error?P.reason.message:String(P.reason)});continue}let D=(P.value.items||[]).map(X=>({name:X.name,title:X.title,type:X.type,description:X.description,registry:k,addCommandArgument:Ld(X.name,k)}));if(P.value.pagination){m.push({items:D,pagination:P.value.pagination});continue}h=h.concat(D);}if(l&&m.length===1){let[E]=m;return y.parse({pagination:E.pagination,items:E.items})}if(s?.length){let E=new Set(s.map(k=>et(k).toLowerCase()));h=h.filter(k=>k.type&&E.has(et(k.type).toLowerCase()));}r&&(h=Md(h,{query:r,limit:h.length,keys:["name","title","description"]}));let g=m.flatMap(E=>E.items).concat(h),x=m.reduce((E,k)=>E+k.pagination.total,0),y$1=i||0,w=n||g.length,v=x+h.length,b=m.some(E=>E.pagination.hasMore&&d.limit!==void 0&&E.items.length>=d.limit),R={pagination:{total:v,offset:y$1,limit:w,hasMore:y$1+w<g.length||b},items:g.slice(y$1,y$1+w),...f.length>0?{errors:f}:{}};return y.parse(R)}var Fd=z.object({name:z.string(),title:z.string().optional(),type:z.string().optional(),description:z.string().optional(),registry:z.string().optional(),addCommandArgument:z.string().optional()}).passthrough();function Md(e,t){t={limit:100,threshold:-1e4,...t};let s=Ad.go(t.query,e,{keys:t.keys,threshold:t.threshold,limit:t.limit}).map(n=>n.obj);return z.array(Fd).parse(s)}function Dd(e){try{return new URL(e),!0}catch{return false}}function Ld(e,t){let r=pt(t);if(r){let p=`${r.owner}/${r.repo}/${e}`;return r.ref?`${p}#${r.ref}`:p}if(!Dd(t))return `${t}/${e}`;let s=t.indexOf("://")+3,n=t.indexOf("/",s);if(n===-1){let p=t.indexOf("?",s);if(p!==-1){let h=t.substring(0,p),g=t.substring(p).replace(/\bregistry\b/g,e);return h+g}return t}let i=t.substring(0,n),o=t.substring(n),c=o.indexOf("?")!==-1?o.indexOf("?"):o.length,a=o.substring(0,c),f=o.substring(c),l=a.lastIndexOf("registry"),u=a;l!==-1&&(u=a.substring(0,l)+e+a.substring(l+8));let d=f.replace(/\bregistry\b/g,e);return i+u+d}var Vd=80;function et(e){return e?e.startsWith("registry:")?e.slice(9):e:""}function Wd(e){return e.startsWith("registry:")?e:`registry:${e}`}var zd=["registry:example","registry:internal"],Ud=f.options.filter(e=>!zd.includes(e)).map(e=>et(e));function FR(e){let t=new Set(Ud.map(r=>r.toLowerCase()));return e.filter(r=>!t.has(et(r).toLowerCase()))}function Hd(e,t=Vd){let r=e.trim().replace(/\s+/g," ");if(r.length<=t)return r;let s=r.slice(0,t-3).trimEnd(),n=s.lastIndexOf(" ");return `${(n>t*.6?s.slice(0,n):s).trimEnd()}...`}function Kd(e,t){let r=e.addCommandArgument??e.name,s=et(e.type),n=s?` (${s})`:"",i=t.showRegistry&&e.registry?` \xB7 ${e.registry}`:"",o=e.description?` \u2014 ${Hd(e.description)}`:"";return `- ${T.info(r)}${n}${i}${o}`}function pa(e){let{query:t,types:r,registries:s}=e,n="";return r?.length&&(n+=` of type ${r.map(i=>et(i)).join(", ")}`),t&&(n+=` matching ${T.info(`"${t}"`)}`),s.length>0&&(n+=` in ${s.join(", ")}`),n}function MR(e,t){let{pagination:r,items:s,errors:n}=e,i=t.registries.length>1;if(n?.length){for(let{registry:f,message:l}of n)I.warn(`Skipped ${f}: ${l}`);I.break();}if(s.length===0){I.warn(`No items found${pa(t)}.`);return}let o=`${r.total} item${r.total===1?"":"s"}`;I.info(`Found ${o}${pa(t)}`);let c=r.offset+1,a=Math.min(r.offset+r.limit,r.total);I.log(`Showing ${c}-${a} of ${r.total}`),I.break(),I.log(s.map(f=>Kd(f,{showRegistry:i})).join(`
|
|
135
|
-
`)),r.hasMore&&(I.break(),I.log(`More items available. Use ${T.info(`--offset ${r.offset+r.limit}`)} to see the next page.`));}var Qs=32;async function
|
|
133
|
+
`,"utf-8"),d=S__default.relative(n,i),l=Object.keys(e),s?.succeed(`Added the following variables to ${T.info(a)}:`),!r.silent)for(let p of l)I.log(` ${T.success("+")} ${p}`);return !r.silent&&l.length>0&&I.break(),{envVarsAdded:l,envFileUpdated:u,envFileCreated:d}}var id=new Set(["--font-sans","--font-serif","--font-mono"]);async function Ys(e,t){if(!e.fonts?.length)return e;let r=await Y(t.resolvedPaths.cwd);if(!r)return e;e.cssVars??={},e.cssVars.theme??={};let s=r.framework.name==="next-app"||r.framework.name==="next-pages";for(let n of e.fonts)if(s)e.cssVars.theme[n.font.variable]=`var(${n.font.variable})`;else {let i=n.name.replace("font-",""),o=n.font.dependency??`@fontsource-variable/${i}`;e.dependencies??=[],e.dependencies.push(o),e.css??={},e.css[`@import "${o}"`]={},e.cssVars.theme[n.font.variable]=n.font.family;}if(e.fonts.length>0){let n=new Map;for(let i of e.fonts){let o=i.font.selector??ud(i.font.variable);if(!o)continue;let c=i.font.variable.replace("--","");n.has(o)||n.set(o,[]),n.get(o).push(c);}e.css??={},e.css["@layer base"]??={};for(let[i,o]of Array.from(n.entries())){let c=o.join(" ");e.css["@layer base"][i]??={};let a=Object.keys(e.css["@layer base"][i]).find(f=>f.startsWith("@apply "));a?(delete e.css["@layer base"][i][a],e.css["@layer base"][i][`${a} ${c}`]={}):e.css["@layer base"][i][`@apply ${c}`]={};}}return e}async function Zs(e,t,r){if(!e?.length)return;let s=await Y(t.resolvedPaths.cwd);if(!s||s.framework.name!=="next-app"&&s.framework.name!=="next-pages")return;let n=j("Updating fonts.",{silent:r.silent})?.start();try{await od(e,t,s),n?.succeed("Updating fonts.");}catch(i){throw n?.fail("Failed to update fonts."),i}}async function od(e,t,r){let s=await ad(t,r);if(!s)return;let n=await promises.readFile(s,"utf-8"),i=await cd(n,e,t);i!==n&&await promises.writeFile(s,i,"utf-8");}async function ad(e,t){let r=e.resolvedPaths.cwd,s=t.isSrcDir,i=t.isTsx?"tsx":"jsx",o=s?[`src/app/layout.${i}`,`app/layout.${i}`]:[`app/layout.${i}`];for(let c of o){let a=S__default.join(r,c);if(existsSync(a))return a}return null}async function cd(e,t,r){let n=new Project({compilerOptions:{}}).createSourceFile("layout.tsx",e,{scriptKind:ScriptKind.TSX}),i=t.filter(u=>u.font.provider==="google"),o=[],c=[];for(let u of i){let d=u.font.import;if(!d)continue;let p=n.getImportDeclaration(w=>w.getModuleSpecifierValue()==="next/font/google"),h=false;p?(h=p.getNamedImports().some(v=>v.getName()===d),h||p.addNamedImport(d)):n.addImportDeclaration({moduleSpecifier:"next/font/google",namedImports:[d]});let m=pd(d,u.font.variable),g=ld(u),x=md(n,u.font.variable),y=m;if(!(h&&!x&&dr(u.font.variable)&&!gd(n,d))){if(x)x.setInitializer(`${d}(${g})`),x.getName()!==m&&x.rename(m),y=m;else {let w=yd(n);n.insertVariableStatement(w,{declarationKind:VariableDeclarationKind.Const,declarations:[{name:m,initializer:`${d}(${g})`}]}).appendWhitespace(`
|
|
134
|
+
`);}o.push(y),fd(u)&&c.push(u.font.variable.replace("--",""));}}let a=new Set(["font-sans","font-serif","font-mono"]),f=[...c].reverse().find(u=>a.has(u)),l=c.filter(u=>!a.has(u));return f&&l.unshift(f),o.length>0&&wd(n,o,l,r),n.getFullText()}function ld(e){let t={};return e.font.subsets?.length&&(t.subsets=e.font.subsets),e.font.weight?.length&&(t.weight=e.font.weight),t.variable=e.font.variable,JSON.stringify(t).replace(/"([^"]+)":/g,"$1:").replace(/"/g,"'")}function dr(e){return id.has(e)}function ud(e){return dr(e)?"html":null}function fd(e){return !e.font.selector&&dr(e.font.variable)}function pd(e,t){let r=dd(e);return dr(t)?r:`${r}${hd(t.replace(/^--font-/,""))}`}function dd(e){return e.split("_").map((t,r)=>r===0?t.toLowerCase():t.charAt(0).toUpperCase()+t.slice(1).toLowerCase()).join("")}function hd(e){return e.split("-").map(t=>t.charAt(0).toUpperCase()+t.slice(1)).join("")}function md(e,t){let r=e.getVariableStatements();for(let s of r)for(let n of s.getDeclarations()){let i=n.getInitializer();if(!i||i.getKind()!==SyntaxKind.CallExpression)continue;let c=i.getArguments();if(c.length===0)continue;let a=c[0].getText();if(a.includes("variable:")&&a.includes(t))return n}return null}function gd(e,t){let r=e.getVariableStatements();for(let s of r)for(let n of s.getDeclarations()){let i=n.getInitializer();if(!i||i.getKind()!==SyntaxKind.CallExpression)continue;let o=i;if(o.getExpression().getText()!==t)continue;let c=o.getArguments();if(!c.length)continue;let a=c[0].getText();if(a.includes("variable:")&&a.includes("--font-heading"))return true}return false}function yd(e){let t=e.getImportDeclarations();return t.length>0?t[t.length-1].getChildIndex()+1:0}function wd(e,t,r,s){let n=e.getDescendantsOfKind(SyntaxKind.JsxOpeningElement);for(let i of n){if(i.getTagNameNode().getText()!=="html")continue;let c=r.map(p=>`"${p}"`),a=t.map(p=>`${p}.variable`),f=[...c,...a],l=i.getAttribute("className");if(!l){bt(e,s),i.addAttribute({name:"className",initializer:`{cn(${f.join(", ")})}`});return}if(l.getKind()!==SyntaxKind.JsxAttribute)return;let u=l.asKindOrThrow(SyntaxKind.JsxAttribute),d=u.getInitializer();if(!d)return;if(d.getKind()===SyntaxKind.StringLiteral){let p=d.getText().slice(1,-1);bt(e,s),u.setInitializer(`{cn("${p}", ${f.join(", ")})}`);}else if(d.getKind()===SyntaxKind.JsxExpression){let p=d.asKindOrThrow(SyntaxKind.JsxExpression),h=p.getExpression();if(!h)return;let m=h.getText();if(m.startsWith("cn(")){let g=a.every(b=>m.includes(b)),x=r.every(b=>m.includes(`"${b}"`)),y=["font-sans","font-serif","font-mono"].filter(b=>!r.includes(b)).some(b=>m.includes(`"${b}"`));if(g&&x&&!y)continue;let w=vd(m,a);w=bd(w);let v=Rd(w,f);p.replaceWithText(`{${v}}`);}else if(/^\w+\.variable$/.test(m)){if(a.includes(m)&&r.length===0)continue;bt(e,s);let x=(m.split(".")[0]??"").toLowerCase().includes("heading")||r.length===0;p.replaceWithText(x?`{cn(${m}, ${f.join(", ")})}`:`{cn(${f.join(", ")})}`);}else if(m.startsWith("`")&&m.endsWith("`")){let g=xd(m);bt(e,s);let x=new Set(f),y=new Set(["font-sans","font-serif","font-mono"].map(v=>`"${v}"`)),w=g.filter(v=>!x.has(v)&&!y.has(v));p.replaceWithText(`{cn(${[...w,...f].join(", ")})}`);}else bt(e,s),p.replaceWithText(`{cn(${m}, ${f.join(", ")})}`);}}}function bt(e,t){if(!e.getImportDeclaration(s=>s.getNamedImports().some(i=>i.getName()==="cn"))){let s=e.getImportDeclaration(n=>n.getModuleSpecifierValue().includes("/lib/utils"));s?s.getNamedImports().some(i=>i.getName()==="cn")||s.addNamedImport("cn"):e.addImportDeclaration({moduleSpecifier:t.aliases.utils,namedImports:["cn"]});}}function xd(e){let t=[],r=[],n=e.slice(1,-1).split(/(\$\{[^}]+\})/);for(let i of n)if(i)if(i.startsWith("${")&&i.endsWith("}")){let o=i.slice(2,-1).trim();o&&r.push(o);}else {let o=i.trim().split(/\s+/).filter(Boolean);for(let c of o)t.push(`"${c}"`);}return [...t,...r]}function vd(e,t){let r=e;for(let s of t)r=r.replace(new RegExp(`,?\\s*${s.replace(".","\\.")}`,"g"),"").replace(/cn\(\s*,/,"cn(");return r}function bd(e){let t=e;for(let r of ["font-sans","font-serif","font-mono"])t=t.replace(new RegExp(`,?\\s*"${r}"`,"g"),"").replace(/cn\(\s*,/,"cn(");return t}function Rd(e,t){let r=t.join(", ");return e.replace(/\)$/,`, ${r})`)}async function ca(e,t,r){r={overwrite:false,silent:false,interactive:true,isNewProject:false,...r};let s=await kn(t);return s&&s.ui&&s.ui.resolvedPaths.cwd!==t.resolvedPaths.cwd?await Ed(e,t,s,{...r,isRemote:e?.length===1&&!!e[0].match(/\/chat\/b\//)}):await Id(e,t,{...r,skipFonts:r.skipFonts})}async function Id(e,t,r){if(!e.length)return;let s=await la(e,t,r),n=await Ne(t);r.skipFonts||(s=await Ys(s,t));let i=Hs([s]);await Bs(s.dependencies,s.devDependencies,t,{silent:r.silent,interactive:r.interactive}),await _r(s.tailwind?.config,t,{silent:r.silent,tailwindVersion:n}),await Js(s.envVars,t,{silent:r.silent}),r.skipFonts||await Zs(s.fonts,t,{silent:r.silent}),await kr(s.files,t,{overwrite:r.overwrite,silent:r.silent,interactive:r.interactive,path:r.path,supportedFontMarkers:i});let o=await ua(s,e,t,r.overwriteCssVars);await Gs(s.css,t,{silent:r.silent,cssVars:s.cssVars,cleanupDefaultNextStyles:r.isNewProject,overwriteCssVars:o,tailwindVersion:n,tailwindConfig:s.tailwind?.config}),s.docs&&I.info(s.docs);}async function Ed(e,t,r,s){if(!e.length)return;let n=await la(e,t,s),i=[],o=[],c=[],a=j("Installing components.")?.start(),f=r.ui,l=await Ne(f),u=Lt(t.resolvedPaths.cwd,f.resolvedPaths.ui);n=await Ys(n,t);let d=Hs([n]);await Bs(n.dependencies,n.devDependencies,f,{silent:true,interactive:s.interactive}),n.tailwind?.config&&(await _r(n.tailwind?.config,f,{silent:true,tailwindVersion:l}),o.push(S__default.relative(u,f.resolvedPaths.tailwindConfig))),n.envVars&&await Js(n.envVars,f,{silent:true}),await Zs(n.fonts,t,{silent:true});let p=new Map,h={"registry:ui":"ui","registry:hook":"hooks","registry:lib":"lib"},m=R=>Gt(R.target)??h[R.type||"registry:ui"]??"components",g=R=>R&&r[R]?r[R]:t;for(let R of n.files??[]){let E=m(R);p.has(E)||p.set(E,[]),p.get(E).push(R);}for(let R of Array.from(p.keys())){let E=p.get(R),k=g(R),P=(n.files??[]).filter(Te=>g(m(Te)).resolvedPaths.cwd===k.resolvedPaths.cwd),D=Lt(t.resolvedPaths.cwd,k.resolvedPaths.ui||k.resolvedPaths.cwd),X=await Rr(D,k.resolvedPaths.cwd)??k.resolvedPaths.cwd,hr=await kr(E,k,{overwrite:s.overwrite,silent:true,interactive:s.interactive,rootSpinner:a,isRemote:s.isRemote,isWorkspace:true,path:s.path,plannedFiles:P,supportedFontMarkers:d});i.push(...hr.filesCreated.map(Te=>S__default.relative(D,S__default.join(X,Te)))),o.push(...hr.filesUpdated.map(Te=>S__default.relative(D,S__default.join(X,Te)))),c.push(...hr.filesSkipped.map(Te=>S__default.relative(D,S__default.join(X,Te))));}let x=await ua(n,e,t,s.overwriteCssVars);await Gs(n.css,f,{silent:true,cssVars:n.cssVars,overwriteCssVars:x,tailwindVersion:l,tailwindConfig:n.tailwind?.config}),(n.cssVars||n.css)&&o.push(S__default.relative(u,f.resolvedPaths.tailwindCss)),a?.succeed();let y=Array.from(new Set(i)).sort(),w=Array.from(new Set(o.filter(R=>!i.includes(R)))).sort(),v=Array.from(new Set(c)).sort();if(!(y.length||w.length)&&!v.length&&j("No files updated.",{silent:s.silent})?.info(),y.length){j(`Created ${y.length} ${y.length===1?"file":"files"}:`,{silent:s.silent})?.succeed();for(let R of y)I.log(` - ${R}`);}if(w.length){j(`Updated ${w.length} ${w.length===1?"file":"files"}:`,{silent:s.silent})?.info();for(let R of w)I.log(` - ${R}`);}if(v.length){j(`Skipped ${v.length} ${v.length===1?"file":"files"}: (use --overwrite to overwrite)`,{silent:s.silent})?.info();for(let R of v)I.log(` - ${R}`);}n.docs&&I.info(n.docs);}async function la(e,t,r){let s=j("Checking registry.",{silent:r.silent})?.start(),n=r.resolvedTree??await Ye(e,ne(t));if(!n)throw s?.fail(),new Error("Failed to fetch components from registry.");try{kd(n.files??[],t.resolvedPaths.cwd);}catch(i){throw s?.fail(),i}return s?.succeed(),n}async function ua(e,t,r,s){if(!(!e.cssVars||Object.keys(e.cssVars).length===0))return s??Cd(t,r)}async function Cd(e,t){let r=await Us(e,{config:t});return z.array(n).parse(r).some(n=>n.type==="registry:theme"||n.type==="registry:style"||n.type==="registry:font"||n.type==="registry:base")}function kd(e,t){for(let r of e){let s=r?.target??r?.path;if(s&&!Qo(s,t))throw new Error(`We found an unsafe file path "${s}" in the registry item. Installation aborted.`)}}async function fa(e=process.cwd(),t={}){let r=t.processEnv??process.env;try{let{config:s}=await import('@dotenvx/dotenvx'),n=[".env.local",".env.development.local",".env.development",".env"];for(let i of n){let o=join(e,i);existsSync(o)&&s({path:o,overload:!1,quiet:!0,processEnv:r});}}catch(s){I.warn("Failed to load env files:",s);}return r}async function Td(e,t={}){if(e.length===0)return;let{config:r,cwd:s,...n}=t,i=d$1.safeParse(r);if(!i.success&&r&&"resolvedPaths"in r){let l=typeof r.resolvedPaths?.cwd=="string"?r.resolvedPaths.cwd:void 0;throw new We(S__default.resolve(s??l??process.cwd()),i.error,"config")}let o=i.success?i.data.resolvedPaths.cwd:void 0,c=S__default.resolve(s??o??process.cwd());if(s!==void 0&&o!==void 0&&c!==S__default.resolve(o))throw new Error("The provided cwd must match config.resolvedPaths.cwd.");let a=ne(i.success?i.data:{...r,resolvedPaths:{...r?.resolvedPaths,cwd:c}}),f=await fa(c,{processEnv:{...process.env}});return ve(async()=>{let l=await Ye(e,a,{useCache:true,requireUniversal:!i.success});if(!l)throw new Error("Failed to fetch components from registry.");if(!i.success&&!Ad(l,a))throw new Error("A full project config is required to resolve target aliases.");await ca(e,a,{...n,interactive:false,overwriteCssVars:t.overwriteCssVars??(i.success?void 0:false),resolvedTree:l});},{env:f})}function Ad(e,t){return (e.files??[]).every(r=>{let s=Gt(r.target);return !s||!!t.resolvedPaths[s]})}function FR(e,t){return e.length>0?e:Object.keys(t?.registries??{}).filter(r=>!(r in H))}var Od=8;async function Nd(e,t,r){let s=new Array(e.length),n=0;async function i(){for(;n<e.length;){let c=n++;try{s[c]={status:"fulfilled",value:await r(e[c])};}catch(a){s[c]={status:"rejected",reason:a};}}}let o=Array.from({length:Math.min(t,e.length)},()=>i());return await Promise.all(o),s}async function _d(e,t){return ve(()=>Fd(e,t))}async function Fd(e,t){let{query:r,types:s,limit:n,offset:i,config:o,useCache:c=false,continueOnError:a}=t||{},f=[],l=e.length===1,u=s?.map(E=>zd(E)),d=l?{query:r,types:u,limit:n,offset:i}:{query:r,types:u,limit:n!==void 0?(i||0)+n:void 0,offset:void 0},p=await Nd(e,Od,E=>zs(E,{config:o,useCache:c,searchParams:d})),h=[],m=[];for(let E=0;E<e.length;E++){let k=e[E],P=p[E];if(P.status==="rejected"){if(!a)throw P.reason;f.push({registry:k,message:P.reason instanceof Error?P.reason.message:String(P.reason)});continue}let D=(P.value.items||[]).map(X=>({name:X.name,title:X.title,type:X.type,description:X.description,registry:k,addCommandArgument:Vd(X.name,k)}));if(P.value.pagination){m.push({items:D,pagination:P.value.pagination});continue}h=h.concat(D);}if(l&&m.length===1){let[E]=m;return y.parse({pagination:E.pagination,items:E.items})}if(s?.length){let E=new Set(s.map(k=>et(k).toLowerCase()));h=h.filter(k=>k.type&&E.has(et(k.type).toLowerCase()));}r&&(h=Dd(h,{query:r,limit:h.length,keys:["name","title","description"]}));let g=m.flatMap(E=>E.items).concat(h),x=m.reduce((E,k)=>E+k.pagination.total,0),y$1=i||0,w=n||g.length,v=x+h.length,b=m.some(E=>E.pagination.hasMore&&d.limit!==void 0&&E.items.length>=d.limit),R={pagination:{total:v,offset:y$1,limit:w,hasMore:y$1+w<g.length||b},items:g.slice(y$1,y$1+w),...f.length>0?{errors:f}:{}};return y.parse(R)}var Md=z.object({name:z.string(),title:z.string().optional(),type:z.string().optional(),description:z.string().optional(),registry:z.string().optional(),addCommandArgument:z.string().optional()}).passthrough();function Dd(e,t){t={limit:100,threshold:-1e4,...t};let s=jd.go(t.query,e,{keys:t.keys,threshold:t.threshold,limit:t.limit}).map(n=>n.obj);return z.array(Md).parse(s)}function Ld(e){try{return new URL(e),!0}catch{return false}}function Vd(e,t){let r=pt(t);if(r){let p=`${r.owner}/${r.repo}/${e}`;return r.ref?`${p}#${r.ref}`:p}if(!Ld(t))return `${t}/${e}`;let s=t.indexOf("://")+3,n=t.indexOf("/",s);if(n===-1){let p=t.indexOf("?",s);if(p!==-1){let h=t.substring(0,p),g=t.substring(p).replace(/\bregistry\b/g,e);return h+g}return t}let i=t.substring(0,n),o=t.substring(n),c=o.indexOf("?")!==-1?o.indexOf("?"):o.length,a=o.substring(0,c),f=o.substring(c),l=a.lastIndexOf("registry"),u=a;l!==-1&&(u=a.substring(0,l)+e+a.substring(l+8));let d=f.replace(/\bregistry\b/g,e);return i+u+d}var Wd=80;function et(e){return e?e.startsWith("registry:")?e.slice(9):e:""}function zd(e){return e.startsWith("registry:")?e:`registry:${e}`}var Ud=["registry:example","registry:internal"],Hd=f.options.filter(e=>!Ud.includes(e)).map(e=>et(e));function MR(e){let t=new Set(Hd.map(r=>r.toLowerCase()));return e.filter(r=>!t.has(et(r).toLowerCase()))}function Kd(e,t=Wd){let r=e.trim().replace(/\s+/g," ");if(r.length<=t)return r;let s=r.slice(0,t-3).trimEnd(),n=s.lastIndexOf(" ");return `${(n>t*.6?s.slice(0,n):s).trimEnd()}...`}function Gd(e,t){let r=e.addCommandArgument??e.name,s=et(e.type),n=s?` (${s})`:"",i=t.showRegistry&&e.registry?` \xB7 ${e.registry}`:"",o=e.description?` \u2014 ${Kd(e.description)}`:"";return `- ${T.info(r)}${n}${i}${o}`}function pa(e){let{query:t,types:r,registries:s}=e,n="";return r?.length&&(n+=` of type ${r.map(i=>et(i)).join(", ")}`),t&&(n+=` matching ${T.info(`"${t}"`)}`),s.length>0&&(n+=` in ${s.join(", ")}`),n}function DR(e,t){let{pagination:r,items:s,errors:n}=e,i=t.registries.length>1;if(n?.length){for(let{registry:f,message:l}of n)I.warn(`Skipped ${f}: ${l}`);I.break();}if(s.length===0){I.warn(`No items found${pa(t)}.`);return}let o=`${r.total} item${r.total===1?"":"s"}`;I.info(`Found ${o}${pa(t)}`);let c=r.offset+1,a=Math.min(r.offset+r.limit,r.total);I.log(`Showing ${c}-${a} of ${r.total}`),I.break(),I.log(s.map(f=>Gd(f,{showRegistry:i})).join(`
|
|
135
|
+
`)),r.hasMore&&(I.break(),I.log(`More items available. Use ${T.info(`--offset ${r.offset+r.limit}`)} to see the next page.`));}var Qs=32;async function Bd(e){let{cwd:t,registryFile:r}=ba(e),s=await ha(r,{cwd:t}),n=Ra(s,t,r);return Jd(s,n,t)}async function qd(e,t){let{cwd:r,registryFile:s}=ba(t),n=await ha(s,{cwd:r}),i=n.registry.items.find(c=>c.name===e);if(!i)throw new Oe(e);let o=Ra(n,r,s);return Yd(i,n,o,r)}async function ha(e,t){let r=S.resolve(t.cwd,e),s=await wa(r),n=xa(s,r);da(n,r);let i={cwd:S.resolve(t.cwd),itemSources:new Map,itemSourcesByItem:new Map,firstIncludedFrom:new Map},o=!!n.include?.length;if(!o)return n.items.forEach((l,u)=>{let d={registryFile:r,registryDir:i.cwd,itemIndex:u};i.itemSources.set(l.name,d),i.itemSourcesByItem.set(l,d);}),{registry:n,itemSources:i.itemSources,itemSourcesByItem:i.itemSourcesByItem,usesInclude:o};if(S.basename(r)!=="registry.json")throw new $(`Invalid registry file at ${r}: registries that use include must be named registry.json.`,{registryFile:r});let c=await ya(r,n,i,[]);rh(c.items,i.itemSourcesByItem);let{include:a,...f}=c;return da(f,r),{registry:f,itemSources:i.itemSources,itemSourcesByItem:i.itemSourcesByItem,usesInclude:o}}function Jd(e,t,r){return {...e.registry,items:e.registry.items.map(s=>Xd(ma(s,e.itemSourcesByItem,t,r)))}}async function Yd(e,t,r,s){let n$1={...ma(e,t.itemSourcesByItem,r,s),$schema:"https://ui.shadcn.com/schema/registry-item.json"};return await Promise.all((e.files??[]).map(async(i,o)=>{let c=n$1.files?.[o];if(!c)return;let a=t.itemSourcesByItem.get(e),f=ga(e,i.path,t.itemSourcesByItem,s);c.content=await Zd(e.name,i.path,f,a);})),n.parse(n$1)}async function Zd(e,t,r,s){try{return await Vi.readFile(r,"utf-8")}catch(n){throw new ae(r,n,{message:`Failed to read file "${t}" for registry item "${e}" (${Rt(s)}). Expected file at ${r}.`,context:{itemName:e,itemFilePath:t,sourcePath:r},suggestion:"Make sure the file path is relative to the registry.json file that declares the item."})}}function ma(e,t,r,s){return {...e,files:e.files?.map(n=>({...n,path:Qd(e,n.path,t,r,s)}))}}function Xd(e){return {...e,files:e.files?.map(({content:t,...r})=>r)}}function ga(e,t,r,s){let n=r.get(e);return S.resolve(n?.registryDir??s,t)}function Qd(e,t,r,s,n){let i=ga(e,t,r,n);return S.relative(s,i).split(S.sep).join("/")}async function ya(e,t,r,s){if(va(e,r.cwd),s.length>=Qs)throw new $(`Registry include tree is too deep at ${e}. The maximum include depth is ${Qs}.`,{registryFile:e,context:{maxDepth:Qs},suggestion:"Flatten part of the registry include tree or reduce nested include depth."});if(s.includes(e))throw new $(sh([...s,e]),{registryFile:e});let n=s.at(-1)??e,i=r.firstIncludedFrom.get(e);if(i)throw new $(`Registry file included more than once: ${e}.
|
|
136
136
|
- first included from ${i}
|
|
137
137
|
- included again from ${n}
|
|
138
|
-
Each registry.json file can only appear once in the resolved include tree. Remove one include or move shared items into a single included registry.json.`,{registryFile:e,context:{firstSource:i,secondSource:n}});r.firstIncludedFrom.set(e,n);let o=[...s,e],c=S.dirname(e),a=[];for(let f of t.include??[]){let l=
|
|
139
|
-
${
|
|
138
|
+
Each registry.json file can only appear once in the resolved include tree. Remove one include or move shared items into a single included registry.json.`,{registryFile:e,context:{firstSource:i,secondSource:n}});r.firstIncludedFrom.set(e,n);let o=[...s,e],c=S.dirname(e),a=[];for(let f of t.include??[]){let l=eh(f,c,r.cwd,e),u=await wa(l),d=xa(u,l),p=await ya(l,d,r,o);a.push(...p.items);}return t.items.forEach((f,l)=>{th(f,e,c),r.itemSources.set(f.name,{registryFile:e,registryDir:c,itemIndex:l}),r.itemSourcesByItem.set(f,{registryFile:e,registryDir:c,itemIndex:l});}),{...t,items:[...a,...t.items]}}async function wa(e){try{return await Vi.readFile(e,"utf-8")}catch(t){throw new ae(e,t,{message:`Failed to read registry file at ${e}.`,context:{registryFile:e},suggestion:"Check that the registry.json file exists and that the path is correct."})}}function xa(e,t){let r;try{r=JSON.parse(e);}catch(n){throw new W(t,n,{subject:"registry file",context:{registryFile:t},suggestion:"Fix the JSON syntax in the registry.json file and try again."})}let s=p.safeParse(r);if(!s.success)throw new $(`Invalid registry file at ${t}:
|
|
139
|
+
${nh(s.error)}`,{registryFile:t,cause:s.error,suggestion:"Update the registry.json file so it matches the registry schema."});return s.data}function da(e,t){let r=[];if(e.name||r.push("name"),e.homepage||r.push("homepage"),r.length)throw new $(`Invalid root registry file at ${t}: root registry.json must define ${r.map(s=>`"${s}"`).join(" and ")}. Included registry.json files may omit these fields.`,{registryFile:t})}function eh(e,t,r,s){if(M(e))throw new $(`Invalid include "${e}" in ${s}: remote includes are not supported by shadcn build. Use a relative path to a registry.json file in the same repository.`,{registryFile:s,context:{includePath:e}});if(S.isAbsolute(e))throw new $(`Invalid include "${e}" in ${s}: include paths must be relative. Use a path like "./registry/ui/registry.json".`,{registryFile:s,context:{includePath:e}});if(Sa(e))throw new $(`Invalid include "${e}" in ${s}: include paths cannot use parent-directory traversal. Keep included registry.json files inside the registry root.`,{registryFile:s,context:{includePath:e}});if(S.basename(e)!=="registry.json")throw new $(`Invalid include "${e}" in ${s}: include paths must explicitly reference a registry.json file. Use a path like "./registry/ui/registry.json".`,{registryFile:s,context:{includePath:e}});let n=S.resolve(t,e);return va(n,r),n}function va(e,t){if(!Ia(e,t))throw new $(`Invalid registry file at ${e}: registry includes must stay inside ${t}.`,{registryFile:e,context:{cwd:t}})}function ba(e){return {cwd:S.resolve(e?.cwd??process.cwd()),registryFile:e?.registryFile??"registry.json"}}function Ra(e,t,r){return e.usesInclude?S.dirname(S.resolve(t,r)):t}function th(e,t,r){for(let s of e.files??[]){if(M(s.path))throw new $(`Invalid file path "${s.path}" for item "${e.name}" in ${t}: remote file paths are not supported by shadcn build.`,{registryFile:t,context:{itemName:e.name,filePath:s.path}});if(S.isAbsolute(s.path))throw new $(`Invalid file path "${s.path}" for item "${e.name}" in ${t}: file paths must be relative.`,{registryFile:t,context:{itemName:e.name,filePath:s.path}});if(Sa(s.path))throw new $(`Invalid file path "${s.path}" for item "${e.name}" in ${t}: file paths cannot use parent-directory traversal.`,{registryFile:t,context:{itemName:e.name,filePath:s.path}});let n=S.resolve(r,s.path);if(!Ia(n,r))throw new $(`Invalid file path "${s.path}" for item "${e.name}" in ${t}: file paths must stay inside the registry chunk directory.`,{registryFile:t,context:{itemName:e.name,filePath:s.path}})}}function rh(e,t){let r=new Map;for(let s of e){let n=r.get(s.name);if(!n){r.set(s.name,s);continue}let i=t.get(n),o=t.get(s);throw new $(`Duplicate registry item name "${s.name}". Registry item names must be unique.
|
|
140
140
|
- ${Rt(i)}
|
|
141
141
|
- ${Rt(o)}
|
|
142
|
-
Rename one of these items so each name is unique across the resolved registry.`,{context:{itemName:s.name,firstSource:Rt(i),secondSource:Rt(o)}})}}function Sa(e){return e.split(/[\\/]+/).includes("..")}function Ia(e,t){let r=S.relative(t,e);return !!r&&!r.startsWith("..")&&!S.isAbsolute(r)}function
|
|
142
|
+
Rename one of these items so each name is unique across the resolved registry.`,{context:{itemName:s.name,firstSource:Rt(i),secondSource:Rt(o)}})}}function Sa(e){return e.split(/[\\/]+/).includes("..")}function Ia(e,t){let r=S.relative(t,e);return !!r&&!r.startsWith("..")&&!S.isAbsolute(r)}function sh(e){return `Registry include cycle detected:
|
|
143
143
|
${e.map(t=>` - ${t}`).join(`
|
|
144
|
-
`)}`}function Rt(e){return e?`${e.registryFile} items[${e.itemIndex}]`:"unknown source"}function
|
|
145
|
-
`)}export{ne as $,jn as A,
|
|
144
|
+
`)}`}function Rt(e){return e?`${e.registryFile} items[${e.itemIndex}]`:"unknown source"}function nh(e){return e.errors.map(t=>` - ${t.path.length?t.path.join("."):"(root)"}: ${t.message}`).join(`
|
|
145
|
+
`)}export{ne as $,jn as A,Y as Aa,_e as B,Im as Ba,j as C,Ne as Ca,Bt as D,Em as Da,Jt as E,Hs as Ea,Zt as F,cb as Fa,Xt as G,Ks as Ga,Ln as H,Gs as Ha,Vn as I,Up as Ia,Qt as J,Bs as Ja,er as K,Ys as Ka,qc as L,Zs as La,Bn as M,ca as Ma,M as N,fa as Na,Jn as O,Bd as Oa,pt as P,qd as Pa,ri as Q,ha as Qa,im as R,Jd as Ra,om as S,Yd as Sa,am as T,Td as Ta,cm as U,FR as Ua,Mt as V,_d as Va,ut as W,Hd as Wa,Dt as X,MR as Xa,kn as Y,DR as Ya,lm as Z,$n as _,V as a,$y as aa,H as b,Ge as ba,oh as c,pw as ca,ah as d,be as da,T as e,Ye as ea,I as f,Ds as fa,Oh as g,mv as ga,Nh as h,Ho as ha,_h as i,ur as ia,Da as j,zs as ja,L as k,Us as ka,_ as l,Rp as la,je as m,Sp as ma,tt as n,Ip as na,rt as o,Vt as oa,st as p,Kv as pa,de as q,Gv as qa,ae as r,Bv as ra,W as s,tr as sa,$ as t,Ep as ta,Oe as u,qv as ua,nt as v,Jv as va,it as w,Zo as wa,ot as x,Cp as xa,he as y,kp as ya,J as z,Yv as za};
|