shadcn 4.0.8 → 4.1.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.
@@ -23,11 +23,14 @@ type TransformOpts = {
23
23
  baseColor?: z.infer<typeof registryBaseColorSchema>;
24
24
  transformJsx?: boolean;
25
25
  isRemote?: boolean;
26
+ supportedFontMarkers?: string[];
26
27
  };
27
28
  type Transformer<Output = SourceFile> = (opts: TransformOpts & {
28
29
  sourceFile: SourceFile;
29
30
  }) => Promise<Output>;
30
31
 
32
+ declare const transformFont: Transformer;
33
+
31
34
  declare const transformIcons: Transformer;
32
35
 
33
36
  declare const transformMenu: Transformer;
@@ -36,4 +39,4 @@ declare const transformRender: Transformer;
36
39
 
37
40
  declare function transformDirection(source: string, rtl: boolean): Promise<string>;
38
41
 
39
- export { createStyleMap, transformDirection, transformIcons, transformMenu, transformRender, transformStyle };
42
+ export { createStyleMap, transformDirection, transformFont, transformIcons, transformMenu, transformRender, transformStyle };
@@ -1 +1 @@
1
- export{e as transformDirection,c as transformIcons,f as transformMenu}from'../chunk-JPE2JKEP.js';import'../chunk-CHWMSXYA.js';import R from'postcss';import W from'postcss-selector-parser';import {z}from'zod';import {Project,ScriptKind,SyntaxKind,Node}from'ts-morph';import {twMerge}from'tailwind-merge';var b="cn-",D=z.record(z.string().startsWith(b),z.string());function k(t){let e=R.parse(t),n={};return e.walkRules(i=>{let r=i.selectors??[];if(r.length===0)return;let o=X(i);if(o)for(let c of r){let f=B(c);W(s=>{s.each(g=>{let l=_(g);if(!l)return;let p=l.value;p.startsWith(b)&&(n[p]=n[p]?`${o} ${n[p]}`:o);});}).processSync(f);}}),D.parse(n)}function B(t){return t.replace(/\s*&\s*/g,"").trim()}function X(t){let e=[];for(let n of t.nodes||[])if(n.type==="atrule"&&n.name==="apply"){let i=n.params.trim();i&&e.push(i);}return e.length===0?null:e.join(" ")}function _(t){let e=[];return t.walkClasses(n=>{n.value.startsWith(b)&&e.push(n);}),e.length===0?null:e[e.length-1]}var C=new Set(["cn-menu-target","cn-menu-translucent","cn-logical-sides","cn-rtl-flip"]);function m(t){return Node.isStringLiteral(t)||Node.isNoSubstitutionTemplateLiteral(t)}var w=async({sourceFile:t,styleMap:e})=>{let n=new Set;return G(t,e,n),H(t,e,n),Y(t,e,n),t};function O(t,e,n){let i=t.getLiteralText(),r=y(i);if(r.length===0)return;let o=r.filter(s=>!n.has(s));if(o.length===0){let s=x(i);t.setLiteralValue(s);return}let f=o.filter(s=>!C.has(s)).map(s=>e[s]).filter(s=>!!s);if(f.length>0){let s=f.join(" "),g=x(E(s,i));t.setLiteralValue(g),o.forEach(l=>n.add(l));}else {let s=x(i);t.setLiteralValue(s);}}function G(t,e,n){t.forEachDescendant(i=>{if(!Node.isCallExpression(i))return;let r=i.getExpression();if(!Node.isIdentifier(r)||r.getText()!=="cva")return;let o=i.getArguments()[0];Node.isStringLiteral(o)&&O(o,e,n);let c=i.getArguments()[1];if(!c||!Node.isObjectLiteralExpression(c))return;let f=c.getProperties().find(g=>Node.isPropertyAssignment(g)&&Node.isIdentifier(g.getNameNode())&&g.getNameNode().getText()==="variants");if(!f||!Node.isPropertyAssignment(f))return;let s=f.getInitializer();!s||!Node.isObjectLiteralExpression(s)||s.getProperties().forEach(g=>{if(!Node.isPropertyAssignment(g))return;let l=g.getInitializer();!l||!Node.isObjectLiteralExpression(l)||l.getProperties().forEach(p=>{if(!Node.isPropertyAssignment(p))return;let u=p.getInitializer();u&&Node.isStringLiteral(u)&&O(u,e,n);});});});}function H(t,e,n){t.forEachDescendant(i=>{if(!Node.isJsxAttribute(i)||i.getNameNode().getText()!=="className")return;let r=i.getInitializer();if(!r)return;let o=Q(r);if(o.length===0)return;let c=i.getParent()?.getParent();if(!c||!Node.isJsxOpeningElement(c)&&!Node.isJsxSelfClosingElement(c))return;let f=o.filter(l=>!n.has(l));if(f.length===0){$(r);return}let g=f.filter(l=>!C.has(l)).map(l=>e[l]).filter(l=>!!l);if(g.length>0){let l=g.join(" ");U(c,l);}else $(r);});}function Q(t){let e=[];if(m(t))return y(t.getLiteralText());if(!Node.isJsxExpression(t))return e;let n=t.getExpression();if(!n)return e;if(m(n))return y(n.getLiteralText());if(Node.isCallExpression(n)&&h(n))for(let i of n.getArguments())m(i)&&e.push(...y(i.getLiteralText()));return e}function $(t){if(m(t)){let n=x(t.getLiteralText());t.setLiteralValue(n);return}if(!Node.isJsxExpression(t))return;let e=t.getExpression();if(e){if(m(e)){let n=x(e.getLiteralText());e.setLiteralValue(n);return}if(Node.isCallExpression(e)&&h(e)){for(let n of e.getArguments())if(m(n)){let i=x(n.getLiteralText());n.setLiteralValue(i);}L(e);}}}function y(t){let e=t.matchAll(/\bcn-[\w-]+\b/g);return Array.from(e,n=>n[0])}function x(t){return t.replace(/\bcn-[\w-]+\b/g,e=>C.has(e)?e:"").replace(/\s+/g," ").trim()}function L(t){if(!h(t))return;let e=t.getArguments(),n=e.filter(i=>m(i)?i.getLiteralText().trim()!=="":true);if(n.length!==e.length){let i=n.map(o=>o.getText()),r=t.getParent();r&&Node.isJsxExpression(r)?r.replaceWithText(`{cn(${i.join(", ")})}`):t.replaceWithText(`cn(${i.join(", ")})`);}}function U(t,e){if(!Node.isJsxOpeningElement(t)&&!Node.isJsxSelfClosingElement(t))return;let n=t.getAttributes().find(o=>Node.isJsxAttribute(o)&&o.getNameNode().getText()==="className");if(!n||!Node.isJsxAttribute(n)){t.addAttribute({name:"className",initializer:`{cn(${JSON.stringify(e)})}`});return}let i=n.getInitializer();if(!i){n.setInitializer(`{cn(${JSON.stringify(e)})}`);return}if(m(i)){let o=i.getLiteralText(),c=x(E(e,o));i.setLiteralValue(c);return}if(!Node.isJsxExpression(i))return;let r=i.getExpression();if(!r){n.setInitializer(`{cn(${JSON.stringify(e)})}`);return}if(m(r)){let o=r.getLiteralText(),c=x(E(e,o));r.setLiteralValue(c);return}if(Node.isCallExpression(r)&&h(r)){let o=r.getArguments()[0];if(m(o)){let s=o.getLiteralText(),g=x(E(e,s));o.setLiteralValue(g);for(let l=1;l<r.getArguments().length;l++){let p=r.getArguments()[l];if(m(p)){let u=p.getLiteralText(),d=x(u);d!==u&&p.setLiteralValue(d);}}L(r);return}let c=r.getArguments().map(s=>{if(m(s)){let g=x(s.getLiteralText());return g?JSON.stringify(g):null}return s.getText()}).filter(s=>s!==null),f=[JSON.stringify(e),...c];n.setInitializer(`{cn(${f.join(", ")})}`);return}n.setInitializer(`{cn(${JSON.stringify(e)}, ${r.getText()})}`);}function E(t,e){return twMerge(t,e)}function h(t){let e=t.getExpression();return Node.isIdentifier(e)&&e.getText()==="cn"}function Y(t,e,n){t.forEachDescendant(i=>{if(!Node.isCallExpression(i))return;let r=i.getExpression();if(!(!Node.isIdentifier(r)||r.getText()!=="mergeProps"))for(let o of i.getArguments()){if(!Node.isObjectLiteralExpression(o))continue;let c=o.getProperties().find(s=>Node.isPropertyAssignment(s)&&Node.isIdentifier(s.getNameNode())&&s.getNameNode().getText()==="className");if(!c||!Node.isPropertyAssignment(c))continue;let f=c.getInitializer();if(f&&Node.isCallExpression(f)&&h(f)){let s=Z(f);if(s.length===0)continue;let g=s.filter(u=>!n.has(u));if(g.length===0){P(f);continue}let p=g.filter(u=>!C.has(u)).map(u=>e[u]).filter(u=>!!u);if(p.length>0){let u=p.join(" ");tt(f,u,n,g);}else P(f);}}});}function Z(t){let e=[];for(let n of t.getArguments())m(n)&&e.push(...y(n.getLiteralText()));return e}function P(t){for(let e of t.getArguments())if(m(e)){let n=x(e.getLiteralText());e.setLiteralValue(n);}L(t);}function tt(t,e,n,i){let r=t.getArguments()[0];if(m(r)){let s=r.getLiteralText(),g=x(E(e,s));r.setLiteralValue(g),i.forEach(l=>n.add(l));for(let l=1;l<t.getArguments().length;l++){let p=t.getArguments()[l];if(m(p)){let u=p.getLiteralText(),d=x(u);d!==u&&p.setLiteralValue(d);}}L(t);return}let o=t.getArguments().map(s=>{if(m(s)){let g=x(s.getLiteralText());return g?JSON.stringify(g):null}return s.getText()}).filter(s=>s!==null),c=[JSON.stringify(e),...o];i.forEach(s=>n.add(s)),t.getParent()&&t.replaceWithText(`cn(${c.join(", ")})`);}async function rt(t,{styleMap:e,transformers:n=[w]}){let r=new Project({useInMemoryFileSystem:true}).createSourceFile("component.tsx",t,{scriptKind:ScriptKind.TSX,overwrite:true});for(let o of n)await o({sourceFile:r,styleMap:e});return r.getText()}var st=async({sourceFile:t,config:e})=>{if(!e.style?.startsWith("base-"))return t;let n=[],i=t.getDescendantsOfKind(SyntaxKind.JsxElement);for(let r of i){let o=r.getOpeningElement(),c=o.getAttribute("render");if(!c)continue;let s=r.getJsxChildren().map(S=>S.getText()).join("").trim();if(!s||c.getKind()!==SyntaxKind.JsxAttribute)continue;let l=c.asKindOrThrow(SyntaxKind.JsxAttribute).getInitializer();if(!l||l.getKind()!==SyntaxKind.JsxExpression)continue;let u=l.asKindOrThrow(SyntaxKind.JsxExpression).getExpression();if(!u||u.getKind()!==SyntaxKind.JsxSelfClosingElement)continue;let d=u.asKindOrThrow(SyntaxKind.JsxSelfClosingElement),A=d.getTagNameNode().getText(),I=d.getAttributes().map(S=>S.getText()).join(" "),J=I?`{<${A} ${I}>${s}</${A}>}`:`{<${A}>${s}</${A}>}`,M=o.getTagNameNode().getText(),j=o.getAttributes().filter(S=>S.getKind()===SyntaxKind.JsxAttribute?S.asKindOrThrow(SyntaxKind.JsxAttribute).getNameNode().getText()!=="render":true).map(S=>S.getText()).join(" "),V=j?`${j} render=${J}`:`render=${J}`,F=`<${M} ${V} />`;n.push({elementStart:r.getStart(),elementEnd:r.getEnd(),newText:F});}for(let r of n.reverse()){let o=t.getFullText(),c=o.substring(0,r.elementStart)+r.newText+o.substring(r.elementEnd);t.replaceWithText(c);}return t};export{k as createStyleMap,st as transformRender,rt as transformStyle};
1
+ export{e as transformDirection,f as transformFont,c as transformIcons,g as transformMenu}from'../chunk-WLJDV6SE.js';import'../chunk-CHWMSXYA.js';import W from'postcss';import D from'postcss-selector-parser';import {z}from'zod';import {Project,ScriptKind,SyntaxKind,Node}from'ts-morph';import {twMerge}from'tailwind-merge';var b="cn-",k=z.record(z.string().startsWith(b),z.string());function B(t){let e=W.parse(t),n={};return e.walkRules(i=>{let r=i.selectors??[];if(r.length===0)return;let o=_(i);if(o)for(let c of r){let f=X(c);D(s=>{s.each(g=>{let l=q(g);if(!l)return;let p=l.value;p.startsWith(b)&&(n[p]=n[p]?`${o} ${n[p]}`:o);});}).processSync(f);}}),k.parse(n)}function X(t){return t.replace(/\s*&\s*/g,"").trim()}function _(t){let e=[];for(let n of t.nodes||[])if(n.type==="atrule"&&n.name==="apply"){let i=n.params.trim();i&&e.push(i);}return e.length===0?null:e.join(" ")}function q(t){let e=[];return t.walkClasses(n=>{n.value.startsWith(b)&&e.push(n);}),e.length===0?null:e[e.length-1]}var C=new Set(["cn-menu-target","cn-menu-translucent","cn-logical-sides","cn-rtl-flip","cn-font-heading"]);function m(t){return Node.isStringLiteral(t)||Node.isNoSubstitutionTemplateLiteral(t)}var w=async({sourceFile:t,styleMap:e})=>{let n=new Set;return H(t,e,n),Q(t,e,n),Z(t,e,n),t};function O(t,e,n){let i=t.getLiteralText(),r=y(i);if(r.length===0)return;let o=r.filter(s=>!n.has(s));if(o.length===0){let s=x(i);t.setLiteralValue(s);return}let f=o.filter(s=>!C.has(s)).map(s=>e[s]).filter(s=>!!s);if(f.length>0){let s=f.join(" "),g=x(h(s,i));t.setLiteralValue(g),o.forEach(l=>n.add(l));}else {let s=x(i);t.setLiteralValue(s);}}function H(t,e,n){t.forEachDescendant(i=>{if(!Node.isCallExpression(i))return;let r=i.getExpression();if(!Node.isIdentifier(r)||r.getText()!=="cva")return;let o=i.getArguments()[0];Node.isStringLiteral(o)&&O(o,e,n);let c=i.getArguments()[1];if(!c||!Node.isObjectLiteralExpression(c))return;let f=c.getProperties().find(g=>Node.isPropertyAssignment(g)&&Node.isIdentifier(g.getNameNode())&&g.getNameNode().getText()==="variants");if(!f||!Node.isPropertyAssignment(f))return;let s=f.getInitializer();!s||!Node.isObjectLiteralExpression(s)||s.getProperties().forEach(g=>{if(!Node.isPropertyAssignment(g))return;let l=g.getInitializer();!l||!Node.isObjectLiteralExpression(l)||l.getProperties().forEach(p=>{if(!Node.isPropertyAssignment(p))return;let u=p.getInitializer();u&&Node.isStringLiteral(u)&&O(u,e,n);});});});}function Q(t,e,n){t.forEachDescendant(i=>{if(!Node.isJsxAttribute(i)||i.getNameNode().getText()!=="className")return;let r=i.getInitializer();if(!r)return;let o=U(r);if(o.length===0)return;let c=i.getParent()?.getParent();if(!c||!Node.isJsxOpeningElement(c)&&!Node.isJsxSelfClosingElement(c))return;let f=o.filter(l=>!n.has(l));if(f.length===0){$(r);return}let g=f.filter(l=>!C.has(l)).map(l=>e[l]).filter(l=>!!l);if(g.length>0){let l=g.join(" ");Y(c,l);}else $(r);});}function U(t){let e=[];if(m(t))return y(t.getLiteralText());if(!Node.isJsxExpression(t))return e;let n=t.getExpression();if(!n)return e;if(m(n))return y(n.getLiteralText());if(Node.isCallExpression(n)&&E(n))for(let i of n.getArguments())m(i)&&e.push(...y(i.getLiteralText()));return e}function $(t){if(m(t)){let n=x(t.getLiteralText());t.setLiteralValue(n);return}if(!Node.isJsxExpression(t))return;let e=t.getExpression();if(e){if(m(e)){let n=x(e.getLiteralText());e.setLiteralValue(n);return}if(Node.isCallExpression(e)&&E(e)){for(let n of e.getArguments())if(m(n)){let i=x(n.getLiteralText());n.setLiteralValue(i);}L(e);}}}function y(t){let e=t.matchAll(/\bcn-[\w-]+\b/g);return Array.from(e,n=>n[0])}function x(t){return t.replace(/\bcn-[\w-]+\b/g,e=>C.has(e)?e:"").replace(/\s+/g," ").trim()}function L(t){if(!E(t))return;let e=t.getArguments(),n=e.filter(i=>m(i)?i.getLiteralText().trim()!=="":true);if(n.length!==e.length){let i=n.map(o=>o.getText()),r=t.getParent();r&&Node.isJsxExpression(r)?r.replaceWithText(`{cn(${i.join(", ")})}`):t.replaceWithText(`cn(${i.join(", ")})`);}}function Y(t,e){if(!Node.isJsxOpeningElement(t)&&!Node.isJsxSelfClosingElement(t))return;let n=t.getAttributes().find(o=>Node.isJsxAttribute(o)&&o.getNameNode().getText()==="className");if(!n||!Node.isJsxAttribute(n)){t.addAttribute({name:"className",initializer:`{cn(${JSON.stringify(e)})}`});return}let i=n.getInitializer();if(!i){n.setInitializer(`{cn(${JSON.stringify(e)})}`);return}if(m(i)){let o=i.getLiteralText(),c=x(h(e,o));i.setLiteralValue(c);return}if(!Node.isJsxExpression(i))return;let r=i.getExpression();if(!r){n.setInitializer(`{cn(${JSON.stringify(e)})}`);return}if(m(r)){let o=r.getLiteralText(),c=x(h(e,o));r.setLiteralValue(c);return}if(Node.isCallExpression(r)&&E(r)){let o=r.getArguments()[0];if(m(o)){let s=o.getLiteralText(),g=x(h(e,s));o.setLiteralValue(g);for(let l=1;l<r.getArguments().length;l++){let p=r.getArguments()[l];if(m(p)){let u=p.getLiteralText(),d=x(u);d!==u&&p.setLiteralValue(d);}}L(r);return}let c=r.getArguments().map(s=>{if(m(s)){let g=x(s.getLiteralText());return g?JSON.stringify(g):null}return s.getText()}).filter(s=>s!==null),f=[JSON.stringify(e),...c];n.setInitializer(`{cn(${f.join(", ")})}`);return}n.setInitializer(`{cn(${JSON.stringify(e)}, ${r.getText()})}`);}function h(t,e){return twMerge(t,e)}function E(t){let e=t.getExpression();return Node.isIdentifier(e)&&e.getText()==="cn"}function Z(t,e,n){t.forEachDescendant(i=>{if(!Node.isCallExpression(i))return;let r=i.getExpression();if(!(!Node.isIdentifier(r)||r.getText()!=="mergeProps"))for(let o of i.getArguments()){if(!Node.isObjectLiteralExpression(o))continue;let c=o.getProperties().find(s=>Node.isPropertyAssignment(s)&&Node.isIdentifier(s.getNameNode())&&s.getNameNode().getText()==="className");if(!c||!Node.isPropertyAssignment(c))continue;let f=c.getInitializer();if(f&&Node.isCallExpression(f)&&E(f)){let s=tt(f);if(s.length===0)continue;let g=s.filter(u=>!n.has(u));if(g.length===0){P(f);continue}let p=g.filter(u=>!C.has(u)).map(u=>e[u]).filter(u=>!!u);if(p.length>0){let u=p.join(" ");et(f,u,n,g);}else P(f);}}});}function tt(t){let e=[];for(let n of t.getArguments())m(n)&&e.push(...y(n.getLiteralText()));return e}function P(t){for(let e of t.getArguments())if(m(e)){let n=x(e.getLiteralText());e.setLiteralValue(n);}L(t);}function et(t,e,n,i){let r=t.getArguments()[0];if(m(r)){let s=r.getLiteralText(),g=x(h(e,s));r.setLiteralValue(g),i.forEach(l=>n.add(l));for(let l=1;l<t.getArguments().length;l++){let p=t.getArguments()[l];if(m(p)){let u=p.getLiteralText(),d=x(u);d!==u&&p.setLiteralValue(d);}}L(t);return}let o=t.getArguments().map(s=>{if(m(s)){let g=x(s.getLiteralText());return g?JSON.stringify(g):null}return s.getText()}).filter(s=>s!==null),c=[JSON.stringify(e),...o];i.forEach(s=>n.add(s)),t.getParent()&&t.replaceWithText(`cn(${c.join(", ")})`);}async function st(t,{styleMap:e,transformers:n=[w]}){let r=new Project({useInMemoryFileSystem:true}).createSourceFile("component.tsx",t,{scriptKind:ScriptKind.TSX,overwrite:true});for(let o of n)await o({sourceFile:r,styleMap:e});return r.getText()}var it=async({sourceFile:t,config:e})=>{if(!e.style?.startsWith("base-"))return t;let n=[],i=t.getDescendantsOfKind(SyntaxKind.JsxElement);for(let r of i){let o=r.getOpeningElement(),c=o.getAttribute("render");if(!c)continue;let s=r.getJsxChildren().map(S=>S.getText()).join("").trim();if(!s||c.getKind()!==SyntaxKind.JsxAttribute)continue;let l=c.asKindOrThrow(SyntaxKind.JsxAttribute).getInitializer();if(!l||l.getKind()!==SyntaxKind.JsxExpression)continue;let u=l.asKindOrThrow(SyntaxKind.JsxExpression).getExpression();if(!u||u.getKind()!==SyntaxKind.JsxSelfClosingElement)continue;let d=u.asKindOrThrow(SyntaxKind.JsxSelfClosingElement),A=d.getTagNameNode().getText(),I=d.getAttributes().map(S=>S.getText()).join(" "),J=I?`{<${A} ${I}>${s}</${A}>}`:`{<${A}>${s}</${A}>}`,M=o.getTagNameNode().getText(),j=o.getAttributes().filter(S=>S.getKind()===SyntaxKind.JsxAttribute?S.asKindOrThrow(SyntaxKind.JsxAttribute).getNameNode().getText()!=="render":true).map(S=>S.getText()).join(" "),V=j?`${j} render=${J}`:`render=${J}`,F=`<${M} ${V} />`;n.push({elementStart:r.getStart(),elementEnd:r.getEnd(),newText:F});}for(let r of n.reverse()){let o=t.getFullText(),c=o.substring(0,r.elementStart)+r.newText+o.substring(r.elementEnd);t.replaceWithText(c);}return t};export{B as createStyleMap,it as transformRender,st as transformStyle};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "shadcn",
3
- "version": "4.0.8",
3
+ "version": "4.1.0",
4
4
  "description": "Add components to your apps.",
