shadcn-svelte 0.9.2 → 0.9.3

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,7 +1,7 @@
1
1
  #!/usr/bin/env node
2
- var ts=Object.create;var rt=Object.defineProperty;var ss=Object.getOwnPropertyDescriptor;var rs=Object.getOwnPropertyNames;var ns=Object.getPrototypeOf,is=Object.prototype.hasOwnProperty;var as=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports);var os=(e,t,s,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let r of rs(t))!is.call(e,r)&&r!==s&&rt(e,r,{get:()=>t[r],enumerable:!(n=ss(t,r))||n.enumerable});return e};var cs=(e,t,s)=>(s=e!=null?ts(ns(e)):{},os(t||!e||!e.__esModule?rt(s,"default",{value:e,enumerable:!0}):s,e));var Ot=as(($n,Ct)=>{"use strict";var Xe="\x1B",b=`${Xe}[`,Js="\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`},Hs={up:(e=1)=>`${b}S`.repeat(e),down:(e=1)=>`${b}T`.repeat(e)},Ks={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}};Ct.exports={cursor:Je,scroll:Hs,erase:Ks,beep:Js}});import{Command as Fr}from"commander";import{existsSync as Ae,promises as tt}from"node:fs";import B from"node:path";import P from"chalk";import{Command as $r}from"commander";import{execa as wr}from"execa";var ls=class extends Error{issues;constructor(e){super(e[0].message),this.name="ValiError",this.issues=e}},Vr=Symbol("brand");function G(e,t){return Array.isArray(e)?[void 0,e]:[e,t]}var me;function us(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 ps;function fs(e){return ps?.get(e)}var ds;function ms(e){return ds?.get(e)}var ys;function hs(e,t){return ys?.get(e)?.get(t)}function nt(e,t,s,n,r){let i=t.message??hs(s,r.lang)??(e?ms(r.lang):null)??n?.message??fs(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 gs(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=gs(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]=G(t,s);return[e,i,o]}let[n,r]=G(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 vs(e){return typeof e.default=="function"?e.default():e.default}function T(e,t,s){let[n,r]=G(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]=G(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=vs(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]=G(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 xs(e,t,s,n){if(typeof t=="object"&&!Array.isArray(t)){let[o,c]=G(s,n);return[e,t,o,c]}let[r,i]=G(t,s);return[y(),e,r,i]}var bs=["__proto__","prototype","constructor"];function H(e,t,s,n){let[r,i,o,c]=xs(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(!bs.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,us(s));if(n.issues)throw new ls(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 Gs}from"node:fs";import ve from"node:path";import kt from"chalk";import{execa as Bs}from"execa";import $s from"path";import _ from"path";import{promises as ws}from"fs";import lt from"path";import Ps from"path";var Ur=$s.sep;var Gr=Symbol("singleComment"),Br=Symbol("multiComment");var _s=new RegExp("\\"+_.posix.sep,"g"),Es=new RegExp("\\"+_.sep,"g"),Ne=new Map,pt="**/*",Ve=[".ts",".tsx",".mts",".cts"],ks=`\\.(?:${Ve.map(e=>e.substring(1)).join("|")})`,Ss=new Function("path","return import(path).then(m => m.default)");async function ft(){try{return Ss("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 ws.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(_s,_.sep):e}function Me(e){return _.posix.sep!==_.sep&&e.includes(_.sep)?e.replace(Es,_.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 Cs(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 Os(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=As(o);return Ne.set(o,d),d.test(e)})}function As(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+=ks),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 Ts(r,i,t),s?.set(n,r)}return r=Os(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,Ps.dirname(r),void 0,r);Is(h,e);let p={tsconfigFile:e,tsconfig:js(h,t),result:h};return n?.set(e,p),p}async function Ts(e,t,s){if(!e.tsconfig.references)return;let n=Cs(e);e.referenced=await Promise.all(n.map(r=>mt(r,t,s)))}function Is(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 js(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 Rs(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 Rs(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 Fs from"node:fs";import{fileURLToPath as Ns}from"node:url";function ge(){let e=Ds("../package.json");return xt(e)}function Ds(e){let t=Ns(new URL(".",import.meta.url));return vt.resolve(t,e)}function Ls(e){let t=vt.resolve(e,"package.json");return xt(t)}function xt(e){let t=Fs.readFileSync(e,{encoding:"utf8"});return JSON.parse(t)}function bt(e){let t=Ls(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 Vs from"node:process";import{findUp as _t}from"find-up";async function L(e){let t=await qs(e);if(t==="yarn@berry")return"yarn";if(t==="pnpm@6")return"pnpm";if(t!==null)return t;let s=Vs.env.npm_config_user_agent;return s===void 0?"npm":s.startsWith("yarn")?"yarn":s.startsWith("pnpm")?"pnpm":"npm"}var Ms=["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 qs(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":Ms.includes(i)&&(t=i)}}catch{}return!t&&s&&(t=Et[wt.basename(s)]),t}import{createMatchPath as Us}from"tsconfig-paths";async function qe(e,t){return Us(t.absoluteBaseUrl,t.paths)(e,void 0,()=>!0,[".ts",".svelte",".js"])}var Ue="$lib/components",Ge="$lib/utils",Be="src/app.pcss",We="tailwind.config.cjs";var St=!0,xe=(...e)=>kt.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)}),Ws=ye([be,k({resolvedPaths:k({tailwindConfig:y(),tailwindCss:y(),utils:y(),components:y()})})]);async function Z(e){let t=await zs(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.
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
3
 
4
- See: ${kt.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(Ws,{...t,resolvedPaths:{tailwindConfig:ve.resolve(e,t.tailwind.config),tailwindCss:ve.resolve(e,t.tailwind.css),utils:d,components:l}})}async function zs(e){let t=ve.resolve(e,"components.json");try{let s=await Gs.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=cs(Ot(),1);import{block as Ys,ConfirmPrompt as Zs,GroupMultiSelectPrompt as _n,isCancel as Qs,MultiSelectPrompt as er,PasswordPrompt as En,SelectKeyPrompt as kn,SelectPrompt as tr,TextPrompt as sr}from"@clack/core";import rr from"is-unicode-supported";import a from"chalk";import{isCancel as q}from"@clack/core";var Ke=rr(),E=(e,t)=>Ke?e:t,nr=E("\u25C6","*"),Tt=E("\u25A0","x"),It=E("\u25B2","x"),$e=E("\u25C7","o"),ir=E("\u250C","T"),x=E("\u2502","|"),V=E("\u2514","\u2014"),Ye=E("\u25CF",">"),Ze=E("\u25CB"," "),ar=E("\u25FB","[\u2022]"),At=E("\u25FC","[+]"),or=E("\u25FB","[ ]"),An=E("\u25AA","\u2022"),Pt=E("\u2500","-"),cr=E("\u256E","+"),lr=E("\u251C","+"),ur=E("\u256F","+"),pr=E("\u25CF","\u2022"),fr=E("\u25C6","*"),dr=E("\u25B2","!"),mr=E("\u25A0","x"),we=e=>{switch(e){case"initial":case"active":return a.cyan(nr);case"cancel":return a.red(Tt);case"error":return a.yellow(It);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 sr({validate:e.validate,placeholder:e.placeholder,defaultValue:e.defaultValue,initialValue:e.initialValue,render(){let t=`${a.gray(x)}
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
5
  ${we(this.state)} ${e.message}
6
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
7
  ${a.yellow(x)} ${n}
@@ -9,18 +9,18 @@ ${a.yellow(V)} ${a.yellow(this.error)}
9
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
10
  `+a.gray(x):""}`;default:return`${t}${a.cyan(x)} ${n}
11
11
  ${a.cyan(V)}
12
- `}}}).prompt();var M=e=>{let t=e.active??"Yes",s=e.inactive??"No";return new Zs({active:t,inactive:s,initialValue:e.initialValue??!0,render(){let n=`${a.gray(x)}
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
13
  ${we(this.state)} ${e.message}
14
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
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
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 tr({options:e.options,initialValue:e.initialValue,render(){let s=`${a.gray(x)}
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
18
  ${we(this.state)} ${e.message}
19
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
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
21
  ${a.cyan(x)} `)}
22
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(ar)} ${r} ${s.hint?a.dim(`(${s.hint})`):""}`:n==="selected"?`${a.green(At)} ${a.dim(r)}`:n==="cancelled"?`${a.strikethrough(a.dim(r))}`:n==="active-selected"?`${a.green(At)} ${r} ${s.hint?a.dim(`(${s.hint})`):""}`:n==="submitted"?`${a.dim(r)}`:`${a.dim(or)} ${a.dim(r)}`};return new er({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.
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
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
25
  ${we(this.state)} ${e.message}
26
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}
@@ -32,30 +32,30 @@ ${a.yellow(x)} `)+`
32
32
  `}default:return`${s}${a.cyan(x)} ${Qe({options:this.options,cursor:this.cursor,maxItems:e.maxItems,style:n}).join(`
33
33
  ${a.cyan(x)} `)}
34
34
  ${a.cyan(V)}
35
- `}}}).prompt()};var He=e=>e.replace(yr(),""),Ee=(e="",t="")=>{let s=`
35
+ `}}}).prompt()};var He=e=>e.replace(hr(),""),Ee=(e="",t="")=>{let s=`
36
36
  ${e}
37
37
  `.split(`
38
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
39
  `);process.stdout.write(`${a.gray(x)}
40
- ${a.green($e)} ${a.reset(t)} ${a.gray(Pt.repeat(Math.max(r-n-1,1))+cr)}
40
+ ${a.green($e)} ${a.reset(t)} ${a.gray(Tt.repeat(Math.max(r-n-1,1))+lr)}
41
41
  ${i}
42
- ${a.gray(lr+Pt.repeat(r+2)+ur)}
42
+ ${a.gray(ur+Tt.repeat(r+2)+pr)}
43
43
  `)},$=(e="")=>{process.stdout.write(`${a.gray(V)} ${a.red(e)}
44
44
 
45
- `)},jt=(e="")=>{process.stdout.write(`${a.gray(ir)} ${e}
45
+ `)},Rt=(e="")=>{process.stdout.write(`${a.gray(ar)} ${e}
46
46
  `)},te=(e="")=>{process.stdout.write(`${a.gray(x)}
47
47
  ${a.gray(V)} ${e}
48
48
 
49
49
  `)},S={message:(e="",{symbol:t=a.gray(x)}={})=>{let s=[`${a.gray(x)}`];if(e){let[n,...r]=e.split(`
50
50
  `);s.push(`${t} ${n}`,...r.map(i=>`${a.gray(x)} ${i}`))}process.stdout.write(`${s.join(`
51
51
  `)}
52
- `)},info:e=>{S.message(e,{symbol:a.blue(pr)})},success:e=>{S.message(e,{symbol:a.green(fr)})},step:e=>{S.message(e,{symbol:a.green($e)})},warn:e=>{S.message(e,{symbol:a.yellow(dr)})},warning:e=>{S.warn(e)},error:e=>{S.message(e,{symbol:a.red(mr)})}},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=Ys(),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(Tt):a.red(It);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 yr(){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 Rt=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"&&Qs(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 vr from"node:path";import xr from"node-fetch";import{HttpsProxyAgent as br}from"https-proxy-agent";var Ft=k({name:y(),dependencies:T(y()),registryDependencies:T(y()),files:T(y()),type:Re(["components:ui","components:component","components:example"])}),Nt=T(Ft),hr=ye([Ft,k({files:T(k({name:y(),content:y()}))})]),Dt=T(hr),Lt=T(k({name:y(),label:y()})),Vt=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 Mt=process.env.COMPONENTS_REGISTRY_URL??"https://shadcn-svelte.com";async function ke(){try{let[e]=await Ce(["index.json"]);return A(Nt,e)}catch{throw new Error("Failed to fetch components from registry.")}}async function qt(){try{let[e]=await Ce(["styles/index.json"]);return A(Lt,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 Gt(e){try{let[t]=await Ce([`colors/${e}.json`]);return A(Vt,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(Dt,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 in e.resolvedPaths?vr.join(e.resolvedPaths[n],r):null}async function Ce(e){let t=Q(),s=t?new br(t):void 0;try{return await Promise.all(e.map(async r=>await(await xr(`${Mt}/registry/${r}`,{agent:s})).json()))}catch(n){throw console.error(n),new Error(`Failed to fetch registry from ${Mt}.`)}}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} `);jt(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),_r=k({components:R(T(y())),yes:I(),all:I(),overwrite:I(),cwd:y(),path:R(y()),nodep:I(),proxy:R(y())}),Wt=new $r().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(_r,{components:e,...t}),n=B.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 Er(n,r,s),te(`${P.green("Success!")} Component installation completed.`)}catch(s){se(s)}});async function Er(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?B.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(B.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=B.relative(process.cwd(),B.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=B.resolve(g,p.name),C=B.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 wr(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 Sr}from"commander";import{execa as Cr}from"execa";var Pe=`import { type ClassValue, clsx } from "clsx";
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";
59
59
  import { twMerge } from "tailwind-merge";
60
60
  import { cubicOut } from "svelte/easing";
61
61
  import type { TransitionConfig } from "svelte/transition";
@@ -116,7 +116,7 @@ export const flyAndScale = (
116
116
  },
117
117
  easing: cubicOut
118
118
  };
119
- };`,zt=`import { clsx } from "clsx";
119
+ };`,Xt=`import { clsx } from "clsx";
120
120
  import { twMerge } from "tailwind-merge";
121
121
  import { cubicOut } from "svelte/easing";
122
122
 
@@ -163,7 +163,7 @@ export const flyAndScale = (
163
163
  },
164
164
  easing: cubicOut
165
165
  };
166
- };`,Xt=`import { fontFamily } from "tailwindcss/defaultTheme";
166
+ };`,Jt=`import { fontFamily } from "tailwindcss/defaultTheme";
167
167
 
168
168
  /** @type {import('tailwindcss').Config} */
169
169
  const config = {
@@ -227,10 +227,10 @@ const config = {
227
227
  };
228
228
 
229
229
  export default config;
230
- `;var Or=["tailwind-variants","clsx","tailwind-merge"],N=(...e)=>fe.bold.cyan(...e),Jt=new Sr().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 Ar(t,s);await Pr(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 Ar(e,t=null){let s=await qt(),n=await Ut(),r=await Rt({typescript:()=>M({message:`Would you like to use ${N("TypeScript")} (recommended)?`,initialValue:t?.typescript??St}),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??Be,placeholder:Be,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??We,placeholder:We,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??Ue,placeholder:Ue}),utils:()=>ce({message:`Configure the import alias for ${N("utils")}:`,initialValue:t?.aliases.utils??Ge,placeholder:Ge})},{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 Pr(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,Xt,"utf8");let n=t.resolvedPaths.tailwindConfig.replace(".js",".cjs");n.endsWith(".cjs")&&await ie.unlink(n).catch(l=>l);let r=await Gt(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:zt;await ie.writeFile(i,o,"utf8"),s.stop("Project initialized");let c=F();c.start("Installing dependencies");let d=await L(e);await Cr(d,["add",...Or],{cwd:e}),c.stop("Dependencies installed")}import{existsSync as de,promises as oe}from"fs";import U from"path";import O from"chalk";import{Command as Tr}from"commander";import{execa as Ir}from"execa";var W=e=>O.bold.cyan(e),jr=k({all:I(),components:R(T(y())),cwd:y(),proxy:R(y()),yes:I()}),Ht=new Tr().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(jr,{components:e,...t}),n=U.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 ${W("components.json")} file.`),process.exit(1)),await Rr(n,r,s),Ee(`This action ${O.underline("does not")} update your ${W("dependencies")} to their ${O.bold("latest")} versions.
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.
231
231
 
232
- Consider updating them as well.`),te(`${O.green("Success!")} Component update completed.`)}catch(s){se(s)}});async function Rr(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=U.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 ${W("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 ${W("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 ${W(u.name)}`);let m=pe(t,u);if(!m)continue;de(m)||await oe.mkdir(m,{recursive:!0});let w=U.resolve(m,u.name);de(w)||await oe.mkdir(w,{recursive:!0});for(let j of u.files){let Qt=U.resolve(m,u.name,j.name),es=Oe(j.content,t);await oe.writeFile(Qt,es)}let C=await oe.readdir(w),Ie=u.files.map(j=>j.name),st=C.filter(j=>!Ie.includes(j)).map(j=>U.resolve(m,u.name,j));st.length>0&&(p[u.name]=st),u.dependencies.forEach(j=>g.add(j));let Zt=U.relative(process.cwd(),U.resolve(m,u.name));f.stop(`${W(u.name)} updated at ${O.gray(Zt)}`)}if(g.size>0){let u=F();u.start("Installing new package dependencies");let f=await L(e);await Ir(f,["add",...g],{cwd:e}),u.stop("Dependencies installed")}for(let[u,f]of Object.entries(p))S.warn(`The ${W(u)} component does not use the following files:
234
- ${f.map(m=>O.white(`- ${O.gray(U.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 Yt=process.versions.node,Nr=parseInt(Yt.split(".")[0],10),Kt=18;Nr<Kt&&(console.error(`Node.js v${Yt} is out of date and unsupported!`),console.error(`Please use Node.js v${Kt} or higher.`),process.exit(1));async function Dr(){console.clear();let e=ge(),t=new Fr().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(Jt).addCommand(Wt).addCommand(Ht),t.parse()}Dr();
232
+ Consider updating them as well.`),te(`${O.green("Success!")} Component update completed.`)}catch(s){se(s)}});async function Fr(e,t,s){let n=s.components,r=s.proxy??Q();if(r){let u=!!s.proxy;u&&(process.env.HTTP_PROXY=s.proxy),S.warn(`You are using a ${u?"provided":"system environment"} proxy: ${O.green(r)}`)}let i=await ke(),o=G.resolve(t.resolvedPaths.components,"ui");de(o)||($(`Component directory ${O.cyan(o)} does not exist.`),process.exit(1));let c=[],d=await oe.readdir(o,{withFileTypes:!0});for(let u of d)if(u.isDirectory()){let f=i.find(m=>m.name===u.name);f&&c.push(f)}c.push({name:"utils",type:"components:ui",files:[],dependencies:[],registryDependencies:[]});let l=s.all?c:[];if(l.length===0&&n!==void 0&&(l=c.filter(u=>n.includes(u.name))),l.length===0){let u=await _e({message:"Which components would you like to update?",maxItems:10,options:c.map(f=>({label:f.name,value:f,hint:f.registryDependencies.length?`also updates: ${f.registryDependencies.join(", ")}`:void 0}))});q(u)&&($("Operation cancelled."),process.exit(0)),l=u}else{let u=ne(l.map(({name:f})=>f));S.step(`Components to update:
233
+ ${O.gray(u)}`)}if(s.yes===!1){let u=await M({message:`Ready to update ${B("components")}? ${O.gray("(Make sure you have committed your changes before proceeding!)")}`,initialValue:!0});(q(u)||u===!1)&&($("Operation cancelled."),process.exit(0))}if(l.find(u=>u.name==="utils")){let u=t.typescript?".ts":".js",f=t.resolvedPaths.utils+u;de(f)||($(`Failed to find ${B("utils")} at ${O.cyan(f)}`),process.exit(1)),await oe.writeFile(f,Pe)}let v=await ue(i,l.map(u=>u.name)),h=(await Se(t,v)).sort((u,f)=>u.name.localeCompare(f.name)),p={},g=new Set;for(let u of h){let f=F();f.start(`Updating ${B(u.name)}`);let m=pe(t,u);if(!m)continue;de(m)||await oe.mkdir(m,{recursive:!0});let w=G.resolve(m,u.name);de(w)||await oe.mkdir(w,{recursive:!0});for(let j of u.files){let es=G.resolve(m,u.name,j.name),ts=Oe(j.content,t);await oe.writeFile(es,ts)}let C=await oe.readdir(w),Ie=u.files.map(j=>j.name),st=C.filter(j=>!Ie.includes(j)).map(j=>G.resolve(m,u.name,j));st.length>0&&(p[u.name]=st),u.dependencies.forEach(j=>g.add(j));let Qt=G.relative(process.cwd(),G.resolve(m,u.name));f.stop(`${B(u.name)} updated at ${O.gray(Qt)}`)}if(g.size>0){let u=F();u.start("Installing new package dependencies");let f=await L(e);await jr(f,["add",...g],{cwd:e}),u.stop("Dependencies installed")}for(let[u,f]of Object.entries(p))S.warn(`The ${B(u)} component does not use the following files:
234
+ ${f.map(m=>O.white(`- ${O.gray(G.relative(e,m))}`)).join(`
235
+ `)}`);Object.keys(p).length>0&&S.message(O.bold("You may want to delete them."))}process.on("SIGINT",()=>process.exit(0));process.on("SIGTERM",()=>process.exit(0));var Zt=process.versions.node,Dr=parseInt(Zt.split(".")[0],10),Yt=18;Dr<Yt&&(console.error(`Node.js v${Zt} is out of date and unsupported!`),console.error(`Please use Node.js v${Yt} or higher.`),process.exit(1));async function Lr(){console.clear();let e=ge(),t=new Nr().name("shadcn-svelte").description("Add shadcn-svelte components to your project").version(e.version||"0.0.0","-v, --version","display the version number");t.addCommand(Ht).addCommand(zt).addCommand(Kt),t.parse()}Lr();
236
236
  //# sourceMappingURL=index.js.map