shadcn 0.0.0-beta.01b72a3
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/LICENSE.md +21 -0
- package/README.md +61 -0
- package/dist/chunk-7SBJAAAY.js +2 -0
- package/dist/chunk-CHWMSXYA.js +2 -0
- package/dist/chunk-FL6Z3T5X.js +75 -0
- package/dist/chunk-MTWZIHEW.js +1 -0
- package/dist/chunk-NPBIPAZH.js +109 -0
- package/dist/chunk-NUMOKWW5.js +1 -0
- package/dist/get-config-D6gTsP_D.d.ts +6 -0
- package/dist/icons/index.d.ts +47 -0
- package/dist/icons/index.js +1 -0
- package/dist/index.d.ts +1155 -0
- package/dist/index.js +171 -0
- package/dist/mcp/index.d.ts +38 -0
- package/dist/mcp/index.js +1 -0
- package/dist/preset/index.d.ts +35 -0
- package/dist/preset/index.js +1 -0
- package/dist/registry/index.d.ts +458 -0
- package/dist/registry/index.js +1 -0
- package/dist/schema/index.d.ts +7444 -0
- package/dist/schema/index.js +1 -0
- package/dist/tailwind.css +95 -0
- package/dist/utils/index.d.ts +42 -0
- package/dist/utils/index.js +1 -0
- package/package.json +132 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export{B as configJsonSchema,d as configSchema,s as iconsSchema,A as presetSchema,c as rawConfigSchema,y as registriesIndexSchema,z as registriesSchema,t as registryBaseColorSchema,o as registryChunkSchema,a as registryConfigItemSchema,b as registryConfigSchema,q as registryIndexSchema,m as registryItemCommonSchema,j as registryItemCssSchema,i as registryItemCssVarsSchema,k as registryItemEnvVarsSchema,g as registryItemFileSchema,l as registryItemFontSchema,n as registryItemSchema,h as registryItemTailwindSchema,f as registryItemTypeSchema,u as registryResolvedItemsTreeSchema,p as registrySchema,w as searchResultErrorSchema,v as searchResultItemSchema,x as searchResultsSchema,r as stylesSchema,e as workspaceConfigSchema}from'../chunk-MTWZIHEW.js';
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
@theme inline {
|
|
2
|
+
@keyframes accordion-down {
|
|
3
|
+
from {
|
|
4
|
+
height: 0;
|
|
5
|
+
}
|
|
6
|
+
to {
|
|
7
|
+
height: var(
|
|
8
|
+
--radix-accordion-content-height,
|
|
9
|
+
var(--accordion-panel-height, auto)
|
|
10
|
+
);
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
@keyframes accordion-up {
|
|
15
|
+
from {
|
|
16
|
+
height: var(
|
|
17
|
+
--radix-accordion-content-height,
|
|
18
|
+
var(--accordion-panel-height, auto)
|
|
19
|
+
);
|
|
20
|
+
}
|
|
21
|
+
to {
|
|
22
|
+
height: 0;
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
/* Custom variants */
|
|
28
|
+
@custom-variant data-open {
|
|
29
|
+
&:where([data-state="open"]),
|
|
30
|
+
&:where([data-open]:not([data-open="false"])) {
|
|
31
|
+
@slot;
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
@custom-variant data-closed {
|
|
36
|
+
&:where([data-state="closed"]),
|
|
37
|
+
&:where([data-closed]:not([data-closed="false"])) {
|
|
38
|
+
@slot;
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
@custom-variant data-checked {
|
|
43
|
+
&:where([data-state="checked"]),
|
|
44
|
+
&:where([data-checked]:not([data-checked="false"])) {
|
|
45
|
+
@slot;
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
@custom-variant data-unchecked {
|
|
50
|
+
&:where([data-state="unchecked"]),
|
|
51
|
+
&:where([data-unchecked]:not([data-unchecked="false"])) {
|
|
52
|
+
@slot;
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
@custom-variant data-selected {
|
|
57
|
+
&:where([data-selected="true"]) {
|
|
58
|
+
@slot;
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
@custom-variant data-disabled {
|
|
63
|
+
&:where([data-disabled="true"]),
|
|
64
|
+
&:where([data-disabled]:not([data-disabled="false"])) {
|
|
65
|
+
@slot;
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
@custom-variant data-active {
|
|
70
|
+
&:where([data-state="active"]),
|
|
71
|
+
&:where([data-active]:not([data-active="false"])) {
|
|
72
|
+
@slot;
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
@custom-variant data-horizontal {
|
|
77
|
+
&:where([data-orientation="horizontal"]) {
|
|
78
|
+
@slot;
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
@custom-variant data-vertical {
|
|
83
|
+
&:where([data-orientation="vertical"]) {
|
|
84
|
+
@slot;
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
@utility no-scrollbar {
|
|
89
|
+
-ms-overflow-style: none;
|
|
90
|
+
scrollbar-width: none;
|
|
91
|
+
|
|
92
|
+
&::-webkit-scrollbar {
|
|
93
|
+
display: none;
|
|
94
|
+
}
|
|
95
|
+
}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { SourceFile } from 'ts-morph';
|
|
3
|
+
import { registryBaseColorSchema } from '../schema/index.js';
|
|
4
|
+
import { C as Config } from '../get-config-D6gTsP_D.js';
|
|
5
|
+
|
|
6
|
+
declare const styleMapSchema: z.ZodRecord<z.ZodString, z.ZodString>;
|
|
7
|
+
type StyleMap = z.infer<typeof styleMapSchema>;
|
|
8
|
+
declare function createStyleMap(input: string): Record<string, string>;
|
|
9
|
+
|
|
10
|
+
type TransformerStyle<Output = SourceFile> = (opts: {
|
|
11
|
+
sourceFile: SourceFile;
|
|
12
|
+
styleMap: StyleMap;
|
|
13
|
+
}) => Promise<Output>;
|
|
14
|
+
declare function transformStyle(source: string, { styleMap, transformers, }: {
|
|
15
|
+
styleMap: StyleMap;
|
|
16
|
+
transformers?: TransformerStyle<SourceFile>[];
|
|
17
|
+
}): Promise<string>;
|
|
18
|
+
|
|
19
|
+
type TransformOpts = {
|
|
20
|
+
filename: string;
|
|
21
|
+
raw: string;
|
|
22
|
+
config: Config;
|
|
23
|
+
baseColor?: z.infer<typeof registryBaseColorSchema>;
|
|
24
|
+
transformJsx?: boolean;
|
|
25
|
+
isRemote?: boolean;
|
|
26
|
+
supportedFontMarkers?: string[];
|
|
27
|
+
};
|
|
28
|
+
type Transformer<Output = SourceFile> = (opts: TransformOpts & {
|
|
29
|
+
sourceFile: SourceFile;
|
|
30
|
+
}) => Promise<Output>;
|
|
31
|
+
|
|
32
|
+
declare const transformFont: Transformer;
|
|
33
|
+
|
|
34
|
+
declare const transformIcons: Transformer;
|
|
35
|
+
|
|
36
|
+
declare const transformMenu: Transformer;
|
|
37
|
+
|
|
38
|
+
declare const transformRender: Transformer;
|
|
39
|
+
|
|
40
|
+
declare function transformDirection(source: string, rtl: boolean): Promise<string>;
|
|
41
|
+
|
|
42
|
+
export { createStyleMap, transformDirection, transformFont, transformIcons, transformMenu, transformRender, transformStyle };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export{e as transformDirection,f as transformFont,c as transformIcons,g as transformMenu}from'../chunk-7SBJAAAY.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
ADDED
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "shadcn",
|
|
3
|
+
"version": "0.0.0-beta.01b72a3",
|
|
4
|
+
"description": "Add components to your apps.",
|
|
5
|
+
"publishConfig": {
|
|
6
|
+
"access": "public"
|
|
7
|
+
},
|
|
8
|
+
"license": "MIT",
|
|
9
|
+
"author": {
|
|
10
|
+
"name": "shadcn",
|
|
11
|
+
"url": "https://twitter.com/shadcn"
|
|
12
|
+
},
|
|
13
|
+
"repository": {
|
|
14
|
+
"type": "git",
|
|
15
|
+
"url": "https://github.com/shadcn-ui/ui.git",
|
|
16
|
+
"directory": "packages/shadcn"
|
|
17
|
+
},
|
|
18
|
+
"files": [
|
|
19
|
+
"dist"
|
|
20
|
+
],
|
|
21
|
+
"keywords": [
|
|
22
|
+
"components",
|
|
23
|
+
"ui",
|
|
24
|
+
"tailwind",
|
|
25
|
+
"radix-ui",
|
|
26
|
+
"base-ui",
|
|
27
|
+
"shadcn"
|
|
28
|
+
],
|
|
29
|
+
"type": "module",
|
|
30
|
+
"exports": {
|
|
31
|
+
".": {
|
|
32
|
+
"types": "./dist/index.d.ts",
|
|
33
|
+
"default": "./dist/index.js"
|
|
34
|
+
},
|
|
35
|
+
"./registry": {
|
|
36
|
+
"types": "./dist/registry/index.d.ts",
|
|
37
|
+
"default": "./dist/registry/index.js"
|
|
38
|
+
},
|
|
39
|
+
"./schema": {
|
|
40
|
+
"types": "./dist/schema/index.d.ts",
|
|
41
|
+
"default": "./dist/schema/index.js"
|
|
42
|
+
},
|
|
43
|
+
"./mcp": {
|
|
44
|
+
"types": "./dist/mcp/index.d.ts",
|
|
45
|
+
"default": "./dist/mcp/index.js"
|
|
46
|
+
},
|
|
47
|
+
"./utils": {
|
|
48
|
+
"types": "./dist/utils/index.d.ts",
|
|
49
|
+
"default": "./dist/utils/index.js"
|
|
50
|
+
},
|
|
51
|
+
"./icons": {
|
|
52
|
+
"types": "./dist/icons/index.d.ts",
|
|
53
|
+
"default": "./dist/icons/index.js"
|
|
54
|
+
},
|
|
55
|
+
"./preset": {
|
|
56
|
+
"types": "./dist/preset/index.d.ts",
|
|
57
|
+
"default": "./dist/preset/index.js"
|
|
58
|
+
},
|
|
59
|
+
"./tailwind.css": {
|
|
60
|
+
"style": "./dist/tailwind.css"
|
|
61
|
+
}
|
|
62
|
+
},
|
|
63
|
+
"bin": "./dist/index.js",
|
|
64
|
+
"engines": {
|
|
65
|
+
"node": ">=20.18.1"
|
|
66
|
+
},
|
|
67
|
+
"dependencies": {
|
|
68
|
+
"@babel/core": "^7.28.0",
|
|
69
|
+
"@babel/parser": "^7.28.0",
|
|
70
|
+
"@babel/plugin-transform-typescript": "^7.28.0",
|
|
71
|
+
"@babel/preset-typescript": "^7.27.1",
|
|
72
|
+
"@dotenvx/dotenvx": "^1.48.4",
|
|
73
|
+
"@modelcontextprotocol/sdk": "^1.26.0",
|
|
74
|
+
"@types/validate-npm-package-name": "^4.0.2",
|
|
75
|
+
"browserslist": "^4.26.2",
|
|
76
|
+
"commander": "^14.0.0",
|
|
77
|
+
"cosmiconfig": "^9.0.0",
|
|
78
|
+
"dedent": "^1.6.0",
|
|
79
|
+
"deepmerge": "^4.3.1",
|
|
80
|
+
"diff": "^8.0.2",
|
|
81
|
+
"execa": "^9.6.0",
|
|
82
|
+
"fast-glob": "^3.3.3",
|
|
83
|
+
"fs-extra": "^11.3.1",
|
|
84
|
+
"fuzzysort": "^3.1.0",
|
|
85
|
+
"kleur": "^4.1.5",
|
|
86
|
+
"open": "^11.0.0",
|
|
87
|
+
"ora": "^8.2.0",
|
|
88
|
+
"postcss": "^8.5.6",
|
|
89
|
+
"postcss-selector-parser": "^7.1.0",
|
|
90
|
+
"prompts": "^2.4.2",
|
|
91
|
+
"recast": "^0.23.11",
|
|
92
|
+
"stringify-object": "^5.0.0",
|
|
93
|
+
"tailwind-merge": "^3.0.1",
|
|
94
|
+
"ts-morph": "^26.0.0",
|
|
95
|
+
"tsconfig-paths": "^4.2.0",
|
|
96
|
+
"undici": "^7.27.2",
|
|
97
|
+
"validate-npm-package-name": "^7.0.1",
|
|
98
|
+
"zod": "^3.24.1",
|
|
99
|
+
"zod-to-json-schema": "^3.24.6"
|
|
100
|
+
},
|
|
101
|
+
"devDependencies": {
|
|
102
|
+
"@antfu/ni": "^25.0.0",
|
|
103
|
+
"@types/babel__core": "^7.20.5",
|
|
104
|
+
"@types/fs-extra": "^11.0.4",
|
|
105
|
+
"@types/prompts": "^2.4.9",
|
|
106
|
+
"@types/stringify-object": "^4.0.5",
|
|
107
|
+
"rimraf": "^6.0.1",
|
|
108
|
+
"tsup": "^8.5.0",
|
|
109
|
+
"type-fest": "^4.41.0",
|
|
110
|
+
"typescript": "^5.9.2",
|
|
111
|
+
"msw": "^2.10.4"
|
|
112
|
+
},
|
|
113
|
+
"scripts": {
|
|
114
|
+
"dev": "tsup --watch",
|
|
115
|
+
"build": "tsup",
|
|
116
|
+
"typecheck": "tsc --noEmit",
|
|
117
|
+
"clean": "rimraf dist && rimraf components",
|
|
118
|
+
"start:dev": "cross-env REGISTRY_URL=http://localhost:4000/r SHADCN_TEMPLATE_DIR=../../templates node dist/index.js",
|
|
119
|
+
"start:prod": "cross-env REGISTRY_URL=https://ui.shadcn.com/r node dist/index.js",
|
|
120
|
+
"start": "node dist/index.js",
|
|
121
|
+
"format:write": "prettier --write \"**/*.{ts,tsx,mdx}\" --cache",
|
|
122
|
+
"format:check": "prettier --check \"**/*.{ts,tsx,mdx}\" --cache",
|
|
123
|
+
"release": "changeset version",
|
|
124
|
+
"pub:beta": "pnpm build && pnpm publish --no-git-checks --access public --tag beta",
|
|
125
|
+
"pub:rc": "pnpm build && pnpm publish --no-git-checks --access public --tag rc",
|
|
126
|
+
"pub:next": "pnpm build && pnpm publish --no-git-checks --access public --tag next",
|
|
127
|
+
"pub:release": "pnpm build && pnpm publish --access public",
|
|
128
|
+
"test": "vitest run",
|
|
129
|
+
"test:dev": "REGISTRY_URL=http://localhost:4000/r SHADCN_TEMPLATE_DIR=../../templates vitest run",
|
|
130
|
+
"mcp:inspect": "pnpm dlx @modelcontextprotocol/inspector node dist/index.js mcp"
|
|
131
|
+
}
|
|
132
|
+
}
|