dga-ui-kit 0.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,334 @@
1
+ import {m,l,f,d as d$1,c as c$1,e,n,t,o,b as b$1,p,q as q$1,r,s,x,z as z$1,v,g}from'./chunk-RKP3CU2J.js';import {a,d,c,b,f as f$1}from'./chunk-QBEUCOED.js';import*as y from'path';import y__default,{basename}from'path';import {z}from'zod';import*as H from'fs/promises';import {tmpdir,homedir}from'os';import {green,cyan,yellow,red}from'kleur/colors';import {loadConfig,createMatchPath}from'tsconfig-paths';import {cosmiconfig}from'cosmiconfig';import Ke from'fast-glob';import ze from'fs-extra';import {existsSync,statSync,promises}from'fs';import Vt from'ora';import {Project,SyntaxKind,ScriptKind,QuoteKind}from'ts-morph';import {transformFromAstSync}from'@babel/core';import {parse}from'@babel/parser';import Gt from'@babel/plugin-transform-typescript';import*as Ue from'recast';import as from'prompts';import ge from'deepmerge';import {HttpsProxyAgent}from'https-proxy-agent';import Ks from'node-fetch';import {createHash}from'crypto';import Us from'stringify-object';import pn from'fuzzysort';var se=process.env.REGISTRY_URL??"https://ui.shadcn.com/r",Oe="new-york-v4",Ar=[{name:"dga",label:"DGA (Saudi Green)"},{name:"neutral",label:"Neutral"},{name:"gray",label:"Gray"},{name:"zinc",label:"Zinc"},{name:"stone",label:"Stone"},{name:"slate",label:"Slate"}],L={"@shadcn":`${se}/styles/{style}/{name}.json`};var yn=[{name:"toast",deprecatedBy:"sonner",message:"The toast component is deprecated. Use the sonner component instead."},{name:"toaster",deprecatedBy:"sonner",message:"The toaster component is deprecated. Use the sonner component instead."}];function fe(e){return e.replace(/\${(\w+)}/g,(r,t)=>process.env[t]||"")}function ue(e){let r=[],t=/\${(\w+)}/g,s;for(;(s=t.exec(e))!==null;)r.push(s[1]);return r}var N={NOT_FOUND:"NOT_FOUND",UNAUTHORIZED:"UNAUTHORIZED",FORBIDDEN:"FORBIDDEN",FETCH_ERROR:"FETCH_ERROR",NOT_CONFIGURED:"NOT_CONFIGURED",INVALID_CONFIG:"INVALID_CONFIG",MISSING_ENV_VARS:"MISSING_ENV_VARS",LOCAL_FILE_ERROR:"LOCAL_FILE_ERROR",PARSE_ERROR:"PARSE_ERROR",VALIDATION_ERROR:"VALIDATION_ERROR",UNKNOWN_ERROR:"UNKNOWN_ERROR"},C=class extends Error{code;statusCode;context;suggestion;timestamp;cause;constructor(r,t={}){super(r),this.name="RegistryError",this.code=t.code||N.UNKNOWN_ERROR,this.statusCode=t.statusCode,this.cause=t.cause,this.context=t.context,this.suggestion=t.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}}},Z=class extends C{constructor(t,s){let n=`The item at ${t} was not found. It may not exist at the registry.`;super(n,{code:N.NOT_FOUND,statusCode:404,cause:s,context:{url:t},suggestion:"Check if the item name is correct and the registry URL is accessible."});this.url=t;this.name="RegistryNotFoundError";}},he=class extends C{constructor(t,s){let n=`You are not authorized to access the item at ${t}. If this is a remote registry, you may need to authenticate.`;super(n,{code:N.UNAUTHORIZED,statusCode:401,cause:s,context:{url:t},suggestion:"Check your authentication credentials and environment variables."});this.url=t;this.name="RegistryUnauthorizedError";}},ye=class extends C{constructor(t,s){let n=`You are not authorized to access the item at ${t}. If this is a remote registry, you may need to authenticate.`;super(n,{code:N.FORBIDDEN,statusCode:403,cause:s,context:{url:t},suggestion:"Check your authentication credentials and environment variables."});this.url=t;this.name="RegistryForbiddenError";}},xe=class extends C{constructor(t,s,n,i){let o=s?`Failed to fetch from registry (${s}): ${t}`:`Failed to fetch from registry: ${t}`,a=typeof i=="string"&&i?`${o} - ${i}`:o,d="Check your network connection and try again.";s===404?d="The requested resource was not found. Check the URL or item name.":s===500?d="The registry server encountered an error. Try again later.":s&&s>=400&&s<500&&(d="There was a client error. Check your request parameters.");super(a,{code:N.FETCH_ERROR,statusCode:s,cause:i,context:{url:t,responseBody:n},suggestion:d});this.url=t;this.responseBody=n;this.name="RegistryFetchError";}},M=class extends C{constructor(t){let s=t?`Unknown registry "${t}". Make sure it is defined in components.json as follows:
2
+ {
3
+ "registries": {
4
+ "${t}": "[URL_TO_REGISTRY]"
5
+ }
6
+ }`:'Unknown registry. Make sure it is defined in components.json under "registries".';super(s,{code:N.NOT_CONFIGURED,context:{registryName:t},suggestion:"Add the registry configuration to your components.json file. Consult the registry documentation for the correct format."});this.registryName=t;this.name="RegistryNotConfiguredError";}},ne=class extends C{constructor(t,s){super(`Failed to read local registry file: ${t}`,{code:N.LOCAL_FILE_ERROR,cause:s,context:{filePath:t},suggestion:"Check if the file exists and you have read permissions."});this.filePath=t;this.name="RegistryLocalFileError";}},A=class extends C{constructor(t,s){let n=`Failed to parse registry item: ${t}`;s instanceof z.ZodError&&(n=`Failed to parse registry item: ${t}
7
+ ${s.errors.map(i=>` - ${i.path.join(".")}: ${i.message}`).join(`
8
+ `)}`);super(n,{code:N.PARSE_ERROR,cause:s,context:{item:t},suggestion:"The registry item may be corrupted or have an invalid format. Please make sure it returns a valid JSON object. See https://ui.shadcn.com/schema/registry-item.json."});this.item=t;this.parseError=s,this.name="RegistryParseError";}parseError},we=class extends C{constructor(t,s){let n=`Registry "${t}" requires the following environment variables:
9
+
10
+ `+s.map(i=>` \u2022 ${i}`).join(`
11
+ `);super(n,{code:N.MISSING_ENV_VARS,context:{registryName:t,missingVars:s},suggestion:"Set the required environment variables to your .env or .env.local file."});this.registryName=t;this.missingVars=s;this.name="RegistryMissingEnvironmentVariablesError";}},ve=class extends C{constructor(t){let s=`Invalid registry namespace: "${t}". Registry names must start with @ (e.g., @shadcn, @v0).`;super(s,{code:N.VALIDATION_ERROR,context:{name:t},suggestion:"Use a valid registry name starting with @ or provide a direct URL to the registry."});this.name=t;this.name="RegistryInvalidNamespaceError";}};var Le=class extends C{constructor(t,s){let n=`Invalid components.json configuration in ${t}.`;s instanceof z.ZodError&&(n=`Invalid components.json configuration in ${t}:
12
+ ${s.errors.map(i=>` - ${i.path.join(".")}: ${i.message}`).join(`
13
+ `)}`);super(n,{code:N.INVALID_CONFIG,cause:s,context:{cwd:t},suggestion:"Check your components.json file for syntax errors or invalid configuration. Run 'npx shadcn@latest init' to regenerate a valid configuration."});this.cwd=t;this.name="ConfigParseError";}},be=class extends C{parseError;constructor(r){let t="Failed to parse registries index";if(r instanceof z.ZodError){let s=r.errors.filter(n=>n.path.length>0).map(n=>`"${n.path[0]}"`).filter((n,i,o)=>o.indexOf(n)===i);s.length>0?t=`Failed to parse registries index. Invalid registry namespace(s): ${s.join(", ")}
14
+ ${r.errors.map(n=>` - ${n.path.join(".")}: ${n.message}`).join(`
15
+ `)}`:t=`Failed to parse registries index:
16
+ ${r.errors.map(n=>` - ${n.path.join(".")}: ${n.message}`).join(`
17
+ `)}`;}super(t,{code:N.PARSE_ERROR,cause:r,context:{parseError:r},suggestion:"The registries index may be corrupted or have invalid registry namespace format. Registry names must start with @ (e.g., @shadcn, @example)."}),this.parseError=r,this.name="RegistriesIndexParseError";}};var wt=/^(@[a-zA-Z0-9](?:[a-zA-Z0-9-_]*[a-zA-Z0-9])?)\/(.+)$/;function ie(e){if(!e.startsWith("@"))return {registry:null,item:e};let r=e.match(wt);return r?{registry:r[1],item:r[2]}:{registry:null,item:e}}var $={"next-app":{name:"next-app",label:"Next.js",links:{installation:"https://ui.shadcn.com/docs/installation/next",tailwind:"https://tailwindcss.com/docs/guides/nextjs"}},"next-pages":{name:"next-pages",label:"Next.js",links:{installation:"https://ui.shadcn.com/docs/installation/next",tailwind:"https://tailwindcss.com/docs/guides/nextjs"}},remix:{name:"remix",label:"Remix",links:{installation:"https://ui.shadcn.com/docs/installation/remix",tailwind:"https://tailwindcss.com/docs/guides/remix"}},"react-router":{name:"react-router",label:"React Router",links:{installation:"https://ui.shadcn.com/docs/installation/react-router",tailwind:"https://tailwindcss.com/docs/installation/framework-guides/react-router"}},vite:{name:"vite",label:"Vite",links:{installation:"https://ui.shadcn.com/docs/installation/vite",tailwind:"https://tailwindcss.com/docs/guides/vite"}},astro:{name:"astro",label:"Astro",links:{installation:"https://ui.shadcn.com/docs/installation/astro",tailwind:"https://tailwindcss.com/docs/guides/astro"}},laravel:{name:"laravel",label:"Laravel",links:{installation:"https://ui.shadcn.com/docs/installation/laravel",tailwind:"https://tailwindcss.com/docs/guides/laravel"}},"tanstack-start":{name:"tanstack-start",label:"TanStack Start",links:{installation:"https://ui.shadcn.com/docs/installation/tanstack",tailwind:"https://tailwindcss.com/docs/installation/using-postcss"}},gatsby:{name:"gatsby",label:"Gatsby",links:{installation:"https://ui.shadcn.com/docs/installation/gatsby",tailwind:"https://tailwindcss.com/docs/guides/gatsby"}},expo:{name:"expo",label:"Expo",links:{installation:"https://ui.shadcn.com/docs/installation/expo",tailwind:"https://www.nativewind.dev/docs/getting-started/installation"}},manual:{name:"manual",label:"Manual",links:{installation:"https://ui.shadcn.com/docs/installation/manual",tailwind:"https://tailwindcss.com/docs/installation"}}};var I={error:red,warn:yellow,info:cyan,success:green};async function O(e,r){return createMatchPath(r.absoluteBaseUrl,r.paths)(e,void 0,()=>true,[".ts",".tsx",".jsx",".js",".css"])}var Dn="@/components",zn="@/lib/utils",Kn="app/globals.css",_n="tailwind.config.js";var Ne=cosmiconfig("components",{searchPlaces:["components.json"]});async function Fe(e){let r=await It(e);return r?(r.iconLibrary||(r.iconLibrary=r.style==="new-york"?"radix":"lucide"),await tr(e,r)):null}async function tr(e,r){r.registries={...L,...r.registries||{}};let t=await loadConfig(e);if(t.resultType==="failed")throw new Error(`Failed to load ${r.tsx?"tsconfig":"jsconfig"}.json. ${t.message??""}`.trim());return d$1.parse({...r,resolvedPaths:{cwd:e,tailwindConfig:r.tailwind.config?y__default.resolve(e,r.tailwind.config):"",tailwindCss:y__default.resolve(e,r.tailwind.css),utils:await O(r.aliases.utils,t),components:await O(r.aliases.components,t),ui:r.aliases.ui?await O(r.aliases.ui,t):y__default.resolve(await O(r.aliases.components,t)??e,"ui"),lib:r.aliases.lib?await O(r.aliases.lib,t):y__default.resolve(await O(r.aliases.utils,t)??e,".."),hooks:r.aliases.hooks?await O(r.aliases.hooks,t):y__default.resolve(await O(r.aliases.components,t)??e,"..","hooks")}})}async function It(e){try{let r=await Ne.search(e);if(!r)return null;let t=c$1.parse(r.config);if(t.registries){for(let s of Object.keys(t.registries))if(s in L)throw new Error(`"${s}" is a built-in registry and cannot be overridden.`)}return t}catch(r){let t=`${e}/components.json`;throw r instanceof Error&&r.message.includes("reserved registry")?r:new Error(`Invalid configuration found in ${I.info(t)}.`)}}async function Vn(e$1){let r={};for(let s of Object.keys(e$1.aliases)){if(!jt(s,e$1))continue;let n=e$1.resolvedPaths[s],i=await Pt(e$1.resolvedPaths.cwd,n);if(!i){r[s]=e$1;continue}r[s]=await Fe(i);}let t=e.safeParse(r);return t.success?t.data:null}async function Pt(e,r){let t=At(e,r),s=y__default.relative(t,r),i=(await Ke.glob("**/package.json",{cwd:t,deep:3,ignore:["**/node_modules/**","**/dist/**","**/build/**","**/public/**"]})).map(o=>y__default.dirname(o)).find(o=>s.startsWith(o));return i?y__default.join(t,i):null}function jt(e,r){return Object.keys(r.resolvedPaths).filter(t=>t!=="utils").includes(e)}function At(e,r){let t=e.split(y__default.sep),s=r.split(y__default.sep),n=[];for(let i=0;i<Math.min(t.length,s.length)&&t[i]===s[i];i++)n.push(t[i]);return n.join(y__default.sep)}async function $r(e,r){return (await W(e))?.tailwindVersion==="v4"?"new-york-v4":r}function Or(e){let r={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:{...L}};return e?{...r,...e,resolvedPaths:{...r.resolvedPaths,...e.resolvedPaths||{}},tailwind:{...r.tailwind,...e.tailwind||{}},aliases:{...r.aliases,...e.aliases||{}},registries:{...r.registries,...e.registries||{}}}:r}function sr(e="",r=true){let t=y__default.join(e,"package.json");return ze.readJSONSync(t,{throws:r})}var _e=["**/node_modules/**",".next","public","dist","build"];z.object({compilerOptions:z.object({paths:z.record(z.string().or(z.array(z.string())))})});async function W(e){let[r,t,s,n,i,o,a,d]=await Promise.all([Ke.glob("**/{next,vite,astro,app}.config.*|gatsby-config.*|composer.json|react-router.config.*",{cwd:e,deep:3,ignore:_e}),ze.pathExists(y__default.resolve(e,"src")),Kt(e),Dt(e),Ft(e),Lr(e),zt(e),sr(e,false)]),l=await ze.pathExists(y__default.resolve(e,`${t?"src/":""}app`)),c={framework:$.manual,isSrcDir:t,isRSC:false,isTsx:s,tailwindConfigFile:n,tailwindCssFile:i,tailwindVersion:o,frameworkVersion:null,aliasPrefix:a};if(r.find(p=>p.startsWith("next.config."))?.length)return c.framework=l?$["next-app"]:$["next-pages"],c.isRSC=l,c.frameworkVersion=await Nt(c.framework,d),c;if(r.find(p=>p.startsWith("astro.config."))?.length)return c.framework=$.astro,c;if(r.find(p=>p.startsWith("gatsby-config."))?.length)return c.framework=$.gatsby,c;if(r.find(p=>p.startsWith("composer.json"))?.length)return c.framework=$.laravel,c;if(Object.keys(d?.dependencies??{}).find(p=>p.startsWith("@remix-run/")))return c.framework=$.remix,c;if([...Object.keys(d?.dependencies??{}),...Object.keys(d?.devDependencies??{})].find(p=>p.startsWith("@tanstack/react-start")))return c.framework=$["tanstack-start"],c;if(r.find(p=>p.startsWith("react-router.config."))?.length)return c.framework=$["react-router"],c;if(r.find(p=>p.startsWith("vite.config."))?.length)return c.framework=$.vite,c;let f=r.find(p=>p.startsWith("app.config"));return f?.length&&(await ze.readFile(y__default.resolve(e,f),"utf8")).includes("defineConfig")?(c.framework=$.vite,c):(d?.dependencies?.expo&&(c.framework=$.expo),c)}async function Nt(e,r){if(!r||!["next-app","next-pages"].includes(e.name))return null;let t=r.dependencies?.next||r.devDependencies?.next;if(!t)return null;let s=t.match(/^[\^~]?(\d+\.\d+\.\d+)/);if(s)return s[1];let n=t.match(/(\d+\.\d+\.\d+)/);return n?n[1]:t}async function Lr(e){let[r,t]=await Promise.all([sr(e,false),Fe(e)]);return t?.tailwind?.config===""?"v4":!r?.dependencies?.tailwindcss&&!r?.devDependencies?.tailwindcss?null:/^(?:\^|~)?3(?:\.\d+)*(?:-.*)?$/.test(r?.dependencies?.tailwindcss||r?.devDependencies?.tailwindcss||"")?"v3":"v4"}async function Ft(e){let[r,t]=await Promise.all([Ke.glob(["**/*.css","**/*.scss"],{cwd:e,deep:5,ignore:_e}),Lr(e)]);if(!r.length)return null;for(let n of r){let i=await ze.readFile(y__default.resolve(e,n),"utf8");if(i.includes('@import "tailwindcss"')||i.includes("@import 'tailwindcss'")||i.includes("@tailwind base"))return n}return null}async function Dt(e){let r=await Ke.glob("tailwind.config.*",{cwd:e,deep:3,ignore:_e});return r.length?r[0]:null}async function zt(e){let r=await loadConfig(e);if(r?.resultType==="failed"||!Object.entries(r?.paths).length)return null;for(let[t,s]of Object.entries(r.paths))if(s.includes("./*")||s.includes("./src/*")||s.includes("./app/*")||s.includes("./resources/js/*"))return t.replace(/\/\*$/,"")??null;return Object.keys(r?.paths)?.[0].replace(/\/\*$/,"")??null}async function Kt(e){return (await Ke.glob("tsconfig.*",{cwd:e,deep:1,ignore:_e})).length>0}async function si(e,r=null){let[t,s]=await Promise.all([Fe(e),r?Promise.resolve(r):W(e)]);if(t)return t;if(!s||!s.tailwindCssFile||s.tailwindVersion==="v3"&&!s.tailwindConfigFile)return null;let n={$schema:"https://ui.shadcn.com/schema.json",rsc:s.isRSC,tsx:s.isTsx,style:"new-york",tailwind:{config:s.tailwindConfigFile??"",baseColor:"zinc",css:s.tailwindCssFile,cssVariables:true,prefix:""},iconLibrary:"lucide",aliases:{components:`${s.aliasPrefix}/components`,ui:`${s.aliasPrefix}/components/ui`,hooks:`${s.aliasPrefix}/hooks`,lib:`${s.aliasPrefix}/lib`,utils:`${s.aliasPrefix}/lib/utils`}};return await tr(e,n)}async function Ve(e){if(!e.resolvedPaths?.cwd)return "v3";let r=await W(e.resolvedPaths.cwd);return r?.tailwindVersion?r.tailwindVersion:null}function Nr(e,r,t={}){let{ignoreImports:s=false}=t,n=e.replace(/\r\n/g,`
18
+ `).trim(),i=r.replace(/\r\n/g,`
19
+ `).trim();if(n===i)return true;if(!s)return false;let o=/^(import\s+(?:type\s+)?(?:\*\s+as\s+\w+|\{[^}]*\}|\w+)?(?:\s*,\s*(?:\{[^}]*\}|\w+))?\s+from\s+["'])([^"']+)(["'])/gm,a=c=>c.replace(o,(f,p,x,u)=>{if(x.startsWith("."))return `${p}${x}${u}`;let w=x.split("/"),g=w[w.length-1];return `${p}@normalized/${g}${u}`}),d=a(n),l=a(i);return d===l}function Q(e){let r=y__default.basename(e);return /^\.env(\.|$)/.test(r)}function Dr(e){let r=[".env.local",".env",".env.development.local",".env.development"];for(let t of r){let s=y__default.join(e,t);if(existsSync(s))return s}return null}function ae(e){let r=e.split(`
20
+ `),t={};for(let s of r){let n=s.trim();if(!n||n.startsWith("#"))continue;let i=n.indexOf("=");if(i===-1)continue;let o=n.substring(0,i).trim(),a=n.substring(i+1).trim();o&&(t[o]=a.replace(/^["']|["']$/g,""));}return t}function zr(e,r){let t=ae(e),s=ae(r),n=[];for(let i of Object.keys(s))i in t||n.push(i);return n}function Kr(e,r){let t=ae(e),s=ae(r),n=e.trimEnd();n&&!n.endsWith(`
21
+ `)&&(n+=`
22
+ `);let i=[];for(let[o,a]of Object.entries(s))o in t||i.push(`${o}=${a}`);return i.length>0?(n&&(n+=`
23
+ `),n+=i.join(`
24
+ `),n+`
25
+ `):n&&!n.endsWith(`
26
+ `)?n+`
27
+ `:n}var E={error(...e){console.log(I.error(e.join(" ")));},warn(...e){console.log(I.warn(e.join(" ")));},info(...e){console.log(I.info(e.join(" ")));},success(...e){console.log(I.success(e.join(" ")));},log(...e){console.log(e.join(" "));},break(){console.log("");}};function X(e,r){return Vt({text:e,isSilent:r?.silent})}var We=async({sourceFile:e,config:r,isRemote:t})=>{let s=r.aliases?.utils,i=`${typeof s=="string"&&s.includes("/")?s.split("/")[0]:"@"}/lib/utils`;if(![".tsx",".ts",".jsx",".js"].includes(e.getExtension()))return e;for(let o of e.getImportStringLiterals()){let a=Ut(o.getLiteralValue(),r,t);if(o.setLiteralValue(a),i===a||a==="@/lib/utils"){if(!o.getFirstAncestorByKind(SyntaxKind.ImportDeclaration)?.getNamedImports().some(c=>c.getName()==="cn")||!r.aliases.utils)continue;o.setLiteralValue(i===a?a.replace(i,r.aliases.utils):r.aliases.utils);}}return e};function Ut(e,r,t=false){if(!e.startsWith("@/")&&!t)return e;if(t&&e.startsWith("@/")&&(e=e.replace(/^@\//,"@/registry/new-york/")),!e.startsWith("@/registry/")){let s=r.aliases.components.split("/")[0];return e.replace(/^@\//,`${s}/`)}return e.match(/^@\/registry\/(.+)\/ui/)?e.replace(/^@\/registry\/(.+)\/ui/,r.aliases.ui??`${r.aliases.components}/ui`):r.aliases.components&&e.match(/^@\/registry\/(.+)\/components/)?e.replace(/^@\/registry\/(.+)\/components/,r.aliases.components):r.aliases.lib&&e.match(/^@\/registry\/(.+)\/lib/)?e.replace(/^@\/registry\/(.+)\/lib/,r.aliases.lib):r.aliases.hooks&&e.match(/^@\/registry\/(.+)\/hooks/)?e.replace(/^@\/registry\/(.+)\/hooks/,r.aliases.hooks):e.replace(/^@\/registry\/[^/]+/,r.aliases.components)}var Jt={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"]},_r=async({sourceFile:e,config:r})=>{let t=e.getFullText();if(r.tsx)return t;let s=Ue.parse(t,{parser:{parse:i=>parse(i,Jt)}}),n=transformFromAstSync(s,t,{cloneInputAst:false,code:false,ast:true,plugins:[Gt],configFile:false});if(!n||!n.ast)throw new Error("Failed to transform JSX");return Ue.print(n.ast).code};var qt=/^["']use client["']$/g,Me=async({sourceFile:e,config:r})=>{if(r.rsc)return e;let t=e.getFirstChildByKind(SyntaxKind.ExpressionStatement);return t&&qt.test(t.getText())&&t.remove(),e};var Vr=/\bcn-[a-z-]+\b/,Yt=/\bcn-[a-z-]+\b/g;function Wr(e){return e.replace(Yt,"").replace(/\s+/g," ").trim()}function Be(e){let r=e.getLiteralValue();if(!Vr.test(r))return;let t=Wr(r);t!==r&&e.setLiteralValue(t);}function nr(e){for(let r of e.getDescendantsOfKind(SyntaxKind.StringLiteral))Be(r);for(let r of e.getDescendantsOfKind(SyntaxKind.NoSubstitutionTemplateLiteral))Be(r);}function Zt(e){let r=[];for(let t of e.getDescendantsOfKind(SyntaxKind.JsxAttribute)){let s=t.getNameNode().getText();if(s!=="className"&&s!=="classNames")continue;let n=t.getInitializer();if(n?.isKind(SyntaxKind.StringLiteral)){let i=n.getLiteralValue();if(Vr.test(i)){let o=Wr(i);o===""?r.push(t):o!==i&&n.setLiteralValue(o);}}n?.isKind(SyntaxKind.JsxExpression)&&nr(n);}for(let t of r)t.remove();for(let t of e.getDescendantsOfKind(SyntaxKind.CallExpression))if(t.getExpression().getText()==="cva")for(let s of t.getArguments()){if(s.isKind(SyntaxKind.StringLiteral)){Be(s);continue}if(s.isKind(SyntaxKind.NoSubstitutionTemplateLiteral)){Be(s);continue}nr(s);}for(let t of e.getDescendantsOfKind(SyntaxKind.CallExpression))t.getExpression().getText()==="mergeProps"&&nr(t);}var Ge=async({sourceFile:e})=>(Zt(e),e);var Je=async({sourceFile:e,config:r})=>{if(!r.tailwind?.prefix)return e;let t=await Ve(r);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(`"${B(n.getText()?.replace(/"|'/g,""),r.tailwind.prefix,t)}"`);}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(`"${B(o.getText()?.replace(/"|'/g,""),r.tailwind.prefix,t)}"`);});});}),e.getDescendantsOfKind(SyntaxKind.JsxAttribute).forEach(s=>{if(s.getNameNode().getText()==="className"){if(s.getInitializer()?.isKind(SyntaxKind.StringLiteral)){let n=s.getInitializer();n&&n.replaceWithText(`"${B(n.getText()?.replace(/"|'/g,""),r.tailwind.prefix,t)}"`);}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(`"${B(o.getText()?.replace(/"|'/g,""),r.tailwind.prefix,t)}"`);}),i.isKind(SyntaxKind.StringLiteral)&&i.replaceWithText(`"${B(i.getText()?.replace(/"|'/g,""),r.tailwind.prefix,t)}"`);});}}s.getNameNode().getText()==="classNames"&&s.getInitializer()?.isKind(SyntaxKind.JsxExpression)&&s.getDescendantsOfKind(SyntaxKind.PropertyAssignment).forEach(n=>{if(n.getInitializer()?.isKind(SyntaxKind.CallExpression)){let i=n.getInitializerIfKind(SyntaxKind.CallExpression);i&&i.getArguments().forEach(o=>{o.isKind(SyntaxKind.ConditionalExpression)&&o.getChildrenOfKind(SyntaxKind.StringLiteral).forEach(a=>{a.replaceWithText(`"${B(a.getText()?.replace(/"|'/g,""),r.tailwind.prefix,t)}"`);}),o.isKind(SyntaxKind.StringLiteral)&&o.replaceWithText(`"${B(o.getText()?.replace(/"|'/g,""),r.tailwind.prefix,t)}"`);});}if(n.getInitializer()?.isKind(SyntaxKind.StringLiteral)&&n.getNameNode().getText()!=="variant"){let i=n.getInitializer();i&&i.replaceWithText(`"${B(i.getText()?.replace(/"|'/g,""),r.tailwind.prefix,t)}"`);}});}),e};function B(e,r="",t){return t==="v3"?e.split(" ").map(s=>{let[n,i,o]=b(s);return n?o?`${n}:${r}${i}/${o}`:`${n}:${r}${i}`:o?`${r}${i}/${o}`:`${r}${i}`}).join(" "):e.split(" ").map(s=>s.indexOf(`${r}:`)===0?s:`${r}:${s.trim()}`).join(" ")}var ts=new Project({compilerOptions:{}});async function ss(e){let r=await promises.mkdtemp(y__default.join(tmpdir(),"shadcn-"));return y__default.join(r,e)}async function Mr(e,r=[We,Me,a,Je,d,c,Ge]){let t=await ss(e.filename),s=ts.createSourceFile(t,e.raw,{scriptKind:ScriptKind.TSX});for(let n of r)await n({sourceFile:s,...e});return e.transformJsx?await _r({sourceFile:s,...e}):s.getText()}var ns=["a","span","div","Link","label","Label"],Br=async({sourceFile:e,config:r})=>{if(!r.style?.startsWith("base-"))return e;let t=[],s=e.getDescendantsOfKind(SyntaxKind.JsxElement);for(let n of s){let i=n.getOpeningElement(),o=i.getAttribute("asChild");if(!o)continue;let a=i.getTagNameNode().getText(),l=n.getJsxChildren().find(u=>u.getKind()===SyntaxKind.JsxElement||u.getKind()===SyntaxKind.JsxSelfClosingElement);if(!l){o.remove();continue}let c,f,p;if(l.getKind()===SyntaxKind.JsxSelfClosingElement){let u=l.asKindOrThrow(SyntaxKind.JsxSelfClosingElement);c=u.getTagNameNode().getText(),f=u.getAttributes().map(w=>w.getText()).join(" "),p="";}else {let u=l.asKindOrThrow(SyntaxKind.JsxElement),w=u.getOpeningElement();c=w.getTagNameNode().getText(),f=w.getAttributes().map(g=>g.getText()).join(" "),p=u.getJsxChildren().map(g=>g.getText()).join("");}let x=ns.includes(c);t.push({parentElement:n,parentTagName:a,childTagName:c,childProps:f,childChildren:p,needsNativeButton:x});}for(let n of t.reverse()){let i=n.parentElement.getOpeningElement();n.parentElement.getClosingElement();let a=i.getAttributes().filter(p=>p.getKind()===SyntaxKind.JsxAttribute?p.asKindOrThrow(SyntaxKind.JsxAttribute).getNameNode().getText()!=="asChild":true).map(p=>p.getText()).join(" "),d=n.childProps?`{<${n.childTagName} ${n.childProps} />}`:`{<${n.childTagName} />}`,l=a?`${a} `:"";l+=`render=${d}`,n.needsNativeButton&&(l+=" nativeButton={false}");let c=n.childChildren.trim()?`${n.childChildren}`:"",f=`<${n.parentTagName} ${l}>${c}</${n.parentTagName}>`;n.parentElement.replaceWithText(f);}return e};var Gr=async({sourceFile:e})=>(e.getFunctions().forEach(r=>{r.getName()==="middleware"&&r.rename("proxy");}),e.getVariableDeclarations().forEach(r=>{r.getName()==="middleware"&&r.rename("proxy");}),e.getExportDeclarations().forEach(r=>{r.getNamedExports().forEach(s=>{s.getName()==="middleware"&&s.setName("proxy"),s.getAliasNode()?.getText()==="middleware"&&s.setAlias("proxy");});}),e);async function Ro(e,r,t){if(!e?.length)return {filesCreated:[],filesUpdated:[],filesSkipped:[]};t={overwrite:false,force:false,silent:false,isRemote:false,isWorkspace:false,...t};let s=X("Updating files.",{silent:t.silent})?.start(),[n,i]=await Promise.all([W(r.resolvedPaths.cwd),r.tailwind.baseColor?He(r.tailwind.baseColor):Promise.resolve(void 0)]),o=[],a$1=[],d$1=[],l=[],c$1=null;for(let u=0;u<e.length;u++){let w=e[u];if(!w.content)continue;let g=ir(w,r,{isSrcDir:n?.isSrcDir,framework:n?.framework.name,commonRoot:or(e.map(b=>b.path),w.path),path:t.path,fileIndex:u});if(!g)continue;let j=basename(w.path),m=y__default.dirname(g);if(r.tsx||(g=g.replace(/\.tsx?$/,b=>b===".tsx"?".jsx":".js")),Q(g)&&!existsSync(g)){let b=Dr(m);b&&(g=b);}let v=existsSync(g);if(v&&statSync(g).isDirectory())throw new Error(`Cannot write to ${g}: path exists and is a directory. Please provide a file path instead.`);let R=w.type==="registry:file"||w.type==="registry:item",S=Q(g)||R?w.content:await Mr({filename:w.path,raw:w.content,config:r,baseColor:i,transformJsx:!r.tsx,isRemote:t.isRemote},[We,Me,a,Je,c,f$1,Br,d,...Jr(g,n,r)?[Gr]:[],Ge]);if(v&&!Q(g)){let b=await promises.readFile(g,"utf-8");if(Nr(b,S,{ignoreImports:t.isWorkspace})){d$1.push(y__default.relative(r.resolvedPaths.cwd,g));continue}}if(v&&!t.overwrite&&!Q(g)){s.stop(),t.rootSpinner&&t.rootSpinner.stop();let{overwrite:b}=await as({type:"confirm",name:"overwrite",message:`The file ${I.info(j)} already exists. Would you like to overwrite?`,initial:false});if(!b){d$1.push(y__default.relative(r.resolvedPaths.cwd,g)),t.rootSpinner&&t.rootSpinner.start();continue}s?.start(),t.rootSpinner&&t.rootSpinner.start();}if(Jr(g,n,r)&&(g=g.replace(/middleware\.(ts|js)$/,"proxy.$1")),existsSync(m)||await promises.mkdir(m,{recursive:true}),Q(g)&&v){let b=await promises.readFile(g,"utf-8"),Y=Kr(b,S);if(l=zr(b,S),c$1=y__default.relative(r.resolvedPaths.cwd,g),!l.length){d$1.push(y__default.relative(r.resolvedPaths.cwd,g));continue}await promises.writeFile(g,Y,"utf-8"),a$1.push(y__default.relative(r.resolvedPaths.cwd,g));continue}await promises.writeFile(g,S,"utf-8"),v?a$1.push(y__default.relative(r.resolvedPaths.cwd,g)):(o.push(y__default.relative(r.resolvedPaths.cwd,g)),Q(g)&&(l=Object.keys(ae(S)),c$1=y__default.relative(r.resolvedPaths.cwd,g)));}let f=[...o,...a$1,...d$1],p=await fs(f,r);if(a$1.push(...p),a$1=a$1.filter(u=>!o.includes(u)),!(o.length||a$1.length)&&!d$1.length&&s?.info("No files updated."),o=Array.from(new Set(o)),a$1=Array.from(new Set(a$1)),d$1=Array.from(new Set(d$1)),o.length){if(s?.succeed(`Created ${o.length} ${o.length===1?"file":"files"}:`),!t.silent)for(let u of o)E.log(` - ${u}`);}else s?.stop();if(a$1.length&&(X(`Updated ${a$1.length} ${a$1.length===1?"file":"files"}:`,{silent:t.silent})?.info(),!t.silent))for(let u of a$1)E.log(` - ${u}`);if(d$1.length&&(X(`Skipped ${d$1.length} ${a$1.length===1?"file":"files"}: (files might be identical, use --overwrite to overwrite)`,{silent:t.silent})?.info(),!t.silent))for(let u of d$1)E.log(` - ${u}`);if(l.length&&c$1&&(X(`Added the following variables to ${I.info(c$1)}:`)?.info(),!t.silent))for(let u of l)E.log(` ${I.success("+")} ${u}`);return t.silent||E.break(),{filesCreated:o,filesUpdated:a$1,filesSkipped:d$1}}function ir(e,r,t){if(t.path){let i=y__default.isAbsolute(t.path)?t.path:y__default.join(r.resolvedPaths.cwd,t.path);if(/\.[^/\\]+$/.test(i)){if(t.fileIndex===0)return i}else {let a=y__default.basename(e.path);return y__default.join(i,a)}}if(e.target){if(e.target.startsWith("~/"))return y__default.join(r.resolvedPaths.cwd,e.target.replace("~/",""));let i=e.target;return e.type==="registry:page"&&(i=ms(i,t.framework),!i)?"":t.isSrcDir?y__default.join(r.resolvedPaths.cwd,"src",i.replace("src/","")):y__default.join(r.resolvedPaths.cwd,i.replace("src/",""))}let s=ps(e,r),n=gs(e.path,s);return y__default.join(s,n)}function ps(e,r){return e.type==="registry:ui"?r.resolvedPaths.ui:e.type==="registry:lib"?r.resolvedPaths.lib:e.type==="registry:block"||e.type==="registry:component"?r.resolvedPaths.components:e.type==="registry:hook"?r.resolvedPaths.hooks:r.resolvedPaths.components}function or(e,r){let t=e.map(o=>o.replace(/^\//,"")),s=r.replace(/^\//,""),n=s.split("/").slice(0,-1).join("/");if(!n)return "";let i=n.split("/");for(let o=i.length;o>0;o--){let a=i.slice(0,o).join("/");if(t.some(l=>l!==s&&l.startsWith(a+"/")))return "/"+a}return "/"+n}function gs(e,r){let t=e.replace(/^\/|\/$/g,""),s=r.replace(/^\/|\/$/g,""),n=t.split("/"),i=s.split("/"),o=i[i.length-1],a=n.findIndex(d=>d===o);return a===-1?n[n.length-1]:n.slice(a+1).join("/")}function ms(e,r){if(!r)return "";if(r==="next-app")return e;if(r==="next-pages"){let t=e.replace(/^app\//,"pages/");return t=t.replace(/\/page(\.[jt]sx?)$/,"$1"),t}if(r==="react-router"){let t=e.replace(/^app\//,"app/routes/");return t=t.replace(/\/page(\.[jt]sx?)$/,"$1"),t}if(r==="laravel"){let t=e.replace(/^app\//,"resources/js/pages/");return t=t.replace(/\/page(\.[jt]sx?)$/,"$1"),t}return ""}async function fs(e,r){let t=new Project({compilerOptions:{}}),s=await W(r.resolvedPaths.cwd),n=loadConfig(r.resolvedPaths.cwd),i=[];if(!s||n.resultType==="failed")return [];for(let o of e){let a=y__default.resolve(r.resolvedPaths.cwd,o);if(!existsSync(a))continue;let d=await promises.readFile(a,"utf-8"),l=await promises.mkdtemp(y__default.join(tmpdir(),"shadcn-")),c=t.createSourceFile(y__default.join(l,basename(a)),d,{scriptKind:ScriptKind.TSX});if(![".tsx",".ts",".jsx",".js"].includes(c.getExtension()))continue;let f=c.getImportDeclarations();for(let p of f){let x=p.getModuleSpecifierValue();if(s?.aliasPrefix&&!x.startsWith(`${s.aliasPrefix}/`))continue;let u=await O(x,n);if(!u)continue;let w=us(u,e,r);if(!w)continue;let g=hs(w,r,s);!g||g===x||(p.setModuleSpecifier(g),await promises.writeFile(a,c.getFullText(),"utf-8"),i.push(o));}}return i}function us(e,r,t,s=[".tsx",".ts",".js",".jsx",".css"]){let n=y__default.normalize(t.resolvedPaths.cwd),i=r.map(g=>g.split(y__default.sep).join(y__default.posix.sep)),o=new Set(i),a=y__default.extname(e),d=a!=="",l=d?e.slice(0,-a.length):e,f=y__default.relative(n,l).split(y__default.sep).join(y__default.posix.sep),p=d?[a]:s,x=new Set;for(let g of p){let j=l+g,m=y__default.posix.normalize(y__default.relative(n,j));(o.has(m)||existsSync(j))&&x.add(m);let v=y__default.join(l,`index${g}`),R=y__default.posix.normalize(y__default.relative(n,v));(o.has(R)||existsSync(v))&&x.add(R);}let u=y__default.basename(l);for(let g of i)p.some(j=>g.endsWith(`/${u}${j}`))&&x.add(g);return x.size===0?null:Array.from(x).sort((g,j)=>{let m=y__default.posix.extname(g),v=y__default.posix.extname(j),R=p.indexOf(m)-p.indexOf(v);if(R!==0)return R;let S=f&&g.startsWith(f)?-1:1,b=f&&j.startsWith(f)?-1:1;return S-b})[0]}function hs(e,r,t){let s=y__default.normalize(y__default.join(r.resolvedPaths.cwd,e)),n=Object.entries(r.resolvedPaths).filter(([,u])=>u&&s.startsWith(y__default.normalize(u+y__default.sep))).sort((u,w)=>w[1].length-u[1].length);if(n.length===0)return null;let[i,o]=n[0],a=y__default.relative(o,s);a=a.split(y__default.sep).join("/");let d=y__default.posix.extname(a),c=[".ts",".tsx",".js",".jsx"].includes(d)?"":d,f=a.slice(0,a.length-d.length);f.endsWith("/index")&&(f=f.slice(0,-6));let p=i==="cwd"?t.aliasPrefix:r.aliases[i];if(!p)return null;let x=f===""?"":`/${f}`;return x=x.replace("/src",""),`${p}${x}${c}`}function Jr(e,r,t){let s=e===y__default.join(t.resolvedPaths.cwd,"middleware.ts")||e===y__default.join(t.resolvedPaths.cwd,"middleware.js"),n=r?.framework.name==="next-app"||r?.framework.name==="next-pages";if(!s||!n||!r?.frameworkVersion)return false;let i=parseInt(r.frameworkVersion.split(".")[0]);return !isNaN(i)&&i>=16}var Yr=[".tsx",".ts",".jsx",".js",".css"],Zr=["lib/utils.ts"],bs=[/^(react|react-dom|next)(\/.*)?$/,/^(node|jsr|npm):.*$/],Es=new Project({compilerOptions:{}});function ks(e){if(bs.some(r=>r.test(e)))return null;if(!e.startsWith("@")&&e.includes("/")&&(e=e.split("/")[0]),e.startsWith("@")){let r=e.split("/");r.length>2&&(e=r.slice(0,2).join("/"));}return e}async function Ss(e,r,t,s=new Set){let n=y.resolve(r.resolvedPaths.cwd,e),i=y.relative(r.resolvedPaths.cwd,n);if(Zr.includes(i))return {dependencies:[],files:[]};let o=y.extname(e);if(!Yr.includes(o))return {dependencies:[],files:[]};if(s.has(i))return {dependencies:[],files:[]};if(s.add(i),!(await H.stat(n)).isFile())return {dependencies:[],files:[]};let d=await H.readFile(n,"utf-8"),l=await Rs(y.basename(n)),c=Es.createSourceFile(l,d,{scriptKind:ScriptKind.TSX}),f=await loadConfig(r.resolvedPaths.cwd);if(f.resultType==="failed")return {dependencies:[],files:[]};let p=[],x=new Set,u=Qr(e),w={path:i,type:u,target:""};p.push(w);let g=c.getImportDeclarations();for(let m of g){let v=m.getModuleSpecifierValue(),R=v.startsWith(".");if(!v.startsWith(`${t.aliasPrefix}/`)&&!R){let K=ks(v);K&&x.add(K);continue}let b=await O(v,f);if(R&&(b=y.resolve(y.dirname(n),v)),!b)continue;if(!y.extname(b))for(let K of Yr){let fr=`${b}${K}`;try{await H.access(fr),b=fr;break}catch{continue}}let D=y.relative(r.resolvedPaths.cwd,b);if(s.has(D)||Zr.includes(D))continue;let _=Qr(v),Ie={path:D,type:_,target:""};(_==="registry:page"||_==="registry:file")&&(Ie.target=v),p.push(Ie);let te=await Ss(D,r,t,s);if(te.files)for(let K of te.files)s.has(K.path)||(s.add(K.path),p.push(K));te.dependencies&&te.dependencies.forEach(K=>x.add(K));}let j=Array.from(new Map(p.map(m=>[m.path,m])).values());return {dependencies:Array.from(x),files:j}}async function Rs(e){let r=await H.mkdtemp(y.join(tmpdir(),"shadcn-"));return y.join(r,e)}function Qr(e){return e.includes("/ui/")?"registry:ui":e.includes("/lib/")?"registry:lib":e.includes("/hooks/")?"registry:hook":(e.includes("/components/"),"registry:component")}function F(e){try{return new URL(e),!0}catch{return false}}function le(e){return e.endsWith(".json")&&!F(e)}function zo(e){return !e||e.type!=="registry:item"&&e.type!=="registry:file"?false:(e.files??[]).every(t=>!!t.target&&(t.type==="registry:file"||t.type==="registry:item"))}async function Xr(e,r){if(!Cs(r))return z.array(g).parse(e.flat().filter(Boolean));let t=await W(r.resolvedPaths.cwd),s=new Map,n=z.array(g).parse(e.flat().filter(Boolean));return n.forEach(i=>{let o=ir(i,r,{isSrcDir:t?.isSrcDir,framework:t?.framework.name,commonRoot:or(n.map(a=>a.path),i.path)});o&&s.set(o,i);}),Array.from(s.values())}function Cs(e){return !!(e?.resolvedPaths?.cwd&&(e?.resolvedPaths?.ui||e?.resolvedPaths?.lib||e?.resolvedPaths?.components||e?.resolvedPaths?.hooks))}function Is(e){return e.style?e.style==="new-york"&&e.tailwind?.config===""?Oe:e.style:Oe}function de(e){let r=Or({style:Oe,registries:L});return e?d$1.parse(ge(r,{...e,style:Is(e),registries:{...L,...e.registries}})):r}var qe={headers:{}};function Ee(e){qe.headers={...qe.headers,...e};}function et(e){return qe.headers[e]||{}}function ke(){qe.headers={};}function Ps(e){let r=new Set;return typeof e=="string"?ue(e).forEach(t=>r.add(t)):(ue(e.url).forEach(t=>r.add(t)),e.params&&Object.values(e.params).forEach(t=>{ue(t).forEach(s=>r.add(s));}),e.headers&&Object.values(e.headers).forEach(t=>{ue(t).forEach(s=>r.add(s));})),Array.from(r)}function rt(e,r){let s=Ps(r).filter(n=>!process.env[n]);if(s.length>0)throw new we(e,s)}function Xo(e,r){for(let t of e)pe(t,de(r));ke();}var tt="{name}",Ye="{style}",st=/\${(\w+)}/g,nt="?",js="&";function As(e){return e.startsWith("./")||e.startsWith("/")}function pe(e,r){let{registry:t,item:s}=ie(e);if(!t){if(F(e)||le(e)||As(e))return null;t="@shadcn";}let i={...L,...r?.registries}[t];if(!i)throw new M(t);return rt(t,i),{url:$s(s,i,r),headers:Os(i)}}function $s(e,r,t){if(typeof r=="string"){let n=r.replace(tt,e);return t?.style&&n.includes(Ye)&&(n=n.replace(Ye,t.style)),fe(n)}let s=r.url.replace(tt,e);return t?.style&&s.includes(Ye)&&(s=s.replace(Ye,t.style)),s=fe(s),r.params?Ls(s,r.params):s}function Os(e){if(typeof e=="string"||!e.headers)return {};let r={};for(let[t,s]of Object.entries(e.headers)){let n=fe(s);Ns(s,n)&&(r[t]=n);}return r}function Ls(e,r){let t=new URLSearchParams;for(let[i,o]of Object.entries(r)){let a=fe(o);a&&t.append(i,a);}let s=t.toString();if(!s)return e;let n=e.includes(nt)?js:nt;return `${e}${n}${s}`}function Ns(e,r){let t=r.trim();if(!t)return false;if(e.includes("${")&&e.match(st)){let n=e.replace(st,"").trim();return t!==n}return true}function Ze(e){if(F(e)){let r=new URL(e);return r.pathname.match(/\/chat\/b\//)&&!r.pathname.endsWith("/json")&&(r.pathname=`${r.pathname}/json`),r.toString()}return `${se}/${e}`}var it={inlineColors:{light:{background:"0 0% 100%",foreground:"145 30% 15%",card:"0 0% 100%","card-foreground":"145 30% 15%",popover:"0 0% 100%","popover-foreground":"145 30% 15%",primary:"145 50% 35%","primary-foreground":"145 50% 97%",secondary:"85 30% 95%","secondary-foreground":"85 30% 25%",muted:"0 0% 96%","muted-foreground":"0 0% 45%",accent:"290 30% 95%","accent-foreground":"290 30% 25%",destructive:"0 84% 60%",border:"0 0% 90%",input:"0 0% 90%",ring:"145 50% 45%"},dark:{background:"145 20% 8%",foreground:"0 0% 98%",card:"145 20% 12%","card-foreground":"0 0% 98%",popover:"145 20% 12%","popover-foreground":"0 0% 98%",primary:"145 50% 45%","primary-foreground":"145 50% 8%",secondary:"85 30% 15%","secondary-foreground":"85 30% 95%",muted:"0 0% 18%","muted-foreground":"0 0% 65%",accent:"290 30% 18%","accent-foreground":"290 30% 95%",destructive:"0 62% 50%",border:"0 0% 20%",input:"0 0% 20%",ring:"145 50% 50%"}},cssVars:{theme:{},light:{background:"0 0% 100%",foreground:"145 30% 15%",card:"0 0% 100%","card-foreground":"145 30% 15%",popover:"0 0% 100%","popover-foreground":"145 30% 15%",primary:"145 50% 35%","primary-foreground":"145 50% 97%",secondary:"85 30% 95%","secondary-foreground":"85 30% 25%",muted:"0 0% 96%","muted-foreground":"0 0% 45%",accent:"290 30% 95%","accent-foreground":"290 30% 25%",destructive:"0 84% 60%",border:"0 0% 90%",input:"0 0% 90%",ring:"145 50% 45%","chart-1":"145 50% 60%","chart-2":"145 50% 50%","chart-3":"145 50% 40%","chart-4":"145 50% 30%","chart-5":"145 50% 20%",sidebar:"0 0% 98%","sidebar-foreground":"145 30% 15%","sidebar-primary":"145 50% 35%","sidebar-primary-foreground":"145 50% 97%","sidebar-accent":"145 30% 95%","sidebar-accent-foreground":"145 30% 20%","sidebar-border":"0 0% 90%","sidebar-ring":"145 50% 45%"},dark:{background:"145 20% 8%",foreground:"0 0% 98%",card:"145 20% 12%","card-foreground":"0 0% 98%",popover:"145 20% 12%","popover-foreground":"0 0% 98%",primary:"145 50% 45%","primary-foreground":"145 50% 8%",secondary:"85 30% 15%","secondary-foreground":"85 30% 95%",muted:"0 0% 18%","muted-foreground":"0 0% 65%",accent:"290 30% 18%","accent-foreground":"290 30% 95%",destructive:"0 62% 50%",border:"0 0% 20%",input:"0 0% 20%",ring:"145 50% 50%","chart-1":"145 50% 55%","chart-2":"145 50% 45%","chart-3":"145 50% 35%","chart-4":"145 50% 25%","chart-5":"145 50% 15%",sidebar:"145 20% 12%","sidebar-foreground":"0 0% 98%","sidebar-primary":"145 50% 45%","sidebar-primary-foreground":"145 50% 8%","sidebar-accent":"0 0% 18%","sidebar-accent-foreground":"0 0% 98%","sidebar-border":"0 0% 20%","sidebar-ring":"145 50% 50%"}},cssVarsV4:{theme:{},light:{radius:"0.75rem",background:"oklch(1 0 0)",foreground:"oklch(0.26 0.06 145)",card:"oklch(1 0 0)","card-foreground":"oklch(0.26 0.06 145)",popover:"oklch(1 0 0)","popover-foreground":"oklch(0.26 0.06 145)",primary:"oklch(0.45 0.12 145)","primary-foreground":"oklch(0.97 0.02 145)",secondary:"oklch(0.95 0.04 85)","secondary-foreground":"oklch(0.36 0.06 85)",muted:"oklch(0.97 0 0)","muted-foreground":"oklch(0.55 0 0)",accent:"oklch(0.94 0.04 290)","accent-foreground":"oklch(0.28 0.06 290)",destructive:"oklch(0.577 0.245 27.325)",border:"oklch(0.92 0 0)",input:"oklch(0.92 0 0)",ring:"oklch(0.52 0.14 145)","chart-1":"oklch(0.76 0.12 145)","chart-2":"oklch(0.64 0.14 145)","chart-3":"oklch(0.52 0.14 145)","chart-4":"oklch(0.45 0.12 145)","chart-5":"oklch(0.38 0.10 145)",sidebar:"oklch(0.985 0 0)","sidebar-foreground":"oklch(0.26 0.06 145)","sidebar-primary":"oklch(0.45 0.12 145)","sidebar-primary-foreground":"oklch(0.97 0.02 145)","sidebar-accent":"oklch(0.93 0.04 145)","sidebar-accent-foreground":"oklch(0.26 0.06 145)","sidebar-border":"oklch(0.92 0 0)","sidebar-ring":"oklch(0.52 0.14 145)"},dark:{background:"oklch(0.13 0.02 145)",foreground:"oklch(0.985 0 0)",card:"oklch(0.20 0.03 145)","card-foreground":"oklch(0.985 0 0)",popover:"oklch(0.20 0.03 145)","popover-foreground":"oklch(0.985 0 0)",primary:"oklch(0.52 0.14 145)","primary-foreground":"oklch(0.18 0.04 145)",secondary:"oklch(0.26 0.04 85)","secondary-foreground":"oklch(0.93 0.04 85)",muted:"oklch(0.27 0 0)","muted-foreground":"oklch(0.71 0 0)",accent:"oklch(0.28 0.04 290)","accent-foreground":"oklch(0.94 0.04 290)",destructive:"oklch(0.704 0.191 22.216)",border:"oklch(1 0 0 / 10%)",input:"oklch(1 0 0 / 15%)",ring:"oklch(0.52 0.14 145)","chart-1":"oklch(0.64 0.14 145)","chart-2":"oklch(0.52 0.14 145)","chart-3":"oklch(0.45 0.12 145)","chart-4":"oklch(0.38 0.10 145)","chart-5":"oklch(0.32 0.08 145)",sidebar:"oklch(0.20 0.03 145)","sidebar-foreground":"oklch(0.985 0 0)","sidebar-primary":"oklch(0.52 0.14 145)","sidebar-primary-foreground":"oklch(0.18 0.04 145)","sidebar-accent":"oklch(0.27 0 0)","sidebar-accent-foreground":"oklch(0.985 0 0)","sidebar-border":"oklch(1 0 0 / 10%)","sidebar-ring":"oklch(0.52 0.14 145)"}},inlineColorsTemplate:`@tailwind base;
28
+ @tailwind components;
29
+ @tailwind utilities;
30
+ `,cssVarsTemplate:`@import "tailwindcss";
31
+ @import "tw-animate-css";
32
+ @import "shadcn/tailwind.css";
33
+
34
+ @custom-variant dark (&:is(.dark *));
35
+
36
+ @theme inline {
37
+ /* ============================================
38
+ * Tailwind Theme Overrides with DGA Tokens
39
+ * ============================================ */
40
+
41
+ /* Colors - Map semantic vars to Tailwind */
42
+ --color-background: var(--background);
43
+ --color-foreground: var(--foreground);
44
+ --color-card: var(--card);
45
+ --color-card-foreground: var(--card-foreground);
46
+ --color-popover: var(--popover);
47
+ --color-popover-foreground: var(--popover-foreground);
48
+ --color-primary: var(--primary);
49
+ --color-primary-foreground: var(--primary-foreground);
50
+ --color-secondary: var(--secondary);
51
+ --color-secondary-foreground: var(--secondary-foreground);
52
+ --color-muted: var(--muted);
53
+ --color-muted-foreground: var(--muted-foreground);
54
+ --color-accent: var(--accent);
55
+ --color-accent-foreground: var(--accent-foreground);
56
+ --color-destructive: var(--destructive);
57
+ --color-destructive-foreground: var(--destructive-foreground);
58
+ --color-border: var(--border);
59
+ --color-input: var(--input);
60
+ --color-ring: var(--ring);
61
+ --color-chart-1: var(--chart-1);
62
+ --color-chart-2: var(--chart-2);
63
+ --color-chart-3: var(--chart-3);
64
+ --color-chart-4: var(--chart-4);
65
+ --color-chart-5: var(--chart-5);
66
+ --color-sidebar: var(--sidebar);
67
+ --color-sidebar-foreground: var(--sidebar-foreground);
68
+ --color-sidebar-primary: var(--sidebar-primary);
69
+ --color-sidebar-primary-foreground: var(--sidebar-primary-foreground);
70
+ --color-sidebar-accent: var(--sidebar-accent);
71
+ --color-sidebar-accent-foreground: var(--sidebar-accent-foreground);
72
+ --color-sidebar-border: var(--sidebar-border);
73
+ --color-sidebar-ring: var(--sidebar-ring);
74
+
75
+ /* Typography */
76
+ --font-sans: var(--font-sans);
77
+ --font-mono: var(--font-mono);
78
+
79
+ /* Border Radius */
80
+ --radius-sm: calc(var(--radius) - 4px);
81
+ --radius-md: calc(var(--radius) - 2px);
82
+ --radius-lg: var(--radius);
83
+ --radius-xl: calc(var(--radius) + 4px);
84
+ --radius-2xl: calc(var(--radius) + 8px);
85
+ --radius-3xl: calc(var(--radius) + 12px);
86
+ --radius-4xl: calc(var(--radius) + 16px);
87
+
88
+ /* Shadows - Override Tailwind defaults */
89
+ --shadow-sm: var(--dga-shadow-sm);
90
+ --shadow-md: var(--dga-shadow-md);
91
+ --shadow-lg: var(--dga-shadow-lg);
92
+ --shadow-xl: var(--dga-shadow-xl);
93
+ --shadow-2xl: var(--dga-shadow-2xl);
94
+
95
+ /* Transitions */
96
+ --ease-default: var(--dga-easing-default);
97
+ --ease-in: var(--dga-easing-in);
98
+ --ease-out: var(--dga-easing-out);
99
+ }
100
+
101
+ /* ============================================
102
+ * DGA Design System Tokens
103
+ * Raw design tokens - Single source of truth
104
+ * ============================================ */
105
+ :root {
106
+ /* Primary - Saudi Green */
107
+ --dga-primary-50: oklch(0.97 0.02 145);
108
+ --dga-primary-100: oklch(0.93 0.04 145);
109
+ --dga-primary-200: oklch(0.86 0.08 145);
110
+ --dga-primary-300: oklch(0.76 0.12 145);
111
+ --dga-primary-400: oklch(0.64 0.14 145);
112
+ --dga-primary-500: oklch(0.52 0.14 145);
113
+ --dga-primary-600: oklch(0.45 0.12 145);
114
+ --dga-primary-700: oklch(0.38 0.10 145);
115
+ --dga-primary-800: oklch(0.32 0.08 145);
116
+ --dga-primary-900: oklch(0.26 0.06 145);
117
+ --dga-primary-950: oklch(0.18 0.04 145);
118
+
119
+ /* Secondary - Gold */
120
+ --dga-gold-50: oklch(0.98 0.02 85);
121
+ --dga-gold-100: oklch(0.95 0.04 85);
122
+ --dga-gold-200: oklch(0.90 0.08 85);
123
+ --dga-gold-300: oklch(0.84 0.12 85);
124
+ --dga-gold-400: oklch(0.78 0.14 85);
125
+ --dga-gold-500: oklch(0.72 0.14 85);
126
+ --dga-gold-600: oklch(0.64 0.12 85);
127
+ --dga-gold-700: oklch(0.54 0.10 85);
128
+ --dga-gold-800: oklch(0.44 0.08 85);
129
+ --dga-gold-900: oklch(0.36 0.06 85);
130
+ --dga-gold-950: oklch(0.24 0.04 85);
131
+
132
+ /* Accent - Lavender */
133
+ --dga-lavender-50: oklch(0.97 0.02 290);
134
+ --dga-lavender-100: oklch(0.94 0.04 290);
135
+ --dga-lavender-200: oklch(0.88 0.08 290);
136
+ --dga-lavender-300: oklch(0.80 0.12 290);
137
+ --dga-lavender-400: oklch(0.70 0.14 290);
138
+ --dga-lavender-500: oklch(0.60 0.14 290);
139
+ --dga-lavender-600: oklch(0.52 0.12 290);
140
+ --dga-lavender-700: oklch(0.44 0.10 290);
141
+ --dga-lavender-800: oklch(0.36 0.08 290);
142
+ --dga-lavender-900: oklch(0.28 0.06 290);
143
+ --dga-lavender-950: oklch(0.20 0.04 290);
144
+
145
+ /* Neutral - Gray */
146
+ --dga-gray-50: oklch(0.985 0 0);
147
+ --dga-gray-100: oklch(0.97 0 0);
148
+ --dga-gray-200: oklch(0.92 0 0);
149
+ --dga-gray-300: oklch(0.87 0 0);
150
+ --dga-gray-400: oklch(0.71 0 0);
151
+ --dga-gray-500: oklch(0.55 0 0);
152
+ --dga-gray-600: oklch(0.45 0 0);
153
+ --dga-gray-700: oklch(0.37 0 0);
154
+ --dga-gray-800: oklch(0.27 0 0);
155
+ --dga-gray-900: oklch(0.20 0 0);
156
+ --dga-gray-950: oklch(0.13 0 0);
157
+
158
+ /* Semantic Colors */
159
+ --dga-success: oklch(0.52 0.14 145);
160
+ --dga-success-light: oklch(0.93 0.04 145);
161
+ --dga-warning: oklch(0.78 0.14 85);
162
+ --dga-warning-light: oklch(0.95 0.04 85);
163
+ --dga-error: oklch(0.577 0.245 27.325);
164
+ --dga-error-light: oklch(0.97 0.01 17);
165
+ --dga-info: oklch(0.60 0.14 250);
166
+ --dga-info-light: oklch(0.94 0.04 250);
167
+
168
+ /* Typography */
169
+ --dga-font-sans: "IBM Plex Sans", "IBM Plex Sans Arabic", system-ui, -apple-system, sans-serif;
170
+ --dga-font-mono: "IBM Plex Mono", ui-monospace, monospace;
171
+
172
+ /* Shadows */
173
+ --dga-shadow-sm: 0 1px 2px 0 rgb(0 0 0 / 0.05);
174
+ --dga-shadow-md: 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1);
175
+ --dga-shadow-lg: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1);
176
+ --dga-shadow-xl: 0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1);
177
+ --dga-shadow-2xl: 0 25px 50px -12px rgb(0 0 0 / 0.25);
178
+
179
+ /* Transitions */
180
+ --dga-duration-fast: 150ms;
181
+ --dga-duration-normal: 200ms;
182
+ --dga-duration-slow: 300ms;
183
+ --dga-easing-default: cubic-bezier(0.4, 0, 0.2, 1);
184
+ --dga-easing-in: cubic-bezier(0.4, 0, 1, 1);
185
+ --dga-easing-out: cubic-bezier(0, 0, 0.2, 1);
186
+
187
+ /* Border Radius */
188
+ --dga-radius-sm: 0.25rem;
189
+ --dga-radius-md: 0.5rem;
190
+ --dga-radius-lg: 0.75rem;
191
+ --dga-radius-xl: 1rem;
192
+ --dga-radius-2xl: 1.5rem;
193
+ --dga-radius-full: 9999px;
194
+ }
195
+
196
+ /* ============================================
197
+ * Light Mode - Semantic Variable Mapping
198
+ * References DGA tokens above
199
+ * ============================================ */
200
+ :root {
201
+ --font-sans: var(--dga-font-sans);
202
+ --font-mono: var(--dga-font-mono);
203
+ --radius: var(--dga-radius-lg);
204
+
205
+ /* Backgrounds */
206
+ --background: var(--dga-gray-50);
207
+ --foreground: var(--dga-gray-900);
208
+
209
+ /* Card */
210
+ --card: oklch(1 0 0);
211
+ --card-foreground: var(--dga-gray-900);
212
+
213
+ /* Popover */
214
+ --popover: oklch(1 0 0);
215
+ --popover-foreground: var(--dga-gray-900);
216
+
217
+ /* Primary - Saudi Green */
218
+ --primary: var(--dga-primary-600);
219
+ --primary-foreground: var(--dga-primary-50);
220
+
221
+ /* Secondary - Gold */
222
+ --secondary: var(--dga-gold-100);
223
+ --secondary-foreground: var(--dga-gold-900);
224
+
225
+ /* Muted */
226
+ --muted: var(--dga-gray-100);
227
+ --muted-foreground: var(--dga-gray-600);
228
+
229
+ /* Accent - Lavender */
230
+ --accent: var(--dga-lavender-100);
231
+ --accent-foreground: var(--dga-lavender-900);
232
+
233
+ /* Destructive */
234
+ --destructive: var(--dga-error);
235
+ --destructive-foreground: var(--dga-error-light);
236
+
237
+ /* Borders & Inputs */
238
+ --border: var(--dga-gray-200);
239
+ --input: var(--dga-gray-200);
240
+ --ring: var(--dga-primary-400);
241
+
242
+ /* Charts */
243
+ --chart-1: var(--dga-primary-300);
244
+ --chart-2: var(--dga-primary-400);
245
+ --chart-3: var(--dga-primary-500);
246
+ --chart-4: var(--dga-primary-600);
247
+ --chart-5: var(--dga-primary-700);
248
+
249
+ /* Sidebar */
250
+ --sidebar: var(--dga-gray-50);
251
+ --sidebar-foreground: var(--dga-gray-900);
252
+ --sidebar-primary: var(--dga-primary-600);
253
+ --sidebar-primary-foreground: var(--dga-primary-50);
254
+ --sidebar-accent: var(--dga-primary-100);
255
+ --sidebar-accent-foreground: var(--dga-primary-900);
256
+ --sidebar-border: var(--dga-gray-200);
257
+ --sidebar-ring: var(--dga-primary-400);
258
+ }
259
+
260
+ /* ============================================
261
+ * Dark Mode - Semantic Variable Mapping
262
+ * ============================================ */
263
+ .dark {
264
+ /* Backgrounds */
265
+ --background: var(--dga-gray-950);
266
+ --foreground: var(--dga-gray-50);
267
+
268
+ /* Card */
269
+ --card: var(--dga-gray-900);
270
+ --card-foreground: var(--dga-gray-50);
271
+
272
+ /* Popover */
273
+ --popover: var(--dga-gray-900);
274
+ --popover-foreground: var(--dga-gray-50);
275
+
276
+ /* Primary - Saudi Green (lighter for dark mode) */
277
+ --primary: var(--dga-primary-500);
278
+ --primary-foreground: var(--dga-primary-950);
279
+
280
+ /* Secondary - Gold */
281
+ --secondary: var(--dga-gold-900);
282
+ --secondary-foreground: var(--dga-gold-100);
283
+
284
+ /* Muted */
285
+ --muted: var(--dga-gray-800);
286
+ --muted-foreground: var(--dga-gray-400);
287
+
288
+ /* Accent - Lavender */
289
+ --accent: var(--dga-lavender-900);
290
+ --accent-foreground: var(--dga-lavender-100);
291
+
292
+ /* Destructive */
293
+ --destructive: oklch(0.704 0.191 22.216);
294
+ --destructive-foreground: oklch(0.97 0.01 17);
295
+
296
+ /* Borders & Inputs */
297
+ --border: oklch(1 0 0 / 10%);
298
+ --input: oklch(1 0 0 / 15%);
299
+ --ring: var(--dga-primary-500);
300
+
301
+ /* Charts */
302
+ --chart-1: var(--dga-primary-400);
303
+ --chart-2: var(--dga-primary-500);
304
+ --chart-3: var(--dga-primary-600);
305
+ --chart-4: var(--dga-primary-700);
306
+ --chart-5: var(--dga-primary-800);
307
+
308
+ /* Sidebar */
309
+ --sidebar: var(--dga-gray-900);
310
+ --sidebar-foreground: var(--dga-gray-50);
311
+ --sidebar-primary: var(--dga-primary-500);
312
+ --sidebar-primary-foreground: var(--dga-primary-950);
313
+ --sidebar-accent: var(--dga-gray-800);
314
+ --sidebar-accent-foreground: var(--dga-gray-50);
315
+ --sidebar-border: oklch(1 0 0 / 10%);
316
+ --sidebar-ring: var(--dga-primary-600);
317
+ }
318
+
319
+ @layer base {
320
+ * {
321
+ @apply border-border outline-ring/50;
322
+ }
323
+ body {
324
+ @apply bg-background text-foreground;
325
+ }
326
+ }
327
+ `};var _s=process.env.https_proxy?new HttpsProxyAgent(process.env.https_proxy):void 0,ar=new Map;async function P(e,r={}){r={useCache:true,...r};try{return await Promise.all(e.map(async s=>{let n=Ze(s);if(r.useCache&&ar.has(n))return ar.get(n);let i=(async()=>{let o=et(n),a=await Ks(n,{agent:_s,headers:{...o}});if(!a.ok){let d;if(a.headers.get("content-type")?.includes("application/json")){let l=await a.json(),c=z.object({detail:z.string().optional(),title:z.string().optional(),message:z.string().optional(),error:z.string().optional()}).safeParse(l);c.success&&(d=c.data.detail||c.data.message,c.data.error&&(d=`[${c.data.error}] ${d}`));}throw a.status===401?new he(n,d):a.status===404?new Z(n,d):a.status===403?new ye(n,d):new xe(n,a.status,d)}return a.json()})();return r.useCache&&ar.set(n,i),i}))}catch(t){throw t}}async function at(e){try{let r=e;e.startsWith("~/")&&(r=y__default.join(homedir(),e.slice(2)));let t=y__default.resolve(r),s=await promises.readFile(t,"utf8"),n$1=JSON.parse(s);try{return n.parse(n$1)}catch(i){throw new A(e,i)}}catch(r){throw r instanceof Error&&(r.message.includes("ENOENT")||r.message.includes("no such file"))?new ne(e,r):r instanceof A?r:new ne(e,r)}}async function $a(e,r,t){if(!e||(t={silent:false,tailwindVersion:"v3",...t},t.tailwindVersion==="v4"))return;let s=y__default.relative(r.resolvedPaths.cwd,r.resolvedPaths.tailwindConfig),n=X(`Updating ${I.info(s)}`,{silent:t.silent}).start(),i=await promises.readFile(r.resolvedPaths.tailwindConfig,"utf8"),o=await Gs(i,e,r);await promises.writeFile(r.resolvedPaths.tailwindConfig,o,"utf8"),n?.succeed();}async function Gs(e,r,t){let s=await lt(e,t),n=s.getDescendantsOfKind(SyntaxKind.ObjectLiteralExpression).find(o=>o.getProperties().some(a=>a.isKind(SyntaxKind.PropertyAssignment)&&a.getName()==="content"));if(!n)return e;let i=Ys(n);return Js(n,{name:"darkMode",value:"class"},{quoteChar:i}),r.plugins?.forEach(o=>{qs(n,o);}),r.theme&&await Hs(n,r.theme),s.getFullText()}function Js(e,r,{quoteChar:t}){let s=e.getProperty("darkMode");if(!s){let n={name:r.name,initializer:`[${t}${r.value}${t}]`};return r.name==="darkMode"?(e.insertPropertyAssignment(0,n),e):(e.addPropertyAssignment(n),e)}if(s.isKind(SyntaxKind.PropertyAssignment)){let n=s.getInitializer(),i=`${t}${r.value}${t}`;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 Hs(e,r){e.getProperty("theme")||e.addPropertyAssignment({name:"theme",initializer:"{}"}),lr(e);let s=(e.getPropertyOrThrow("theme")?.asKindOrThrow(SyntaxKind.PropertyAssignment)).getInitializer();if(s?.isKind(SyntaxKind.ObjectLiteralExpression)){let n=s.getText(),i=await Zs(n),o=ge(i,r,{arrayMerge:(d,l)=>l}),a=Us(o).replace(/\'\.\.\.(.*)\'/g,"...$1").replace(/\'\"/g,"'").replace(/\"\'/g,"'").replace(/\'\[/g,"[").replace(/\]\'/g,"]").replace(/\'\\\'/g,"'").replace(/\\\'/g,"'").replace(/\\\'\'/g,"'").replace(/\'\'/g,"'");s.replaceWithText(a);}dr(e);}function qs(e,r){let t=e.getProperty("plugins");if(!t)return e.addPropertyAssignment({name:"plugins",initializer:`[${r}]`}),e;if(t.isKind(SyntaxKind.PropertyAssignment)){let s=t.getInitializer();if(s?.isKind(SyntaxKind.ArrayLiteralExpression)){if(s.getElements().map(n=>n.getText().replace(/["']/g,"")).includes(r.replace(/["']/g,"")))return e;s.addElement(r);}return e}return e}async function lt(e,r){let t=await promises.mkdtemp(y__default.join(tmpdir(),"shadcn-")),s=r?.resolvedPaths?.tailwindConfig||"tailwind.config.ts",n=y__default.join(t,`shadcn-${y__default.basename(s)}`);return new Project({compilerOptions:{}}).createSourceFile(n,e,{scriptKind:y__default.extname(s)===".ts"?ScriptKind.TS:ScriptKind.JS})}function Ys(e){return e.getFirstDescendantByKind(SyntaxKind.StringLiteral)?.getQuoteKind()===QuoteKind.Single?"'":'"'}function lr(e){let r=e.getProperties();for(let t=0;t<r.length;t++){let s=r[t];if(s.isKind(SyntaxKind.SpreadAssignment)){let n=s.asKindOrThrow(SyntaxKind.SpreadAssignment),i=n.getExpression().getText();e.insertPropertyAssignment(t,{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)?lr(i.asKindOrThrow(SyntaxKind.ObjectLiteralExpression)):i&&i.isKind(SyntaxKind.ArrayLiteralExpression)&&dt(i.asKindOrThrow(SyntaxKind.ArrayLiteralExpression));}}}function dt(e){let r=e.getElements();for(let t=0;t<r.length;t++){let s=r[t];if(s.isKind(SyntaxKind.ObjectLiteralExpression))lr(s.asKindOrThrow(SyntaxKind.ObjectLiteralExpression));else if(s.isKind(SyntaxKind.ArrayLiteralExpression))dt(s.asKindOrThrow(SyntaxKind.ArrayLiteralExpression));else if(s.isKind(SyntaxKind.SpreadElement)){let n=s.getText();e.removeElement(t),e.insertElement(t,`"${n}"`);}}}function dr(e){let r=e.getProperties();for(let t=0;t<r.length;t++){let s=r[t];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(t,{expression:o.slice(3)}),n.remove());}else i?.isKind(SyntaxKind.ObjectLiteralExpression)?dr(i):i&&i.isKind(SyntaxKind.ArrayLiteralExpression)&&pt(i.asKindOrThrow(SyntaxKind.ArrayLiteralExpression));}}}function pt(e){let r=e.getElements();for(let t=0;t<r.length;t++){let s=r[t];if(s.isKind(SyntaxKind.ObjectLiteralExpression))dr(s.asKindOrThrow(SyntaxKind.ObjectLiteralExpression));else if(s.isKind(SyntaxKind.ArrayLiteralExpression))pt(s.asKindOrThrow(SyntaxKind.ArrayLiteralExpression));else if(s.isKind(SyntaxKind.StringLiteral)){let n=s.getText(),i=/(?:^['"])(\.\.\..*)(?:['"]$)/g;i.test(n)&&(e.removeElement(t),e.insertElement(t,n.replace(i,"$1")));}}}async function Zs(e){let t=(await lt(`const theme = ${e}`,null)).getStatements()[0];if(t?.getKind()===SyntaxKind.VariableStatement){let n=(t.getDeclarationList()?.getDeclarations()[0]).getInitializer();if(n?.isKind(SyntaxKind.ObjectLiteralExpression))return await Qe(n)}throw new Error("Invalid input: not an object literal")}function Qe(e){let r={};for(let t of e.getProperties())if(t.isKind(SyntaxKind.PropertyAssignment)){let s=t.getName().replace(/\'/g,"");t.getInitializer()?.isKind(SyntaxKind.ObjectLiteralExpression)?r[s]=Qe(t.getInitializer()):t.getInitializer()?.isKind(SyntaxKind.ArrayLiteralExpression)?r[s]=gt(t.getInitializer()):r[s]=pr(t.getInitializer());}return r}function gt(e){let r=[];for(let t of e.getElements())t.isKind(SyntaxKind.ObjectLiteralExpression)?r.push(Qe(t.asKindOrThrow(SyntaxKind.ObjectLiteralExpression))):t.isKind(SyntaxKind.ArrayLiteralExpression)?r.push(gt(t.asKindOrThrow(SyntaxKind.ArrayLiteralExpression))):r.push(pr(t));return r}function pr(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(pr);case SyntaxKind.ObjectLiteralExpression:return Qe(e);default:return e.getText()}}function mt(e){let r={};for(let t of Object.keys(e)){let s=t.split("-"),n=s[0],i=s.slice(1).join("-");i===""?typeof r[n]=="object"?r[n].DEFAULT=`hsl(var(--${t}))`:r[n]=`hsl(var(--${t}))`:(typeof r[n]!="object"&&(r[n]={DEFAULT:`hsl(var(--${n}))`}),r[n][i]=`hsl(var(--${t}))`);}for(let[t,s]of Object.entries(r))typeof s=="object"&&s.DEFAULT===`hsl(var(--${t}))`&&!(t in e)&&delete s.DEFAULT;return r}function Ce(e,r){let t={},s=[...e];if(!r?.registries)return Ee({}),s;for(let n=0;n<s.length;n++){let i=pe(s[n],r);i&&(s[n]=i.url,Object.keys(i.headers).length>0&&(t[i.url]=i.headers));}return Ee(t),s}async function ee(e,r,t={}){return await Promise.all(e.map(async n$1=>{if(le(n$1))return at(n$1);if(F(n$1)){let[a]=await P([n$1],t);try{return n.parse(a)}catch(d){throw new A(n$1,d)}}if(n$1.startsWith("@")&&r?.registries){let a=Ce([n$1],r),[d]=await P(a,t);try{return n.parse(d)}catch(l){throw new A(n$1,l)}}let i=`styles/${r?.style??"new-york-v4"}/${n$1}.json`,[o]=await P([i],t);try{return n.parse(o)}catch(a){throw new A(n$1,a)}}))}m.extend({type:f,_source:z.string().optional(),font:l.optional(),config:z.any().optional()}).passthrough();async function ut(e,r,t$1={}){t$1={useCache:true,...t$1};let s=[],n$1=[],i=[],o=Array.from(new Set(e)),a=await ee(o,r,t$1),d=new Map;for(let m=0;m<a.length;m++)a[m]&&d.set(o[m],a[m]);for(let[m,v]of Array.from(d.entries())){let R={...v,_source:m};if(s.push(R),v.registryDependencies){let S=v.registryDependencies;if(r?.registries)S=Ce(v.registryDependencies,r);else {let D=v.registryDependencies.filter(_=>_.startsWith("@"));if(D.length>0){let{registry:_}=ie(D[0]);throw new M(_)}}let{items:b,registryNames:Y}=await Te(S,r,t$1,new Set(o));n$1.push(...b),i.push(...Y);}}if(s.push(...n$1),i.length>0){let m=Array.from(new Set(i)),v=m.filter(S=>!S.startsWith("@")),R=m.filter(S=>S.startsWith("@"));if(R.length>0){let S=await ee(R,r,t$1);for(let b=0;b<S.length;b++){let D={...S[b],_source:R[b]};s.push(D);}}if(v.length>0){let S=await ht();if(!S&&s.length===0)return null;if(S){v.includes("index")&&v.unshift("index");let b=[];for(let Ie of v){let te=await Xs(Ie,r,t$1);b.push(...te);}let Y=Array.from(new Set(b)),D=await P(Y,t$1),_=z.array(n).parse(D);s.push(..._);}}}if(!s.length)return null;if((o.includes("index")||i.includes("index"))&&r.tailwind.baseColor){let m=await en(r.tailwind.baseColor,r);m&&s.unshift(m);}let l=new Map;s.forEach(m=>{let v=m._source||m.name;l.set(m,v);}),s=tn(s,l),s.sort((m,v)=>m.type==="registry:theme"&&v.type!=="registry:theme"?-1:m.type!=="registry:theme"&&v.type==="registry:theme"?1:0);let c={};s.forEach(m=>{c=ge(c,m.tailwind??{});});let f={};s.forEach(m=>{f=ge(f,m.cssVars??{});});let p={};s.forEach(m=>{p=ge(p,m.css??{});});let x="";s.forEach(m=>{m.docs&&(x+=`${m.docs}
328
+ `);});let u={};s.forEach(m=>{u=ge(u,m.envVars??{});});let w=await Xr(s.map(m=>m.files??[]),r),g=s.filter(m=>m.type==="registry:font"&&m.font).map(m=>({...m,type:"registry:font",font:m.font})),j=t.parse({dependencies:ge.all(s.map(m=>m.dependencies??[])),devDependencies:ge.all(s.map(m=>m.devDependencies??[])),files:w,tailwind:c,cssVars:f,css:p,docs:x,fonts:g.length>0?g:void 0});return Object.keys(u).length>0&&(j.envVars=u),j}async function Te(e,r,t={},s=new Set){let n=[],i=[];for(let o of e)if(!s.has(o)){if(s.add(o),F(o)||le(o)){let[a]=await ee([o],r,t);if(a&&(n.push(a),a.registryDependencies)){let d=r?.registries?Ce(a.registryDependencies,r):a.registryDependencies,l=await Te(d,r,t,s);n.push(...l.items),i.push(...l.registryNames);}}else if(o.startsWith("@")&&r?.registries){let{registry:a}=ie(o);if(a&&!(a in r.registries))throw new M(a);let[d]=await ee([o],r,t);if(d&&(n.push(d),d.registryDependencies)){let l=r?.registries?Ce(d.registryDependencies,r):d.registryDependencies,c=await Te(l,r,t,s);n.push(...c.items),i.push(...c.registryNames);}}else if(i.push(o),r)try{let[a]=await ee([o],r,t);if(a&&a.registryDependencies){let d=r?.registries?Ce(a.registryDependencies,r):a.registryDependencies,l=await Te(d,r,t,s);n.push(...l.items),i.push(...l.registryNames);}}catch{}}return {items:n,registryNames:i}}async function Xs(e,r,t={}){if(F(e))return [e];let{registryNames:s}=await Te([e],r,t,new Set),n=r.resolvedPaths?.cwd?await $r(r.resolvedPaths.cwd,r.style):r.style,i=s.map(o=>Ze(F(o)?o:`styles/${n}/${o}.json`));return Array.from(new Set(i))}async function en(e,r){let[t,s]=await Promise.all([He(e),Ve(r)]);if(!t)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 r.tailwind.cssVariables&&(n.tailwind.config.theme.extend.colors={...n.tailwind.config.theme.extend.colors,...mt(t.cssVars.dark??{})},n.cssVars={theme:{...t.cssVars.theme,...n.cssVars.theme},light:{...t.cssVars.light,...n.cssVars.light},dark:{...t.cssVars.dark,...n.cssVars.dark}},s==="v4"&&t.cssVarsV4&&(n.cssVars={theme:{...t.cssVarsV4.theme,...n.cssVars.theme},light:{radius:"0.625rem",...t.cssVarsV4.light},dark:{...t.cssVarsV4.dark}})),n}function q(e,r){let t=r||e.name,s=createHash("sha256").update(t).digest("hex").substring(0,8);return `${e.name}::${s}`}function rn(e){if(F(e)){let s=new URL(e).pathname,n=s.match(/\/([^/]+)\.json$/),i=n?n[1]:y__default.basename(s,".json");return {name:i,hash:q({name:i},e)}}if(le(e)){let t=e.match(/\/([^/]+)\.json$/),s=t?t[1]:y__default.basename(e,".json");return {name:s,hash:q({name:s},e)}}let{item:r}=ie(e);return {name:r,hash:q({name:r},e)}}function tn(e,r){let t=new Map,s=new Map,n=new Map,i=new Map;e.forEach(l=>{let c=r.get(l)||l.name,f=q(l,c);t.set(f,l),s.set(f,l),n.set(f,0),i.set(f,[]);});let o=new Map;e.forEach(l=>{let c=r.get(l)||l.name,f=q(l,c);o.has(l.name)||o.set(l.name,[]),o.get(l.name).push(f),c!==l.name&&(o.has(c)||o.set(c,[]),o.get(c).push(f));}),e.forEach(l=>{let c=r.get(l)||l.name,f=q(l,c);l.registryDependencies&&l.registryDependencies.forEach(p=>{let x,u=o.get(p)||[];if(u.length===1)x=u[0];else if(u.length>1)x=u[0];else {let{name:w}=rn(p),g=o.get(w)||[];g.length>0&&(x=g[0]);}x&&t.has(x)&&(i.get(x).push(f),n.set(f,n.get(f)+1));});});let a=[],d=[];for(n.forEach((l,c)=>{l===0&&a.push(c);});a.length>0;){let l=a.shift(),c=t.get(l);d.push(c),i.get(l).forEach(f=>{let p=n.get(f)-1;n.set(f,p),p===0&&a.push(f);});}if(d.length!==e.length){console.warn("Circular dependency detected in registry items");let l=new Set(d.map(c=>{let f=r.get(c)||c.name;return q(c,f)}));e.forEach(c=>{let f=r.get(c)||c.name,p=q(c,f);l.has(p)||d.push(c);});}return d}function me(e){if(E.break(),E.error("Something went wrong. Please check the error below for more details."),E.error("If the problem persists, please open an issue on GitHub."),E.error(""),typeof e=="string"&&(E.error(e),E.break(),process.exit(1)),e instanceof C&&(e.message&&(E.error(e.cause?"Error:":"Message:"),E.error(e.message)),e.cause&&(E.error(`
329
+ Message:`),E.error(e.cause)),e.suggestion&&(E.error(`
330
+ Suggestion:`),E.error(e.suggestion)),E.break(),process.exit(1)),e instanceof z.ZodError){E.error("Validation failed:");for(let[r,t]of Object.entries(e.flatten().fieldErrors))E.error(`- ${I.info(r)}: ${t}`);E.break(),process.exit(1);}e instanceof Error&&(E.error(e.message),E.break(),process.exit(1)),E.break(),process.exit(1);}async function mr(e,r){let{config:t,useCache:s}=r||{};if(F(e)){let[a]=await P([e],{useCache:s});try{return o.parse(a)}catch(d){throw new A(e,d)}}if(!e.startsWith("@"))throw new ve(e);let n=e;n.endsWith("/registry")||(n=`${n}/registry`);let i=pe(n,de(t));if(!i?.url)throw new Z(n);i.headers&&Object.keys(i.headers).length>0&&Ee({[i.url]:i.headers});let[o$1]=await P([i.url],{useCache:s});try{return o.parse(o$1)}catch(a){throw new A(n,a)}}async function on(e,r){let{config:t,useCache:s=false}=r||{};return ke(),ee(e,de(t),{useCache:s})}async function an(e,r){let{config:t,useCache:s=false}=r||{};return ke(),ut(e,de(t),{useCache:s})}async function bc(e,r){let{useCache:t=true}=r||{};t||Ne.clearCaches();let s=await Ne.search(e);if(!s)return {registries:L};let n=z.object({registries:b$1.optional()}).safeParse(s.config);if(!n.success)throw new Le(e,n.error);return {registries:{...L,...n.data.registries||{}}}}async function ht(){try{let[e]=await P(["index.json"]);return p.parse(e)}catch(e){E.error(`
331
+ `),me(e);}}async function Ec(){try{let[e]=await P(["styles/index.json"]);return q$1.parse(e)}catch(e){return E.error(`
332
+ `),me(e),[]}}async function kc(){try{let[e]=await P(["icons/index.json"]);return r.parse(e)}catch(e){return me(e),{}}}async function Sc(){return Ar}async function He(e){if(e==="dga")return it;try{let[r]=await P([`colors/${e}.json`]);return s.parse(r)}catch(r){me(r);}}async function cn(e,r){let t=[];for(let s of r){let n=e.find(i=>i.name===s);if(n&&(t.push(n),n.registryDependencies)){let i=await cn(e,n.registryDependencies);t.push(...i);}}return t.filter((s,n,i)=>i.findIndex(o=>o.name===s.name)===n)}async function Rc(e,r){try{let t=r.map(n=>`styles/${e}/${n.name}.json`);return (await P(t)).map(n$1=>n.parse(n$1))}catch(t){return me(t),[]}}async function Cc(e,r,t){if(t)return t;if(r.type==="registry:ui")return e.resolvedPaths.ui??e.resolvedPaths.components;let[s,n]=r.type?.split(":")??[];return s in e.resolvedPaths?y__default.join(e.resolvedPaths[s],n):null}async function xt(e){e={useCache:true,...e};let r=`${se}/registries.json`,[t]=await P([r],{useCache:e.useCache});try{return x.parse(t)}catch(s){throw s instanceof z.ZodError?new be(s):s}}async function ln(e){let r=await xt(e);return r?Object.fromEntries(r.map(t=>[t.name,t.url])):null}async function dn(e){e={useCache:true,...e};let r=`${se}/config.json`,[t]=await P([r],{useCache:e.useCache});return z$1.parse(t).presets}async function Tc(e,r){return (await dn(r)).find(s=>s.name.toLowerCase()===e.toLowerCase())??null}async function gn(e,r){let{query:t,limit:s,offset:n,config:i,useCache:o}=r||{},a=[];for(let p of e){let u=((await mr(p,{config:i,useCache:o})).items||[]).map(w=>({name:w.name,type:w.type,description:w.description,registry:p,addCommandArgument:hn(w.name,p)}));a=a.concat(u);}t&&(a=fn(a,{query:t,limit:a.length,keys:["name","description"]}));let d=n||0,l=s||a.length,c=a.length,f={pagination:{total:c,offset:d,limit:l,hasMore:d+l<c},items:a.slice(d,d+l)};return v.parse(f)}var mn=z.object({name:z.string(),type:z.string().optional(),description:z.string().optional(),registry:z.string().optional(),addCommandArgument:z.string().optional()}).passthrough();function fn(e,r){r={limit:100,threshold:-1e4,...r};let s=pn.go(r.query,e,{keys:r.keys,threshold:r.threshold,limit:r.limit}).map(n=>n.obj);return z.array(mn).parse(s)}function un(e){try{return new URL(e),!0}catch{return false}}function hn(e,r){if(!un(r))return `${r}/${e}`;let t=r.indexOf("://")+3,s=r.indexOf("/",t);if(s===-1){let p=r.indexOf("?",t);if(p!==-1){let x=r.substring(0,p),w=r.substring(p).replace(/\bregistry\b/g,e);return x+w}return r}let n=r.substring(0,s),i=r.substring(s),o=i.indexOf("?")!==-1?i.indexOf("?"):i.length,a=i.substring(0,o),d=i.substring(o),l=a.lastIndexOf("registry"),c=a;l!==-1&&(c=a.substring(0,l)+e+a.substring(l+8));let f=d.replace(/\bregistry\b/g,e);return n+c+f}
333
+ export{on as $,M as A,ne as B,A as C,we as D,ve as E,be as F,ie as G,Dr as H,zr as I,Kr as J,Mr as K,Ro as L,Ss as M,F as N,zo as O,de as P,ke as Q,Xo as R,pe as S,P as T,$a as U,lt as V,Ys as W,ee as X,ut as Y,me as Z,mr as _,se as a,an as aa,Ar as b,bc as ba,L as c,ht as ca,yn as d,Ec as da,I as e,kc as ea,Dn as f,Sc as fa,zn as g,He as ga,Kn as h,cn as ha,_n as i,Rc as ia,Fe as j,Cc as ja,tr as k,xt as ka,Vn as l,ln as la,Pt as m,dn as ma,At as n,Tc as na,Or as o,gn as oa,sr as p,W as q,si as r,Ve as s,E as t,X as u,C as v,Z as w,he as x,ye as y,xe as z};//# sourceMappingURL=chunk-TUBV3KOD.js.map
334
+ //# sourceMappingURL=chunk-TUBV3KOD.js.map