shadcn-svelte 1.2.7 → 1.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -45,8 +45,8 @@ declare const resolvedConfigSchema: z.ZodObject<{
45
45
  "inverted-translucent": "inverted-translucent";
46
46
  }>>;
47
47
  menuAccent: z.ZodDefault<z.ZodEnum<{
48
- subtle: "subtle";
49
48
  bold: "bold";
49
+ subtle: "subtle";
50
50
  }>>;
51
51
  }, z.core.$strip>;
52
52
  //#endregion
package/dist/index.mjs CHANGED
@@ -1,5 +1,5 @@
1
1
  #!/usr/bin/env node
2
- import{n as e,r as t,t as n}from"./chunk-BMbogX1O.mjs";import{S as r,f as i,g as a,i as o,n as s,o as c,r as l,s as u,t as d,x as f,y as p}from"./libraries-tdyxKhrQ.mjs";import{i as m,n as h,r as g,t as _}from"./transform-icons-BeDxN90c.mjs";import{a as v,i as y,n as b,r as x,t as S}from"./constants-D_Gv5Vlp.mjs";import{a as C,d as w,l as ee,m as te,n as ne,p as re,t as ie,u as T,y as ae}from"./preset-CK0X-mk-.mjs";import{a as oe,d as se,f as E,g as ce,h as le,l as ue,m as de,p as fe,u as pe}from"./schema-CSus-uXy.mjs";import{n as me}from"./css-DrLymJRV.mjs";import{t as he}from"./src-D1e-SXHI.mjs";import"./magic-string.es-Ze7NMroB.mjs";import{t as ge}from"./transform-strip-types-A1LmF7Cf.mjs";import{t as _e}from"./transform-imports-2DuSD-rc.mjs";import{t as ve}from"./transform-menu-DefRSc1H.mjs";import{i as ye,n as be,r as xe}from"./transform-font-CDGOYmpF.mjs";import{t as Se}from"./transformers-CaLerm_q.mjs";import Ce,{createRequire as we}from"node:module";import D,{stdin as Te,stdout as Ee}from"node:process";import{Command as De,Option as Oe}from"commander";import O,{dirname as ke,isAbsolute as Ae,join as je,resolve as Me}from"node:path";import k,{existsSync as A,lstatSync as Ne,promises as j,readdirSync as Pe}from"node:fs";import Fe from"fs";import{fileURLToPath as Ie,pathToFileURL as Le}from"node:url";import{spawn as Re}from"child_process";import{delimiter as ze,dirname as Be,normalize as Ve,resolve as He}from"path";import{cwd as Ue}from"process";import{PassThrough as We}from"stream";import Ge from"readline";import Ke,{constants as qe}from"node:fs/promises";import{promisify as Je,stripVTControlCharacters as Ye,styleText as M}from"node:util";import*as Xe from"node:readline";import Ze from"node:readline";import{ReadStream as Qe}from"node:tty";import{fetch as $e}from"node-fetch-native";import{createProxy as et}from"node-fetch-native/proxy";import N,{parse as tt}from"postcss";import{twMerge as nt}from"tailwind-merge";import*as rt from"svelte/compiler";import it,{execFile as at}from"node:child_process";import ot from"node:os";import{Buffer as st}from"node:buffer";var P=t(n(((e,t)=>{let n=process||{},r=n.argv||[],i=n.env||{},a=!(i.NO_COLOR||r.includes(`--no-color`))&&(!!i.FORCE_COLOR||r.includes(`--color`)||n.platform===`win32`||(n.stdout||{}).isTTY&&i.TERM!==`dumb`||!!i.CI),o=(e,t,n=e)=>r=>{let i=``+r,a=i.indexOf(t,e.length);return~a?e+s(i,t,n,a)+t:e+i+t},s=(e,t,n,r)=>{let i=``,a=0;do i+=e.substring(a,r)+n,a=r+t.length,r=e.indexOf(t,a);while(~r);return i+e.substring(a)},c=(e=a)=>{let t=e?o:()=>String;return{isColorSupported:e,reset:t(`\x1B[0m`,`\x1B[0m`),bold:t(`\x1B[1m`,`\x1B[22m`,`\x1B[22m\x1B[1m`),dim:t(`\x1B[2m`,`\x1B[22m`,`\x1B[22m\x1B[2m`),italic:t(`\x1B[3m`,`\x1B[23m`),underline:t(`\x1B[4m`,`\x1B[24m`),inverse:t(`\x1B[7m`,`\x1B[27m`),hidden:t(`\x1B[8m`,`\x1B[28m`),strikethrough:t(`\x1B[9m`,`\x1B[29m`),black:t(`\x1B[30m`,`\x1B[39m`),red:t(`\x1B[31m`,`\x1B[39m`),green:t(`\x1B[32m`,`\x1B[39m`),yellow:t(`\x1B[33m`,`\x1B[39m`),blue:t(`\x1B[34m`,`\x1B[39m`),magenta:t(`\x1B[35m`,`\x1B[39m`),cyan:t(`\x1B[36m`,`\x1B[39m`),white:t(`\x1B[37m`,`\x1B[39m`),gray:t(`\x1B[90m`,`\x1B[39m`),bgBlack:t(`\x1B[40m`,`\x1B[49m`),bgRed:t(`\x1B[41m`,`\x1B[49m`),bgGreen:t(`\x1B[42m`,`\x1B[49m`),bgYellow:t(`\x1B[43m`,`\x1B[49m`),bgBlue:t(`\x1B[44m`,`\x1B[49m`),bgMagenta:t(`\x1B[45m`,`\x1B[49m`),bgCyan:t(`\x1B[46m`,`\x1B[49m`),bgWhite:t(`\x1B[47m`,`\x1B[49m`),blackBright:t(`\x1B[90m`,`\x1B[39m`),redBright:t(`\x1B[91m`,`\x1B[39m`),greenBright:t(`\x1B[92m`,`\x1B[39m`),yellowBright:t(`\x1B[93m`,`\x1B[39m`),blueBright:t(`\x1B[94m`,`\x1B[39m`),magentaBright:t(`\x1B[95m`,`\x1B[39m`),cyanBright:t(`\x1B[96m`,`\x1B[39m`),whiteBright:t(`\x1B[97m`,`\x1B[39m`),bgBlackBright:t(`\x1B[100m`,`\x1B[49m`),bgRedBright:t(`\x1B[101m`,`\x1B[49m`),bgGreenBright:t(`\x1B[102m`,`\x1B[49m`),bgYellowBright:t(`\x1B[103m`,`\x1B[49m`),bgBlueBright:t(`\x1B[104m`,`\x1B[49m`),bgMagentaBright:t(`\x1B[105m`,`\x1B[49m`),bgCyanBright:t(`\x1B[106m`,`\x1B[49m`),bgWhiteBright:t(`\x1B[107m`,`\x1B[49m`)}};t.exports=c(),t.exports.createColors=c}))(),1);const ct=e=>typeof e==`object`&&!!e,lt=(e,t)=>Object.assign(Error(`[${e}]: ${t}`),{code:e}),ut=`ERR_INVALID_PACKAGE_CONFIG`,dt=`ERR_INVALID_PACKAGE_TARGET`,ft=/^\d+$/,pt=/^(\.{1,2}|node_modules)$/i,mt=/\/|\\/;var ht=(e=>(e.Export=`exports`,e.Import=`imports`,e))(ht||{});const gt=(e,t,n,r,i)=>{if(t==null)return[];if(typeof t==`string`){let[n,...r]=t.split(mt);if(n===`..`||r.some(e=>pt.test(e)))throw lt(dt,`Invalid "${e}" target "${t}" defined in the package config`);return[i?t.replace(/\*/g,i):t]}if(Array.isArray(t))return t.flatMap(t=>gt(e,t,n,r,i));if(ct(t)){for(let a of Object.keys(t)){if(ft.test(a))throw lt(ut,`Cannot contain numeric property keys`);if(a===`default`||r.includes(a))return gt(e,t[a],n,r,i)}return[]}throw lt(dt,`Invalid "${e}" target "${t}"`)},_t=(e,t)=>{let n=e.indexOf(`*`),r=t.indexOf(`*`);return n===r?t.length>e.length:r>n};function vt(e,t){if(!t.includes(`*`)&&e.hasOwnProperty(t))return[t];let n,r;for(let i of Object.keys(e))if(i.includes(`*`)){let[e,a,o]=i.split(`*`);if(o===void 0&&t.startsWith(e)&&t.endsWith(a)){let o=t.slice(e.length,-a.length||void 0);o&&(!n||_t(n,i))&&(n=i,r=o)}}return[n,r]}const yt=e=>Object.keys(e).reduce((e,t)=>{let n=t===``||t[0]!==`.`;if(e===void 0||e===n)return n;throw lt(ut,`"exports" cannot contain some keys starting with "." and some not`)},void 0),bt=/^\w+:/,xt=(e,t,n)=>{if(!e)throw Error(`"exports" is required`);t=t===``?`.`:`./${t}`,(typeof e==`string`||Array.isArray(e)||ct(e)&&yt(e))&&(e={".":e});let[r,i]=vt(e,t),a=gt(ht.Export,e[r],t,n,i);if(a.length===0)throw lt(`ERR_PACKAGE_PATH_NOT_EXPORTED`,t===`.`?`No "exports" main defined`:`Package subpath '${t}' is not defined by "exports"`);for(let e of a)if(!e.startsWith(`./`)&&!bt.test(e))throw lt(dt,`Invalid "exports" target "${e}" defined in the package config`);return a};var St=Object.defineProperty,F=(e,t)=>St(e,`name`,{value:t,configurable:!0});function I(e){return e.startsWith(`\\\\?\\`)?e:e.replace(/\\/g,`/`)}F(I,`slash`);const Ct=F(e=>{let t=k[e];return(n,...r)=>{let i=`${e}:${r.join(`:`)}`,a=n?.get(i);return a===void 0&&(a=Reflect.apply(t,k,r),n?.set(i,a)),a}},`cacheFs`),L=Ct(`existsSync`),wt=Ct(`readFileSync`),Tt=Ct(`statSync`),Et=F((e,t,n)=>{for(;;){let r=O.posix.join(e,t);if(L(n,r))return r;let i=O.dirname(e);if(i===e)return;e=i}},`findUp`),Dt=/^\.{1,2}(\/.*)?$/,Ot=F(e=>{let t=I(e);return Dt.test(t)?t:`./${t}`},`normalizeRelativePath`);function kt(e,t=!1){let n=e.length,r=0,i=``,a=0,o=16,s=0,c=0,l=0,u=0,d=0;function f(t,n){let i=0,a=0;for(;i<t;){let t=e.charCodeAt(r);if(t>=48&&t<=57)a=a*16+t-48;else if(t>=65&&t<=70)a=a*16+t-65+10;else if(t>=97&&t<=102)a=a*16+t-97+10;else break;r++,i++}return i<t&&(a=-1),a}F(f,`scanHexDigits`);function p(e){r=e,i=``,a=0,o=16,d=0}F(p,`setPosition`);function m(){let t=r;if(e.charCodeAt(r)===48)r++;else for(r++;r<e.length&&Mt(e.charCodeAt(r));)r++;if(r<e.length&&e.charCodeAt(r)===46)if(r++,r<e.length&&Mt(e.charCodeAt(r)))for(r++;r<e.length&&Mt(e.charCodeAt(r));)r++;else return d=3,e.substring(t,r);let n=r;if(r<e.length&&(e.charCodeAt(r)===69||e.charCodeAt(r)===101))if(r++,(r<e.length&&e.charCodeAt(r)===43||e.charCodeAt(r)===45)&&r++,r<e.length&&Mt(e.charCodeAt(r))){for(r++;r<e.length&&Mt(e.charCodeAt(r));)r++;n=r}else d=3;return e.substring(t,n)}F(m,`scanNumber`);function h(){let t=``,i=r;for(;;){if(r>=n){t+=e.substring(i,r),d=2;break}let a=e.charCodeAt(r);if(a===34){t+=e.substring(i,r),r++;break}if(a===92){if(t+=e.substring(i,r),r++,r>=n){d=2;break}switch(e.charCodeAt(r++)){case 34:t+=`"`;break;case 92:t+=`\\`;break;case 47:t+=`/`;break;case 98:t+=`\b`;break;case 102:t+=`\f`;break;case 110:t+=`
2
+ import{n as e,r as t,t as n}from"./chunk-BMbogX1O.mjs";import{S as r,f as i,g as a,i as o,n as s,o as c,r as l,s as u,t as d,x as f,y as p}from"./libraries-tdyxKhrQ.mjs";import{i as m,n as h,r as g,t as _}from"./transform-icons-BeDxN90c.mjs";import{a as v,i as y,n as b,r as x,t as S}from"./constants-D_Gv5Vlp.mjs";import{a as C,d as w,l as ee,m as te,n as ne,p as re,t as ie,u as T,y as ae}from"./preset-DZGU31yg.mjs";import{a as oe,d as se,f as E,g as ce,h as le,l as ue,m as de,p as fe,u as pe}from"./schema-D5x96-U7.mjs";import{n as me}from"./css-DrLymJRV.mjs";import{t as he}from"./src-D1e-SXHI.mjs";import"./magic-string.es-Ze7NMroB.mjs";import{t as ge}from"./transform-strip-types-A1LmF7Cf.mjs";import{t as _e}from"./transform-imports-2DuSD-rc.mjs";import{t as ve}from"./transform-menu-DefRSc1H.mjs";import{i as ye,n as be,r as xe}from"./transform-font-CDGOYmpF.mjs";import{t as Se}from"./transformers-CaLerm_q.mjs";import Ce,{createRequire as we}from"node:module";import D,{stdin as Te,stdout as Ee}from"node:process";import{Command as De,Option as Oe}from"commander";import O,{dirname as ke,isAbsolute as Ae,join as je,resolve as Me}from"node:path";import k,{existsSync as A,lstatSync as Ne,promises as j,readdirSync as Pe}from"node:fs";import Fe from"fs";import{fileURLToPath as Ie,pathToFileURL as Le}from"node:url";import{spawn as Re}from"child_process";import{delimiter as ze,dirname as Be,normalize as Ve,resolve as He}from"path";import{cwd as Ue}from"process";import{PassThrough as We}from"stream";import Ge from"readline";import Ke,{constants as qe}from"node:fs/promises";import{promisify as Je,stripVTControlCharacters as Ye,styleText as M}from"node:util";import*as Xe from"node:readline";import Ze from"node:readline";import{ReadStream as Qe}from"node:tty";import{fetch as $e}from"node-fetch-native";import{createProxy as et}from"node-fetch-native/proxy";import N,{parse as tt}from"postcss";import{twMerge as nt}from"tailwind-merge";import*as rt from"svelte/compiler";import it,{execFile as at}from"node:child_process";import ot from"node:os";import{Buffer as st}from"node:buffer";var P=t(n(((e,t)=>{let n=process||{},r=n.argv||[],i=n.env||{},a=!(i.NO_COLOR||r.includes(`--no-color`))&&(!!i.FORCE_COLOR||r.includes(`--color`)||n.platform===`win32`||(n.stdout||{}).isTTY&&i.TERM!==`dumb`||!!i.CI),o=(e,t,n=e)=>r=>{let i=``+r,a=i.indexOf(t,e.length);return~a?e+s(i,t,n,a)+t:e+i+t},s=(e,t,n,r)=>{let i=``,a=0;do i+=e.substring(a,r)+n,a=r+t.length,r=e.indexOf(t,a);while(~r);return i+e.substring(a)},c=(e=a)=>{let t=e?o:()=>String;return{isColorSupported:e,reset:t(`\x1B[0m`,`\x1B[0m`),bold:t(`\x1B[1m`,`\x1B[22m`,`\x1B[22m\x1B[1m`),dim:t(`\x1B[2m`,`\x1B[22m`,`\x1B[22m\x1B[2m`),italic:t(`\x1B[3m`,`\x1B[23m`),underline:t(`\x1B[4m`,`\x1B[24m`),inverse:t(`\x1B[7m`,`\x1B[27m`),hidden:t(`\x1B[8m`,`\x1B[28m`),strikethrough:t(`\x1B[9m`,`\x1B[29m`),black:t(`\x1B[30m`,`\x1B[39m`),red:t(`\x1B[31m`,`\x1B[39m`),green:t(`\x1B[32m`,`\x1B[39m`),yellow:t(`\x1B[33m`,`\x1B[39m`),blue:t(`\x1B[34m`,`\x1B[39m`),magenta:t(`\x1B[35m`,`\x1B[39m`),cyan:t(`\x1B[36m`,`\x1B[39m`),white:t(`\x1B[37m`,`\x1B[39m`),gray:t(`\x1B[90m`,`\x1B[39m`),bgBlack:t(`\x1B[40m`,`\x1B[49m`),bgRed:t(`\x1B[41m`,`\x1B[49m`),bgGreen:t(`\x1B[42m`,`\x1B[49m`),bgYellow:t(`\x1B[43m`,`\x1B[49m`),bgBlue:t(`\x1B[44m`,`\x1B[49m`),bgMagenta:t(`\x1B[45m`,`\x1B[49m`),bgCyan:t(`\x1B[46m`,`\x1B[49m`),bgWhite:t(`\x1B[47m`,`\x1B[49m`),blackBright:t(`\x1B[90m`,`\x1B[39m`),redBright:t(`\x1B[91m`,`\x1B[39m`),greenBright:t(`\x1B[92m`,`\x1B[39m`),yellowBright:t(`\x1B[93m`,`\x1B[39m`),blueBright:t(`\x1B[94m`,`\x1B[39m`),magentaBright:t(`\x1B[95m`,`\x1B[39m`),cyanBright:t(`\x1B[96m`,`\x1B[39m`),whiteBright:t(`\x1B[97m`,`\x1B[39m`),bgBlackBright:t(`\x1B[100m`,`\x1B[49m`),bgRedBright:t(`\x1B[101m`,`\x1B[49m`),bgGreenBright:t(`\x1B[102m`,`\x1B[49m`),bgYellowBright:t(`\x1B[103m`,`\x1B[49m`),bgBlueBright:t(`\x1B[104m`,`\x1B[49m`),bgMagentaBright:t(`\x1B[105m`,`\x1B[49m`),bgCyanBright:t(`\x1B[106m`,`\x1B[49m`),bgWhiteBright:t(`\x1B[107m`,`\x1B[49m`)}};t.exports=c(),t.exports.createColors=c}))(),1);const ct=e=>typeof e==`object`&&!!e,lt=(e,t)=>Object.assign(Error(`[${e}]: ${t}`),{code:e}),ut=`ERR_INVALID_PACKAGE_CONFIG`,dt=`ERR_INVALID_PACKAGE_TARGET`,ft=/^\d+$/,pt=/^(\.{1,2}|node_modules)$/i,mt=/\/|\\/;var ht=(e=>(e.Export=`exports`,e.Import=`imports`,e))(ht||{});const gt=(e,t,n,r,i)=>{if(t==null)return[];if(typeof t==`string`){let[n,...r]=t.split(mt);if(n===`..`||r.some(e=>pt.test(e)))throw lt(dt,`Invalid "${e}" target "${t}" defined in the package config`);return[i?t.replace(/\*/g,i):t]}if(Array.isArray(t))return t.flatMap(t=>gt(e,t,n,r,i));if(ct(t)){for(let a of Object.keys(t)){if(ft.test(a))throw lt(ut,`Cannot contain numeric property keys`);if(a===`default`||r.includes(a))return gt(e,t[a],n,r,i)}return[]}throw lt(dt,`Invalid "${e}" target "${t}"`)},_t=(e,t)=>{let n=e.indexOf(`*`),r=t.indexOf(`*`);return n===r?t.length>e.length:r>n};function vt(e,t){if(!t.includes(`*`)&&e.hasOwnProperty(t))return[t];let n,r;for(let i of Object.keys(e))if(i.includes(`*`)){let[e,a,o]=i.split(`*`);if(o===void 0&&t.startsWith(e)&&t.endsWith(a)){let o=t.slice(e.length,-a.length||void 0);o&&(!n||_t(n,i))&&(n=i,r=o)}}return[n,r]}const yt=e=>Object.keys(e).reduce((e,t)=>{let n=t===``||t[0]!==`.`;if(e===void 0||e===n)return n;throw lt(ut,`"exports" cannot contain some keys starting with "." and some not`)},void 0),bt=/^\w+:/,xt=(e,t,n)=>{if(!e)throw Error(`"exports" is required`);t=t===``?`.`:`./${t}`,(typeof e==`string`||Array.isArray(e)||ct(e)&&yt(e))&&(e={".":e});let[r,i]=vt(e,t),a=gt(ht.Export,e[r],t,n,i);if(a.length===0)throw lt(`ERR_PACKAGE_PATH_NOT_EXPORTED`,t===`.`?`No "exports" main defined`:`Package subpath '${t}' is not defined by "exports"`);for(let e of a)if(!e.startsWith(`./`)&&!bt.test(e))throw lt(dt,`Invalid "exports" target "${e}" defined in the package config`);return a};var St=Object.defineProperty,F=(e,t)=>St(e,`name`,{value:t,configurable:!0});function I(e){return e.startsWith(`\\\\?\\`)?e:e.replace(/\\/g,`/`)}F(I,`slash`);const Ct=F(e=>{let t=k[e];return(n,...r)=>{let i=`${e}:${r.join(`:`)}`,a=n?.get(i);return a===void 0&&(a=Reflect.apply(t,k,r),n?.set(i,a)),a}},`cacheFs`),L=Ct(`existsSync`),wt=Ct(`readFileSync`),Tt=Ct(`statSync`),Et=F((e,t,n)=>{for(;;){let r=O.posix.join(e,t);if(L(n,r))return r;let i=O.dirname(e);if(i===e)return;e=i}},`findUp`),Dt=/^\.{1,2}(\/.*)?$/,Ot=F(e=>{let t=I(e);return Dt.test(t)?t:`./${t}`},`normalizeRelativePath`);function kt(e,t=!1){let n=e.length,r=0,i=``,a=0,o=16,s=0,c=0,l=0,u=0,d=0;function f(t,n){let i=0,a=0;for(;i<t;){let t=e.charCodeAt(r);if(t>=48&&t<=57)a=a*16+t-48;else if(t>=65&&t<=70)a=a*16+t-65+10;else if(t>=97&&t<=102)a=a*16+t-97+10;else break;r++,i++}return i<t&&(a=-1),a}F(f,`scanHexDigits`);function p(e){r=e,i=``,a=0,o=16,d=0}F(p,`setPosition`);function m(){let t=r;if(e.charCodeAt(r)===48)r++;else for(r++;r<e.length&&Mt(e.charCodeAt(r));)r++;if(r<e.length&&e.charCodeAt(r)===46)if(r++,r<e.length&&Mt(e.charCodeAt(r)))for(r++;r<e.length&&Mt(e.charCodeAt(r));)r++;else return d=3,e.substring(t,r);let n=r;if(r<e.length&&(e.charCodeAt(r)===69||e.charCodeAt(r)===101))if(r++,(r<e.length&&e.charCodeAt(r)===43||e.charCodeAt(r)===45)&&r++,r<e.length&&Mt(e.charCodeAt(r))){for(r++;r<e.length&&Mt(e.charCodeAt(r));)r++;n=r}else d=3;return e.substring(t,n)}F(m,`scanNumber`);function h(){let t=``,i=r;for(;;){if(r>=n){t+=e.substring(i,r),d=2;break}let a=e.charCodeAt(r);if(a===34){t+=e.substring(i,r),r++;break}if(a===92){if(t+=e.substring(i,r),r++,r>=n){d=2;break}switch(e.charCodeAt(r++)){case 34:t+=`"`;break;case 92:t+=`\\`;break;case 47:t+=`/`;break;case 98:t+=`\b`;break;case 102:t+=`\f`;break;case 110:t+=`
3
3
  `;break;case 114:t+=`\r`;break;case 116:t+=` `;break;case 117:let e=f(4);e>=0?t+=String.fromCharCode(e):d=4;break;default:d=5}i=r;continue}if(a>=0&&a<=31)if(jt(a)){t+=e.substring(i,r),d=2;break}else d=6;r++}return t}F(h,`scanString`);function g(){if(i=``,d=0,a=r,c=s,u=l,r>=n)return a=n,o=17;let t=e.charCodeAt(r);if(At(t)){do r++,i+=String.fromCharCode(t),t=e.charCodeAt(r);while(At(t));return o=15}if(jt(t))return r++,i+=String.fromCharCode(t),t===13&&e.charCodeAt(r)===10&&(r++,i+=`
4
4
  `),s++,l=r,o=14;switch(t){case 123:return r++,o=1;case 125:return r++,o=2;case 91:return r++,o=3;case 93:return r++,o=4;case 58:return r++,o=6;case 44:return r++,o=5;case 34:return r++,i=h(),o=10;case 47:let c=r-1;if(e.charCodeAt(r+1)===47){for(r+=2;r<n&&!jt(e.charCodeAt(r));)r++;return i=e.substring(c,r),o=12}if(e.charCodeAt(r+1)===42){r+=2;let t=n-1,a=!1;for(;r<t;){let t=e.charCodeAt(r);if(t===42&&e.charCodeAt(r+1)===47){r+=2,a=!0;break}r++,jt(t)&&(t===13&&e.charCodeAt(r)===10&&r++,s++,l=r)}return a||(r++,d=1),i=e.substring(c,r),o=13}return i+=String.fromCharCode(t),r++,o=16;case 45:if(i+=String.fromCharCode(t),r++,r===n||!Mt(e.charCodeAt(r)))return o=16;case 48:case 49:case 50:case 51:case 52:case 53:case 54:case 55:case 56:case 57:return i+=m(),o=11;default:for(;r<n&&_(t);)r++,t=e.charCodeAt(r);if(a!==r){switch(i=e.substring(a,r),i){case`true`:return o=8;case`false`:return o=9;case`null`:return o=7}return o=16}return i+=String.fromCharCode(t),r++,o=16}}F(g,`scanNext`);function _(e){if(At(e)||jt(e))return!1;switch(e){case 125:case 93:case 123:case 91:case 34:case 58:case 44:case 47:return!1}return!0}F(_,`isUnknownContentCharacter`);function v(){let e;do e=g();while(e>=12&&e<=15);return e}return F(v,`scanNextNonTrivia`),{setPosition:p,getPosition:F(()=>r,`getPosition`),scan:t?v:g,getToken:F(()=>o,`getToken`),getTokenValue:F(()=>i,`getTokenValue`),getTokenOffset:F(()=>a,`getTokenOffset`),getTokenLength:F(()=>r-a,`getTokenLength`),getTokenStartLine:F(()=>c,`getTokenStartLine`),getTokenStartCharacter:F(()=>a-u,`getTokenStartCharacter`),getTokenError:F(()=>d,`getTokenError`)}}F(kt,`createScanner`);function At(e){return e===32||e===9}F(At,`isWhiteSpace`);function jt(e){return e===10||e===13}F(jt,`isLineBreak`);function Mt(e){return e>=48&&e<=57}F(Mt,`isDigit`);var Nt;(function(e){e[e.lineFeed=10]=`lineFeed`,e[e.carriageReturn=13]=`carriageReturn`,e[e.space=32]=`space`,e[e._0=48]=`_0`,e[e._1=49]=`_1`,e[e._2=50]=`_2`,e[e._3=51]=`_3`,e[e._4=52]=`_4`,e[e._5=53]=`_5`,e[e._6=54]=`_6`,e[e._7=55]=`_7`,e[e._8=56]=`_8`,e[e._9=57]=`_9`,e[e.a=97]=`a`,e[e.b=98]=`b`,e[e.c=99]=`c`,e[e.d=100]=`d`,e[e.e=101]=`e`,e[e.f=102]=`f`,e[e.g=103]=`g`,e[e.h=104]=`h`,e[e.i=105]=`i`,e[e.j=106]=`j`,e[e.k=107]=`k`,e[e.l=108]=`l`,e[e.m=109]=`m`,e[e.n=110]=`n`,e[e.o=111]=`o`,e[e.p=112]=`p`,e[e.q=113]=`q`,e[e.r=114]=`r`,e[e.s=115]=`s`,e[e.t=116]=`t`,e[e.u=117]=`u`,e[e.v=118]=`v`,e[e.w=119]=`w`,e[e.x=120]=`x`,e[e.y=121]=`y`,e[e.z=122]=`z`,e[e.A=65]=`A`,e[e.B=66]=`B`,e[e.C=67]=`C`,e[e.D=68]=`D`,e[e.E=69]=`E`,e[e.F=70]=`F`,e[e.G=71]=`G`,e[e.H=72]=`H`,e[e.I=73]=`I`,e[e.J=74]=`J`,e[e.K=75]=`K`,e[e.L=76]=`L`,e[e.M=77]=`M`,e[e.N=78]=`N`,e[e.O=79]=`O`,e[e.P=80]=`P`,e[e.Q=81]=`Q`,e[e.R=82]=`R`,e[e.S=83]=`S`,e[e.T=84]=`T`,e[e.U=85]=`U`,e[e.V=86]=`V`,e[e.W=87]=`W`,e[e.X=88]=`X`,e[e.Y=89]=`Y`,e[e.Z=90]=`Z`,e[e.asterisk=42]=`asterisk`,e[e.backslash=92]=`backslash`,e[e.closeBrace=125]=`closeBrace`,e[e.closeBracket=93]=`closeBracket`,e[e.colon=58]=`colon`,e[e.comma=44]=`comma`,e[e.dot=46]=`dot`,e[e.doubleQuote=34]=`doubleQuote`,e[e.minus=45]=`minus`,e[e.openBrace=123]=`openBrace`,e[e.openBracket=91]=`openBracket`,e[e.plus=43]=`plus`,e[e.slash=47]=`slash`,e[e.formFeed=12]=`formFeed`,e[e.tab=9]=`tab`})(Nt||={}),Array(20).fill(0).map((e,t)=>` `.repeat(t)),Array(200).fill(0).map((e,t)=>`
5
5
  `+` `.repeat(t)),Array(200).fill(0).map((e,t)=>`\r`+` `.repeat(t)),Array(200).fill(0).map((e,t)=>`\r
@@ -135,5 +135,5 @@ ${t?M(`cyan`,Gi):``}
135
135
 
136
136
  This CLI version requires Tailwind v4 and Svelte v5 for the ${R(`init`)} command.\n\nYou have two options:\n1. Update Tailwind CSS to v4 and try again.\n2. Use ${R(`shadcn-svelte@1.0.0-next.10`)} that supports initializing projects with Tailwind v3.\n\nReferences:\nTailwind v4 Guide: ${P.default.underline(`${y}/docs/migration/tailwind-v4`)}\nLegacy Tailwind v3 Docs: ${P.default.underline(`${v}/docs`)}\n\n`)}:t&&r?{ok:!1,error:m(`Initializing a project with Tailwind v3 and Svelte v4 is not supported.\n\nThis CLI version requires Tailwind v4 and Svelte v5 for the ${R(`init`)} command.\n\nPlease use ${R(`shadcn-svelte@0.14`)} that supports Tailwind v3 + Svelte v4.\n\n`)}:!n||!i?{ok:!1,error:m(`This CLI version requires Tailwind CSS v4 and Svelte v5 to initialize a project.
137
137
  `)}:{ok:!0}}let tc;function nc(){try{return k.statSync(`/.dockerenv`),!0}catch{return!1}}function rc(){try{return k.readFileSync(`/proc/self/cgroup`,`utf8`).includes(`docker`)}catch{return!1}}function ic(){return tc===void 0&&(tc=nc()||rc()),tc}let ac;const oc=()=>{try{return k.statSync(`/run/.containerenv`),!0}catch{return!1}};function sc(){return ac===void 0&&(ac=oc()||ic()),ac}const cc=()=>{if(D.platform!==`linux`)return!1;if(ot.release().toLowerCase().includes(`microsoft`))return!sc();try{if(k.readFileSync(`/proc/version`,`utf8`).toLowerCase().includes(`microsoft`))return!sc()}catch{}return k.existsSync(`/proc/sys/fs/binfmt_misc/WSLInterop`)||k.existsSync(`/run/WSL`)?!sc():!1};var lc=D.env.__IS_WSL_TEST__?cc:cc();const uc=Je(it.execFile),dc=()=>`${D.env.SYSTEMROOT||D.env.windir||String.raw`C:\Windows`}\\System32\\WindowsPowerShell\\v1.0\\powershell.exe`,$=async(e,t={})=>{let{powerShellPath:n,...r}=t,i=$.encodeCommand(e);return uc(n??dc(),[...$.argumentsPrefix,i],{encoding:`utf8`,...r})};$.argumentsPrefix=[`-NoProfile`,`-NonInteractive`,`-ExecutionPolicy`,`Bypass`,`-EncodedCommand`],$.encodeCommand=e=>st.from(e,`utf16le`).toString(`base64`),$.escapeArgument=e=>`'${String(e).replaceAll(`'`,`''`)}'`;function fc(e){for(let t of e.split(`
138
- `)){if(/^\s*#/.test(t))continue;let e=/^\s*root\s*=\s*(?<mountPoint>"[^"]*"|'[^']*'|[^#]*)/.exec(t);if(e)return e.groups.mountPoint.trim().replaceAll(/^["']|["']$/g,``)}}const pc=Je(it.execFile),mc=(()=>{let e=`/mnt/`,t;return async function(){if(t)return t;let n=`/etc/wsl.conf`,r=!1;try{await Ke.access(n,qe.F_OK),r=!0}catch{}if(!r)return e;let i=fc(await Ke.readFile(n,{encoding:`utf8`}));return i===void 0?e:(t=i,t=t.endsWith(`/`)?t:`${t}/`,t)}})(),hc=lc?async()=>`${await mc()}c/Windows/System32/WindowsPowerShell/v1.0/powershell.exe`:dc;let gc;const _c=async()=>(gc??=(async()=>{try{let e=await hc();return await Ke.access(e,qe.X_OK),!0}catch{return!1}})(),gc),vc=async()=>{let e=await hc(),{stdout:t}=await $(String.raw`(Get-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\Shell\Associations\UrlAssociations\http\UserChoice").ProgId`,{powerShellPath:e});return t.trim()},yc=async e=>{if(/^[a-z]+:\/\//i.test(e))return e;try{let{stdout:t}=await pc(`wslpath`,[`-aw`,e],{encoding:`utf8`});return t.trim()}catch{return e}};function bc(e,t,n){let r=n=>Object.defineProperty(e,t,{value:n,enumerable:!0,writable:!0});return Object.defineProperty(e,t,{configurable:!0,enumerable:!0,get(){let e=n();return r(e),e},set(e){r(e)}}),e}const xc=Je(at);async function Sc(){if(D.platform!==`darwin`)throw Error(`macOS only`);let{stdout:e}=await xc(`defaults`,[`read`,`com.apple.LaunchServices/com.apple.launchservices.secure`,`LSHandlers`]),t=/LSHandlerRoleAll = "(?!-)(?<id>[^"]+?)";\s+?LSHandlerURLScheme = (?:http|https);/.exec(e)?.groups.id??`com.apple.Safari`;return t===`com.apple.safari`?`com.apple.Safari`:t}const Cc=Je(at);async function wc(e,{humanReadableOutput:t=!0,signal:n}={}){if(D.platform!==`darwin`)throw Error(`macOS only`);let r=t?[]:[`-ss`],i={};n&&(i.signal=n);let{stdout:a}=await Cc(`osascript`,[`-e`,e,r],i);return a.trim()}async function Tc(e){return wc(`tell application "Finder" to set app_path to application file id "${e}" as string\ntell application "System Events" to get value of property list item "CFBundleName" of property list file (app_path & ":Contents:Info.plist")`)}const Ec=Je(at),Dc={MSEdgeHTM:{name:`Edge`,id:`com.microsoft.edge`},MSEdgeBHTML:{name:`Edge Beta`,id:`com.microsoft.edge.beta`},MSEdgeDHTML:{name:`Edge Dev`,id:`com.microsoft.edge.dev`},AppXq0fevzme2pys62n3e0fbqa7peapykr8v:{name:`Edge`,id:`com.microsoft.edge.old`},ChromeHTML:{name:`Chrome`,id:`com.google.chrome`},ChromeBHTML:{name:`Chrome Beta`,id:`com.google.chrome.beta`},ChromeDHTML:{name:`Chrome Dev`,id:`com.google.chrome.dev`},ChromiumHTM:{name:`Chromium`,id:`org.chromium.Chromium`},BraveHTML:{name:`Brave`,id:`com.brave.Browser`},BraveBHTML:{name:`Brave Beta`,id:`com.brave.Browser.beta`},BraveDHTML:{name:`Brave Dev`,id:`com.brave.Browser.dev`},BraveSSHTM:{name:`Brave Nightly`,id:`com.brave.Browser.nightly`},FirefoxURL:{name:`Firefox`,id:`org.mozilla.firefox`},OperaStable:{name:`Opera`,id:`com.operasoftware.Opera`},VivaldiHTM:{name:`Vivaldi`,id:`com.vivaldi.Vivaldi`},"IE.HTTP":{name:`Internet Explorer`,id:`com.microsoft.ie`}},Oc=new Map(Object.entries(Dc));var kc=class extends Error{};async function Ac(e=Ec){let{stdout:t}=await e(`reg`,[`QUERY`,` HKEY_CURRENT_USER\\Software\\Microsoft\\Windows\\Shell\\Associations\\UrlAssociations\\http\\UserChoice`,`/v`,`ProgId`]),n=/ProgId\s*REG_SZ\s*(?<id>\S+)/.exec(t);if(!n)throw new kc(`Cannot find Windows browser in stdout: ${JSON.stringify(t)}`);let{id:r}=n.groups,i=r.lastIndexOf(`.`),a=r.lastIndexOf(`-`),o=i===-1?void 0:r.slice(0,i),s=a===-1?void 0:r.slice(0,a);return Dc[r]??Dc[o]??Dc[s]??{name:r,id:r}}const jc=Je(at),Mc=e=>e.toLowerCase().replaceAll(/(?:^|\s|-)\S/g,e=>e.toUpperCase());async function Nc(){if(D.platform===`darwin`){let e=await Sc();return{name:await Tc(e),id:e}}if(D.platform===`linux`){let{stdout:e}=await jc(`xdg-mime`,[`query`,`default`,`x-scheme-handler/http`]),t=e.trim();return{name:Mc(t.replace(/.desktop$/,``).replace(`-`,` `)),id:t}}if(D.platform===`win32`)return Ac();throw Error(`Only macOS, Linux, and Windows are supported`)}var Pc=!!(D.env.SSH_CONNECTION||D.env.SSH_CLIENT||D.env.SSH_TTY);const Fc=Symbol(`fallbackAttempt`),Ic=import.meta.url?O.dirname(Ie(import.meta.url)):``,Lc=O.join(Ic,`xdg-open`),{platform:Rc,arch:zc}=D,Bc=async(e,t)=>{if(e.length===0)return;let n=[];for(let r of e)try{return await t(r)}catch(e){n.push(e)}throw AggregateError(n,`Failed to open in all supported apps`)},Vc=async e=>{e={wait:!1,background:!1,newInstance:!1,allowNonzeroExitCode:!1,...e};let t=e[Fc]===!0;if(delete e[Fc],Array.isArray(e.app))return Bc(e.app,t=>Vc({...e,app:t,[Fc]:!0}));let{name:n,arguments:r=[]}=e.app??{};if(r=[...r],Array.isArray(n))return Bc(n,t=>Vc({...e,app:{name:t,arguments:r},[Fc]:!0}));if(n===`browser`||n===`browserPrivate`){let t={"com.google.chrome":`chrome`,"google-chrome.desktop":`chrome`,"com.brave.browser":`brave`,"org.mozilla.firefox":`firefox`,"firefox.desktop":`firefox`,"com.microsoft.msedge":`edge`,"com.microsoft.edge":`edge`,"com.microsoft.edgemac":`edge`,"microsoft-edge.desktop":`edge`,"com.apple.safari":`safari`},i={chrome:`--incognito`,brave:`--incognito`,firefox:`--private-window`,edge:`--inPrivate`},a;if(lc){let e=await vc();a=Oc.get(e)??{}}else a=await Nc();if(a.id in t){let o=t[a.id.toLowerCase()];if(n===`browserPrivate`){if(o===`safari`)throw Error(`Safari doesn't support opening in private mode via command line`);r.push(i[o])}return Vc({...e,app:{name:Gc[o],arguments:r}})}throw Error(`${a.name} is not supported as a default browser`)}let i,a=[],o={},s=!1;if(lc&&!sc()&&!Pc&&!n&&(s=await _c()),Rc===`darwin`)i=`open`,e.wait&&a.push(`--wait-apps`),e.background&&a.push(`--background`),e.newInstance&&a.push(`--new`),n&&a.push(`-a`,n);else if(Rc===`win32`||s){i=await hc(),a.push(...$.argumentsPrefix),lc||(o.windowsVerbatimArguments=!0),lc&&e.target&&(e.target=await yc(e.target));let t=[`$ProgressPreference = 'SilentlyContinue';`,`Start`];e.wait&&t.push(`-Wait`),n?(t.push($.escapeArgument(n)),e.target&&r.push(e.target)):e.target&&t.push($.escapeArgument(e.target)),r.length>0&&(r=r.map(e=>$.escapeArgument(e)),t.push(`-ArgumentList`,r.join(`,`))),e.target=$.encodeCommand(t.join(` `)),e.wait||(o.stdio=`ignore`)}else{if(n)i=n;else{let e=!Ic||Ic===`/`,t=!1;try{await Ke.access(Lc,qe.X_OK),t=!0}catch{}i=D.versions.electron??(Rc===`android`||e||!t)?`xdg-open`:Lc}r.length>0&&a.push(...r),e.wait||(o.stdio=`ignore`,o.detached=!0)}Rc===`darwin`&&r.length>0&&a.push(`--args`,...r),e.target&&a.push(e.target);let c=it.spawn(i,a,o);return e.wait?new Promise((t,n)=>{c.once(`error`,n),c.once(`close`,r=>{if(!e.allowNonzeroExitCode&&r!==0){n(Error(`Exited with code ${r}`));return}t(c)})}):t?new Promise((e,t)=>{c.once(`error`,t),c.once(`spawn`,()=>{c.once(`close`,n=>{if(c.off(`error`,t),n!==0){t(Error(`Exited with code ${n}`));return}c.unref(),e(c)})})}):(c.unref(),new Promise((e,t)=>{c.once(`error`,t),c.once(`spawn`,()=>{c.off(`error`,t),e(c)})}))},Hc=(e,t)=>{if(typeof e!=`string`)throw TypeError("Expected a `target`");return Vc({...t,target:e})};function Uc(e){if(typeof e==`string`||Array.isArray(e))return e;let{[zc]:t}=e;if(!t)throw Error(`${zc} is not supported`);return t}function Wc({[Rc]:e},{wsl:t}={}){if(t&&lc)return Uc(t);if(!e)throw Error(`${Rc} is not supported`);return Uc(e)}const Gc={browser:`browser`,browserPrivate:`browserPrivate`};bc(Gc,`chrome`,()=>Wc({darwin:`google chrome`,win32:`chrome`,linux:[`google-chrome`,`google-chrome-stable`,`chromium`,`chromium-browser`]},{wsl:{ia32:`/mnt/c/Program Files (x86)/Google/Chrome/Application/chrome.exe`,x64:[`/mnt/c/Program Files/Google/Chrome/Application/chrome.exe`,`/mnt/c/Program Files (x86)/Google/Chrome/Application/chrome.exe`]}})),bc(Gc,`brave`,()=>Wc({darwin:`brave browser`,win32:`brave`,linux:[`brave-browser`,`brave`]},{wsl:{ia32:`/mnt/c/Program Files (x86)/BraveSoftware/Brave-Browser/Application/brave.exe`,x64:[`/mnt/c/Program Files/BraveSoftware/Brave-Browser/Application/brave.exe`,`/mnt/c/Program Files (x86)/BraveSoftware/Brave-Browser/Application/brave.exe`]}})),bc(Gc,`firefox`,()=>Wc({darwin:`firefox`,win32:String.raw`C:\Program Files\Mozilla Firefox\firefox.exe`,linux:`firefox`},{wsl:`/mnt/c/Program Files/Mozilla Firefox/firefox.exe`})),bc(Gc,`edge`,()=>Wc({darwin:`microsoft edge`,win32:`msedge`,linux:[`microsoft-edge`,`microsoft-edge-dev`]},{wsl:`/mnt/c/Program Files (x86)/Microsoft/Edge/Application/msedge.exe`})),bc(Gc,`safari`,()=>Wc({darwin:`Safari`}));var Kc=Hc;const qc={nova:{title:`Nova`,description:`Lucide / Geist`,hint:`Reduced spacing for compact layouts.`,style:`nova`,baseColor:`neutral`,theme:`neutral`,iconLibrary:`lucide`,font:`geist`,fontHeading:`inherit`,menuAccent:`subtle`,menuColor:`default`,radius:`default`},vega:{title:`Vega`,description:`Lucide / Inter`,hint:`The classic shadcn/ui look.`,style:`vega`,baseColor:`neutral`,theme:`neutral`,iconLibrary:`lucide`,font:`inter`,fontHeading:`inherit`,menuAccent:`subtle`,menuColor:`default`,radius:`default`},maia:{title:`Maia`,description:`Hugeicons / Figtree`,hint:`Soft and rounded, with generous spacing.`,style:`maia`,baseColor:`neutral`,theme:`neutral`,iconLibrary:`hugeicons`,font:`figtree`,fontHeading:`inherit`,menuAccent:`subtle`,menuColor:`default`,radius:`default`},lyra:{title:`Lyra`,description:`Phosphor / JetBrains Mono`,hint:`Boxy and sharp. Pairs well with mono fonts.`,style:`lyra`,baseColor:`neutral`,theme:`neutral`,iconLibrary:`phosphor`,font:`jetbrains-mono`,fontHeading:`inherit`,menuAccent:`subtle`,menuColor:`default`,radius:`default`},mira:{title:`Mira`,description:`Hugeicons / Inter`,hint:`Compact. Made for dense interfaces.`,style:`mira`,baseColor:`neutral`,theme:`neutral`,iconLibrary:`hugeicons`,font:`inter`,fontHeading:`inherit`,menuAccent:`subtle`,menuColor:`default`,radius:`default`},luma:{title:`Luma`,description:`Lucide / Inter`,hint:`Rounded geometry. Soft elevation. Breathable layouts.`,style:`luma`,baseColor:`neutral`,theme:`neutral`,iconLibrary:`lucide`,font:`inter`,fontHeading:`inherit`,menuAccent:`subtle`,menuColor:`default`,radius:`default`}};async function Jc(e){let t=await Ga({message:`You didn't provide a preset for the design system, how would you like to continue?`,initialValue:e?.style===void 0?`presets`:`prompt`,options:Object.entries(Yc).map(([e,t])=>({label:t.label,value:e}))});return H(t)&&q(),await Yc[t].select(e)}const Yc={presets:{label:`Choose from a list of pre-configured presets`,select:e=>Zc(e)},customize:{label:`Create my own preset at ${P.default.bold(`shadcn-svelte.com/create`)}`,select:e=>Xc(e)},prompt:{label:`Prompt me for the preset`,select:e=>Qc(e)}};async function Xc(e){let t=ho(e??E),n=new URL(`/create`,t).toString(),r=Ua();r.start(`Opening ${P.default.bold(n)} in your browser`),await Kc(n),r.stop(`Opened ${P.default.bold(n)} in your browser`);let i=e=>(e.startsWith(`--preset `)&&(e=e.slice(9)),e),a=await Za({message:`When you're done, paste the code back here and we'll use it to configure your project.`,placeholder:"Click on the `--preset <code>` button and paste the code here",validate:e=>{if(!ae(i(e??``)))return`Invalid preset code`}});return H(a)&&q(),re(i(a))}async function Zc(e){let t=await Ga({message:`Choose from a list of pre-configured presets`,initialValue:e?.style??`vega`,options:s(qc).map(([e,t])=>({label:`${t.title} - ${t.description}`,value:e,hint:t.hint}))});return H(t)&&q(),qc[t]}async function Qc(e){let t=await Na({style:()=>Ga({message:`Choose a style`,initialValue:e?.style??E.style,options:s(qc).map(([e,t])=>({label:t.title,value:e,hint:t.hint}))}),radius:()=>Ga({message:`Choose a radius`,initialValue:`default`,options:s(ee).map(([e,t])=>({label:`${t.label} ${t.value}`,value:e}))}),baseColor:()=>Ga({message:`Choose a base color`,initialValue:e?.tailwind.baseColor??E.tailwind.baseColor,options:s(ne).map(([e,t])=>({label:`${On(t.color)(`■`)} ${t.name}`,value:e}))}),theme:({results:e})=>Ga({message:`Choose a theme`,initialValue:e.baseColor,options:s(w).map(([e,t])=>({label:`${On(t.color)(`■`)} ${t.name}`,value:e}))}),iconLibrary:()=>Ga({message:`Choose an icon library`,initialValue:e?.iconLibrary??E.iconLibrary,options:s(d).map(([e,t])=>({label:t.title,value:t.name,hint:t.packages.join(`, `)}))}),font:()=>Ga({message:`Choose a font`,initialValue:`inter`,options:C.map(e=>({label:o(e),value:e}))})},{onCancel:()=>q()});return{style:t.style,baseColor:t.baseColor,theme:t.theme,iconLibrary:t.iconLibrary,font:t.font,fontHeading:`inherit`,radius:t.radius,menuColor:e?.menuColor??E.menuColor,menuAccent:e?.menuAccent??E.menuAccent}}const $c=_o(),el=a({cwd:p(),baseColor:p().optional(),preset:p().optional(),css:p().optional(),componentsAlias:p().optional(),utilsAlias:p().optional(),libAlias:p().optional(),hooksAlias:p().optional(),uiAlias:p().optional(),deps:i(),overwrite:i(),proxy:p().optional(),skipPreflight:i()}),tl=new De().command(`init`).description(`initialize your project and install dependencies`).option(`--preset <preset>`,`the preset to use`).option(`-c, --cwd <path>`,`the working directory`,D.cwd()).option(`-o, --overwrite`,`overwrite existing files`,!1).option(`--no-deps`,`disable adding & installing dependencies`).option(`--skip-preflight`,`ignore preflight checks and continue`,!1).addOption(new Oe(`--base-color <name>`,`the base color for the components`).choices($c.map(e=>e.name))).addOption(new Oe(`--design-system-url`)).option(`--css <path>`,`path to the global CSS file`).option(`--components-alias <path>`,`import alias for components`).option(`--lib-alias <path>`,`import alias for lib`).option(`--utils-alias <path>`,`import alias for utils`).option(`--hooks-alias <path>`,`import alias for hooks`).option(`--ui-alias <path>`,`import alias for ui`).option(`--proxy <proxy>`,`fetch items from registry using a proxy`,po()).action(async e=>{Qa();let t=el.parse(e),n=O.resolve(t.cwd);try{if(!A(n))throw m(`The path ${P.default.cyan(n)} does not exist. Please try again.`);let e=null;t.preset!==void 0&&(e=re(t.preset),e===null&&K.warn(`${P.default.dim(`--preset ${t.preset}`)} is not a valid preset.`)),$s(n,{skipPreflight:t.skipPreflight});let r=io(n);r&&=Js({cwd:n,config:r,skipPreflight:t.skipPreflight});let{resolvedConfig:i,decidedPresets:a,styleChanged:o}=await rl({cwd:n,presetConfig:e,existingConfig:r,options:t});await il({cwd:n,config:i,decidedPresets:a,options:t,styleChanged:o}),Ia(`${P.default.green(`Success!`)} Project initialization completed.`)}catch(e){eo(e)}});function nl(e,t,n){if(t.css&&!A(O.resolve(e,t.css)))throw m(`The provided global CSS file path ${P.default.cyan(t.css)} does not exist. Please enter a valid path.`);for(let[r,i]of Object.entries(t)){if(!r.endsWith(`Alias`))continue;let t=so({cwd:e,importPath:i,tsconfig:n});if(t)throw m(t)}}async function rl({cwd:e,presetConfig:t,existingConfig:n,options:r}){let i=n??structuredClone(E);await qr(e);let{cssPath:a,tsconfigPath:o}=Bs(e,{relative:!0}),s;if(n)s=fo(e,n);else{if(o)i.typescript=o.includes(`tsconfig`);else{let t=await Za({message:`Where is your ${R(`tsconfig/jsconfig`)} file?`,placeholder:`tsconfig.json`,validate:t=>{let n=O.resolve(e,t??``);if(!(t&&A(n)))return`"${P.default.bold(t)}" does not exist. Please enter a valid path.`}});H(t)&&q(),i.typescript={config:t}}s=fo(e,i)}nl(e,r,s);let c=t??await Jc(n),l=r.css;if(l===void 0){let t=E.tailwind.css,r=await Za({message:`Where is your ${R(`global CSS`)} file? ${P.default.gray(`(this file will be overwritten)`)}`,initialValue:n?.tailwind.css??a??t,placeholder:a??t,validate:t=>{if(!(t&&A(O.resolve(e,t))))return`"${P.default.bold(t)}" does not exist. Please enter a valid path.`}});H(r)&&q(),l=r}let{utilsAlias:u,libAlias:d,componentAlias:f,hooksAlias:p,uiAlias:m}=await co({...r,tsconfig:s,cwd:e,existingConfig:n}),h=ao({...i,tailwind:{css:l,baseColor:c.baseColor},aliases:{utils:u,lib:d,components:f,hooks:p,ui:m},style:c.style,iconLibrary:c.iconLibrary,menuColor:c.menuColor,menuAccent:c.menuAccent}),g;return g=n?n.style!==c.style||n.menuColor!==c.menuColor||n.menuAccent!==c.menuAccent:!1,{resolvedConfig:await ro(e,h),decidedPresets:c,styleChanged:g}}async function il({cwd:e,config:t,decidedPresets:n,options:r,styleChanged:i}){r.proxy!==void 0&&(D.env.HTTP_PROXY=r.proxy,K.info(`You are using the provided proxy: ${P.default.green(r.proxy)}`));let a=[];a.push({title:`Creating config file`,async task(){return uo(e,t),`Config file ${R(`components.json`)} created`}}),a.push({title:`Validating alias paths`,async task(){for(let[e,n]of Object.entries(t.resolvedPaths)){let t=O.extname(n)?O.dirname(n):n;e===`utils`&&n.endsWith(`/utils`)&&(t=t.replace(/\/utils$/,``)),!A(t)&&e!==`utils`&&await j.mkdir(t,{recursive:!0})}return`Alias paths validated`}}),await Ja(a);let o=mo(t),s=te(n),c=new URL(`/init?preset=${s}`,o).toString(),l=[],u=r.overwrite;if(i&&(l=(await Kr({registryIndex:await go(o),config:t})).filter(e=>e.name!==`utils`).map(e=>e.name),l.length>0&&!u)){K.warn(`The registry style has changed to ${P.default.bold(P.default.yellow(n.style))}.`);let e=await Ma({message:`Would you like to ${P.default.bold(P.default.red(`overwrite`))} your existing components?`,initialValue:!0});H(e)&&q(),u=e}let d=await Ko({selectedItems:[c,...l],config:t,deps:r.deps,overwrite:u});if(r.deps)await Ks({cwd:e,prompt:r.deps,dependencies:Array.from(d.dependencies),devDependencies:Array.from(d.devDependencies)});else if(d.skippedDeps.size){let e=$a([...d.skippedDeps],7);K.warn(`shadcn-svelte has been initialized ${P.default.bold(P.default.red(`without`))} the following ${R(`dependencies`)}:\n${P.default.gray(e)}`)}}const al=a({all:i(),components:p().array().optional(),cwd:p(),proxy:p().optional(),yes:i(),skipPreflight:i(),deps:i()}),ol=new De().command(`update`,{hidden:!0}).description(`update components in your project`).argument(`[components...]`,`name of components`).option(`-c, --cwd <path>`,`the working directory`,D.cwd()).option(`--skip-preflight`,`ignore preflight checks and continue`,!1).option(`--no-deps`,`skips adding & installing package dependencies`).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`,po()).action(async(e,t)=>{Qa();try{let n=al.parse({components:e,...t}),r=O.resolve(n.cwd);if(!A(r))throw m(`The path ${P.default.cyan(r)} does not exist. Please try again.`);let i=await no(r);if(!i)throw m(`Configuration file is missing. Please run ${P.default.green(`init`)} to create a ${R(`components.json`)} file.`);await sl(r,Js({config:i,cwd:r,skipPreflight:n.skipPreflight}),n),Ia(`${P.default.green(`Success!`)} Component update completed.`)}catch(e){eo(e)}});async function sl(e,t,n){n.proxy!==void 0&&(D.env.HTTP_PROXY=n.proxy,K.info(`You are using the provided proxy: ${P.default.green(n.proxy)}`));let r=n.components,i=mo(t),a=await go(i),o=await Kr({registryIndex:a,config:t}),s=n.all?o:[];if(s.length===0&&r!==void 0&&(s=o.filter(e=>r.includes(e.name))),s.length===0){let e=await Ra({message:`Which components would you like to update?`,maxItems:10,options:o.map(e=>({label:e.name,value:e,hint:e.registryDependencies?.length?`also updates: ${e.registryDependencies.join(`, `)}`:void 0}))});H(e)&&q(),s=e}else{let e=$a(s.map(({name:e})=>e));K.step(`Components to update:\n${P.default.gray(e)}`)}if(n.yes===!1){let e=await Ma({message:`Ready to update ${R(`components`)}? ${P.default.gray(`(Make sure you have committed your changes before proceeding!)`)}`,initialValue:!0});(H(e)||e===!1)&&q()}let c=[],l=await yo({baseUrl:i,items:await vo({registryUrl:i,registryIndex:a,items:s.map(e=>e.name)})});l.sort((e,t)=>e.name.localeCompare(t.name));let u=[];for(let e of l)e.cssVars&&u.push({cssVars:e.cssVars}),e.type===`registry:font`&&e.font&&u.push({fonts:[{font:e.font}]});let d=Uo(u),f={},p=new Set,m=new Set,h=[],g={},v={};for(let e of l){let r=xo(t,e.type);e.dependencies?.forEach(e=>p.add(e)),e.devDependencies?.forEach(e=>m.add(e)),e.type===`registry:font`&&h.push({name:e.name,...e.font}),c.push({title:`Updating ${R(e.name)}`,async task(){for(let n of e.files??[]){let r=So(t,e,n),{content:i,dependencies:a,devDependencies:o,filePath:s}=await Se({content:n.content,filePath:r,config:t,supportedFontMarkers:d},[_e,_,ve,be,!t.typescript&&ge]);a?.forEach(e=>p.add(e)),o?.forEach(e=>m.add(e));let c=O.parse(s).dir;A(c)||await j.mkdir(c,{recursive:!0}),await j.writeFile(s,i,`utf8`)}e.css&&(v=(0,Co.default)(v,e.css)),e.cssVars&&(g=(0,Co.default)(g,e.cssVars));let i=O.resolve(r,e.name);if(e.files&&e.files?.length>1){let n=e.files.map(n=>{let r=So(t,e,n);return!t.typescript&&r.endsWith(`.ts`)?r.replace(`.ts`,`.js`):r}),r=(await j.readdir(i,{withFileTypes:!0})).map(e=>O.resolve(e.parentPath,e.name)).filter(e=>!n.includes(e));r.length>0&&(f[e.name]=r)}let a=O.relative(n.cwd,i);return`${R(e.name)} updated at ${P.default.gray(a)}`}})}let{css:y,cssVars:b,dependencies:x}=Wo(h);if(v=(0,Co.default)(v,y),g=(0,Co.default)(g,b),x.forEach(e=>m.add(e)),(Object.keys(g).length>0||Object.keys(v).length>0)&&(v=(0,Co.default)(v,me),c.push({title:`Updating stylesheet`,async task(){let n=t.resolvedPaths.tailwindCss,r=Bo(await j.readFile(n,`utf8`),{css:v,cssVars:g});await j.writeFile(n,r,`utf8`);let i=O.relative(e,n);return`${R(`Stylesheet`)} updated at ${P.default.dim(i)}`}})),await Ja(c),n.deps)await Ks({cwd:e,dependencies:Array.from(p),devDependencies:Array.from(m),prompt:!0});else if(p.size>0||m.size>0){let e=$a([...p,...m],7);K.warn(`Components have been updated ${P.default.bold(P.default.red(`without`))} the following ${R(`dependencies`)}:\n${P.default.gray(e)}`)}for(let[t,n]of Object.entries(f))K.warn(`The ${R(t)} component does not use the following files:\n${n.map(t=>P.default.white(`- ${P.default.gray(O.relative(e,t))}`)).join(`
138
+ `)){if(/^\s*#/.test(t))continue;let e=/^\s*root\s*=\s*(?<mountPoint>"[^"]*"|'[^']*'|[^#]*)/.exec(t);if(e)return e.groups.mountPoint.trim().replaceAll(/^["']|["']$/g,``)}}const pc=Je(it.execFile),mc=(()=>{let e=`/mnt/`,t;return async function(){if(t)return t;let n=`/etc/wsl.conf`,r=!1;try{await Ke.access(n,qe.F_OK),r=!0}catch{}if(!r)return e;let i=fc(await Ke.readFile(n,{encoding:`utf8`}));return i===void 0?e:(t=i,t=t.endsWith(`/`)?t:`${t}/`,t)}})(),hc=lc?async()=>`${await mc()}c/Windows/System32/WindowsPowerShell/v1.0/powershell.exe`:dc;let gc;const _c=async()=>(gc??=(async()=>{try{let e=await hc();return await Ke.access(e,qe.X_OK),!0}catch{return!1}})(),gc),vc=async()=>{let e=await hc(),{stdout:t}=await $(String.raw`(Get-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\Shell\Associations\UrlAssociations\http\UserChoice").ProgId`,{powerShellPath:e});return t.trim()},yc=async e=>{if(/^[a-z]+:\/\//i.test(e))return e;try{let{stdout:t}=await pc(`wslpath`,[`-aw`,e],{encoding:`utf8`});return t.trim()}catch{return e}};function bc(e,t,n){let r=n=>Object.defineProperty(e,t,{value:n,enumerable:!0,writable:!0});return Object.defineProperty(e,t,{configurable:!0,enumerable:!0,get(){let e=n();return r(e),e},set(e){r(e)}}),e}const xc=Je(at);async function Sc(){if(D.platform!==`darwin`)throw Error(`macOS only`);let{stdout:e}=await xc(`defaults`,[`read`,`com.apple.LaunchServices/com.apple.launchservices.secure`,`LSHandlers`]),t=/LSHandlerRoleAll = "(?!-)(?<id>[^"]+?)";\s+?LSHandlerURLScheme = (?:http|https);/.exec(e)?.groups.id??`com.apple.Safari`;return t===`com.apple.safari`?`com.apple.Safari`:t}const Cc=Je(at);async function wc(e,{humanReadableOutput:t=!0,signal:n}={}){if(D.platform!==`darwin`)throw Error(`macOS only`);let r=t?[]:[`-ss`],i={};n&&(i.signal=n);let{stdout:a}=await Cc(`osascript`,[`-e`,e,r],i);return a.trim()}async function Tc(e){return wc(`tell application "Finder" to set app_path to application file id "${e}" as string\ntell application "System Events" to get value of property list item "CFBundleName" of property list file (app_path & ":Contents:Info.plist")`)}const Ec=Je(at),Dc={MSEdgeHTM:{name:`Edge`,id:`com.microsoft.edge`},MSEdgeBHTML:{name:`Edge Beta`,id:`com.microsoft.edge.beta`},MSEdgeDHTML:{name:`Edge Dev`,id:`com.microsoft.edge.dev`},AppXq0fevzme2pys62n3e0fbqa7peapykr8v:{name:`Edge`,id:`com.microsoft.edge.old`},ChromeHTML:{name:`Chrome`,id:`com.google.chrome`},ChromeBHTML:{name:`Chrome Beta`,id:`com.google.chrome.beta`},ChromeDHTML:{name:`Chrome Dev`,id:`com.google.chrome.dev`},ChromiumHTM:{name:`Chromium`,id:`org.chromium.Chromium`},BraveHTML:{name:`Brave`,id:`com.brave.Browser`},BraveBHTML:{name:`Brave Beta`,id:`com.brave.Browser.beta`},BraveDHTML:{name:`Brave Dev`,id:`com.brave.Browser.dev`},BraveSSHTM:{name:`Brave Nightly`,id:`com.brave.Browser.nightly`},FirefoxURL:{name:`Firefox`,id:`org.mozilla.firefox`},OperaStable:{name:`Opera`,id:`com.operasoftware.Opera`},VivaldiHTM:{name:`Vivaldi`,id:`com.vivaldi.Vivaldi`},"IE.HTTP":{name:`Internet Explorer`,id:`com.microsoft.ie`}},Oc=new Map(Object.entries(Dc));var kc=class extends Error{};async function Ac(e=Ec){let{stdout:t}=await e(`reg`,[`QUERY`,` HKEY_CURRENT_USER\\Software\\Microsoft\\Windows\\Shell\\Associations\\UrlAssociations\\http\\UserChoice`,`/v`,`ProgId`]),n=/ProgId\s*REG_SZ\s*(?<id>\S+)/.exec(t);if(!n)throw new kc(`Cannot find Windows browser in stdout: ${JSON.stringify(t)}`);let{id:r}=n.groups,i=r.lastIndexOf(`.`),a=r.lastIndexOf(`-`),o=i===-1?void 0:r.slice(0,i),s=a===-1?void 0:r.slice(0,a);return Dc[r]??Dc[o]??Dc[s]??{name:r,id:r}}const jc=Je(at),Mc=e=>e.toLowerCase().replaceAll(/(?:^|\s|-)\S/g,e=>e.toUpperCase());async function Nc(){if(D.platform===`darwin`){let e=await Sc();return{name:await Tc(e),id:e}}if(D.platform===`linux`){let{stdout:e}=await jc(`xdg-mime`,[`query`,`default`,`x-scheme-handler/http`]),t=e.trim();return{name:Mc(t.replace(/.desktop$/,``).replace(`-`,` `)),id:t}}if(D.platform===`win32`)return Ac();throw Error(`Only macOS, Linux, and Windows are supported`)}var Pc=!!(D.env.SSH_CONNECTION||D.env.SSH_CLIENT||D.env.SSH_TTY);const Fc=Symbol(`fallbackAttempt`),Ic=import.meta.url?O.dirname(Ie(import.meta.url)):``,Lc=O.join(Ic,`xdg-open`),{platform:Rc,arch:zc}=D,Bc=async(e,t)=>{if(e.length===0)return;let n=[];for(let r of e)try{return await t(r)}catch(e){n.push(e)}throw AggregateError(n,`Failed to open in all supported apps`)},Vc=async e=>{e={wait:!1,background:!1,newInstance:!1,allowNonzeroExitCode:!1,...e};let t=e[Fc]===!0;if(delete e[Fc],Array.isArray(e.app))return Bc(e.app,t=>Vc({...e,app:t,[Fc]:!0}));let{name:n,arguments:r=[]}=e.app??{};if(r=[...r],Array.isArray(n))return Bc(n,t=>Vc({...e,app:{name:t,arguments:r},[Fc]:!0}));if(n===`browser`||n===`browserPrivate`){let t={"com.google.chrome":`chrome`,"google-chrome.desktop":`chrome`,"com.brave.browser":`brave`,"org.mozilla.firefox":`firefox`,"firefox.desktop":`firefox`,"com.microsoft.msedge":`edge`,"com.microsoft.edge":`edge`,"com.microsoft.edgemac":`edge`,"microsoft-edge.desktop":`edge`,"com.apple.safari":`safari`},i={chrome:`--incognito`,brave:`--incognito`,firefox:`--private-window`,edge:`--inPrivate`},a;if(lc){let e=await vc();a=Oc.get(e)??{}}else a=await Nc();if(a.id in t){let o=t[a.id.toLowerCase()];if(n===`browserPrivate`){if(o===`safari`)throw Error(`Safari doesn't support opening in private mode via command line`);r.push(i[o])}return Vc({...e,app:{name:Gc[o],arguments:r}})}throw Error(`${a.name} is not supported as a default browser`)}let i,a=[],o={},s=!1;if(lc&&!sc()&&!Pc&&!n&&(s=await _c()),Rc===`darwin`)i=`open`,e.wait&&a.push(`--wait-apps`),e.background&&a.push(`--background`),e.newInstance&&a.push(`--new`),n&&a.push(`-a`,n);else if(Rc===`win32`||s){i=await hc(),a.push(...$.argumentsPrefix),lc||(o.windowsVerbatimArguments=!0),lc&&e.target&&(e.target=await yc(e.target));let t=[`$ProgressPreference = 'SilentlyContinue';`,`Start`];e.wait&&t.push(`-Wait`),n?(t.push($.escapeArgument(n)),e.target&&r.push(e.target)):e.target&&t.push($.escapeArgument(e.target)),r.length>0&&(r=r.map(e=>$.escapeArgument(e)),t.push(`-ArgumentList`,r.join(`,`))),e.target=$.encodeCommand(t.join(` `)),e.wait||(o.stdio=`ignore`)}else{if(n)i=n;else{let e=!Ic||Ic===`/`,t=!1;try{await Ke.access(Lc,qe.X_OK),t=!0}catch{}i=D.versions.electron??(Rc===`android`||e||!t)?`xdg-open`:Lc}r.length>0&&a.push(...r),e.wait||(o.stdio=`ignore`,o.detached=!0)}Rc===`darwin`&&r.length>0&&a.push(`--args`,...r),e.target&&a.push(e.target);let c=it.spawn(i,a,o);return e.wait?new Promise((t,n)=>{c.once(`error`,n),c.once(`close`,r=>{if(!e.allowNonzeroExitCode&&r!==0){n(Error(`Exited with code ${r}`));return}t(c)})}):t?new Promise((e,t)=>{c.once(`error`,t),c.once(`spawn`,()=>{c.once(`close`,n=>{if(c.off(`error`,t),n!==0){t(Error(`Exited with code ${n}`));return}c.unref(),e(c)})})}):(c.unref(),new Promise((e,t)=>{c.once(`error`,t),c.once(`spawn`,()=>{c.off(`error`,t),e(c)})}))},Hc=(e,t)=>{if(typeof e!=`string`)throw TypeError("Expected a `target`");return Vc({...t,target:e})};function Uc(e){if(typeof e==`string`||Array.isArray(e))return e;let{[zc]:t}=e;if(!t)throw Error(`${zc} is not supported`);return t}function Wc({[Rc]:e},{wsl:t}={}){if(t&&lc)return Uc(t);if(!e)throw Error(`${Rc} is not supported`);return Uc(e)}const Gc={browser:`browser`,browserPrivate:`browserPrivate`};bc(Gc,`chrome`,()=>Wc({darwin:`google chrome`,win32:`chrome`,linux:[`google-chrome`,`google-chrome-stable`,`chromium`,`chromium-browser`]},{wsl:{ia32:`/mnt/c/Program Files (x86)/Google/Chrome/Application/chrome.exe`,x64:[`/mnt/c/Program Files/Google/Chrome/Application/chrome.exe`,`/mnt/c/Program Files (x86)/Google/Chrome/Application/chrome.exe`]}})),bc(Gc,`brave`,()=>Wc({darwin:`brave browser`,win32:`brave`,linux:[`brave-browser`,`brave`]},{wsl:{ia32:`/mnt/c/Program Files (x86)/BraveSoftware/Brave-Browser/Application/brave.exe`,x64:[`/mnt/c/Program Files/BraveSoftware/Brave-Browser/Application/brave.exe`,`/mnt/c/Program Files (x86)/BraveSoftware/Brave-Browser/Application/brave.exe`]}})),bc(Gc,`firefox`,()=>Wc({darwin:`firefox`,win32:String.raw`C:\Program Files\Mozilla Firefox\firefox.exe`,linux:`firefox`},{wsl:`/mnt/c/Program Files/Mozilla Firefox/firefox.exe`})),bc(Gc,`edge`,()=>Wc({darwin:`microsoft edge`,win32:`msedge`,linux:[`microsoft-edge`,`microsoft-edge-dev`]},{wsl:`/mnt/c/Program Files (x86)/Microsoft/Edge/Application/msedge.exe`})),bc(Gc,`safari`,()=>Wc({darwin:`Safari`}));var Kc=Hc;const qc={nova:{title:`Nova`,description:`Lucide / Geist`,hint:`Reduced spacing for compact layouts.`,style:`nova`,baseColor:`neutral`,theme:`neutral`,iconLibrary:`lucide`,font:`geist`,fontHeading:`inherit`,menuAccent:`subtle`,menuColor:`default`,radius:`default`},vega:{title:`Vega`,description:`Lucide / Inter`,hint:`The classic shadcn/ui look.`,style:`vega`,baseColor:`neutral`,theme:`neutral`,iconLibrary:`lucide`,font:`inter`,fontHeading:`inherit`,menuAccent:`subtle`,menuColor:`default`,radius:`default`},maia:{title:`Maia`,description:`Hugeicons / Figtree`,hint:`Soft and rounded, with generous spacing.`,style:`maia`,baseColor:`neutral`,theme:`neutral`,iconLibrary:`hugeicons`,font:`figtree`,fontHeading:`inherit`,menuAccent:`subtle`,menuColor:`default`,radius:`default`},lyra:{title:`Lyra`,description:`Phosphor / JetBrains Mono`,hint:`Boxy and sharp. Pairs well with mono fonts.`,style:`lyra`,baseColor:`neutral`,theme:`neutral`,iconLibrary:`phosphor`,font:`jetbrains-mono`,fontHeading:`inherit`,menuAccent:`subtle`,menuColor:`default`,radius:`default`},mira:{title:`Mira`,description:`Hugeicons / Inter`,hint:`Compact. Made for dense interfaces.`,style:`mira`,baseColor:`neutral`,theme:`neutral`,iconLibrary:`hugeicons`,font:`inter`,fontHeading:`inherit`,menuAccent:`subtle`,menuColor:`default`,radius:`default`},luma:{title:`Luma`,description:`Lucide / Inter`,hint:`Rounded geometry. Soft elevation. Breathable layouts.`,style:`luma`,baseColor:`neutral`,theme:`neutral`,iconLibrary:`lucide`,font:`inter`,fontHeading:`inherit`,menuAccent:`subtle`,menuColor:`default`,radius:`default`},sera:{title:`Sera`,description:`Lucide / Noto Sans + Playfair Display`,hint:`Editorial and typographic.`,style:`sera`,baseColor:`taupe`,theme:`taupe`,iconLibrary:`lucide`,font:`noto-sans`,fontHeading:`playfair-display`,menuAccent:`subtle`,menuColor:`default`,radius:`default`},rhea:{title:`Rhea`,description:`Lucide / Inter`,hint:`Like Luma but compact.`,style:`rhea`,baseColor:`neutral`,theme:`neutral`,iconLibrary:`lucide`,font:`inter`,fontHeading:`inherit`,menuAccent:`subtle`,menuColor:`default`,radius:`default`}};async function Jc(e){let t=await Ga({message:`You didn't provide a preset for the design system, how would you like to continue?`,initialValue:e?.style===void 0?`presets`:`prompt`,options:Object.entries(Yc).map(([e,t])=>({label:t.label,value:e}))});return H(t)&&q(),await Yc[t].select(e)}const Yc={presets:{label:`Choose from a list of pre-configured presets`,select:e=>Zc(e)},customize:{label:`Create my own preset at ${P.default.bold(`shadcn-svelte.com/create`)}`,select:e=>Xc(e)},prompt:{label:`Prompt me for the preset`,select:e=>Qc(e)}};async function Xc(e){let t=ho(e??E),n=new URL(`/create`,t).toString(),r=Ua();r.start(`Opening ${P.default.bold(n)} in your browser`),await Kc(n),r.stop(`Opened ${P.default.bold(n)} in your browser`);let i=e=>(e.startsWith(`--preset `)&&(e=e.slice(9)),e),a=await Za({message:`When you're done, paste the code back here and we'll use it to configure your project.`,placeholder:"Click on the `--preset <code>` button and paste the code here",validate:e=>{if(!ae(i(e??``)))return`Invalid preset code`}});return H(a)&&q(),re(i(a))}async function Zc(e){let t=await Ga({message:`Choose from a list of pre-configured presets`,initialValue:e?.style??`vega`,options:s(qc).map(([e,t])=>({label:`${t.title} - ${t.description}`,value:e,hint:t.hint}))});return H(t)&&q(),qc[t]}async function Qc(e){let t=await Na({style:()=>Ga({message:`Choose a style`,initialValue:e?.style??E.style,options:s(qc).map(([e,t])=>({label:t.title,value:e,hint:t.hint}))}),radius:()=>Ga({message:`Choose a radius`,initialValue:`default`,options:s(ee).map(([e,t])=>({label:`${t.label} ${t.value}`,value:e}))}),baseColor:()=>Ga({message:`Choose a base color`,initialValue:e?.tailwind.baseColor??E.tailwind.baseColor,options:s(ne).map(([e,t])=>({label:`${On(t.color)(`■`)} ${t.name}`,value:e}))}),theme:({results:e})=>Ga({message:`Choose a theme`,initialValue:e.baseColor,options:s(w).map(([e,t])=>({label:`${On(t.color)(`■`)} ${t.name}`,value:e}))}),iconLibrary:()=>Ga({message:`Choose an icon library`,initialValue:e?.iconLibrary??E.iconLibrary,options:s(d).map(([e,t])=>({label:t.title,value:t.name,hint:t.packages.join(`, `)}))}),font:()=>Ga({message:`Choose a font`,initialValue:`inter`,options:C.map(e=>({label:o(e),value:e}))})},{onCancel:()=>q()});return{style:t.style,baseColor:t.baseColor,theme:t.theme,iconLibrary:t.iconLibrary,font:t.font,fontHeading:`inherit`,radius:t.radius,menuColor:e?.menuColor??E.menuColor,menuAccent:e?.menuAccent??E.menuAccent}}const $c=_o(),el=a({cwd:p(),baseColor:p().optional(),preset:p().optional(),css:p().optional(),componentsAlias:p().optional(),utilsAlias:p().optional(),libAlias:p().optional(),hooksAlias:p().optional(),uiAlias:p().optional(),deps:i(),overwrite:i(),proxy:p().optional(),skipPreflight:i()}),tl=new De().command(`init`).description(`initialize your project and install dependencies`).option(`--preset <preset>`,`the preset to use`).option(`-c, --cwd <path>`,`the working directory`,D.cwd()).option(`-o, --overwrite`,`overwrite existing files`,!1).option(`--no-deps`,`disable adding & installing dependencies`).option(`--skip-preflight`,`ignore preflight checks and continue`,!1).addOption(new Oe(`--base-color <name>`,`the base color for the components`).choices($c.map(e=>e.name))).addOption(new Oe(`--design-system-url`)).option(`--css <path>`,`path to the global CSS file`).option(`--components-alias <path>`,`import alias for components`).option(`--lib-alias <path>`,`import alias for lib`).option(`--utils-alias <path>`,`import alias for utils`).option(`--hooks-alias <path>`,`import alias for hooks`).option(`--ui-alias <path>`,`import alias for ui`).option(`--proxy <proxy>`,`fetch items from registry using a proxy`,po()).action(async e=>{Qa();let t=el.parse(e),n=O.resolve(t.cwd);try{if(!A(n))throw m(`The path ${P.default.cyan(n)} does not exist. Please try again.`);let e=null;t.preset!==void 0&&(e=re(t.preset),e===null&&K.warn(`${P.default.dim(`--preset ${t.preset}`)} is not a valid preset.`)),$s(n,{skipPreflight:t.skipPreflight});let r=io(n);r&&=Js({cwd:n,config:r,skipPreflight:t.skipPreflight});let{resolvedConfig:i,decidedPresets:a,styleChanged:o}=await rl({cwd:n,presetConfig:e,existingConfig:r,options:t});await il({cwd:n,config:i,decidedPresets:a,options:t,styleChanged:o}),Ia(`${P.default.green(`Success!`)} Project initialization completed.`)}catch(e){eo(e)}});function nl(e,t,n){if(t.css&&!A(O.resolve(e,t.css)))throw m(`The provided global CSS file path ${P.default.cyan(t.css)} does not exist. Please enter a valid path.`);for(let[r,i]of Object.entries(t)){if(!r.endsWith(`Alias`))continue;let t=so({cwd:e,importPath:i,tsconfig:n});if(t)throw m(t)}}async function rl({cwd:e,presetConfig:t,existingConfig:n,options:r}){let i=n??structuredClone(E);await qr(e);let{cssPath:a,tsconfigPath:o}=Bs(e,{relative:!0}),s;if(n)s=fo(e,n);else{if(o)i.typescript=o.includes(`tsconfig`);else{let t=await Za({message:`Where is your ${R(`tsconfig/jsconfig`)} file?`,placeholder:`tsconfig.json`,validate:t=>{let n=O.resolve(e,t??``);if(!(t&&A(n)))return`"${P.default.bold(t)}" does not exist. Please enter a valid path.`}});H(t)&&q(),i.typescript={config:t}}s=fo(e,i)}nl(e,r,s);let c=t??await Jc(n),l=r.css;if(l===void 0){let t=E.tailwind.css,r=await Za({message:`Where is your ${R(`global CSS`)} file? ${P.default.gray(`(this file will be overwritten)`)}`,initialValue:n?.tailwind.css??a??t,placeholder:a??t,validate:t=>{if(!(t&&A(O.resolve(e,t))))return`"${P.default.bold(t)}" does not exist. Please enter a valid path.`}});H(r)&&q(),l=r}let{utilsAlias:u,libAlias:d,componentAlias:f,hooksAlias:p,uiAlias:m}=await co({...r,tsconfig:s,cwd:e,existingConfig:n}),h=ao({...i,tailwind:{css:l,baseColor:c.baseColor},aliases:{utils:u,lib:d,components:f,hooks:p,ui:m},style:c.style,iconLibrary:c.iconLibrary,menuColor:c.menuColor,menuAccent:c.menuAccent}),g;return g=n?n.style!==c.style||n.menuColor!==c.menuColor||n.menuAccent!==c.menuAccent:!1,{resolvedConfig:await ro(e,h),decidedPresets:c,styleChanged:g}}async function il({cwd:e,config:t,decidedPresets:n,options:r,styleChanged:i}){r.proxy!==void 0&&(D.env.HTTP_PROXY=r.proxy,K.info(`You are using the provided proxy: ${P.default.green(r.proxy)}`));let a=[];a.push({title:`Creating config file`,async task(){return uo(e,t),`Config file ${R(`components.json`)} created`}}),a.push({title:`Validating alias paths`,async task(){for(let[e,n]of Object.entries(t.resolvedPaths)){let t=O.extname(n)?O.dirname(n):n;e===`utils`&&n.endsWith(`/utils`)&&(t=t.replace(/\/utils$/,``)),!A(t)&&e!==`utils`&&await j.mkdir(t,{recursive:!0})}return`Alias paths validated`}}),await Ja(a);let o=mo(t),s=te(n),c=new URL(`/init?preset=${s}`,o).toString(),l=[],u=r.overwrite;if(i&&(l=(await Kr({registryIndex:await go(o),config:t})).filter(e=>e.name!==`utils`).map(e=>e.name),l.length>0&&!u)){K.warn(`The registry style has changed to ${P.default.bold(P.default.yellow(n.style))}.`);let e=await Ma({message:`Would you like to ${P.default.bold(P.default.red(`overwrite`))} your existing components?`,initialValue:!0});H(e)&&q(),u=e}let d=await Ko({selectedItems:[c,...l],config:t,deps:r.deps,overwrite:u});if(r.deps)await Ks({cwd:e,prompt:r.deps,dependencies:Array.from(d.dependencies),devDependencies:Array.from(d.devDependencies)});else if(d.skippedDeps.size){let e=$a([...d.skippedDeps],7);K.warn(`shadcn-svelte has been initialized ${P.default.bold(P.default.red(`without`))} the following ${R(`dependencies`)}:\n${P.default.gray(e)}`)}}const al=a({all:i(),components:p().array().optional(),cwd:p(),proxy:p().optional(),yes:i(),skipPreflight:i(),deps:i()}),ol=new De().command(`update`,{hidden:!0}).description(`update components in your project`).argument(`[components...]`,`name of components`).option(`-c, --cwd <path>`,`the working directory`,D.cwd()).option(`--skip-preflight`,`ignore preflight checks and continue`,!1).option(`--no-deps`,`skips adding & installing package dependencies`).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`,po()).action(async(e,t)=>{Qa();try{let n=al.parse({components:e,...t}),r=O.resolve(n.cwd);if(!A(r))throw m(`The path ${P.default.cyan(r)} does not exist. Please try again.`);let i=await no(r);if(!i)throw m(`Configuration file is missing. Please run ${P.default.green(`init`)} to create a ${R(`components.json`)} file.`);await sl(r,Js({config:i,cwd:r,skipPreflight:n.skipPreflight}),n),Ia(`${P.default.green(`Success!`)} Component update completed.`)}catch(e){eo(e)}});async function sl(e,t,n){n.proxy!==void 0&&(D.env.HTTP_PROXY=n.proxy,K.info(`You are using the provided proxy: ${P.default.green(n.proxy)}`));let r=n.components,i=mo(t),a=await go(i),o=await Kr({registryIndex:a,config:t}),s=n.all?o:[];if(s.length===0&&r!==void 0&&(s=o.filter(e=>r.includes(e.name))),s.length===0){let e=await Ra({message:`Which components would you like to update?`,maxItems:10,options:o.map(e=>({label:e.name,value:e,hint:e.registryDependencies?.length?`also updates: ${e.registryDependencies.join(`, `)}`:void 0}))});H(e)&&q(),s=e}else{let e=$a(s.map(({name:e})=>e));K.step(`Components to update:\n${P.default.gray(e)}`)}if(n.yes===!1){let e=await Ma({message:`Ready to update ${R(`components`)}? ${P.default.gray(`(Make sure you have committed your changes before proceeding!)`)}`,initialValue:!0});(H(e)||e===!1)&&q()}let c=[],l=await yo({baseUrl:i,items:await vo({registryUrl:i,registryIndex:a,items:s.map(e=>e.name)})});l.sort((e,t)=>e.name.localeCompare(t.name));let u=[];for(let e of l)e.cssVars&&u.push({cssVars:e.cssVars}),e.type===`registry:font`&&e.font&&u.push({fonts:[{font:e.font}]});let d=Uo(u),f={},p=new Set,m=new Set,h=[],g={},v={};for(let e of l){let r=xo(t,e.type);e.dependencies?.forEach(e=>p.add(e)),e.devDependencies?.forEach(e=>m.add(e)),e.type===`registry:font`&&h.push({name:e.name,...e.font}),c.push({title:`Updating ${R(e.name)}`,async task(){for(let n of e.files??[]){let r=So(t,e,n),{content:i,dependencies:a,devDependencies:o,filePath:s}=await Se({content:n.content,filePath:r,config:t,supportedFontMarkers:d},[_e,_,ve,be,!t.typescript&&ge]);a?.forEach(e=>p.add(e)),o?.forEach(e=>m.add(e));let c=O.parse(s).dir;A(c)||await j.mkdir(c,{recursive:!0}),await j.writeFile(s,i,`utf8`)}e.css&&(v=(0,Co.default)(v,e.css)),e.cssVars&&(g=(0,Co.default)(g,e.cssVars));let i=O.resolve(r,e.name);if(e.files&&e.files?.length>1){let n=e.files.map(n=>{let r=So(t,e,n);return!t.typescript&&r.endsWith(`.ts`)?r.replace(`.ts`,`.js`):r}),r=(await j.readdir(i,{withFileTypes:!0})).map(e=>O.resolve(e.parentPath,e.name)).filter(e=>!n.includes(e));r.length>0&&(f[e.name]=r)}let a=O.relative(n.cwd,i);return`${R(e.name)} updated at ${P.default.gray(a)}`}})}let{css:y,cssVars:b,dependencies:x}=Wo(h);if(v=(0,Co.default)(v,y),g=(0,Co.default)(g,b),x.forEach(e=>m.add(e)),(Object.keys(g).length>0||Object.keys(v).length>0)&&(v=(0,Co.default)(v,me),c.push({title:`Updating stylesheet`,async task(){let n=t.resolvedPaths.tailwindCss,r=Bo(await j.readFile(n,`utf8`),{css:v,cssVars:g});await j.writeFile(n,r,`utf8`);let i=O.relative(e,n);return`${R(`Stylesheet`)} updated at ${P.default.dim(i)}`}})),await Ja(c),n.deps)await Ks({cwd:e,dependencies:Array.from(p),devDependencies:Array.from(m),prompt:!0});else if(p.size>0||m.size>0){let e=$a([...p,...m],7);K.warn(`Components have been updated ${P.default.bold(P.default.red(`without`))} the following ${R(`dependencies`)}:\n${P.default.gray(e)}`)}for(let[t,n]of Object.entries(f))K.warn(`The ${R(t)} component does not use the following files:\n${n.map(t=>P.default.white(`- ${P.default.gray(O.relative(e,t))}`)).join(`
139
139
  `)}`);Object.keys(f).length>0&&K.message(P.default.bold(`You may want to delete them.`))}const cl=ye.extend(xe());function ll(e){let t=Yr(e),n=ul({dependencies:pl(t.dependencies,e),devDependencies:pl(t.devDependencies,e)});return n=dl(n),n}function ul(e){for(let t of Object.values(e))for(let[n,r]of Object.entries(t.versions)){let i=t.deps[r],a=`@types/${n.replace(/^@(.*)\/(.*)/,`$1__$2`)}`;(e.dependencies.versions[a]??e.devDependencies.versions[a])&&i.push(a)}return e}function dl(e){for(let t of Object.values(e))for(let[n,r]of Object.entries(t.deps))t.deps[n]=r.map(t=>e.dependencies.versions[t]||e.devDependencies.versions[t]).filter(e=>e!==void 0);return e}const fl=[`svelte`,`@sveltejs/kit`,`tailwindcss`,`vite`];function pl(e,t){let n={},r={};for(let[i,a]of Object.entries(e??{})){let e=a?`${i}@${a}`:i,o=n[e]??=[];r[i]=e;let s=Bn(t,i)?.pkg;if(!s)continue;let{peerDependencies:c={},peerDependenciesMeta:l={}}=s;for(let[e]of Object.entries(c))fl.includes(e)||l[e]?.optional||o.push(e)}return{deps:n,versions:r}}async function ml(e){let{filename:t,source:n}=e,r,i;if(t.endsWith(`.svelte`)){let{code:e}=await rt.preprocess(n,[],{filename:t}),a=rt.parse(e,{filename:t});r=a.instance,a.module&&(i=a.module)}else if(t.endsWith(`.ts`)||t.endsWith(`.js`))r=cl.parse(n,{ecmaVersion:`latest`,sourceType:`module`,sourceFile:t});else return{};let a=new Set,o=new Set,s=t=>{if(t.type!==`ImportDeclaration`)return;let n=t.source.value;hl(n,e.dependencies).forEach(e=>a.add(e)),hl(n,e.devDependencies).forEach(e=>o.add(e))};return he(r,{enter:s}),i&&he(i,{enter:s}),{dependencies:u(a),devDependencies:u(o)}}function hl(e,t){let n=[],r=(t.versions[e]?e:void 0)??Object.keys(t.versions).find(t=>e.startsWith(t));if(r&&!fl.includes(r)){let e=t.versions[r],i=t.deps[e];n.push(e),i?.forEach(e=>n.push(e))}return n}const gl=a({registry:p(),cwd:p(),output:p()}),_l=new De().command(`build`).description(`build components for a shadcn-svelte registry`).argument(`[registry]`,`path to registry.json file`,`./registry.json`).option(`-c, --cwd <path>`,`the working directory`,D.cwd()).option(`-o, --output <path>`,`destination directory for json files`,`./static/r`).action(async(e,t)=>{try{Qa();let n=gl.parse({registry:e,...t}),r=O.resolve(n.cwd),i=O.resolve(n.cwd,n.output),a=O.resolve(n.cwd,n.registry);for(let[e,t]of Object.entries({cwd:r,registry:a}))if(!A(t))throw m(`The '${e}' path ${P.default.cyan(t)} does not exist.`);await vl({cwd:r,output:i,registry:a}),Ia(`${P.default.green(`Success!`)} Registry build completed.`)}catch(e){eo(e)}});async function vl(e){let t=Ua();t.start(`Parsing registry schema`);let n=await j.readFile(e.registry,`utf8`),r=pe.parse(JSON.parse(n));t.stop(`Parsed registry schema at ${P.default.dim(O.relative(e.cwd,e.registry))}`);let i=r.items.map(e=>({...e,relativeUrl:`${e.name}.json`}));A(e.output)||await j.mkdir(e.output,{recursive:!0});let a=[];a.push({title:`Building registry index`,async task(){let t=O.resolve(e.output,`index.json`),n=oe.parse(i);await j.writeFile(t,JSON.stringify(n,null,` `),`utf8`);let r=O.relative(e.cwd,t);return`Registry index written to ${P.default.dim(r)}`}}),a.push({title:`Building registry items`,async task(t){let n=ll(e.cwd);if(r.overrideDependencies){let e=(e,t)=>{let{name:n}=qs(e),r=t.versions[n];if(r){let i=t.deps[r];delete t.deps[r],t.versions[n]=e,t.deps[e]=i??[]}};for(let t of r.overrideDependencies)e(t,n.dependencies),e(t,n.devDependencies)}for(let i of r.items){t(`Building item ${P.default.cyan(i.name)}`);let a=i.files.length===1,o=[`registry:page`,`registry:ui`,`registry:file`],s=i.files.map(async e=>{let t=await j.readFile(e.path,`utf8`);t=bl(r.aliases??={},t);let n=O.basename(e.path),s;return s=a?n:o.includes(e.type)?`${i.name}/${n}`:n,{content:t,name:n,target:s,...e}}),c=await Promise.all(s),l=new Set(i.dependencies),d=new Set(i.devDependencies),f=new Set(i.registryDependencies.map(yl));if(!(l.size>0&&d.size>0))for(let e of c){let t=await ml({...n,filename:e.name,source:e.content});i.dependencies||t.dependencies?.forEach(e=>{e.startsWith(`@types/`)?d.add(e):l.add(e)}),i.devDependencies||t.devDependencies?.forEach(e=>d.add(e))}let p=ue.parse({...i,$schema:`${y}/schema/registry-item.json`,registryDependencies:u(f),dependencies:u(l),devDependencies:u(d),files:c},{jitless:!0}),m=O.resolve(e.output,`${i.name}.json`);await j.writeFile(m,JSON.stringify(p,null,` `),`utf8`)}let i=O.relative(e.cwd,e.output);return`Registry items written to ${P.default.dim(i)}`}}),await Ja(a)}function yl(e){return e.startsWith(`local:`)?e.replace(/^local:(.*)/,`./$1.json`):e}function bl(e,t){for(let n of S){let r=b[n],i=e[n]??=r.defaultPath;t=t.replaceAll(i,r.placeholder)}return t}const xl=new De().command(`registry`).addCommand(_l);var Sl=e({add:()=>Zs,init:()=>tl,registry:()=>xl,update:()=>ol});D.on(`SIGINT`,()=>D.exit(0)),D.on(`SIGTERM`,()=>D.exit(0));const Cl=D.versions.node;Number.parseInt(Cl.split(`.`).at(0))<20&&(console.error(`Node.js v${Cl} is out of date and unsupported!`),console.error(`Please use Node.js v20 or higher.`),D.exit(1));async function wl(){let e=Ln(),t=new De().name(`shadcn-svelte`).description(`Add shadcn-svelte components to your project`).version(e.version||`0.0.0`,`-v, --version`,`display the version number`);for(let e of Object.values(Sl))t.addCommand(e);t.parse()}wl();export{};
@@ -1,5 +1,5 @@
1
1
  //#region src/preset/preset.d.ts
2
- declare const PRESET_STYLES: readonly ["nova", "vega", "maia", "lyra", "mira", "luma"];
2
+ declare const PRESET_STYLES: readonly ["nova", "vega", "maia", "lyra", "mira", "luma", "sera", "rhea"];
3
3
  declare const PRESET_BASE_COLORS: {
4
4
  readonly neutral: {
5
5
  readonly name: "Neutral";
@@ -132,8 +132,8 @@ declare const PRESET_THEMES: {
132
132
  declare const PRESET_THEME_KEYS: ("neutral" | "stone" | "zinc" | "mauve" | "olive" | "mist" | "taupe" | "amber" | "blue" | "cyan" | "emerald" | "fuchsia" | "green" | "indigo" | "lime" | "orange" | "pink" | "purple" | "red" | "rose" | "sky" | "teal" | "violet" | "yellow")[];
133
133
  declare const PRESET_CHART_COLORS: ("neutral" | "stone" | "zinc" | "mauve" | "olive" | "mist" | "taupe" | "amber" | "blue" | "cyan" | "emerald" | "fuchsia" | "green" | "indigo" | "lime" | "orange" | "pink" | "purple" | "red" | "rose" | "sky" | "teal" | "violet" | "yellow")[];
134
134
  declare const PRESET_ICON_LIBRARIES: ("lucide" | "tabler" | "hugeicons" | "phosphor" | "remixicon")[];
135
- declare const PRESET_FONTS: readonly ["inter", "noto-sans", "nunito-sans", "figtree", "roboto", "raleway", "dm-sans", "public-sans", "outfit", "jetbrains-mono", "geist", "geist-mono", "lora", "merriweather", "playfair-display", "noto-serif", "roboto-slab", "oxanium", "manrope", "space-grotesk", "montserrat", "ibm-plex-sans", "source-sans-3", "instrument-sans"];
136
- declare const PRESET_FONT_HEADINGS: readonly ["inherit", "inter", "noto-sans", "nunito-sans", "figtree", "roboto", "raleway", "dm-sans", "public-sans", "outfit", "jetbrains-mono", "geist", "geist-mono", "lora", "merriweather", "playfair-display", "noto-serif", "roboto-slab", "oxanium", "manrope", "space-grotesk", "montserrat", "ibm-plex-sans", "source-sans-3", "instrument-sans"];
135
+ declare const PRESET_FONTS: readonly ["inter", "noto-sans", "nunito-sans", "figtree", "roboto", "raleway", "dm-sans", "public-sans", "outfit", "jetbrains-mono", "geist", "geist-mono", "lora", "merriweather", "playfair-display", "noto-serif", "roboto-slab", "oxanium", "manrope", "space-grotesk", "montserrat", "ibm-plex-sans", "source-sans-3", "instrument-sans", "eb-garamond", "instrument-serif"];
136
+ declare const PRESET_FONT_HEADINGS: readonly ["inherit", "inter", "noto-sans", "nunito-sans", "figtree", "roboto", "raleway", "dm-sans", "public-sans", "outfit", "jetbrains-mono", "geist", "geist-mono", "lora", "merriweather", "playfair-display", "noto-serif", "roboto-slab", "oxanium", "manrope", "space-grotesk", "montserrat", "ibm-plex-sans", "source-sans-3", "instrument-sans", "eb-garamond", "instrument-serif"];
137
137
  declare const PRESET_RADII: {
138
138
  readonly default: {
139
139
  readonly name: "default";
@@ -161,7 +161,7 @@ declare const PRESET_RADII: {
161
161
  readonly value: "0.875rem";
162
162
  };
163
163
  };
164
- declare const PRESET_RADII_KEYS: ("default" | "none" | "small" | "medium" | "large")[];
164
+ declare const PRESET_RADII_KEYS: ("default" | "small" | "none" | "medium" | "large")[];
165
165
  declare const PRESET_MENU_ACCENTS: readonly ["subtle", "bold"];
166
166
  declare const PRESET_MENU_COLORS: readonly ["default", "inverted", "default-translucent", "inverted-translucent"];
167
167
  type PresetConfig = {
@@ -1 +1 @@
1
- import{_ as e,a as t,b as n,c as r,d as i,f as a,g as o,h as s,i as c,l,m as u,n as d,o as f,p,r as m,s as h,t as g,u as _,v,y}from"../preset-CK0X-mk-.mjs";export{g as DEFAULT_PRESET_CONFIG,d as PRESET_BASE_COLORS,m as PRESET_BASE_COLOR_KEYS,c as PRESET_CHART_COLORS,t as PRESET_FONTS,f as PRESET_ICON_LIBRARIES,h as PRESET_MENU_ACCENTS,r as PRESET_MENU_COLORS,l as PRESET_RADII,_ as PRESET_STYLES,i as PRESET_THEMES,a as PRESET_THEME_KEYS,p as decodePreset,u as encodePreset,s as fromBase62,o as generateRandomConfig,e as generateRandomPreset,v as isPresetCode,y as isValidPreset,n as toBase62};
1
+ import{_ as e,a as t,b as n,c as r,d as i,f as a,g as o,h as s,i as c,l,m as u,n as d,o as f,p,r as m,s as h,t as g,u as _,v,y}from"../preset-DZGU31yg.mjs";export{g as DEFAULT_PRESET_CONFIG,d as PRESET_BASE_COLORS,m as PRESET_BASE_COLOR_KEYS,c as PRESET_CHART_COLORS,t as PRESET_FONTS,f as PRESET_ICON_LIBRARIES,h as PRESET_MENU_ACCENTS,r as PRESET_MENU_COLORS,l as PRESET_RADII,_ as PRESET_STYLES,i as PRESET_THEMES,a as PRESET_THEME_KEYS,p as decodePreset,u as encodePreset,s as fromBase62,o as generateRandomConfig,e as generateRandomPreset,v as isPresetCode,y as isValidPreset,n as toBase62};
@@ -0,0 +1 @@
1
+ import{a as e,t}from"./libraries-tdyxKhrQ.mjs";const n=[`nova`,`vega`,`maia`,`lyra`,`mira`,`luma`,`sera`,`rhea`],r={neutral:{name:`Neutral`,color:`#737373`},stone:{name:`Stone`,color:`#79716B`},zinc:{name:`Zinc`,color:`#71717B`},mauve:{name:`Mauve`,color:`#79697B`},olive:{name:`Olive`,color:`#7C7C67`},mist:{name:`Mist`,color:`#67787C`},taupe:{name:`Taupe`,color:`#7C6D67`}},i=e(r),a={neutral:{name:`Neutral`,color:`#737373`},stone:{name:`Stone`,color:`#78716c`},zinc:{name:`Zinc`,color:`#71717a`},amber:{name:`Amber`,color:`#FD9A00`},blue:{name:`Blue`,color:`#2B7FFF`},cyan:{name:`Cyan`,color:`#00B8DB`},emerald:{name:`Emerald`,color:`#00BC7D`},fuchsia:{name:`Fuchsia`,color:`#E12AFB`},green:{name:`Green`,color:`#00C950`},indigo:{name:`Indigo`,color:`#615FFF`},lime:{name:`Lime`,color:`#7CCF00`},orange:{name:`Orange`,color:`#FF6900`},pink:{name:`Pink`,color:`#F6339A`},purple:{name:`Purple`,color:`#AD46FF`},red:{name:`Red`,color:`#FB2C36`},rose:{name:`Rose`,color:`#FF2056`},sky:{name:`Sky`,color:`#00A6F4`},teal:{name:`Teal`,color:`#00BBA7`},violet:{name:`Violet`,color:`#8E51FF`},yellow:{name:`Yellow`,color:`#EFB100`},mauve:{name:`Mauve`,color:`#79697b`},olive:{name:`Olive`,color:`#7c7c67`},mist:{name:`Mist`,color:`#67787c`},taupe:{name:`Taupe`,color:`#7c6d67`}},o=e(a),s=o,c=e(t),l=`inter.noto-sans.nunito-sans.figtree.roboto.raleway.dm-sans.public-sans.outfit.jetbrains-mono.geist.geist-mono.lora.merriweather.playfair-display.noto-serif.roboto-slab.oxanium.manrope.space-grotesk.montserrat.ibm-plex-sans.source-sans-3.instrument-sans.eb-garamond.instrument-serif`.split(`.`),u=[`inherit`,...l],d={default:{name:`default`,label:`Default`,value:`0.5rem`},none:{name:`none`,label:`None`,value:`0rem`},small:{name:`small`,label:`Small`,value:`0.45rem`},medium:{name:`medium`,label:`Medium`,value:`0.625rem`},large:{name:`large`,label:`Large`,value:`0.875rem`}},f=e(d),p=[`subtle`,`bold`],m=[`default`,`inverted`,`default-translucent`,`inverted-translucent`],h=[{key:`menuColor`,values:m,bits:3},{key:`menuAccent`,values:p,bits:3},{key:`radius`,values:f,bits:4},{key:`font`,values:l,bits:6},{key:`iconLibrary`,values:c,bits:6},{key:`theme`,values:o,bits:6},{key:`baseColor`,values:i,bits:6},{key:`style`,values:n,bits:6}],g=[...h,{key:`chartColor`,values:s,bits:6},{key:`fontHeading`,values:u,bits:5}],_=Object.fromEntries(g.map(e=>[e.key,e.values[0]])),v=`0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz`,y=[`a`,`b`];function b(e){if(e===0)return`0`;let t=``,n=e;for(;n>0;)t=v[n%62]+t,n=Math.floor(n/62);return t}function x(e){let t=0;for(let n=0;n<e.length;n++){let r=v.indexOf(e[n]);if(r===-1)return-1;t=t*62+r}return t}function S(e){let t={..._,...e},n=0,r=0;for(let e of g){let i=e.values.indexOf(t[e.key]);n+=(i===-1?0:i)*2**r,r+=e.bits}return`b`+b(n)}function C(e){if(!e||e.length<2)return null;let t=e[0];if(!y.includes(t))return null;let n=t===`a`?h:g,r=x(e.slice(1));if(r<0)return null;let i={},a=0;for(let e of n){let t=Math.floor(r/2**a)%2**e.bits;i[e.key]=t<e.values.length?e.values[t]:e.values[0],a+=e.bits}return t===`a`&&(i.fontHeading=`inherit`),i}function w(e){if(!e||e.length<2||e.length>10||!y.includes(e[0]))return!1;for(let t=1;t<e.length;t++)if(v.indexOf(e[t])===-1)return!1;return!0}function T(e){return C(e)!==null}function E(){let e=e=>e[Math.floor(Math.random()*e.length)];return Object.fromEntries(g.map(t=>[t.key,e(t.values)]))}function D(){return S(E())}export{D as _,l as a,b,m as c,a as d,o as f,E as g,x as h,s as i,d as l,S as m,r as n,c as o,C as p,i as r,p as s,_ as t,n as u,w as v,T as y};
@@ -1,2 +1,2 @@
1
- import { _ as registryItemFileSchema, a as RegistryIndex, b as registrySchema, c as RegistryItemFile, d as componentsJsonSchema, f as naiveDeepPartialify, g as registryItemCommonSchema, h as registryIndexSchema, i as RegistryFont, l as RegistryItemFileType, m as registryIndexItemSchema, n as CssVars, o as RegistryIndexItem, p as registryBaseColorSchema, r as Registry, s as RegistryItem, t as CssSchema, u as RegistryItemType, v as registryItemFontSchema, y as registryItemSchema } from "../schema-CVDAtU6u.mjs";
1
+ import { _ as registryItemFileSchema, a as RegistryIndex, b as registrySchema, c as RegistryItemFile, d as componentsJsonSchema, f as naiveDeepPartialify, g as registryItemCommonSchema, h as registryIndexSchema, i as RegistryFont, l as RegistryItemFileType, m as registryIndexItemSchema, n as CssVars, o as RegistryIndexItem, p as registryBaseColorSchema, r as Registry, s as RegistryItem, t as CssSchema, u as RegistryItemType, v as registryItemFontSchema, y as registryItemSchema } from "../schema-D9GMZn-h.mjs";
2
2
  export { CssSchema, CssVars, Registry, RegistryFont, RegistryIndex, RegistryIndexItem, RegistryItem, RegistryItemFile, RegistryItemFileType, RegistryItemType, componentsJsonSchema, naiveDeepPartialify, registryBaseColorSchema, registryIndexItemSchema, registryIndexSchema, registryItemCommonSchema, registryItemFileSchema, registryItemFontSchema, registryItemSchema, registrySchema };
@@ -1 +1 @@
1
- import"../constants-D_Gv5Vlp.mjs";import"../preset-CK0X-mk-.mjs";import{a as e,c as t,i as n,l as r,n as i,o as a,r as o,s,t as c,u as l}from"../schema-CSus-uXy.mjs";export{c as componentsJsonSchema,i as naiveDeepPartialify,o as registryBaseColorSchema,n as registryIndexItemSchema,e as registryIndexSchema,a as registryItemCommonSchema,s as registryItemFileSchema,t as registryItemFontSchema,r as registryItemSchema,l as registrySchema};
1
+ import"../constants-D_Gv5Vlp.mjs";import"../preset-DZGU31yg.mjs";import{a as e,c as t,i as n,l as r,n as i,o as a,r as o,s,t as c,u as l}from"../schema-D5x96-U7.mjs";export{c as componentsJsonSchema,i as naiveDeepPartialify,o as registryBaseColorSchema,n as registryIndexItemSchema,e as registryIndexSchema,a as registryItemCommonSchema,s as registryItemFileSchema,t as registryItemFontSchema,r as registryItemSchema,l as registrySchema};
@@ -1 +1 @@
1
- import{_ as e,b as t,c as n,d as r,f as i,g as a,h as o,l as s,m as c,p as l,u,v as d,y as f}from"./libraries-tdyxKhrQ.mjs";import{i as p}from"./constants-D_Gv5Vlp.mjs";import{c as m,o as h,r as g,s as _}from"./preset-CK0X-mk-.mjs";const v=h,y=g,b=_,x=m,S={$schema:`${p}/schema.json`,aliases:{lib:`$lib`,utils:`$lib/utils`,hooks:`$lib/hooks`,components:`$lib/components`,ui:`$lib/components/ui`},tailwind:{baseColor:`slate`,css:`src/app.css`},typescript:!0,registry:`${p}/registry`,style:`nova`,iconLibrary:`lucide`,menuColor:`default`,menuAccent:`subtle`},C=e=>e.endsWith(`/`)?e.slice(0,-1):e,w=e=>f(`Missing aliases.${e} alias`),T=a({$schema:f().optional(),tailwind:a({css:f(`Missing tailwind.css path`),baseColor:f(`Missing tailwind.baseColor field`)},`Missing tailwind object`),aliases:a({components:w(`components`),utils:w(`utils`)},`Missing aliases object`),typescript:t([i(),a({config:f()})],`Invalid typescript field. Must either be 'true', 'false', or '{ "config": "path/to/tsconfig.json" }'`).default(S.typescript)}),E=T.extend({style:f().optional()}),D=T.extend({aliases:T.shape.aliases.extend({ui:w(`ui`).default(S.aliases.ui),hooks:w(`hooks`).default(S.aliases.hooks),lib:w(`lib`).default(S.aliases.lib)}),registry:f().default(S.registry),style:f().optional(),iconLibrary:s(v).optional(),menuColor:s(x).optional(),menuAccent:s(b).optional()}),O=a({...E.shape,...D.shape,aliases:a({...E.shape.aliases.shape,...D.shape.aliases.shape})}),k=O.extend({sveltekit:i(),resolvedPaths:a({cwd:f(),tailwindCss:f(),utils:f(),components:f(),hooks:f(),ui:f(),lib:f()}),style:f().default(S.style),iconLibrary:s(v).default(S.iconLibrary),menuColor:s(x).default(S.menuColor),menuAccent:s(b).default(S.menuAccent)}),A=[`registry:lib`,`registry:block`,`registry:component`,`registry:ui`,`registry:hook`,`registry:page`,`registry:file`,`registry:theme`,`registry:style`,`registry:item`,`registry:base`,`registry:font`],j=[`registry:block`],M=[`registry:example`,`registry:internal`],N=s([...A,...j,...M]).describe(`The type of the item. Used to determine the type and target path of the item when resolved for a project.`),P=s(A).describe(`The type of the file. Used to resolve the file's path for a project.`),F=a({content:f().describe(`The content of the file.`),type:P,target:f().describe(`The target path of the file. This is where the file will be installed.`)}).describe(`The main payload of the registry item. This is an array of files that are part of the registry item. Each file is an object with a target, type, and content.`),I=f().array().describe(`An array of registry items that this item depends on. Use the name of the item to reference shadcn/ui components and urls to reference other registries.`),L=a({name:f().describe(`The name of the item. Used to identify the item in the registry. It should be unique for your registry.`),title:f().optional().describe(`The human-readable title for your registry item. Keep it short and descriptive.`),type:N,author:f().min(2,`Author name must be at least 2 characters`).optional().describe(`The author of the item. Recommended format: username <url>`),description:f().optional().describe(`The description of the item. Used to provide a brief overview of the item.`),dependencies:f().array().optional().describe(`An array of NPM dependencies required by the registry item.`),devDependencies:f().array().optional().describe(`An array of NPM dev dependencies required by the registry item.`),registryDependencies:e(I),meta:d(f(),u()).optional().describe(`Additional metadata for the registry item. This is an object with any key value pairs.`)}),R=L.extend({relativeUrl:f()}),z=r(R),B=d(f(),f()),V=a({cssVars:a({light:B,dark:B})}),H=a({theme:e(B).describe(`CSS variables for the @theme directive. For Tailwind v4 projects only. Use tailwind for older projects.`),light:e(B).describe(`CSS variables for the light theme.`),dark:e(B).describe(`CSS variables for the dark theme.`)}).describe(`The css variables for the registry item. This will be merged with the project's css variables.`),U=d(f().describe(`Direct CSS string (e.g., 'font-family: sans-serif; line-height: 1.5;')`),c(()=>t([f().describe(`CSS property value (e.g., 'blue', 'var(--color-primary)')`),U.describe(`CSS property value for nested rule`)])).describe(`CSS properties or nested selectors`)).describe(`CSS definitions to be added to the project's CSS file. Supports at-rules, selectors, nested rules, utilities, layers, and more.`),W=a({$schema:f().optional(),...L.shape,docs:f().optional().describe(`The documentation for the registry item. This is a markdown string.`),categories:f().array().optional().describe(`The categories of the registry item. This is an array of strings.`),css:e(U),cssVars:e(H),files:r(F).optional()}),G=a({family:f(),provider:o(`google`),import:f(),variable:f(),weight:r(f()).optional(),subsets:r(f()).optional(),selector:f().optional(),dependency:f().optional()}),K=l(`type`,[W.extend({type:o(`registry:base`),config:Y(O).optional()}),W.extend({type:o(`registry:font`),font:G}),W.extend({type:N.exclude([`registry:base`,`registry:font`])})]),q=a({$schema:f().optional(),name:f().describe(`The name of the registry.`),homepage:f().describe(`The homepage of the registry.`),overrideDependencies:f().array().optional().describe("An array of NPM dependencies that should have their versions overridden during registry `build`."),aliases:a({lib:f().optional(),ui:f().optional(),components:f().optional(),utils:f().optional(),hooks:f().optional()}).optional().describe("Defines which internal import paths should be transformed during registry `build`."),items:L.extend({files:F.partial().extend({path:f().describe(`The path to the file relative to the registry root.`),type:P}).array().describe("An array of files that instructs the `build` command on how to locate and parse the registry files."),registryDependencies:I,cssVars:e(H),css:e(U),font:e(G)}).array().describe(`Defines a custom component registry.`)}),J=a({$schema:f().optional(),style:f().optional().describe(`DEPRECATED IN TAILWIND v4! The style for your components. This cannot be changed after initialization.`),tailwind:a({css:f().describe(`Path to the CSS file that imports Tailwind CSS into your project.`),baseColor:f().describe(`Used to generate the default color palette for your components. This cannot be changed after initialization.`),config:f().optional().describe("DEPRECATED IN TAILWIND v4! The path to your `tailwind.config.[js|ts]` file.")}),aliases:a({components:f().describe(`Import alias for your components.`),utils:f().describe(`Import alias for your utility functions.`),ui:f().optional().describe("Import alias for your UI components. Defaults to `$lib/components/ui`."),hooks:f().optional().describe("Import alias for your hooks. Defaults to `$lib/hooks`."),lib:f().optional().describe("Import alias for your library, which is typically where you store your components, utils, hooks, etc. Defaults to `$lib`.")}).describe("The CLI uses these values and the `alias` config from your `svelte.config.js` file to place generated components in the correct location."),registry:f().optional().describe(`The registry URL tells the CLI where to fetch the shadcn-svelte components/registry from. You can pin this to a specific preview release or your own fork of the registry.`),typescript:t([i(),a({config:f().describe(`Path to the tsconfig/jsconfig file.`)})]).optional().describe("Used to determine if Typescript is used for this project. When set to `false`, `.js` files will be installed instead. Defaults to `true`."),iconLibrary:s(v).optional().describe(`The icon library to use for your components.`),menuColor:s(x).optional().describe(`The color scheme for menus.`),menuAccent:s(b).optional().describe(`The accent style for menus.`)});function Y(t){let r={};return Object.entries(t.shape).forEach(([t,i])=>{i instanceof n?r[t]=Y(i).optional():r[t]=e(i)}),a(r)}export{z as a,G as c,y as d,S as f,C as g,k as h,R as i,K as l,O as m,Y as n,W as o,D as p,V as r,F as s,J as t,q as u};
1
+ import{_ as e,b as t,c as n,d as r,f as i,g as a,h as o,l as s,m as c,p as l,u,v as d,y as f}from"./libraries-tdyxKhrQ.mjs";import{i as p}from"./constants-D_Gv5Vlp.mjs";import{c as m,o as h,r as g,s as _}from"./preset-DZGU31yg.mjs";const v=h,y=g,b=_,x=m,S={$schema:`${p}/schema.json`,aliases:{lib:`$lib`,utils:`$lib/utils`,hooks:`$lib/hooks`,components:`$lib/components`,ui:`$lib/components/ui`},tailwind:{baseColor:`slate`,css:`src/app.css`},typescript:!0,registry:`${p}/registry`,style:`nova`,iconLibrary:`lucide`,menuColor:`default`,menuAccent:`subtle`},C=e=>e.endsWith(`/`)?e.slice(0,-1):e,w=e=>f(`Missing aliases.${e} alias`),T=a({$schema:f().optional(),tailwind:a({css:f(`Missing tailwind.css path`),baseColor:f(`Missing tailwind.baseColor field`)},`Missing tailwind object`),aliases:a({components:w(`components`),utils:w(`utils`)},`Missing aliases object`),typescript:t([i(),a({config:f()})],`Invalid typescript field. Must either be 'true', 'false', or '{ "config": "path/to/tsconfig.json" }'`).default(S.typescript)}),E=T.extend({style:f().optional()}),D=T.extend({aliases:T.shape.aliases.extend({ui:w(`ui`).default(S.aliases.ui),hooks:w(`hooks`).default(S.aliases.hooks),lib:w(`lib`).default(S.aliases.lib)}),registry:f().default(S.registry),style:f().optional(),iconLibrary:s(v).optional(),menuColor:s(x).optional(),menuAccent:s(b).optional()}),O=a({...E.shape,...D.shape,aliases:a({...E.shape.aliases.shape,...D.shape.aliases.shape})}),k=O.extend({sveltekit:i(),resolvedPaths:a({cwd:f(),tailwindCss:f(),utils:f(),components:f(),hooks:f(),ui:f(),lib:f()}),style:f().default(S.style),iconLibrary:s(v).default(S.iconLibrary),menuColor:s(x).default(S.menuColor),menuAccent:s(b).default(S.menuAccent)}),A=[`registry:lib`,`registry:block`,`registry:component`,`registry:ui`,`registry:hook`,`registry:page`,`registry:file`,`registry:theme`,`registry:style`,`registry:item`,`registry:base`,`registry:font`],j=[`registry:block`],M=[`registry:example`,`registry:internal`],N=s([...A,...j,...M]).describe(`The type of the item. Used to determine the type and target path of the item when resolved for a project.`),P=s(A).describe(`The type of the file. Used to resolve the file's path for a project.`),F=a({content:f().describe(`The content of the file.`),type:P,target:f().describe(`The target path of the file. This is where the file will be installed.`)}).describe(`The main payload of the registry item. This is an array of files that are part of the registry item. Each file is an object with a target, type, and content.`),I=f().array().describe(`An array of registry items that this item depends on. Use the name of the item to reference shadcn/ui components and urls to reference other registries.`),L=a({name:f().describe(`The name of the item. Used to identify the item in the registry. It should be unique for your registry.`),title:f().optional().describe(`The human-readable title for your registry item. Keep it short and descriptive.`),type:N,author:f().min(2,`Author name must be at least 2 characters`).optional().describe(`The author of the item. Recommended format: username <url>`),description:f().optional().describe(`The description of the item. Used to provide a brief overview of the item.`),dependencies:f().array().optional().describe(`An array of NPM dependencies required by the registry item.`),devDependencies:f().array().optional().describe(`An array of NPM dev dependencies required by the registry item.`),registryDependencies:e(I),meta:d(f(),u()).optional().describe(`Additional metadata for the registry item. This is an object with any key value pairs.`)}),R=L.extend({relativeUrl:f()}),z=r(R),B=d(f(),f()),V=a({cssVars:a({light:B,dark:B})}),H=a({theme:e(B).describe(`CSS variables for the @theme directive. For Tailwind v4 projects only. Use tailwind for older projects.`),light:e(B).describe(`CSS variables for the light theme.`),dark:e(B).describe(`CSS variables for the dark theme.`)}).describe(`The css variables for the registry item. This will be merged with the project's css variables.`),U=d(f().describe(`Direct CSS string (e.g., 'font-family: sans-serif; line-height: 1.5;')`),c(()=>t([f().describe(`CSS property value (e.g., 'blue', 'var(--color-primary)')`),U.describe(`CSS property value for nested rule`)])).describe(`CSS properties or nested selectors`)).describe(`CSS definitions to be added to the project's CSS file. Supports at-rules, selectors, nested rules, utilities, layers, and more.`),W=a({$schema:f().optional(),...L.shape,docs:f().optional().describe(`The documentation for the registry item. This is a markdown string.`),categories:f().array().optional().describe(`The categories of the registry item. This is an array of strings.`),css:e(U),cssVars:e(H),files:r(F).optional()}),G=a({family:f(),provider:o(`google`),import:f(),variable:f(),weight:r(f()).optional(),subsets:r(f()).optional(),selector:f().optional(),dependency:f().optional()}),K=l(`type`,[W.extend({type:o(`registry:base`),config:Y(O).optional()}),W.extend({type:o(`registry:font`),font:G}),W.extend({type:N.exclude([`registry:base`,`registry:font`])})]),q=a({$schema:f().optional(),name:f().describe(`The name of the registry.`),homepage:f().describe(`The homepage of the registry.`),overrideDependencies:f().array().optional().describe("An array of NPM dependencies that should have their versions overridden during registry `build`."),aliases:a({lib:f().optional(),ui:f().optional(),components:f().optional(),utils:f().optional(),hooks:f().optional()}).optional().describe("Defines which internal import paths should be transformed during registry `build`."),items:L.extend({files:F.partial().extend({path:f().describe(`The path to the file relative to the registry root.`),type:P}).array().describe("An array of files that instructs the `build` command on how to locate and parse the registry files."),registryDependencies:I,cssVars:e(H),css:e(U),font:e(G)}).array().describe(`Defines a custom component registry.`)}),J=a({$schema:f().optional(),style:f().optional().describe(`DEPRECATED IN TAILWIND v4! The style for your components. This cannot be changed after initialization.`),tailwind:a({css:f().describe(`Path to the CSS file that imports Tailwind CSS into your project.`),baseColor:f().describe(`Used to generate the default color palette for your components. This cannot be changed after initialization.`),config:f().optional().describe("DEPRECATED IN TAILWIND v4! The path to your `tailwind.config.[js|ts]` file.")}),aliases:a({components:f().describe(`Import alias for your components.`),utils:f().describe(`Import alias for your utility functions.`),ui:f().optional().describe("Import alias for your UI components. Defaults to `$lib/components/ui`."),hooks:f().optional().describe("Import alias for your hooks. Defaults to `$lib/hooks`."),lib:f().optional().describe("Import alias for your library, which is typically where you store your components, utils, hooks, etc. Defaults to `$lib`.")}).describe("The CLI uses these values and the `alias` config from your `svelte.config.js` file to place generated components in the correct location."),registry:f().optional().describe(`The registry URL tells the CLI where to fetch the shadcn-svelte components/registry from. You can pin this to a specific preview release or your own fork of the registry.`),typescript:t([i(),a({config:f().describe(`Path to the tsconfig/jsconfig file.`)})]).optional().describe("Used to determine if Typescript is used for this project. When set to `false`, `.js` files will be installed instead. Defaults to `true`."),iconLibrary:s(v).optional().describe(`The icon library to use for your components.`),menuColor:s(x).optional().describe(`The color scheme for menus.`),menuAccent:s(b).optional().describe(`The accent style for menus.`)});function Y(t){let r={};return Object.entries(t.shape).forEach(([t,i])=>{i instanceof n?r[t]=Y(i).optional():r[t]=e(i)}),a(r)}export{z as a,G as c,y as d,S as f,C as g,k as h,R as i,K as l,O as m,Y as n,W as o,D as p,V as r,F as s,J as t,q as u};
@@ -438,8 +438,8 @@ declare const componentsJsonSchema: z.ZodObject<{
438
438
  "inverted-translucent": "inverted-translucent";
439
439
  }>>;
440
440
  menuAccent: z.ZodOptional<z.ZodEnum<{
441
- subtle: "subtle";
442
441
  bold: "bold";
442
+ subtle: "subtle";
443
443
  }>>;
444
444
  }, z.core.$strip>;
445
445
  /**
@@ -1,4 +1,4 @@
1
- import { t as CssSchema } from "../schema-CVDAtU6u.mjs";
1
+ import { t as CssSchema } from "../schema-D9GMZn-h.mjs";
2
2
 
3
3
  //#region src/utils/css.d.ts
4
4
  declare function createGlobalCssFile(): string;
@@ -1,2 +1,2 @@
1
- import { a as rewriteFontMarkers, c as transformImports, i as transform, l as transformIcons, n as Transformer, o as transformFont, r as TransformerResult, s as transformMenu, t as TransformOptions, u as transformStripTypes } from "../../index-SThf27n7.mjs";
1
+ import { a as rewriteFontMarkers, c as transformImports, i as transform, l as transformIcons, n as Transformer, o as transformFont, r as TransformerResult, s as transformMenu, t as TransformOptions, u as transformStripTypes } from "../../index-Dnj1qeJ4.mjs";
2
2
  export { TransformOptions, Transformer, TransformerResult, rewriteFontMarkers, transform, transformFont, transformIcons, transformImports, transformMenu, transformStripTypes };
@@ -1,2 +1,2 @@
1
- import { a as rewriteFontMarkers, o as transformFont } from "../../index-SThf27n7.mjs";
1
+ import { a as rewriteFontMarkers, o as transformFont } from "../../index-Dnj1qeJ4.mjs";
2
2
  export { rewriteFontMarkers, transformFont };
@@ -1,2 +1,2 @@
1
- import { l as transformIcons } from "../../index-SThf27n7.mjs";
1
+ import { l as transformIcons } from "../../index-Dnj1qeJ4.mjs";
2
2
  export { transformIcons };
@@ -1,2 +1,2 @@
1
- import { c as transformImports } from "../../index-SThf27n7.mjs";
1
+ import { c as transformImports } from "../../index-Dnj1qeJ4.mjs";
2
2
  export { transformImports };
@@ -1,2 +1,2 @@
1
- import { s as transformMenu } from "../../index-SThf27n7.mjs";
1
+ import { s as transformMenu } from "../../index-Dnj1qeJ4.mjs";
2
2
  export { transformMenu };
@@ -1,2 +1,2 @@
1
- import { u as transformStripTypes } from "../../index-SThf27n7.mjs";
1
+ import { u as transformStripTypes } from "../../index-Dnj1qeJ4.mjs";
2
2
  export { transformStripTypes };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "shadcn-svelte",
3
- "version": "1.2.7",
3
+ "version": "1.3.0",
4
4
  "description": "Add components to your apps.",
5
5
  "license": "MIT",
6
6
  "author": {
@@ -1 +0,0 @@
1
- import{a as e,t}from"./libraries-tdyxKhrQ.mjs";const n=[`nova`,`vega`,`maia`,`lyra`,`mira`,`luma`],r={neutral:{name:`Neutral`,color:`#737373`},stone:{name:`Stone`,color:`#79716B`},zinc:{name:`Zinc`,color:`#71717B`},mauve:{name:`Mauve`,color:`#79697B`},olive:{name:`Olive`,color:`#7C7C67`},mist:{name:`Mist`,color:`#67787C`},taupe:{name:`Taupe`,color:`#7C6D67`}},i=e(r),a={neutral:{name:`Neutral`,color:`#737373`},stone:{name:`Stone`,color:`#78716c`},zinc:{name:`Zinc`,color:`#71717a`},amber:{name:`Amber`,color:`#FD9A00`},blue:{name:`Blue`,color:`#2B7FFF`},cyan:{name:`Cyan`,color:`#00B8DB`},emerald:{name:`Emerald`,color:`#00BC7D`},fuchsia:{name:`Fuchsia`,color:`#E12AFB`},green:{name:`Green`,color:`#00C950`},indigo:{name:`Indigo`,color:`#615FFF`},lime:{name:`Lime`,color:`#7CCF00`},orange:{name:`Orange`,color:`#FF6900`},pink:{name:`Pink`,color:`#F6339A`},purple:{name:`Purple`,color:`#AD46FF`},red:{name:`Red`,color:`#FB2C36`},rose:{name:`Rose`,color:`#FF2056`},sky:{name:`Sky`,color:`#00A6F4`},teal:{name:`Teal`,color:`#00BBA7`},violet:{name:`Violet`,color:`#8E51FF`},yellow:{name:`Yellow`,color:`#EFB100`},mauve:{name:`Mauve`,color:`#79697b`},olive:{name:`Olive`,color:`#7c7c67`},mist:{name:`Mist`,color:`#67787c`},taupe:{name:`Taupe`,color:`#7c6d67`}},o=e(a),s=o,c=e(t),l=[`inter`,`noto-sans`,`nunito-sans`,`figtree`,`roboto`,`raleway`,`dm-sans`,`public-sans`,`outfit`,`jetbrains-mono`,`geist`,`geist-mono`,`lora`,`merriweather`,`playfair-display`,`noto-serif`,`roboto-slab`,`oxanium`,`manrope`,`space-grotesk`,`montserrat`,`ibm-plex-sans`,`source-sans-3`,`instrument-sans`],u=[`inherit`,...l],d={default:{name:`default`,label:`Default`,value:`0.5rem`},none:{name:`none`,label:`None`,value:`0rem`},small:{name:`small`,label:`Small`,value:`0.45rem`},medium:{name:`medium`,label:`Medium`,value:`0.625rem`},large:{name:`large`,label:`Large`,value:`0.875rem`}},f=e(d),p=[`subtle`,`bold`],m=[`default`,`inverted`,`default-translucent`,`inverted-translucent`],h=[{key:`menuColor`,values:m,bits:3},{key:`menuAccent`,values:p,bits:3},{key:`radius`,values:f,bits:4},{key:`font`,values:l,bits:6},{key:`iconLibrary`,values:c,bits:6},{key:`theme`,values:o,bits:6},{key:`baseColor`,values:i,bits:6},{key:`style`,values:n,bits:6}],g=[...h,{key:`chartColor`,values:s,bits:6},{key:`fontHeading`,values:u,bits:5}],_=Object.fromEntries(g.map(e=>[e.key,e.values[0]])),v=`0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz`,y=[`a`,`b`];function b(e){if(e===0)return`0`;let t=``,n=e;for(;n>0;)t=v[n%62]+t,n=Math.floor(n/62);return t}function x(e){let t=0;for(let n=0;n<e.length;n++){let r=v.indexOf(e[n]);if(r===-1)return-1;t=t*62+r}return t}function S(e){let t={..._,...e},n=0,r=0;for(let e of g){let i=e.values.indexOf(t[e.key]);n+=(i===-1?0:i)*2**r,r+=e.bits}return`b`+b(n)}function C(e){if(!e||e.length<2)return null;let t=e[0];if(!y.includes(t))return null;let n=t===`a`?h:g,r=x(e.slice(1));if(r<0)return null;let i={},a=0;for(let e of n){let t=Math.floor(r/2**a)%2**e.bits;i[e.key]=t<e.values.length?e.values[t]:e.values[0],a+=e.bits}return t===`a`&&(i.fontHeading=`inherit`),i}function w(e){if(!e||e.length<2||e.length>10||!y.includes(e[0]))return!1;for(let t=1;t<e.length;t++)if(v.indexOf(e[t])===-1)return!1;return!0}function T(e){return C(e)!==null}function E(){let e=e=>e[Math.floor(Math.random()*e.length)];return Object.fromEntries(g.map(t=>[t.key,e(t.values)]))}function D(){return S(E())}export{D as _,l as a,b,m as c,a as d,o as f,E as g,x as h,s as i,d as l,S as m,r as n,c as o,C as p,i as r,p as s,_ as t,n as u,w as v,T as y};