shadcn-svelte 0.9.3 → 0.9.4

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,61 +1,59 @@
1
1
  #!/usr/bin/env node
2
- var ss=Object.create;var rt=Object.defineProperty;var rs=Object.getOwnPropertyDescriptor;var ns=Object.getOwnPropertyNames;var is=Object.getPrototypeOf,as=Object.prototype.hasOwnProperty;var os=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports);var cs=(e,t,s,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let r of ns(t))!as.call(e,r)&&r!==s&&rt(e,r,{get:()=>t[r],enumerable:!(n=rs(t,r))||n.enumerable});return e};var ls=(e,t,s)=>(s=e!=null?ss(is(e)):{},cs(t||!e||!e.__esModule?rt(s,"default",{value:e,enumerable:!0}):s,e));var At=os((wn,Ot)=>{"use strict";var Xe="\x1B",b=`${Xe}[`,Hs="\x07",Je={to(e,t){return t?`${b}${t+1};${e+1}H`:`${b}${e+1}G`},move(e,t){let s="";return e<0?s+=`${b}${-e}D`:e>0&&(s+=`${b}${e}C`),t<0?s+=`${b}${-t}A`:t>0&&(s+=`${b}${t}B`),s},up:(e=1)=>`${b}${e}A`,down:(e=1)=>`${b}${e}B`,forward:(e=1)=>`${b}${e}C`,backward:(e=1)=>`${b}${e}D`,nextLine:(e=1)=>`${b}E`.repeat(e),prevLine:(e=1)=>`${b}F`.repeat(e),left:`${b}G`,hide:`${b}?25l`,show:`${b}?25h`,save:`${Xe}7`,restore:`${Xe}8`},Ks={up:(e=1)=>`${b}S`.repeat(e),down:(e=1)=>`${b}T`.repeat(e)},Ys={screen:`${b}2J`,up:(e=1)=>`${b}1J`.repeat(e),down:(e=1)=>`${b}J`.repeat(e),line:`${b}2K`,lineEnd:`${b}K`,lineStart:`${b}1K`,lines(e){let t="";for(let s=0;s<e;s++)t+=this.line+(s<e-1?Je.up():"");return e&&(t+=Je.left),t}};Ot.exports={cursor:Je,scroll:Ks,erase:Ys,beep:Hs}});import{Command as Nr}from"commander";import{existsSync as Ae,promises as tt}from"node:fs";import W from"node:path";import P from"chalk";import{Command as wr}from"commander";import{execa as _r}from"execa";var us=class extends Error{issues;constructor(e){super(e[0].message),this.name="ValiError",this.issues=e}},Mr=Symbol("brand");function U(e,t){return Array.isArray(e)?[void 0,e]:[e,t]}var me;function ps(e){return{lang:e?.lang??me?.lang,message:e?.message,abortEarly:e?.abortEarly??me?.abortEarly,abortPipeEarly:e?.abortPipeEarly??me?.abortPipeEarly,skipPipe:e?.skipPipe??me?.skipPipe}}var fs;function ds(e){return fs?.get(e)}var ms;function ys(e){return ms?.get(e)}var hs;function gs(e,t){return hs?.get(e)?.get(t)}function nt(e,t,s,n,r){let i=t.message??gs(s,r.lang)??(e?ys(r.lang):null)??n?.message??ds(r.lang)??r.message;return typeof i=="function"?i(r):i}function z(e,t,s){return{typed:e,output:t,issues:s}}function je(e){let t=typeof e;return t==="object"&&(t=e?Object.getPrototypeOf(e).constructor.name:"null"),t==="string"?`"${e}"`:t==="number"||t==="bigint"||t==="boolean"?`${e}`:t}function vs(e,t,s){let n=s.received??je(s.input),r={reason:e.type,context:s.context.type,expected:s.context.expects,received:n,message:`Invalid ${s.label}: ${s.context.expects?`Expected ${s.context.expects} but r`:"R"}eceived ${n}`,input:s.input,requirement:s.context.requirement,path:s.path,lang:t?.lang,abortEarly:t?.abortEarly,abortPipeEarly:t?.abortPipeEarly,skipPipe:t?.skipPipe};return r.message=nt(!1,s.context,s.reference,t,r),r}function X(e,t,s,n){if(e.pipe&&!s?.skipPipe)for(let r of e.pipe){let i=r._parse(t);if(i.issues){for(let o of i.issues){let c=vs(e,s,o);n?n.push(c):n=[c]}if(s?.abortEarly||s?.abortPipeEarly)break}else t=i.output}return z(!0,t,n)}function it(e,t,s){if(!e||typeof e=="object"&&!Array.isArray(e)){let[i,o]=U(t,s);return[e,i,o]}let[n,r]=U(e,t);return[void 0,n,r]}function J(e,t,s,n,r){let i=je(s),o=r?.expected??e.expects,c={reason:r?.reason??"type",context:e.type,expected:o,received:i,message:`Invalid type: Expected ${o} but received ${i}`,input:s,path:r?.path,issues:r?.issues,lang:n?.lang,abortEarly:n?.abortEarly,abortPipeEarly:n?.abortPipeEarly,skipPipe:n?.skipPipe};return c.message=nt(!0,e,t,n,c),{typed:!1,output:s,issues:[c]}}function xs(e){return typeof e.default=="function"?e.default():e.default}function T(e,t,s){let[n,r]=U(t,s);return{type:"array",expects:"Array",async:!1,item:e,message:n,pipe:r,_parse(i,o){if(Array.isArray(i)){let c=!0,d,l=[];for(let v=0;v<i.length;v++){let h=i[v],p=this.item._parse(h,o);if(p.issues){let g={type:"array",origin:"value",input:i,key:v,value:h};for(let u of p.issues)u.path?u.path.unshift(g):u.path=[g],d?.push(u);if(d||(d=p.issues),o?.abortEarly){c=!1;break}}p.typed||(c=!1),l.push(p.output)}return c?X(this,l,o,d):z(!1,l,d)}return J(this,T,i,o)}}}function I(e,t){let[s,n]=U(e,t);return{type:"boolean",expects:"boolean",async:!1,message:s,pipe:n,_parse(r,i){return typeof r=="boolean"?X(this,r,i):J(this,I,r,i)}}}function k(e,t,s,n){let[r,i,o]=it(t,s,n),c;return{type:"object",expects:"Object",async:!1,entries:e,rest:r,message:i,pipe:o,_parse(d,l){if(d&&typeof d=="object"){c=c??Object.entries(this.entries);let v=!0,h,p={};for(let[g,u]of c){let f=d[g],m=u._parse(f,l);if(m.issues){let w={type:"object",origin:"value",input:d,key:g,value:f};for(let C of m.issues)C.path?C.path.unshift(w):C.path=[w],h?.push(C);if(h||(h=m.issues),l?.abortEarly){v=!1;break}}m.typed||(v=!1),(m.output!==void 0||g in d)&&(p[g]=m.output)}if(this.rest&&!(l?.abortEarly&&h)){for(let g in d)if(!(g in this.entries)){let u=d[g],f=this.rest._parse(u,l);if(f.issues){let m={type:"object",origin:"value",input:d,key:g,value:u};for(let w of f.issues)w.path?w.path.unshift(m):w.path=[m],h?.push(w);if(h||(h=f.issues),l?.abortEarly){v=!1;break}}f.typed||(v=!1),p[g]=f.output}}return v?X(this,p,l,h):z(!1,p,h)}return J(this,k,d,l)}}}function R(e,t){return{type:"optional",expects:`${e.expects} | undefined`,async:!1,wrapped:e,default:t,_parse(s,n){if(s===void 0){let r=xs(this);if(r===void 0)return z(!0,s);s=r}return this.wrapped._parse(s,n)}}}function Re(e,t){return{type:"picklist",expects:e.map(je).join(" | "),async:!1,options:e,message:t,_parse(s,n){return this.options.includes(s)?z(!0,s):J(this,Re,s,n)}}}function y(e,t){let[s,n]=U(e,t);return{type:"string",expects:"string",async:!1,message:s,pipe:n,_parse(r,i){return typeof r=="string"?X(this,r,i):J(this,y,r,i)}}}function bs(e,t,s,n){if(typeof t=="object"&&!Array.isArray(t)){let[o,c]=U(s,n);return[e,t,o,c]}let[r,i]=U(t,s);return[y(),e,r,i]}var $s=["__proto__","prototype","constructor"];function H(e,t,s,n){let[r,i,o,c]=bs(e,t,s,n);return{type:"record",expects:"Object",async:!1,key:r,value:i,message:o,pipe:c,_parse(d,l){if(d&&typeof d=="object"){let v=!0,h,p={};for(let[g,u]of Object.entries(d))if(!$s.includes(g)){let f,m=this.key._parse(g,l);if(m.issues){f={type:"record",origin:"key",input:d,key:g,value:u};for(let C of m.issues)C.path=[f],h?.push(C);if(h||(h=m.issues),l?.abortEarly){v=!1;break}}let w=this.value._parse(u,l);if(w.issues){f=f??{type:"record",origin:"value",input:d,key:g,value:u};for(let C of w.issues)C.path?C.path.unshift(f):C.path=[f],h?.push(C);if(h||(h=w.issues),l?.abortEarly){v=!1;break}}(!m.typed||!w.typed)&&(v=!1),m.typed&&(p[m.output]=w.output)}return v?X(this,p,l,h):z(!1,p,h)}return J(this,H,d,l)}}}function ye(e,t,s,n){let[r,i,o]=it(t,s,n);return k(e.reduce((c,d)=>({...c,...d.entries}),{}),r,i,o)}function A(e,t,s){let n=e._parse(t,ps(s));if(n.issues)throw new us(n.issues);return n.output}function Fe(e,t,s){return{...e,_parse(n,r){let i=e._parse(n,r);if(i.issues)i.typed=!1;else if(i.output=t(i.output,{issues:i.issues}),s)return Array.isArray(s)?X({type:typeof i.output,pipe:s},i.output,r):s._parse(i.output,r);return i}}}import{promises as Ws}from"node:fs";import ve from"node:path";import St from"chalk";import{execa as Bs}from"execa";import ws from"path";import _ from"path";import{promises as _s}from"fs";import lt from"path";import Ts from"path";var Ur=ws.sep;var Wr=Symbol("singleComment"),Br=Symbol("multiComment");var Es=new RegExp("\\"+_.posix.sep,"g"),ks=new RegExp("\\"+_.sep,"g"),Ne=new Map,pt="**/*",Ve=[".ts",".tsx",".mts",".cts"],Ss=`\\.(?:${Ve.map(e=>e.substring(1)).join("|")})`,Cs=new Function("path","return import(path).then(m => m.default)");async function ft(){try{return Cs("typescript")}catch(e){throw console.error('typescript must be installed to use "native" functions'),e}}async function at(e){if(_.extname(e)!==".json")return;let t=_.resolve(e);try{let s=await _s.stat(t);if(s.isFile()||s.isFIFO())return t}catch(s){if(s.code!=="ENOENT")throw s}throw new Error(`no tsconfig file found for ${e}`)}function De(e){return _.posix.sep!==_.sep&&e.includes(_.posix.sep)?e.replace(Es,_.sep):e}function Me(e){return _.posix.sep!==_.sep&&e.includes(_.sep)?e.replace(ks,_.posix.sep):e}function he(e,t){return _.sep===_.posix.sep?e?_.resolve(e,t):_.resolve(t):Me(e?_.resolve(De(e),De(t)):_.resolve(De(t)))}function Os(e){let t=_.dirname(e.tsconfigFile);return e.tsconfig.references.map(s=>{let n=s.path.endsWith(".json")?s.path:_.join(s.path,"tsconfig.json");return he(t,n)})}function As(e,t){if(t.referenced&&Ve.some(s=>e.endsWith(s))&&!ot(e,t)){let s=t.referenced.find(n=>ot(e,n));if(s)return{...s,solution:t}}return t}function ot(e,t){let s=Me(_.dirname(t.tsconfigFile)),n=(t.tsconfig.files||[]).map(o=>he(s,o)),r=he(null,e);return n.includes(e)?!0:ct(r,s,t.tsconfig.include||(t.tsconfig.files?[]:[pt]))?!ct(r,s,t.tsconfig.exclude||[]):!1}function ct(e,t,s){return s.some(n=>{let r=n.length,i=!1;for(let l=n.length-1;l>-1;l--)if(n[l]==="*"||n[l]==="?"){r=l,i=!0;break}if(r<n.length-1&&!e.endsWith(n.slice(r+1))||n.endsWith("*")&&!Ve.some(l=>e.endsWith(l)))return!1;if(n===pt)return e.startsWith(`${t}/`);let o=he(t,n),c=-1;for(let l=0;l<o.length;l++)if(o[l]==="*"||o[l]==="?"){c=l,i=!0;break}if(c>1&&!e.startsWith(o.slice(0,c-1)))return!1;if(!i)return e===o;if(Ne.has(o))return Ne.get(o).test(e);let d=Ps(o);return Ne.set(o,d),d.test(e)})}function Ps(e){let t="^";for(let s=0;s<e.length;s++){let n=e[s];if(n==="?"){t+="[^\\/]";continue}if(n==="*"){if(e[s+1]==="*"&&e[s+2]==="/"){s+=2,t+="(?:[^\\/]*\\/)*";continue}t+="[^\\/]*";continue}"/.+^${}()|[]\\".includes(n)&&(t+="\\"),t+=n}return e.endsWith("*")&&(t+=Ss),t+="$",new RegExp(t)}async function ut(e){let t=await ft(),{findConfigFile:s,sys:n}=t,r=s(lt.dirname(lt.resolve(e)),n.fileExists);if(!r)throw new Error(`no tsconfig file found for ${e}`);return r}async function dt(e,t){let s=t?.cache;if(s?.has(e))return s.get(e);let n;if(t?.resolveWithEmptyIfConfigNotFound)try{n=await at(e),n||(n=await ut(e))}catch{let o={tsconfigFile:"no_tsconfig_file_found",tsconfig:{},result:null};return s?.set(e,o),o}else n=await at(e),n||(n=await ut(e));let r;if(s?.has(n))r=s.get(n);else{let i=await ft();r=await mt(n,i,t),await Is(r,i,t),s?.set(n,r)}return r=As(e,r),s?.set(e,r),r}async function mt(e,t,s){let n=s?.cache;if(n?.has(e))return n.get(e);let r=Me(e),{parseJsonConfigFileContent:i,readConfigFile:o,sys:c}=t,{config:d,error:l}=o(r,c.readFile);if(l)throw new yt(l,e,null);let v={useCaseSensitiveFileNames:!1,readDirectory:c.readDirectory,fileExists:c.fileExists,readFile:c.readFile};s?.ignoreSourceFiles&&(d.files=[],d.include=[]);let h=i(d,v,Ts.dirname(r),void 0,r);js(h,e);let p={tsconfigFile:e,tsconfig:Rs(h,t),result:h};return n?.set(e,p),p}async function Is(e,t,s){if(!e.tsconfig.references)return;let n=Os(e);e.referenced=await Promise.all(n.map(r=>mt(r,t,s)))}function js(e,t){var s;let n=[18002,18003],r=(s=e.errors)==null?void 0:s.find(i=>i.category===1&&!n.includes(i.code));if(r)throw new yt(r,t,e)}function Rs(e,t){let s=JSON.parse(JSON.stringify(e.raw)),n=["configFilePath","pathsBasePath"];if(e.options&&Object.keys(e.options).some(o=>!n.includes(o))){s.compilerOptions={...e.options};for(let o of n)delete s.compilerOptions[o]}let r=s.compilerOptions;if(r){r.lib!=null&&(r.lib=r.lib.map(c=>c.replace(/^lib\./,"").replace(/\.d\.ts$/,"")));let o=[{name:"importsNotUsedAsValues",enumeration:t.ImportsNotUsedAsValues},{name:"module",enumeration:t.ModuleKind},{name:"moduleResolution",enumeration:{...t.ModuleResolutionKind,2:"node"}},{name:"newLine",enumeration:{0:"crlf",1:"lf"}},{name:"target",enumeration:t.ScriptTarget}];for(let c of o)r[c.name]!=null&&typeof r[c.name]=="number"&&(r[c.name]=c.enumeration[r[c.name]].toLowerCase());r.target==="latest"&&(r.target="esnext")}e.watchOptions&&(s.watchOptions={...e.watchOptions});let i=s.watchOptions;if(i){let o=[{name:"watchFile",enumeration:t.WatchFileKind},{name:"watchDirectory",enumeration:t.WatchDirectoryKind},{name:"fallbackPolling",enumeration:t.PollingWatchKind}];for(let c of o)if(i[c.name]!=null&&typeof i[c.name]=="number"){let d=c.enumeration[i[c.name]];i[c.name]=d.charAt(0).toLowerCase()+d.slice(1)}}return s.compileOnSave===!1&&delete s.compileOnSave,s}var yt=class Le extends Error{constructor(t,s,n){super(t.messageText),Object.setPrototypeOf(this,Le.prototype),this.name=Le.name,this.code=`TS ${t.code}`,this.diagnostic=t,this.result=n,this.tsconfigFile=s}};import{promises as ht}from"node:fs";import Y from"node:path";async function gt(e,t){let s=Y.dirname(Y.resolve(e)),n=t?.root?Y.resolve(t.root):null;for(;s;){let r=await Fs(s,t);if(r)return r;{if(n===s)break;let i=Y.dirname(s);if(i===s)break;s=i}}throw new Error(`no tsconfig file found for ${e}`)}async function Fs(e,t){let s=Y.join(e,"tsconfig.json"),n=Y.join(e,"jsconfig.json");if(t?.tsConfigPaths)return t.tsConfigPaths.has(s)?s:void 0;try{let r=await ht.stat(s);if(r.isFile()||r.isFIFO())return s}catch(r){if(r.code!=="ENOENT")throw r}try{let r=await ht.stat(n);if(r.isFile()||r.isFIFO())return n}catch(r){if(r.code!=="ENOENT")throw r}}import vt from"node:path";import Ns from"node:fs";import{fileURLToPath as Ds}from"node:url";function ge(){let e=Ls("../package.json");return xt(e)}function Ls(e){let t=Ds(new URL(".",import.meta.url));return vt.resolve(t,e)}function Vs(e){let t=vt.resolve(e,"package.json");return xt(t)}function xt(e){let t=Ns.readFileSync(e,{encoding:"utf8"});return JSON.parse(t)}function bt(e){let t=Vs(e),s={...t.devDependencies,...t.dependencies};return Object.keys(s).some(n=>n==="@sveltejs/kit")}import $t from"node:fs";import wt from"node:path";import Ms from"node:process";import{findUp as _t}from"find-up";async function L(e){let t=await Gs(e);if(t==="yarn@berry")return"yarn";if(t==="pnpm@6")return"pnpm";if(t!==null)return t;let s=Ms.env.npm_config_user_agent;return s===void 0?"npm":s.startsWith("yarn")?"yarn":s.startsWith("pnpm")?"pnpm":"npm"}var qs=["npm","bun","pnpm","pnpm@6","yarn","yarn@berry"],Et={"bun.lockb":"bun","pnpm-lock.yaml":"pnpm","yarn.lock":"yarn","package-lock.json":"npm","npm-shrinkwrap.json":"npm"};async function Gs(e){let t=null,s=await _t(Object.keys(Et),{cwd:e}),n;if(s?n=wt.resolve(s,"../package.json"):n=await _t("package.json",{cwd:e}),n&&$t.existsSync(n))try{let r=JSON.parse($t.readFileSync(n,"utf8"));if(typeof r.packageManager=="string"){let[i,o]=r.packageManager.replace(/^\^/,"").split("@");i==="yarn"&&Number.parseInt(o)>1?t="yarn@berry":i==="pnpm"&&Number.parseInt(o)<7?t="pnpm@6":qs.includes(i)&&(t=i)}}catch{}return!t&&s&&(t=Et[wt.basename(s)]),t}import Us from"node:path";async function qe(e,t){for(let[s,n]of Object.entries(t.paths)){s=kt(s);let r=n[0]&&kt(n[0]);if(!e.startsWith(s)||r===void 0)continue;let i=e.replace(s,r);return Us.resolve(t.absoluteBaseUrl,...i.split("/"))}}function kt(e){return e.endsWith("/*")?e.slice(0,-2):e}var Ge="$lib/components",Ue="$lib/utils",We="src/app.pcss",Be="tailwind.config.cjs";var Ct=!0,xe=(...e)=>St.bold.cyan(...e),be=k({$schema:R(y()),style:y(),tailwind:k({config:y(),css:y(),baseColor:y()}),aliases:k({components:Fe(y(),e=>e.replace(/[\u{0080}-\u{FFFF}]/gu,"")),utils:Fe(y(),e=>e.replace(/[\u{0080}-\u{FFFF}]/gu,""))}),typescript:R(I(),!0)}),zs=ye([be,k({resolvedPaths:k({tailwindConfig:y(),tailwindCss:y(),utils:y(),components:y()})})]);async function Z(e){let t=await Xs(e);return t?await ze(e,t):null}async function ze(e,t){if(bt(e)){let v=await L(e);await Bs(v==="npm"?"npx":v,["svelte-kit","sync"],{cwd:e})}let n=await gt(ve.resolve(e,"package.json"),{root:e});if(n===null){let v=t.typescript?"tsconfig.json":"jsconfig.json";throw new Error(`Failed to find ${xe(v)}.`)}let r=await dt(n),i=r.result.options.pathsBasePath,o=r.result.options.paths;if(i===void 0||o===void 0)throw new Error(`Specify a ${xe("paths")} field in your ${xe("tsconfig.json")} and define your path aliases.
3
-
4
- See: ${St.green("https://www.shadcn-svelte.com/docs/installation#setup-path-aliases")}`);let c={absoluteBaseUrl:i,paths:o},d=await qe(t.aliases.utils,c),l=await qe(t.aliases.components,c);return A(zs,{...t,resolvedPaths:{tailwindConfig:ve.resolve(e,t.tailwind.config),tailwindCss:ve.resolve(e,t.tailwind.css),utils:d,components:l}})}async function Xs(e){let t=ve.resolve(e,"components.json");try{let s=await Ws.readFile(t,{encoding:"utf8"}).catch(r=>null);if(!s)return null;let n=JSON.parse(s);return A(be,n)}catch{throw new Error(`Invalid configuration found in ${xe(t)}.`)}}function Q(){let{HTTP_PROXY:e,http_proxy:t}=process.env;return e||t}var ee=ls(At(),1);import{block as Zs,ConfirmPrompt as Qs,GroupMultiSelectPrompt as En,isCancel as er,MultiSelectPrompt as tr,PasswordPrompt as kn,SelectKeyPrompt as Sn,SelectPrompt as sr,TextPrompt as rr}from"@clack/core";import nr from"is-unicode-supported";import a from"chalk";import{isCancel as q}from"@clack/core";var Ke=nr(),E=(e,t)=>Ke?e:t,ir=E("\u25C6","*"),It=E("\u25A0","x"),jt=E("\u25B2","x"),$e=E("\u25C7","o"),ar=E("\u250C","T"),x=E("\u2502","|"),V=E("\u2514","\u2014"),Ye=E("\u25CF",">"),Ze=E("\u25CB"," "),or=E("\u25FB","[\u2022]"),Pt=E("\u25FC","[+]"),cr=E("\u25FB","[ ]"),Pn=E("\u25AA","\u2022"),Tt=E("\u2500","-"),lr=E("\u256E","+"),ur=E("\u251C","+"),pr=E("\u256F","+"),fr=E("\u25CF","\u2022"),dr=E("\u25C6","*"),mr=E("\u25B2","!"),yr=E("\u25A0","x"),we=e=>{switch(e){case"initial":case"active":return a.cyan(ir);case"cancel":return a.red(It);case"error":return a.yellow(jt);case"submit":return a.green($e)}},Qe=e=>{let{cursor:t,options:s,style:n}=e,r=e.maxItems===void 0?1/0:Math.max(e.maxItems,5),i=0;t>=i+r-3?i=Math.max(Math.min(t-r+3,s.length-r),0):t<i+2&&(i=Math.max(t-2,0));let o=r<s.length&&i>0,c=r<s.length&&i+r<s.length;return s.slice(i,i+r).map((d,l,v)=>{let h=l===0&&o,p=l===v.length-1&&c;return h||p?a.dim("..."):n(d,l+i===t)})},ce=e=>new rr({validate:e.validate,placeholder:e.placeholder,defaultValue:e.defaultValue,initialValue:e.initialValue,render(){let t=`${a.gray(x)}
5
- ${we(this.state)} ${e.message}
6
- `,s=e.placeholder?a.inverse(e.placeholder[0])+a.dim(e.placeholder.slice(1)):a.inverse(a.hidden("_")),n=this.value?this.valueWithCursor:s;switch(this.state){case"error":return`${t.trim()}
7
- ${a.yellow(x)} ${n}
8
- ${a.yellow(V)} ${a.yellow(this.error)}
9
- `;case"submit":return`${t}${a.gray(x)} ${a.dim(this.value||e.placeholder)}`;case"cancel":return`${t}${a.gray(x)} ${a.strikethrough(a.dim(this.value??""))}${this.value?.trim()?`
10
- `+a.gray(x):""}`;default:return`${t}${a.cyan(x)} ${n}
11
- ${a.cyan(V)}
12
- `}}}).prompt();var M=e=>{let t=e.active??"Yes",s=e.inactive??"No";return new Qs({active:t,inactive:s,initialValue:e.initialValue??!0,render(){let n=`${a.gray(x)}
13
- ${we(this.state)} ${e.message}
14
- `,r=this.value?t:s;switch(this.state){case"submit":return`${n}${a.gray(x)} ${a.dim(r)}`;case"cancel":return`${n}${a.gray(x)} ${a.strikethrough(a.dim(r))}
15
- ${a.gray(x)}`;default:return`${n}${a.cyan(x)} ${this.value?`${a.green(Ye)} ${t}`:`${a.dim(Ze)} ${a.dim(t)}`} ${a.dim("/")} ${this.value?`${a.dim(Ze)} ${a.dim(s)}`:`${a.green(Ye)} ${s}`}
16
- ${a.cyan(V)}
17
- `}}}).prompt()},et=e=>{let t=(s,n)=>{let r=s.label??String(s.value);switch(n){case"selected":return`${a.dim(r)}`;case"active":return`${a.green(Ye)} ${r} ${s.hint?a.dim(`(${s.hint})`):""}`;case"cancelled":return`${a.strikethrough(a.dim(r))}`;default:return`${a.dim(Ze)} ${a.dim(r)}`}};return new sr({options:e.options,initialValue:e.initialValue,render(){let s=`${a.gray(x)}
18
- ${we(this.state)} ${e.message}
19
- `;switch(this.state){case"submit":return`${s}${a.gray(x)} ${t(this.options[this.cursor],"selected")}`;case"cancel":return`${s}${a.gray(x)} ${t(this.options[this.cursor],"cancelled")}
20
- ${a.gray(x)}`;default:return`${s}${a.cyan(x)} ${Qe({cursor:this.cursor,options:this.options,maxItems:e.maxItems,style:(n,r)=>t(n,r?"active":"inactive")}).join(`
21
- ${a.cyan(x)} `)}
22
- ${a.cyan(V)}
23
- `}}}).prompt()};var _e=e=>{let t=(s,n)=>{let r=s.label??String(s.value);return n==="active"?`${a.cyan(or)} ${r} ${s.hint?a.dim(`(${s.hint})`):""}`:n==="selected"?`${a.green(Pt)} ${a.dim(r)}`:n==="cancelled"?`${a.strikethrough(a.dim(r))}`:n==="active-selected"?`${a.green(Pt)} ${r} ${s.hint?a.dim(`(${s.hint})`):""}`:n==="submitted"?`${a.dim(r)}`:`${a.dim(cr)} ${a.dim(r)}`};return new tr({options:e.options,initialValues:e.initialValues,required:e.required??!0,cursorAt:e.cursorAt,validate(s){if(this.required&&s.length===0)return`Please select at least one option.
24
- ${a.reset(a.dim(`Press ${a.gray(a.bgWhite(a.inverse(" space ")))} to select, ${a.gray(a.bgWhite(a.inverse(" enter ")))} to submit`))}`},render(){let s=`${a.gray(x)}
25
- ${we(this.state)} ${e.message}
26
- `,n=(r,i)=>{let o=this.value.includes(r.value);return i&&o?t(r,"active-selected"):o?t(r,"selected"):t(r,i?"active":"inactive")};switch(this.state){case"submit":return`${s}${a.gray(x)} ${this.options.filter(({value:r})=>this.value.includes(r)).map(r=>t(r,"submitted")).join(a.dim(", "))||a.dim("none")}`;case"cancel":{let r=this.options.filter(({value:i})=>this.value.includes(i)).map(i=>t(i,"cancelled")).join(a.dim(", "));return`${s}${a.gray(x)} ${r.trim()?`${r}
27
- ${a.gray(x)}`:""}`}case"error":{let r=this.error.split(`
28
- `).map((i,o)=>o===0?`${a.yellow(V)} ${a.yellow(i)}`:` ${i}`).join(`
29
- `);return s+a.yellow(x)+" "+Qe({options:this.options,cursor:this.cursor,maxItems:e.maxItems,style:n}).join(`
30
- ${a.yellow(x)} `)+`
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)} `)+`
31
29
  `+r+`
32
- `}default:return`${s}${a.cyan(x)} ${Qe({options:this.options,cursor:this.cursor,maxItems:e.maxItems,style:n}).join(`
33
- ${a.cyan(x)} `)}
34
- ${a.cyan(V)}
35
- `}}}).prompt()};var He=e=>e.replace(hr(),""),Ee=(e="",t="")=>{let s=`
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=`
36
34
  ${e}
37
35
  `.split(`
38
- `),n=He(t).length,r=Math.max(s.reduce((o,c)=>(c=He(c),c.length>o?c.length:o),0),n)+2,i=s.map(o=>`${a.gray(x)} ${a.dim(o)}${" ".repeat(r-He(o).length)}${a.gray(x)}`).join(`
39
- `);process.stdout.write(`${a.gray(x)}
40
- ${a.green($e)} ${a.reset(t)} ${a.gray(Tt.repeat(Math.max(r-n-1,1))+lr)}
41
- ${i}
42
- ${a.gray(ur+Tt.repeat(r+2)+pr)}
43
- `)},$=(e="")=>{process.stdout.write(`${a.gray(V)} ${a.red(e)}
44
-
45
- `)},Rt=(e="")=>{process.stdout.write(`${a.gray(ar)} ${e}
46
- `)},te=(e="")=>{process.stdout.write(`${a.gray(x)}
47
- ${a.gray(V)} ${e}
48
-
49
- `)},S={message:(e="",{symbol:t=a.gray(x)}={})=>{let s=[`${a.gray(x)}`];if(e){let[n,...r]=e.split(`
50
- `);s.push(`${t} ${n}`,...r.map(i=>`${a.gray(x)} ${i}`))}process.stdout.write(`${s.join(`
36
+ `),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)}
39
+ ${a}
40
+ ${i.gray(Rs+ft.repeat(r+2)+Ds)}
41
+ `)},S=(e="")=>{process.stdout.write(`${i.gray(M)} ${i.red(e)}
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}
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(`
51
49
  `)}