5
5
  "publishConfig": {
6
6
  "access": "public"
@@ -1,33 +0,0 @@
1
- import {m,l,f,d as d$1,c as c$1,e,n,t,o,b as b$1,p,q as q$1,r,s,x,z as z$1,v as v$1,g}from'./chunk-HW2MEAJZ.js';import {a,d,c,b,f as f$1}from'./chunk-JPE2JKEP.js';import y,{basename}from'path';import {z}from'zod';import {promises,existsSync,statSync}from'fs';import {green,cyan,yellow,red}from'kleur/colors';import {loadConfig,createMatchPath}from'tsconfig-paths';import {cosmiconfig}from'cosmiconfig';import Ke from'fast-glob';import ne from'fs-extra';import {tmpdir,homedir}from'os';import Fr from'ora';import {Project,SyntaxKind,ScriptKind,QuoteKind}from'ts-morph';import {transformFromAstSync}from'@babel/core';import {parse}from'@babel/parser';import Vr from'@babel/plugin-transform-typescript';import*as We from'recast';import rs from'prompts';import pe from'deepmerge';import {HttpsProxyAgent}from'https-proxy-agent';import Is from'node-fetch';import {createHash}from'crypto';import ks from'stringify-object';import Zs from'fuzzysort';var G=process.env.REGISTRY_URL??"https://ui.shadcn.com/r",k=G.replace(/\/r\/?$/,""),Ae="new-york-v4",jt=[{name:"neutral",label:"Neutral"},{name:"zinc",label:"Zinc"},{name:"stone",label:"Stone"},{name:"mauve",label:"Mauve"},{name:"olive",label:"Olive"},{name:"mist",label:"Mist"},{name:"taupe",label:"Taupe"}],N={"@shadcn":`${G}/styles/{style}/{name}.json`};var sn=[{name:"toast",deprecatedBy:"sonner",message:"The toast component is deprecated. Use the sonner component instead."},{name:"toaster",deprecatedBy:"sonner",message:"The toaster component is deprecated. Use the sonner component instead."}];function ge(e){return e.replace(/\${(\w+)}/g,(t,r)=>process.env[r]||"")}function de(e){let t=[],r=/\${(\w+)}/g,s;for(;(s=r.exec(e))!==null;)t.push(s[1]);return t}var A={NOT_FOUND:"NOT_FOUND",GONE:"GONE",UNAUTHORIZED:"UNAUTHORIZED",FORBIDDEN:"FORBIDDEN",FETCH_ERROR:"FETCH_ERROR",NOT_CONFIGURED:"NOT_CONFIGURED",INVALID_CONFIG:"INVALID_CONFIG",MISSING_ENV_VARS:"MISSING_ENV_VARS",LOCAL_FILE_ERROR:"LOCAL_FILE_ERROR",PARSE_ERROR:"PARSE_ERROR",VALIDATION_ERROR:"VALIDATION_ERROR",UNKNOWN_ERROR:"UNKNOWN_ERROR"},I=class extends Error{code;statusCode;context;suggestion;timestamp;cause;constructor(t,r={}){super(t),this.name="RegistryError",this.code=r.code||A.UNKNOWN_ERROR,this.statusCode=r.statusCode,this.cause=r.cause,this.context=r.context,this.suggestion=r.suggestion,this.timestamp=new Date,Error.captureStackTrace&&Error.captureStackTrace(this,this.constructor);}toJSON(){return {name:this.name,message:this.message,code:this.code,statusCode:this.statusCode,context:this.context,suggestion:this.suggestion,timestamp:this.timestamp,stack:this.stack}}},J=class extends I{constructor(r,s){let n=`The item at ${r} was not found. It may not exist at the registry.`;super(n,{code:A.NOT_FOUND,statusCode:404,cause:s,context:{url:r},suggestion:"Check if the item name is correct and the registry URL is accessible."});this.url=r;this.name="RegistryNotFoundError";}},Oe=class extends I{constructor(r,s){let n=`The item at ${r} is no longer available. It may have been removed or expired.`;super(n,{code:A.GONE,statusCode:410,cause:s,context:{url:r},suggestion:"This resource was previously available but has been permanently removed. Check if a newer version exists or contact the registry maintainer."});this.url=r;this.name="RegistryGoneError";}},ue=class extends I{constructor(r,s){let n=`You are not authorized to access the item at ${r}. If this is a remote registry, you may need to authenticate.`;super(n,{code:A.UNAUTHORIZED,statusCode:401,cause:s,context:{url:r},suggestion:"Check your authentication credentials and environment variables."});this.url=r;this.name="RegistryUnauthorizedError";}},he=class extends I{constructor(r,s){let n=`You are not authorized to access the item at ${r}. If this is a remote registry, you may need to authenticate.`;super(n,{code:A.FORBIDDEN,statusCode:403,cause:s,context:{url:r},suggestion:"Check your authentication credentials and environment variables."});this.url=r;this.name="RegistryForbiddenError";}},ye=class extends I{constructor(r,s,n,i){let o=s?`Failed to fetch from registry (${s}): ${r}`:`Failed to fetch from registry: ${r}`,a=typeof i=="string"&&i?`${o} - ${i}`:o,l="Check your network connection and try again.";s===404?l="The requested resource was not found. Check the URL or item name.":s===500?l="The registry server encountered an error. Try again later.":s&&s>=400&&s<500&&(l="There was a client error. Check your request parameters.");super(a,{code:A.FETCH_ERROR,statusCode:s,cause:i,context:{url:r,responseBody:n},suggestion:l});this.url=r;this.responseBody=n;this.name="RegistryFetchError";}},W=class extends I{constructor(r){let s=r?`Unknown registry "${r}". Make sure it is defined in components.json as follows:
2
- {
3
- "registries": {
4
- "${r}": "[URL_TO_REGISTRY]"
5
- }
6
- }`:'Unknown registry. Make sure it is defined in components.json under "registries".';super(s,{code:A.NOT_CONFIGURED,context:{registryName:r},suggestion:"Add the registry configuration to your components.json file. Consult the registry documentation for the correct format."});this.registryName=r;this.name="RegistryNotConfiguredError";}},te=class extends I{constructor(r,s){super(`Failed to read local registry file: ${r}`,{code:A.LOCAL_FILE_ERROR,cause:s,context:{filePath:r},suggestion:"Check if the file exists and you have read permissions."});this.filePath=r;this.name="RegistryLocalFileError";}},$=class extends I{constructor(r,s){let n=`Failed to parse registry item: ${r}`;s instanceof z.ZodError&&(n=`Failed to parse registry item: ${r}
7
- ${s.errors.map(i=>` - ${i.path.join(".")}: ${i.message}`).join(`
8
- `)}`);super(n,{code:A.PARSE_ERROR,cause:s,context:{item:r},suggestion:`The registry item may be corrupted or have an invalid format. Please make sure it returns a valid JSON object. See ${k}/schema/registry-item.json.`});this.item=r;this.parseError=s,this.name="RegistryParseError";}parseError},xe=class extends I{constructor(r,s){let n=`Registry "${r}" requires the following environment variables:
9
-
10
- `+s.map(i=>` \u2022 ${i}`).join(`
11
- `);super(n,{code:A.MISSING_ENV_VARS,context:{registryName:r,missingVars:s},suggestion:"Set the required environment variables to your .env or .env.local file."});this.registryName=r;this.missingVars=s;this.name="RegistryMissingEnvironmentVariablesError";}},we=class extends I{constructor(r){let s=`Invalid registry namespace: "${r}". Registry names must start with @ (e.g., @shadcn, @v0).`;super(s,{code:A.VALIDATION_ERROR,context:{name:r},suggestion:"Use a valid registry name starting with @ or provide a direct URL to the registry."});this.name=r;this.name="RegistryInvalidNamespaceError";}};var Ne=class extends I{constructor(r,s){let n=`Invalid components.json configuration in ${r}.`;s instanceof z.ZodError&&(n=`Invalid components.json configuration in ${r}:
12
- ${s.errors.map(i=>` - ${i.path.join(".")}: ${i.message}`).join(`
13
- `)}`);super(n,{code:A.INVALID_CONFIG,cause:s,context:{cwd:r},suggestion:"Check your components.json file for syntax errors or invalid configuration. Run 'npx shadcn@latest init' to regenerate a valid configuration."});this.cwd=r;this.name="ConfigParseError";}},Ee=class extends I{parseError;constructor(t){let r="Failed to parse registries index";if(t instanceof z.ZodError){let s=t.errors.filter(n=>n.path.length>0).map(n=>`"${n.path[0]}"`).filter((n,i,o)=>o.indexOf(n)===i);s.length>0?r=`Failed to parse registries index. Invalid registry namespace(s): ${s.join(", ")}
14
- ${t.errors.map(n=>` - ${n.path.join(".")}: ${n.message}`).join(`
15
- `)}`:r=`Failed to parse registries index:
16
- ${t.errors.map(n=>` - ${n.path.join(".")}: ${n.message}`).join(`
17
- `)}`;}super(r,{code:A.PARSE_ERROR,cause:t,context:{parseError:t},suggestion:"The registries index may be corrupted or have invalid registry namespace format. Registry names must start with @ (e.g., @shadcn, @example)."}),this.parseError=t,this.name="RegistriesIndexParseError";}};var gr=/^(@[a-zA-Z0-9](?:[a-zA-Z0-9-_]*[a-zA-Z0-9])?)\/(.+)$/;function re(e){if(!e.startsWith("@"))return {registry:null,item:e};let t=e.match(gr);return t?{registry:t[1],item:t[2]}:{registry:null,item:e}}var O={"next-app":{name:"next-app",label:"Next.js",links:{installation:`${k}/docs/installation/next`,tailwind:"https://tailwindcss.com/docs/guides/nextjs"}},"next-pages":{name:"next-pages",label:"Next.js",links:{installation:`${k}/docs/installation/next`,tailwind:"https://tailwindcss.com/docs/guides/nextjs"}},remix:{name:"remix",label:"Remix",links:{installation:`${k}/docs/installation/remix`,tailwind:"https://tailwindcss.com/docs/guides/remix"}},"react-router":{name:"react-router",label:"React Router",links:{installation:`${k}/docs/installation/react-router`,tailwind:"https://tailwindcss.com/docs/installation/framework-guides/react-router"}},vite:{name:"vite",label:"Vite",links:{installation:`${k}/docs/installation/vite`,tailwind:"https://tailwindcss.com/docs/guides/vite"}},astro:{name:"astro",label:"Astro",links:{installation:`${k}/docs/installation/astro`,tailwind:"https://tailwindcss.com/docs/guides/astro"}},laravel:{name:"laravel",label:"Laravel",links:{installation:`${k}/docs/installation/laravel`,tailwind:"https://tailwindcss.com/docs/guides/laravel"}},"tanstack-start":{name:"tanstack-start",label:"TanStack Start",links:{installation:`${k}/docs/installation/tanstack`,tailwind:"https://tailwindcss.com/docs/installation/using-postcss"}},gatsby:{name:"gatsby",label:"Gatsby",links:{installation:`${k}/docs/installation/gatsby`,tailwind:"https://tailwindcss.com/docs/guides/gatsby"}},expo:{name:"expo",label:"Expo",links:{installation:`${k}/docs/installation/expo`,tailwind:"https://www.nativewind.dev/docs/getting-started/installation"}},manual:{name:"manual",label:"Manual",links:{installation:`${k}/docs/installation/manual`,tailwind:"https://tailwindcss.com/docs/installation"}}};var T={error:red,warn:yellow,info:cyan,success:green};async function L(e,t){return createMatchPath(t.absoluteBaseUrl,t.paths)(e,void 0,()=>true,[".ts",".tsx",".jsx",".js",".css"])}var In="@/components",Tn="@/lib/utils",Pn="app/globals.css",jn="tailwind.config.js";var Le=cosmiconfig("components",{searchPlaces:["components.json"]});async function ve(e){let t=await Rr(e);return t?(t.iconLibrary||(t.iconLibrary=t.style==="new-york"?"radix":"lucide"),await Fe(e,t)):null}async function Fe(e,t){t.registries={...N,...t.registries||{}};let r=await loadConfig(e);if(r.resultType==="failed")throw new Error(`Failed to load ${t.tsx?"tsconfig":"jsconfig"}.json. ${r.message??""}`.trim());return d$1.parse({...t,resolvedPaths:{cwd:e,tailwindConfig:t.tailwind.config?y.resolve(e,t.tailwind.config):"",tailwindCss:y.resolve(e,t.tailwind.css),utils:await L(t.aliases.utils,r),components:await L(t.aliases.components,r),ui:t.aliases.ui?await L(t.aliases.ui,r):y.resolve(await L(t.aliases.components,r)??e,"ui"),lib:t.aliases.lib?await L(t.aliases.lib,r):y.resolve(await L(t.aliases.utils,r)??e,".."),hooks:t.aliases.hooks?await L(t.aliases.hooks,r):y.resolve(await L(t.aliases.components,r)??e,"..","hooks")}})}async function Rr(e){try{let t=await Le.search(e);if(!t)return null;let r=c$1.parse(t.config);if(r.registries){for(let s of Object.keys(r.registries))if(s in N)throw new Error(`"${s}" is a built-in registry and cannot be overridden.`)}return r}catch(t){let r=`${e}/components.json`;throw t instanceof Error&&t.message.includes("reserved registry")?t:new Error(`Invalid configuration found in ${T.info(r)}.`)}}async function kn(e$1){let t={};for(let s of Object.keys(e$1.aliases)){if(!Sr(s,e$1))continue;let n=e$1.resolvedPaths[s],i=await Cr(e$1.resolvedPaths.cwd,n);if(!i){t[s]=e$1;continue}t[s]=await ve(i);}let r=e.safeParse(t);return r.success?r.data:null}async function Cr(e,t){let r=br(e,t),s=y.relative(r,t),i=(await Ke.glob("**/package.json",{cwd:r,deep:3,ignore:["**/node_modules/**","**/dist/**","**/build/**","**/public/**"]})).map(o=>y.dirname(o)).find(o=>s.startsWith(o));return i?y.join(r,i):null}function Sr(e,t){return Object.keys(t.resolvedPaths).filter(r=>r!=="utils").includes(e)}function br(e,t){let r=e.split(y.sep),s=t.split(y.sep),n=[];for(let i=0;i<Math.min(r.length,s.length)&&r[i]===s[i];i++)n.push(r[i]);return n.join(y.sep)}async function kt(e,t){return (await _(e))?.tailwindVersion==="v4"?"new-york-v4":t}function $n(e){return e?.startsWith("base-")?"base":"radix"}function $t(e){let t={resolvedPaths:{cwd:process.cwd(),tailwindConfig:"",tailwindCss:"",utils:"",components:"",ui:"",lib:"",hooks:""},style:"",tailwind:{config:"",css:"",baseColor:"",cssVariables:false},rsc:false,tsx:true,aliases:{components:"",utils:""},registries:{...N}};return e?{...t,...e,resolvedPaths:{...t.resolvedPaths,...e.resolvedPaths||{}},tailwind:{...t.tailwind,...e.tailwind||{}},aliases:{...t.aliases,...e.aliases||{}},registries:{...t.registries,...e.registries||{}}}:t}function tt(e="",t=true){let r=y.join(e,"package.json");return ne.readJSONSync(r,{throws:t})}var _e=["**/node_modules/**",".next","public","dist","build"];z.object({compilerOptions:z.object({paths:z.record(z.string().or(z.array(z.string())))})});async function _(e,t){let[r,s,n,i,o,a,l,c]=await Promise.all([Ke.glob("**/{next,vite,astro,app}.config.*|gatsby-config.*|composer.json|react-router.config.*",{cwd:e,deep:3,ignore:_e}),ne.pathExists(y.resolve(e,"src")),Nr(e),Ar(e),$r(e,t?.configCssFile),At(e),Or(e),tt(e,false)]),f=await ne.pathExists(y.resolve(e,`${s?"src/":""}app`)),p={framework:O.manual,isSrcDir:s,isRSC:false,isTsx:n,tailwindConfigFile:i,tailwindCssFile:o,tailwindVersion:a,frameworkVersion:null,aliasPrefix:l};if(r.find(d=>d.startsWith("next.config."))?.length)return p.framework=f?O["next-app"]:O["next-pages"],p.isRSC=f,p.frameworkVersion=await kr(p.framework,c),p;if(r.find(d=>d.startsWith("astro.config."))?.length)return p.framework=O.astro,p;if(r.find(d=>d.startsWith("gatsby-config."))?.length)return p.framework=O.gatsby,p;if(r.find(d=>d.startsWith("composer.json"))?.length)return p.framework=O.laravel,p;if(Object.keys(c?.dependencies??{}).find(d=>d.startsWith("@remix-run/")))return p.framework=O.remix,p;if([...Object.keys(c?.dependencies??{}),...Object.keys(c?.devDependencies??{})].find(d=>d.startsWith("@tanstack/react-start")))return p.framework=O["tanstack-start"],p;if(r.find(d=>d.startsWith("react-router.config."))?.length)return p.framework=O["react-router"],p;if(r.find(d=>d.startsWith("vite.config."))?.length)return p.framework=O.vite,p;let x=r.find(d=>d.startsWith("app.config"));return x?.length&&(await ne.readFile(y.resolve(e,x),"utf8")).includes("defineConfig")?(p.framework=O.vite,p):(c?.dependencies?.expo&&(p.framework=O.expo),p)}async function kr(e,t){if(!t||!["next-app","next-pages"].includes(e.name))return null;let r=t.dependencies?.next||t.devDependencies?.next;if(!r)return null;let s=r.match(/^[\^~]?(\d+\.\d+\.\d+)/);if(s)return s[1];let n=r.match(/(\d+\.\d+\.\d+)/);return n?n[1]:r}async function At(e){let[t,r]=await Promise.all([tt(e,false),ve(e)]);return r?.tailwind?.config===""?"v4":!t?.dependencies?.tailwindcss&&!t?.devDependencies?.tailwindcss?null:/^(?:\^|~)?3(?:\.\d+)*(?:-.*)?$/.test(t?.dependencies?.tailwindcss||t?.devDependencies?.tailwindcss||"")?"v3":"v4"}async function $r(e,t){if(t){let i=y.resolve(e,t);if(await ne.pathExists(i))return t}let[r,s]=await Promise.all([Ke.glob(["**/*.css","**/*.scss"],{cwd:e,deep:5,ignore:_e}),At(e)]);if(!r.length)return null;for(let i of r){let o=await ne.readFile(y.resolve(e,i),"utf8");if(o.includes('@import "tailwindcss"')||o.includes("@import 'tailwindcss'")||o.includes("@tailwind base"))return i}return null}async function Ar(e){let t=await Ke.glob("tailwind.config.*",{cwd:e,deep:3,ignore:_e});return t.length?t[0]:null}async function Or(e){let t=await loadConfig(e);if(t?.resultType==="failed"||!Object.entries(t?.paths).length)return null;for(let[r,s]of Object.entries(t.paths))if(s.includes("./*")||s.includes("./src/*")||s.includes("./app/*")||s.includes("./resources/js/*"))return r.replace(/\/\*$/,"")??null;return Object.keys(t?.paths)?.[0].replace(/\/\*$/,"")??null}async function Nr(e){return (await Ke.glob("tsconfig.*",{cwd:e,deep:1,ignore:_e})).length>0}async function qn(e,t=null){let[r,s]=await Promise.all([ve(e),t?Promise.resolve(t):_(e)]);if(r)return r;if(!s||!s.tailwindCssFile||s.tailwindVersion==="v3"&&!s.tailwindConfigFile)return null;let n={$schema:"https://ui.shadcn.com/schema.json",rsc:s.isRSC,tsx:s.isTsx,style:"new-york",tailwind:{config:s.tailwindConfigFile??"",baseColor:"zinc",css:s.tailwindCssFile,cssVariables:true,prefix:""},iconLibrary:"lucide",aliases:{components:`${s.aliasPrefix}/components`,ui:`${s.aliasPrefix}/components/ui`,hooks:`${s.aliasPrefix}/hooks`,lib:`${s.aliasPrefix}/lib`,utils:`${s.aliasPrefix}/lib/utils`}};return await Fe(e,n)}async function ze(e){if(!e.resolvedPaths?.cwd)return "v3";let t=await _(e.resolvedPaths.cwd);return t?.tailwindVersion?t.tailwindVersion:null}async function Yn(e){let t=await ve(e);if(!t)return [];let s=(await Fe(e,t)).resolvedPaths.ui;if(!ne.existsSync(s))return [];let n=await De(),i=new Set(n?.map(a=>a.name)??[]);return (await promises.readdir(s)).filter(a=>/\.(tsx|jsx)$/.test(a)).map(a=>y.basename(a,y.extname(a))).filter(a=>i.has(a))}function Ot(e,t,r={}){let{ignoreImports:s=false}=r,n=e.replace(/\r\n/g,`
18
- `).trim(),i=t.replace(/\r\n/g,`
19
- `).trim();if(n===i)return true;if(!s)return false;let o=/^(import\s+(?:type\s+)?(?:\*\s+as\s+\w+|\{[^}]*\}|\w+)?(?:\s*,\s*(?:\{[^}]*\}|\w+))?\s+from\s+["'])([^"']+)(["'])/gm,a=f=>f.replace(o,(p,x,d,h)=>{if(d.startsWith("."))return `${x}${d}${h}`;let w=d.split("/"),g=w[w.length-1];return `${x}@normalized/${g}${h}`}),l=a(n),c=a(i);return l===c}function q(e){let t=y.basename(e);return /^\.env(\.|$)/.test(t)}function Lt(e){let t=[".env.local",".env",".env.development.local",".env.development"];for(let r of t){let s=y.join(e,r);if(existsSync(s))return s}return null}function ie(e){let t=e.split(`
20
- `),r={};for(let s of t){let n=s.trim();if(!n||n.startsWith("#"))continue;let i=n.indexOf("=");if(i===-1)continue;let o=n.substring(0,i).trim(),a=n.substring(i+1).trim();o&&(r[o]=a.replace(/^["']|["']$/g,""));}return r}function Ft(e,t){let r=ie(e),s=ie(t),n=[];for(let i of Object.keys(s))i in r||n.push(i);return n}function Dt(e,t){let r=ie(e),s=ie(t),n=e.trimEnd();n&&!n.endsWith(`
21
- `)&&(n+=`
22
- `);let i=[];for(let[o,a]of Object.entries(s))o in r||i.push(`${o}=${a}`);return i.length>0?(n&&(n+=`
23
- `),n+=i.join(`
24
- `),n+`
25
- `):n&&!n.endsWith(`
26
- `)?n+`
27
- `:n}var v={error(...e){console.log(T.error(e.join(" ")));},warn(...e){console.log(T.warn(e.join(" ")));},info(...e){console.log(T.info(e.join(" ")));},success(...e){console.log(T.success(e.join(" ")));},log(...e){console.log(e.join(" "));},break(){console.log("");}};function Y(e,t){return Fr({text:e,isSilent:t?.silent})}var Ve=async({sourceFile:e,config:t,isRemote:r})=>{let s=t.aliases?.utils,i=`${typeof s=="string"&&s.includes("/")?s.split("/")[0]:"@"}/lib/utils`;if(![".tsx",".ts",".jsx",".js"].includes(e.getExtension()))return e;for(let o of e.getImportStringLiterals()){let a=Kr(o.getLiteralValue(),t,r);if(o.setLiteralValue(a),i===a||a==="@/lib/utils"){if(!o.getFirstAncestorByKind(SyntaxKind.ImportDeclaration)?.getNamedImports().some(f=>f.getName()==="cn")||!t.aliases.utils)continue;o.setLiteralValue(i===a?a.replace(i,t.aliases.utils):t.aliases.utils);}}return e};function Kr(e,t,r=false){if(!e.startsWith("@/")&&!r)return e;if(r&&e.startsWith("@/")&&(e=e.replace(/^@\//,"@/registry/new-york/")),!e.startsWith("@/registry/")){let s=t.aliases.components.split("/")[0];return e.replace(/^@\//,`${s}/`)}return e.match(/^@\/registry\/(.+)\/ui/)?e.replace(/^@\/registry\/(.+)\/ui/,t.aliases.ui??`${t.aliases.components}/ui`):t.aliases.components&&e.match(/^@\/registry\/(.+)\/components/)?e.replace(/^@\/registry\/(.+)\/components/,t.aliases.components):t.aliases.lib&&e.match(/^@\/registry\/(.+)\/lib/)?e.replace(/^@\/registry\/(.+)\/lib/,t.aliases.lib):t.aliases.hooks&&e.match(/^@\/registry\/(.+)\/hooks/)?e.replace(/^@\/registry\/(.+)\/hooks/,t.aliases.hooks):e.replace(/^@\/registry\/[^/]+/,t.aliases.components)}var Wr={sourceType:"module",allowImportExportEverywhere:true,allowReturnOutsideFunction:true,startLine:1,tokens:true,plugins:["asyncGenerators","bigInt","classPrivateMethods","classPrivateProperties","classProperties","classStaticBlock","decimal","decorators-legacy","doExpressions","dynamicImport","exportDefaultFrom","exportNamespaceFrom","functionBind","functionSent","importAssertions","importMeta","nullishCoalescingOperator","numericSeparator","objectRestSpread","optionalCatchBinding","optionalChaining",["pipelineOperator",{proposal:"minimal"}],["recordAndTuple",{syntaxType:"hash"}],"throwExpressions","topLevelAwait","v8intrinsic","typescript","jsx"]},Kt=async({sourceFile:e,config:t})=>{let r=e.getFullText();if(t.tsx)return r;let s=We.parse(r,{parser:{parse:i=>parse(i,Wr)}}),n=transformFromAstSync(s,r,{cloneInputAst:false,code:false,ast:true,plugins:[Vr],configFile:false});if(!n||!n.ast)throw new Error("Failed to transform JSX");return We.print(n.ast).code};var Mr=/^["']use client["']$/g,Ue=async({sourceFile:e,config:t})=>{if(t.rsc)return e;let r=e.getFirstChildByKind(SyntaxKind.ExpressionStatement);return r&&Mr.test(r.getText())&&r.remove(),e};var _t=/\bcn-[a-z-]+\b/,Br=/\bcn-[a-z-]+\b/g;function zt(e){return e.replace(Br,"").replace(/\s+/g," ").trim()}function Me(e){let t=e.getLiteralValue();if(!_t.test(t))return;let r=zt(t);r!==t&&e.setLiteralValue(r);}function rt(e){for(let t of e.getDescendantsOfKind(SyntaxKind.StringLiteral))Me(t);for(let t of e.getDescendantsOfKind(SyntaxKind.NoSubstitutionTemplateLiteral))Me(t);}function Gr(e){let t=[];for(let r of e.getDescendantsOfKind(SyntaxKind.JsxAttribute)){let s=r.getNameNode().getText();if(s!=="className"&&s!=="classNames")continue;let n=r.getInitializer();if(n?.isKind(SyntaxKind.StringLiteral)){let i=n.getLiteralValue();if(_t.test(i)){let o=zt(i);o===""?t.push(r):o!==i&&n.setLiteralValue(o);}}n?.isKind(SyntaxKind.JsxExpression)&&rt(n);}for(let r of t)r.remove();for(let r of e.getDescendantsOfKind(SyntaxKind.CallExpression))if(r.getExpression().getText()==="cva")for(let s of r.getArguments()){if(s.isKind(SyntaxKind.StringLiteral)){Me(s);continue}if(s.isKind(SyntaxKind.NoSubstitutionTemplateLiteral)){Me(s);continue}rt(s);}for(let r of e.getDescendantsOfKind(SyntaxKind.CallExpression))r.getExpression().getText()==="mergeProps"&&rt(r);}var Be=async({sourceFile:e})=>(Gr(e),e);var Ge=async({sourceFile:e,config:t})=>{if(!t.tailwind?.prefix)return e;let r=await ze(t);return e.getDescendantsOfKind(SyntaxKind.CallExpression).filter(s=>s.getExpression().getText()==="cva").forEach(s=>{if(s.getArguments()[0]?.isKind(SyntaxKind.StringLiteral)){let n=s.getArguments()[0];n&&n.replaceWithText(`"${U(n.getText()?.replace(/"|'/g,""),t.tailwind.prefix,r)}"`);}s.getArguments()[1]?.isKind(SyntaxKind.ObjectLiteralExpression)&&s.getArguments()[1]?.getDescendantsOfKind(SyntaxKind.PropertyAssignment).find(n=>n.getName()==="variants")?.getDescendantsOfKind(SyntaxKind.PropertyAssignment).forEach(n=>{n.getDescendantsOfKind(SyntaxKind.PropertyAssignment).forEach(i=>{let o=i.getInitializerIfKind(SyntaxKind.StringLiteral);o&&o?.replaceWithText(`"${U(o.getText()?.replace(/"|'/g,""),t.tailwind.prefix,r)}"`);});});}),e.getDescendantsOfKind(SyntaxKind.JsxAttribute).forEach(s=>{if(s.getNameNode().getText()==="className"){if(s.getInitializer()?.isKind(SyntaxKind.StringLiteral)){let n=s.getInitializer();n&&n.replaceWithText(`"${U(n.getText()?.replace(/"|'/g,""),t.tailwind.prefix,r)}"`);}if(s.getInitializer()?.isKind(SyntaxKind.JsxExpression)){let n=s.getInitializer()?.getDescendantsOfKind(SyntaxKind.CallExpression).find(i=>i.getExpression().getText()==="cn");n&&n.getArguments().forEach(i=>{(i.isKind(SyntaxKind.ConditionalExpression)||i.isKind(SyntaxKind.BinaryExpression))&&i.getChildrenOfKind(SyntaxKind.StringLiteral).forEach(o=>{o.replaceWithText(`"${U(o.getText()?.replace(/"|'/g,""),t.tailwind.prefix,r)}"`);}),i.isKind(SyntaxKind.StringLiteral)&&i.replaceWithText(`"${U(i.getText()?.replace(/"|'/g,""),t.tailwind.prefix,r)}"`);});}}s.getNameNode().getText()==="classNames"&&s.getInitializer()?.isKind(SyntaxKind.JsxExpression)&&s.getDescendantsOfKind(SyntaxKind.PropertyAssignment).forEach(n=>{if(n.getInitializer()?.isKind(SyntaxKind.CallExpression)){let i=n.getInitializerIfKind(SyntaxKind.CallExpression);i&&i.getArguments().forEach(o=>{o.isKind(SyntaxKind.ConditionalExpression)&&o.getChildrenOfKind(SyntaxKind.StringLiteral).forEach(a=>{a.replaceWithText(`"${U(a.getText()?.replace(/"|'/g,""),t.tailwind.prefix,r)}"`);}),o.isKind(SyntaxKind.StringLiteral)&&o.replaceWithText(`"${U(o.getText()?.replace(/"|'/g,""),t.tailwind.prefix,r)}"`);});}if(n.getInitializer()?.isKind(SyntaxKind.StringLiteral)&&n.getNameNode().getText()!=="variant"){let i=n.getInitializer();i&&i.replaceWithText(`"${U(i.getText()?.replace(/"|'/g,""),t.tailwind.prefix,r)}"`);}});}),e};function U(e,t="",r){return r==="v3"?e.split(" ").map(s=>{let[n,i,o]=b(s);return n?o?`${n}:${t}${i}/${o}`:`${n}:${t}${i}`:o?`${t}${i}/${o}`:`${t}${i}`}).join(" "):e.split(" ").map(s=>s.indexOf(`${t}:`)===0?s:`${t}:${s.trim()}`).join(" ")}var Zr=new Project({compilerOptions:{}});async function Qr(e){let t=await promises.mkdtemp(y.join(tmpdir(),"shadcn-"));return y.join(t,e)}async function Wt(e,t=[Ve,Ue,a,Ge,d,c,Be]){let r=await Qr(e.filename),s=Zr.createSourceFile(r,e.raw,{scriptKind:ScriptKind.TSX});for(let n of t)await n({sourceFile:s,...e});return e.transformJsx?await Kt({sourceFile:s,...e}):s.getText()}var Xr=["a","span","div","Link","label","Label"],Ut=async({sourceFile:e,config:t})=>{if(!t.style?.startsWith("base-"))return e;let r=10;for(let s=0;s<r;s++){let i=e.getDescendantsOfKind(SyntaxKind.JsxElement).filter(l=>l.getOpeningElement().getAttribute("asChild"));if(i.length===0)break;let o=i.filter(l=>!l.getDescendantsOfKind(SyntaxKind.JsxElement).some(f=>f.getOpeningElement().getAttribute("asChild"))),a=[];for(let l of o){let c=l.getOpeningElement(),f=c.getAttribute("asChild");if(!f)continue;let p=c.getTagNameNode().getText(),d=l.getJsxChildren().find(m=>m.getKind()===SyntaxKind.JsxElement||m.getKind()===SyntaxKind.JsxSelfClosingElement);if(!d){f.remove();continue}let h,w,g;if(d.getKind()===SyntaxKind.JsxSelfClosingElement){let m=d.asKindOrThrow(SyntaxKind.JsxSelfClosingElement);h=m.getTagNameNode().getText(),w=m.getAttributes().map(E=>E.getText()).join(" "),g="";}else {let m=d.asKindOrThrow(SyntaxKind.JsxElement),E=m.getOpeningElement();h=E.getTagNameNode().getText(),w=E.getAttributes().map(b=>b.getText()).join(" "),g=m.getJsxChildren().map(b=>b.getText()).join("");}let j=p==="Button"&&Xr.includes(h);a.push({parentElement:l,parentTagName:p,childTagName:h,childProps:w,childChildren:g,needsNativeButton:j});}for(let l of a.reverse()){let f=l.parentElement.getOpeningElement().getAttributes().filter(w=>w.getKind()===SyntaxKind.JsxAttribute?w.asKindOrThrow(SyntaxKind.JsxAttribute).getNameNode().getText()!=="asChild":true).map(w=>w.getText()).join(" "),p=l.childProps?`{<${l.childTagName} ${l.childProps} />}`:`{<${l.childTagName} />}`,x=f?`${f} `:"";x+=`render=${p}`,l.needsNativeButton&&(x+=" nativeButton={false}");let d=l.childChildren.trim()?`${l.childChildren}`:"",h=`<${l.parentTagName} ${x}>${d}</${l.parentTagName}>`;l.parentElement.replaceWithText(h);}}return e};var Mt=async({sourceFile:e})=>(e.getFunctions().forEach(t=>{t.getName()==="middleware"&&t.rename("proxy");}),e.getVariableDeclarations().forEach(t=>{t.getName()==="middleware"&&t.rename("proxy");}),e.getExportDeclarations().forEach(t=>{t.getNamedExports().forEach(s=>{s.getName()==="middleware"&&s.setName("proxy"),s.getAliasNode()?.getText()==="middleware"&&s.setAlias("proxy");});}),e);async function xo(e,t,r){if(!e?.length)return {filesCreated:[],filesUpdated:[],filesSkipped:[]};r={overwrite:false,force:false,silent:false,isRemote:false,isWorkspace:false,...r};let s=Y("Updating files.",{silent:r.silent})?.start(),[n,i]=await Promise.all([_(t.resolvedPaths.cwd),t.tailwind.baseColor?Je(t.tailwind.baseColor):Promise.resolve(void 0)]),o=[],a$1=[],l=[],c$1=[],f=null;for(let h=0;h<e.length;h++){let w=e[h];if(!w.content)continue;let g=nt(w,t,{isSrcDir:n?.isSrcDir,framework:n?.framework.name,commonRoot:it(e.map(R=>R.path),w.path),path:r.path,fileIndex:h});if(!g)continue;let j=basename(w.path),m=y.dirname(g);if(t.tsx||(g=g.replace(/\.tsx?$/,R=>R===".tsx"?".jsx":".js")),q(g)&&!existsSync(g)){let R=Lt(m);R&&(g=R);}let E=existsSync(g);if(w.type==="registry:lib"&&basename(w.path)==="utils.ts"&&n?.framework.name==="laravel"&&E){l.push(y.relative(t.resolvedPaths.cwd,g));continue}if(E&&statSync(g).isDirectory())throw new Error(`Cannot write to ${g}: path exists and is a directory. Please provide a file path instead.`);let b=w.type==="registry:file"||w.type==="registry:item",S=q(g)||b?w.content:await Wt({filename:w.path,raw:w.content,config:t,baseColor:i,transformJsx:!t.tsx,isRemote:r.isRemote},[Ve,Ue,a,Ge,c,f$1,Ut,d,...Bt(g,n,t)?[Mt]:[],Be]);if(E&&!q(g)){let R=await promises.readFile(g,"utf-8");if(Ot(R,S,{ignoreImports:r.isWorkspace})){l.push(y.relative(t.resolvedPaths.cwd,g));continue}}if(E&&!r.overwrite&&!q(g)){s.stop(),r.rootSpinner&&r.rootSpinner.stop();let{overwrite:R}=await rs({type:"confirm",name:"overwrite",message:`The file ${T.info(j)} already exists. Would you like to overwrite?`,initial:false});if(!R){l.push(y.relative(t.resolvedPaths.cwd,g)),r.rootSpinner&&r.rootSpinner.start();continue}s?.start(),r.rootSpinner&&r.rootSpinner.start();}if(Bt(g,n,t)&&(g=g.replace(/middleware\.(ts|js)$/,"proxy.$1")),existsSync(m)||await promises.mkdir(m,{recursive:true}),q(g)&&E){let R=await promises.readFile(g,"utf-8"),X=Dt(R,S);if(c$1=Ft(R,S),f=y.relative(t.resolvedPaths.cwd,g),!c$1.length){l.push(y.relative(t.resolvedPaths.cwd,g));continue}await promises.writeFile(g,X,"utf-8"),a$1.push(y.relative(t.resolvedPaths.cwd,g));continue}await promises.writeFile(g,S,"utf-8"),E?a$1.push(y.relative(t.resolvedPaths.cwd,g)):(o.push(y.relative(t.resolvedPaths.cwd,g)),q(g)&&(c$1=Object.keys(ie(S)),f=y.relative(t.resolvedPaths.cwd,g)));}let p=[...o,...a$1,...l],x=await cs(p,t);if(a$1.push(...x),o=Array.from(new Set(o)),a$1=Array.from(new Set(a$1.filter(h=>!o.includes(h)))),l=Array.from(new Set(l)),!(o.length||a$1.length)&&!l.length&&s?.info("No files updated."),o.length){if(s?.succeed(`Created ${o.length} ${o.length===1?"file":"files"}:`),!r.silent)for(let h of o)v.log(` - ${h}`);}else s?.stop();if(a$1.length&&(Y(`Updated ${a$1.length} ${a$1.length===1?"file":"files"}:`,{silent:r.silent})?.info(),!r.silent))for(let h of a$1)v.log(` - ${h}`);if(l.length&&(Y(`Skipped ${l.length} ${l.length===1?"file":"files"}: (files might be identical, use --overwrite to overwrite)`,{silent:r.silent})?.info(),!r.silent))for(let h of l)v.log(` - ${h}`);if(c$1.length&&f&&(Y(`Added the following variables to ${T.info(f)}:`)?.info(),!r.silent))for(let h of c$1)v.log(` ${T.success("+")} ${h}`);return {filesCreated:o,filesUpdated:a$1,filesSkipped:l}}function nt(e,t,r){if(r.path){let i=y.isAbsolute(r.path)?r.path:y.join(t.resolvedPaths.cwd,r.path);if(/\.[^/\\]+$/.test(i)){if(r.fileIndex===0)return i}else {let a=y.basename(e.path);return y.join(i,a)}}if(e.target){if(e.target.startsWith("~/"))return y.join(t.resolvedPaths.cwd,e.target.replace("~/",""));let i=e.target;return e.type==="registry:page"&&(i=ls(i,r.framework),!i)?"":r.isSrcDir?y.join(t.resolvedPaths.cwd,"src",i.replace("src/","")):y.join(t.resolvedPaths.cwd,i.replace("src/",""))}let s=os(e,t),n=as(e.path,s);return y.join(s,n)}function os(e,t){return e.type==="registry:ui"?t.resolvedPaths.ui:e.type==="registry:lib"?t.resolvedPaths.lib:e.type==="registry:block"||e.type==="registry:component"?t.resolvedPaths.components:e.type==="registry:hook"?t.resolvedPaths.hooks:t.resolvedPaths.components}function it(e,t){let r=e.map(o=>o.replace(/^\//,"")),s=t.replace(/^\//,""),n=s.split("/").slice(0,-1).join("/");if(!n)return "";let i=n.split("/");for(let o=i.length;o>0;o--){let a=i.slice(0,o).join("/");if(r.some(c=>c!==s&&c.startsWith(a+"/")))return "/"+a}return "/"+n}function as(e,t){let r=e.replace(/^\/|\/$/g,""),s=t.replace(/^\/|\/$/g,""),n=r.split("/"),i=s.split("/"),o=i[i.length-1],a=n.findIndex(l=>l===o);return a===-1?n[n.length-1]:n.slice(a+1).join("/")}function ls(e,t){if(!t)return "";if(t==="next-app")return e;if(t==="next-pages"){let r=e.replace(/^app\//,"pages/");return r=r.replace(/\/page(\.[jt]sx?)$/,"$1"),r}if(t==="react-router"){let r=e.replace(/^app\//,"app/routes/");return r=r.replace(/\/page(\.[jt]sx?)$/,"$1"),r}if(t==="laravel"){let r=e.replace(/^app\//,"resources/js/pages/");return r=r.replace(/\/page(\.[jt]sx?)$/,"$1"),r}return ""}async function cs(e,t){let r=new Project({compilerOptions:{}}),s=await _(t.resolvedPaths.cwd),n=loadConfig(t.resolvedPaths.cwd),i=[];if(!s||n.resultType==="failed")return [];for(let o of e){let a=y.resolve(t.resolvedPaths.cwd,o);if(!existsSync(a))continue;let l=await promises.readFile(a,"utf-8"),c=await promises.mkdtemp(y.join(tmpdir(),"shadcn-")),f=r.createSourceFile(y.join(c,basename(a)),l,{scriptKind:ScriptKind.TSX});if(![".tsx",".ts",".jsx",".js"].includes(f.getExtension()))continue;let p=f.getImportDeclarations();for(let x of p){let d=x.getModuleSpecifierValue();if(s?.aliasPrefix&&!d.startsWith(`${s.aliasPrefix}/`))continue;let h=await L(d,n);if(!h)continue;let w=ps(h,e,t);if(!w)continue;let g=fs(w,t,s);!g||g===d||(x.setModuleSpecifier(g),await promises.writeFile(a,f.getFullText(),"utf-8"),i.push(o));}}return i}function ps(e,t,r,s=[".tsx",".ts",".js",".jsx",".css"]){let n=y.normalize(r.resolvedPaths.cwd),i=t.map(g=>g.split(y.sep).join(y.posix.sep)),o=new Set(i),a=y.extname(e),l=a!=="",c=l?e.slice(0,-a.length):e,p=y.relative(n,c).split(y.sep).join(y.posix.sep),x=l?[a]:s,d=new Set;for(let g of x){let j=c+g,m=y.posix.normalize(y.relative(n,j));(o.has(m)||existsSync(j))&&d.add(m);let E=y.join(c,`index${g}`),b=y.posix.normalize(y.relative(n,E));(o.has(b)||existsSync(E))&&d.add(b);}let h=y.basename(c);for(let g of i)x.some(j=>g.endsWith(`/${h}${j}`))&&d.add(g);return d.size===0?null:Array.from(d).sort((g,j)=>{let m=y.posix.extname(g),E=y.posix.extname(j),b=x.indexOf(m)-x.indexOf(E);if(b!==0)return b;let S=p&&g.startsWith(p)?-1:1,R=p&&j.startsWith(p)?-1:1;return S-R})[0]}function fs(e,t,r){let s=y.normalize(y.join(t.resolvedPaths.cwd,e)),n=Object.entries(t.resolvedPaths).filter(([,h])=>h&&s.startsWith(y.normalize(h+y.sep))).sort((h,w)=>w[1].length-h[1].length);if(n.length===0)return null;let[i,o]=n[0],a=y.relative(o,s);a=a.split(y.sep).join("/");let l=y.posix.extname(a),f=[".ts",".tsx",".js",".jsx"].includes(l)?"":l,p=a.slice(0,a.length-l.length);p.endsWith("/index")&&(p=p.slice(0,-6));let x=i==="cwd"?r.aliasPrefix:t.aliases[i];if(!x)return null;let d=p===""?"":`/${p}`;return d=d.replace("/src",""),`${x}${d}${f}`}function Bt(e,t,r){let s=e===y.join(r.resolvedPaths.cwd,"middleware.ts")||e===y.join(r.resolvedPaths.cwd,"middleware.js"),n=t?.framework.name==="next-app"||t?.framework.name==="next-pages";if(!s||!n||!t?.frameworkVersion)return false;let i=parseInt(t.frameworkVersion.split(".")[0]);return !isNaN(i)&&i>=16}new Project({compilerOptions:{}});function F(e){try{return new URL(e),!0}catch{return false}}function ae(e){return e.endsWith(".json")&&!F(e)}function Oo(e){return !e||e.type!=="registry:item"&&e.type!=="registry:file"?false:(e.files??[]).every(r=>!!r.target&&(r.type==="registry:file"||r.type==="registry:item"))}async function Jt(e,t){if(!gs(t))return z.array(g).parse(e.flat().filter(Boolean));let r=await _(t.resolvedPaths.cwd),s=new Map,n=z.array(g).parse(e.flat().filter(Boolean));return n.forEach(i=>{let o=nt(i,t,{isSrcDir:r?.isSrcDir,framework:r?.framework.name,commonRoot:it(n.map(a=>a.path),i.path)});o&&s.set(o,i);}),Array.from(s.values())}function gs(e){return !!(e?.resolvedPaths?.cwd&&(e?.resolvedPaths?.ui||e?.resolvedPaths?.lib||e?.resolvedPaths?.components||e?.resolvedPaths?.hooks))}function us(e){return e.style?e.style==="new-york"&&e.tailwind?.config===""?Ae:e.style:Ae}function le(e){let t=$t({style:Ae,registries:N});return e?d$1.parse(pe(t,{...e,style:us(e),registries:{...N,...e.registries}})):t}var He={headers:{}};function Re(e){He.headers={...He.headers,...e};}function Ht(e){return He.headers[e]||{}}function Ce(){He.headers={};}function hs(e){let t=new Set;return typeof e=="string"?de(e).forEach(r=>t.add(r)):(de(e.url).forEach(r=>t.add(r)),e.params&&Object.values(e.params).forEach(r=>{de(r).forEach(s=>t.add(s));}),e.headers&&Object.values(e.headers).forEach(r=>{de(r).forEach(s=>t.add(s));})),Array.from(t)}function qt(e,t){let s=hs(t).filter(n=>!process.env[n]);if(s.length>0)throw new xe(e,s)}function Ho(e,t){for(let r of e)ce(r,le(t));Ce();}var Yt="{name}",qe="{style}",Zt=/\${(\w+)}/g,Qt="?",ys="&";function xs(e){return e.startsWith("./")||e.startsWith("/")}function ce(e,t){let{registry:r,item:s}=re(e);if(!r){if(F(e)||ae(e)||xs(e))return null;r="@shadcn";}let i={...N,...t?.registries}[r];if(!i)throw new W(r);return qt(r,i),{url:ws(s,i,t),headers:Es(i)}}function ws(e,t,r){if(typeof t=="string"){let n=t.replace(Yt,e);return r?.style&&n.includes(qe)&&(n=n.replace(qe,r.style)),ge(n)}let s=t.url.replace(Yt,e);return r?.style&&s.includes(qe)&&(s=s.replace(qe,r.style)),s=ge(s),t.params?vs(s,t.params):s}function Es(e){if(typeof e=="string"||!e.headers)return {};let t={};for(let[r,s]of Object.entries(e.headers)){let n=ge(s);Rs(s,n)&&(t[r]=n);}return t}function vs(e,t){let r=new URLSearchParams;for(let[i,o]of Object.entries(t)){let a=ge(o);a&&r.append(i,a);}let s=r.toString();if(!s)return e;let n=e.includes(Qt)?ys:Qt;return `${e}${n}${s}`}function Rs(e,t){let r=t.trim();if(!r)return false;if(e.includes("${")&&e.match(Zt)){let n=e.replace(Zt,"").trim();return r!==n}return true}function Ye(e){if(F(e)){let t=new URL(e);return t.pathname.match(/\/chat\/b\//)&&!t.pathname.endsWith("/json")&&(t.pathname=`${t.pathname}/json`),t.toString()}return `${G}/${e}`}var Ts=process.env.https_proxy?new HttpsProxyAgent(process.env.https_proxy):void 0,ot=new Map;async function P(e,t={}){t={useCache:true,...t};try{return await Promise.all(e.map(async s=>{let n=Ye(s);if(t.useCache&&ot.has(n))return ot.get(n);let i=(async()=>{let o=Ht(n),a=await Is(n,{agent:Ts,headers:{...o}});if(!a.ok){let l;if(a.headers.get("content-type")?.includes("application/json")){let c=await a.json(),f=z.object({detail:z.string().optional(),title:z.string().optional(),message:z.string().optional(),error:z.string().optional()}).safeParse(c);f.success&&(l=f.data.detail||f.data.message,f.data.error&&(l=`[${f.data.error}] ${l}`));}throw a.status===401?new ue(n,l):a.status===404?new J(n,l):a.status===410?new Oe(n,l):a.status===403?new he(n,l):new ye(n,a.status,l)}return a.json()})();return t.useCache&&ot.set(n,i),i}))}catch(r){throw r}}async function er(e){try{let t=e;e.startsWith("~/")&&(t=y.join(homedir(),e.slice(2)));let r=y.resolve(t),s=await promises.readFile(r,"utf8"),n$1=JSON.parse(s);try{return n.parse(n$1)}catch(i){throw new $(e,i)}}catch(t){throw t instanceof Error&&(t.message.includes("ENOENT")||t.message.includes("no such file"))?new te(e,t):t instanceof $?t:new te(e,t)}}async function Ia(e,t,r){if(!e||(r={silent:false,tailwindVersion:"v3",...r},r.tailwindVersion==="v4"))return;let s=y.relative(t.resolvedPaths.cwd,t.resolvedPaths.tailwindConfig),n=Y(`Updating ${T.info(s)}`,{silent:r.silent}).start(),i=await promises.readFile(t.resolvedPaths.tailwindConfig,"utf8"),o=await Os(i,e,t);await promises.writeFile(t.resolvedPaths.tailwindConfig,o,"utf8"),n?.succeed();}async function Os(e,t,r){let s=await rr(e,r),n=s.getDescendantsOfKind(SyntaxKind.ObjectLiteralExpression).find(o=>o.getProperties().some(a=>a.isKind(SyntaxKind.PropertyAssignment)&&a.getName()==="content"));if(!n)return e;let i=Ds(n);return Ns(n,{name:"darkMode",value:"class"},{quoteChar:i}),t.plugins?.forEach(o=>{Fs(n,o);}),t.theme&&await Ls(n,t.theme),s.getFullText()}function Ns(e,t,{quoteChar:r}){let s=e.getProperty("darkMode");if(!s){let n={name:t.name,initializer:`[${r}${t.value}${r}]`};return t.name==="darkMode"?(e.insertPropertyAssignment(0,n),e):(e.addPropertyAssignment(n),e)}if(s.isKind(SyntaxKind.PropertyAssignment)){let n=s.getInitializer(),i=`${r}${t.value}${r}`;if(n?.isKind(SyntaxKind.StringLiteral)){let o=n.getText();return n.replaceWithText(`[${o}, ${i}]`),e}if(n?.isKind(SyntaxKind.ArrayLiteralExpression)){if(n.getElements().map(o=>o.getText()).includes(i))return e;n.addElement(i);}return e}return e}async function Ls(e,t){e.getProperty("theme")||e.addPropertyAssignment({name:"theme",initializer:"{}"}),lt(e);let s=(e.getPropertyOrThrow("theme")?.asKindOrThrow(SyntaxKind.PropertyAssignment)).getInitializer();if(s?.isKind(SyntaxKind.ObjectLiteralExpression)){let n=s.getText(),i=await Ks(n),o=pe(i,t,{arrayMerge:(l,c)=>c}),a=ks(o).replace(/\'\.\.\.(.*)\'/g,"...$1").replace(/\'\"/g,"'").replace(/\"\'/g,"'").replace(/\'\[/g,"[").replace(/\]\'/g,"]").replace(/\'\\\'/g,"'").replace(/\\\'/g,"'").replace(/\\\'\'/g,"'").replace(/\'\'/g,"'");s.replaceWithText(a);}ct(e);}function Fs(e,t){let r=e.getProperty("plugins");if(!r)return e.addPropertyAssignment({name:"plugins",initializer:`[${t}]`}),e;if(r.isKind(SyntaxKind.PropertyAssignment)){let s=r.getInitializer();if(s?.isKind(SyntaxKind.ArrayLiteralExpression)){if(s.getElements().map(n=>n.getText().replace(/["']/g,"")).includes(t.replace(/["']/g,"")))return e;s.addElement(t);}return e}return e}async function rr(e,t){let r=await promises.mkdtemp(y.join(tmpdir(),"shadcn-")),s=t?.resolvedPaths?.tailwindConfig||"tailwind.config.ts",n=y.join(r,`shadcn-${y.basename(s)}`);return new Project({compilerOptions:{}}).createSourceFile(n,e,{scriptKind:y.extname(s)===".ts"?ScriptKind.TS:ScriptKind.JS})}function Ds(e){return e.getFirstDescendantByKind(SyntaxKind.StringLiteral)?.getQuoteKind()===QuoteKind.Single?"'":'"'}function lt(e){let t=e.getProperties();for(let r=0;r<t.length;r++){let s=t[r];if(s.isKind(SyntaxKind.SpreadAssignment)){let n=s.asKindOrThrow(SyntaxKind.SpreadAssignment),i=n.getExpression().getText();e.insertPropertyAssignment(r,{name:`"___${i.replace(/^\.\.\./,"")}"`,initializer:`"...${i.replace(/^\.\.\./,"")}"`}),n.remove();}else if(s.isKind(SyntaxKind.PropertyAssignment)){let i=s.asKindOrThrow(SyntaxKind.PropertyAssignment).getInitializer();i&&i.isKind(SyntaxKind.ObjectLiteralExpression)?lt(i.asKindOrThrow(SyntaxKind.ObjectLiteralExpression)):i&&i.isKind(SyntaxKind.ArrayLiteralExpression)&&sr(i.asKindOrThrow(SyntaxKind.ArrayLiteralExpression));}}}function sr(e){let t=e.getElements();for(let r=0;r<t.length;r++){let s=t[r];if(s.isKind(SyntaxKind.ObjectLiteralExpression))lt(s.asKindOrThrow(SyntaxKind.ObjectLiteralExpression));else if(s.isKind(SyntaxKind.ArrayLiteralExpression))sr(s.asKindOrThrow(SyntaxKind.ArrayLiteralExpression));else if(s.isKind(SyntaxKind.SpreadElement)){let n=s.getText();e.removeElement(r),e.insertElement(r,`"${n}"`);}}}function ct(e){let t=e.getProperties();for(let r=0;r<t.length;r++){let s=t[r];if(s.isKind(SyntaxKind.PropertyAssignment)){let n=s,i=n.getInitializer();if(i&&i.isKind(SyntaxKind.StringLiteral)){let o=i.asKindOrThrow(SyntaxKind.StringLiteral).getLiteralValue();o.startsWith("...")&&(e.insertSpreadAssignment(r,{expression:o.slice(3)}),n.remove());}else i?.isKind(SyntaxKind.ObjectLiteralExpression)?ct(i):i&&i.isKind(SyntaxKind.ArrayLiteralExpression)&&nr(i.asKindOrThrow(SyntaxKind.ArrayLiteralExpression));}}}function nr(e){let t=e.getElements();for(let r=0;r<t.length;r++){let s=t[r];if(s.isKind(SyntaxKind.ObjectLiteralExpression))ct(s.asKindOrThrow(SyntaxKind.ObjectLiteralExpression));else if(s.isKind(SyntaxKind.ArrayLiteralExpression))nr(s.asKindOrThrow(SyntaxKind.ArrayLiteralExpression));else if(s.isKind(SyntaxKind.StringLiteral)){let n=s.getText(),i=/(?:^['"])(\.\.\..*)(?:['"]$)/g;i.test(n)&&(e.removeElement(r),e.insertElement(r,n.replace(i,"$1")));}}}async function Ks(e){let r=(await rr(`const theme = ${e}`,null)).getStatements()[0];if(r?.getKind()===SyntaxKind.VariableStatement){let n=(r.getDeclarationList()?.getDeclarations()[0]).getInitializer();if(n?.isKind(SyntaxKind.ObjectLiteralExpression))return await Ze(n)}throw new Error("Invalid input: not an object literal")}function Ze(e){let t={};for(let r of e.getProperties())if(r.isKind(SyntaxKind.PropertyAssignment)){let s=r.getName().replace(/\'/g,"");r.getInitializer()?.isKind(SyntaxKind.ObjectLiteralExpression)?t[s]=Ze(r.getInitializer()):r.getInitializer()?.isKind(SyntaxKind.ArrayLiteralExpression)?t[s]=ir(r.getInitializer()):t[s]=pt(r.getInitializer());}return t}function ir(e){let t=[];for(let r of e.getElements())r.isKind(SyntaxKind.ObjectLiteralExpression)?t.push(Ze(r.asKindOrThrow(SyntaxKind.ObjectLiteralExpression))):r.isKind(SyntaxKind.ArrayLiteralExpression)?t.push(ir(r.asKindOrThrow(SyntaxKind.ArrayLiteralExpression))):t.push(pt(r));return t}function pt(e){switch(e.getKind()){case SyntaxKind.StringLiteral:return e.getText();case SyntaxKind.NumericLiteral:return Number(e.getText());case SyntaxKind.TrueKeyword:return true;case SyntaxKind.FalseKeyword:return false;case SyntaxKind.NullKeyword:return null;case SyntaxKind.ArrayLiteralExpression:return e.getElements().map(pt);case SyntaxKind.ObjectLiteralExpression:return Ze(e);default:return e.getText()}}function or(e){let t={};for(let r of Object.keys(e)){let s=r.split("-"),n=s[0],i=s.slice(1).join("-");i===""?typeof t[n]=="object"?t[n].DEFAULT=`hsl(var(--${r}))`:t[n]=`hsl(var(--${r}))`:(typeof t[n]!="object"&&(t[n]={DEFAULT:`hsl(var(--${n}))`}),t[n][i]=`hsl(var(--${r}))`);}for(let[r,s]of Object.entries(t))typeof s=="object"&&s.DEFAULT===`hsl(var(--${r}))`&&!(r in e)&&delete s.DEFAULT;return t}function Ie(e,t){let r={},s=[...e];if(!t?.registries)return Re({}),s;for(let n=0;n<s.length;n++){let i=ce(s[n],t);i&&(s[n]=i.url,Object.keys(i.headers).length>0&&(r[i.url]=i.headers));}return Re(r),s}async function Z(e,t,r={}){return await Promise.all(e.map(async n$1=>{if(ae(n$1))return er(n$1);if(F(n$1)){let[a]=await P([n$1],r);try{return n.parse(a)}catch(l){throw new $(n$1,l)}}if(n$1.startsWith("@")&&t?.registries){let a=Ie([n$1],t),[l]=await P(a,r);try{return n.parse(l)}catch(c){throw new $(n$1,c)}}let i=`styles/${t?.style??"new-york-v4"}/${n$1}.json`,[o]=await P([i],r);try{return n.parse(o)}catch(a){throw new $(n$1,a)}}))}m.extend({type:f,_source:z.string().optional(),font:l.optional(),config:z.any().optional()}).passthrough();async function lr(e,t$1,r={}){r={useCache:true,...r};let s=[],n$1=[],i=[],o=Array.from(new Set(e)),a=await Z(o,t$1,r),l=new Map;for(let m=0;m<a.length;m++)a[m]&&l.set(o[m],a[m]);for(let[m,E]of Array.from(l.entries())){let b={...E,_source:m};if(s.push(b),E.registryDependencies){let S=E.registryDependencies;if(t$1?.registries)S=Ie(E.registryDependencies,t$1);else {let ee=E.registryDependencies.filter(me=>me.startsWith("@"));if(ee.length>0){let{registry:me}=re(ee[0]);throw new W(me)}}let{items:R,registryNames:X}=await Te(S,t$1,r,new Set(o));n$1.push(...R),i.push(...X);}}if(s.push(...n$1),i.length>0){let m=Array.from(new Set(i)),E=m.filter(S=>!S.startsWith("@")),b=m.filter(S=>S.startsWith("@"));if(b.length>0){let S=await Z(b,t$1,r);for(let R=0;R<S.length;R++){let ee={...S[R],_source:b[R]};s.push(ee);}}if(E.length>0){let S=await De();if(!S&&s.length===0)return null;if(S){E.includes("index")&&E.unshift("index");let R=[];for(let fr of E){let mr=await zs(fr,t$1,r);R.push(...mr);}let X=Array.from(new Set(R)),ee=await P(X,r),me=z.array(n).parse(ee);s.push(...me);}}}if(!s.length)return null;if((o.includes("index")||i.includes("index"))&&t$1.tailwind.baseColor){let m=await Vs(t$1.tailwind.baseColor,t$1);m&&s.unshift(m);}let c=new Map;s.forEach(m=>{let E=m._source||m.name;c.set(m,E);}),s=Us(s,c),s.sort((m,E)=>m.type==="registry:theme"&&E.type!=="registry:theme"?-1:m.type!=="registry:theme"&&E.type==="registry:theme"?1:0);let f={};s.forEach(m=>{f=pe(f,m.tailwind??{});});let p={};s.forEach(m=>{p=pe(p,m.cssVars??{});});let x={};s.forEach(m=>{x=pe(x,m.css??{});});let d="";s.forEach(m=>{m.docs&&(d+=`${m.docs}
28
- `);});let h={};s.forEach(m=>{h=pe(h,m.envVars??{});});let w=await Jt(s.map(m=>m.files??[]),t$1),g=s.filter(m=>m.type==="registry:font"&&m.font).map(m=>({...m,type:"registry:font",font:m.font})),j=t.parse({dependencies:pe.all(s.map(m=>m.dependencies??[])),devDependencies:pe.all(s.map(m=>m.devDependencies??[])),files:w,tailwind:f,cssVars:p,css:x,docs:d,fonts:g.length>0?g:void 0});return Object.keys(h).length>0&&(j.envVars=h),j}async function Te(e,t,r={},s=new Set){let n=[],i=[];for(let o of e)if(!s.has(o)){if(s.add(o),F(o)||ae(o)){let[a]=await Z([o],t,r);if(a&&(n.push(a),a.registryDependencies)){let l=t?.registries?Ie(a.registryDependencies,t):a.registryDependencies,c=await Te(l,t,r,s);n.push(...c.items),i.push(...c.registryNames);}}else if(o.startsWith("@")&&t?.registries){let{registry:a}=re(o);if(a&&!(a in t.registries))throw new W(a);let[l]=await Z([o],t,r);if(l&&(n.push(l),l.registryDependencies)){let c=t?.registries?Ie(l.registryDependencies,t):l.registryDependencies,f=await Te(c,t,r,s);n.push(...f.items),i.push(...f.registryNames);}}else if(i.push(o),t)try{let[a]=await Z([o],t,r);if(a&&a.registryDependencies){let l=t?.registries?Ie(a.registryDependencies,t):a.registryDependencies,c=await Te(l,t,r,s);n.push(...c.items),i.push(...c.registryNames);}}catch{}}return {items:n,registryNames:i}}async function zs(e,t,r={}){if(F(e))return [e];let{registryNames:s}=await Te([e],t,r,new Set),n=t.resolvedPaths?.cwd?await kt(t.resolvedPaths.cwd,t.style):t.style,i=s.map(o=>Ye(F(o)?o:`styles/${n}/${o}.json`));return Array.from(new Set(i))}async function Vs(e,t){let[r,s]=await Promise.all([Je(e),ze(t)]);if(!r)return null;let n={name:e,type:"registry:theme",tailwind:{config:{theme:{extend:{borderRadius:{lg:"var(--radius)",md:"calc(var(--radius) - 2px)",sm:"calc(var(--radius) - 4px)"},colors:{}}}}},cssVars:{theme:{},light:{radius:"0.5rem"},dark:{}}};return t.tailwind.cssVariables&&(n.tailwind.config.theme.extend.colors={...n.tailwind.config.theme.extend.colors,...or(r.cssVars.dark??{})},n.cssVars={theme:{...r.cssVars.theme,...n.cssVars.theme},light:{...r.cssVars.light,...n.cssVars.light},dark:{...r.cssVars.dark,...n.cssVars.dark}},s==="v4"&&r.cssVarsV4&&(n.cssVars={theme:{...r.cssVarsV4.theme,...n.cssVars.theme},light:{radius:"0.625rem",...r.cssVarsV4.light},dark:{...r.cssVarsV4.dark}})),n}function B(e,t){let r=t||e.name,s=createHash("sha256").update(r).digest("hex").substring(0,8);return `${e.name}::${s}`}function Ws(e){if(F(e)){let s=new URL(e).pathname,n=s.match(/\/([^/]+)\.json$/),i=n?n[1]:y.basename(s,".json");return {name:i,hash:B({name:i},e)}}if(ae(e)){let r=e.match(/\/([^/]+)\.json$/),s=r?r[1]:y.basename(e,".json");return {name:s,hash:B({name:s},e)}}let{item:t}=re(e);return {name:t,hash:B({name:t},e)}}function Us(e,t){let r=new Map,s=new Map,n=new Map,i=new Map;e.forEach(c=>{let f=t.get(c)||c.name,p=B(c,f);r.set(p,c),s.set(p,c),n.set(p,0),i.set(p,[]);});let o=new Map;e.forEach(c=>{let f=t.get(c)||c.name,p=B(c,f);o.has(c.name)||o.set(c.name,[]),o.get(c.name).push(p),f!==c.name&&(o.has(f)||o.set(f,[]),o.get(f).push(p));}),e.forEach(c=>{let f=t.get(c)||c.name,p=B(c,f);c.registryDependencies&&c.registryDependencies.forEach(x=>{let d,h=o.get(x)||[];if(h.length===1)d=h[0];else if(h.length>1)d=h[0];else {let{name:w}=Ws(x),g=o.get(w)||[];g.length>0&&(d=g[0]);}d&&r.has(d)&&(i.get(d).push(p),n.set(p,n.get(p)+1));});});let a=[],l=[];for(n.forEach((c,f)=>{c===0&&a.push(f);});a.length>0;){let c=a.shift(),f=r.get(c);l.push(f),i.get(c).forEach(p=>{let x=n.get(p)-1;n.set(p,x),x===0&&a.push(p);});}if(l.length!==e.length){let c=new Set(l.map(f=>{let p=t.get(f)||f.name;return B(f,p)}));e.forEach(f=>{let p=t.get(f)||f.name,x=B(f,p);c.has(x)||l.push(f);});}return l}function fe(e){if(v.break(),v.error("Something went wrong. Please check the error below for more details."),v.error("If the problem persists, please open an issue on GitHub."),v.error(""),typeof e=="string"&&(v.error(e),v.break(),process.exit(1)),e instanceof I&&(e.message&&(v.error(e.cause?"Error:":"Message:"),v.error(e.message)),e.cause&&(v.error(`
29
- Message:`),v.error(e.cause)),e.suggestion&&(v.error(`
30
- Suggestion:`),v.error(e.suggestion)),v.break(),process.exit(1)),e instanceof z.ZodError){v.error("Validation failed:");for(let[t,r]of Object.entries(e.flatten().fieldErrors))v.error(`- ${T.info(t)}: ${r}`);v.break(),process.exit(1);}e instanceof Error&&(v.error(e.message),v.break(),process.exit(1)),v.break(),process.exit(1);}async function mt(e,t){let{config:r,useCache:s}=t||{};if(F(e)){let[a]=await P([e],{useCache:s});try{return o.parse(a)}catch(l){throw new $(e,l)}}if(!e.startsWith("@"))throw new we(e);let n=e;n.endsWith("/registry")||(n=`${n}/registry`);let i=ce(n,le(r));if(!i?.url)throw new J(n);i.headers&&Object.keys(i.headers).length>0&&Re({[i.url]:i.headers});let[o$1]=await P([i.url],{useCache:s});try{return o.parse(o$1)}catch(a){throw new $(n,a)}}async function Gs(e,t){let{config:r,useCache:s=false}=t||{};return Ce(),Z(e,le(r),{useCache:s})}async function Js(e,t){let{config:r,useCache:s=false}=t||{};return Ce(),lr(e,le(r),{useCache:s})}async function dl(e,t){let{useCache:r=true}=t||{};r||Le.clearCaches();let s=await Le.search(e);if(!s)return {registries:N};let n=z.object({registries:b$1.optional()}).safeParse(s.config);if(!n.success)throw new Ne(e,n.error);return {registries:{...N,...n.data.registries||{}}}}async function De(){try{let[e]=await P(["index.json"]);return p.parse(e)}catch(e){v.error(`
31
- `),fe(e);}}async function ul(){try{let[e]=await P(["styles/index.json"]);return q$1.parse(e)}catch(e){return v.error(`
32
- `),fe(e),[]}}async function hl(){try{let[e]=await P(["icons/index.json"]);return r.parse(e)}catch(e){return fe(e),{}}}async function yl(){return jt}async function Je(e){try{let[t]=await P([`colors/${e}.json`]);return s.parse(t)}catch(t){fe(t);}}async function Hs(e,t){let r=[];for(let s of t){let n=e.find(i=>i.name===s);if(n&&(r.push(n),n.registryDependencies)){let i=await Hs(e,n.registryDependencies);r.push(...i);}}return r.filter((s,n,i)=>i.findIndex(o=>o.name===s.name)===n)}async function xl(e,t){try{let r=t.map(n=>`styles/${e}/${n.name}.json`);return (await P(r)).map(n$1=>n.parse(n$1))}catch(r){return fe(r),[]}}async function wl(e,t,r){if(r)return r;if(t.type==="registry:ui")return e.resolvedPaths.ui??e.resolvedPaths.components;let[s,n]=t.type?.split(":")??[];return s in e.resolvedPaths?y.join(e.resolvedPaths[s],n):null}async function pr(e){e={useCache:true,...e};let t=`${G}/registries.json`,[r]=await P([t],{useCache:e.useCache});try{return x.parse(r)}catch(s){throw s instanceof z.ZodError?new Ee(s):s}}async function qs(e){let t=await pr(e);return t?Object.fromEntries(t.map(r=>[r.name,r.url])):null}async function Ys(e){e={useCache:true,...e};let t=`${G}/config.json`,[r]=await P([t],{useCache:e.useCache});return z$1.parse(r).presets}async function El(e,t){return (await Ys(t)).find(s=>s.name.toLowerCase()===e.toLowerCase())??null}async function Qs(e,t){let{query:r,limit:s,offset:n,config:i,useCache:o}=t||{},a=[];for(let x of e){let h=((await mt(x,{config:i,useCache:o})).items||[]).map(w=>({name:w.name,type:w.type,description:w.description,registry:x,addCommandArgument:rn(w.name,x)}));a=a.concat(h);}r&&(a=en(a,{query:r,limit:a.length,keys:["name","description"]}));let l=n||0,c=s||a.length,f=a.length,p={pagination:{total:f,offset:l,limit:c,hasMore:l+c<f},items:a.slice(l,l+c)};return v$1.parse(p)}var Xs=z.object({name:z.string(),type:z.string().optional(),description:z.string().optional(),registry:z.string().optional(),addCommandArgument:z.string().optional()}).passthrough();function en(e,t){t={limit:100,threshold:-1e4,...t};let s=Zs.go(t.query,e,{keys:t.keys,threshold:t.threshold,limit:t.limit}).map(n=>n.obj);return z.array(Xs).parse(s)}function tn(e){try{return new URL(e),!0}catch{return false}}function rn(e,t){if(!tn(t))return `${t}/${e}`;let r=t.indexOf("://")+3,s=t.indexOf("/",r);if(s===-1){let x=t.indexOf("?",r);if(x!==-1){let d=t.substring(0,x),w=t.substring(x).replace(/\bregistry\b/g,e);return d+w}return t}let n=t.substring(0,s),i=t.substring(s),o=i.indexOf("?")!==-1?i.indexOf("?"):i.length,a=i.substring(0,o),l=i.substring(o),c=a.lastIndexOf("registry"),f=a;c!==-1&&(f=a.substring(0,c)+e+a.substring(c+8));let p=l.replace(/\bregistry\b/g,e);return n+f+p}
33
- export{fe as $,Ge as A,Wt as B,Ut as C,xo as D,nt as E,it as F,F as G,Oo as H,In as I,Tn as J,Pn as K,jn as L,Le as M,ve as N,Fe as O,kn as P,Cr as Q,br as R,$n as S,$t as T,le as U,Ce as V,Ho as W,ce as X,Ia as Y,Z,lr as _,T as a,mt as aa,v as b,Gs as ba,k as c,Js as ca,N as d,dl as da,sn as e,De as ea,I as f,ul as fa,J as g,hl as ga,ue as h,yl as ha,he as i,Je as ia,ye as j,Hs as ja,W as k,xl as ka,te as l,wl as la,$ as m,pr as ma,xe as n,qs as na,we as o,Ys as oa,Ee as p,El as pa,re as q,tt as qa,Ot as r,_ as ra,q as s,qn as sa,Lt as t,ze as ta,Ft as u,Yn as ua,Dt as v,Qs as va,Y as w,Ve as x,Ue as y,Be as z};
@@ -1 +0,0 @@
1
- var _=["radix","base"],u=["nova","vega","maia","lyra","mira"],f=["neutral","stone","zinc","gray","mauve","olive","mist","taupe"],E=["neutral","stone","zinc","gray","amber","blue","cyan","emerald","fuchsia","green","indigo","lime","orange","pink","purple","red","rose","sky","teal","violet","yellow","mauve","olive","mist","taupe"],c=["lucide","hugeicons","tabler","phosphor","remixicon"],S=["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"],p=["default","none","small","medium","large"],m=["subtle","bold"],b=["default","inverted","default-translucent","inverted-translucent"],i=[{key:"menuColor",values:b,bits:3},{key:"menuAccent",values:m,bits:3},{key:"radius",values:p,bits:4},{key:"font",values:S,bits:6},{key:"iconLibrary",values:c,bits:6},{key:"theme",values:E,bits:6},{key:"baseColor",values:f,bits:6},{key:"style",values:u,bits:6}],g=Object.fromEntries(i.map(e=>[e.key,e.values[0]])),a="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz",l="a";function y(e){if(e===0)return "0";let t="",n=e;for(;n>0;)t=a[n%62]+t,n=Math.floor(n/62);return t}function P(e){let t=0;for(let n=0;n<e.length;n++){let r=a.indexOf(e[n]);if(r===-1)return -1;t=t*62+r;}return t}function R(e){let t={...g,...e},n=0,r=0;for(let o of i){let s=o.values.indexOf(t[o.key]);n+=(s===-1?0:s)*2**r,r+=o.bits;}return l+y(n)}function d(e){if(!e||e.length<2||e[0]!==l)return null;let t=P(e.slice(1));if(t<0)return null;let n={},r=0;for(let o of i){let s=Math.floor(t/2**r)%2**o.bits;n[o.key]=s<o.values.length?o.values[s]:o.values[0],r+=o.bits;}return n}function x(e){if(!e||e.length<2||e.length>10||e[0]!==l)return false;for(let t=1;t<e.length;t++)if(a.indexOf(e[t])===-1)return false;return true}function C(e){return d(e)!==null}function T(){let e=t=>t[Math.floor(Math.random()*t.length)];return Object.fromEntries(i.map(t=>[t.key,e(t.values)]))}function h(){return R(T())}export{_ as a,u as b,f as c,E as d,c as e,S as f,p as g,m as h,b as i,g as j,y as k,P as l,R as m,d as n,x as o,C as p,T as q,h as r};
@@ -1,2 +0,0 @@
1
- import {a}from'./chunk-CHWMSXYA.js';import {SyntaxKind,Project,ScriptKind}from'ts-morph';import {twMerge}from'tailwind-merge';var Y=async({sourceFile:n,config:r})=>{let i=r.iconLibrary;if(!i||!(i in a))return n;let s=i,t=a[s],a$1=[];for(let c of n.getDescendantsOfKind(SyntaxKind.JsxSelfClosingElement)){if(c.getTagNameNode()?.getText()!=="IconPlaceholder")continue;let d=c.getAttributes().find(g=>g.getKind()!==SyntaxKind.JsxAttribute?false:g.asKindOrThrow(SyntaxKind.JsxAttribute).getNameNode().getText()===s);if(!d)continue;let e=d.asKindOrThrow(SyntaxKind.JsxAttribute),l=e.getInitializer()?.getText().replace(/^["']|["']$/g,"");if(!l)continue;a$1.includes(l)||a$1.push(l);let u=t.usage.match(/<(\w+)([^>]*)\s*\/>/);e.remove();for(let g of c.getAttributes()){if(g.getKind()!==SyntaxKind.JsxAttribute)continue;let x=g.asKindOrThrow(SyntaxKind.JsxAttribute);x.getNameNode().getText()in a&&x.remove();}if(!u){c.getTagNameNode()?.replaceWithText(l);continue}let[,b,S]=u;if(b==="ICON"){let g=c.getAttributes().filter(x=>x.getKind()!==SyntaxKind.JsxAttribute?true:!(x.asKindOrThrow(SyntaxKind.JsxAttribute).getNameNode().getText()in a)).map(x=>x.getText()).join(" ");g.trim()?c.replaceWithText(`<${l} ${g} />`):c.getTagNameNode()?.replaceWithText(l);}else {let g=new Set(c.getAttributes().filter(m=>m.getKind()===SyntaxKind.JsxAttribute).map(m=>m.asKindOrThrow(SyntaxKind.JsxAttribute).getNameNode().getText())),N=S.replace(/\{ICON\}/g,`{${l}}`).trim().split(/\s+(?=\w+=)/).filter(m=>m).map(m=>{let A=m.split("=")[0];return A&&!g.has(A)?m:null}).filter(Boolean),E=c.getAttributes().filter(m=>m.getKind()!==SyntaxKind.JsxAttribute?true:!(m.asKindOrThrow(SyntaxKind.JsxAttribute).getNameNode().getText()in a)).map(m=>m.getText()).join(" "),y=[...N,E].filter(Boolean).join(" ");c.replaceWithText(`<${b} ${y} />`);}}for(let c of n.getImportDeclarations()??[])if(c.getModuleSpecifier()?.getText()?.includes("icon-placeholder")){let l=(c.getNamedImports()??[]).find(f=>f.getName()==="IconPlaceholder");l&&l.remove(),c.getNamedImports()?.length===0&&c.remove();}if(a$1.length>0){let c=t.import.split(`
2
- `),d=[];for(let e of c){let l=e.match(/import\s+{([^}]+)}\s+from\s+['"]([^'"]+)['"]/);if(!l)continue;let[,f,u]=l,b=f.split(",").map(g=>g.trim()).map(g=>g==="ICON"?a$1.map(x=>({name:x})):{name:g}).flat(),S=n.addImportDeclaration({moduleSpecifier:u,namedImports:b});d.push(S);}if(!L(n))for(let e of d)e.replaceWithText(e.getText().replace(";",""));}return n};function L(n){return n.getImportDeclarations()?.[0]?.getText().endsWith(";")??false}var et=async({sourceFile:n,config:r,baseColor:i})=>(r.tailwind?.cssVariables||!i?.inlineColors||n.getDescendantsOfKind(SyntaxKind.StringLiteral).forEach(s=>{let t=s.getLiteralText(),a=D(t,i.inlineColors).trim();a!==t&&s.setLiteralValue(a);}),n);function K(n){if(!n.includes("/")&&!n.includes(":"))return [null,n,null];let r=-1,i=0;for(let e=n.length-1;e>=0;e--){let l=n[e];if(l==="]")i++;else if(l==="[")i--;else if(l===":"&&i===0){r=e;break}}let s=null,t;r===-1?t=n:(s=n.slice(0,r),t=n.slice(r+1));let a=t.lastIndexOf("/");if(a===-1)return [s,t,null];let c=t.slice(0,a),d=t.slice(a+1);return [s,c,d]}var v=["bg-","text-","border-","ring-offset-","ring-"];function D(n,r){n.includes(" border ")&&(n=n.replace(" border "," border border-border "));let i=n.split(" "),s=new Set,t=new Set;for(let a of i){let[c,d,e]=K(a),l=v.find(u=>d?.startsWith(u));if(!l){s.has(a)||s.add(a);continue}let f=d?.replace(l,"");if(f&&f in r.light){s.add([c,`${l}${r.light[f]}`].filter(Boolean).join(":")+(e?`/${e}`:"")),t.add(["dark",c,`${l}${r.dark[f]}`].filter(Boolean).join(":")+(e?`/${e}`:""));continue}s.has(a)||s.add(a);}return [...Array.from(s),...Array.from(t)].join(" ").trim()}var W=[["-ml-","-ms-"],["-mr-","-me-"],["ml-","ms-"],["mr-","me-"],["pl-","ps-"],["pr-","pe-"],["-left-","-start-"],["-right-","-end-"],["left-","start-"],["right-","end-"],["inset-l-","inset-inline-start-"],["inset-r-","inset-inline-end-"],["rounded-tl-","rounded-ss-"],["rounded-tr-","rounded-se-"],["rounded-bl-","rounded-es-"],["rounded-br-","rounded-ee-"],["rounded-l-","rounded-s-"],["rounded-r-","rounded-e-"],["border-l-","border-s-"],["border-r-","border-e-"],["border-l","border-s"],["border-r","border-e"],["text-left","text-start"],["text-right","text-end"],["scroll-ml-","scroll-ms-"],["scroll-mr-","scroll-me-"],["scroll-pl-","scroll-ps-"],["scroll-pr-","scroll-pe-"],["float-left","float-start"],["float-right","float-end"],["clear-left","clear-start"],["clear-right","clear-end"],["origin-top-left","origin-top-start"],["origin-top-right","origin-top-end"],["origin-bottom-left","origin-bottom-start"],["origin-bottom-right","origin-bottom-end"],["origin-left","origin-start"],["origin-right","origin-end"]],w=[["-translate-x-","translate-x-"],["translate-x-","-translate-x-"]],M=[["space-x-","space-x-reverse"],["divide-x-","divide-x-reverse"]],R=[["cursor-w-resize","cursor-e-resize"],["cursor-e-resize","cursor-w-resize"]],j=[["data-[side=inline-start]","slide-in-from-right","slide-in-from-end"],["data-[side=inline-start]","slide-out-to-right","slide-out-to-end"],["data-[side=inline-end]","slide-in-from-left","slide-in-from-start"],["data-[side=inline-end]","slide-out-to-left","slide-out-to-start"]],J="cn-rtl-flip",$=["ContextMenuContent","ContextMenuSubContent","DropdownMenuSubContent"],P={right:"inline-end",left:"inline-start"},V=["-left-","-right-","left-","right-"],ot=async({sourceFile:n,config:r})=>(r.rtl&&C(n),n);async function at(n,r){if(!r)return n;let s=new Project({useInMemoryFileSystem:true}).createSourceFile("component.tsx",n,{scriptKind:ScriptKind.TSX,overwrite:true});return C(s),s.getText()}function I(n){return n.replace(/^["']|["']$/g,"")}function h(n){let r=I(n.getText()??"");n.replaceWithText(`"${B(r)}"`);}function B(n){return n.split(" ").flatMap(r=>{if(r.startsWith("rtl:")||r.startsWith("ltr:"))return [r];if(r===J)return ["rtl:rotate-180"];let[i,s,t]=K(r);if(!s)return [r];for(let[e,l]of w)if(s.startsWith(e)){let f=s.replace(e,l),u=i?`rtl:${i}:${f}${t?`/${t}`:""}`:`rtl:${f}${t?`/${t}`:""}`;return [r,u]}for(let[e,l]of M)if(s.startsWith(e)){let f=i?`rtl:${i}:${l}`:`rtl:${l}`;return [r,f]}for(let[e,l]of R)if(s===e){let f=i?`rtl:${i}:${l}`:`rtl:${l}`;return [r,f]}for(let[e,l,f]of j)if(i?.includes(e)&&s.startsWith(l)){let u=s.replace(l,f);return [t?`${i}:${u}/${t}`:`${i}:${u}`]}let a=i?.includes("data-[side=left]")||i?.includes("data-[side=right]"),c=s;for(let[e,l]of W)if(!(a&&V.some(f=>e.startsWith(f)))&&s.startsWith(e)){if(!e.endsWith("-")&&s!==e)continue;c=s.replace(e,l);break}let d;return i?d=t?`${i}:${c}/${t}`:`${i}:${c}`:d=t?`${c}/${t}`:c,[d]}).join(" ")}function C(n){n.getDescendantsOfKind(SyntaxKind.CallExpression).filter(r=>r.getExpression().getText()==="cva").forEach(r=>{let i=r.getArguments()[0];i?.isKind(SyntaxKind.StringLiteral)&&h(i),r.getArguments()[1]?.isKind(SyntaxKind.ObjectLiteralExpression)&&r.getArguments()[1]?.getDescendantsOfKind(SyntaxKind.PropertyAssignment).find(s=>s.getName()==="variants")?.getDescendantsOfKind(SyntaxKind.PropertyAssignment).forEach(s=>{s.getDescendantsOfKind(SyntaxKind.PropertyAssignment).forEach(t=>{let a=t.getInitializerIfKind(SyntaxKind.StringLiteral);a&&h(a);});});}),n.getDescendantsOfKind(SyntaxKind.JsxAttribute).forEach(r=>{if(r.getNameNode().getText()==="className"){let i=r.getInitializer();if(i?.isKind(SyntaxKind.StringLiteral)&&h(i),r.getInitializer()?.isKind(SyntaxKind.JsxExpression)){let s=r.getInitializer()?.getDescendantsOfKind(SyntaxKind.CallExpression).find(t=>t.getExpression().getText()==="cn");s&&s.getArguments().forEach(t=>{(t.isKind(SyntaxKind.ConditionalExpression)||t.isKind(SyntaxKind.BinaryExpression))&&t.getChildrenOfKind(SyntaxKind.StringLiteral).forEach(h),t.isKind(SyntaxKind.StringLiteral)&&h(t);});}}r.getNameNode().getText()==="classNames"&&r.getInitializer()?.isKind(SyntaxKind.JsxExpression)&&r.getDescendantsOfKind(SyntaxKind.PropertyAssignment).forEach(i=>{if(i.getInitializer()?.isKind(SyntaxKind.CallExpression)){let t=i.getInitializerIfKind(SyntaxKind.CallExpression);t&&t.getArguments().forEach(a=>{a.isKind(SyntaxKind.ConditionalExpression)&&a.getChildrenOfKind(SyntaxKind.StringLiteral).forEach(h),a.isKind(SyntaxKind.StringLiteral)&&h(a);});}let s=i.getInitializer();s?.isKind(SyntaxKind.StringLiteral)&&i.getNameNode().getText()!=="variant"&&h(s);});}),n.getDescendantsOfKind(SyntaxKind.CallExpression).filter(r=>r.getExpression().getText()==="mergeProps").forEach(r=>{let i=r.getArguments()[0];if(i?.isKind(SyntaxKind.ObjectLiteralExpression)){let s=i.getProperties().find(t=>t.isKind(SyntaxKind.PropertyAssignment)&&t.getName()==="className");if(s?.isKind(SyntaxKind.PropertyAssignment)){let t=s.getInitializer();t?.isKind(SyntaxKind.CallExpression)&&t.getExpression().getText()==="cn"&&t.getArguments().forEach(a=>{a.isKind(SyntaxKind.StringLiteral)&&h(a),(a.isKind(SyntaxKind.ConditionalExpression)||a.isKind(SyntaxKind.BinaryExpression))&&a.getChildrenOfKind(SyntaxKind.StringLiteral).forEach(h);}),t?.isKind(SyntaxKind.StringLiteral)&&h(t);}}}),[...n.getDescendantsOfKind(SyntaxKind.JsxSelfClosingElement),...n.getDescendantsOfKind(SyntaxKind.JsxOpeningElement)].forEach(r=>{let i=r.getTagNameNode().getText();if(!$.includes(i))return;let s=r.getAttributes().find(d=>d.isKind(SyntaxKind.JsxAttribute)&&d.getNameNode().getText()==="side");if(!s?.isKind(SyntaxKind.JsxAttribute))return;let t=s.getInitializer();if(!t?.isKind(SyntaxKind.StringLiteral))return;let a=I(t.getText()??""),c=P[a];c&&t.replaceWithText(`"${c}"`);}),n.getDescendantsOfKind(SyntaxKind.BindingElement).forEach(r=>{if(r.getNameNode().getText()!=="side")return;let t=r.getFirstAncestorByKind(SyntaxKind.FunctionDeclaration)?.getName();if(!t||!$.includes(t))return;let a=r.getInitializer();if(!a?.isKind(SyntaxKind.StringLiteral))return;let c=I(a.getText()??""),d=P[c];d&&a.replaceWithText(`"${d}"`);});}var X="animate-none! relative bg-popover/70 before:pointer-events-none before:absolute before:inset-0 before:-z-1 before:rounded-[inherit] before:backdrop-blur-2xl before:backdrop-saturate-150 **:data-[slot$=-item]:focus:bg-foreground/10 **:data-[slot$=-item]:data-highlighted:bg-foreground/10 **:data-[slot$=-separator]:bg-foreground/5 **:data-[slot$=-trigger]:focus:bg-foreground/10 **:data-[slot$=-trigger]:aria-expanded:bg-foreground/10! **:data-[variant=destructive]:focus:bg-foreground/10! **:data-[variant=destructive]:text-accent-foreground! **:data-[variant=destructive]:**:text-accent-foreground!",ft=async({sourceFile:n,config:r})=>{let i=r.menuColor,s=i==="default-translucent"||i==="inverted-translucent";for(let t of n.getDescendantsOfKind(SyntaxKind.JsxAttribute)){if(t.getNameNode().getText()!=="className")continue;let c=t.getInitializer();if(!c)continue;let d=c.getText();if(!d.includes("cn-menu-target")&&!d.includes("cn-menu-translucent"))continue;let e=d,l=false;i==="inverted"||i==="inverted-translucent"?e=e.replace(/cn-menu-target/g,"dark"):(e=e.replace(/cn-menu-target/g,""),l=true),s?e=e.replace(/"([^"]*cn-menu-translucent[^"]*)"/g,(f,u)=>`"${twMerge(u,X).replace(/\s*\bcn-menu-translucent\b\s*/g," ").trim()}"`):e.includes("cn-menu-translucent")&&(e=e.replace(/cn-menu-translucent/g,""),l=true),l&&(e=e.replace(/\s{2,}/g," "),e=e.replace(/"\s+/g,'"'),e=e.replace(/\s+"/g,'"'),e=e.replace(/,\s*""\s*,/g,","),e=e.replace(/\(\s*""\s*,/g,"("),e=e.replace(/,\s*""\s*\)/g,")")),t.setInitializer(e);}return n};export{et as a,K as b,Y as c,ot as d,at as e,ft as f};