shadcn 3.6.0 → 3.6.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/mcp/index.js CHANGED
@@ -1,2 +1,2 @@
1
- export{b as server}from'../chunk-KAJFNXHN.js';import'../chunk-UHRSOZGS.js';import'../chunk-WKG3W635.js';import'../chunk-YPHLD64H.js';import'../chunk-6SDOGUEN.js';//# sourceMappingURL=index.js.map
1
+ export{b as server}from'../chunk-SSXFFJQN.js';import'../chunk-I3JXSMK6.js';import'../chunk-WKG3W635.js';import'../chunk-PMFK2ZSQ.js';import'../chunk-BFNVF2P5.js';//# sourceMappingURL=index.js.map
2
2
  //# sourceMappingURL=index.js.map
@@ -1,2 +1,2 @@
1
- export{_ as getRegistriesIndex,O as getRegistry,P as getRegistryItems,Q as resolveRegistryItems,ba as searchRegistries}from'../chunk-UHRSOZGS.js';import'../chunk-WKG3W635.js';export{l as RegistriesIndexParseError,a as RegistryError,e as RegistryFetchError,d as RegistryForbiddenError,j as RegistryInvalidNamespaceError,g as RegistryLocalFileError,i as RegistryMissingEnvironmentVariablesError,f as RegistryNotConfiguredError,b as RegistryNotFoundError,h as RegistryParseError,c as RegistryUnauthorizedError}from'../chunk-YPHLD64H.js';import'../chunk-6SDOGUEN.js';//# sourceMappingURL=index.js.map
1
+ export{E as RegistriesIndexParseError,u as RegistryError,y as RegistryFetchError,x as RegistryForbiddenError,D as RegistryInvalidNamespaceError,A as RegistryLocalFileError,C as RegistryMissingEnvironmentVariablesError,z as RegistryNotConfiguredError,v as RegistryNotFoundError,B as RegistryParseError,w as RegistryUnauthorizedError,ja as getRegistriesIndex,Z as getRegistry,_ as getRegistryItems,$ as resolveRegistryItems,ma as searchRegistries}from'../chunk-I3JXSMK6.js';import'../chunk-WKG3W635.js';import'../chunk-PMFK2ZSQ.js';import'../chunk-BFNVF2P5.js';//# sourceMappingURL=index.js.map
2
2
  //# sourceMappingURL=index.js.map
