shadcn-svelte 0.9.4 → 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,173 +1,180 @@
1
1
  #!/usr/bin/env node
2
- var Nt=Object.create;var Ye=Object.defineProperty;var Vt=Object.getOwnPropertyDescriptor;var Mt=Object.getOwnPropertyNames;var Ft=Object.getPrototypeOf,qt=Object.prototype.hasOwnProperty;var Gt=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports);var Bt=(e,t,s,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let r of Mt(t))!qt.call(e,r)&&r!==s&&Ye(e,r,{get:()=>t[r],enumerable:!(n=Vt(t,r))||n.enumerable});return e};var Ut=(e,t,s)=>(s=e!=null?Nt(Ft(e)):{},Bt(t||!e||!e.__esModule?Ye(s,"default",{value:e,enumerable:!0}):s,e));var ut=Gt((Or,lt)=>{"use strict";var qe="\x1B",b=`${qe}[`,$s="\x07",Ge={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:`${qe}7`,restore:`${qe}8`},bs={up:(e=1)=>`${b}S`.repeat(e),down:(e=1)=>`${b}T`.repeat(e)},xs={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?Ge.up():"");return e&&(t+=Ge.left),t}};lt.exports={cursor:Ge,scroll:bs,erase:xs,beep:$s}});import{Command as ir}from"commander";import{existsSync as Pe,promises as He}from"node:fs";import z from"node:path";import C from"chalk";import{Command as zs}from"commander";import{execa as Xs}from"execa";var Wt=class extends Error{issues;constructor(e){super(e[0].message),this.name="ValiError",this.issues=e}},ur=Symbol("brand");function B(e,t){return Array.isArray(e)?[void 0,e]:[e,t]}var he;function zt(e){return{lang:e?.lang??he?.lang,message:e?.message,abortEarly:e?.abortEarly??he?.abortEarly,abortPipeEarly:e?.abortPipeEarly??he?.abortPipeEarly,skipPipe:e?.skipPipe??he?.skipPipe}}var Xt;function Jt(e){return Xt?.get(e)}var Ht;function Kt(e){return Ht?.get(e)}var Yt;function Zt(e,t){return Yt?.get(e)?.get(t)}function Ze(e,t,s,n,r){let a=t.message??Zt(s,r.lang)??(e?Kt(r.lang):null)??n?.message??Jt(r.lang)??r.message;return typeof a=="function"?a(r):a}function J(e,t,s){return{typed:e,output:t,issues:s}}function Oe(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 Qt(e,t,s){let n=s.received??Oe(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=Ze(!1,s.context,s.reference,t,r),r}function H(e,t,s,n){if(e.pipe&&!s?.skipPipe)for(let r of e.pipe){let a=r._parse(t);if(a.issues){for(let l of a.issues){let f=Qt(e,s,l);n?n.push(f):n=[f]}if(s?.abortEarly||s?.abortPipeEarly)break}else t=a.output}return J(!0,t,n)}function Qe(e,t,s){if(!e||typeof e=="object"&&!Array.isArray(e)){let[a,l]=B(t,s);return[e,a,l]}let[n,r]=B(e,t);return[void 0,n,r]}function K(e,t,s,n,r){let a=Oe(s),l=r?.expected??e.expects,f={reason:r?.reason??"type",context:e.type,expected:l,received:a,message:`Invalid type: Expected ${l} but received ${a}`,input:s,path:r?.path,issues:r?.issues,lang:n?.lang,abortEarly:n?.abortEarly,abortPipeEarly:n?.abortPipeEarly,skipPipe:n?.skipPipe};return f.message=Ze(!0,e,t,n,f),{typed:!1,output:s,issues:[f]}}function es(e){return typeof e.default=="function"?e.default():e.default}function I(e,t,s){let[n,r]=B(t,s);return{type:"array",expects:"Array",async:!1,item:e,message:n,pipe:r,_parse(a,l){if(Array.isArray(a)){let f=!0,d,u=[];for(let $=0;$<a.length;$++){let g=a[$],c=this.item._parse(g,l);if(c.issues){let y={type:"array",origin:"value",input:a,key:$,value:g};for(let o of c.issues)o.path?o.path.unshift(y):o.path=[y],d?.push(o);if(d||(d=c.issues),l?.abortEarly){f=!1;break}}c.typed||(f=!1),u.push(c.output)}return f?H(this,u,l,d):J(!1,u,d)}return K(this,I,a,l)}}}function T(e,t){let[s,n]=B(e,t);return{type:"boolean",expects:"boolean",async:!1,message:s,pipe:n,_parse(r,a){return typeof r=="boolean"?H(this,r,a):K(this,T,r,a)}}}function E(e,t,s,n){let[r,a,l]=Qe(t,s,n),f;return{type:"object",expects:"Object",async:!1,entries:e,rest:r,message:a,pipe:l,_parse(d,u){if(d&&typeof d=="object"){f=f??Object.entries(this.entries);let $=!0,g,c={};for(let[y,o]of f){let p=d[y],m=o._parse(p,u);if(m.issues){let x={type:"object",origin:"value",input:d,key:y,value:p};for(let k of m.issues)k.path?k.path.unshift(x):k.path=[x],g?.push(k);if(g||(g=m.issues),u?.abortEarly){$=!1;break}}m.typed||($=!1),(m.output!==void 0||y in d)&&(c[y]=m.output)}if(this.rest&&!(u?.abortEarly&&g)){for(let y in d)if(!(y in this.entries)){let o=d[y],p=this.rest._parse(o,u);if(p.issues){let m={type:"object",origin:"value",input:d,key:y,value:o};for(let x of p.issues)x.path?x.path.unshift(m):x.path=[m],g?.push(x);if(g||(g=p.issues),u?.abortEarly){$=!1;break}}p.typed||($=!1),c[y]=p.output}}return $?H(this,c,u,g):J(!1,c,g)}return K(this,E,d,u)}}}function j(e,t){return{type:"optional",expects:`${e.expects} | undefined`,async:!1,wrapped:e,default:t,_parse(s,n){if(s===void 0){let r=es(this);if(r===void 0)return J(!0,s);s=r}return this.wrapped._parse(s,n)}}}function je(e,t){return{type:"picklist",expects:e.map(Oe).join(" | "),async:!1,options:e,message:t,_parse(s,n){return this.options.includes(s)?J(!0,s):K(this,je,s,n)}}}function h(e,t){let[s,n]=B(e,t);return{type:"string",expects:"string",async:!1,message:s,pipe:n,_parse(r,a){return typeof r=="string"?H(this,r,a):K(this,h,r,a)}}}function ts(e,t,s,n){if(typeof t=="object"&&!Array.isArray(t)){let[l,f]=B(s,n);return[e,t,l,f]}let[r,a]=B(t,s);return[h(),e,r,a]}var ss=["__proto__","prototype","constructor"];function Y(e,t,s,n){let[r,a,l,f]=ts(e,t,s,n);return{type:"record",expects:"Object",async:!1,key:r,value:a,message:l,pipe:f,_parse(d,u){if(d&&typeof d=="object"){let $=!0,g,c={};for(let[y,o]of Object.entries(d))if(!ss.includes(y)){let p,m=this.key._parse(y,u);if(m.issues){p={type:"record",origin:"key",input:d,key:y,value:o};for(let k of m.issues)k.path=[p],g?.push(k);if(g||(g=m.issues),u?.abortEarly){$=!1;break}}let x=this.value._parse(o,u);if(x.issues){p=p??{type:"record",origin:"value",input:d,key:y,value:o};for(let k of x.issues)k.path?k.path.unshift(p):k.path=[p],g?.push(k);if(g||(g=x.issues),u?.abortEarly){$=!1;break}}(!m.typed||!x.typed)&&($=!1),m.typed&&(c[m.output]=x.output)}return $?H(this,c,u,g):J(!1,c,g)}return K(this,Y,d,u)}}}function ge(e,t,s,n){let[r,a,l]=Qe(t,s,n);return E(e.reduce((f,d)=>({...f,...d.entries}),{}),r,a,l)}function P(e,t,s){let n=e._parse(t,zt(s));if(n.issues)throw new Wt(n.issues);return n.output}function Re(e,t,s){return{...e,_parse(n,r){let a=e._parse(n,r);if(a.issues)a.typed=!1;else if(a.output=t(a.output,{issues:a.issues}),s)return Array.isArray(s)?H({type:typeof a.output,pipe:s},a.output,r):s._parse(a.output,r);return a}}}import ps from"node:fs";import W from"node:path";import le from"chalk";import{execa as fs}from"execa";import{parse as ms,find as ds}from"tsconfck";import et from"node:path";import rs from"node:fs";import{fileURLToPath as ns}from"node:url";function ve(){let e=as("../package.json");return tt(e)}function as(e){let t=ns(new URL(".",import.meta.url));return et.resolve(t,e)}function is(e){let t=et.resolve(e,"package.json");return tt(t)}function tt(e){let t=rs.readFileSync(e,{encoding:"utf8"});return JSON.parse(t)}function st(e){let t=is(e),s={...t.devDependencies,...t.dependencies};return Object.keys(s).some(n=>n==="@sveltejs/kit")}import rt from"node:fs";import nt from"node:path";import os from"node:process";import{findUp as at}from"find-up";async function V(e){let t=await ls(e);if(t==="yarn@berry")return"yarn";if(t==="pnpm@6")return"pnpm";if(t!==null)return t;let s=os.env.npm_config_user_agent;return s===void 0?"npm":s.startsWith("yarn")?"yarn":s.startsWith("pnpm")?"pnpm":"npm"}var cs=["npm","bun","pnpm","pnpm@6","yarn","yarn@berry"],it={"bun.lockb":"bun","pnpm-lock.yaml":"pnpm","yarn.lock":"yarn","package-lock.json":"npm","npm-shrinkwrap.json":"npm"};async function ls(e){let t=null,s=await at(Object.keys(it),{cwd:e}),n;if(s?n=nt.resolve(s,"../package.json"):n=await at("package.json",{cwd:e}),n&&rt.existsSync(n))try{let r=JSON.parse(rt.readFileSync(n,"utf8"));if(typeof r.packageManager=="string"){let[a,l]=r.packageManager.replace(/^\^/,"").split("@");a==="yarn"&&Number.parseInt(l)>1?t="yarn@berry":a==="pnpm"&&Number.parseInt(l)<7?t="pnpm@6":cs.includes(a)&&(t=a)}}catch{}return!t&&s&&(t=it[nt.basename(s)]),t}import us from"node:path";function De(e,t){for(let[s,n]of Object.entries(t.paths)){s=ot(s);let r=n[0]&&ot(n[0]);if(!e.startsWith(s)||r===void 0)continue;let a=e.replace(s,r);return us.resolve(t.absoluteBaseUrl,...a.split("/"))}}function ot(e){return e.endsWith("/*")?e.slice(0,-2):e}var Le="$lib/components",Ne="$lib/utils",Ve="src/app.pcss",Me="tailwind.config.cjs";var ct=!0,U=(...e)=>le.bold.cyan(...e),$e=E({$schema:j(h()),style:h(),tailwind:E({config:h(),css:h(),baseColor:h()}),aliases:E({components:Re(h(),e=>e.replace(/[\u{0080}-\u{FFFF}]/gu,"")),utils:Re(h(),e=>e.replace(/[\u{0080}-\u{FFFF}]/gu,""))}),typescript:j(T(),!0)}),ys=ge([$e,E({resolvedPaths:E({tailwindConfig:h(),tailwindCss:h(),utils:h(),components:h()})})]);async function Q(e){let t=await gs(e);return t?await Fe(e,t):null}async function Fe(e,t){if(st(e)){let y=await V(e);await fs(y==="npm"?"npx":y,["svelte-kit","sync"],{cwd:e})}let n=t.typescript?"tsconfig.json":"jsconfig.json",r=await ds(W.resolve(e,"package.json"),{root:e,configName:n});if(r===null)throw new Error(`Failed to find ${U(n)}. See: ${le.green("https://www.shadcn-svelte.com/docs/installation#opt-out-of-typescript")}`);let a=await ms(r),l=hs(a),f=l?.pathsBasePath,d=l?.paths;if(f===void 0||d===void 0)throw new Error(`Missing ${U("paths")} field in your ${U(n)} for path aliases. See: ${le.green("https://www.shadcn-svelte.com/docs/installation/manual#configure-path-aliases")}`);let u={absoluteBaseUrl:f,paths:d},$=De(t.aliases.utils,u),g=De(t.aliases.components,u),c=(y,o)=>new Error(`[components.json]: Invalid ${U(y)} import alias: ${U(o)}. Aliases ${le.underline("must use")} path aliases defined in your ${U(n)}. See ${le.green("https://www.shadcn-svelte.com/docs/installation/manual#configure-path-aliases")}.`);if($===void 0)throw c("utils",t.aliases.utils);if(g===void 0)throw c("components",t.aliases.components);return P(ys,{...t,resolvedPaths:{tailwindConfig:W.resolve(e,t.tailwind.config),tailwindCss:W.resolve(e,t.tailwind.css),utils:$,components:g}})}function hs(e){for(let t of e.extended??[e]){let s=t.tsconfig.compilerOptions.paths;if(s===void 0)continue;let n=t.tsconfig.compilerOptions.baseUrl??".",a=t.tsconfigFile.split(W.sep).slice(0,-1).join(W.sep);return{pathsBasePath:W.resolve(a,n),paths:s}}}async function gs(e){let t=W.resolve(e,"components.json");try{let s=await ps.promises.readFile(t,{encoding:"utf8"}).catch(r=>null);if(!s)return null;let n=JSON.parse(s);return P($e,n)}catch{throw new Error(`[components.json]: Invalid configuration found in ${U(t)}.`)}}function ee(){let{HTTP_PROXY:e,http_proxy:t}=process.env;return e||t}var te=Ut(ut(),1);import{block as ws,ConfirmPrompt as _s,GroupMultiSelectPrompt as Rr,isCancel as Es,MultiSelectPrompt as ks,PasswordPrompt as Dr,SelectKeyPrompt as Lr,SelectPrompt as Ss,TextPrompt as As}from"@clack/core";import Ps from"is-unicode-supported";import i from"chalk";import{isCancel as q}from"@clack/core";var Ue=Ps(),_=(e,t)=>Ue?e:t,Cs=_("\u25C6","*"),mt=_("\u25A0","x"),dt=_("\u25B2","x"),be=_("\u25C7","o"),Is=_("\u250C","T"),v=_("\u2502","|"),M=_("\u2514","\u2014"),We=_("\u25CF",">"),ze=_("\u25CB"," "),Ts=_("\u25FB","[\u2022]"),pt=_("\u25FC","[+]"),Os=_("\u25FB","[ ]"),Fr=_("\u25AA","\u2022"),ft=_("\u2500","-"),js=_("\u256E","+"),Rs=_("\u251C","+"),Ds=_("\u256F","+"),Ls=_("\u25CF","\u2022"),Ns=_("\u25C6","*"),Vs=_("\u25B2","!"),Ms=_("\u25A0","x"),xe=e=>{switch(e){case"initial":case"active":return i.cyan(Cs);case"cancel":return i.red(mt);case"error":return i.yellow(dt);case"submit":return i.green(be)}},Xe=e=>{let{cursor:t,options:s,style:n}=e,r=e.maxItems===void 0?1/0:Math.max(e.maxItems,5),a=0;t>=a+r-3?a=Math.max(Math.min(t-r+3,s.length-r),0):t<a+2&&(a=Math.max(t-2,0));let l=r<s.length&&a>0,f=r<s.length&&a+r<s.length;return s.slice(a,a+r).map((d,u,$)=>{let g=u===0&&l,c=u===$.length-1&&f;return g||c?i.dim("..."):n(d,u+a===t)})},ue=e=>new As({validate:e.validate,placeholder:e.placeholder,defaultValue:e.defaultValue,initialValue:e.initialValue,render(){let t=`${i.gray(v)}
3
- ${xe(this.state)} ${e.message}
4
- `,s=e.placeholder?i.inverse(e.placeholder[0])+i.dim(e.placeholder.slice(1)):i.inverse(i.hidden("_")),n=this.value?this.valueWithCursor:s;switch(this.state){case"error":return`${t.trim()}
5
- ${i.yellow(v)} ${n}
6
- ${i.yellow(M)} ${i.yellow(this.error)}
7
- `;case"submit":return`${t}${i.gray(v)} ${i.dim(this.value||e.placeholder)}`;case"cancel":return`${t}${i.gray(v)} ${i.strikethrough(i.dim(this.value??""))}${this.value?.trim()?`
8
- `+i.gray(v):""}`;default:return`${t}${i.cyan(v)} ${n}
9
- ${i.cyan(M)}
10
- `}}}).prompt();var F=e=>{let t=e.active??"Yes",s=e.inactive??"No";return new _s({active:t,inactive:s,initialValue:e.initialValue??!0,render(){let n=`${i.gray(v)}
11
- ${xe(this.state)} ${e.message}
12
- `,r=this.value?t:s;switch(this.state){case"submit":return`${n}${i.gray(v)} ${i.dim(r)}`;case"cancel":return`${n}${i.gray(v)} ${i.strikethrough(i.dim(r))}
13
- ${i.gray(v)}`;default:return`${n}${i.cyan(v)} ${this.value?`${i.green(We)} ${t}`:`${i.dim(ze)} ${i.dim(t)}`} ${i.dim("/")} ${this.value?`${i.dim(ze)} ${i.dim(s)}`:`${i.green(We)} ${s}`}
14
- ${i.cyan(M)}
15
- `}}}).prompt()},Je=e=>{let t=(s,n)=>{let r=s.label??String(s.value);switch(n){case"selected":return`${i.dim(r)}`;case"active":return`${i.green(We)} ${r} ${s.hint?i.dim(`(${s.hint})`):""}`;case"cancelled":return`${i.strikethrough(i.dim(r))}`;default:return`${i.dim(ze)} ${i.dim(r)}`}};return new Ss({options:e.options,initialValue:e.initialValue,render(){let s=`${i.gray(v)}
16
- ${xe(this.state)} ${e.message}
17
- `;switch(this.state){case"submit":return`${s}${i.gray(v)} ${t(this.options[this.cursor],"selected")}`;case"cancel":return`${s}${i.gray(v)} ${t(this.options[this.cursor],"cancelled")}
18
- ${i.gray(v)}`;default:return`${s}${i.cyan(v)} ${Xe({cursor:this.cursor,options:this.options,maxItems:e.maxItems,style:(n,r)=>t(n,r?"active":"inactive")}).join(`
19
- ${i.cyan(v)} `)}
20
- ${i.cyan(M)}
21
- `}}}).prompt()};var we=e=>{let t=(s,n)=>{let r=s.label??String(s.value);return n==="active"?`${i.cyan(Ts)} ${r} ${s.hint?i.dim(`(${s.hint})`):""}`:n==="selected"?`${i.green(pt)} ${i.dim(r)}`:n==="cancelled"?`${i.strikethrough(i.dim(r))}`:n==="active-selected"?`${i.green(pt)} ${r} ${s.hint?i.dim(`(${s.hint})`):""}`:n==="submitted"?`${i.dim(r)}`:`${i.dim(Os)} ${i.dim(r)}`};return new ks({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.
22
- ${i.reset(i.dim(`Press ${i.gray(i.bgWhite(i.inverse(" space ")))} to select, ${i.gray(i.bgWhite(i.inverse(" enter ")))} to submit`))}`},render(){let s=`${i.gray(v)}
23
- ${xe(this.state)} ${e.message}
24
- `,n=(r,a)=>{let l=this.value.includes(r.value);return a&&l?t(r,"active-selected"):l?t(r,"selected"):t(r,a?"active":"inactive")};switch(this.state){case"submit":return`${s}${i.gray(v)} ${this.options.filter(({value:r})=>this.value.includes(r)).map(r=>t(r,"submitted")).join(i.dim(", "))||i.dim("none")}`;case"cancel":{let r=this.options.filter(({value:a})=>this.value.includes(a)).map(a=>t(a,"cancelled")).join(i.dim(", "));return`${s}${i.gray(v)} ${r.trim()?`${r}
25
- ${i.gray(v)}`:""}`}case"error":{let r=this.error.split(`
26
- `).map((a,l)=>l===0?`${i.yellow(M)} ${i.yellow(a)}`:` ${a}`).join(`
27
- `);return s+i.yellow(v)+" "+Xe({options:this.options,cursor:this.cursor,maxItems:e.maxItems,style:n}).join(`
28
- ${i.yellow(v)} `)+`
29
- `+r+`
30
- `}default:return`${s}${i.cyan(v)} ${Xe({options:this.options,cursor:this.cursor,maxItems:e.maxItems,style:n}).join(`
31
- ${i.cyan(v)} `)}
32
- ${i.cyan(M)}
33
- `}}}).prompt()};var Be=e=>e.replace(Fs(),""),_e=(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=`
34
34
  ${e}
35
35
  `.split(`
36
- `),n=Be(t).length,r=Math.max(s.reduce((l,f)=>(f=Be(f),f.length>l?f.length:l),0),n)+2,a=s.map(l=>`${i.gray(v)} ${i.dim(l)}${" ".repeat(r-Be(l).length)}${i.gray(v)}`).join(`
37
- `);process.stdout.write(`${i.gray(v)}
38
- ${i.green(be)} ${i.reset(t)} ${i.gray(ft.repeat(Math.max(r-n-1,1))+js)}
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
39
  ${a}
40
- ${i.gray(Rs+ft.repeat(r+2)+Ds)}
41
- `)},S=(e="")=>{process.stdout.write(`${i.gray(M)} ${i.red(e)}
40
+ ${o.gray(jr+Wt.repeat(n+2)+Rr)}
41
+ `)},j=(e="")=>{process.stdout.write(`${o.gray(K)} ${o.red(e)}
42
42
 
43
- `)},yt=(e="")=>{process.stdout.write(`${i.gray(Is)} ${e}
44
- `)},se=(e="")=>{process.stdout.write(`${i.gray(v)}
45
- ${i.gray(M)} ${e}
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
46
 
47
- `)},w={message:(e="",{symbol:t=i.gray(v)}={})=>{let s=[`${i.gray(v)}`];if(e){let[n,...r]=e.split(`
48
- `);s.push(`${t} ${n}`,...r.map(a=>`${i.gray(v)} ${a}`))}process.stdout.write(`${s.join(`
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(`
49
49
  `)}
50
- `)},info:e=>{w.message(e,{symbol:i.blue(Ls)})},success:e=>{w.message(e,{symbol:i.green(Ns)})},step:e=>{w.message(e,{symbol:i.green(be)})},warn:e=>{w.message(e,{symbol:i.yellow(Vs)})},warning:e=>{w.warn(e)},error:e=>{w.message(e,{symbol:i.red(Ms)})}},R=()=>{let e=Ue?["\u25D2","\u25D0","\u25D3","\u25D1"]:["\u2022","o","O","0"],t=Ue?80:120,s,n,r=!1,a="",l=o=>{let p=o>1?"Something went wrong":"Canceled";r&&c(p,o)},f=()=>l(2),d=()=>l(1),u=()=>{process.on("uncaughtExceptionMonitor",f),process.on("unhandledRejection",f),process.on("SIGINT",d),process.on("SIGTERM",d),process.on("exit",l)},$=()=>{process.removeListener("uncaughtExceptionMonitor",f),process.removeListener("unhandledRejection",f),process.removeListener("SIGINT",d),process.removeListener("SIGTERM",d),process.removeListener("exit",l)},g=(o="")=>{r=!0,s=ws(),a=o.replace(/\.+$/,""),process.stdout.write(`${i.gray(v)}
51
- `);let p=0,m=0;u(),n=setInterval(()=>{let x=i.magenta(e[p]),k=".".repeat(Math.floor(m)).slice(0,3);process.stdout.write(te.cursor.move(-999,0)),process.stdout.write(te.erase.down(1)),process.stdout.write(`${x} ${a}${k}`),p=p+1<e.length?p+1:0,m=m<e.length?m+.125:0},t)},c=(o="",p=0)=>{a=o??a,r=!1,clearInterval(n);let m=p===0?i.green(be):p===1?i.red(mt):i.red(dt);process.stdout.write(te.cursor.move(-999,0)),process.stdout.write(te.erase.down(1)),process.stdout.write(`${m} ${a}
52
- `),$(),s()};return{start:g,stop:c,message:(o="")=>{a=o??a}}};function Fs(){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 s={},n=Object.keys(e);for(let r of n){let a=e[r],l=await a({results:s})?.catch(f=>{throw f});if(typeof t?.onCancel=="function"&&Es(l)){s[r]="canceled",t.onCancel({results:s});continue}s[r]=l}return s};function re(e){w.message(),typeof e=="string"&&(S(e),process.exit(1)),e instanceof Error&&(S(e.message),process.exit(1)),S("Something went wrong. Please try again."),process.exit(1)}function D(e){return new Error(e)}import Bs from"node:path";import Us from"node-fetch";import{HttpsProxyAgent as Ws}from"https-proxy-agent";var gt=E({name:h(),dependencies:I(h()),registryDependencies:I(h()),files:I(h()),type:je(["components:ui","components:component","components:example"])}),vt=I(gt),qs=ge([gt,E({files:I(E({name:h(),content:h()}))})]),$t=I(qs),bt=I(E({name:h(),label:h()})),xt=E({inlineColors:E({light:Y(h(),h()),dark:Y(h(),h())}),cssVars:E({light:Y(h(),h()),dark:Y(h(),h())}),inlineColorsTemplate:h(),cssVarsTemplate:h()});var wt=process.env.COMPONENTS_REGISTRY_URL??"https://shadcn-svelte.com";async function Ee(){try{let[e]=await Se(["index.json"]);return P(vt,e)}catch{throw new Error("Failed to fetch components from registry.")}}async function _t(){try{let[e]=await Se(["styles/index.json"]);return P(bt,e)}catch{throw new Error("Failed to fetch styles from registry.")}}async function Et(){return[{name:"slate",label:"Slate"},{name:"gray",label:"Gray"},{name:"zinc",label:"Zinc"},{name:"neutral",label:"Neutral"},{name:"stone",label:"Stone"}]}async function kt(e){try{let[t]=await Se([`colors/${e}.json`]);return P(xt,t)}catch{throw new Error("Failed to fetch base color from registry.")}}async function fe(e,t){let s=[];for(let n of t){let r=e.find(a=>a.name===n);if(r&&(s.push(r),r.registryDependencies)){let a=await fe(e,r.registryDependencies);s.push(...a)}}return s.filter((n,r,a)=>a.findIndex(l=>l.name===n.name)===r)}async function ke(e,t){try{let s=e.typescript?e.style:`${e.style}-js`,n=t.map(a=>`styles/${s}/${a.name}.json`),r=await Se(n);return P($t,r)}catch{throw new Error("Failed to fetch tree from registry.")}}function me(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:Bs.join(e.resolvedPaths[n],r)}async function Se(e){let t=ee(),s=t?new Ws(t):void 0;try{return await Promise.all(e.map(async r=>await(await Us(`${wt}/registry/${r}`,{agent:s})).json()))}catch(n){throw console.error(n),new Error(`Failed to fetch registry from ${wt}.`)}}function Ae(e,t){let s=e.replace(/\$lib\/registry\/[^/]+/g,t.aliases.components);return s=s.replace(/\$lib\/utils/g,t.aliases.utils),s}import St from"chalk";function ne(){let e=ve(),t=St.bgHex("#FF5500").black(" shadcn-svelte "),s=St.gray(` v${e.version} `);yt(t+s)}function ae(e,t=9){return e.reduce((s,n,r)=>r%t===0?`${s},
53
- ${n}`:`${s}, ${n}`)}var N=(...e)=>C.bold.cyan(...e),Js=E({components:j(I(h())),yes:T(),all:T(),overwrite:T(),cwd:h(),path:j(h()),nodep:T(),proxy:j(h())}),At=new zs().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{ne();let s=P(Js,{components:e,...t}),n=z.resolve(s.cwd);if(!Pe(n))throw D(`The path ${C.cyan(n)} does not exist. Please try again.`);let r=await Q(n);if(!r)throw D(`Configuration file is missing. Please run ${C.green("init")} to create a ${N("components.json")} file.`);await Hs(n,r,s),se(`${C.green("Success!")} Component installation completed.`)}catch(s){re(s)}});async function Hs(e,t,s){let n=s.proxy??ee();if(n){let c=!!s.proxy;c&&(process.env.HTTP_PROXY=s.proxy),w.warn(`You are using a ${c?"provided":"system environment"} proxy: ${C.green(n)}`)}let r=await Ee(),a=s.all?r.map(({name:c})=>c):s.components;if(a===void 0||a.length===0){let c=await we({message:`Which ${N("components")} would you like to install?`,maxItems:10,options:r.map(({name:y,dependencies:o,registryDependencies:p})=>{let m=[...s.nodep?[]:o,...p];return{label:y,value:y,hint:m.length?`also installs: ${m.join(", ")}`:void 0}})});q(c)&&(S("Operation cancelled."),process.exit(0)),a=c}else{let c=ae(a);w.step(`Components to install:
54
- ${C.gray(c)}`)}let l=await fe(r,a),f=await ke(t,l);f.length===0&&(S("Selected components not found."),process.exit(0));let d=[],u=s.path?z.resolve(e,s.path):void 0;for(let c of f){if(a.includes(c.name)===!1)continue;let y=me(t,c,u);if(y===null)continue;c.files.some(p=>Pe(z.resolve(y,c.name,p.name)))&&d.push(c.name)}if(s.overwrite===!1&&d.length>0){let c=ae(d);w.warn(`The following components ${C.bold.yellow("already exists")}:
55
- ${C.gray(c)}`);let y=await F({message:`Would you like to ${C.bold.red("overwrite")} all existing components?`,active:"Yes, overwrite everything",inactive:"No, let me decide individually",initialValue:!1});q(y)&&(S("Operation cancelled."),process.exit(0)),s.overwrite=y}if(s.yes===!1){let c=await F({message:`Ready to install ${N("components")}${s.nodep?"?":` and ${N("dependencies")}?`}`,initialValue:!0});(q(c)||c===!1)&&(S("Operation cancelled."),process.exit(0))}let $=new Set,g=new Set;for(let c of f){let y=me(t,c,u);if(y===null)continue;Pe(y)||await He.mkdir(y,{recursive:!0});let o=z.relative(process.cwd(),z.resolve(y,c.name));if(!s.overwrite&&d.includes(c.name)&&a.includes(c.name)){w.warn(`Component ${N(c.name)} already exists at ${C.gray(o)}`);let m=await F({message:`Would you like to ${C.bold.red("overwrite")} your existing ${N(c.name)} component?`});if(q(m)&&(S("Operation cancelled."),process.exit(0)),m===!1)continue}let p=R();p.start(`Installing ${N(c.name)}`);for(let m of c.files){let x=z.resolve(y,c.name),k=z.resolve(y,c.name,m.name),Te=Ae(m.content,t);Pe(x)||await He.mkdir(x,{recursive:!0}),await He.writeFile(k,Te)}s.nodep?c.dependencies.forEach(m=>$.add(m)):c.dependencies.forEach(m=>g.add(m)),p.stop(`${N(c.name)} installed at ${C.gray(o)}`)}if(g.size>0){let c=R();c.start("Installing package dependencies");let y=await V(e);await Xs(y,["add",...g],{cwd:e}),c.stop("Dependencies installed")}if(s.nodep){let c=ae([...$],7);w.warn(`Components have been installed ${C.bold.red("without")} the following ${N("dependencies")}:
56
- ${C.gray(c)}`)}}import{existsSync as Ie,promises as ie}from"node:fs";import oe from"node:path";import de from"chalk";import{Command as Ys}from"commander";import{execa as Zs}from"execa";var Ce=`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";
57
61
  import { twMerge } from "tailwind-merge";
58
62
  import { cubicOut } from "svelte/easing";
59
63
  import type { TransitionConfig } from "svelte/transition";
60
64
 
61
65
  export function cn(...inputs: ClassValue[]) {
62
- return twMerge(clsx(inputs));
66
+ return twMerge(clsx(inputs));
63
67
  }
64
68
 
65
69
  type FlyAndScaleParams = {
66
- y?: number;
67
- x?: number;
68
- start?: number;
69
- duration?: number;
70
+ y?: number;
71
+ x?: number;
72
+ start?: number;
73
+ duration?: number;
70
74
  };
71
75
 
72
76
  export const flyAndScale = (
73
- node: Element,
74
- 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 }
75
79
  ): TransitionConfig => {
76
- const style = getComputedStyle(node);
77
- const transform = style.transform === "none" ? "" : style.transform;
78
-
79
- const scaleConversion = (
80
- valueA: number,
81
- scaleA: [number, number],
82
- scaleB: [number, number]
83
- ) => {
84
- const [minA, maxA] = scaleA;
85
- const [minB, maxB] = scaleB;
86
-
87
- const percentage = (valueA - minA) / (maxA - minA);
88
- const valueB = percentage * (maxB - minB) + minB;
89
-
90
- return valueB;
91
- };
92
-
93
- const styleToString = (
94
- style: Record<string, number | string | undefined>
95
- ): string => {
96
- return Object.keys(style).reduce((str, key) => {
97
- if (style[key] === undefined) return str;
98
- return str + \`\${key}:\${style[key]};\`;
99
- }, "");
100
- };
101
-
102
- return {
103
- duration: params.duration ?? 200,
104
- delay: 0,
105
- css: (t) => {
106
- const y = scaleConversion(t, [0, 1], [params.y ?? 5, 0]);
107
- const x = scaleConversion(t, [0, 1], [params.x ?? 0, 0]);
108
- const scale = scaleConversion(t, [0, 1], [params.start ?? 0.95, 1]);
109
-
110
- return styleToString({
111
- transform: \`\${transform} translate3d(\${x}px, \${y}px, 0) scale(\${scale})\`,
112
- opacity: t
113
- });
114
- },
115
- easing: cubicOut
116
- };
117
- };`,Pt=`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";
118
122
  import { twMerge } from "tailwind-merge";
119
123
  import { cubicOut } from "svelte/easing";
120
124
 
121
125
  export function cn(...inputs) {
122
- return twMerge(clsx(inputs));
126
+ return twMerge(clsx(inputs));
123
127
  }
124
128
 
125
129
  export const flyAndScale = (
126
- node,
127
- params = { y: -8, x: 0, start: 0.95, duration: 150 }
130
+ node,
131
+ params = { y: -8, x: 0, start: 0.95, duration: 150 }
128
132
  ) => {
129
- const style = getComputedStyle(node);
130
- const transform = style.transform === "none" ? "" : style.transform;
131
-
132
- const scaleConversion = (valueA, scaleA, scaleB) => {
133
- const [minA, maxA] = scaleA;
134
- const [minB, maxB] = scaleB;
135
-
136
- const percentage = (valueA - minA) / (maxA - minA);
137
- const valueB = percentage * (maxB - minB) + minB;
138
-
139
- return valueB;
140
- };
141
-
142
- const styleToString = (style) => {
143
- return Object.keys(style).reduce((str, key) => {
144
- if (style[key] === undefined) return str;
145
- return str + \`\${key}:\${style[key]};\`;
146
- }, "");
147
- };
148
-
149
- return {
150
- duration: params.duration ?? 200,
151
- delay: 0,
152
- css: (t) => {
153
- const y = scaleConversion(t, [0, 1], [params.y ?? 5, 0]);
154
- const x = scaleConversion(t, [0, 1], [params.x ?? 0, 0]);
155
- const scale = scaleConversion(t, [0, 1], [params.start ?? 0.95, 1]);
156
-
157
- return styleToString({
158
- transform: \`\${transform} translate3d(\${x}px, \${y}px, 0) scale(\${scale})\`,
159
- opacity: t
160
- });
161
- },
162
- easing: cubicOut
163
- };
164
- };`,Ct=`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";
165
169
 
166
170
  /** @type {import('tailwindcss').Config} */
167
- const config = {
171
+ const config = {`,Rn=`import { fontFamily } from "tailwindcss/defaultTheme";
172
+ import type { Config } from "tailwindcss";
173
+
174
+ const config: Config = {`,js=`
168
175
  darkMode: ["class"],
169
176
  content: ["./src/**/*.{html,js,svelte,ts}"],
170
- safelist: ["dark"],
177
+ safelist: ["dark"],
171
178
  theme: {
172
179
  container: {
173
180
  center: true,
@@ -225,10 +232,9 @@ const config = {
225
232
  };
226
233
 
227
234
  export default config;
228
- `;var Qs=["tailwind-variants","clsx","tailwind-merge"],L=(...e)=>de.bold.cyan(...e),It=new Ys().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=>{ne();let t=oe.resolve(e.cwd);try{if(!Ie(t))throw D(`The path ${de.cyan(t)} does not exist. Please try again.`);let s=await Q(t),n=await er(t,s);await tr(t,n),(!n.aliases.components.startsWith("$lib")||!n.aliases.utils.startsWith("$lib"))&&_e("Don't forget to add the import aliases you configured to your svelte.config.js!"),se(`${de.green("Success!")} Project initialization completed.`)}catch(s){re(s)}});async function er(e,t=null){let s=await _t(),n=await Et(),r=await ht({typescript:()=>F({message:`Would you like to use ${L("TypeScript")} (recommended)?`,initialValue:t?.typescript??ct}),style:({})=>Je({message:`Which ${L("style")} would you like to use?`,initialValue:t?.style,options:s.map(u=>({label:u.label,value:u.name}))}),tailwindBaseColor:({})=>Je({message:`Which ${L("base color")} would you like to use?`,initialValue:t?.tailwind.baseColor,options:n.map(u=>({label:u.label,value:u.name}))}),tailwindCss:()=>ue({message:`Where is your ${L("global CSS")} file?`,initialValue:t?.tailwind.css??Ve,placeholder:Ve,validate:u=>{if(!Ie(oe.resolve(e,u)))return`${de.bold(u)} does not exist. Please enter a valid path.`}}),tailwindConfig:()=>ue({message:`Where is your ${L("Tailwind config")} located?`,initialValue:t?.tailwind.config??Me,placeholder:Me,validate:u=>{if(!Ie(oe.resolve(e,u)))return`${de.bold(u)} does not exist. Please enter a valid path.`}}),components:()=>ue({message:`Configure the import alias for ${L("components")}:`,initialValue:t?.aliases.components??Le,placeholder:Le}),utils:()=>ue({message:`Configure the import alias for ${L("utils")}:`,initialValue:t?.aliases.utils??Ne,placeholder:Ne})},{onCancel:()=>{S("Operation cancelled."),process.exit(0)}}),a=P($e,{$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(a.tailwind.config.endsWith(".cjs")){w.info(`Your tailwind config has been renamed to ${L("tailwind.config.js")}.`);let u=a.tailwind.config.replace(".cjs",".js");a.tailwind.config=u}let l=await Fe(e,a),f=R();f.start(`Creating config file ${L("components.json")}`);let d=oe.resolve(e,"components.json");return await ie.writeFile(d,JSON.stringify(a,null,2),"utf8"),f.stop(`Config file ${L("components.json")} created`),l}async function tr(e,t){let s=R();s.start("Initializing project");for(let[u,$]of Object.entries(t.resolvedPaths)){let g=oe.extname($)?oe.dirname($):$;u==="utils"&&$.endsWith("/utils")&&(g=g.replace(/\/utils$/,"")),!Ie(g)&&u!=="utils"&&await ie.mkdir(g,{recursive:!0})}await ie.writeFile(t.resolvedPaths.tailwindConfig,Ct,"utf8");let n=t.resolvedPaths.tailwindConfig.replace(".js",".cjs");n.endsWith(".cjs")&&await ie.unlink(n).catch(u=>u);let r=await kt(t.tailwind.baseColor);r&&await ie.writeFile(t.resolvedPaths.tailwindCss,r.cssVarsTemplate,"utf8");let a=t.resolvedPaths.utils+(t.typescript?".ts":".js"),l=t.typescript?Ce:Pt;await ie.writeFile(a,l,"utf8"),s.stop("Project initialized");let f=R();f.start("Installing dependencies");let d=await V(e);await Zs(d,["add",...Qs],{cwd:e}),f.stop("Dependencies installed")}import{existsSync as ye,promises as ce}from"fs";import G from"path";import A from"chalk";import{Command as sr}from"commander";import{execa as rr}from"execa";var X=e=>A.bold.cyan(e),nr=E({all:T(),components:j(I(h())),cwd:h(),proxy:j(h()),yes:T()}),Tt=new sr().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)=>{ne();try{let s=P(nr,{components:e,...t}),n=G.resolve(s.cwd);if(!ye(n))throw D(`The path ${A.cyan(n)} does not exist. Please try again.`);let r=await Q(n);if(!r)throw D(`Configuration file is missing. Please run ${A.green("init")} to create a ${X("components.json")} file.`);await ar(n,r,s),_e(`This action ${A.underline("does not")} update your ${X("dependencies")} to their ${A.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.
229
236
 
230
- Consider updating them as well.`),se(`${A.green("Success!")} Component update completed.`)}catch(s){re(s)}});async function ar(e,t,s){let n=s.components,r=s.proxy??ee();if(r){let o=!!s.proxy;o&&(process.env.HTTP_PROXY=s.proxy),w.warn(`You are using a ${o?"provided":"system environment"} proxy: ${A.green(r)}`)}let a=await Ee(),l=G.resolve(t.resolvedPaths.components,"ui");if(!ye(l))throw D(`Component directory ${A.cyan(l)} does not exist.`);let f=[],d=await ce.readdir(l,{withFileTypes:!0});for(let o of d)if(o.isDirectory()){let p=a.find(m=>m.name===o.name);p&&f.push(p)}f.push({name:"utils",type:"components:ui",files:[],dependencies:[],registryDependencies:[]});let u=s.all?f:[];if(u.length===0&&n!==void 0&&(u=f.filter(o=>n.includes(o.name))),u.length===0){let o=await we({message:"Which components would you like to update?",maxItems:10,options:f.map(p=>({label:p.name,value:p,hint:p.registryDependencies.length?`also updates: ${p.registryDependencies.join(", ")}`:void 0}))});q(o)&&(S("Operation cancelled."),process.exit(0)),u=o}else{let o=ae(u.map(({name:p})=>p));w.step(`Components to update:
231
- ${A.gray(o)}`)}if(s.yes===!1){let o=await F({message:`Ready to update ${X("components")}? ${A.gray("(Make sure you have committed your changes before proceeding!)")}`,initialValue:!0});(q(o)||o===!1)&&(S("Operation cancelled."),process.exit(0))}if(u.find(o=>o.name==="utils")){let o=t.typescript?".ts":".js",p=t.resolvedPaths.utils+o;if(!ye(p))throw D(`Failed to find ${X("utils")} at ${A.cyan(p)}`);await ce.writeFile(p,Ce)}let $=await fe(a,u.map(o=>o.name)),g=(await ke(t,$)).sort((o,p)=>o.name.localeCompare(p.name)),c={},y=new Set;for(let o of g){let p=R();p.start(`Updating ${X(o.name)}`);let m=me(t,o);if(!m)continue;ye(m)||await ce.mkdir(m,{recursive:!0});let x=G.resolve(m,o.name);ye(x)||await ce.mkdir(x,{recursive:!0});for(let O of o.files){let Dt=G.resolve(m,o.name,O.name),Lt=Ae(O.content,t);await ce.writeFile(Dt,Lt)}let k=await ce.readdir(x),Te=o.files.map(O=>O.name),Ke=k.filter(O=>!Te.includes(O)).map(O=>G.resolve(m,o.name,O));Ke.length>0&&(c[o.name]=Ke),o.dependencies.forEach(O=>y.add(O));let Rt=G.relative(process.cwd(),G.resolve(m,o.name));p.stop(`${X(o.name)} updated at ${A.gray(Rt)}`)}if(y.size>0){let o=R();o.start("Installing new package dependencies");let p=await V(e);await rr(p,["add",...y],{cwd:e}),o.stop("Dependencies installed")}for(let[o,p]of Object.entries(c))w.warn(`The ${X(o)} component does not use the following files:
232
- ${p.map(m=>A.white(`- ${A.gray(G.relative(e,m))}`)).join(`
233
- `)}`);Object.keys(c).length>0&&w.message(A.bold("You may want to delete them."))}process.on("SIGINT",()=>process.exit(0));process.on("SIGTERM",()=>process.exit(0));var jt=process.versions.node,or=parseInt(jt.split(".")[0],10),Ot=18;or<Ot&&(console.error(`Node.js v${jt} is out of date and unsupported!`),console.error(`Please use Node.js v${Ot} or higher.`),process.exit(1));async function cr(){console.clear();let e=ve(),t=new ir().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(It).addCommand(At).addCommand(Tt),t.parse()}cr();
234
- //# 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();