52
- `)},info:e=>{S.message(e,{symbol:a.blue(fr)})},success:e=>{S.message(e,{symbol:a.green(dr)})},step:e=>{S.message(e,{symbol:a.green($e)})},warn:e=>{S.message(e,{symbol:a.yellow(mr)})},warning:e=>{S.warn(e)},error:e=>{S.message(e,{symbol:a.red(yr)})}},F=()=>{let e=Ke?["\u25D2","\u25D0","\u25D3","\u25D1"]:["\u2022","o","O","0"],t=Ke?80:120,s,n,r=!1,i="",o=u=>{let f=u>1?"Something went wrong":"Canceled";r&&p(f,u)},c=()=>o(2),d=()=>o(1),l=()=>{process.on("uncaughtExceptionMonitor",c),process.on("unhandledRejection",c),process.on("SIGINT",d),process.on("SIGTERM",d),process.on("exit",o)},v=()=>{process.removeListener("uncaughtExceptionMonitor",c),process.removeListener("unhandledRejection",c),process.removeListener("SIGINT",d),process.removeListener("SIGTERM",d),process.removeListener("exit",o)},h=(u="")=>{r=!0,s=Zs(),i=u.replace(/\.+$/,""),process.stdout.write(`${a.gray(x)}
53
- `);let f=0,m=0;l(),n=setInterval(()=>{let w=a.magenta(e[f]),C=".".repeat(Math.floor(m)).slice(0,3);process.stdout.write(ee.cursor.move(-999,0)),process.stdout.write(ee.erase.down(1)),process.stdout.write(`${w} ${i}${C}`),f=f+1<e.length?f+1:0,m=m<e.length?m+.125:0},t)},p=(u="",f=0)=>{i=u??i,r=!1,clearInterval(n);let m=f===0?a.green($e):f===1?a.red(It):a.red(jt);process.stdout.write(ee.cursor.move(-999,0)),process.stdout.write(ee.erase.down(1)),process.stdout.write(`${m} ${i}
54
- `),v(),s()};return{start:h,stop:p,message:(u="")=>{i=u??i}}};function hr(){let e=["[\\u001B\\u009B][[\\]()#;?]*(?:(?:(?:(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]+)*|[a-zA-Z\\d]+(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]*)*)?\\u0007)","(?:(?:\\d{1,4}(?:;\\d{0,4})*)?[\\dA-PR-TZcf-nq-uy=><~]))"].join("|");return new RegExp(e,"g")}var Ft=async(e,t)=>{let s={},n=Object.keys(e);for(let r of n){let i=e[r],o=await i({results:s})?.catch(c=>{throw c});if(typeof t?.onCancel=="function"&&er(o)){s[r]="canceled",t.onCancel({results:s});continue}s[r]=o}return s};function se(e){typeof e=="string"&&($(e),process.exit(1)),e instanceof Error&&($(e.message),process.exit(1)),$("Something went wrong. Please try again."),process.exit(1)}import xr from"node:path";import br from"node-fetch";import{HttpsProxyAgent as $r}from"https-proxy-agent";var Nt=k({name:y(),dependencies:T(y()),registryDependencies:T(y()),files:T(y()),type:Re(["components:ui","components:component","components:example"])}),Dt=T(Nt),gr=ye([Nt,k({files:T(k({name:y(),content:y()}))})]),Lt=T(gr),Vt=T(k({name:y(),label:y()})),Mt=k({inlineColors:k({light:H(y(),y()),dark:H(y(),y())}),cssVars:k({light:H(y(),y()),dark:H(y(),y())}),inlineColorsTemplate:y(),cssVarsTemplate:y()});var qt=process.env.COMPONENTS_REGISTRY_URL??"https://shadcn-svelte.com";async function ke(){try{let[e]=await Ce(["index.json"]);return A(Dt,e)}catch{throw new Error("Failed to fetch components from registry.")}}async function Gt(){try{let[e]=await Ce(["styles/index.json"]);return A(Vt,e)}catch{throw new Error("Failed to fetch styles from registry.")}}async function Ut(){return[{name:"slate",label:"Slate"},{name:"gray",label:"Gray"},{name:"zinc",label:"Zinc"},{name:"neutral",label:"Neutral"},{name:"stone",label:"Stone"}]}async function Wt(e){try{let[t]=await Ce([`colors/${e}.json`]);return A(Mt,t)}catch{throw new Error("Failed to fetch base color from registry.")}}async function ue(e,t){let s=[];for(let n of t){let r=e.find(i=>i.name===n);if(r&&(s.push(r),r.registryDependencies)){let i=await ue(e,r.registryDependencies);s.push(...i)}}return s.filter((n,r,i)=>i.findIndex(o=>o.name===n.name)===r)}async function Se(e,t){try{let s=e.typescript?e.style:`${e.style}-js`,n=t.map(i=>`styles/${s}/${i.name}.json`),r=await Ce(n);return A(Lt,r)}catch{throw new Error("Failed to fetch tree from registry.")}}function pe(e,t,s){if(s&&t.type!=="components:ui")return s;let[n,r]=t.type.split(":");return!n||!r||!(n in e.resolvedPaths)?null:xr.join(e.resolvedPaths[n],r)}async function Ce(e){let t=Q(),s=t?new $r(t):void 0;try{return await Promise.all(e.map(async r=>await(await br(`${qt}/registry/${r}`,{agent:s})).json()))}catch(n){throw console.error(n),new Error(`Failed to fetch registry from ${qt}.`)}}function Oe(e,t){let s=e.replace(/\$lib\/registry\/[^/]+/g,t.aliases.components);return s=s.replace(/\$lib\/utils/g,t.aliases.utils),s}import Bt from"chalk";function re(){let e=ge(),t=Bt.bgHex("#FF5500").black(" shadcn-svelte "),s=Bt.gray(` v${e.version} `);Rt(t+s)}function ne(e,t=9){return e.reduce((s,n,r)=>r%t===0?`${s},
55
- ${n}`:`${s}, ${n}`)}var D=(...e)=>P.bold.cyan(...e),Er=k({components:R(T(y())),yes:I(),all:I(),overwrite:I(),cwd:y(),path:R(y()),nodep:I(),proxy:R(y())}),zt=new wr().command("add").description("add components to your project").argument("[components...]","name of components").option("--nodep","skips adding & installing package dependencies.",!1).option("-a, --all","install all components to your project.",!1).option("-y, --yes","skip confirmation prompt.",!1).option("-o, --overwrite","overwrite existing files.",!1).option("--proxy <proxy>","fetch components from registry using a proxy.").option("-c, --cwd <cwd>","the working directory. defaults to the current directory.",process.cwd()).option("-p, --path <path>","the path to add the component to.").action(async(e,t)=>{try{re();let s=A(Er,{components:e,...t}),n=W.resolve(s.cwd);Ae(n)||($(`The path ${P.cyan(n)} does not exist. Please try again.`),process.exit(1));let r=await Z(n);r||($(`Configuration file is missing. Please run ${P.green("init")} to create a ${D("components.json")} file.`),process.exit(1)),await kr(n,r,s),te(`${P.green("Success!")} Component installation completed.`)}catch(s){se(s)}});async function kr(e,t,s){let n=s.proxy??Q();if(n){let p=!!s.proxy;p&&(process.env.HTTP_PROXY=s.proxy),S.warn(`You are using a ${p?"provided":"system environment"} proxy: ${P.green(n)}`)}let r=await ke(),i=s.all?r.map(({name:p})=>p):s.components;if(i===void 0||i.length===0){let p=await _e({message:`Which ${D("components")} would you like to install?`,maxItems:10,options:r.map(({name:g,dependencies:u,registryDependencies:f})=>{let m=[...s.nodep?[]:u,...f];return{label:g,value:g,hint:m.length?`also installs: ${m.join(", ")}`:void 0}})});q(p)&&($("Operation cancelled."),process.exit(0)),i=p}else{let p=ne(i);S.step(`Components to install:
56
- ${P.gray(p)}`)}let o=await ue(r,i),c=await Se(t,o);c.length===0&&($("Selected components not found."),process.exit(0));let d=[],l=s.path?W.resolve(e,s.path):void 0;for(let p of c){if(i.includes(p.name)===!1)continue;let g=pe(t,p,l);if(g===null)continue;p.files.some(f=>Ae(W.resolve(g,p.name,f.name)))&&d.push(p.name)}if(s.overwrite===!1&&d.length>0){let p=ne(d);S.warn(`The following components ${P.bold.yellow("already exists")}:
57
- ${P.gray(p)}`);let g=await M({message:`Would you like to ${P.bold.red("overwrite")} all existing components?`,active:"Yes, overwrite everything",inactive:"No, let me decide individually",initialValue:!1});q(g)&&($("Operation cancelled."),process.exit(0)),s.overwrite=g}if(s.yes===!1){let p=await M({message:`Ready to install ${D("components")}${s.nodep?"?":` and ${D("dependencies")}?`}`,initialValue:!0});(q(p)||p===!1)&&($("Operation cancelled."),process.exit(0))}let v=new Set,h=new Set;for(let p of c){let g=pe(t,p,l);if(g===null)continue;Ae(g)||await tt.mkdir(g,{recursive:!0});let u=W.relative(process.cwd(),W.resolve(g,p.name));if(!s.overwrite&&d.includes(p.name)&&i.includes(p.name)){S.warn(`Component ${D(p.name)} already exists at ${P.gray(u)}`);let m=await M({message:`Would you like to ${P.bold.red("overwrite")} your existing ${D(p.name)} component?`});if(q(m)&&($("Operation cancelled."),process.exit(0)),m===!1)continue}let f=F();f.start(`Installing ${D(p.name)}`);for(let m of p.files){let w=W.resolve(g,p.name),C=W.resolve(g,p.name,m.name),Ie=Oe(m.content,t);Ae(w)||await tt.mkdir(w,{recursive:!0}),await tt.writeFile(C,Ie)}s.nodep?p.dependencies.forEach(m=>v.add(m)):p.dependencies.forEach(m=>h.add(m)),f.stop(`${D(p.name)} installed at ${P.gray(u)}`)}if(h.size>0){let p=F();p.start("Installing package dependencies");let g=await L(e);await _r(g,["add",...h],{cwd:e}),p.stop("Dependencies installed")}if(s.nodep){let p=ne([...v],7);S.warn(`Components have been installed ${P.bold.red("without")} the following ${D("dependencies")}:
58
- ${P.gray(p)}`)}}import{existsSync as Te,promises as ie}from"node:fs";import ae from"node:path";import fe from"chalk";import{Command as Cr}from"commander";import{execa as Or}from"execa";var Pe=`import { type ClassValue, clsx } from "clsx";
50
+ `)},info:e=>{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";
59
57
  import { twMerge } from "tailwind-merge";
60
58
  import { cubicOut } from "svelte/easing";
61
59
  import type { TransitionConfig } from "svelte/transition";
@@ -116,7 +114,7 @@ export const flyAndScale = (
116
114
  },
117
115
  easing: cubicOut
118
116
  };
119
- };`,Xt=`import { clsx } from "clsx";
117
+ };`,Pt=`import { clsx } from "clsx";
120
118
  import { twMerge } from "tailwind-merge";
121
119
  import { cubicOut } from "svelte/easing";
122
120
 
@@ -163,7 +161,7 @@ export const flyAndScale = (
163
161
  },
164
162
  easing: cubicOut
165
163
  };
166
- };`,Jt=`import { fontFamily } from "tailwindcss/defaultTheme";
164
+ };`,Ct=`import { fontFamily } from "tailwindcss/defaultTheme";
167
165
 
168
166
  /** @type {import('tailwindcss').Config} */
169
167
  const config = {
@@ -227,10 +225,10 @@ const config = {
227
225
  };
228
226
 
229
227
  export default config;
230
- `;var Ar=["tailwind-variants","clsx","tailwind-merge"],N=(...e)=>fe.bold.cyan(...e),Ht=new Cr().command("init").description("initialize your project and install dependencies").option("-c, --cwd <cwd>","the working directory. defaults to the current directory.",process.cwd()).action(async e=>{re();let t=ae.resolve(e.cwd);try{Te(t)||($(`The path ${fe.cyan(t)} does not exist. Please try again.`),process.exit(1));let s=await Z(t),n=await Pr(t,s);await Tr(t,n),(!n.aliases.components.startsWith("$lib")||!n.aliases.utils.startsWith("$lib"))&&Ee("Don't forget to add the import aliases you configured to your svelte.config.js!"),te(`${fe.green("Success!")} Project initialization completed.`)}catch(s){se(s)}});async function Pr(e,t=null){let s=await Gt(),n=await Ut(),r=await Ft({typescript:()=>M({message:`Would you like to use ${N("TypeScript")} (recommended)?`,initialValue:t?.typescript??Ct}),style:({})=>et({message:`Which ${N("style")} would you like to use?`,initialValue:t?.style,options:s.map(l=>({label:l.label,value:l.name}))}),tailwindBaseColor:({})=>et({message:`Which ${N("base color")} would you like to use?`,initialValue:t?.tailwind.baseColor,options:n.map(l=>({label:l.label,value:l.name}))}),tailwindCss:()=>ce({message:`Where is your ${N("global CSS")} file?`,initialValue:t?.tailwind.css??We,placeholder:We,validate:l=>{if(!Te(ae.resolve(e,l)))return`${fe.bold(l)} does not exist. Please enter a valid path.`}}),tailwindConfig:()=>ce({message:`Where is your ${N("Tailwind config")} located?`,initialValue:t?.tailwind.config??Be,placeholder:Be,validate:l=>{if(!Te(ae.resolve(e,l)))return`${fe.bold(l)} does not exist. Please enter a valid path.`}}),components:()=>ce({message:`Configure the import alias for ${N("components")}:`,initialValue:t?.aliases.components??Ge,placeholder:Ge}),utils:()=>ce({message:`Configure the import alias for ${N("utils")}:`,initialValue:t?.aliases.utils??Ue,placeholder:Ue})},{onCancel:()=>{$("Operation cancelled."),process.exit(0)}}),i=A(be,{$schema:"https://shadcn-svelte.com/schema.json",style:r.style,typescript:r.typescript,tailwind:{config:r.tailwindConfig,css:r.tailwindCss,baseColor:r.tailwindBaseColor},aliases:{utils:r.utils,components:r.components}});if(i.tailwind.config.endsWith(".cjs")){S.info(`Your tailwind config has been renamed to ${N("tailwind.config.js")}.`);let l=i.tailwind.config.replace(".cjs",".js");i.tailwind.config=l}let o=await ze(e,i),c=F();c.start(`Creating config file ${N("components.json")}`);let d=ae.resolve(e,"components.json");return await ie.writeFile(d,JSON.stringify(i,null,2),"utf8"),c.stop(`Config file ${N("components.json")} created`),o}async function Tr(e,t){let s=F();s.start("Initializing project");for(let[l,v]of Object.entries(t.resolvedPaths)){let h=ae.extname(v)?ae.dirname(v):v;l==="utils"&&v.endsWith("/utils")&&(h=h.replace(/\/utils$/,"")),!Te(h)&&l!=="utils"&&await ie.mkdir(h,{recursive:!0})}await ie.writeFile(t.resolvedPaths.tailwindConfig,Jt,"utf8");let n=t.resolvedPaths.tailwindConfig.replace(".js",".cjs");n.endsWith(".cjs")&&await ie.unlink(n).catch(l=>l);let r=await Wt(t.tailwind.baseColor);r&&await ie.writeFile(t.resolvedPaths.tailwindCss,r.cssVarsTemplate,"utf8");let i=t.resolvedPaths.utils+(t.typescript?".ts":".js"),o=t.typescript?Pe:Xt;await ie.writeFile(i,o,"utf8"),s.stop("Project initialized");let c=F();c.start("Installing dependencies");let d=await L(e);await Or(d,["add",...Ar],{cwd:e}),c.stop("Dependencies installed")}import{existsSync as de,promises as oe}from"fs";import G from"path";import O from"chalk";import{Command as Ir}from"commander";import{execa as jr}from"execa";var B=e=>O.bold.cyan(e),Rr=k({all:I(),components:R(T(y())),cwd:y(),proxy:R(y()),yes:I()}),Kt=new Ir().command("update").description("update components in your project").argument("[components...]","name of components").option("-a, --all","update all existing components.",!1).option("-y, --yes","skip confirmation prompt.",!1).option("--proxy <proxy>","fetch components from registry using a proxy.").option("-c, --cwd <cwd>","the working directory. defaults to the current directory.",process.cwd()).action(async(e,t)=>{re();try{let s=A(Rr,{components:e,...t}),n=G.resolve(s.cwd);de(n)||($(`The path ${O.cyan(n)} does not exist. Please try again.`),process.exit(1));let r=await Z(n);r||($(`Configuration file is missing. Please run ${O.green("init")} to create a ${B("components.json")} file.`),process.exit(1)),await Fr(n,r,s),Ee(`This action ${O.underline("does not")} update your ${B("dependencies")} to their ${O.bold("latest")} versions.
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.
231
229
 
232
- Consider updating them as well.`),te(`${O.green("Success!")} Component update completed.`)}catch(s){se(s)}});async function Fr(e,t,s){let n=s.components,r=s.proxy??Q();if(r){let u=!!s.proxy;u&&(process.env.HTTP_PROXY=s.proxy),S.warn(`You are using a ${u?"provided":"system environment"} proxy: ${O.green(r)}`)}let i=await ke(),o=G.resolve(t.resolvedPaths.components,"ui");de(o)||($(`Component directory ${O.cyan(o)} does not exist.`),process.exit(1));let c=[],d=await oe.readdir(o,{withFileTypes:!0});for(let u of d)if(u.isDirectory()){let f=i.find(m=>m.name===u.name);f&&c.push(f)}c.push({name:"utils",type:"components:ui",files:[],dependencies:[],registryDependencies:[]});let l=s.all?c:[];if(l.length===0&&n!==void 0&&(l=c.filter(u=>n.includes(u.name))),l.length===0){let u=await _e({message:"Which components would you like to update?",maxItems:10,options:c.map(f=>({label:f.name,value:f,hint:f.registryDependencies.length?`also updates: ${f.registryDependencies.join(", ")}`:void 0}))});q(u)&&($("Operation cancelled."),process.exit(0)),l=u}else{let u=ne(l.map(({name:f})=>f));S.step(`Components to update:
233
- ${O.gray(u)}`)}if(s.yes===!1){let u=await M({message:`Ready to update ${B("components")}? ${O.gray("(Make sure you have committed your changes before proceeding!)")}`,initialValue:!0});(q(u)||u===!1)&&($("Operation cancelled."),process.exit(0))}if(l.find(u=>u.name==="utils")){let u=t.typescript?".ts":".js",f=t.resolvedPaths.utils+u;de(f)||($(`Failed to find ${B("utils")} at ${O.cyan(f)}`),process.exit(1)),await oe.writeFile(f,Pe)}let v=await ue(i,l.map(u=>u.name)),h=(await Se(t,v)).sort((u,f)=>u.name.localeCompare(f.name)),p={},g=new Set;for(let u of h){let f=F();f.start(`Updating ${B(u.name)}`);let m=pe(t,u);if(!m)continue;de(m)||await oe.mkdir(m,{recursive:!0});let w=G.resolve(m,u.name);de(w)||await oe.mkdir(w,{recursive:!0});for(let j of u.files){let es=G.resolve(m,u.name,j.name),ts=Oe(j.content,t);await oe.writeFile(es,ts)}let C=await oe.readdir(w),Ie=u.files.map(j=>j.name),st=C.filter(j=>!Ie.includes(j)).map(j=>G.resolve(m,u.name,j));st.length>0&&(p[u.name]=st),u.dependencies.forEach(j=>g.add(j));let Qt=G.relative(process.cwd(),G.resolve(m,u.name));f.stop(`${B(u.name)} updated at ${O.gray(Qt)}`)}if(g.size>0){let u=F();u.start("Installing new package dependencies");let f=await L(e);await jr(f,["add",...g],{cwd:e}),u.stop("Dependencies installed")}for(let[u,f]of Object.entries(p))S.warn(`The ${B(u)} component does not use the following files:
234
- ${f.map(m=>O.white(`- ${O.gray(G.relative(e,m))}`)).join(`
235
- `)}`);Object.keys(p).length>0&&S.message(O.bold("You may want to delete them."))}process.on("SIGINT",()=>process.exit(0));process.on("SIGTERM",()=>process.exit(0));var Zt=process.versions.node,Dr=parseInt(Zt.split(".")[0],10),Yt=18;Dr<Yt&&(console.error(`Node.js v${Zt} is out of date and unsupported!`),console.error(`Please use Node.js v${Yt} or higher.`),process.exit(1));async function Lr(){console.clear();let e=ge(),t=new Nr().name("shadcn-svelte").description("Add shadcn-svelte components to your project").version(e.version||"0.0.0","-v, --version","display the version number");t.addCommand(Ht).addCommand(zt).addCommand(Kt),t.parse()}Lr();
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();
236
234
  //# sourceMappingURL=index.js.map