@@ -1,2 +1,2 @@
1
- export{m as transformIcons,n as transformMenu}from'../chunk-YPHLD64H.js';import'../chunk-6SDOGUEN.js';import z$1 from'postcss';import K from'postcss-selector-parser';import {z}from'zod';import {Project,ScriptKind,SyntaxKind,Node}from'ts-morph';var N="cn-",R=z.record(z.string().startsWith(N),z.string());function W(t){let e=z$1.parse(t),r={};return e.walkRules(s=>{let n=s.selectors??[];if(n.length===0)return;let i=D(s);if(i)for(let g of n){let c=B(g);K(o=>{o.each(l=>{let u=k(l);if(!u)return;let f=u.value;f.startsWith(N)&&(r[f]=r[f]?`${i} ${r[f]}`:i);});}).processSync(c);}}),R.parse(r)}function B(t){return t.replace(/\s*&\s*/g,"").trim()}function D(t){let e=[];for(let r of t.nodes||[])if(r.type==="atrule"&&r.name==="apply"){let s=r.params.trim();s&&e.push(s);}return e.length===0?null:e.join(" ")}function k(t){let e=[];return t.walkClasses(r=>{r.value.startsWith(N)&&e.push(r);}),e.length===0?null:e[e.length-1]}var X=new Set(["cn-menu-target"]);function p(t){return Node.isStringLiteral(t)||Node.isNoSubstitutionTemplateLiteral(t)}var $=async({sourceFile:t,styleMap:e})=>{let r=new Set;return _(t,e,r),q(t,e,r),Q(t,e,r),t};function O(t,e,r){let s=t.getLiteralText(),n=y(s);if(n.length===0)return;let i=n.filter(c=>!r.has(c));if(i.length===0){let c=m(s);t.setLiteralValue(c);return}let g=i.map(c=>e[c]).filter(c=>!!c);if(g.length>0){let c=g.join(" "),o=m(E(c,s));t.setLiteralValue(o),i.forEach(l=>r.add(l));}else {let c=m(s);t.setLiteralValue(c);}}function _(t,e,r){t.forEachDescendant(s=>{if(!Node.isCallExpression(s))return;let n=s.getExpression();if(!Node.isIdentifier(n)||n.getText()!=="cva")return;let i=s.getArguments()[0];Node.isStringLiteral(i)&&O(i,e,r);let g=s.getArguments()[1];if(!g||!Node.isObjectLiteralExpression(g))return;let c=g.getProperties().find(l=>Node.isPropertyAssignment(l)&&Node.isIdentifier(l.getNameNode())&&l.getNameNode().getText()==="variants");if(!c||!Node.isPropertyAssignment(c))return;let o=c.getInitializer();!o||!Node.isObjectLiteralExpression(o)||o.getProperties().forEach(l=>{if(!Node.isPropertyAssignment(l))return;let u=l.getInitializer();!u||!Node.isObjectLiteralExpression(u)||u.getProperties().forEach(f=>{if(!Node.isPropertyAssignment(f))return;let x=f.getInitializer();x&&Node.isStringLiteral(x)&&O(x,e,r);});});});}function q(t,e,r){t.forEachDescendant(s=>{if(!Node.isJsxAttribute(s)||s.getNameNode().getText()!=="className")return;let n=s.getInitializer();if(!n)return;let i=G(n);if(i.length===0)return;let g=s.getParent()?.getParent();if(!g||!Node.isJsxOpeningElement(g)&&!Node.isJsxSelfClosingElement(g))return;let c=i.filter(l=>!r.has(l));if(c.length===0){I(n);return}let o=c.map(l=>e[l]).filter(l=>!!l);if(o.length>0){let l=o.join(" ");H(g,l);}else I(n);});}function G(t){let e=[];if(p(t))return y(t.getLiteralText());if(!Node.isJsxExpression(t))return e;let r=t.getExpression();if(!r)return e;if(p(r))return y(r.getLiteralText());if(Node.isCallExpression(r)&&A(r))for(let s of r.getArguments())p(s)&&e.push(...y(s.getLiteralText()));return e}function I(t){if(p(t)){let r=m(t.getLiteralText());t.setLiteralValue(r);return}if(!Node.isJsxExpression(t))return;let e=t.getExpression();if(e){if(p(e)){let r=m(e.getLiteralText());e.setLiteralValue(r);return}if(Node.isCallExpression(e)&&A(e)){for(let r of e.getArguments())if(p(r)){let s=m(r.getLiteralText());r.setLiteralValue(s);}C(e);}}}function y(t){let e=t.matchAll(/\bcn-[\w-]+\b/g);return Array.from(e,r=>r[0])}function m(t){return t.replace(/\bcn-[\w-]+\b/g,e=>X.has(e)?e:"").replace(/\s+/g," ").trim()}function C(t){if(!A(t))return;let e=t.getArguments(),r=e.filter(s=>p(s)?s.getLiteralText().trim()!=="":true);if(r.length!==e.length){let s=r.map(i=>i.getText()),n=t.getParent();n&&Node.isJsxExpression(n)?n.replaceWithText(`{cn(${s.join(", ")})}`):t.replaceWithText(`cn(${s.join(", ")})`);}}function H(t,e){if(!Node.isJsxOpeningElement(t)&&!Node.isJsxSelfClosingElement(t))return;let r=t.getAttributes().find(i=>Node.isJsxAttribute(i)&&i.getNameNode().getText()==="className");if(!r||!Node.isJsxAttribute(r)){t.addAttribute({name:"className",initializer:`{cn(${JSON.stringify(e)})}`});return}let s=r.getInitializer();if(!s){r.setInitializer(`{cn(${JSON.stringify(e)})}`);return}if(p(s)){let i=s.getLiteralText(),g=m(E(e,i));s.setLiteralValue(g);return}if(!Node.isJsxExpression(s))return;let n=s.getExpression();if(!n){r.setInitializer(`{cn(${JSON.stringify(e)})}`);return}if(p(n)){let i=n.getLiteralText(),g=m(E(e,i));n.setLiteralValue(g);return}if(Node.isCallExpression(n)&&A(n)){let i=n.getArguments()[0];if(p(i)){let o=i.getLiteralText(),l=m(E(e,o));i.setLiteralValue(l);for(let u=1;u<n.getArguments().length;u++){let f=n.getArguments()[u];if(p(f)){let x=f.getLiteralText(),T=m(x);T!==x&&f.setLiteralValue(T);}}C(n);return}let g=n.getArguments().map(o=>{if(p(o)){let l=m(o.getLiteralText());return l?JSON.stringify(l):null}return o.getText()}).filter(o=>o!==null),c=[JSON.stringify(e),...g];r.setInitializer(`{cn(${c.join(", ")})}`);return}r.setInitializer(`{cn(${JSON.stringify(e)}, ${n.getText()})}`);}function E(t,e){let r=e.split(/\s+/).filter(Boolean);return [...t.split(/\s+/).filter(Boolean),...r].join(" ").trim()}function A(t){let e=t.getExpression();return Node.isIdentifier(e)&&e.getText()==="cn"}function Q(t,e,r){t.forEachDescendant(s=>{if(!Node.isCallExpression(s))return;let n=s.getExpression();if(!(!Node.isIdentifier(n)||n.getText()!=="mergeProps"))for(let i of s.getArguments()){if(!Node.isObjectLiteralExpression(i))continue;let g=i.getProperties().find(o=>Node.isPropertyAssignment(o)&&Node.isIdentifier(o.getNameNode())&&o.getNameNode().getText()==="className");if(!g||!Node.isPropertyAssignment(g))continue;let c=g.getInitializer();if(c&&Node.isCallExpression(c)&&A(c)){let o=U(c);if(o.length===0)continue;let l=o.filter(f=>!r.has(f));if(l.length===0){P(c);continue}let u=l.map(f=>e[f]).filter(f=>!!f);if(u.length>0){let f=u.join(" ");Y(c,f,r,l);}else P(c);}}});}function U(t){let e=[];for(let r of t.getArguments())p(r)&&e.push(...y(r.getLiteralText()));return e}function P(t){for(let e of t.getArguments())if(p(e)){let r=m(e.getLiteralText());e.setLiteralValue(r);}C(t);}function Y(t,e,r,s){let n=t.getArguments()[0];if(p(n)){let o=n.getLiteralText(),l=m(E(e,o));n.setLiteralValue(l),s.forEach(u=>r.add(u));for(let u=1;u<t.getArguments().length;u++){let f=t.getArguments()[u];if(p(f)){let x=f.getLiteralText(),T=m(x);T!==x&&f.setLiteralValue(T);}}C(t);return}let i=t.getArguments().map(o=>{if(p(o)){let l=m(o.getLiteralText());return l?JSON.stringify(l):null}return o.getText()}).filter(o=>o!==null),g=[JSON.stringify(e),...i];s.forEach(o=>r.add(o)),t.getParent()&&t.replaceWithText(`cn(${g.join(", ")})`);}async function et(t,{styleMap:e,transformers:r=[$]}){let n=new Project({useInMemoryFileSystem:true}).createSourceFile("component.tsx",t,{scriptKind:ScriptKind.TSX,overwrite:true});for(let i of r)await i({sourceFile:n,styleMap:e});return n.getText()}var rt=async({sourceFile:t,config:e})=>{if(!e.style?.startsWith("base-"))return t;let r=[],s=t.getDescendantsOfKind(SyntaxKind.JsxElement);for(let n of s){let i=n.getOpeningElement(),g=i.getAttribute("render");if(!g)continue;let o=n.getJsxChildren().map(S=>S.getText()).join("").trim();if(!o||g.getKind()!==SyntaxKind.JsxAttribute)continue;let u=g.asKindOrThrow(SyntaxKind.JsxAttribute).getInitializer();if(!u||u.getKind()!==SyntaxKind.JsxExpression)continue;let x=u.asKindOrThrow(SyntaxKind.JsxExpression).getExpression();if(!x||x.getKind()!==SyntaxKind.JsxSelfClosingElement)continue;let T=x.asKindOrThrow(SyntaxKind.JsxSelfClosingElement),h=T.getTagNameNode().getText(),b=T.getAttributes().map(S=>S.getText()).join(" "),j=b?`{<${h} ${b}>${o}</${h}>}`:`{<${h}>${o}</${h}>}`,w=i.getTagNameNode().getText(),J=i.getAttributes().filter(S=>S.getKind()===SyntaxKind.JsxAttribute?S.asKindOrThrow(SyntaxKind.JsxAttribute).getNameNode().getText()!=="render":true).map(S=>S.getText()).join(" "),M=J?`${J} render=${j}`:`render=${j}`,V=`<${w} ${M} />`;r.push({elementStart:n.getStart(),elementEnd:n.getEnd(),newText:V});}for(let n of r.reverse()){let i=t.getFullText(),g=i.substring(0,n.elementStart)+n.newText+i.substring(n.elementEnd);t.replaceWithText(g);}return t};export{W as createStyleMap,rt as transformRender,et as transformStyle};//# sourceMappingURL=index.js.map
1
+ export{a as transformIcons,b as transformMenu}from'../chunk-PMFK2ZSQ.js';import'../chunk-BFNVF2P5.js';import z$1 from'postcss';import K from'postcss-selector-parser';import {z}from'zod';import {Project,ScriptKind,SyntaxKind,Node}from'ts-morph';var N="cn-",R=z.record(z.string().startsWith(N),z.string());function W(t){let e=z$1.parse(t),r={};return e.walkRules(s=>{let n=s.selectors??[];if(n.length===0)return;let i=D(s);if(i)for(let g of n){let c=B(g);K(o=>{o.each(l=>{let u=k(l);if(!u)return;let f=u.value;f.startsWith(N)&&(r[f]=r[f]?`${i} ${r[f]}`:i);});}).processSync(c);}}),R.parse(r)}function B(t){return t.replace(/\s*&\s*/g,"").trim()}function D(t){let e=[];for(let r of t.nodes||[])if(r.type==="atrule"&&r.name==="apply"){let s=r.params.trim();s&&e.push(s);}return e.length===0?null:e.join(" ")}function k(t){let e=[];return t.walkClasses(r=>{r.value.startsWith(N)&&e.push(r);}),e.length===0?null:e[e.length-1]}var X=new Set(["cn-menu-target"]);function p(t){return Node.isStringLiteral(t)||Node.isNoSubstitutionTemplateLiteral(t)}var $=async({sourceFile:t,styleMap:e})=>{let r=new Set;return _(t,e,r),q(t,e,r),Q(t,e,r),t};function O(t,e,r){let s=t.getLiteralText(),n=y(s);if(n.length===0)return;let i=n.filter(c=>!r.has(c));if(i.length===0){let c=m(s);t.setLiteralValue(c);return}let g=i.map(c=>e[c]).filter(c=>!!c);if(g.length>0){let c=g.join(" "),o=m(E(c,s));t.setLiteralValue(o),i.forEach(l=>r.add(l));}else {let c=m(s);t.setLiteralValue(c);}}function _(t,e,r){t.forEachDescendant(s=>{if(!Node.isCallExpression(s))return;let n=s.getExpression();if(!Node.isIdentifier(n)||n.getText()!=="cva")return;let i=s.getArguments()[0];Node.isStringLiteral(i)&&O(i,e,r);let g=s.getArguments()[1];if(!g||!Node.isObjectLiteralExpression(g))return;let c=g.getProperties().find(l=>Node.isPropertyAssignment(l)&&Node.isIdentifier(l.getNameNode())&&l.getNameNode().getText()==="variants");if(!c||!Node.isPropertyAssignment(c))return;let o=c.getInitializer();!o||!Node.isObjectLiteralExpression(o)||o.getProperties().forEach(l=>{if(!Node.isPropertyAssignment(l))return;let u=l.getInitializer();!u||!Node.isObjectLiteralExpression(u)||u.getProperties().forEach(f=>{if(!Node.isPropertyAssignment(f))return;let x=f.getInitializer();x&&Node.isStringLiteral(x)&&O(x,e,r);});});});}function q(t,e,r){t.forEachDescendant(s=>{if(!Node.isJsxAttribute(s)||s.getNameNode().getText()!=="className")return;let n=s.getInitializer();if(!n)return;let i=G(n);if(i.length===0)return;let g=s.getParent()?.getParent();if(!g||!Node.isJsxOpeningElement(g)&&!Node.isJsxSelfClosingElement(g))return;let c=i.filter(l=>!r.has(l));if(c.length===0){I(n);return}let o=c.map(l=>e[l]).filter(l=>!!l);if(o.length>0){let l=o.join(" ");H(g,l);}else I(n);});}function G(t){let e=[];if(p(t))return y(t.getLiteralText());if(!Node.isJsxExpression(t))return e;let r=t.getExpression();if(!r)return e;if(p(r))return y(r.getLiteralText());if(Node.isCallExpression(r)&&A(r))for(let s of r.getArguments())p(s)&&e.push(...y(s.getLiteralText()));return e}function I(t){if(p(t)){let r=m(t.getLiteralText());t.setLiteralValue(r);return}if(!Node.isJsxExpression(t))return;let e=t.getExpression();if(e){if(p(e)){let r=m(e.getLiteralText());e.setLiteralValue(r);return}if(Node.isCallExpression(e)&&A(e)){for(let r of e.getArguments())if(p(r)){let s=m(r.getLiteralText());r.setLiteralValue(s);}C(e);}}}function y(t){let e=t.matchAll(/\bcn-[\w-]+\b/g);return Array.from(e,r=>r[0])}function m(t){return t.replace(/\bcn-[\w-]+\b/g,e=>X.has(e)?e:"").replace(/\s+/g," ").trim()}function C(t){if(!A(t))return;let e=t.getArguments(),r=e.filter(s=>p(s)?s.getLiteralText().trim()!=="":true);if(r.length!==e.length){let s=r.map(i=>i.getText()),n=t.getParent();n&&Node.isJsxExpression(n)?n.replaceWithText(`{cn(${s.join(", ")})}`):t.replaceWithText(`cn(${s.join(", ")})`);}}function H(t,e){if(!Node.isJsxOpeningElement(t)&&!Node.isJsxSelfClosingElement(t))return;let r=t.getAttributes().find(i=>Node.isJsxAttribute(i)&&i.getNameNode().getText()==="className");if(!r||!Node.isJsxAttribute(r)){t.addAttribute({name:"className",initializer:`{cn(${JSON.stringify(e)})}`});return}let s=r.getInitializer();if(!s){r.setInitializer(`{cn(${JSON.stringify(e)})}`);return}if(p(s)){let i=s.getLiteralText(),g=m(E(e,i));s.setLiteralValue(g);return}if(!Node.isJsxExpression(s))return;let n=s.getExpression();if(!n){r.setInitializer(`{cn(${JSON.stringify(e)})}`);return}if(p(n)){let i=n.getLiteralText(),g=m(E(e,i));n.setLiteralValue(g);return}if(Node.isCallExpression(n)&&A(n)){let i=n.getArguments()[0];if(p(i)){let o=i.getLiteralText(),l=m(E(e,o));i.setLiteralValue(l);for(let u=1;u<n.getArguments().length;u++){let f=n.getArguments()[u];if(p(f)){let x=f.getLiteralText(),T=m(x);T!==x&&f.setLiteralValue(T);}}C(n);return}let g=n.getArguments().map(o=>{if(p(o)){let l=m(o.getLiteralText());return l?JSON.stringify(l):null}return o.getText()}).filter(o=>o!==null),c=[JSON.stringify(e),...g];r.setInitializer(`{cn(${c.join(", ")})}`);return}r.setInitializer(`{cn(${JSON.stringify(e)}, ${n.getText()})}`);}function E(t,e){let r=e.split(/\s+/).filter(Boolean);return [...t.split(/\s+/).filter(Boolean),...r].join(" ").trim()}function A(t){let e=t.getExpression();return Node.isIdentifier(e)&&e.getText()==="cn"}function Q(t,e,r){t.forEachDescendant(s=>{if(!Node.isCallExpression(s))return;let n=s.getExpression();if(!(!Node.isIdentifier(n)||n.getText()!=="mergeProps"))for(let i of s.getArguments()){if(!Node.isObjectLiteralExpression(i))continue;let g=i.getProperties().find(o=>Node.isPropertyAssignment(o)&&Node.isIdentifier(o.getNameNode())&&o.getNameNode().getText()==="className");if(!g||!Node.isPropertyAssignment(g))continue;let c=g.getInitializer();if(c&&Node.isCallExpression(c)&&A(c)){let o=U(c);if(o.length===0)continue;let l=o.filter(f=>!r.has(f));if(l.length===0){P(c);continue}let u=l.map(f=>e[f]).filter(f=>!!f);if(u.length>0){let f=u.join(" ");Y(c,f,r,l);}else P(c);}}});}function U(t){let e=[];for(let r of t.getArguments())p(r)&&e.push(...y(r.getLiteralText()));return e}function P(t){for(let e of t.getArguments())if(p(e)){let r=m(e.getLiteralText());e.setLiteralValue(r);}C(t);}function Y(t,e,r,s){let n=t.getArguments()[0];if(p(n)){let o=n.getLiteralText(),l=m(E(e,o));n.setLiteralValue(l),s.forEach(u=>r.add(u));for(let u=1;u<t.getArguments().length;u++){let f=t.getArguments()[u];if(p(f)){let x=f.getLiteralText(),T=m(x);T!==x&&f.setLiteralValue(T);}}C(t);return}let i=t.getArguments().map(o=>{if(p(o)){let l=m(o.getLiteralText());return l?JSON.stringify(l):null}return o.getText()}).filter(o=>o!==null),g=[JSON.stringify(e),...i];s.forEach(o=>r.add(o)),t.getParent()&&t.replaceWithText(`cn(${g.join(", ")})`);}async function et(t,{styleMap:e,transformers:r=[$]}){let n=new Project({useInMemoryFileSystem:true}).createSourceFile("component.tsx",t,{scriptKind:ScriptKind.TSX,overwrite:true});for(let i of r)await i({sourceFile:n,styleMap:e});return n.getText()}var rt=async({sourceFile:t,config:e})=>{if(!e.style?.startsWith("base-"))return t;let r=[],s=t.getDescendantsOfKind(SyntaxKind.JsxElement);for(let n of s){let i=n.getOpeningElement(),g=i.getAttribute("render");if(!g)continue;let o=n.getJsxChildren().map(S=>S.getText()).join("").trim();if(!o||g.getKind()!==SyntaxKind.JsxAttribute)continue;let u=g.asKindOrThrow(SyntaxKind.JsxAttribute).getInitializer();if(!u||u.getKind()!==SyntaxKind.JsxExpression)continue;let x=u.asKindOrThrow(SyntaxKind.JsxExpression).getExpression();if(!x||x.getKind()!==SyntaxKind.JsxSelfClosingElement)continue;let T=x.asKindOrThrow(SyntaxKind.JsxSelfClosingElement),h=T.getTagNameNode().getText(),b=T.getAttributes().map(S=>S.getText()).join(" "),j=b?`{<${h} ${b}>${o}</${h}>}`:`{<${h}>${o}</${h}>}`,w=i.getTagNameNode().getText(),J=i.getAttributes().filter(S=>S.getKind()===SyntaxKind.JsxAttribute?S.asKindOrThrow(SyntaxKind.JsxAttribute).getNameNode().getText()!=="render":true).map(S=>S.getText()).join(" "),M=J?`${J} render=${j}`:`render=${j}`,V=`<${w} ${M} />`;r.push({elementStart:n.getStart(),elementEnd:n.getEnd(),newText:V});}for(let n of r.reverse()){let i=t.getFullText(),g=i.substring(0,n.elementStart)+n.newText+i.substring(n.elementEnd);t.replaceWithText(g);}return t};export{W as createStyleMap,rt as transformRender,et as transformStyle};//# sourceMappingURL=index.js.map
2
2
  //# sourceMappingURL=index.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "shadcn",
