shadcn-svelte 0.9.3 → 0.10.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.
package/dist/index.js CHANGED
@@ -1,175 +1,180 @@
1
1
  #!/usr/bin/env node
2
- var ss=Object.create;var rt=Object.defineProperty;var rs=Object.getOwnPropertyDescriptor;var ns=Object.getOwnPropertyNames;var is=Object.getPrototypeOf,as=Object.prototype.hasOwnProperty;var os=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports);var cs=(e,t,s,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let r of ns(t))!as.call(e,r)&&r!==s&&rt(e,r,{get:()=>t[r],enumerable:!(n=rs(t,r))||n.enumerable});return e};var ls=(e,t,s)=>(s=e!=null?ss(is(e)):{},cs(t||!e||!e.__esModule?rt(s,"default",{value:e,enumerable:!0}):s,e));var At=os((wn,Ot)=>{"use strict";var Xe="\x1B",b=`${Xe}[`,Hs="\x07",Je={to(e,t){return t?`${b}${t+1};${e+1}H`:`${b}${e+1}G`},move(e,t){let s="";return e<0?s+=`${b}${-e}D`:e>0&&(s+=`${b}${e}C`),t<0?s+=`${b}${-t}A`:t>0&&(s+=`${b}${t}B`),s},up:(e=1)=>`${b}${e}A`,down:(e=1)=>`${b}${e}B`,forward:(e=1)=>`${b}${e}C`,backward:(e=1)=>`${b}${e}D`,nextLine:(e=1)=>`${b}E`.repeat(e),prevLine:(e=1)=>`${b}F`.repeat(e),left:`${b}G`,hide:`${b}?25l`,show:`${b}?25h`,save:`${Xe}7`,restore:`${Xe}8`},Ks={up:(e=1)=>`${b}S`.repeat(e),down:(e=1)=>`${b}T`.repeat(e)},Ys={screen:`${b}2J`,up:(e=1)=>`${b}1J`.repeat(e),down:(e=1)=>`${b}J`.repeat(e),line:`${b}2K`,lineEnd:`${b}K`,lineStart:`${b}1K`,lines(e){let t="";for(let s=0;s<e;s++)t+=this.line+(s<e-1?Je.up():"");return e&&(t+=Je.left),t}};Ot.exports={cursor:Je,scroll:Ks,erase:Ys,beep:Hs}});import{Command as Nr}from"commander";import{existsSync as Ae,promises as tt}from"node:fs";import W from"node:path";import P from"chalk";import{Command as wr}from"commander";import{execa as _r}from"execa";var us=class extends Error{issues;constructor(e){super(e[0].message),this.name="ValiError",this.issues=e}},Mr=Symbol("brand");function U(e,t){return Array.isArray(e)?[void 0,e]:[e,t]}var me;function ps(e){return{lang:e?.lang??me?.lang,message:e?.message,abortEarly:e?.abortEarly??me?.abortEarly,abortPipeEarly:e?.abortPipeEarly??me?.abortPipeEarly,skipPipe:e?.skipPipe??me?.skipPipe}}var fs;function ds(e){return fs?.get(e)}var ms;function ys(e){return ms?.get(e)}var hs;function gs(e,t){return hs?.get(e)?.get(t)}function nt(e,t,s,n,r){let i=t.message??gs(s,r.lang)??(e?ys(r.lang):null)??n?.message??ds(r.lang)??r.message;return typeof i=="function"?i(r):i}function z(e,t,s){return{typed:e,output:t,issues:s}}function je(e){let t=typeof e;return t==="object"&&(t=e?Object.getPrototypeOf(e).constructor.name:"null"),t==="string"?`"${e}"`:t==="number"||t==="bigint"||t==="boolean"?`${e}`:t}function vs(e,t,s){let n=s.received??je(s.input),r={reason:e.type,context:s.context.type,expected:s.context.expects,received:n,message:`Invalid ${s.label}: ${s.context.expects?`Expected ${s.context.expects} but r`:"R"}eceived ${n}`,input:s.input,requirement:s.context.requirement,path:s.path,lang:t?.lang,abortEarly:t?.abortEarly,abortPipeEarly:t?.abortPipeEarly,skipPipe:t?.skipPipe};return r.message=nt(!1,s.context,s.reference,t,r),r}function X(e,t,s,n){if(e.pipe&&!s?.skipPipe)for(let r of e.pipe){let i=r._parse(t);if(i.issues){for(let o of i.issues){let c=vs(e,s,o);n?n.push(c):n=[c]}if(s?.abortEarly||s?.abortPipeEarly)break}else t=i.output}return z(!0,t,n)}function it(e,t,s){if(!e||typeof e=="object"&&!Array.isArray(e)){let[i,o]=U(t,s);return[e,i,o]}let[n,r]=U(e,t);return[void 0,n,r]}function J(e,t,s,n,r){let i=je(s),o=r?.expected??e.expects,c={reason:r?.reason??"type",context:e.type,expected:o,received:i,message:`Invalid type: Expected ${o} but received ${i}`,input:s,path:r?.path,issues:r?.issues,lang:n?.lang,abortEarly:n?.abortEarly,abortPipeEarly:n?.abortPipeEarly,skipPipe:n?.skipPipe};return c.message=nt(!0,e,t,n,c),{typed:!1,output:s,issues:[c]}}function xs(e){return typeof e.default=="function"?e.default():e.default}function T(e,t,s){let[n,r]=U(t,s);return{type:"array",expects:"Array",async:!1,item:e,message:n,pipe:r,_parse(i,o){if(Array.isArray(i)){let c=!0,d,l=[];for(let v=0;v<i.length;v++){let h=i[v],p=this.item._parse(h,o);if(p.issues){let g={type:"array",origin:"value",input:i,key:v,value:h};for(let u of p.issues)u.path?u.path.unshift(g):u.path=[g],d?.push(u);if(d||(d=p.issues),o?.abortEarly){c=!1;break}}p.typed||(c=!1),l.push(p.output)}return c?X(this,l,o,d):z(!1,l,d)}return J(this,T,i,o)}}}function I(e,t){let[s,n]=U(e,t);return{type:"boolean",expects:"boolean",async:!1,message:s,pipe:n,_parse(r,i){return typeof r=="boolean"?X(this,r,i):J(this,I,r,i)}}}function k(e,t,s,n){let[r,i,o]=it(t,s,n),c;return{type:"object",expects:"Object",async:!1,entries:e,rest:r,message:i,pipe:o,_parse(d,l){if(d&&typeof d=="object"){c=c??Object.entries(this.entries);let v=!0,h,p={};for(let[g,u]of c){let f=d[g],m=u._parse(f,l);if(m.issues){let w={type:"object",origin:"value",input:d,key:g,value:f};for(let C of m.issues)C.path?C.path.unshift(w):C.path=[w],h?.push(C);if(h||(h=m.issues),l?.abortEarly){v=!1;break}}m.typed||(v=!1),(m.output!==void 0||g in d)&&(p[g]=m.output)}if(this.rest&&!(l?.abortEarly&&h)){for(let g in d)if(!(g in this.entries)){let u=d[g],f=this.rest._parse(u,l);if(f.issues){let m={type:"object",origin:"value",input:d,key:g,value:u};for(let w of f.issues)w.path?w.path.unshift(m):w.path=[m],h?.push(w);if(h||(h=f.issues),l?.abortEarly){v=!1;break}}f.typed||(v=!1),p[g]=f.output}}return v?X(this,p,l,h):z(!1,p,h)}return J(this,k,d,l)}}}function R(e,t){return{type:"optional",expects:`${e.expects} | undefined`,async:!1,wrapped:e,default:t,_parse(s,n){if(s===void 0){let r=xs(this);if(r===void 0)return z(!0,s);s=r}return this.wrapped._parse(s,n)}}}function Re(e,t){return{type:"picklist",expects:e.map(je).join(" | "),async:!1,options:e,message:t,_parse(s,n){return this.options.includes(s)?z(!0,s):J(this,Re,s,n)}}}function y(e,t){let[s,n]=U(e,t);return{type:"string",expects:"string",async:!1,message:s,pipe:n,_parse(r,i){return typeof r=="string"?X(this,r,i):J(this,y,r,i)}}}function bs(e,t,s,n){if(typeof t=="object"&&!Array.isArray(t)){let[o,c]=U(s,n);return[e,t,o,c]}let[r,i]=U(t,s);return[y(),e,r,i]}var $s=["__proto__","prototype","constructor"];function H(e,t,s,n){let[r,i,o,c]=bs(e,t,s,n);return{type:"record",expects:"Object",async:!1,key:r,value:i,message:o,pipe:c,_parse(d,l){if(d&&typeof d=="object"){let v=!0,h,p={};for(let[g,u]of Object.entries(d))if(!$s.includes(g)){let f,m=this.key._parse(g,l);if(m.issues){f={type:"record",origin:"key",input:d,key:g,value:u};for(let C of m.issues)C.path=[f],h?.push(C);if(h||(h=m.issues),l?.abortEarly){v=!1;break}}let w=this.value._parse(u,l);if(w.issues){f=f??{type:"record",origin:"value",input:d,key:g,value:u};for(let C of w.issues)C.path?C.path.unshift(f):C.path=[f],h?.push(C);if(h||(h=w.issues),l?.abortEarly){v=!1;break}}(!m.typed||!w.typed)&&(v=!1),m.typed&&(p[m.output]=w.output)}return v?X(this,p,l,h):z(!1,p,h)}return J(this,H,d,l)}}}function ye(e,t,s,n){let[r,i,o]=it(t,s,n);return k(e.reduce((c,d)=>({...c,...d.entries}),{}),r,i,o)}function A(e,t,s){let n=e._parse(t,ps(s));if(n.issues)throw new us(n.issues);return n.output}function Fe(e,t,s){return{...e,_parse(n,r){let i=e._parse(n,r);if(i.issues)i.typed=!1;else if(i.output=t(i.output,{issues:i.issues}),s)return Array.isArray(s)?X({type:typeof i.output,pipe:s},i.output,r):s._parse(i.output,r);return i}}}import{promises as Ws}from"node:fs";import ve from"node:path";import St from"chalk";import{execa as Bs}from"execa";import ws from"path";import _ from"path";import{promises as _s}from"fs";import lt from"path";import Ts from"path";var Ur=ws.sep;var Wr=Symbol("singleComment"),Br=Symbol("multiComment");var Es=new RegExp("\\"+_.posix.sep,"g"),ks=new RegExp("\\"+_.sep,"g"),Ne=new Map,pt="**/*",Ve=[".ts",".tsx",".mts",".cts"],Ss=`\\.(?:${Ve.map(e=>e.substring(1)).join("|")})`,Cs=new Function("path","return import(path).then(m => m.default)");async function ft(){try{return Cs("typescript")}catch(e){throw console.error('typescript must be installed to use "native" functions'),e}}async function at(e){if(_.extname(e)!==".json")return;let t=_.resolve(e);try{let s=await _s.stat(t);if(s.isFile()||s.isFIFO())return t}catch(s){if(s.code!=="ENOENT")throw s}throw new Error(`no tsconfig file found for ${e}`)}function De(e){return _.posix.sep!==_.sep&&e.includes(_.posix.sep)?e.replace(Es,_.sep):e}function Me(e){return _.posix.sep!==_.sep&&e.includes(_.sep)?e.replace(ks,_.posix.sep):e}function he(e,t){return _.sep===_.posix.sep?e?_.resolve(e,t):_.resolve(t):Me(e?_.resolve(De(e),De(t)):_.resolve(De(t)))}function Os(e){let t=_.dirname(e.tsconfigFile);return e.tsconfig.references.map(s=>{let n=s.path.endsWith(".json")?s.path:_.join(s.path,"tsconfig.json");return he(t,n)})}function As(e,t){if(t.referenced&&Ve.some(s=>e.endsWith(s))&&!ot(e,t)){let s=t.referenced.find(n=>ot(e,n));if(s)return{...s,solution:t}}return t}function ot(e,t){let s=Me(_.dirname(t.tsconfigFile)),n=(t.tsconfig.files||[]).map(o=>he(s,o)),r=he(null,e);return n.includes(e)?!0:ct(r,s,t.tsconfig.include||(t.tsconfig.files?[]:[pt]))?!ct(r,s,t.tsconfig.exclude||[]):!1}function ct(e,t,s){return s.some(n=>{let r=n.length,i=!1;for(let l=n.length-1;l>-1;l--)if(n[l]==="*"||n[l]==="?"){r=l,i=!0;break}if(r<n.length-1&&!e.endsWith(n.slice(r+1))||n.endsWith("*")&&!Ve.some(l=>e.endsWith(l)))return!1;if(n===pt)return e.startsWith(`${t}/`);let o=he(t,n),c=-1;for(let l=0;l<o.length;l++)if(o[l]==="*"||o[l]==="?"){c=l,i=!0;break}if(c>1&&!e.startsWith(o.slice(0,c-1)))return!1;if(!i)return e===o;if(Ne.has(o))return Ne.get(o).test(e);let d=Ps(o);return Ne.set(o,d),d.test(e)})}function Ps(e){let t="^";for(let s=0;s<e.length;s++){let n=e[s];if(n==="?"){t+="[^\\/]";continue}if(n==="*"){if(e[s+1]==="*"&&e[s+2]==="/"){s+=2,t+="(?:[^\\/]*\\/)*";continue}t+="[^\\/]*";continue}"/.+^${}()|[]\\".includes(n)&&(t+="\\"),t+=n}return e.endsWith("*")&&(t+=Ss),t+="$",new RegExp(t)}async function ut(e){let t=await ft(),{findConfigFile:s,sys:n}=t,r=s(lt.dirname(lt.resolve(e)),n.fileExists);if(!r)throw new Error(`no tsconfig file found for ${e}`);return r}async function dt(e,t){let s=t?.cache;if(s?.has(e))return s.get(e);let n;if(t?.resolveWithEmptyIfConfigNotFound)try{n=await at(e),n||(n=await ut(e))}catch{let o={tsconfigFile:"no_tsconfig_file_found",tsconfig:{},result:null};return s?.set(e,o),o}else n=await at(e),n||(n=await ut(e));let r;if(s?.has(n))r=s.get(n);else{let i=await ft();r=await mt(n,i,t),await Is(r,i,t),s?.set(n,r)}return r=As(e,r),s?.set(e,r),r}async function mt(e,t,s){let n=s?.cache;if(n?.has(e))return n.get(e);let r=Me(e),{parseJsonConfigFileContent:i,readConfigFile:o,sys:c}=t,{config:d,error:l}=o(r,c.readFile);if(l)throw new yt(l,e,null);let v={useCaseSensitiveFileNames:!1,readDirectory:c.readDirectory,fileExists:c.fileExists,readFile:c.readFile};s?.ignoreSourceFiles&&(d.files=[],d.include=[]);let h=i(d,v,Ts.dirname(r),void 0,r);js(h,e);let p={tsconfigFile:e,tsconfig:Rs(h,t),result:h};return n?.set(e,p),p}async function Is(e,t,s){if(!e.tsconfig.references)return;let n=Os(e);e.referenced=await Promise.all(n.map(r=>mt(r,t,s)))}function js(e,t){var s;let n=[18002,18003],r=(s=e.errors)==null?void 0:s.find(i=>i.category===1&&!n.includes(i.code));if(r)throw new yt(r,t,e)}function Rs(e,t){let s=JSON.parse(JSON.stringify(e.raw)),n=["configFilePath","pathsBasePath"];if(e.options&&Object.keys(e.options).some(o=>!n.includes(o))){s.compilerOptions={...e.options};for(let o of n)delete s.compilerOptions[o]}let r=s.compilerOptions;if(r){r.lib!=null&&(r.lib=r.lib.map(c=>c.replace(/^lib\./,"").replace(/\.d\.ts$/,"")));let o=[{name:"importsNotUsedAsValues",enumeration:t.ImportsNotUsedAsValues},{name:"module",enumeration:t.ModuleKind},{name:"moduleResolution",enumeration:{...t.ModuleResolutionKind,2:"node"}},{name:"newLine",enumeration:{0:"crlf",1:"lf"}},{name:"target",enumeration:t.ScriptTarget}];for(let c of o)r[c.name]!=null&&typeof r[c.name]=="number"&&(r[c.name]=c.enumeration[r[c.name]].toLowerCase());r.target==="latest"&&(r.target="esnext")}e.watchOptions&&(s.watchOptions={...e.watchOptions});let i=s.watchOptions;if(i){let o=[{name:"watchFile",enumeration:t.WatchFileKind},{name:"watchDirectory",enumeration:t.WatchDirectoryKind},{name:"fallbackPolling",enumeration:t.PollingWatchKind}];for(let c of o)if(i[c.name]!=null&&typeof i[c.name]=="number"){let d=c.enumeration[i[c.name]];i[c.name]=d.charAt(0).toLowerCase()+d.slice(1)}}return s.compileOnSave===!1&&delete s.compileOnSave,s}var yt=class Le extends Error{constructor(t,s,n){super(t.messageText),Object.setPrototypeOf(this,Le.prototype),this.name=Le.name,this.code=`TS ${t.code}`,this.diagnostic=t,this.result=n,this.tsconfigFile=s}};import{promises as ht}from"node:fs";import Y from"node:path";async function gt(e,t){let s=Y.dirname(Y.resolve(e)),n=t?.root?Y.resolve(t.root):null;for(;s;){let r=await Fs(s,t);if(r)return r;{if(n===s)break;let i=Y.dirname(s);if(i===s)break;s=i}}throw new Error(`no tsconfig file found for ${e}`)}async function Fs(e,t){let s=Y.join(e,"tsconfig.json"),n=Y.join(e,"jsconfig.json");if(t?.tsConfigPaths)return t.tsConfigPaths.has(s)?s:void 0;try{let r=await ht.stat(s);if(r.isFile()||r.isFIFO())return s}catch(r){if(r.code!=="ENOENT")throw r}try{let r=await ht.stat(n);if(r.isFile()||r.isFIFO())return n}catch(r){if(r.code!=="ENOENT")throw r}}import vt from"node:path";import Ns from"node:fs";import{fileURLToPath as Ds}from"node:url";function ge(){let e=Ls("../package.json");return xt(e)}function Ls(e){let t=Ds(new URL(".",import.meta.url));return vt.resolve(t,e)}function Vs(e){let t=vt.resolve(e,"package.json");return xt(t)}function xt(e){let t=Ns.readFileSync(e,{encoding:"utf8"});return JSON.parse(t)}function bt(e){let t=Vs(e),s={...t.devDependencies,...t.dependencies};return Object.keys(s).some(n=>n==="@sveltejs/kit")}import $t from"node:fs";import wt from"node:path";import Ms from"node:process";import{findUp as _t}from"find-up";async function L(e){let t=await Gs(e);if(t==="yarn@berry")return"yarn";if(t==="pnpm@6")return"pnpm";if(t!==null)return t;let s=Ms.env.npm_config_user_agent;return s===void 0?"npm":s.startsWith("yarn")?"yarn":s.startsWith("pnpm")?"pnpm":"npm"}var qs=["npm","bun","pnpm","pnpm@6","yarn","yarn@berry"],Et={"bun.lockb":"bun","pnpm-lock.yaml":"pnpm","yarn.lock":"yarn","package-lock.json":"npm","npm-shrinkwrap.json":"npm"};async function Gs(e){let t=null,s=await _t(Object.keys(Et),{cwd:e}),n;if(s?n=wt.resolve(s,"../package.json"):n=await _t("package.json",{cwd:e}),n&&$t.existsSync(n))try{let r=JSON.parse($t.readFileSync(n,"utf8"));if(typeof r.packageManager=="string"){let[i,o]=r.packageManager.replace(/^\^/,"").split("@");i==="yarn"&&Number.parseInt(o)>1?t="yarn@berry":i==="pnpm"&&Number.parseInt(o)<7?t="pnpm@6":qs.includes(i)&&(t=i)}}catch{}return!t&&s&&(t=Et[wt.basename(s)]),t}import Us from"node:path";async function qe(e,t){for(let[s,n]of Object.entries(t.paths)){s=kt(s);let r=n[0]&&kt(n[0]);if(!e.startsWith(s)||r===void 0)continue;let i=e.replace(s,r);return Us.resolve(t.absoluteBaseUrl,...i.split("/"))}}function kt(e){return e.endsWith("/*")?e.slice(0,-2):e}var Ge="$lib/components",Ue="$lib/utils",We="src/app.pcss",Be="tailwind.config.cjs";var Ct=!0,xe=(...e)=>St.bold.cyan(...e),be=k({$schema:R(y()),style:y(),tailwind:k({config:y(),css:y(),baseColor:y()}),aliases:k({components:Fe(y(),e=>e.replace(/[\u{0080}-\u{FFFF}]/gu,"")),utils:Fe(y(),e=>e.replace(/[\u{0080}-\u{FFFF}]/gu,""))}),typescript:R(I(),!0)}),zs=ye([be,k({resolvedPaths:k({tailwindConfig:y(),tailwindCss:y(),utils:y(),components:y()})})]);async function Z(e){let t=await Xs(e);return t?await ze(e,t):null}async function ze(e,t){if(bt(e)){let v=await L(e);await Bs(v==="npm"?"npx":v,["svelte-kit","sync"],{cwd:e})}let n=await gt(ve.resolve(e,"package.json"),{root:e});if(n===null){let v=t.typescript?"tsconfig.json":"jsconfig.json";throw new Error(`Failed to find ${xe(v)}.`)}let r=await dt(n),i=r.result.options.pathsBasePath,o=r.result.options.paths;if(i===void 0||o===void 0)throw new Error(`Specify a ${xe("paths")} field in your ${xe("tsconfig.json")} and define your path aliases.
3
-
4
- See: ${St.green("https://www.shadcn-svelte.com/docs/installation#setup-path-aliases")}`);let c={absoluteBaseUrl:i,paths:o},d=await qe(t.aliases.utils,c),l=await qe(t.aliases.components,c);return A(zs,{...t,resolvedPaths:{tailwindConfig:ve.resolve(e,t.tailwind.config),tailwindCss:ve.resolve(e,t.tailwind.css),utils:d,components:l}})}async function Xs(e){let t=ve.resolve(e,"components.json");try{let s=await Ws.readFile(t,{encoding:"utf8"}).catch(r=>null);if(!s)return null;let n=JSON.parse(s);return A(be,n)}catch{throw new Error(`Invalid configuration found in ${xe(t)}.`)}}function Q(){let{HTTP_PROXY:e,http_proxy:t}=process.env;return e||t}var ee=ls(At(),1);import{block as Zs,ConfirmPrompt as Qs,GroupMultiSelectPrompt as En,isCancel as er,MultiSelectPrompt as tr,PasswordPrompt as kn,SelectKeyPrompt as Sn,SelectPrompt as sr,TextPrompt as rr}from"@clack/core";import nr from"is-unicode-supported";import a from"chalk";import{isCancel as q}from"@clack/core";var Ke=nr(),E=(e,t)=>Ke?e:t,ir=E("\u25C6","*"),It=E("\u25A0","x"),jt=E("\u25B2","x"),$e=E("\u25C7","o"),ar=E("\u250C","T"),x=E("\u2502","|"),V=E("\u2514","\u2014"),Ye=E("\u25CF",">"),Ze=E("\u25CB"," "),or=E("\u25FB","[\u2022]"),Pt=E("\u25FC","[+]"),cr=E("\u25FB","[ ]"),Pn=E("\u25AA","\u2022"),Tt=E("\u2500","-"),lr=E("\u256E","+"),ur=E("\u251C","+"),pr=E("\u256F","+"),fr=E("\u25CF","\u2022"),dr=E("\u25C6","*"),mr=E("\u25B2","!"),yr=E("\u25A0","x"),we=e=>{switch(e){case"initial":case"active":return a.cyan(ir);case"cancel":return a.red(It);case"error":return a.yellow(jt);case"submit":return a.green($e)}},Qe=e=>{let{cursor:t,options:s,style:n}=e,r=e.maxItems===void 0?1/0:Math.max(e.maxItems,5),i=0;t>=i+r-3?i=Math.max(Math.min(t-r+3,s.length-r),0):t<i+2&&(i=Math.max(t-2,0));let o=r<s.length&&i>0,c=r<s.length&&i+r<s.length;return s.slice(i,i+r).map((d,l,v)=>{let h=l===0&&o,p=l===v.length-1&&c;return h||p?a.dim("..."):n(d,l+i===t)})},ce=e=>new rr({validate:e.validate,placeholder:e.placeholder,defaultValue:e.defaultValue,initialValue:e.initialValue,render(){let t=`${a.gray(x)}
5
- ${we(this.state)} ${e.message}
6
- `,s=e.placeholder?a.inverse(e.placeholder[0])+a.dim(e.placeholder.slice(1)):a.inverse(a.hidden("_")),n=this.value?this.valueWithCursor:s;switch(this.state){case"error":return`${t.trim()}
7
- ${a.yellow(x)} ${n}
8
- ${a.yellow(V)} ${a.yellow(this.error)}
9
- `;case"submit":return`${t}${a.gray(x)} ${a.dim(this.value||e.placeholder)}`;case"cancel":return`${t}${a.gray(x)} ${a.strikethrough(a.dim(this.value??""))}${this.value?.trim()?`
10
- `+a.gray(x):""}`;default:return`${t}${a.cyan(x)} ${n}
11
- ${a.cyan(V)}
12
- `}}}).prompt();var M=e=>{let t=e.active??"Yes",s=e.inactive??"No";return new Qs({active:t,inactive:s,initialValue:e.initialValue??!0,render(){let n=`${a.gray(x)}
13
- ${we(this.state)} ${e.message}
14
- `,r=this.value?t:s;switch(this.state){case"submit":return`${n}${a.gray(x)} ${a.dim(r)}`;case"cancel":return`${n}${a.gray(x)} ${a.strikethrough(a.dim(r))}
15
- ${a.gray(x)}`;default:return`${n}${a.cyan(x)} ${this.value?`${a.green(Ye)} ${t}`:`${a.dim(Ze)} ${a.dim(t)}`} ${a.dim("/")} ${this.value?`${a.dim(Ze)} ${a.dim(s)}`:`${a.green(Ye)} ${s}`}
16
- ${a.cyan(V)}
17
- `}}}).prompt()},et=e=>{let t=(s,n)=>{let r=s.label??String(s.value);switch(n){case"selected":return`${a.dim(r)}`;case"active":return`${a.green(Ye)} ${r} ${s.hint?a.dim(`(${s.hint})`):""}`;case"cancelled":return`${a.strikethrough(a.dim(r))}`;default:return`${a.dim(Ze)} ${a.dim(r)}`}};return new sr({options:e.options,initialValue:e.initialValue,render(){let s=`${a.gray(x)}
18
- ${we(this.state)} ${e.message}
19
- `;switch(this.state){case"submit":return`${s}${a.gray(x)} ${t(this.options[this.cursor],"selected")}`;case"cancel":return`${s}${a.gray(x)} ${t(this.options[this.cursor],"cancelled")}
20
- ${a.gray(x)}`;default:return`${s}${a.cyan(x)} ${Qe({cursor:this.cursor,options:this.options,maxItems:e.maxItems,style:(n,r)=>t(n,r?"active":"inactive")}).join(`
21
- ${a.cyan(x)} `)}
22
- ${a.cyan(V)}
23
- `}}}).prompt()};var _e=e=>{let t=(s,n)=>{let r=s.label??String(s.value);return n==="active"?`${a.cyan(or)} ${r} ${s.hint?a.dim(`(${s.hint})`):""}`:n==="selected"?`${a.green(Pt)} ${a.dim(r)}`:n==="cancelled"?`${a.strikethrough(a.dim(r))}`:n==="active-selected"?`${a.green(Pt)} ${r} ${s.hint?a.dim(`(${s.hint})`):""}`:n==="submitted"?`${a.dim(r)}`:`${a.dim(cr)} ${a.dim(r)}`};return new tr({options:e.options,initialValues:e.initialValues,required:e.required??!0,cursorAt:e.cursorAt,validate(s){if(this.required&&s.length===0)return`Please select at least one option.
24
- ${a.reset(a.dim(`Press ${a.gray(a.bgWhite(a.inverse(" space ")))} to select, ${a.gray(a.bgWhite(a.inverse(" enter ")))} to submit`))}`},render(){let s=`${a.gray(x)}
25
- ${we(this.state)} ${e.message}
26
- `,n=(r,i)=>{let o=this.value.includes(r.value);return i&&o?t(r,"active-selected"):o?t(r,"selected"):t(r,i?"active":"inactive")};switch(this.state){case"submit":return`${s}${a.gray(x)} ${this.options.filter(({value:r})=>this.value.includes(r)).map(r=>t(r,"submitted")).join(a.dim(", "))||a.dim("none")}`;case"cancel":{let r=this.options.filter(({value:i})=>this.value.includes(i)).map(i=>t(i,"cancelled")).join(a.dim(", "));return`${s}${a.gray(x)} ${r.trim()?`${r}
27
- ${a.gray(x)}`:""}`}case"error":{let r=this.error.split(`
28
- `).map((i,o)=>o===0?`${a.yellow(V)} ${a.yellow(i)}`:` ${i}`).join(`
29
- `);return s+a.yellow(x)+" "+Qe({options:this.options,cursor:this.cursor,maxItems:e.maxItems,style:n}).join(`
30
- ${a.yellow(x)} `)+`
31
- `+r+`
32
- `}default:return`${s}${a.cyan(x)} ${Qe({options:this.options,cursor:this.cursor,maxItems:e.maxItems,style:n}).join(`
33
- ${a.cyan(x)} `)}
34
- ${a.cyan(V)}
35
- `}}}).prompt()};var He=e=>e.replace(hr(),""),Ee=(e="",t="")=>{let s=`
2
+ var er=Object.create;var Dt=Object.defineProperty;var tr=Object.getOwnPropertyDescriptor;var sr=Object.getOwnPropertyNames;var rr=Object.getPrototypeOf,nr=Object.prototype.hasOwnProperty;var Ft=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports);var ar=(e,t,r,s)=>{if(t&&typeof t=="object"||typeof t=="function")for(let n of sr(t))!nr.call(e,n)&&n!==r&&Dt(e,n,{get:()=>t[n],enumerable:!(s=tr(t,n))||s.enumerable});return e};var Vt=(e,t,r)=>(r=e!=null?er(rr(e)):{},ar(t||!e||!e.__esModule?Dt(r,"default",{value:e,enumerable:!0}):r,e));var Gt=Ft((va,Ut)=>{"use strict";var at="\x1B",A=`${at}[`,vr="\x07",it={to(e,t){return t?`${A}${t+1};${e+1}H`:`${A}${e+1}G`},move(e,t){let r="";return e<0?r+=`${A}${-e}D`:e>0&&(r+=`${A}${e}C`),t<0?r+=`${A}${-t}A`:t>0&&(r+=`${A}${t}B`),r},up:(e=1)=>`${A}${e}A`,down:(e=1)=>`${A}${e}B`,forward:(e=1)=>`${A}${e}C`,backward:(e=1)=>`${A}${e}D`,nextLine:(e=1)=>`${A}E`.repeat(e),prevLine:(e=1)=>`${A}F`.repeat(e),left:`${A}G`,hide:`${A}?25l`,show:`${A}?25h`,save:`${at}7`,restore:`${at}8`},$r={up:(e=1)=>`${A}S`.repeat(e),down:(e=1)=>`${A}T`.repeat(e)},xr={screen:`${A}2J`,up:(e=1)=>`${A}1J`.repeat(e),down:(e=1)=>`${A}J`.repeat(e),line:`${A}2K`,lineEnd:`${A}K`,lineStart:`${A}1K`,lines(e){let t="";for(let r=0;r<e;r++)t+=this.line+(r<e-1?it.up():"");return e&&(t+=it.left),t}};Ut.exports={cursor:it,scroll:$r,erase:xr,beep:vr}});var qs=Ft((Oi,Gs)=>{"use strict";function Ns(e){return Array.isArray(e)?e:[e]}var Ot="",Ds=" ",Tt="\\",Nn=/^\s+$/,Dn=/(?:[^\\]|^)\\$/,Fn=/^\\!/,Vn=/^\\#/,Mn=/\r?\n/g,Bn=/^\.*\/|^\.+$/,St="/",Ms="node-ignore";typeof Symbol<"u"&&(Ms=Symbol.for("node-ignore"));var Fs=Ms,Un=(e,t,r)=>Object.defineProperty(e,t,{value:r}),Gn=/([0-z])-([0-z])/g,Bs=()=>!1,qn=e=>e.replace(Gn,(t,r,s)=>r.charCodeAt(0)<=s.charCodeAt(0)?t:Ot),Wn=e=>{let{length:t}=e;return e.slice(0,t-t%2)},zn=[[/^\uFEFF/,()=>Ot],[/\\?\s+$/,e=>e.indexOf("\\")===0?Ds:Ot],[/\\\s/g,()=>Ds],[/[\\$.|*+(){^]/g,e=>`\\${e}`],[/(?!\\)\?/g,()=>"[^/]"],[/^\//,()=>"^"],[/\//g,()=>"\\/"],[/^\^*\\\*\\\*\\\//,()=>"^(?:.*\\/)?"],[/^(?=[^^])/,function(){return/\/(?!$)/.test(this)?"^":"(?:^|\\/)"}],[/\\\/\\\*\\\*(?=\\\/|$)/g,(e,t,r)=>t+6<r.length?"(?:\\/[^\\/]+)*":"\\/.+"],[/(^|[^\\]+)(\\\*)+(?=.+)/g,(e,t,r)=>{let s=r.replace(/\\\*/g,"[^\\/]*");return t+s}],[/\\\\\\(?=[$.|*+(){^])/g,()=>Tt],[/\\\\/g,()=>Tt],[/(\\)?\[([^\]/]*?)(\\*)($|\])/g,(e,t,r,s,n)=>t===Tt?`\\[${r}${Wn(s)}${n}`:n==="]"&&s.length%2===0?`[${qn(r)}${s}]`:"[]"],[/(?:[^*])$/,e=>/\/$/.test(e)?`${e}$`:`${e}(?=$|\\/$)`],[/(\^|\\\/)?\\\*$/,(e,t)=>`${t?`${t}[^/]+`:"[^/]*"}(?=$|\\/$)`]],Vs=Object.create(null),Xn=(e,t)=>{let r=Vs[e];return r||(r=zn.reduce((s,n)=>s.replace(n[0],n[1].bind(e)),e),Vs[e]=r),t?new RegExp(r,"i"):new RegExp(r)},jt=e=>typeof e=="string",Kn=e=>e&&jt(e)&&!Nn.test(e)&&!Dn.test(e)&&e.indexOf("#")!==0,Jn=e=>e.split(Mn),It=class{constructor(t,r,s,n){this.origin=t,this.pattern=r,this.negative=s,this.regex=n}},Hn=(e,t)=>{let r=e,s=!1;e.indexOf("!")===0&&(s=!0,e=e.substr(1)),e=e.replace(Fn,"!").replace(Vn,"#");let n=Xn(e,t);return new It(r,e,s,n)},Yn=(e,t)=>{throw new t(e)},z=(e,t,r)=>jt(e)?e?z.isNotRelative(e)?r(`path should be a \`path.relative()\`d string, but got "${t}"`,RangeError):!0:r("path must not be empty",TypeError):r(`path must be a string, but got \`${t}\``,TypeError),Us=e=>Bn.test(e);z.isNotRelative=Us;z.convert=e=>e;var Pt=class{constructor({ignorecase:t=!0,ignoreCase:r=t,allowRelativePaths:s=!1}={}){Un(this,Fs,!0),this._rules=[],this._ignoreCase=r,this._allowRelativePaths=s,this._initCache()}_initCache(){this._ignoreCache=Object.create(null),this._testCache=Object.create(null)}_addPattern(t){if(t&&t[Fs]){this._rules=this._rules.concat(t._rules),this._added=!0;return}if(Kn(t)){let r=Hn(t,this._ignoreCase);this._added=!0,this._rules.push(r)}}add(t){return this._added=!1,Ns(jt(t)?Jn(t):t).forEach(this._addPattern,this),this._added&&this._initCache(),this}addPattern(t){return this.add(t)}_testOne(t,r){let s=!1,n=!1;return this._rules.forEach(a=>{let{negative:i}=a;if(n===i&&s!==n||i&&!s&&!n&&!r)return;a.regex.test(t)&&(s=!i,n=i)}),{ignored:s,unignored:n}}_test(t,r,s,n){let a=t&&z.convert(t);return z(a,t,this._allowRelativePaths?Bs:Yn),this._t(a,r,s,n)}_t(t,r,s,n){if(t in r)return r[t];if(n||(n=t.split(St)),n.pop(),!n.length)return r[t]=this._testOne(t,s);let a=this._t(n.join(St)+St,r,s,n);return r[t]=a.ignored?a:this._testOne(t,s)}ignores(t){return this._test(t,this._ignoreCache,!1).ignored}createFilter(){return t=>!this.ignores(t)}filter(t){return Ns(t).filter(this.createFilter())}test(t){return this._test(t,this._testCache,!0)}},Qe=e=>new Pt(e),Zn=e=>z(e&&z.convert(e),e,Bs);Qe.isPathValid=Zn;Qe.default=Qe;Gs.exports=Qe;if(typeof process<"u"&&(process.env&&process.env.IGNORE_TEST_WIN32||process.platform==="win32")){let e=r=>/^\\\\\?\\/.test(r)||/["<>|\u0000-\u001F]+/u.test(r)?r:r.replace(/\\/g,"/");z.convert=e;let t=/^[a-z]:\//i;z.isNotRelative=r=>t.test(r)||Us(r)}});import{Command as fa}from"commander";import{existsSync as Ye,promises as At}from"fs";import se from"path";import F from"chalk";import{Command as Sn}from"commander";import{execa as On}from"execa";var ir=class extends Error{issues;constructor(e){super(e[0].message),this.name="ValiError",this.issues=e}},ha=Symbol("brand");function ee(e,t){return Array.isArray(e)?[void 0,e]:[e,t]}var Re;function or(e){return{lang:e?.lang??Re?.lang,message:e?.message,abortEarly:e?.abortEarly??Re?.abortEarly,abortPipeEarly:e?.abortPipeEarly??Re?.abortPipeEarly,skipPipe:e?.skipPipe??Re?.skipPipe}}var cr;function lr(e){return cr?.get(e)}var ur;function pr(e){return ur?.get(e)}var fr;function dr(e,t){return fr?.get(e)?.get(t)}function Mt(e,t,r,s,n){let a=t.message??dr(r,n.lang)??(e?pr(n.lang):null)??s?.message??lr(n.lang)??n.message;return typeof a=="function"?a(n):a}function ne(e,t,r){return{typed:e,output:t,issues:r}}function st(e){let t=typeof e;return t==="object"&&(t=e?Object.getPrototypeOf(e).constructor.name:"null"),t==="string"?`"${e}"`:t==="number"||t==="bigint"||t==="boolean"?`${e}`:t}function mr(e,t,r){let s=r.received??st(r.input),n={reason:e.type,context:r.context.type,expected:r.context.expects,received:s,message:`Invalid ${r.label}: ${r.context.expects?`Expected ${r.context.expects} but r`:"R"}eceived ${s}`,input:r.input,requirement:r.context.requirement,path:r.path,lang:t?.lang,abortEarly:t?.abortEarly,abortPipeEarly:t?.abortPipeEarly,skipPipe:t?.skipPipe};return n.message=Mt(!1,r.context,r.reference,t,n),n}function ae(e,t,r,s){if(e.pipe&&!r?.skipPipe)for(let n of e.pipe){let a=n._parse(t);if(a.issues){for(let i of a.issues){let l=mr(e,r,i);s?s.push(l):s=[l]}if(r?.abortEarly||r?.abortPipeEarly)break}else t=a.output}return ne(!0,t,s)}function Bt(e,t,r){if(!e||typeof e=="object"&&!Array.isArray(e)){let[a,i]=ee(t,r);return[e,a,i]}let[s,n]=ee(e,t);return[void 0,s,n]}function ie(e,t,r,s,n){let a=st(r),i=n?.expected??e.expects,l={reason:n?.reason??"type",context:e.type,expected:i,received:a,message:`Invalid type: Expected ${i} but received ${a}`,input:r,path:n?.path,issues:n?.issues,lang:s?.lang,abortEarly:s?.abortEarly,abortPipeEarly:s?.abortPipeEarly,skipPipe:s?.skipPipe};return l.message=Mt(!0,e,t,s,l),{typed:!1,output:r,issues:[l]}}function yr(e){return typeof e.default=="function"?e.default():e.default}function V(e,t,r){let[s,n]=ee(t,r);return{type:"array",expects:"Array",async:!1,item:e,message:s,pipe:n,_parse(a,i){if(Array.isArray(a)){let l=!0,c,y=[];for(let g=0;g<a.length;g++){let u=a[g],d=this.item._parse(u,i);if(d.issues){let m={type:"array",origin:"value",input:a,key:g,value:u};for(let p of d.issues)p.path?p.path.unshift(m):p.path=[m],c?.push(p);if(c||(c=d.issues),i?.abortEarly){l=!1;break}}d.typed||(l=!1),y.push(d.output)}return l?ae(this,y,i,c):ne(!1,y,c)}return ie(this,V,a,i)}}}function M(e,t){let[r,s]=ee(e,t);return{type:"boolean",expects:"boolean",async:!1,message:r,pipe:s,_parse(n,a){return typeof n=="boolean"?ae(this,n,a):ie(this,M,n,a)}}}function O(e,t,r,s){let[n,a,i]=Bt(t,r,s),l;return{type:"object",expects:"Object",async:!1,entries:e,rest:n,message:a,pipe:i,_parse(c,y){if(c&&typeof c=="object"){l=l??Object.entries(this.entries);let g=!0,u,d={};for(let[m,p]of l){let f=c[m],v=p._parse(f,y);if(v.issues){let k={type:"object",origin:"value",input:c,key:m,value:f};for(let C of v.issues)C.path?C.path.unshift(k):C.path=[k],u?.push(C);if(u||(u=v.issues),y?.abortEarly){g=!1;break}}v.typed||(g=!1),(v.output!==void 0||m in c)&&(d[m]=v.output)}if(this.rest&&!(y?.abortEarly&&u)){for(let m in c)if(!(m in this.entries)){let p=c[m],f=this.rest._parse(p,y);if(f.issues){let v={type:"object",origin:"value",input:c,key:m,value:p};for(let k of f.issues)k.path?k.path.unshift(v):k.path=[v],u?.push(k);if(u||(u=f.issues),y?.abortEarly){g=!1;break}}f.typed||(g=!1),d[m]=f.output}}return g?ae(this,d,y,u):ne(!1,d,u)}return ie(this,O,c,y)}}}function G(e,t){return{type:"optional",expects:`${e.expects} | undefined`,async:!1,wrapped:e,default:t,_parse(r,s){if(r===void 0){let n=yr(this);if(n===void 0)return ne(!0,r);r=n}return this.wrapped._parse(r,s)}}}function rt(e,t){return{type:"picklist",expects:e.map(st).join(" | "),async:!1,options:e,message:t,_parse(r,s){return this.options.includes(r)?ne(!0,r):ie(this,rt,r,s)}}}function x(e,t){let[r,s]=ee(e,t);return{type:"string",expects:"string",async:!1,message:r,pipe:s,_parse(n,a){return typeof n=="string"?ae(this,n,a):ie(this,x,n,a)}}}function hr(e,t,r,s){if(typeof t=="object"&&!Array.isArray(t)){let[i,l]=ee(r,s);return[e,t,i,l]}let[n,a]=ee(t,r);return[x(),e,n,a]}var gr=["__proto__","prototype","constructor"];function oe(e,t,r,s){let[n,a,i,l]=hr(e,t,r,s);return{type:"record",expects:"Object",async:!1,key:n,value:a,message:i,pipe:l,_parse(c,y){if(c&&typeof c=="object"){let g=!0,u,d={};for(let[m,p]of Object.entries(c))if(!gr.includes(m)){let f,v=this.key._parse(m,y);if(v.issues){f={type:"record",origin:"key",input:c,key:m,value:p};for(let C of v.issues)C.path=[f],u?.push(C);if(u||(u=v.issues),y?.abortEarly){g=!1;break}}let k=this.value._parse(p,y);if(k.issues){f=f??{type:"record",origin:"value",input:c,key:m,value:p};for(let C of k.issues)C.path?C.path.unshift(f):C.path=[f],u?.push(C);if(u||(u=k.issues),y?.abortEarly){g=!1;break}}(!v.typed||!k.typed)&&(g=!1),v.typed&&(d[v.output]=k.output)}return g?ae(this,d,y,u):ne(!1,d,u)}return ie(this,oe,c,y)}}}function Le(e,t,r,s){let[n,a,i]=Bt(t,r,s);return O(e.reduce((l,c)=>({...l,...c.entries}),{}),n,a,i)}function N(e,t,r){let s=e._parse(t,or(r));if(s.issues)throw new ir(s.issues);return s.output}function nt(e,t,r){return{...e,_parse(s,n){let a=e._parse(s,n);if(a.issues)a.typed=!1;else if(a.output=t(a.output,{issues:a.issues}),r)return Array.isArray(r)?ae({type:typeof a.output,pipe:r},a.output,n):r._parse(a.output,n);return a}}}import xn from"fs";import We from"path";import Te from"chalk";var le=Vt(Gt(),1);import{block as br,ConfirmPrompt as _r,GroupMultiSelectPrompt as xa,isCancel as wr,MultiSelectPrompt as Er,PasswordPrompt as ba,SelectKeyPrompt as _a,SelectPrompt as kr,TextPrompt as Cr}from"@clack/core";import Ar from"is-unicode-supported";import o from"chalk";import{isCancel as q}from"@clack/core";var ct=Ar(),S=(e,t)=>ct?e:t,Tr=S("\u25C6","*"),zt=S("\u25A0","x"),Xt=S("\u25B2","x"),Ne=S("\u25C7","o"),Sr=S("\u250C","T"),b=S("\u2502","|"),K=S("\u2514","\u2014"),lt=S("\u25CF",">"),ut=S("\u25CB"," "),Or=S("\u25FB","[\u2022]"),qt=S("\u25FC","[+]"),Ir=S("\u25FB","[ ]"),Ca=S("\u25AA","\u2022"),Wt=S("\u2500","-"),Pr=S("\u256E","+"),jr=S("\u251C","+"),Rr=S("\u256F","+"),Lr=S("\u25CF","\u2022"),Nr=S("\u25C6","*"),Dr=S("\u25B2","!"),Fr=S("\u25A0","x"),De=e=>{switch(e){case"initial":case"active":return o.cyan(Tr);case"cancel":return o.red(zt);case"error":return o.yellow(Xt);case"submit":return o.green(Ne)}},pt=e=>{let{cursor:t,options:r,style:s}=e,n=e.maxItems===void 0?1/0:Math.max(e.maxItems,5),a=0;t>=a+n-3?a=Math.max(Math.min(t-n+3,r.length-n),0):t<a+2&&(a=Math.max(t-2,0));let i=n<r.length&&a>0,l=n<r.length&&a+n<r.length;return r.slice(a,a+n).map((c,y,g)=>{let u=y===0&&i,d=y===g.length-1&&l;return u||d?o.dim("..."):s(c,y+a===t)})},we=e=>new Cr({validate:e.validate,placeholder:e.placeholder,defaultValue:e.defaultValue,initialValue:e.initialValue,render(){let t=`${o.gray(b)}
3
+ ${De(this.state)} ${e.message}
4
+ `,r=e.placeholder?o.inverse(e.placeholder[0])+o.dim(e.placeholder.slice(1)):o.inverse(o.hidden("_")),s=this.value?this.valueWithCursor:r;switch(this.state){case"error":return`${t.trim()}
5
+ ${o.yellow(b)} ${s}
6
+ ${o.yellow(K)} ${o.yellow(this.error)}
7
+ `;case"submit":return`${t}${o.gray(b)} ${o.dim(this.value||e.placeholder)}`;case"cancel":return`${t}${o.gray(b)} ${o.strikethrough(o.dim(this.value??""))}${this.value?.trim()?`
8
+ `+o.gray(b):""}`;default:return`${t}${o.cyan(b)} ${s}
9
+ ${o.cyan(K)}
10
+ `}}}).prompt();var J=e=>{let t=e.active??"Yes",r=e.inactive??"No";return new _r({active:t,inactive:r,initialValue:e.initialValue??!0,render(){let s=`${o.gray(b)}
11
+ ${De(this.state)} ${e.message}
12
+ `,n=this.value?t:r;switch(this.state){case"submit":return`${s}${o.gray(b)} ${o.dim(n)}`;case"cancel":return`${s}${o.gray(b)} ${o.strikethrough(o.dim(n))}
13
+ ${o.gray(b)}`;default:return`${s}${o.cyan(b)} ${this.value?`${o.green(lt)} ${t}`:`${o.dim(ut)} ${o.dim(t)}`} ${o.dim("/")} ${this.value?`${o.dim(ut)} ${o.dim(r)}`:`${o.green(lt)} ${r}`}
14
+ ${o.cyan(K)}
15
+ `}}}).prompt()},ft=e=>{let t=(r,s)=>{let n=r.label??String(r.value);switch(s){case"selected":return`${o.dim(n)}`;case"active":return`${o.green(lt)} ${n} ${r.hint?o.dim(`(${r.hint})`):""}`;case"cancelled":return`${o.strikethrough(o.dim(n))}`;default:return`${o.dim(ut)} ${o.dim(n)}`}};return new kr({options:e.options,initialValue:e.initialValue,render(){let r=`${o.gray(b)}
16
+ ${De(this.state)} ${e.message}
17
+ `;switch(this.state){case"submit":return`${r}${o.gray(b)} ${t(this.options[this.cursor],"selected")}`;case"cancel":return`${r}${o.gray(b)} ${t(this.options[this.cursor],"cancelled")}
18
+ ${o.gray(b)}`;default:return`${r}${o.cyan(b)} ${pt({cursor:this.cursor,options:this.options,maxItems:e.maxItems,style:(s,n)=>t(s,n?"active":"inactive")}).join(`
19
+ ${o.cyan(b)} `)}
20
+ ${o.cyan(K)}
21
+ `}}}).prompt()};var Fe=e=>{let t=(r,s)=>{let n=r.label??String(r.value);return s==="active"?`${o.cyan(Or)} ${n} ${r.hint?o.dim(`(${r.hint})`):""}`:s==="selected"?`${o.green(qt)} ${o.dim(n)}`:s==="cancelled"?`${o.strikethrough(o.dim(n))}`:s==="active-selected"?`${o.green(qt)} ${n} ${r.hint?o.dim(`(${r.hint})`):""}`:s==="submitted"?`${o.dim(n)}`:`${o.dim(Ir)} ${o.dim(n)}`};return new Er({options:e.options,initialValues:e.initialValues,required:e.required??!0,cursorAt:e.cursorAt,validate(r){if(this.required&&r.length===0)return`Please select at least one option.
22
+ ${o.reset(o.dim(`Press ${o.gray(o.bgWhite(o.inverse(" space ")))} to select, ${o.gray(o.bgWhite(o.inverse(" enter ")))} to submit`))}`},render(){let r=`${o.gray(b)}
23
+ ${De(this.state)} ${e.message}
24
+ `,s=(n,a)=>{let i=this.value.includes(n.value);return a&&i?t(n,"active-selected"):i?t(n,"selected"):t(n,a?"active":"inactive")};switch(this.state){case"submit":return`${r}${o.gray(b)} ${this.options.filter(({value:n})=>this.value.includes(n)).map(n=>t(n,"submitted")).join(o.dim(", "))||o.dim("none")}`;case"cancel":{let n=this.options.filter(({value:a})=>this.value.includes(a)).map(a=>t(a,"cancelled")).join(o.dim(", "));return`${r}${o.gray(b)} ${n.trim()?`${n}
25
+ ${o.gray(b)}`:""}`}case"error":{let n=this.error.split(`
26
+ `).map((a,i)=>i===0?`${o.yellow(K)} ${o.yellow(a)}`:` ${a}`).join(`
27
+ `);return r+o.yellow(b)+" "+pt({options:this.options,cursor:this.cursor,maxItems:e.maxItems,style:s}).join(`
28
+ ${o.yellow(b)} `)+`
29
+ `+n+`
30
+ `}default:return`${r}${o.cyan(b)} ${pt({options:this.options,cursor:this.cursor,maxItems:e.maxItems,style:s}).join(`
31
+ ${o.cyan(b)} `)}
32
+ ${o.cyan(K)}
33
+ `}}}).prompt()};var ot=e=>e.replace(Mr(),""),Kt=(e="",t="")=>{let r=`
36
34
  ${e}
37
35
  `.split(`
38
- `),n=He(t).length,r=Math.max(s.reduce((o,c)=>(c=He(c),c.length>o?c.length:o),0),n)+2,i=s.map(o=>`${a.gray(x)} ${a.dim(o)}${" ".repeat(r-He(o).length)}${a.gray(x)}`).join(`
39
- `);process.stdout.write(`${a.gray(x)}
40
- ${a.green($e)} ${a.reset(t)} ${a.gray(Tt.repeat(Math.max(r-n-1,1))+lr)}
41
- ${i}
42
- ${a.gray(ur+Tt.repeat(r+2)+pr)}
43
- `)},$=(e="")=>{process.stdout.write(`${a.gray(V)} ${a.red(e)}
44
-
45
- `)},Rt=(e="")=>{process.stdout.write(`${a.gray(ar)} ${e}
46
- `)},te=(e="")=>{process.stdout.write(`${a.gray(x)}
47
- ${a.gray(V)} ${e}
48
-
49
- `)},S={message:(e="",{symbol:t=a.gray(x)}={})=>{let s=[`${a.gray(x)}`];if(e){let[n,...r]=e.split(`
50
- `);s.push(`${t} ${n}`,...r.map(i=>`${a.gray(x)} ${i}`))}process.stdout.write(`${s.join(`
36
+ `),s=ot(t).length,n=Math.max(r.reduce((i,l)=>(l=ot(l),l.length>i?l.length:i),0),s)+2,a=r.map(i=>`${o.gray(b)} ${o.dim(i)}${" ".repeat(n-ot(i).length)}${o.gray(b)}`).join(`
37
+ `);process.stdout.write(`${o.gray(b)}
38
+ ${o.green(Ne)} ${o.reset(t)} ${o.gray(Wt.repeat(Math.max(n-s-1,1))+Pr)}
39
+ ${a}
40
+ ${o.gray(jr+Wt.repeat(n+2)+Rr)}
41
+ `)},j=(e="")=>{process.stdout.write(`${o.gray(K)} ${o.red(e)}
42
+
43
+ `)},Jt=(e="")=>{process.stdout.write(`${o.gray(Sr)} ${e}
44
+ `)},ue=(e="")=>{process.stdout.write(`${o.gray(b)}
45
+ ${o.gray(K)} ${e}
46
+
47
+ `)},T={message:(e="",{symbol:t=o.gray(b)}={})=>{let r=[`${o.gray(b)}`];if(e){let[s,...n]=e.split(`
48
+ `);r.push(`${t} ${s}`,...n.map(a=>`${o.gray(b)} ${a}`))}process.stdout.write(`${r.join(`
51
49
  `)}
52
- `)},info:e=>{S.message(e,{symbol:a.blue(fr)})},success:e=>{S.message(e,{symbol:a.green(dr)})},step:e=>{S.message(e,{symbol:a.green($e)})},warn:e=>{S.message(e,{symbol:a.yellow(mr)})},warning:e=>{S.warn(e)},error:e=>{S.message(e,{symbol:a.red(yr)})}},F=()=>{let e=Ke?["\u25D2","\u25D0","\u25D3","\u25D1"]:["\u2022","o","O","0"],t=Ke?80:120,s,n,r=!1,i="",o=u=>{let f=u>1?"Something went wrong":"Canceled";r&&p(f,u)},c=()=>o(2),d=()=>o(1),l=()=>{process.on("uncaughtExceptionMonitor",c),process.on("unhandledRejection",c),process.on("SIGINT",d),process.on("SIGTERM",d),process.on("exit",o)},v=()=>{process.removeListener("uncaughtExceptionMonitor",c),process.removeListener("unhandledRejection",c),process.removeListener("SIGINT",d),process.removeListener("SIGTERM",d),process.removeListener("exit",o)},h=(u="")=>{r=!0,s=Zs(),i=u.replace(/\.+$/,""),process.stdout.write(`${a.gray(x)}
53
- `);let f=0,m=0;l(),n=setInterval(()=>{let w=a.magenta(e[f]),C=".".repeat(Math.floor(m)).slice(0,3);process.stdout.write(ee.cursor.move(-999,0)),process.stdout.write(ee.erase.down(1)),process.stdout.write(`${w} ${i}${C}`),f=f+1<e.length?f+1:0,m=m<e.length?m+.125:0},t)},p=(u="",f=0)=>{i=u??i,r=!1,clearInterval(n);let m=f===0?a.green($e):f===1?a.red(It):a.red(jt);process.stdout.write(ee.cursor.move(-999,0)),process.stdout.write(ee.erase.down(1)),process.stdout.write(`${m} ${i}
54
- `),v(),s()};return{start:h,stop:p,message:(u="")=>{i=u??i}}};function hr(){let e=["[\\u001B\\u009B][[\\]()#;?]*(?:(?:(?:(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]+)*|[a-zA-Z\\d]+(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]*)*)?\\u0007)","(?:(?:\\d{1,4}(?:;\\d{0,4})*)?[\\dA-PR-TZcf-nq-uy=><~]))"].join("|");return new RegExp(e,"g")}var Ft=async(e,t)=>{let s={},n=Object.keys(e);for(let r of n){let i=e[r],o=await i({results:s})?.catch(c=>{throw c});if(typeof t?.onCancel=="function"&&er(o)){s[r]="canceled",t.onCancel({results:s});continue}s[r]=o}return s};function se(e){typeof e=="string"&&($(e),process.exit(1)),e instanceof Error&&($(e.message),process.exit(1)),$("Something went wrong. Please try again."),process.exit(1)}import xr from"node:path";import br from"node-fetch";import{HttpsProxyAgent as $r}from"https-proxy-agent";var Nt=k({name:y(),dependencies:T(y()),registryDependencies:T(y()),files:T(y()),type:Re(["components:ui","components:component","components:example"])}),Dt=T(Nt),gr=ye([Nt,k({files:T(k({name:y(),content:y()}))})]),Lt=T(gr),Vt=T(k({name:y(),label:y()})),Mt=k({inlineColors:k({light:H(y(),y()),dark:H(y(),y())}),cssVars:k({light:H(y(),y()),dark:H(y(),y())}),inlineColorsTemplate:y(),cssVarsTemplate:y()});var qt=process.env.COMPONENTS_REGISTRY_URL??"https://shadcn-svelte.com";async function ke(){try{let[e]=await Ce(["index.json"]);return A(Dt,e)}catch{throw new Error("Failed to fetch components from registry.")}}async function Gt(){try{let[e]=await Ce(["styles/index.json"]);return A(Vt,e)}catch{throw new Error("Failed to fetch styles from registry.")}}async function Ut(){return[{name:"slate",label:"Slate"},{name:"gray",label:"Gray"},{name:"zinc",label:"Zinc"},{name:"neutral",label:"Neutral"},{name:"stone",label:"Stone"}]}async function Wt(e){try{let[t]=await Ce([`colors/${e}.json`]);return A(Mt,t)}catch{throw new Error("Failed to fetch base color from registry.")}}async function ue(e,t){let s=[];for(let n of t){let r=e.find(i=>i.name===n);if(r&&(s.push(r),r.registryDependencies)){let i=await ue(e,r.registryDependencies);s.push(...i)}}return s.filter((n,r,i)=>i.findIndex(o=>o.name===n.name)===r)}async function Se(e,t){try{let s=e.typescript?e.style:`${e.style}-js`,n=t.map(i=>`styles/${s}/${i.name}.json`),r=await Ce(n);return A(Lt,r)}catch{throw new Error("Failed to fetch tree from registry.")}}function pe(e,t,s){if(s&&t.type!=="components:ui")return s;let[n,r]=t.type.split(":");return!n||!r||!(n in e.resolvedPaths)?null:xr.join(e.resolvedPaths[n],r)}async function Ce(e){let t=Q(),s=t?new $r(t):void 0;try{return await Promise.all(e.map(async r=>await(await br(`${qt}/registry/${r}`,{agent:s})).json()))}catch(n){throw console.error(n),new Error(`Failed to fetch registry from ${qt}.`)}}function Oe(e,t){let s=e.replace(/\$lib\/registry\/[^/]+/g,t.aliases.components);return s=s.replace(/\$lib\/utils/g,t.aliases.utils),s}import Bt from"chalk";function re(){let e=ge(),t=Bt.bgHex("#FF5500").black(" shadcn-svelte "),s=Bt.gray(` v${e.version} `);Rt(t+s)}function ne(e,t=9){return e.reduce((s,n,r)=>r%t===0?`${s},
55
- ${n}`:`${s}, ${n}`)}var D=(...e)=>P.bold.cyan(...e),Er=k({components:R(T(y())),yes:I(),all:I(),overwrite:I(),cwd:y(),path:R(y()),nodep:I(),proxy:R(y())}),zt=new wr().command("add").description("add components to your project").argument("[components...]","name of components").option("--nodep","skips adding & installing package dependencies.",!1).option("-a, --all","install all components to your project.",!1).option("-y, --yes","skip confirmation prompt.",!1).option("-o, --overwrite","overwrite existing files.",!1).option("--proxy <proxy>","fetch components from registry using a proxy.").option("-c, --cwd <cwd>","the working directory. defaults to the current directory.",process.cwd()).option("-p, --path <path>","the path to add the component to.").action(async(e,t)=>{try{re();let s=A(Er,{components:e,...t}),n=W.resolve(s.cwd);Ae(n)||($(`The path ${P.cyan(n)} does not exist. Please try again.`),process.exit(1));let r=await Z(n);r||($(`Configuration file is missing. Please run ${P.green("init")} to create a ${D("components.json")} file.`),process.exit(1)),await kr(n,r,s),te(`${P.green("Success!")} Component installation completed.`)}catch(s){se(s)}});async function kr(e,t,s){let n=s.proxy??Q();if(n){let p=!!s.proxy;p&&(process.env.HTTP_PROXY=s.proxy),S.warn(`You are using a ${p?"provided":"system environment"} proxy: ${P.green(n)}`)}let r=await ke(),i=s.all?r.map(({name:p})=>p):s.components;if(i===void 0||i.length===0){let p=await _e({message:`Which ${D("components")} would you like to install?`,maxItems:10,options:r.map(({name:g,dependencies:u,registryDependencies:f})=>{let m=[...s.nodep?[]:u,...f];return{label:g,value:g,hint:m.length?`also installs: ${m.join(", ")}`:void 0}})});q(p)&&($("Operation cancelled."),process.exit(0)),i=p}else{let p=ne(i);S.step(`Components to install:
56
- ${P.gray(p)}`)}let o=await ue(r,i),c=await Se(t,o);c.length===0&&($("Selected components not found."),process.exit(0));let d=[],l=s.path?W.resolve(e,s.path):void 0;for(let p of c){if(i.includes(p.name)===!1)continue;let g=pe(t,p,l);if(g===null)continue;p.files.some(f=>Ae(W.resolve(g,p.name,f.name)))&&d.push(p.name)}if(s.overwrite===!1&&d.length>0){let p=ne(d);S.warn(`The following components ${P.bold.yellow("already exists")}:
57
- ${P.gray(p)}`);let g=await M({message:`Would you like to ${P.bold.red("overwrite")} all existing components?`,active:"Yes, overwrite everything",inactive:"No, let me decide individually",initialValue:!1});q(g)&&($("Operation cancelled."),process.exit(0)),s.overwrite=g}if(s.yes===!1){let p=await M({message:`Ready to install ${D("components")}${s.nodep?"?":` and ${D("dependencies")}?`}`,initialValue:!0});(q(p)||p===!1)&&($("Operation cancelled."),process.exit(0))}let v=new Set,h=new Set;for(let p of c){let g=pe(t,p,l);if(g===null)continue;Ae(g)||await tt.mkdir(g,{recursive:!0});let u=W.relative(process.cwd(),W.resolve(g,p.name));if(!s.overwrite&&d.includes(p.name)&&i.includes(p.name)){S.warn(`Component ${D(p.name)} already exists at ${P.gray(u)}`);let m=await M({message:`Would you like to ${P.bold.red("overwrite")} your existing ${D(p.name)} component?`});if(q(m)&&($("Operation cancelled."),process.exit(0)),m===!1)continue}let f=F();f.start(`Installing ${D(p.name)}`);for(let m of p.files){let w=W.resolve(g,p.name),C=W.resolve(g,p.name,m.name),Ie=Oe(m.content,t);Ae(w)||await tt.mkdir(w,{recursive:!0}),await tt.writeFile(C,Ie)}s.nodep?p.dependencies.forEach(m=>v.add(m)):p.dependencies.forEach(m=>h.add(m)),f.stop(`${D(p.name)} installed at ${P.gray(u)}`)}if(h.size>0){let p=F();p.start("Installing package dependencies");let g=await L(e);await _r(g,["add",...h],{cwd:e}),p.stop("Dependencies installed")}if(s.nodep){let p=ne([...v],7);S.warn(`Components have been installed ${P.bold.red("without")} the following ${D("dependencies")}:
58
- ${P.gray(p)}`)}}import{existsSync as Te,promises as ie}from"node:fs";import ae from"node:path";import fe from"chalk";import{Command as Cr}from"commander";import{execa as Or}from"execa";var Pe=`import { type ClassValue, clsx } from "clsx";
50
+ `)},info:e=>{T.message(e,{symbol:o.blue(Lr)})},success:e=>{T.message(e,{symbol:o.green(Nr)})},step:e=>{T.message(e,{symbol:o.green(Ne)})},warn:e=>{T.message(e,{symbol:o.yellow(Dr)})},warning:e=>{T.warn(e)},error:e=>{T.message(e,{symbol:o.red(Fr)})}},Vr=()=>{let e=ct?["\u25D2","\u25D0","\u25D3","\u25D1"]:["\u2022","o","O","0"],t=ct?80:120,r,s,n=!1,a="",i=p=>{let f=p>1?"Something went wrong":"Canceled";n&&d(f,p)},l=()=>i(2),c=()=>i(1),y=()=>{process.on("uncaughtExceptionMonitor",l),process.on("unhandledRejection",l),process.on("SIGINT",c),process.on("SIGTERM",c)},g=()=>{process.removeListener("uncaughtExceptionMonitor",l),process.removeListener("unhandledRejection",l),process.removeListener("SIGINT",c),process.removeListener("SIGTERM",c)},u=(p="")=>{n=!0,r=br(),a=p.replace(/\.+$/,""),process.stdout.write(`${o.gray(b)}
51
+ `);let f=0,v=0;y(),s=setInterval(()=>{let k=o.magenta(e[f]),C=".".repeat(Math.floor(v)).slice(0,3);process.stdout.write(le.cursor.move(-999,0)),process.stdout.write(le.erase.down(1)),process.stdout.write(`${k} ${a}${C}`),f=f+1<e.length?f+1:0,v=v<e.length?v+.125:0},t)},d=(p="",f=0)=>{a=p??a,n=!1,clearInterval(s);let v=f===0?o.green(Ne):f===1?o.red(zt):o.red(Xt);process.stdout.write(le.cursor.move(-999,0)),process.stdout.write(le.erase.down(1)),process.stdout.write(`${v} ${a}
52
+ `),g(),r()};return{start:u,stop:d,message:(p="")=>{a=p??a}}};function Mr(){let e=["[\\u001B\\u009B][[\\]()#;?]*(?:(?:(?:(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]+)*|[a-zA-Z\\d]+(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]*)*)?\\u0007)","(?:(?:\\d{1,4}(?:;\\d{0,4})*)?[\\dA-PR-TZcf-nq-uy=><~]))"].join("|");return new RegExp(e,"g")}var Ht=async(e,t)=>{let r={},s=Object.keys(e);for(let n of s){let a=e[n],i=await a({results:r})?.catch(l=>{throw l});if(typeof t?.onCancel=="function"&&wr(i)){r[n]="canceled",t.onCancel({results:r});continue}r[n]=i}return r},pe=async e=>{for(let t of e){if(t.enabled===!1)continue;let r=Vr();r.start(t.title);let s=await t.task(r.message);r.stop(s||t.title)}};function fe(e){T.message(),typeof e=="string"&&(j(e),process.exit(1)),(e instanceof Ve||e instanceof H)&&(j(`[${e.name}]: ${e.message}`),process.exit(1)),e instanceof Error&&(j(e.stack),process.exit(1)),j("Something went wrong. Please try again."),process.exit(1)}function R(e){return new Ve(e)}var Ve=class extends Error{name="CLI Error"},H=class extends Error{name="Config Error"};import _ from"path";import ts from"fs";import Jr from"module";var Yt=e=>e!==null&&typeof e=="object",de=(e,t)=>Object.assign(new Error(`[${e}]: ${t}`),{code:e}),Zt="ERR_INVALID_PACKAGE_CONFIG",dt="ERR_INVALID_PACKAGE_TARGET",Br="ERR_PACKAGE_PATH_NOT_EXPORTED";var Ur=/^\d+$/,Gr=/^(\.{1,2}|node_modules)$/i,qr=/\/|\\/,Qt=(e=>(e.Export="exports",e.Import="imports",e))(Qt||{}),mt=(e,t,r,s,n)=>{if(t==null)return[];if(typeof t=="string"){let[a,...i]=t.split(qr);if(a===".."||i.some(l=>Gr.test(l)))throw de(dt,`Invalid "${e}" target "${t}" defined in the package config`);return[n?t.replace(/\*/g,n):t]}if(Array.isArray(t))return t.flatMap(a=>mt(e,a,r,s,n));if(Yt(t)){for(let a of Object.keys(t)){if(Ur.test(a))throw de(Zt,"Cannot contain numeric property keys");if(a==="default"||s.includes(a))return mt(e,t[a],r,s,n)}return[]}throw de(dt,`Invalid "${e}" target "${t}"`)},ke="*",Wr=(e,t)=>{let r=e.indexOf(ke),s=t.indexOf(ke);return r===s?t.length>e.length:s>r};function zr(e,t){if(!t.includes(ke)&&e.hasOwnProperty(t))return[t];let r,s;for(let n of Object.keys(e))if(n.includes(ke)){let[a,i,l]=n.split(ke);if(l===void 0&&t.startsWith(a)&&t.endsWith(i)){let c=t.slice(a.length,-i.length||void 0);c&&(!r||Wr(r,n))&&(r=n,s=c)}}return[r,s]}var Xr=e=>Object.keys(e).reduce((t,r)=>{let s=r===""||r[0]!==".";if(t===void 0||t===s)return s;throw de(Zt,'"exports" cannot contain some keys starting with "." and some not')},void 0),Kr=/^\w+:/,es=(e,t,r)=>{if(!e)throw new Error('"exports" is required');t=t===""?".":`./${t}`,(typeof e=="string"||Array.isArray(e)||Yt(e)&&Xr(e))&&(e={".":e});let[s,n]=zr(e,t),a=mt(Qt.Export,e[s],t,r,n);if(a.length===0)throw de(Br,t==="."?'No "exports" main defined':`Package subpath '${t}' is not defined by "exports"`);for(let i of a)if(!i.startsWith("./")&&!Kr.test(i))throw de(dt,`Invalid "exports" target "${i}" defined in the package config`);return a};function U(e){return e.startsWith("\\\\?\\")?e:e.replace(/\\/g,"/")}var Ue=e=>{let t=ts[e];return(r,...s)=>{let n=`${e}:${s.join(":")}`,a=r?.get(n);return a===void 0&&(a=Reflect.apply(t,ts,s),r?.set(n,a)),a}},B=Ue("existsSync"),Hr=Ue("realpathSync"),Yr=Ue("readFileSync"),Me=Ue("statSync"),os=(e,t,r)=>{for(;;){let s=_.posix.join(e,t);if(B(r,s))return s;let n=_.dirname(e);if(n===e)return;e=n}},bt=/^\.{1,2}(\/.*)?$/,yt=e=>{let t=U(e);return bt.test(t)?t:`./${t}`};function Zr(e,t=!1){let r=e.length,s=0,n="",a=0,i=16,l=0,c=0,y=0,g=0,u=0;function d(h,w){let $=0,I=0;for(;$<h||!w;){let L=e.charCodeAt(s);if(L>=48&&L<=57)I=I*16+L-48;else if(L>=65&&L<=70)I=I*16+L-65+10;else if(L>=97&&L<=102)I=I*16+L-97+10;else break;s++,$++}return $<h&&(I=-1),I}function m(h){s=h,n="",a=0,i=16,u=0}function p(){let h=s;if(e.charCodeAt(s)===48)s++;else for(s++;s<e.length&&me(e.charCodeAt(s));)s++;if(s<e.length&&e.charCodeAt(s)===46)if(s++,s<e.length&&me(e.charCodeAt(s)))for(s++;s<e.length&&me(e.charCodeAt(s));)s++;else return u=3,e.substring(h,s);let w=s;if(s<e.length&&(e.charCodeAt(s)===69||e.charCodeAt(s)===101))if(s++,(s<e.length&&e.charCodeAt(s)===43||e.charCodeAt(s)===45)&&s++,s<e.length&&me(e.charCodeAt(s))){for(s++;s<e.length&&me(e.charCodeAt(s));)s++;w=s}else u=3;return e.substring(h,w)}function f(){let h="",w=s;for(;;){if(s>=r){h+=e.substring(w,s),u=2;break}let $=e.charCodeAt(s);if($===34){h+=e.substring(w,s),s++;break}if($===92){if(h+=e.substring(w,s),s++,s>=r){u=2;break}switch(e.charCodeAt(s++)){case 34:h+='"';break;case 92:h+="\\";break;case 47:h+="/";break;case 98:h+="\b";break;case 102:h+="\f";break;case 110:h+=`
53
+ `;break;case 114:h+="\r";break;case 116:h+=" ";break;case 117:let I=d(4,!0);I>=0?h+=String.fromCharCode(I):u=4;break;default:u=5}w=s;continue}if($>=0&&$<=31)if(Ce($)){h+=e.substring(w,s),u=2;break}else u=6;s++}return h}function v(){if(n="",u=0,a=s,c=l,g=y,s>=r)return a=r,i=17;let h=e.charCodeAt(s);if(ht(h)){do s++,n+=String.fromCharCode(h),h=e.charCodeAt(s);while(ht(h));return i=15}if(Ce(h))return s++,n+=String.fromCharCode(h),h===13&&e.charCodeAt(s)===10&&(s++,n+=`
54
+ `),l++,y=s,i=14;switch(h){case 123:return s++,i=1;case 125:return s++,i=2;case 91:return s++,i=3;case 93:return s++,i=4;case 58:return s++,i=6;case 44:return s++,i=5;case 34:return s++,n=f(),i=10;case 47:let w=s-1;if(e.charCodeAt(s+1)===47){for(s+=2;s<r&&!Ce(e.charCodeAt(s));)s++;return n=e.substring(w,s),i=12}if(e.charCodeAt(s+1)===42){s+=2;let $=r-1,I=!1;for(;s<$;){let L=e.charCodeAt(s);if(L===42&&e.charCodeAt(s+1)===47){s+=2,I=!0;break}s++,Ce(L)&&(L===13&&e.charCodeAt(s)===10&&s++,l++,y=s)}return I||(s++,u=1),n=e.substring(w,s),i=13}return n+=String.fromCharCode(h),s++,i=16;case 45:if(n+=String.fromCharCode(h),s++,s===r||!me(e.charCodeAt(s)))return i=16;case 48:case 49:case 50:case 51:case 52:case 53:case 54:case 55:case 56:case 57:return n+=p(),i=11;default:for(;s<r&&k(h);)s++,h=e.charCodeAt(s);if(a!==s){switch(n=e.substring(a,s),n){case"true":return i=8;case"false":return i=9;case"null":return i=7}return i=16}return n+=String.fromCharCode(h),s++,i=16}}function k(h){if(ht(h)||Ce(h))return!1;switch(h){case 125:case 93:case 123:case 91:case 34:case 58:case 44:case 47:return!1}return!0}function C(){let h;do h=v();while(h>=12&&h<=15);return h}return{setPosition:m,getPosition:()=>s,scan:t?C:v,getToken:()=>i,getTokenValue:()=>n,getTokenOffset:()=>a,getTokenLength:()=>s-a,getTokenStartLine:()=>c,getTokenStartCharacter:()=>a-g,getTokenError:()=>u}}function ht(e){return e===32||e===9}function Ce(e){return e===10||e===13}function me(e){return e>=48&&e<=57}var ss;(function(e){e[e.lineFeed=10]="lineFeed",e[e.carriageReturn=13]="carriageReturn",e[e.space=32]="space",e[e._0=48]="_0",e[e._1=49]="_1",e[e._2=50]="_2",e[e._3=51]="_3",e[e._4=52]="_4",e[e._5=53]="_5",e[e._6=54]="_6",e[e._7=55]="_7",e[e._8=56]="_8",e[e._9=57]="_9",e[e.a=97]="a",e[e.b=98]="b",e[e.c=99]="c",e[e.d=100]="d",e[e.e=101]="e",e[e.f=102]="f",e[e.g=103]="g",e[e.h=104]="h",e[e.i=105]="i",e[e.j=106]="j",e[e.k=107]="k",e[e.l=108]="l",e[e.m=109]="m",e[e.n=110]="n",e[e.o=111]="o",e[e.p=112]="p",e[e.q=113]="q",e[e.r=114]="r",e[e.s=115]="s",e[e.t=116]="t",e[e.u=117]="u",e[e.v=118]="v",e[e.w=119]="w",e[e.x=120]="x",e[e.y=121]="y",e[e.z=122]="z",e[e.A=65]="A",e[e.B=66]="B",e[e.C=67]="C",e[e.D=68]="D",e[e.E=69]="E",e[e.F=70]="F",e[e.G=71]="G",e[e.H=72]="H",e[e.I=73]="I",e[e.J=74]="J",e[e.K=75]="K",e[e.L=76]="L",e[e.M=77]="M",e[e.N=78]="N",e[e.O=79]="O",e[e.P=80]="P",e[e.Q=81]="Q",e[e.R=82]="R",e[e.S=83]="S",e[e.T=84]="T",e[e.U=85]="U",e[e.V=86]="V",e[e.W=87]="W",e[e.X=88]="X",e[e.Y=89]="Y",e[e.Z=90]="Z",e[e.asterisk=42]="asterisk",e[e.backslash=92]="backslash",e[e.closeBrace=125]="closeBrace",e[e.closeBracket=93]="closeBracket",e[e.colon=58]="colon",e[e.comma=44]="comma",e[e.dot=46]="dot",e[e.doubleQuote=34]="doubleQuote",e[e.minus=45]="minus",e[e.openBrace=123]="openBrace",e[e.openBracket=91]="openBracket",e[e.plus=43]="plus",e[e.slash=47]="slash",e[e.formFeed=12]="formFeed",e[e.tab=9]="tab"})(ss||(ss={}));var Be;(function(e){e.DEFAULT={allowTrailingComma:!1}})(Be||(Be={}));function Qr(e,t=[],r=Be.DEFAULT){let s=null,n=[],a=[];function i(l){Array.isArray(n)?n.push(l):s!==null&&(n[s]=l)}return en(e,{onObjectBegin:()=>{let l={};i(l),a.push(n),n=l,s=null},onObjectProperty:l=>{s=l},onObjectEnd:()=>{n=a.pop()},onArrayBegin:()=>{let l=[];i(l),a.push(n),n=l,s=null},onArrayEnd:()=>{n=a.pop()},onLiteralValue:i,onError:(l,c,y)=>{t.push({error:l,offset:c,length:y})}},r),n[0]}function en(e,t,r=Be.DEFAULT){let s=Zr(e,!1),n=[];function a(E){return E?()=>E(s.getTokenOffset(),s.getTokenLength(),s.getTokenStartLine(),s.getTokenStartCharacter()):()=>!0}function i(E){return E?()=>E(s.getTokenOffset(),s.getTokenLength(),s.getTokenStartLine(),s.getTokenStartCharacter(),()=>n.slice()):()=>!0}function l(E){return E?P=>E(P,s.getTokenOffset(),s.getTokenLength(),s.getTokenStartLine(),s.getTokenStartCharacter()):()=>!0}function c(E){return E?P=>E(P,s.getTokenOffset(),s.getTokenLength(),s.getTokenStartLine(),s.getTokenStartCharacter(),()=>n.slice()):()=>!0}let y=i(t.onObjectBegin),g=c(t.onObjectProperty),u=a(t.onObjectEnd),d=i(t.onArrayBegin),m=a(t.onArrayEnd),p=c(t.onLiteralValue),f=l(t.onSeparator),v=a(t.onComment),k=l(t.onError),C=r&&r.disallowComments,h=r&&r.allowTrailingComma;function w(){for(;;){let E=s.scan();switch(s.getTokenError()){case 4:$(14);break;case 5:$(15);break;case 3:$(13);break;case 1:C||$(11);break;case 2:$(12);break;case 6:$(16);break}switch(E){case 12:case 13:C?$(10):v();break;case 16:$(1);break;case 15:case 14:break;default:return E}}}function $(E,P=[],Nt=[]){if(k(E),P.length+Nt.length>0){let je=s.getToken();for(;je!==17;){if(P.indexOf(je)!==-1){w();break}else if(Nt.indexOf(je)!==-1)break;je=w()}}}function I(E){let P=s.getTokenValue();return E?p(P):(g(P),n.push(P)),w(),!0}function L(){switch(s.getToken()){case 11:let E=s.getTokenValue(),P=Number(E);isNaN(P)&&($(2),P=0),p(P);break;case 7:p(null);break;case 8:p(!0);break;case 9:p(!1);break;default:return!1}return w(),!0}function Ys(){return s.getToken()!==10?($(3,[],[2,5]),!1):(I(!1),s.getToken()===6?(f(":"),w(),tt()||$(4,[],[2,5])):$(5,[],[2,5]),n.pop(),!0)}function Zs(){y(),w();let E=!1;for(;s.getToken()!==2&&s.getToken()!==17;){if(s.getToken()===5){if(E||$(4,[],[]),f(","),w(),s.getToken()===2&&h)break}else E&&$(6,[],[]);Ys()||$(4,[],[2,5]),E=!0}return u(),s.getToken()!==2?$(7,[2],[]):w(),!0}function Qs(){d(),w();let E=!0,P=!1;for(;s.getToken()!==4&&s.getToken()!==17;){if(s.getToken()===5){if(P||$(4,[],[]),f(","),w(),s.getToken()===4&&h)break}else P&&$(6,[],[]);E?(n.push(0),E=!1):n[n.length-1]++,tt()||$(4,[],[4,5]),P=!0}return m(),E||n.pop(),s.getToken()!==4?$(8,[4],[]):w(),!0}function tt(){switch(s.getToken()){case 3:return Qs();case 1:return Zs();case 10:return I(!0);default:return L()}}return w(),s.getToken()===17?r.allowEmptyContent?!0:($(4,[],[]),!1):tt()?(s.getToken()!==17&&$(9,[],[]),!0):($(4,[],[]),!1)}var rs;(function(e){e[e.None=0]="None",e[e.UnexpectedEndOfComment=1]="UnexpectedEndOfComment",e[e.UnexpectedEndOfString=2]="UnexpectedEndOfString",e[e.UnexpectedEndOfNumber=3]="UnexpectedEndOfNumber",e[e.InvalidUnicode=4]="InvalidUnicode",e[e.InvalidEscapeCharacter=5]="InvalidEscapeCharacter",e[e.InvalidCharacter=6]="InvalidCharacter"})(rs||(rs={}));var ns;(function(e){e[e.OpenBraceToken=1]="OpenBraceToken",e[e.CloseBraceToken=2]="CloseBraceToken",e[e.OpenBracketToken=3]="OpenBracketToken",e[e.CloseBracketToken=4]="CloseBracketToken",e[e.CommaToken=5]="CommaToken",e[e.ColonToken=6]="ColonToken",e[e.NullKeyword=7]="NullKeyword",e[e.TrueKeyword=8]="TrueKeyword",e[e.FalseKeyword=9]="FalseKeyword",e[e.StringLiteral=10]="StringLiteral",e[e.NumericLiteral=11]="NumericLiteral",e[e.LineCommentTrivia=12]="LineCommentTrivia",e[e.BlockCommentTrivia=13]="BlockCommentTrivia",e[e.LineBreakTrivia=14]="LineBreakTrivia",e[e.Trivia=15]="Trivia",e[e.Unknown=16]="Unknown",e[e.EOF=17]="EOF"})(ns||(ns={}));var tn=Qr,as;(function(e){e[e.InvalidSymbol=1]="InvalidSymbol",e[e.InvalidNumberFormat=2]="InvalidNumberFormat",e[e.PropertyNameExpected=3]="PropertyNameExpected",e[e.ValueExpected=4]="ValueExpected",e[e.ColonExpected=5]="ColonExpected",e[e.CommaExpected=6]="CommaExpected",e[e.CloseBraceExpected=7]="CloseBraceExpected",e[e.CloseBracketExpected=8]="CloseBracketExpected",e[e.EndOfFileExpected=9]="EndOfFileExpected",e[e.InvalidCommentToken=10]="InvalidCommentToken",e[e.UnexpectedEndOfComment=11]="UnexpectedEndOfComment",e[e.UnexpectedEndOfString=12]="UnexpectedEndOfString",e[e.UnexpectedEndOfNumber=13]="UnexpectedEndOfNumber",e[e.InvalidUnicode=14]="InvalidUnicode",e[e.InvalidEscapeCharacter=15]="InvalidEscapeCharacter",e[e.InvalidCharacter=16]="InvalidCharacter"})(as||(as={}));var cs=(e,t)=>tn(Yr(t,e,"utf8")),xt=Symbol("implicitBaseUrl"),sn=()=>{let{findPnpApi:e}=Jr;return e&&e(process.cwd())},gt=(e,t,r,s)=>{let n=`resolveFromPackageJsonPath:${e}:${t}:${r}`;if(s!=null&&s.has(n))return s.get(n);let a=cs(e,s);if(!a)return;let i=t||"tsconfig.json";if(!r&&a.exports)try{let[l]=es(a.exports,t,["require","types"]);i=l}catch{return!1}else!t&&a.tsconfig&&(i=a.tsconfig);return i=_.join(e,"..",i),s?.set(n,i),i},vt="package.json",$t="tsconfig.json",rn=(e,t,r)=>{let s=e;if(e===".."&&(s=_.join(s,$t)),e[0]==="."&&(s=_.resolve(t,s)),_.isAbsolute(s)){if(B(r,s)){if(Me(r,s).isFile())return s}else if(!s.endsWith(".json")){let m=`${s}.json`;if(B(r,m))return m}return}let[n,...a]=e.split("/"),i=n[0]==="@"?`${n}/${a.shift()}`:n,l=a.join("/"),c=sn();if(c){let{resolveRequest:m}=c;try{if(i===e){let p=m(_.join(i,vt),t);if(p){let f=gt(p,l,!1,r);if(f&&B(r,f))return f}}else{let p;try{p=m(e,t,{extensions:[".json"]})}catch{p=m(_.join(e,$t),t)}if(p)return p}}catch{}}let y=os(t,_.join("node_modules",i),r);if(!y||!Me(r,y).isDirectory())return;let g=_.join(y,vt);if(B(r,g)){let m=gt(g,l,!1,r);if(m===!1)return;if(m&&B(r,m)&&Me(r,m).isFile())return m}let u=_.join(y,l),d=u.endsWith(".json");if(!d){let m=`${u}.json`;if(B(r,m))return m}if(B(r,u)){if(Me(r,u).isDirectory()){let m=_.join(u,vt);if(B(r,m)){let f=gt(m,"",!0,r);if(f&&B(r,f))return f}let p=_.join(u,$t);if(B(r,p))return p}else if(d)return u}},nn=(e,t,r,s)=>{let n=rn(e,t,s);if(!n)throw new Error(`File '${e}' not found.`);if(r.has(n))throw new Error(`Circularity detected while resolving configuration: ${n}`);r.add(n);let a=_.dirname(n),i=ls(n,s,r);delete i.references;let{compilerOptions:l}=i;if(l){let c=["baseUrl","outDir"];for(let y of c){let g=l[y];g&&(l[y]=U(_.relative(t,_.join(a,g)))||"./")}}return i.files&&(i.files=i.files.map(c=>U(_.relative(t,_.join(a,c))))),i.include&&(i.include=i.include.map(c=>U(_.relative(t,_.join(a,c))))),i.exclude&&(i.exclude=i.exclude.map(c=>U(_.relative(t,_.join(a,c))))),i},ls=(e,t,r=new Set)=>{let s;try{s=Hr(t,e)}catch{throw new Error(`Cannot resolve tsconfig at path: ${e}`)}let n=cs(s,t)||{};if(typeof n!="object")throw new SyntaxError(`Failed to parse tsconfig at: ${e}`);let a=_.dirname(s);if(n.compilerOptions){let{compilerOptions:i}=n;i.paths&&!i.baseUrl&&(i[xt]=a)}if(n.extends){let i=Array.isArray(n.extends)?n.extends:[n.extends];delete n.extends;for(let l of i.reverse()){let c=nn(l,a,new Set(r),t),y={...c,...n,compilerOptions:{...c.compilerOptions,...n.compilerOptions}};c.watchOptions&&(y.watchOptions={...c.watchOptions,...n.watchOptions}),n=y}}if(n.compilerOptions){let{compilerOptions:i}=n,l=["baseUrl","rootDir"];for(let y of l){let g=i[y];if(g){let u=_.resolve(a,g),d=yt(_.relative(a,u));i[y]=d}}let{outDir:c}=i;c&&(Array.isArray(n.exclude)||(n.exclude=[]),n.exclude.includes(c)||n.exclude.push(c),i.outDir=yt(c))}else n.compilerOptions={};if(n.files&&(n.files=n.files.map(yt)),n.include&&(n.include=n.include.map(U)),n.watchOptions){let{watchOptions:i}=n;i.excludeDirectories&&(i.excludeDirectories=i.excludeDirectories.map(l=>U(_.resolve(a,l))))}return n},an=(e,t=new Map)=>ls(e,t),us=(e=process.cwd(),t="tsconfig.json",r=new Map)=>{let s=os(U(e),t,r);if(!s)return null;let n=an(s,r);return{path:s,config:n}},on=/\*/g,is=(e,t)=>{let r=e.match(on);if(r&&r.length>1)throw new Error(t)},cn=e=>{if(e.includes("*")){let[t,r]=e.split("*");return{prefix:t,suffix:r}}return e},ln=({prefix:e,suffix:t},r)=>r.startsWith(e)&&r.endsWith(t),un=(e,t,r)=>Object.entries(e).map(([s,n])=>(is(s,`Pattern '${s}' can have at most one '*' character.`),{pattern:cn(s),substitutions:n.map(a=>{if(is(a,`Substitution '${a}' in pattern '${s}' can have at most one '*' character.`),!t&&!bt.test(a))throw new Error("Non-relative paths are not allowed when 'baseUrl' is not set. Did you forget a leading './'?");return _.resolve(r,a)})})),ps=e=>{if(!e.config.compilerOptions)return null;let{baseUrl:t,paths:r}=e.config.compilerOptions,s=xt in e.config.compilerOptions&&e.config.compilerOptions[xt];if(!t&&!r)return null;let n=_.resolve(_.dirname(e.path),t||s||"."),a=r?un(r,t,n):[];return i=>{if(bt.test(i))return[];let l=[];for(let u of a){if(u.pattern===i)return u.substitutions.map(U);typeof u.pattern!="string"&&l.push(u)}let c,y=-1;for(let u of l)ln(u.pattern,i)&&u.pattern.prefix.length>y&&(y=u.pattern.prefix.length,c=u);if(!c)return t?[U(_.join(n,i))]:[];let g=i.slice(c.pattern.prefix.length,i.length-c.pattern.suffix.length);return c.substitutions.map(u=>U(u.replace("*",g)))}};var{join:Ra}=_.posix;var pn=["node_modules","bower_components","jspm_packages"],La=`(?!(${pn.join("|")})(/|$))`;var Na=process.platform==="win32";function Ae(e,t){let r=ps(t);return r===null?void 0:r(e)[0]}import{execa as vn}from"execa";import fs from"fs";import ds from"path";import fn from"process";import{findUp as ms}from"find-up";async function Y(e){let t=await mn(e);if(t==="yarn@berry")return"yarn";if(t==="pnpm@6")return"pnpm";if(t!==null)return t;let r=fn.env.npm_config_user_agent;return r===void 0?"npm":r.startsWith("yarn")?"yarn":r.startsWith("pnpm")?"pnpm":"npm"}var dn=["npm","bun","pnpm","pnpm@6","yarn","yarn@berry"],ys={"bun.lockb":"bun","pnpm-lock.yaml":"pnpm","yarn.lock":"yarn","package-lock.json":"npm","npm-shrinkwrap.json":"npm"};async function mn(e){let t=null,r=await ms(Object.keys(ys),{cwd:e}),s;if(r?s=ds.resolve(r,"../package.json"):s=await ms("package.json",{cwd:e}),s&&fs.existsSync(s))try{let n=JSON.parse(fs.readFileSync(s,"utf8"));if(typeof n.packageManager=="string"){let[a,i]=n.packageManager.replace(/^\^/,"").split("@");a==="yarn"&&Number.parseInt(i)>1?t="yarn@berry":a==="pnpm"&&Number.parseInt(i)<7?t="pnpm@6":dn.includes(a)&&(t=a)}}catch{}return!t&&r&&(t=ys[ds.basename(r)]),t}import hs from"path";import yn from"fs";import{fileURLToPath as hn}from"url";function Ge(){let e=gn("../package.json");return vs(e)}function gn(e){let t=hn(new URL(".",import.meta.url));return hs.resolve(t,e)}function gs(e){let t=hs.resolve(e,"package.json");return vs(t)}function vs(e){let t=yn.readFileSync(e,{encoding:"utf8"});return JSON.parse(t)}async function qe(e){if($n(e)){let r=await Y(e);await vn(r==="npm"?"npx":r,["svelte-kit","sync"],{cwd:e})}}function $n(e){let t=gs(e);return{...t.devDependencies,...t.dependencies}["@sveltejs/kit"]!==void 0}var $s="default",_t="$lib/components",wt="$lib/utils",Et="src/app.pcss",kt="tailwind.config.cjs",xs="slate",bs=!0,te=(...e)=>Te.bold.cyan(...e),Se=O({$schema:G(x()),style:x(),tailwind:O({config:x(),css:x(),baseColor:x()}),aliases:O({components:nt(x(),e=>e.replace(/[\u{0080}-\u{FFFF}]/gu,"")),utils:nt(x(),e=>e.replace(/[\u{0080}-\u{FFFF}]/gu,""))}),typescript:G(M(),!0)}),bn=Le([Se,O({resolvedPaths:O({tailwindConfig:x(),tailwindCss:x(),utils:x(),components:x()})})]);async function ye(e){let t=await _n(e);return t?await Ct(e,t):null}async function Ct(e,t){await qe(e);let r=t.typescript?"tsconfig.json":"jsconfig.json",s=ze(e,r);if(s===null)throw R(`Missing ${te("paths")} field in your ${te(r)} for path aliases. See: ${Te.underline("https://www.shadcn-svelte.com/docs/installation/manual#configure-path-aliases")}`);let n=Ae(t.aliases.utils,s),a=Ae(t.aliases.components,s),i=(l,c)=>new H(`Invalid import alias found: (${te(`"${l}": "${c}"`)}) in ${te("components.json")}.
55
+ - Import aliases ${Te.underline("must use")} existing path aliases defined in your ${te(r)} (e.g. "${l}": "$lib/${l}").
56
+ - See: ${Te.underline("https://www.shadcn-svelte.com/docs/installation/manual#configure-path-aliases")}.`);if(n===void 0)throw i("utils",t.aliases.utils);if(a===void 0)throw i("components",t.aliases.components);return N(bn,{...t,resolvedPaths:{tailwindConfig:We.resolve(e,t.tailwind.config),tailwindCss:We.resolve(e,t.tailwind.css),utils:n,components:a}})}function ze(e,t){let r=us(We.resolve(e,"package.json"),t);if(r===null)throw R(`Failed to find ${te(t)}. See: ${Te.underline("https://www.shadcn-svelte.com/docs/installation#opt-out-of-typescript")}`);return r}async function _n(e){let t=We.resolve(e,"components.json");try{let r=await xn.promises.readFile(t,{encoding:"utf8"}).catch(n=>null);if(!r)return null;let s=JSON.parse(r);return N(Se,s)}catch{throw new H(`Invalid configuration found in ${te(t)}.`)}}function he(){let{HTTP_PROXY:e,http_proxy:t}=process.env;return e||t}import Cn from"path";import An from"node-fetch";import{HttpsProxyAgent as Tn}from"https-proxy-agent";var _s=O({name:x(),dependencies:V(x()),registryDependencies:V(x()),files:V(x()),type:rt(["components:ui","components:component","components:example"])}),ws=V(_s),En=Le([_s,O({files:V(O({name:x(),content:x()}))})]),Es=V(En),ks=V(O({name:x(),label:x()})),Cs=O({inlineColors:O({light:oe(x(),x()),dark:oe(x(),x())}),cssVars:O({light:oe(x(),x()),dark:oe(x(),x())}),inlineColorsTemplate:x(),cssVarsTemplate:x()});var As=process.env.COMPONENTS_REGISTRY_URL??"https://shadcn-svelte.com";async function Xe(){try{let[e]=await Je(["index.json"]);return N(ws,e)}catch{throw R("Failed to fetch components from registry.")}}async function Ts(){try{let[e]=await Je(["styles/index.json"]);return N(ks,e)}catch{throw R("Failed to fetch styles from registry.")}}async function Ss(){return[{name:"slate",label:"Slate"},{name:"gray",label:"Gray"},{name:"zinc",label:"Zinc"},{name:"neutral",label:"Neutral"},{name:"stone",label:"Stone"}]}async function Os(e){try{let[t]=await Je([`colors/${e}.json`]);return N(Cs,t)}catch{throw R("Failed to fetch base color from registry.")}}async function Oe(e,t){let r=[];for(let s of t){let n=e.find(a=>a.name===s);if(n&&(r.push(n),n.registryDependencies)){let a=await Oe(e,n.registryDependencies);r.push(...a)}}return r.filter((s,n,a)=>a.findIndex(i=>i.name===s.name)===n)}async function Ke(e,t){try{let r=e.typescript?e.style:`${e.style}-js`,s=t.map(a=>`styles/${r}/${a.name}.json`),n=await Je(s);return N(Es,n)}catch{throw R("Failed to fetch tree from registry.")}}function Ie(e,t,r){if(r&&t.type!=="components:ui")return r;let[s,n]=t.type.split(":");return!s||!n||!(s in e.resolvedPaths)?null:Cn.join(e.resolvedPaths[s],n)}async function Je(e){let t=he(),r=t?new Tn(t):void 0;try{return await Promise.all(e.map(async n=>await(await An(`${As}/registry/${n}`,{agent:r})).json()))}catch{throw R(`Failed to fetch registry from ${As}.`)}}function He(e,t){let r=e.replace(/\$lib\/registry\/[^/]+/g,t.aliases.components);return r=r.replace(/\$lib\/utils/g,t.aliases.utils),r}import Is from"chalk";function ge(){let e=Ge(),t=Is.bgHex("#FF5500").black(" shadcn-svelte "),r=Is.gray(` v${e.version} `);Jt(t+r)}function ve(e,t=9){return e.reduce((r,s,n)=>n%t===0?`${r},
57
+ ${s}`:`${r}, ${s}`)}var W=(...e)=>F.bold.cyan(...e),In=O({components:G(V(x())),yes:M(),all:M(),overwrite:M(),cwd:x(),path:G(x()),nodep:M(),proxy:G(x())}),Ps=new Sn().command("add").description("add components to your project").argument("[components...]","name of components").option("--nodep","skips adding & installing package dependencies.",!1).option("-a, --all","install all components to your project.",!1).option("-y, --yes","skip confirmation prompt.",!1).option("-o, --overwrite","overwrite existing files.",!1).option("--proxy <proxy>","fetch components from registry using a proxy.",he()).option("-c, --cwd <cwd>","the working directory. defaults to the current directory.",process.cwd()).option("-p, --path <path>","the path to add the component to.").action(async(e,t)=>{try{ge();let r=N(In,{components:e,...t}),s=se.resolve(r.cwd);if(!Ye(s))throw R(`The path ${F.cyan(s)} does not exist. Please try again.`);let n=await ye(s);if(!n)throw new H(`Configuration file is missing. Please run ${F.green("init")} to create a ${W("components.json")} file.`);await Pn(s,n,r),ue(`${F.green("Success!")} Component installation completed.`)}catch(r){fe(r)}});async function Pn(e,t,r){r.proxy!==void 0&&(process.env.HTTP_PROXY=r.proxy,T.info(`You are using the provided proxy: ${F.green(r.proxy)}`));let s=await Xe(),n=r.all?s.map(({name:d})=>d):r.components;if(n===void 0||n.length===0){let d=await Fe({message:`Which ${W("components")} would you like to install?`,maxItems:10,options:s.map(({name:m,dependencies:p,registryDependencies:f})=>{let v=[...r.nodep?[]:p,...f];return{label:m,value:m,hint:v.length?`also installs: ${v.join(", ")}`:void 0}})});q(d)&&(j("Operation cancelled."),process.exit(0)),n=d}else{let d=ve(n);T.step(`Components to install:
58
+ ${F.gray(d)}`)}let a=await Oe(s,n),i=await Ke(t,a);i.length===0&&(j("Selected components not found."),process.exit(0));let l=[],c=r.path?se.resolve(e,r.path):void 0;for(let d of i){if(n.includes(d.name)===!1)continue;let m=Ie(t,d,c);if(m===null)continue;d.files.some(f=>Ye(se.resolve(m,d.name,f.name)))&&l.push(d.name)}if(r.overwrite===!1&&l.length>0){let d=ve(l);T.warn(`The following components ${F.bold.yellow("already exists")}:
59
+ ${F.gray(d)}`);let m=await J({message:`Would you like to ${F.bold.red("overwrite")} all existing components?`,active:"Yes, overwrite everything",inactive:"No, let me decide individually",initialValue:!1});q(m)&&(j("Operation cancelled."),process.exit(0)),r.overwrite=m}if(r.yes===!1){let d=await J({message:`Ready to install ${W("components")}${r.nodep?"?":` and ${W("dependencies")}?`}`,initialValue:!0});(q(d)||d===!1)&&(j("Operation cancelled."),process.exit(0))}let y=new Set,g=new Set,u=[];for(let d of i){let m=Ie(t,d,c);if(m===null)continue;Ye(m)||await At.mkdir(m,{recursive:!0});let p=se.relative(process.cwd(),se.resolve(m,d.name));if(!r.overwrite&&l.includes(d.name)&&n.includes(d.name)){T.warn(`Component ${W(d.name)} already exists at ${F.gray(p)}`);let f=await J({message:`Would you like to ${F.bold.red("overwrite")} your existing ${W(d.name)} component?`});if(q(f)&&(j("Operation cancelled."),process.exit(0)),f===!1)continue}r.nodep?d.dependencies.forEach(f=>y.add(f)):d.dependencies.forEach(f=>g.add(f)),u.push({title:`Installing ${W(d.name)}`,async task(){for(let f of d.files){let v=se.resolve(m,d.name),k=se.resolve(m,d.name,f.name),C=He(f.content,t);Ye(v)||await At.mkdir(v,{recursive:!0}),await At.writeFile(k,C)}return`${W(d.name)} installed at ${F.gray(p)}`}})}if(u.push({title:"Installing package dependencies",enabled:g.size>0,async task(){let d=await Y(e);return await On(d,["add",...g],{cwd:e}),"Dependencies installed"}}),await pe(u),r.nodep){let d=ve([...y],7);T.warn(`Components have been installed ${F.bold.red("without")} the following ${W("dependencies")}:
60
+ ${F.gray(d)}`)}}import{existsSync as et,promises as xe}from"fs";import be from"path";import Z from"chalk";import{Command as ra}from"commander";import{execa as na}from"execa";var Ze=`import { type ClassValue, clsx } from "clsx";
59
61
  import { twMerge } from "tailwind-merge";
60
62
  import { cubicOut } from "svelte/easing";
61
63
  import type { TransitionConfig } from "svelte/transition";
62
64
 
63
65
  export function cn(...inputs: ClassValue[]) {
64
- return twMerge(clsx(inputs));
66
+ return twMerge(clsx(inputs));
65
67
  }
66
68
 
67
69
  type FlyAndScaleParams = {
68
- y?: number;
69
- x?: number;
70
- start?: number;
71
- duration?: number;
70
+ y?: number;
71
+ x?: number;
72
+ start?: number;
73
+ duration?: number;
72
74
  };
73
75
 
74
76
  export const flyAndScale = (
75
- node: Element,
76
- params: FlyAndScaleParams = { y: -8, x: 0, start: 0.95, duration: 150 }
77
+ node: Element,
78
+ params: FlyAndScaleParams = { y: -8, x: 0, start: 0.95, duration: 150 }
77
79
  ): TransitionConfig => {
78
- const style = getComputedStyle(node);
79
- const transform = style.transform === "none" ? "" : style.transform;
80
-
81
- const scaleConversion = (
82
- valueA: number,
83
- scaleA: [number, number],
84
- scaleB: [number, number]
85
- ) => {
86
- const [minA, maxA] = scaleA;
87
- const [minB, maxB] = scaleB;
88
-
89
- const percentage = (valueA - minA) / (maxA - minA);
90
- const valueB = percentage * (maxB - minB) + minB;
91
-
92
- return valueB;
93
- };
94
-
95
- const styleToString = (
96
- style: Record<string, number | string | undefined>
97
- ): string => {
98
- return Object.keys(style).reduce((str, key) => {
99
- if (style[key] === undefined) return str;
100
- return str + \`\${key}:\${style[key]};\`;
101
- }, "");
102
- };
103
-
104
- return {
105
- duration: params.duration ?? 200,
106
- delay: 0,
107
- css: (t) => {
108
- const y = scaleConversion(t, [0, 1], [params.y ?? 5, 0]);
109
- const x = scaleConversion(t, [0, 1], [params.x ?? 0, 0]);
110
- const scale = scaleConversion(t, [0, 1], [params.start ?? 0.95, 1]);
111
-
112
- return styleToString({
113
- transform: \`\${transform} translate3d(\${x}px, \${y}px, 0) scale(\${scale})\`,
114
- opacity: t
115
- });
116
- },
117
- easing: cubicOut
118
- };
119
- };`,Xt=`import { clsx } from "clsx";
80
+ const style = getComputedStyle(node);
81
+ const transform = style.transform === "none" ? "" : style.transform;
82
+
83
+ const scaleConversion = (
84
+ valueA: number,
85
+ scaleA: [number, number],
86
+ scaleB: [number, number]
87
+ ) => {
88
+ const [minA, maxA] = scaleA;
89
+ const [minB, maxB] = scaleB;
90
+
91
+ const percentage = (valueA - minA) / (maxA - minA);
92
+ const valueB = percentage * (maxB - minB) + minB;
93
+
94
+ return valueB;
95
+ };
96
+
97
+ const styleToString = (
98
+ style: Record<string, number | string | undefined>
99
+ ): string => {
100
+ return Object.keys(style).reduce((str, key) => {
101
+ if (style[key] === undefined) return str;
102
+ return str + \`\${key}:\${style[key]};\`;
103
+ }, "");
104
+ };
105
+
106
+ return {
107
+ duration: params.duration ?? 200,
108
+ delay: 0,
109
+ css: (t) => {
110
+ const y = scaleConversion(t, [0, 1], [params.y ?? 5, 0]);
111
+ const x = scaleConversion(t, [0, 1], [params.x ?? 0, 0]);
112
+ const scale = scaleConversion(t, [0, 1], [params.start ?? 0.95, 1]);
113
+
114
+ return styleToString({
115
+ transform: \`\${transform} translate3d(\${x}px, \${y}px, 0) scale(\${scale})\`,
116
+ opacity: t
117
+ });
118
+ },
119
+ easing: cubicOut
120
+ };
121
+ };`,Rs=`import { clsx } from "clsx";
120
122
  import { twMerge } from "tailwind-merge";
121
123
  import { cubicOut } from "svelte/easing";
122
124
 
123
125
  export function cn(...inputs) {
124
- return twMerge(clsx(inputs));
126
+ return twMerge(clsx(inputs));
125
127
  }
126
128
 
127
129
  export const flyAndScale = (
128
- node,
129
- params = { y: -8, x: 0, start: 0.95, duration: 150 }
130
+ node,
131
+ params = { y: -8, x: 0, start: 0.95, duration: 150 }
130
132
  ) => {
131
- const style = getComputedStyle(node);
132
- const transform = style.transform === "none" ? "" : style.transform;
133
-
134
- const scaleConversion = (valueA, scaleA, scaleB) => {
135
- const [minA, maxA] = scaleA;
136
- const [minB, maxB] = scaleB;
137
-
138
- const percentage = (valueA - minA) / (maxA - minA);
139
- const valueB = percentage * (maxB - minB) + minB;
140
-
141
- return valueB;
142
- };
143
-
144
- const styleToString = (style) => {
145
- return Object.keys(style).reduce((str, key) => {
146
- if (style[key] === undefined) return str;
147
- return str + \`\${key}:\${style[key]};\`;
148
- }, "");
149
- };
150
-
151
- return {
152
- duration: params.duration ?? 200,
153
- delay: 0,
154
- css: (t) => {
155
- const y = scaleConversion(t, [0, 1], [params.y ?? 5, 0]);
156
- const x = scaleConversion(t, [0, 1], [params.x ?? 0, 0]);
157
- const scale = scaleConversion(t, [0, 1], [params.start ?? 0.95, 1]);
158
-
159
- return styleToString({
160
- transform: \`\${transform} translate3d(\${x}px, \${y}px, 0) scale(\${scale})\`,
161
- opacity: t
162
- });
163
- },
164
- easing: cubicOut
165
- };
166
- };`,Jt=`import { fontFamily } from "tailwindcss/defaultTheme";
133
+ const style = getComputedStyle(node);
134
+ const transform = style.transform === "none" ? "" : style.transform;
135
+
136
+ const scaleConversion = (valueA, scaleA, scaleB) => {
137
+ const [minA, maxA] = scaleA;
138
+ const [minB, maxB] = scaleB;
139
+
140
+ const percentage = (valueA - minA) / (maxA - minA);
141
+ const valueB = percentage * (maxB - minB) + minB;
142
+
143
+ return valueB;
144
+ };
145
+
146
+ const styleToString = (style) => {
147
+ return Object.keys(style).reduce((str, key) => {
148
+ if (style[key] === undefined) return str;
149
+ return str + \`\${key}:\${style[key]};\`;
150
+ }, "");
151
+ };
152
+
153
+ return {
154
+ duration: params.duration ?? 200,
155
+ delay: 0,
156
+ css: (t) => {
157
+ const y = scaleConversion(t, [0, 1], [params.y ?? 5, 0]);
158
+ const x = scaleConversion(t, [0, 1], [params.x ?? 0, 0]);
159
+ const scale = scaleConversion(t, [0, 1], [params.start ?? 0.95, 1]);
160
+
161
+ return styleToString({
162
+ transform: \`\${transform} translate3d(\${x}px, \${y}px, 0) scale(\${scale})\`,
163
+ opacity: t
164
+ });
165
+ },
166
+ easing: cubicOut
167
+ };
168
+ };`,jn=`import { fontFamily } from "tailwindcss/defaultTheme";
167
169
 
168
170
  /** @type {import('tailwindcss').Config} */
169
- const config = {
171
+ const config = {`,Rn=`import { fontFamily } from "tailwindcss/defaultTheme";
172
+ import type { Config } from "tailwindcss";
173
+
174
+ const config: Config = {`,js=`
170
175
  darkMode: ["class"],
171
176
  content: ["./src/**/*.{html,js,svelte,ts}"],
172
- safelist: ["dark"],
177
+ safelist: ["dark"],
173
178
  theme: {
174
179
  container: {
175
180
  center: true,
@@ -227,10 +232,9 @@ const config = {
227
232
  };
228
233
 
229
234
  export default config;
230
- `;var Ar=["tailwind-variants","clsx","tailwind-merge"],N=(...e)=>fe.bold.cyan(...e),Ht=new Cr().command("init").description("initialize your project and install dependencies").option("-c, --cwd <cwd>","the working directory. defaults to the current directory.",process.cwd()).action(async e=>{re();let t=ae.resolve(e.cwd);try{Te(t)||($(`The path ${fe.cyan(t)} does not exist. Please try again.`),process.exit(1));let s=await Z(t),n=await Pr(t,s);await Tr(t,n),(!n.aliases.components.startsWith("$lib")||!n.aliases.utils.startsWith("$lib"))&&Ee("Don't forget to add the import aliases you configured to your svelte.config.js!"),te(`${fe.green("Success!")} Project initialization completed.`)}catch(s){se(s)}});async function Pr(e,t=null){let s=await Gt(),n=await Ut(),r=await Ft({typescript:()=>M({message:`Would you like to use ${N("TypeScript")} (recommended)?`,initialValue:t?.typescript??Ct}),style:({})=>et({message:`Which ${N("style")} would you like to use?`,initialValue:t?.style,options:s.map(l=>({label:l.label,value:l.name}))}),tailwindBaseColor:({})=>et({message:`Which ${N("base color")} would you like to use?`,initialValue:t?.tailwind.baseColor,options:n.map(l=>({label:l.label,value:l.name}))}),tailwindCss:()=>ce({message:`Where is your ${N("global CSS")} file?`,initialValue:t?.tailwind.css??We,placeholder:We,validate:l=>{if(!Te(ae.resolve(e,l)))return`${fe.bold(l)} does not exist. Please enter a valid path.`}}),tailwindConfig:()=>ce({message:`Where is your ${N("Tailwind config")} located?`,initialValue:t?.tailwind.config??Be,placeholder:Be,validate:l=>{if(!Te(ae.resolve(e,l)))return`${fe.bold(l)} does not exist. Please enter a valid path.`}}),components:()=>ce({message:`Configure the import alias for ${N("components")}:`,initialValue:t?.aliases.components??Ge,placeholder:Ge}),utils:()=>ce({message:`Configure the import alias for ${N("utils")}:`,initialValue:t?.aliases.utils??Ue,placeholder:Ue})},{onCancel:()=>{$("Operation cancelled."),process.exit(0)}}),i=A(be,{$schema:"https://shadcn-svelte.com/schema.json",style:r.style,typescript:r.typescript,tailwind:{config:r.tailwindConfig,css:r.tailwindCss,baseColor:r.tailwindBaseColor},aliases:{utils:r.utils,components:r.components}});if(i.tailwind.config.endsWith(".cjs")){S.info(`Your tailwind config has been renamed to ${N("tailwind.config.js")}.`);let l=i.tailwind.config.replace(".cjs",".js");i.tailwind.config=l}let o=await ze(e,i),c=F();c.start(`Creating config file ${N("components.json")}`);let d=ae.resolve(e,"components.json");return await ie.writeFile(d,JSON.stringify(i,null,2),"utf8"),c.stop(`Config file ${N("components.json")} created`),o}async function Tr(e,t){let s=F();s.start("Initializing project");for(let[l,v]of Object.entries(t.resolvedPaths)){let h=ae.extname(v)?ae.dirname(v):v;l==="utils"&&v.endsWith("/utils")&&(h=h.replace(/\/utils$/,"")),!Te(h)&&l!=="utils"&&await ie.mkdir(h,{recursive:!0})}await ie.writeFile(t.resolvedPaths.tailwindConfig,Jt,"utf8");let n=t.resolvedPaths.tailwindConfig.replace(".js",".cjs");n.endsWith(".cjs")&&await ie.unlink(n).catch(l=>l);let r=await Wt(t.tailwind.baseColor);r&&await ie.writeFile(t.resolvedPaths.tailwindCss,r.cssVarsTemplate,"utf8");let i=t.resolvedPaths.utils+(t.typescript?".ts":".js"),o=t.typescript?Pe:Xt;await ie.writeFile(i,o,"utf8"),s.stop("Project initialized");let c=F();c.start("Installing dependencies");let d=await L(e);await Or(d,["add",...Ar],{cwd:e}),c.stop("Dependencies installed")}import{existsSync as de,promises as oe}from"fs";import G from"path";import O from"chalk";import{Command as Ir}from"commander";import{execa as jr}from"execa";var B=e=>O.bold.cyan(e),Rr=k({all:I(),components:R(T(y())),cwd:y(),proxy:R(y()),yes:I()}),Kt=new Ir().command("update").description("update components in your project").argument("[components...]","name of components").option("-a, --all","update all existing components.",!1).option("-y, --yes","skip confirmation prompt.",!1).option("--proxy <proxy>","fetch components from registry using a proxy.").option("-c, --cwd <cwd>","the working directory. defaults to the current directory.",process.cwd()).action(async(e,t)=>{re();try{let s=A(Rr,{components:e,...t}),n=G.resolve(s.cwd);de(n)||($(`The path ${O.cyan(n)} does not exist. Please try again.`),process.exit(1));let r=await Z(n);r||($(`Configuration file is missing. Please run ${O.green("init")} to create a ${B("components.json")} file.`),process.exit(1)),await Fr(n,r,s),Ee(`This action ${O.underline("does not")} update your ${B("dependencies")} to their ${O.bold("latest")} versions.
235
+ `,Ls={TS:Rn+js,JS:jn+js};var Lt=Vt(qs(),1);import Rt from"fs";import $e from"path";var Qn=["app.css","app.pcss","app.postcss","main.css","main.pcss","main.postcss"],ea=["tailwind.config.js","tailwind.config.cjs","tailwind.config.mjs","tailwind.config.ts"],ta=["node_modules",".git",".svelte-kit"];function Ws(e,t){let r,s,n=sa(e);for(let a of n){let i=$e.parse(a).base;s===void 0&&Qn.includes(i)&&(s=t?.relative?$e.relative(e,a):a),r===void 0&&ea.includes(i)&&(r=t?.relative?$e.relative(e,a):a)}return{tailwindPath:r,cssPath:s}}function sa(e){return zs(e,[])}function zs(e,t){let r=[],s=Rt.readdirSync(e,{withFileTypes:!0}),n=$e.join(e,".gitignore");if(Rt.existsSync(n)){let a=Rt.readFileSync(n,{encoding:"utf8"}),i=(0,Lt.default)().add(a);t.push({dirPath:e,ig:i})}for(let a of s){let i=$e.join(a.path,a.name);ta.some(c=>a.path.includes(c))||t.some(c=>{let y=$e.relative(c.dirPath,i);if(Lt.default.isPathValid(y)!==!1)return c.ig.ignores(y)})||(a.isFile()&&r.push(i),a.isDirectory()&&r.push(...zs(i,t)))}return r}var aa=["tailwind-variants","clsx","tailwind-merge"],X=(...e)=>Z.bold.cyan(...e),Xs=new ra().command("init").description("initialize your project and install dependencies").option("-c, --cwd <cwd>","the working directory. defaults to the current directory.",process.cwd()).action(async e=>{ge();let t=be.resolve(e.cwd);try{if(!et(t))throw R(`The path ${Z.cyan(t)} does not exist. Please try again.`);let r=await ye(t),s=await ia(t,r);await oa(t,s),ue(`${Z.green("Success!")} Project initialization completed.`)}catch(r){fe(r)}});async function ia(e,t){await qe(e);let r=await Ts(),s=await Ss(),n=Ws(e,{relative:!0}),a=await J({message:`Would you like to use ${X("TypeScript")} (recommended)?`,initialValue:t?.typescript??bs});q(a)&&(j("Operation cancelled."),process.exit(0));let i=a?"tsconfig.json":"jsconfig.json";ze(e,i);let l=u=>{let d=ze(e,i);if(Ae(u,d)===void 0)return`"${Z.bold(u)}" does not use an existing path alias defined in your ${Z.bold(i)}. See: ${Z.underline("https://www.shadcn-svelte.com/docs/installation/manual#configure-path-aliases")}`},c=await Ht({style:()=>ft({message:`Which ${X("style")} would you like to use?`,initialValue:t?.style??$s,options:r.map(u=>({label:u.label,value:u.name}))}),tailwindBaseColor:()=>ft({message:`Which ${X("base color")} would you like to use?`,initialValue:t?.tailwind.baseColor??xs,options:s.map(u=>({label:u.label,value:u.name}))}),tailwindCss:()=>we({message:`Where is your ${X("global CSS")} file?`,initialValue:t?.tailwind.css??n.cssPath??Et,placeholder:n.cssPath??Et,validate:u=>{if(!(u&&et(be.resolve(e,u))))return`"${Z.bold(u)}" does not exist. Please enter a valid path.`}}),tailwindConfig:()=>we({message:`Where is your ${X("Tailwind config")} located?`,initialValue:t?.tailwind.config??n.tailwindPath??kt,placeholder:n.tailwindPath??kt,validate:u=>{if(!(u&&et(be.resolve(e,u))))return`"${Z.bold(u)}" does not exist. Please enter a valid path.`}}),components:()=>we({message:`Configure the import alias for ${X("components")}:`,initialValue:t?.aliases.components??_t,placeholder:_t,validate:l}),utils:({results:{components:u}})=>we({message:`Configure the import alias for ${X("utils")}:`,initialValue:t?.aliases.utils??u?.split("/").slice(0,-1).join("/")+"/utils"??wt,placeholder:wt,validate:l})},{onCancel:()=>{j("Operation cancelled."),process.exit(0)}}),y=N(Se,{$schema:"https://shadcn-svelte.com/schema.json",style:c.style,typescript:a,tailwind:{config:c.tailwindConfig,css:c.tailwindCss,baseColor:c.tailwindBaseColor},aliases:{utils:c.utils,components:c.components}});if(y.tailwind.config.endsWith(".cjs")){T.info(`Your tailwind config has been renamed to ${X("tailwind.config.js")}.`),await xe.unlink(y.tailwind.config).catch(()=>null);let u=y.tailwind.config.replace(".cjs",".js");y.tailwind.config=u}return await Ct(e,y)}async function oa(e,t){await pe([{title:"Creating config file",async task(){let a=be.resolve(e,"components.json"),i=N(Se,t);return await xe.writeFile(a,JSON.stringify(i,null," "),"utf8"),`Config file ${X("components.json")} created`}},{title:"Initializing project",async task(){for(let[u,d]of Object.entries(t.resolvedPaths)){let m=be.extname(d)?be.dirname(d):d;u==="utils"&&d.endsWith("/utils")&&(m=m.replace(/\/utils$/,"")),!et(m)&&u!=="utils"&&await xe.mkdir(m,{recursive:!0})}let{TS:a,JS:i}=Ls,l=t.resolvedPaths.tailwindConfig.endsWith(".ts")?a:i;await xe.writeFile(t.resolvedPaths.tailwindConfig,l,"utf8");let c=await Os(t.tailwind.baseColor);c&&await xe.writeFile(t.resolvedPaths.tailwindCss,c.cssVarsTemplate,"utf8");let y=t.resolvedPaths.utils+(t.typescript?".ts":".js"),g=t.typescript?Ze:Rs;return await xe.writeFile(y,g,"utf8"),"Project initialized"}},{title:"Installing dependencies",async task(){let a=await Y(e);return await na(a,["add",...aa],{cwd:e}),"Dependencies installed"}}])}import{existsSync as Pe,promises as _e}from"fs";import Q from"path";import D from"chalk";import{Command as ca}from"commander";import{execa as la}from"execa";var re=e=>D.bold.cyan(e),ua=O({all:M(),components:G(V(x())),cwd:x(),proxy:G(x()),yes:M()}),Ks=new ca().command("update").description("update components in your project").argument("[components...]","name of components").option("-a, --all","update all existing components.",!1).option("-y, --yes","skip confirmation prompt.",!1).option("--proxy <proxy>","fetch components from registry using a proxy.",he()).option("-c, --cwd <cwd>","the working directory. defaults to the current directory.",process.cwd()).action(async(e,t)=>{ge();try{let r=N(ua,{components:e,...t}),s=Q.resolve(r.cwd);if(!Pe(s))throw R(`The path ${D.cyan(s)} does not exist. Please try again.`);let n=await ye(s);if(!n)throw R(`Configuration file is missing. Please run ${D.green("init")} to create a ${re("components.json")} file.`);await pa(s,n,r),Kt(`This action ${D.underline("does not")} update your ${re("dependencies")} to their ${D.bold("latest")} versions.
231
236
 
232
- Consider updating them as well.`),te(`${O.green("Success!")} Component update completed.`)}catch(s){se(s)}});async function Fr(e,t,s){let n=s.components,r=s.proxy??Q();if(r){let u=!!s.proxy;u&&(process.env.HTTP_PROXY=s.proxy),S.warn(`You are using a ${u?"provided":"system environment"} proxy: ${O.green(r)}`)}let i=await ke(),o=G.resolve(t.resolvedPaths.components,"ui");de(o)||($(`Component directory ${O.cyan(o)} does not exist.`),process.exit(1));let c=[],d=await oe.readdir(o,{withFileTypes:!0});for(let u of d)if(u.isDirectory()){let f=i.find(m=>m.name===u.name);f&&c.push(f)}c.push({name:"utils",type:"components:ui",files:[],dependencies:[],registryDependencies:[]});let l=s.all?c:[];if(l.length===0&&n!==void 0&&(l=c.filter(u=>n.includes(u.name))),l.length===0){let u=await _e({message:"Which components would you like to update?",maxItems:10,options:c.map(f=>({label:f.name,value:f,hint:f.registryDependencies.length?`also updates: ${f.registryDependencies.join(", ")}`:void 0}))});q(u)&&($("Operation cancelled."),process.exit(0)),l=u}else{let u=ne(l.map(({name:f})=>f));S.step(`Components to update:
233
- ${O.gray(u)}`)}if(s.yes===!1){let u=await M({message:`Ready to update ${B("components")}? ${O.gray("(Make sure you have committed your changes before proceeding!)")}`,initialValue:!0});(q(u)||u===!1)&&($("Operation cancelled."),process.exit(0))}if(l.find(u=>u.name==="utils")){let u=t.typescript?".ts":".js",f=t.resolvedPaths.utils+u;de(f)||($(`Failed to find ${B("utils")} at ${O.cyan(f)}`),process.exit(1)),await oe.writeFile(f,Pe)}let v=await ue(i,l.map(u=>u.name)),h=(await Se(t,v)).sort((u,f)=>u.name.localeCompare(f.name)),p={},g=new Set;for(let u of h){let f=F();f.start(`Updating ${B(u.name)}`);let m=pe(t,u);if(!m)continue;de(m)||await oe.mkdir(m,{recursive:!0});let w=G.resolve(m,u.name);de(w)||await oe.mkdir(w,{recursive:!0});for(let j of u.files){let es=G.resolve(m,u.name,j.name),ts=Oe(j.content,t);await oe.writeFile(es,ts)}let C=await oe.readdir(w),Ie=u.files.map(j=>j.name),st=C.filter(j=>!Ie.includes(j)).map(j=>G.resolve(m,u.name,j));st.length>0&&(p[u.name]=st),u.dependencies.forEach(j=>g.add(j));let Qt=G.relative(process.cwd(),G.resolve(m,u.name));f.stop(`${B(u.name)} updated at ${O.gray(Qt)}`)}if(g.size>0){let u=F();u.start("Installing new package dependencies");let f=await L(e);await jr(f,["add",...g],{cwd:e}),u.stop("Dependencies installed")}for(let[u,f]of Object.entries(p))S.warn(`The ${B(u)} component does not use the following files:
234
- ${f.map(m=>O.white(`- ${O.gray(G.relative(e,m))}`)).join(`
235
- `)}`);Object.keys(p).length>0&&S.message(O.bold("You may want to delete them."))}process.on("SIGINT",()=>process.exit(0));process.on("SIGTERM",()=>process.exit(0));var Zt=process.versions.node,Dr=parseInt(Zt.split(".")[0],10),Yt=18;Dr<Yt&&(console.error(`Node.js v${Zt} is out of date and unsupported!`),console.error(`Please use Node.js v${Yt} or higher.`),process.exit(1));async function Lr(){console.clear();let e=ge(),t=new Nr().name("shadcn-svelte").description("Add shadcn-svelte components to your project").version(e.version||"0.0.0","-v, --version","display the version number");t.addCommand(Ht).addCommand(zt).addCommand(Kt),t.parse()}Lr();
236
- //# sourceMappingURL=index.js.map
237
+ Consider updating them as well.`),ue(`${D.green("Success!")} Component update completed.`)}catch(r){fe(r)}});async function pa(e,t,r){r.proxy!==void 0&&(process.env.HTTP_PROXY=r.proxy,T.info(`You are using the provided proxy: ${D.green(r.proxy)}`));let s=r.components,n=await Xe(),a=Q.resolve(t.resolvedPaths.components,"ui");if(!Pe(a))throw R(`Component directory ${D.cyan(a)} does not exist.`);let i=[],l=await _e.readdir(a,{withFileTypes:!0});for(let p of l)if(p.isDirectory()){let f=n.find(v=>v.name===p.name);f&&i.push(f)}i.push({name:"utils",type:"components:ui",files:[],dependencies:[],registryDependencies:[]});let c=r.all?i:[];if(c.length===0&&s!==void 0&&(c=i.filter(p=>s.includes(p.name))),c.length===0){let p=await Fe({message:"Which components would you like to update?",maxItems:10,options:i.map(f=>({label:f.name,value:f,hint:f.registryDependencies.length?`also updates: ${f.registryDependencies.join(", ")}`:void 0}))});q(p)&&(j("Operation cancelled."),process.exit(0)),c=p}else{let p=ve(c.map(({name:f})=>f));T.step(`Components to update:
238
+ ${D.gray(p)}`)}if(r.yes===!1){let p=await J({message:`Ready to update ${re("components")}? ${D.gray("(Make sure you have committed your changes before proceeding!)")}`,initialValue:!0});(q(p)||p===!1)&&(j("Operation cancelled."),process.exit(0))}if(c.find(p=>p.name==="utils")){let p=t.typescript?".ts":".js",f=t.resolvedPaths.utils+p;if(!Pe(f))throw R(`Failed to find ${re("utils")} at ${D.cyan(f)}`);await _e.writeFile(f,Ze)}let y=await Oe(n,c.map(p=>p.name)),g=(await Ke(t,y)).sort((p,f)=>p.name.localeCompare(f.name)),u={},d=new Set,m=[];for(let p of g){let f=Ie(t,p);f&&(p.dependencies.forEach(v=>d.add(v)),m.push({title:`Updating ${re(p.name)}`,async task(){Pe(f)||await _e.mkdir(f,{recursive:!0});let v=Q.resolve(f,p.name);Pe(v)||await _e.mkdir(v,{recursive:!0});for(let $ of p.files){let I=Q.resolve(f,p.name,$.name),L=He($.content,t);await _e.writeFile(I,L)}let k=await _e.readdir(v),C=p.files.map($=>$.name),h=k.filter($=>!C.includes($)).map($=>Q.resolve(f,p.name,$));h.length>0&&(u[p.name]=h);let w=Q.relative(process.cwd(),Q.resolve(f,p.name));return`${re(p.name)} updated at ${D.gray(w)}`}}))}m.push({title:"Installing package dependencies",enabled:d.size>0,async task(){let p=await Y(e);return await la(p,["add",...d],{cwd:e}),"Dependencies installed"}}),await pe(m);for(let[p,f]of Object.entries(u))T.warn(`The ${re(p)} component does not use the following files:
239
+ ${f.map(v=>D.white(`- ${D.gray(Q.relative(e,v))}`)).join(`
240
+ `)}`);Object.keys(u).length>0&&T.message(D.bold("You may want to delete them."))}process.on("SIGINT",()=>process.exit(0));process.on("SIGTERM",()=>process.exit(0));var Hs=process.versions.node,da=parseInt(Hs.split(".")[0],10),Js=18;da<Js&&(console.error(`Node.js v${Hs} is out of date and unsupported!`),console.error(`Please use Node.js v${Js} or higher.`),process.exit(1));async function ma(){console.clear();let e=Ge(),t=new fa().name("shadcn-svelte").description("Add shadcn-svelte components to your project").version(e.version||"0.0.0","-v, --version","display the version number");t.addCommand(Xs).addCommand(Ps).addCommand(Ks),t.parse()}ma();