3
- "version": "3.6.0",
3
+ "version": "3.6.2",
4
4
  "description": "Add components to your apps.",
5
5
  "publishConfig": {
6
6
  "access": "public"
@@ -12,7 +12,7 @@
12
12
  },
13
13
  "repository": {
14
14
  "type": "git",
15
- "url": "https://github.com/shadcn/ui.git",
15
+ "url": "https://github.com/shadcn-ui/ui.git",
16
16
  "directory": "packages/shadcn"
17
17
  },
18
18
  "files": [
@@ -56,24 +56,6 @@
56
56
  }
57
57
  },
58
58
  "bin": "./dist/index.js",
59
- "scripts": {
60
- "dev": "tsup --watch",
61
- "build": "tsup",
62
- "typecheck": "tsc --noEmit",
63
- "clean": "rimraf dist && rimraf components",
64
- "start:dev": "cross-env REGISTRY_URL=http://localhost:4000/r node dist/index.js",
65
- "start:prod": "cross-env REGISTRY_URL=https://ui.shadcn.com/r node dist/index.js",
66
- "start": "node dist/index.js",
67
- "format:write": "prettier --write \"**/*.{ts,tsx,mdx}\" --cache",
68
- "format:check": "prettier --check \"**/*.{ts,tsx,mdx}\" --cache",
69
- "release": "changeset version",
70
- "pub:beta": "pnpm build && pnpm publish --no-git-checks --access public --tag beta",
71
- "pub:next": "pnpm build && pnpm publish --no-git-checks --access public --tag next",
72
- "pub:release": "pnpm build && pnpm publish --access public",
73
- "test": "vitest run",
74
- "test:dev": "REGISTRY_URL=http://localhost:4000/r vitest run",
75
- "mcp:inspect": "pnpm dlx @modelcontextprotocol/inspector node dist/index.js mcp"
76
- },
77
59
  "dependencies": {
78
60
  "@antfu/ni": "^25.0.0",
79
61
  "@babel/core": "^7.28.0",
@@ -117,5 +99,23 @@
117
99
  "tsup": "^8.5.0",
118
100
  "type-fest": "^4.41.0",
119
101
  "typescript": "^5.9.2"
102
+ },
103
+ "scripts": {
104
+ "dev": "tsup --watch",
105
+ "build": "tsup",
106
+ "typecheck": "tsc --noEmit",
107
+ "clean": "rimraf dist && rimraf components",
108
+ "start:dev": "cross-env REGISTRY_URL=http://localhost:4000/r node dist/index.js",
109
+ "start:prod": "cross-env REGISTRY_URL=https://ui.shadcn.com/r node dist/index.js",
110
+ "start": "node dist/index.js",
111
+ "format:write": "prettier --write \"**/*.{ts,tsx,mdx}\" --cache",
112
+ "format:check": "prettier --check \"**/*.{ts,tsx,mdx}\" --cache",
113
+ "release": "changeset version",
114
+ "pub:beta": "pnpm build && pnpm publish --no-git-checks --access public --tag beta",
115
+ "pub:next": "pnpm build && pnpm publish --no-git-checks --access public --tag next",
116
+ "pub:release": "pnpm build && pnpm publish --access public",
117
+ "test": "vitest run",
118
+ "test:dev": "REGISTRY_URL=http://localhost:4000/r vitest run",
119
+ "mcp:inspect": "pnpm dlx @modelcontextprotocol/inspector node dist/index.js mcp"
120
120
  }
121
- }
121
+ }
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/icons/libraries.ts"],"names":["iconLibraries"],"mappings":"AAAO,IAAMA,CAAAA,CAAgB,CAC3B,MAAA,CAAQ,CACN,KAAM,QAAA,CACN,KAAA,CAAO,SACP,QAAA,CAAU,CAAC,cAAc,CAAA,CACzB,MAAA,CAAQ,sCACR,KAAA,CAAO,UAAA,CACP,OAAQ,cACV,CAAA,CACA,MAAA,CAAQ,CACN,IAAA,CAAM,QAAA,CACN,MAAO,cAAA,CACP,QAAA,CAAU,CAAC,qBAAqB,CAAA,CAChC,OAAQ,4CAAA,CACR,KAAA,CAAO,UAAA,CACP,MAAA,CAAQ,qBACV,CAAA,CACA,UAAW,CACT,IAAA,CAAM,YACN,KAAA,CAAO,WAAA,CACP,SAAU,CAAC,kBAAA,CAAoB,4BAA4B,CAAA,CAC3D,MAAA,CACE,CAAA;AAAA,kDAAA,CAAA,CACF,KAAA,CAAO,+CAAA,CACP,MAAA,CAAQ,4BACV,CACF","file":"chunk-6SDOGUEN.js","sourcesContent":["export const iconLibraries = {\n lucide: {\n name: \"lucide\",\n title: \"Lucide\",\n packages: [\"lucide-react\"],\n import: \"import { ICON } from 'lucide-react'\",\n usage: \"<ICON />\",\n export: \"lucide-react\",\n },\n tabler: {\n name: \"tabler\",\n title: \"Tabler Icons\",\n packages: [\"@tabler/icons-react\"],\n import: \"import { ICON } from '@tabler/icons-react'\",\n usage: \"<ICON />\",\n export: \"@tabler/icons-react\",\n },\n hugeicons: {\n name: \"hugeicons\",\n title: \"HugeIcons\",\n packages: [\"@hugeicons/react\", \"@hugeicons/core-free-icons\"],\n import:\n \"import { HugeiconsIcon } from '@hugeicons/react'\\nimport { ICON } from '@hugeicons/core-free-icons';\",\n usage: \"<HugeiconsIcon icon={ICON} strokeWidth={2} />\",\n export: \"@hugeicons/core-free-icons\",\n },\n} as const\n\nexport type IconLibraries = typeof iconLibraries\n\nexport type IconLibrary = IconLibraries[keyof IconLibraries]\n\nexport type IconLibraryName = keyof IconLibraries\n"]}
@@ -1,18 +0,0 @@
1
- import {m,l,f,d,c,e,n as n$1,t,o,b as b$1,p,q as q$1,r,s,w,y as y$1,v,g as g$1}from'./chunk-WKG3W635.js';import {m as m$1,n,f as f$1,c as c$1,b,d as d$1,e as e$1,h,a,j,k as k$1,l as l$1,i,g}from'./chunk-YPHLD64H.js';import*as y from'path';import y__default,{basename}from'path';import*as M from'fs/promises';import {tmpdir,homedir}from'os';import {green,cyan,yellow,red}from'kleur/colors';import {loadConfig,createMatchPath}from'tsconfig-paths';import {cosmiconfig}from'cosmiconfig';import Te from'fast-glob';import be from'fs-extra';import {z as z$1}from'zod';import {existsSync,statSync,promises}from'fs';import kr from'ora';import {Project,SyntaxKind,ScriptKind,QuoteKind}from'ts-morph';import {transformFromAstSync}from'@babel/core';import {parse}from'@babel/parser';import Kr from'@babel/plugin-transform-typescript';import*as Ae from'recast';import Qr from'prompts';import ie from'deepmerge';import {HttpsProxyAgent}from'https-proxy-agent';import Rs from'node-fetch';import {createHash}from'crypto';import $s from'stringify-object';import Zs from'fuzzysort';var X=process.env.REGISTRY_URL??"https://ui.shadcn.com/r",ve="new-york-v4",Pt=[{name:"neutral",label:"Neutral"},{name:"gray",label:"Gray"},{name:"zinc",label:"Zinc"},{name:"stone",label:"Stone"},{name:"slate",label:"Slate"}],z={"@shadcn":`${X}/styles/{style}/{name}.json`};var on=[{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 ce(e){return e.replace(/\${(\w+)}/g,(t,r)=>process.env[r]||"")}function fe(e){let t=[],r=/\${(\w+)}/g,s;for(;(s=r.exec(e))!==null;)t.push(s[1]);return t}var lr=/^(@[a-zA-Z0-9](?:[a-zA-Z0-9-_]*[a-zA-Z0-9])?)\/(.+)$/;function Z(e){if(!e.startsWith("@"))return {registry:null,item:e};let t=e.match(lr);return t?{registry:t[1],item:t[2]}:{registry:null,item:e}}var k={"next-app":{name:"next-app",label:"Next.js",links:{installation:"https://ui.shadcn.com/docs/installation/next",tailwind:"https://tailwindcss.com/docs/guides/nextjs"}},"next-pages":{name:"next-pages",label:"Next.js",links:{installation:"https://ui.shadcn.com/docs/installation/next",tailwind:"https://tailwindcss.com/docs/guides/nextjs"}},remix:{name:"remix",label:"Remix",links:{installation:"https://ui.shadcn.com/docs/installation/remix",tailwind:"https://tailwindcss.com/docs/guides/remix"}},"react-router":{name:"react-router",label:"React Router",links:{installation:"https://ui.shadcn.com/docs/installation/react-router",tailwind:"https://tailwindcss.com/docs/installation/framework-guides/react-router"}},vite:{name:"vite",label:"Vite",links:{installation:"https://ui.shadcn.com/docs/installation/vite",tailwind:"https://tailwindcss.com/docs/guides/vite"}},astro:{name:"astro",label:"Astro",links:{installation:"https://ui.shadcn.com/docs/installation/astro",tailwind:"https://tailwindcss.com/docs/guides/astro"}},laravel:{name:"laravel",label:"Laravel",links:{installation:"https://ui.shadcn.com/docs/installation/laravel",tailwind:"https://tailwindcss.com/docs/guides/laravel"}},"tanstack-start":{name:"tanstack-start",label:"TanStack Start",links:{installation:"https://ui.shadcn.com/docs/installation/tanstack",tailwind:"https://tailwindcss.com/docs/installation/using-postcss"}},gatsby:{name:"gatsby",label:"Gatsby",links:{installation:"https://ui.shadcn.com/docs/installation/gatsby",tailwind:"https://tailwindcss.com/docs/guides/gatsby"}},expo:{name:"expo",label:"Expo",links:{installation:"https://ui.shadcn.com/docs/installation/expo",tailwind:"https://www.nativewind.dev/docs/getting-started/installation"}},manual:{name:"manual",label:"Manual",links:{installation:"https://ui.shadcn.com/docs/installation/manual",tailwind:"https://tailwindcss.com/docs/installation"}}};var I={error:red,warn:yellow,info:cyan,success:green};async function A(e,t){return createMatchPath(t.absoluteBaseUrl,t.paths)(e,void 0,()=>true,[".ts",".tsx",".jsx",".js",".css"])}var Pn="@/components",bn="@/lib/utils",Tn="app/globals.css",In="tailwind.config.js";var Ce=cosmiconfig("components",{searchPlaces:["components.json"]});async function Se(e){let t=await yr(e);return t?(t.iconLibrary||(t.iconLibrary=t.style==="new-york"?"radix":"lucide"),await Ge(e,t)):null}async function Ge(e,t){t.registries={...z,...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.parse({...t,resolvedPaths:{cwd:e,tailwindConfig:t.tailwind.config?y__default.resolve(e,t.tailwind.config):"",tailwindCss:y__default.resolve(e,t.tailwind.css),utils:await A(t.aliases.utils,r),components:await A(t.aliases.components,r),ui:t.aliases.ui?await A(t.aliases.ui,r):y__default.resolve(await A(t.aliases.components,r)??e,"ui"),lib:t.aliases.lib?await A(t.aliases.lib,r):y__default.resolve(await A(t.aliases.utils,r)??e,".."),hooks:t.aliases.hooks?await A(t.aliases.hooks,r):y__default.resolve(await A(t.aliases.components,r)??e,"..","hooks")}})}async function yr(e){try{let t=await Ce.search(e);if(!t)return null;let r=c.parse(t.config);if(r.registries){for(let s of Object.keys(r.registries))if(s in z)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 ${I.info(r)}.`)}}async function Rn(e$1){let t={};for(let s of Object.keys(e$1.aliases)){if(!wr(s,e$1))continue;let n=e$1.resolvedPaths[s],i=await xr(e$1.resolvedPaths.cwd,n);if(!i){t[s]=e$1;continue}t[s]=await Se(i);}let r=e.safeParse(t);return r.success?r.data:null}async function xr(e,t){let r=Er(e,t),s=y__default.relative(r,t),i=(await Te.glob("**/package.json",{cwd:r,deep:3,ignore:["**/node_modules/**","**/dist/**","**/build/**","**/public/**"]})).map(o=>y__default.dirname(o)).find(o=>s.startsWith(o));return i?y__default.join(r,i):null}function wr(e,t){return Object.keys(t.resolvedPaths).filter(r=>r!=="utils").includes(e)}function Er(e,t){let r=e.split(y__default.sep),s=t.split(y__default.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__default.sep)}async function bt(e,t){return (await V(e))?.tailwindVersion==="v4"?"new-york-v4":t}function Tt(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:{...z}};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 Ye(e="",t=true){let r=y__default.join(e,"package.json");return be.readJSONSync(r,{throws:t})}var Ie=["**/node_modules/**",".next","public","dist","build"];z$1.object({compilerOptions:z$1.object({paths:z$1.record(z$1.string().or(z$1.array(z$1.string())))})});async function V(e){let[t,r,s,n,i,o,a,f]=await Promise.all([Te.glob("**/{next,vite,astro,app}.config.*|gatsby-config.*|composer.json|react-router.config.*",{cwd:e,deep:3,ignore:Ie}),be.pathExists(y__default.resolve(e,"src")),Rr(e),Tr(e),br(e),It(e),Ir(e),Ye(e,false)]),c=await be.pathExists(y__default.resolve(e,`${r?"src/":""}app`)),l={framework:k.manual,isSrcDir:r,isRSC:false,isTsx:s,tailwindConfigFile:n,tailwindCssFile:i,tailwindVersion:o,frameworkVersion:null,aliasPrefix:a};if(t.find(p=>p.startsWith("next.config."))?.length)return l.framework=c?k["next-app"]:k["next-pages"],l.isRSC=c,l.frameworkVersion=await Pr(l.framework,f),l;if(t.find(p=>p.startsWith("astro.config."))?.length)return l.framework=k.astro,l;if(t.find(p=>p.startsWith("gatsby-config."))?.length)return l.framework=k.gatsby,l;if(t.find(p=>p.startsWith("composer.json"))?.length)return l.framework=k.laravel,l;if(Object.keys(f?.dependencies??{}).find(p=>p.startsWith("@remix-run/")))return l.framework=k.remix,l;if([...Object.keys(f?.dependencies??{}),...Object.keys(f?.devDependencies??{})].find(p=>p.startsWith("@tanstack/react-start")))return l.framework=k["tanstack-start"],l;if(t.find(p=>p.startsWith("react-router.config."))?.length)return l.framework=k["react-router"],l;if(t.find(p=>p.startsWith("vite.config."))?.length)return l.framework=k.vite,l;let d=t.find(p=>p.startsWith("app.config"));return d?.length&&(await be.readFile(y__default.resolve(e,d),"utf8")).includes("defineConfig")?(l.framework=k.vite,l):(f?.dependencies?.expo&&(l.framework=k.expo),l)}async function Pr(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 It(e){let[t,r]=await Promise.all([Ye(e,false),Se(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 br(e){let[t,r]=await Promise.all([Te.glob(["**/*.css","**/*.scss"],{cwd:e,deep:5,ignore:Ie}),It(e)]);if(!t.length)return null;for(let n of t){let i=await be.readFile(y__default.resolve(e,n),"utf8");if(i.includes('@import "tailwindcss"')||i.includes("@import 'tailwindcss'")||i.includes("@tailwind base"))return n}return null}async function Tr(e){let t=await Te.glob("tailwind.config.*",{cwd:e,deep:3,ignore:Ie});return t.length?t[0]:null}async function Ir(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 Rr(e){return (await Te.glob("tsconfig.*",{cwd:e,deep:1,ignore:Ie})).length>0}async function Mn(e,t=null){let[r,s]=await Promise.all([Se(e),t?Promise.resolve(t):V(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 Ge(e,n)}async function Re(e){if(!e.resolvedPaths?.cwd)return "v3";let t=await V(e.resolvedPaths.cwd);return t?.tailwindVersion?t.tailwindVersion:null}function Rt(e,t,r={}){let{ignoreImports:s=false}=r,n=e.replace(/\r\n/g,`
2
- `).trim(),i=t.replace(/\r\n/g,`
3
- `).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=l=>l.replace(o,(d,p,x,u)=>{if(x.startsWith("."))return `${p}${x}${u}`;let w=x.split("/"),m=w[w.length-1];return `${p}@normalized/${m}${u}`}),f=a(n),c=a(i);return f===c}function J(e){let t=y__default.basename(e);return /^\.env(\.|$)/.test(t)}function kt(e){let t=[".env.local",".env",".env.development.local",".env.development"];for(let r of t){let s=y__default.join(e,r);if(existsSync(s))return s}return null}function te(e){let t=e.split(`
4
- `),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 At(e,t){let r=te(e),s=te(t),n=[];for(let i of Object.keys(s))i in r||n.push(i);return n}function $t(e,t){let r=te(e),s=te(t),n=e.trimEnd();n&&!n.endsWith(`
5
- `)&&(n+=`
6
- `);let i=[];for(let[o,a]of Object.entries(s))o in r||i.push(`${o}=${a}`);return i.length>0?(n&&(n+=`
7
- `),n+=i.join(`
8
- `),n+`
9
- `):n&&!n.endsWith(`
10
- `)?n+`
11
- `:n}var C={error(...e){console.log(I.error(e.join(" ")));},warn(...e){console.log(I.warn(e.join(" ")));},info(...e){console.log(I.info(e.join(" ")));},success(...e){console.log(I.success(e.join(" ")));},log(...e){console.log(e.join(" "));},break(){console.log("");}};function H(e,t){return kr({text:e,isSilent:t?.silent})}var je=async({sourceFile:e,config:t,baseColor:r})=>(t.tailwind?.cssVariables||!r?.inlineColors||e.getDescendantsOfKind(SyntaxKind.StringLiteral).forEach(s=>{let n=s.getLiteralText(),i=Fr(n,r.inlineColors).trim();i!==n&&s.setLiteralValue(i);}),e);function Qe(e){if(!e.includes("/")&&!e.includes(":"))return [null,e,null];let t=[],[r,s]=e.split("/");if(!r.includes(":"))return [null,r,s];let n=r.split(":"),i=n.pop(),o=n.join(":");return t.push(o??null,i??null,s??null),t}var $r=["bg-","text-","border-","ring-offset-","ring-"];function Fr(e,t){e.includes(" border ")&&(e=e.replace(" border "," border border-border "));let r=e.split(" "),s=new Set,n=new Set;for(let i of r){let[o,a,f]=Qe(i),c=$r.find(d=>a?.startsWith(d));if(!c){s.has(i)||s.add(i);continue}let l=a?.replace(c,"");if(l&&l in t.light){s.add([o,`${c}${t.light[l]}`].filter(Boolean).join(":")+(f?`/${f}`:"")),n.add(["dark",o,`${c}${t.dark[l]}`].filter(Boolean).join(":")+(f?`/${f}`:""));continue}s.has(i)||s.add(i);}return [...Array.from(s),...Array.from(n)].join(" ").trim()}var ke=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=Or(o.getLiteralValue(),t,r);if(o.setLiteralValue(a),i===a||a==="@/lib/utils"){if(!o.getFirstAncestorByKind(SyntaxKind.ImportDeclaration)?.getNamedImports().some(l=>l.getName()==="cn")||!t.aliases.utils)continue;o.setLiteralValue(i===a?a.replace(i,t.aliases.utils):t.aliases.utils);}}return e};function Or(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 Dr={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"]},Ft=async({sourceFile:e,config:t})=>{let r=e.getFullText();if(t.tsx)return r;let s=Ae.parse(r,{parser:{parse:i=>parse(i,Dr)}}),n=transformFromAstSync(s,r,{cloneInputAst:false,code:false,ast:true,plugins:[Kr],configFile:false});if(!n||!n.ast)throw new Error("Failed to transform JSX");return Ae.print(n.ast).code};var Wr=/^["']use client["']$/g,$e=async({sourceFile:e,config:t})=>{if(t.rsc)return e;let r=e.getFirstChildByKind(SyntaxKind.ExpressionStatement);return r&&Wr.test(r.getText())&&r.remove(),e};var Fe=async({sourceFile:e,config:t})=>{if(!t.tailwind?.prefix)return e;let r=await Re(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(`"${W(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(`"${W(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(`"${W(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(`"${W(o.getText()?.replace(/"|'/g,""),t.tailwind.prefix,r)}"`);}),i.isKind(SyntaxKind.StringLiteral)&&i.replaceWithText(`"${W(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(`"${W(a.getText()?.replace(/"|'/g,""),t.tailwind.prefix,r)}"`);}),o.isKind(SyntaxKind.StringLiteral)&&o.replaceWithText(`"${W(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(`"${W(i.getText()?.replace(/"|'/g,""),t.tailwind.prefix,r)}"`);}});}),e};function W(e,t="",r){return r==="v3"?e.split(" ").map(s=>{let[n,i,o]=Qe(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 Jr=new Project({compilerOptions:{}});async function Hr(e){let t=await promises.mkdtemp(y__default.join(tmpdir(),"shadcn-"));return y__default.join(t,e)}async function Ot(e,t=[ke,$e,je,Fe,m$1]){let r=await Hr(e.filename),s=Jr.createSourceFile(r,e.raw,{scriptKind:ScriptKind.TSX});for(let n of t)await n({sourceFile:s,...e});return e.transformJsx?await Ft({sourceFile:s,...e}):s.getText()}var qr=["a","span","div","Link","label","Label"],Nt=async({sourceFile:e,config:t})=>{if(!t.style?.startsWith("base-"))return e;let r=[],s=e.getDescendantsOfKind(SyntaxKind.JsxElement);for(let n of s){let i=n.getOpeningElement(),o=i.getAttribute("asChild");if(!o)continue;let a=i.getTagNameNode().getText(),c=n.getJsxChildren().find(u=>u.getKind()===SyntaxKind.JsxElement||u.getKind()===SyntaxKind.JsxSelfClosingElement);if(!c){o.remove();continue}let l,d,p;if(c.getKind()===SyntaxKind.JsxSelfClosingElement){let u=c.asKindOrThrow(SyntaxKind.JsxSelfClosingElement);l=u.getTagNameNode().getText(),d=u.getAttributes().map(w=>w.getText()).join(" "),p="";}else {let u=c.asKindOrThrow(SyntaxKind.JsxElement),w=u.getOpeningElement();l=w.getTagNameNode().getText(),d=w.getAttributes().map(m=>m.getText()).join(" "),p=u.getJsxChildren().map(m=>m.getText()).join("");}let x=qr.includes(l);r.push({parentElement:n,parentTagName:a,childTagName:l,childProps:d,childChildren:p,needsNativeButton:x});}for(let n of r.reverse()){let i=n.parentElement.getOpeningElement();n.parentElement.getClosingElement();let a=i.getAttributes().filter(p=>p.getKind()===SyntaxKind.JsxAttribute?p.asKindOrThrow(SyntaxKind.JsxAttribute).getNameNode().getText()!=="asChild":true).map(p=>p.getText()).join(" "),f=n.childProps?`{<${n.childTagName} ${n.childProps} />}`:`{<${n.childTagName} />}`,c=a?`${a} `:"";c+=`render=${f}`,n.needsNativeButton&&(c+=" nativeButton={false}");let l=n.childChildren.trim()?`${n.childChildren}`:"",d=`<${n.parentTagName} ${c}>${l}</${n.parentTagName}>`;n.parentElement.replaceWithText(d);}return e};var zt=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 ro(e,t,r){if(!e?.length)return {filesCreated:[],filesUpdated:[],filesSkipped:[]};r={overwrite:false,force:false,silent:false,isRemote:false,isWorkspace:false,...r};let s=H("Updating files.",{silent:r.silent})?.start(),[n$1,i]=await Promise.all([V(t.resolvedPaths.cwd),t.tailwind.baseColor?Le(t.tailwind.baseColor):Promise.resolve(void 0)]),o=[],a=[],f=[],c=[],l=null;for(let u=0;u<e.length;u++){let w=e[u];if(!w.content)continue;let m=Xe(w,t,{isSrcDir:n$1?.isSrcDir,framework:n$1?.framework.name,commonRoot:Ze(e.map(v=>v.path),w.path),path:r.path,fileIndex:u});if(!m)continue;let j=basename(w.path),g=y__default.dirname(m);if(t.tsx||(m=m.replace(/\.tsx?$/,v=>v===".tsx"?".jsx":".js")),J(m)&&!existsSync(m)){let v=kt(g);v&&(m=v);}let E=existsSync(m);if(E&&statSync(m).isDirectory())throw new Error(`Cannot write to ${m}: path exists and is a directory. Please provide a file path instead.`);let P=J(m)?w.content:await Ot({filename:w.path,raw:w.content,config:t,baseColor:i,transformJsx:!t.tsx,isRemote:r.isRemote},[ke,$e,je,Fe,m$1,n,Nt,...Kt(m,n$1,t)?[zt]:[]]);if(E&&!J(m)){let v=await promises.readFile(m,"utf-8");if(Rt(v,P,{ignoreImports:r.isWorkspace})){f.push(y__default.relative(t.resolvedPaths.cwd,m));continue}}if(E&&!r.overwrite&&!J(m)){s.stop(),r.rootSpinner&&r.rootSpinner.stop();let{overwrite:v}=await Qr({type:"confirm",name:"overwrite",message:`The file ${I.info(j)} already exists. Would you like to overwrite?`,initial:false});if(!v){f.push(y__default.relative(t.resolvedPaths.cwd,m)),r.rootSpinner&&r.rootSpinner.start();continue}s?.start(),r.rootSpinner&&r.rootSpinner.start();}if(Kt(m,n$1,t)&&(m=m.replace(/middleware\.(ts|js)$/,"proxy.$1")),existsSync(g)||await promises.mkdir(g,{recursive:true}),J(m)&&E){let v=await promises.readFile(m,"utf-8"),b=$t(v,P);if(c=At(v,P),l=y__default.relative(t.resolvedPaths.cwd,m),!c.length){f.push(y__default.relative(t.resolvedPaths.cwd,m));continue}await promises.writeFile(m,b,"utf-8"),a.push(y__default.relative(t.resolvedPaths.cwd,m));continue}await promises.writeFile(m,P,"utf-8"),E?a.push(y__default.relative(t.resolvedPaths.cwd,m)):(o.push(y__default.relative(t.resolvedPaths.cwd,m)),J(m)&&(c=Object.keys(te(P)),l=y__default.relative(t.resolvedPaths.cwd,m)));}let d=[...o,...a,...f],p=await ns(d,t);if(a.push(...p),a=a.filter(u=>!o.includes(u)),!(o.length||a.length)&&!f.length&&s?.info("No files updated."),o=Array.from(new Set(o)),a=Array.from(new Set(a)),f=Array.from(new Set(f)),o.length){if(s?.succeed(`Created ${o.length} ${o.length===1?"file":"files"}:`),!r.silent)for(let u of o)C.log(` - ${u}`);}else s?.stop();if(a.length&&(H(`Updated ${a.length} ${a.length===1?"file":"files"}:`,{silent:r.silent})?.info(),!r.silent))for(let u of a)C.log(` - ${u}`);if(f.length&&(H(`Skipped ${f.length} ${a.length===1?"file":"files"}: (files might be identical, use --overwrite to overwrite)`,{silent:r.silent})?.info(),!r.silent))for(let u of f)C.log(` - ${u}`);if(c.length&&l&&(H(`Added the following variables to ${I.info(l)}:`)?.info(),!r.silent))for(let u of c)C.log(` ${I.success("+")} ${u}`);return r.silent||C.break(),{filesCreated:o,filesUpdated:a,filesSkipped:f}}function Xe(e,t,r){if(r.path){let i=y__default.isAbsolute(r.path)?r.path:y__default.join(t.resolvedPaths.cwd,r.path);if(/\.[^/\\]+$/.test(i)){if(r.fileIndex===0)return i}else {let a=y__default.basename(e.path);return y__default.join(i,a)}}if(e.target){if(e.target.startsWith("~/"))return y__default.join(t.resolvedPaths.cwd,e.target.replace("~/",""));let i=e.target;return e.type==="registry:page"&&(i=ss(i,r.framework),!i)?"":r.isSrcDir?y__default.join(t.resolvedPaths.cwd,"src",i.replace("src/","")):y__default.join(t.resolvedPaths.cwd,i.replace("src/",""))}let s=ts(e,t),n=rs(e.path,s);return y__default.join(s,n)}function ts(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 Ze(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 rs(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(f=>f===o);return a===-1?n[n.length-1]:n.slice(a+1).join("/")}function ss(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 ns(e,t){let r=new Project({compilerOptions:{}}),s=await V(t.resolvedPaths.cwd),n=loadConfig(t.resolvedPaths.cwd),i=[];if(!s||n.resultType==="failed")return [];for(let o of e){let a=y__default.resolve(t.resolvedPaths.cwd,o);if(!existsSync(a))continue;let f=await promises.readFile(a,"utf-8"),c=await promises.mkdtemp(y__default.join(tmpdir(),"shadcn-")),l=r.createSourceFile(y__default.join(c,basename(a)),f,{scriptKind:ScriptKind.TSX});if(![".tsx",".ts",".jsx",".js"].includes(l.getExtension()))continue;let d=l.getImportDeclarations();for(let p of d){let x=p.getModuleSpecifierValue();if(s?.aliasPrefix&&!x.startsWith(`${s.aliasPrefix}/`))continue;let u=await A(x,n);if(!u)continue;let w=is(u,e,t);if(!w)continue;let m=os(w,t,s);!m||m===x||(p.setModuleSpecifier(m),await promises.writeFile(a,l.getFullText(),"utf-8"),i.push(o));}}return i}function is(e,t,r,s=[".tsx",".ts",".js",".jsx",".css"]){let n=y__default.normalize(r.resolvedPaths.cwd),i=t.map(m=>m.split(y__default.sep).join(y__default.posix.sep)),o=new Set(i),a=y__default.extname(e),f=a!=="",c=f?e.slice(0,-a.length):e,d=y__default.relative(n,c).split(y__default.sep).join(y__default.posix.sep),p=f?[a]:s,x=new Set;for(let m of p){let j=c+m,g=y__default.posix.normalize(y__default.relative(n,j));(o.has(g)||existsSync(j))&&x.add(g);let E=y__default.join(c,`index${m}`),P=y__default.posix.normalize(y__default.relative(n,E));(o.has(P)||existsSync(E))&&x.add(P);}let u=y__default.basename(c);for(let m of i)p.some(j=>m.endsWith(`/${u}${j}`))&&x.add(m);return x.size===0?null:Array.from(x).sort((m,j)=>{let g=y__default.posix.extname(m),E=y__default.posix.extname(j),P=p.indexOf(g)-p.indexOf(E);if(P!==0)return P;let v=d&&m.startsWith(d)?-1:1,b=d&&j.startsWith(d)?-1:1;return v-b})[0]}function os(e,t,r){let s=y__default.normalize(y__default.join(t.resolvedPaths.cwd,e)),n=Object.entries(t.resolvedPaths).filter(([,u])=>u&&s.startsWith(y__default.normalize(u+y__default.sep))).sort((u,w)=>w[1].length-u[1].length);if(n.length===0)return null;let[i,o]=n[0],a=y__default.relative(o,s);a=a.split(y__default.sep).join("/");let f=y__default.posix.extname(a),l=[".ts",".tsx",".js",".jsx"].includes(f)?"":f,d=a.slice(0,a.length-f.length);d.endsWith("/index")&&(d=d.slice(0,-6));let p=i==="cwd"?r.aliasPrefix:t.aliases[i];if(!p)return null;let x=d===""?"":`/${d}`;return x=x.replace("/src",""),`${p}${x}${l}`}function Kt(e,t,r){let s=e===y__default.join(r.resolvedPaths.cwd,"middleware.ts")||e===y__default.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}var Wt=[".tsx",".ts",".jsx",".js",".css"],_t=["lib/utils.ts"],ps=[/^(react|react-dom|next)(\/.*)?$/,/^(node|jsr|npm):.*$/],ms=new Project({compilerOptions:{}});function ds(e){if(ps.some(t=>t.test(e)))return null;if(!e.startsWith("@")&&e.includes("/")&&(e=e.split("/")[0]),e.startsWith("@")){let t=e.split("/");t.length>2&&(e=t.slice(0,2).join("/"));}return e}async function gs(e,t,r,s=new Set){let n=y.resolve(t.resolvedPaths.cwd,e),i=y.relative(t.resolvedPaths.cwd,n);if(_t.includes(i))return {dependencies:[],files:[]};let o=y.extname(e);if(!Wt.includes(o))return {dependencies:[],files:[]};if(s.has(i))return {dependencies:[],files:[]};if(s.add(i),!(await M.stat(n)).isFile())return {dependencies:[],files:[]};let f=await M.readFile(n,"utf-8"),c=await us(y.basename(n)),l=ms.createSourceFile(c,f,{scriptKind:ScriptKind.TSX}),d=await loadConfig(t.resolvedPaths.cwd);if(d.resultType==="failed")return {dependencies:[],files:[]};let p=[],x=new Set,u=Ut(e),w={path:i,type:u,target:""};p.push(w);let m=l.getImportDeclarations();for(let g of m){let E=g.getModuleSpecifierValue(),P=E.startsWith(".");if(!E.startsWith(`${r.aliasPrefix}/`)&&!P){let N=ds(E);N&&x.add(N);continue}let b=await A(E,d);if(P&&(b=y.resolve(y.dirname(n),E)),!b)continue;if(!y.extname(b))for(let N of Wt){let at=`${b}${N}`;try{await M.access(at),b=at;break}catch{continue}}let $=y.relative(t.resolvedPaths.cwd,b);if(s.has($)||_t.includes($))continue;let K=Ut(E),ye={path:$,type:K,target:""};(K==="registry:page"||K==="registry:file")&&(ye.target=E),p.push(ye);let Y=await gs($,t,r,s);if(Y.files)for(let N of Y.files)s.has(N.path)||(s.add(N.path),p.push(N));Y.dependencies&&Y.dependencies.forEach(N=>x.add(N));}let j=Array.from(new Map(p.map(g=>[g.path,g])).values());return {dependencies:Array.from(x),files:j}}async function us(e){let t=await M.mkdtemp(y.join(tmpdir(),"shadcn-"));return y.join(t,e)}function Ut(e){return e.includes("/ui/")?"registry:ui":e.includes("/lib/")?"registry:lib":e.includes("/hooks/")?"registry:hook":(e.includes("/components/"),"registry:component")}function O(e){try{return new URL(e),!0}catch{return false}}function Oe(e){return e.endsWith(".json")&&!O(e)}function ho(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 Mt(e,t){if(!hs(t))return z$1.array(g$1).parse(e.flat().filter(Boolean));let r=await V(t.resolvedPaths.cwd),s=new Map,n=z$1.array(g$1).parse(e.flat().filter(Boolean));return n.forEach(i=>{let o=Xe(i,t,{isSrcDir:r?.isSrcDir,framework:r?.framework.name,commonRoot:Ze(n.map(a=>a.path),i.path)});o&&s.set(o,i);}),Array.from(s.values())}function hs(e){return !!(e?.resolvedPaths?.cwd&&(e?.resolvedPaths?.ui||e?.resolvedPaths?.lib||e?.resolvedPaths?.components||e?.resolvedPaths?.hooks))}function xs(e){return e.style?e.style==="new-york"&&e.tailwind?.config===""?ve:e.style:ve}function se(e){let t=Tt({style:ve,registries:z});return e?d.parse(ie(t,{...e,style:xs(e),registries:{...z,...e.registries}})):t}var Ne={headers:{}};function pe(e){Ne.headers={...Ne.headers,...e};}function Bt(e){return Ne.headers[e]||{}}function me(){Ne.headers={};}function ws(e){let t=new Set;return typeof e=="string"?fe(e).forEach(r=>t.add(r)):(fe(e.url).forEach(r=>t.add(r)),e.params&&Object.values(e.params).forEach(r=>{fe(r).forEach(s=>t.add(s));}),e.headers&&Object.values(e.headers).forEach(r=>{fe(r).forEach(s=>t.add(s));})),Array.from(t)}function Jt(e,t){let s=ws(t).filter(n=>!process.env[n]);if(s.length>0)throw new i(e,s)}function Ao(e,t){for(let r of e)ne(r,se(t));me();}var Ht="{name}",ze="{style}",qt=/\${(\w+)}/g,Gt="?",Es="&";function ne(e,t){let{registry:r,item:s}=Z(e);r||(r="@shadcn");let i=(t?.registries||{})[r];if(!i)throw new f$1(r);return Jt(r,i),{url:vs(s,i,t),headers:Cs(i)}}function vs(e,t,r){if(typeof t=="string"){let n=t.replace(Ht,e);return r?.style&&n.includes(ze)&&(n=n.replace(ze,r.style)),ce(n)}let s=t.url.replace(Ht,e);return r?.style&&s.includes(ze)&&(s=s.replace(ze,r.style)),s=ce(s),t.params?Ss(s,t.params):s}function Cs(e){if(typeof e=="string"||!e.headers)return {};let t={};for(let[r,s]of Object.entries(e.headers)){let n=ce(s);Ps(s,n)&&(t[r]=n);}return t}function Ss(e,t){let r=new URLSearchParams;for(let[i,o]of Object.entries(t)){let a=ce(o);a&&r.append(i,a);}let s=r.toString();if(!s)return e;let n=e.includes(Gt)?Es:Gt;return `${e}${n}${s}`}function Ps(e,t){let r=t.trim();if(!r)return false;if(e.includes("${")&&e.match(qt)){let n=e.replace(qt,"").trim();return r!==n}return true}function Ke(e){if(O(e)){let t=new URL(e);return t.pathname.match(/\/chat\/b\//)&&!t.pathname.endsWith("/json")&&(t.pathname=`${t.pathname}/json`),t.toString()}return `${X}/${e}`}var js=process.env.https_proxy?new HttpsProxyAgent(process.env.https_proxy):void 0,et=new Map;async function R(e,t={}){t={useCache:true,...t};try{return await Promise.all(e.map(async s=>{let n=Ke(s);if(t.useCache&&et.has(n))return et.get(n);let i=(async()=>{let o=Bt(n),a=await Rs(n,{agent:js,headers:{...o}});if(!a.ok){let f;if(a.headers.get("content-type")?.includes("application/json")){let c=await a.json(),l=z$1.object({detail:z$1.string().optional(),title:z$1.string().optional(),message:z$1.string().optional(),error:z$1.string().optional()}).safeParse(c);l.success&&(f=l.data.detail||l.data.message,l.data.error&&(f=`[${l.data.error}] ${f}`));}throw a.status===401?new c$1(n,f):a.status===404?new b(n,f):a.status===403?new d$1(n,f):new e$1(n,a.status,f)}return a.json()})();return t.useCache&&et.set(n,i),i}))}catch(r){throw r}}async function Qt(e){try{let t=e;e.startsWith("~/")&&(t=y__default.join(homedir(),e.slice(2)));let r=y__default.resolve(t),s=await promises.readFile(r,"utf8"),n=JSON.parse(s);try{return n$1.parse(n)}catch(i){throw new h(e,i)}}catch(t){throw t instanceof Error&&(t.message.includes("ENOENT")||t.message.includes("no such file"))?new g(e,t):t instanceof h?t:new g(e,t)}}async function ca(e,t,r){if(!e||(r={silent:false,tailwindVersion:"v3",...r},r.tailwindVersion==="v4"))return;let s=y__default.relative(t.resolvedPaths.cwd,t.resolvedPaths.tailwindConfig),n=H(`Updating ${I.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 Zt(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=>{Ks(n,o);}),t.theme&&await zs(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 zs(e,t){e.getProperty("theme")||e.addPropertyAssignment({name:"theme",initializer:"{}"}),rt(e);let s=(e.getPropertyOrThrow("theme")?.asKindOrThrow(SyntaxKind.PropertyAssignment)).getInitializer();if(s?.isKind(SyntaxKind.ObjectLiteralExpression)){let n=s.getText(),i=await Vs(n),o=ie(i,t,{arrayMerge:(f,c)=>c}),a=$s(o).replace(/\'\.\.\.(.*)\'/g,"...$1").replace(/\'\"/g,"'").replace(/\"\'/g,"'").replace(/\'\[/g,"[").replace(/\]\'/g,"]").replace(/\'\\\'/g,"'").replace(/\\\'/g,"'").replace(/\\\'\'/g,"'").replace(/\'\'/g,"'");s.replaceWithText(a);}st(e);}function Ks(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 Zt(e,t){let r=await promises.mkdtemp(y__default.join(tmpdir(),"shadcn-")),s=t?.resolvedPaths?.tailwindConfig||"tailwind.config.ts",n=y__default.join(r,`shadcn-${y__default.basename(s)}`);return new Project({compilerOptions:{}}).createSourceFile(n,e,{scriptKind:y__default.extname(s)===".ts"?ScriptKind.TS:ScriptKind.JS})}function Ds(e){return e.getFirstDescendantByKind(SyntaxKind.StringLiteral)?.getQuoteKind()===QuoteKind.Single?"'":'"'}function rt(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)?rt(i.asKindOrThrow(SyntaxKind.ObjectLiteralExpression)):i&&i.isKind(SyntaxKind.ArrayLiteralExpression)&&er(i.asKindOrThrow(SyntaxKind.ArrayLiteralExpression));}}}function er(e){let t=e.getElements();for(let r=0;r<t.length;r++){let s=t[r];if(s.isKind(SyntaxKind.ObjectLiteralExpression))rt(s.asKindOrThrow(SyntaxKind.ObjectLiteralExpression));else if(s.isKind(SyntaxKind.ArrayLiteralExpression))er(s.asKindOrThrow(SyntaxKind.ArrayLiteralExpression));else if(s.isKind(SyntaxKind.SpreadElement)){let n=s.getText();e.removeElement(r),e.insertElement(r,`"${n}"`);}}}function st(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)?st(i):i&&i.isKind(SyntaxKind.ArrayLiteralExpression)&&tr(i.asKindOrThrow(SyntaxKind.ArrayLiteralExpression));}}}function tr(e){let t=e.getElements();for(let r=0;r<t.length;r++){let s=t[r];if(s.isKind(SyntaxKind.ObjectLiteralExpression))st(s.asKindOrThrow(SyntaxKind.ObjectLiteralExpression));else if(s.isKind(SyntaxKind.ArrayLiteralExpression))tr(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 Vs(e){let r=(await Zt(`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 De(n)}throw new Error("Invalid input: not an object literal")}function De(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]=De(r.getInitializer()):r.getInitializer()?.isKind(SyntaxKind.ArrayLiteralExpression)?t[s]=rr(r.getInitializer()):t[s]=nt(r.getInitializer());}return t}function rr(e){let t=[];for(let r of e.getElements())r.isKind(SyntaxKind.ObjectLiteralExpression)?t.push(De(r.asKindOrThrow(SyntaxKind.ObjectLiteralExpression))):r.isKind(SyntaxKind.ArrayLiteralExpression)?t.push(rr(r.asKindOrThrow(SyntaxKind.ArrayLiteralExpression))):t.push(nt(r));return t}function nt(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(nt);case SyntaxKind.ObjectLiteralExpression:return De(e);default:return e.getText()}}function sr(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 ue(e,t){let r={},s=[...e];if(!t?.registries)return pe({}),s;for(let n=0;n<s.length;n++){let i=ne(s[n],t);i&&(s[n]=i.url,Object.keys(i.headers).length>0&&(r[i.url]=i.headers));}return pe(r),s}async function q(e,t,r={}){return await Promise.all(e.map(async n=>{if(Oe(n))return Qt(n);if(O(n)){let[a]=await R([n],r);try{return n$1.parse(a)}catch(f){throw new h(n,f)}}if(n.startsWith("@")&&t?.registries){let a=ue([n],t),[f]=await R(a,r);try{return n$1.parse(f)}catch(c){throw new h(n,c)}}let i=`styles/${t?.style??"new-york-v4"}/${n}.json`,[o]=await R([i],r);try{return n$1.parse(o)}catch(a){throw new h(n,a)}}))}m.extend({type:f,_source:z$1.string().optional(),font:l.optional(),config:z$1.any().optional()}).passthrough();async function ir(e,t$1,r={}){r={useCache:true,...r};let s=[],n=[],i=[],o=Array.from(new Set(e)),a=await q(o,t$1,r),f=new Map;for(let g=0;g<a.length;g++)a[g]&&f.set(o[g],a[g]);for(let[g,E]of Array.from(f.entries())){let P={...E,_source:g};if(s.push(P),E.registryDependencies){let v=E.registryDependencies;if(t$1?.registries)v=ue(E.registryDependencies,t$1);else {let $=E.registryDependencies.filter(K=>K.startsWith("@"));if($.length>0){let{registry:K}=Z($[0]);throw new f$1(K)}}let{items:b,registryNames:ae}=await he(v,t$1,r,new Set(o));n.push(...b),i.push(...ae);}}if(s.push(...n),i.length>0){let g=Array.from(new Set(i)),E=g.filter(v=>!v.startsWith("@")),P=g.filter(v=>v.startsWith("@"));if(P.length>0){let v=await q(P,t$1,r);for(let b=0;b<v.length;b++){let $={...v[b],_source:P[b]};s.push($);}}if(E.length>0){let v=await or();if(!v&&s.length===0)return null;if(v){E.includes("index")&&E.unshift("index");let b=[];for(let ye of E){let Y=await _s(ye,t$1,r);b.push(...Y);}let ae=Array.from(new Set(b)),$=await R(ae,r),K=z$1.array(n$1).parse($);s.push(...K);}}}if(!s.length)return null;if((o.includes("index")||i.includes("index"))&&t$1.tailwind.baseColor){let g=await Us(t$1.tailwind.baseColor,t$1);g&&s.unshift(g);}let c=new Map;s.forEach(g=>{let E=g._source||g.name;c.set(g,E);}),s=Bs(s,c),s.sort((g,E)=>g.type==="registry:theme"&&E.type!=="registry:theme"?-1:g.type!=="registry:theme"&&E.type==="registry:theme"?1:0);let l={};s.forEach(g=>{l=ie(l,g.tailwind??{});});let d={};s.forEach(g=>{d=ie(d,g.cssVars??{});});let p={};s.forEach(g=>{p=ie(p,g.css??{});});let x="";s.forEach(g=>{g.docs&&(x+=`${g.docs}
12
- `);});let u={};s.forEach(g=>{u=ie(u,g.envVars??{});});let w=await Mt(s.map(g=>g.files??[]),t$1),m=s.filter(g=>g.type==="registry:font"&&g.font).map(g=>({...g,type:"registry:font",font:g.font})),j=t.parse({dependencies:ie.all(s.map(g=>g.dependencies??[])),devDependencies:ie.all(s.map(g=>g.devDependencies??[])),files:w,tailwind:l,cssVars:d,css:p,docs:x,fonts:m.length>0?m:void 0});return Object.keys(u).length>0&&(j.envVars=u),j}async function he(e,t,r={},s=new Set){let n=[],i=[];for(let o of e)if(!s.has(o)){if(s.add(o),O(o)||Oe(o)){let[a]=await q([o],t,r);if(a&&(n.push(a),a.registryDependencies)){let f=t?.registries?ue(a.registryDependencies,t):a.registryDependencies,c=await he(f,t,r,s);n.push(...c.items),i.push(...c.registryNames);}}else if(o.startsWith("@")&&t?.registries){let{registry:a}=Z(o);if(a&&!(a in t.registries))throw new f$1(a);let[f]=await q([o],t,r);if(f&&(n.push(f),f.registryDependencies)){let c=t?.registries?ue(f.registryDependencies,t):f.registryDependencies,l=await he(c,t,r,s);n.push(...l.items),i.push(...l.registryNames);}}else if(i.push(o),t)try{let[a]=await q([o],t,r);if(a&&a.registryDependencies){let f=t?.registries?ue(a.registryDependencies,t):a.registryDependencies,c=await he(f,t,r,s);n.push(...c.items),i.push(...c.registryNames);}}catch{}}return {items:n,registryNames:i}}async function _s(e,t,r={}){if(O(e))return [e];let{registryNames:s}=await he([e],t,r,new Set),n=t.resolvedPaths?.cwd?await bt(t.resolvedPaths.cwd,t.style):t.style,i=s.map(o=>Ke(O(o)?o:`styles/${n}/${o}.json`));return Array.from(new Set(i))}async function Us(e,t){let[r,s]=await Promise.all([Le(e),Re(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,...sr(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 Ms(e){if(O(e)){let s=new URL(e).pathname,n=s.match(/\/([^/]+)\.json$/),i=n?n[1]:y__default.basename(s,".json");return {name:i,hash:B({name:i},e)}}if(Oe(e)){let r=e.match(/\/([^/]+)\.json$/),s=r?r[1]:y__default.basename(e,".json");return {name:s,hash:B({name:s},e)}}let{item:t}=Z(e);return {name:t,hash:B({name:t},e)}}function Bs(e,t){let r=new Map,s=new Map,n=new Map,i=new Map;e.forEach(c=>{let l=t.get(c)||c.name,d=B(c,l);r.set(d,c),s.set(d,c),n.set(d,0),i.set(d,[]);});let o=new Map;e.forEach(c=>{let l=t.get(c)||c.name,d=B(c,l);o.has(c.name)||o.set(c.name,[]),o.get(c.name).push(d),l!==c.name&&(o.has(l)||o.set(l,[]),o.get(l).push(d));}),e.forEach(c=>{let l=t.get(c)||c.name,d=B(c,l);c.registryDependencies&&c.registryDependencies.forEach(p=>{let x,u=o.get(p)||[];if(u.length===1)x=u[0];else if(u.length>1)x=u[0];else {let{name:w}=Ms(p),m=o.get(w)||[];m.length>0&&(x=m[0]);}x&&r.has(x)&&(i.get(x).push(d),n.set(d,n.get(d)+1));});});let a=[],f=[];for(n.forEach((c,l)=>{c===0&&a.push(l);});a.length>0;){let c=a.shift(),l=r.get(c);f.push(l),i.get(c).forEach(d=>{let p=n.get(d)-1;n.set(d,p),p===0&&a.push(d);});}if(f.length!==e.length){console.warn("Circular dependency detected in registry items");let c=new Set(f.map(l=>{let d=t.get(l)||l.name;return B(l,d)}));e.forEach(l=>{let d=t.get(l)||l.name,p=B(l,d);c.has(p)||f.push(l);});}return f}function oe(e){if(C.break(),C.error("Something went wrong. Please check the error below for more details."),C.error("If the problem persists, please open an issue on GitHub."),C.error(""),typeof e=="string"&&(C.error(e),C.break(),process.exit(1)),e instanceof a&&(e.message&&(C.error(e.cause?"Error:":"Message:"),C.error(e.message)),e.cause&&(C.error(`
13
- Message:`),C.error(e.cause)),e.suggestion&&(C.error(`
14
- Suggestion:`),C.error(e.suggestion)),C.break(),process.exit(1)),e instanceof z$1.ZodError){C.error("Validation failed:");for(let[t,r]of Object.entries(e.flatten().fieldErrors))C.error(`- ${I.info(t)}: ${r}`);C.break(),process.exit(1);}e instanceof Error&&(C.error(e.message),C.break(),process.exit(1)),C.break(),process.exit(1);}async function ot(e,t){let{config:r,useCache:s}=t||{};if(O(e)){let[a]=await R([e],{useCache:s});try{return o.parse(a)}catch(f){throw new h(e,f)}}if(!e.startsWith("@"))throw new j(e);let n=e;n.endsWith("/registry")||(n=`${n}/registry`);let i=ne(n,se(r));if(!i?.url)throw new b(n);i.headers&&Object.keys(i.headers).length>0&&pe({[i.url]:i.headers});let[o$1]=await R([i.url],{useCache:s});try{return o.parse(o$1)}catch(a){throw new h(n,a)}}async function qs(e,t){let{config:r,useCache:s=false}=t||{};return me(),q(e,se(r),{useCache:s})}async function Gs(e,t){let{config:r,useCache:s=false}=t||{};return me(),ir(e,se(r),{useCache:s})}async function Ya(e,t){let{useCache:r=true}=t||{};r||Ce.clearCaches();let s=await Ce.search(e);if(!s)return {registries:z};let n=z$1.object({registries:b$1.optional()}).safeParse(s.config);if(!n.success)throw new k$1(e,n.error);return {registries:{...z,...n.data.registries||{}}}}async function or(){try{let[e]=await R(["index.json"]);return p.parse(e)}catch(e){C.error(`
15
- `),oe(e);}}async function Qa(){try{let[e]=await R(["styles/index.json"]);return q$1.parse(e)}catch(e){return C.error(`
16
- `),oe(e),[]}}async function Xa(){try{let[e]=await R(["icons/index.json"]);return r.parse(e)}catch(e){return oe(e),{}}}async function Za(){return Pt}async function Le(e){try{let[t]=await R([`colors/${e}.json`]);return s.parse(t)}catch(t){oe(t);}}async function Ys(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 Ys(e,n.registryDependencies);r.push(...i);}}return r.filter((s,n,i)=>i.findIndex(o=>o.name===s.name)===n)}async function el(e,t){try{let r=t.map(n=>`styles/${e}/${n.name}.json`);return (await R(r)).map(n=>n$1.parse(n))}catch(r){return oe(r),[]}}async function tl(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__default.join(e.resolvedPaths[s],n):null}async function Qs(e){e={useCache:true,...e};let t=`${X}/registries.json`,[r]=await R([t],{useCache:e.useCache});try{return w.parse(r)}catch(s){throw s instanceof z$1.ZodError?new l$1(s):s}}async function Xs(e){e={useCache:true,...e};let t=`${X}/config.json`,[r]=await R([t],{useCache:e.useCache});return y$1.parse(r).presets}async function rl(e,t){return (await Xs(t)).find(s=>s.name.toLowerCase()===e.toLowerCase())??null}async function en(e,t){let{query:r,limit:s,offset:n,config:i,useCache:o}=t||{},a=[];for(let p of e){let u=((await ot(p,{config:i,useCache:o})).items||[]).map(w=>({name:w.name,type:w.type,description:w.description,registry:p,addCommandArgument:nn(w.name,p)}));a=a.concat(u);}r&&(a=rn(a,{query:r,limit:a.length,keys:["name","description"]}));let f=n||0,c=s||a.length,l=a.length,d={pagination:{total:l,offset:f,limit:c,hasMore:f+c<l},items:a.slice(f,f+c)};return v.parse(d)}var tn=z$1.object({name:z$1.string(),type:z$1.string().optional(),description:z$1.string().optional(),registry:z$1.string().optional(),addCommandArgument:z$1.string().optional()}).passthrough();function rn(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$1.array(tn).parse(s)}function sn(e){try{return new URL(e),!0}catch{return false}}function nn(e,t){if(!sn(t))return `${t}/${e}`;let r=t.indexOf("://")+3,s=t.indexOf("/",r);if(s===-1){let p=t.indexOf("?",r);if(p!==-1){let x=t.substring(0,p),w=t.substring(p).replace(/\bregistry\b/g,e);return x+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),f=i.substring(o),c=a.lastIndexOf("registry"),l=a;c!==-1&&(l=a.substring(0,c)+e+a.substring(c+8));let d=f.replace(/\bregistry\b/g,e);return n+l+d}
17
- export{Xs as $,gs as A,O as B,ho as C,se as D,me as E,Ao as F,ne as G,R as H,ca as I,Zt as J,Ds as K,q as L,ir as M,oe as N,ot as O,qs as P,Gs as Q,Ya as R,or as S,Qa as T,Xa as U,Za as V,Le as W,Ys as X,el as Y,tl as Z,Qs as _,Pt as a,rl as aa,z as b,en as ba,on as c,I as d,Pn as e,bn as f,Tn as g,In as h,Se as i,Ge as j,Rn as k,xr as l,Er as m,Tt as n,Ye as o,V as p,Mn as q,Re as r,C as s,H as t,Z as u,kt as v,At as w,$t as x,Ot as y,ro as z};//# sourceMappingURL=chunk-UHRSOZGS.js.map
18
- //# sourceMappingURL=chunk-UHRSOZGS.js.map