@shadsapp/cli 0.1.1 → 0.1.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/README.md +23 -3
- package/dist/cli.js +23 -0
- package/dist/cli.js.map +1 -1
- package/dist/commands/create.d.ts +16 -0
- package/dist/commands/create.d.ts.map +1 -0
- package/dist/commands/create.js +173 -0
- package/dist/commands/create.js.map +1 -0
- package/dist/commands/migrate-icons.d.ts +2 -0
- package/dist/commands/migrate-icons.d.ts.map +1 -0
- package/dist/commands/migrate-icons.js +209 -0
- package/dist/commands/migrate-icons.js.map +1 -0
- package/dist/data/icon-map.json +119 -0
- package/package.json +6 -4
package/README.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# @shadsapp/cli
|
|
2
2
|
|
|
3
|
-
CLI for
|
|
3
|
+
CLI for creating shadcn/ui apps from [shads.app](https://shads.app) themes, and for installing those themes into existing projects.
|
|
4
4
|
|
|
5
5
|
## Install
|
|
6
6
|
|
|
@@ -19,6 +19,11 @@ The binary name is **`shads`**.
|
|
|
19
19
|
## Commands
|
|
20
20
|
|
|
21
21
|
```bash
|
|
22
|
+
# Create a new app (runs the official shadcn CLI)
|
|
23
|
+
shads create my-app -t workspace
|
|
24
|
+
shads create my-app --template vite -t terminal
|
|
25
|
+
shads create my-app --preset https://shads.app/r/workspace-theme.json
|
|
26
|
+
|
|
22
27
|
# Install theme files into the current project
|
|
23
28
|
shads install -t workspace
|
|
24
29
|
|
|
@@ -35,9 +40,13 @@ shads validate theme.json
|
|
|
35
40
|
shads schema
|
|
36
41
|
```
|
|
37
42
|
|
|
43
|
+
`create` is a thin wrapper around `npx shadcn@latest create --preset <url>`. It does not replace the shadcn CLI.
|
|
44
|
+
|
|
38
45
|
## What gets written
|
|
39
46
|
|
|
40
|
-
|
|
47
|
+
`create` scaffolds a shadcn app, then applies the theme (tokens, fonts, and adapters).
|
|
48
|
+
|
|
49
|
+
`install` writes:
|
|
41
50
|
|
|
42
51
|
- `theme.json`
|
|
43
52
|
- `src/styles/theme.css`
|
|
@@ -47,14 +56,25 @@ Import the CSS in your app entry (e.g. `main.tsx` or `layout.tsx`).
|
|
|
47
56
|
## Examples
|
|
48
57
|
|
|
49
58
|
```bash
|
|
59
|
+
npx @shadsapp/cli create my-app -t workspace
|
|
50
60
|
npx @shadsapp/cli install -t workspace
|
|
51
61
|
npx @shadsapp/cli themes import terminal
|
|
52
62
|
npx @shadsapp/cli validate ./theme.json
|
|
53
63
|
```
|
|
54
64
|
|
|
65
|
+
## For AI agents
|
|
66
|
+
|
|
67
|
+
Prefer the MCP server over scraping the builder:
|
|
68
|
+
|
|
69
|
+
```bash
|
|
70
|
+
npx -y @shadsapp/mcp
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
If you only have a shell, `shads themes list`, `shads themes import <id>`, and `shads create` are the install path. Full docs: https://shads.app/docs/cli
|
|
74
|
+
|
|
55
75
|
## Customize themes
|
|
56
76
|
|
|
57
|
-
Edit visually at [shads.app](https://shads.app), then export
|
|
77
|
+
Edit visually at [shads.app](https://shads.app), then export a create or add command from the builder.
|
|
58
78
|
|
|
59
79
|
## Related packages
|
|
60
80
|
|
package/dist/cli.js
CHANGED
|
@@ -1,22 +1,32 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { THEME_SCHEMA } from "@shadsapp/schema";
|
|
3
|
+
import { runCreate } from "./commands/create.js";
|
|
3
4
|
import { runInstall } from "./commands/install.js";
|
|
5
|
+
import { runMigrateIcons } from "./commands/migrate-icons.js";
|
|
4
6
|
import { runThemesImport, runThemesList } from "./commands/themes.js";
|
|
5
7
|
import { runValidate } from "./commands/validate.js";
|
|
6
8
|
function printHelp() {
|
|
7
9
|
console.log(`shads — theme tooling for shadcn/ui projects
|
|
8
10
|
|
|
9
11
|
Usage:
|
|
12
|
+
shads create <name> [-t <theme>] [--template next]
|
|
13
|
+
shads create <name> --preset <url>
|
|
10
14
|
shads install -t <theme> Install theme files into the current project
|
|
11
15
|
shads themes list List public starter themes
|
|
12
16
|
shads themes import <theme> Import a public theme into the current project
|
|
13
17
|
shads validate <file> Validate a theme.json document
|
|
18
|
+
shads migrate icons --from <pack> --to <pack> [--yes]
|
|
14
19
|
shads schema Print the active theme document schema id
|
|
15
20
|
|
|
16
21
|
Examples:
|
|
22
|
+
npx @shadsapp/cli create my-app -t workspace
|
|
23
|
+
npx @shadsapp/cli create my-app --template vite -t terminal
|
|
24
|
+
npx @shadsapp/cli create my-app --preset https://shads.app/r/workspace-theme.json
|
|
17
25
|
npx @shadsapp/cli install -t workspace
|
|
18
26
|
npx @shadsapp/cli themes import workspace
|
|
19
27
|
npx @shadsapp/cli validate theme.json
|
|
28
|
+
|
|
29
|
+
create runs the official shadcn CLI (npx shadcn@latest create --preset …).
|
|
20
30
|
`);
|
|
21
31
|
}
|
|
22
32
|
async function main() {
|
|
@@ -39,6 +49,19 @@ async function main() {
|
|
|
39
49
|
runValidate(filePath);
|
|
40
50
|
return;
|
|
41
51
|
}
|
|
52
|
+
if (command === "create") {
|
|
53
|
+
await runCreate([subcommand, ...rest].filter((token) => typeof token === "string"));
|
|
54
|
+
return;
|
|
55
|
+
}
|
|
56
|
+
if (command === "migrate") {
|
|
57
|
+
if (subcommand === "icons") {
|
|
58
|
+
await runMigrateIcons(rest);
|
|
59
|
+
return;
|
|
60
|
+
}
|
|
61
|
+
console.error("Unknown migrate target. Usage: shads migrate icons --from <pack> --to <pack>");
|
|
62
|
+
process.exitCode = 1;
|
|
63
|
+
return;
|
|
64
|
+
}
|
|
42
65
|
if (command === "install") {
|
|
43
66
|
let themeId = "workspace";
|
|
44
67
|
for (let index = 0; index < rest.length; index += 1) {
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAA;AAE/C,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAA;AAClD,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAA;AACrE,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAA;AAEpD,SAAS,SAAS;IAChB,OAAO,CAAC,GAAG,CAAC
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
export type ParsedCreateArgs = {
|
|
2
|
+
name: string;
|
|
3
|
+
themeId: string;
|
|
4
|
+
presetUrl: string | null;
|
|
5
|
+
template: string;
|
|
6
|
+
passthrough: string[];
|
|
7
|
+
};
|
|
8
|
+
type ParseCreateResult = ParsedCreateArgs | {
|
|
9
|
+
error: string;
|
|
10
|
+
};
|
|
11
|
+
export declare function parseCreateArgs(argv: string[]): ParseCreateResult;
|
|
12
|
+
export declare function resolveCreatePresetUrl(args: ParsedCreateArgs, origin?: string): string;
|
|
13
|
+
export declare function buildShadcnCreateArgv(args: ParsedCreateArgs, presetUrl: string): string[];
|
|
14
|
+
export declare function runCreate(argv: string[]): Promise<void>;
|
|
15
|
+
export {};
|
|
16
|
+
//# sourceMappingURL=create.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create.d.ts","sourceRoot":"","sources":["../../src/commands/create.ts"],"names":[],"mappings":"AA4BA,MAAM,MAAM,gBAAgB,GAAG;IAC7B,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,MAAM,CAAA;IACf,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;IACxB,QAAQ,EAAE,MAAM,CAAA;IAChB,WAAW,EAAE,MAAM,EAAE,CAAA;CACtB,CAAA;AAED,KAAK,iBAAiB,GAAG,gBAAgB,GAAG;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,CAAA;AAkB7D,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,iBAAiB,CA4FjE;AAED,wBAAgB,sBAAsB,CACpC,IAAI,EAAE,gBAAgB,EACtB,MAAM,SAA+D,GACpE,MAAM,CAKR;AAED,wBAAgB,qBAAqB,CACnC,IAAI,EAAE,gBAAgB,EACtB,SAAS,EAAE,MAAM,GAChB,MAAM,EAAE,CAYV;AAMD,wBAAsB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CA4B7D"}
|
|
@@ -0,0 +1,173 @@
|
|
|
1
|
+
import { spawn } from "node:child_process";
|
|
2
|
+
const STARTER_THEME_IDS = [
|
|
3
|
+
"workspace",
|
|
4
|
+
"brief",
|
|
5
|
+
"insights",
|
|
6
|
+
"dispatch",
|
|
7
|
+
"ledger",
|
|
8
|
+
"canvas",
|
|
9
|
+
"terminal",
|
|
10
|
+
"launch",
|
|
11
|
+
"commerce",
|
|
12
|
+
"campus",
|
|
13
|
+
"editorial",
|
|
14
|
+
];
|
|
15
|
+
const SHADCN_TEMPLATES = [
|
|
16
|
+
"next",
|
|
17
|
+
"vite",
|
|
18
|
+
"start",
|
|
19
|
+
"react-router",
|
|
20
|
+
"astro",
|
|
21
|
+
"laravel",
|
|
22
|
+
];
|
|
23
|
+
const DEFAULT_REGISTRY_ORIGIN = "https://shads.app";
|
|
24
|
+
const PROJECT_NAME_PATTERN = /^[A-Za-z0-9._-]+$/;
|
|
25
|
+
function isStarterThemeId(value) {
|
|
26
|
+
return STARTER_THEME_IDS.includes(value);
|
|
27
|
+
}
|
|
28
|
+
function isShadcnTemplate(value) {
|
|
29
|
+
return SHADCN_TEMPLATES.includes(value);
|
|
30
|
+
}
|
|
31
|
+
function takeValue(tokens, flag) {
|
|
32
|
+
const value = tokens.shift();
|
|
33
|
+
if (!value || value.startsWith("-")) {
|
|
34
|
+
return { error: `Missing value for ${flag}` };
|
|
35
|
+
}
|
|
36
|
+
return value;
|
|
37
|
+
}
|
|
38
|
+
export function parseCreateArgs(argv) {
|
|
39
|
+
const tokens = [...argv];
|
|
40
|
+
let name = null;
|
|
41
|
+
let themeId = "workspace";
|
|
42
|
+
let presetUrl = null;
|
|
43
|
+
let template = "next";
|
|
44
|
+
const passthrough = [];
|
|
45
|
+
while (tokens.length > 0) {
|
|
46
|
+
const token = tokens.shift();
|
|
47
|
+
if (!token)
|
|
48
|
+
break;
|
|
49
|
+
if (token === "-t" || token === "--theme") {
|
|
50
|
+
const next = takeValue(tokens, token);
|
|
51
|
+
if (typeof next !== "string")
|
|
52
|
+
return next;
|
|
53
|
+
themeId = next;
|
|
54
|
+
continue;
|
|
55
|
+
}
|
|
56
|
+
if (token === "--preset") {
|
|
57
|
+
const next = takeValue(tokens, token);
|
|
58
|
+
if (typeof next !== "string")
|
|
59
|
+
return next;
|
|
60
|
+
presetUrl = next;
|
|
61
|
+
continue;
|
|
62
|
+
}
|
|
63
|
+
if (token === "--template") {
|
|
64
|
+
const next = takeValue(tokens, token);
|
|
65
|
+
if (typeof next !== "string")
|
|
66
|
+
return next;
|
|
67
|
+
template = next;
|
|
68
|
+
continue;
|
|
69
|
+
}
|
|
70
|
+
if (token === "--name") {
|
|
71
|
+
const next = takeValue(tokens, token);
|
|
72
|
+
if (typeof next !== "string")
|
|
73
|
+
return next;
|
|
74
|
+
name = next;
|
|
75
|
+
continue;
|
|
76
|
+
}
|
|
77
|
+
if (token.startsWith("-")) {
|
|
78
|
+
passthrough.push(token);
|
|
79
|
+
const next = tokens[0];
|
|
80
|
+
if (next && !next.startsWith("-")) {
|
|
81
|
+
passthrough.push(next);
|
|
82
|
+
tokens.shift();
|
|
83
|
+
}
|
|
84
|
+
continue;
|
|
85
|
+
}
|
|
86
|
+
if (!name) {
|
|
87
|
+
name = token;
|
|
88
|
+
continue;
|
|
89
|
+
}
|
|
90
|
+
return { error: `Unexpected argument: ${token}` };
|
|
91
|
+
}
|
|
92
|
+
if (!name) {
|
|
93
|
+
return {
|
|
94
|
+
error: "Missing project name. Usage: shads create <name> [-t <theme>] [--template next]",
|
|
95
|
+
};
|
|
96
|
+
}
|
|
97
|
+
if (!PROJECT_NAME_PATTERN.test(name)) {
|
|
98
|
+
return {
|
|
99
|
+
error: "Project name may only include letters, numbers, dots, underscores, and hyphens.",
|
|
100
|
+
};
|
|
101
|
+
}
|
|
102
|
+
if (!isShadcnTemplate(template)) {
|
|
103
|
+
return {
|
|
104
|
+
error: `Unknown template "${template}". Use: ${SHADCN_TEMPLATES.join(", ")}`,
|
|
105
|
+
};
|
|
106
|
+
}
|
|
107
|
+
if (!presetUrl && !isStarterThemeId(themeId)) {
|
|
108
|
+
return {
|
|
109
|
+
error: `Unknown theme "${themeId}". Use: ${STARTER_THEME_IDS.join(", ")}`,
|
|
110
|
+
};
|
|
111
|
+
}
|
|
112
|
+
if (presetUrl) {
|
|
113
|
+
try {
|
|
114
|
+
const url = new URL(presetUrl);
|
|
115
|
+
if (url.protocol !== "http:" && url.protocol !== "https:") {
|
|
116
|
+
return { error: "--preset must be an http(s) registry URL" };
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
catch {
|
|
120
|
+
return { error: "--preset must be an http(s) registry URL" };
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
return { name, themeId, presetUrl, template, passthrough };
|
|
124
|
+
}
|
|
125
|
+
export function resolveCreatePresetUrl(args, origin = process.env.SHADS_REGISTRY_ORIGIN ?? DEFAULT_REGISTRY_ORIGIN) {
|
|
126
|
+
if (args.presetUrl) {
|
|
127
|
+
return args.presetUrl;
|
|
128
|
+
}
|
|
129
|
+
return `${origin.replace(/\/$/, "")}/r/${args.themeId}-theme.json`;
|
|
130
|
+
}
|
|
131
|
+
export function buildShadcnCreateArgv(args, presetUrl) {
|
|
132
|
+
return [
|
|
133
|
+
"shadcn@latest",
|
|
134
|
+
"create",
|
|
135
|
+
"--name",
|
|
136
|
+
args.name,
|
|
137
|
+
"--template",
|
|
138
|
+
args.template,
|
|
139
|
+
"--preset",
|
|
140
|
+
presetUrl,
|
|
141
|
+
...args.passthrough,
|
|
142
|
+
];
|
|
143
|
+
}
|
|
144
|
+
function npxBinary() {
|
|
145
|
+
return process.platform === "win32" ? "npx.cmd" : "npx";
|
|
146
|
+
}
|
|
147
|
+
export async function runCreate(argv) {
|
|
148
|
+
const parsed = parseCreateArgs(argv);
|
|
149
|
+
if ("error" in parsed) {
|
|
150
|
+
console.error(parsed.error);
|
|
151
|
+
process.exitCode = 1;
|
|
152
|
+
return;
|
|
153
|
+
}
|
|
154
|
+
const presetUrl = resolveCreatePresetUrl(parsed);
|
|
155
|
+
const npxArgs = buildShadcnCreateArgv(parsed, presetUrl);
|
|
156
|
+
console.log("Creating a project with the official shadcn CLI.");
|
|
157
|
+
console.log(`Theme: ${presetUrl}`);
|
|
158
|
+
console.log("");
|
|
159
|
+
console.log(`npx ${npxArgs.join(" ")}`);
|
|
160
|
+
console.log("");
|
|
161
|
+
await new Promise((resolve, reject) => {
|
|
162
|
+
const child = spawn(npxBinary(), npxArgs, {
|
|
163
|
+
stdio: "inherit",
|
|
164
|
+
env: process.env,
|
|
165
|
+
});
|
|
166
|
+
child.on("error", reject);
|
|
167
|
+
child.on("close", (code) => {
|
|
168
|
+
process.exitCode = code ?? 1;
|
|
169
|
+
resolve();
|
|
170
|
+
});
|
|
171
|
+
});
|
|
172
|
+
}
|
|
173
|
+
//# sourceMappingURL=create.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create.js","sourceRoot":"","sources":["../../src/commands/create.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAA;AAE1C,MAAM,iBAAiB,GAAG;IACxB,WAAW;IACX,OAAO;IACP,UAAU;IACV,UAAU;IACV,QAAQ;IACR,QAAQ;IACR,UAAU;IACV,QAAQ;IACR,UAAU;IACV,QAAQ;IACR,WAAW;CACH,CAAA;AAEV,MAAM,gBAAgB,GAAG;IACvB,MAAM;IACN,MAAM;IACN,OAAO;IACP,cAAc;IACd,OAAO;IACP,SAAS;CACD,CAAA;AAEV,MAAM,uBAAuB,GAAG,mBAAmB,CAAA;AACnD,MAAM,oBAAoB,GAAG,mBAAmB,CAAA;AAYhD,SAAS,gBAAgB,CAAC,KAAa;IACrC,OAAO,iBAAiB,CAAC,QAAQ,CAAC,KAA2C,CAAC,CAAA;AAChF,CAAC;AAED,SAAS,gBAAgB,CAAC,KAAa;IACrC,OAAO,gBAAgB,CAAC,QAAQ,CAAC,KAA0C,CAAC,CAAA;AAC9E,CAAC;AAED,SAAS,SAAS,CAAC,MAAgB,EAAE,IAAY;IAC/C,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,EAAE,CAAA;IAC5B,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QACpC,OAAO,EAAE,KAAK,EAAE,qBAAqB,IAAI,EAAE,EAAE,CAAA;IAC/C,CAAC;IACD,OAAO,KAAK,CAAA;AACd,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,IAAc;IAC5C,MAAM,MAAM,GAAG,CAAC,GAAG,IAAI,CAAC,CAAA;IACxB,IAAI,IAAI,GAAkB,IAAI,CAAA;IAC9B,IAAI,OAAO,GAAG,WAAW,CAAA;IACzB,IAAI,SAAS,GAAkB,IAAI,CAAA;IACnC,IAAI,QAAQ,GAAG,MAAM,CAAA;IACrB,MAAM,WAAW,GAAa,EAAE,CAAA;IAEhC,OAAO,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACzB,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,EAAE,CAAA;QAC5B,IAAI,CAAC,KAAK;YAAE,MAAK;QAEjB,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YAC1C,MAAM,IAAI,GAAG,SAAS,CAAC,MAAM,EAAE,KAAK,CAAC,CAAA;YACrC,IAAI,OAAO,IAAI,KAAK,QAAQ;gBAAE,OAAO,IAAI,CAAA;YACzC,OAAO,GAAG,IAAI,CAAA;YACd,SAAQ;QACV,CAAC;QAED,IAAI,KAAK,KAAK,UAAU,EAAE,CAAC;YACzB,MAAM,IAAI,GAAG,SAAS,CAAC,MAAM,EAAE,KAAK,CAAC,CAAA;YACrC,IAAI,OAAO,IAAI,KAAK,QAAQ;gBAAE,OAAO,IAAI,CAAA;YACzC,SAAS,GAAG,IAAI,CAAA;YAChB,SAAQ;QACV,CAAC;QAED,IAAI,KAAK,KAAK,YAAY,EAAE,CAAC;YAC3B,MAAM,IAAI,GAAG,SAAS,CAAC,MAAM,EAAE,KAAK,CAAC,CAAA;YACrC,IAAI,OAAO,IAAI,KAAK,QAAQ;gBAAE,OAAO,IAAI,CAAA;YACzC,QAAQ,GAAG,IAAI,CAAA;YACf,SAAQ;QACV,CAAC;QAED,IAAI,KAAK,KAAK,QAAQ,EAAE,CAAC;YACvB,MAAM,IAAI,GAAG,SAAS,CAAC,MAAM,EAAE,KAAK,CAAC,CAAA;YACrC,IAAI,OAAO,IAAI,KAAK,QAAQ;gBAAE,OAAO,IAAI,CAAA;YACzC,IAAI,GAAG,IAAI,CAAA;YACX,SAAQ;QACV,CAAC;QAED,IAAI,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YAC1B,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;YACvB,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,CAAA;YACtB,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;gBAClC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;gBACtB,MAAM,CAAC,KAAK,EAAE,CAAA;YAChB,CAAC;YACD,SAAQ;QACV,CAAC;QAED,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,IAAI,GAAG,KAAK,CAAA;YACZ,SAAQ;QACV,CAAC;QAED,OAAO,EAAE,KAAK,EAAE,wBAAwB,KAAK,EAAE,EAAE,CAAA;IACnD,CAAC;IAED,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,OAAO;YACL,KAAK,EACH,iFAAiF;SACpF,CAAA;IACH,CAAC;IACD,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QACrC,OAAO;YACL,KAAK,EACH,iFAAiF;SACpF,CAAA;IACH,CAAC;IACD,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,EAAE,CAAC;QAChC,OAAO;YACL,KAAK,EAAE,qBAAqB,QAAQ,WAAW,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;SAC7E,CAAA;IACH,CAAC;IACD,IAAI,CAAC,SAAS,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,EAAE,CAAC;QAC7C,OAAO;YACL,KAAK,EAAE,kBAAkB,OAAO,WAAW,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;SAC1E,CAAA;IACH,CAAC;IACD,IAAI,SAAS,EAAE,CAAC;QACd,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,SAAS,CAAC,CAAA;YAC9B,IAAI,GAAG,CAAC,QAAQ,KAAK,OAAO,IAAI,GAAG,CAAC,QAAQ,KAAK,QAAQ,EAAE,CAAC;gBAC1D,OAAO,EAAE,KAAK,EAAE,0CAA0C,EAAE,CAAA;YAC9D,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,EAAE,KAAK,EAAE,0CAA0C,EAAE,CAAA;QAC9D,CAAC;IACH,CAAC;IAED,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,WAAW,EAAE,CAAA;AAC5D,CAAC;AAED,MAAM,UAAU,sBAAsB,CACpC,IAAsB,EACtB,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,qBAAqB,IAAI,uBAAuB;IAErE,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;QACnB,OAAO,IAAI,CAAC,SAAS,CAAA;IACvB,CAAC;IACD,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,MAAM,IAAI,CAAC,OAAO,aAAa,CAAA;AACpE,CAAC;AAED,MAAM,UAAU,qBAAqB,CACnC,IAAsB,EACtB,SAAiB;IAEjB,OAAO;QACL,eAAe;QACf,QAAQ;QACR,QAAQ;QACR,IAAI,CAAC,IAAI;QACT,YAAY;QACZ,IAAI,CAAC,QAAQ;QACb,UAAU;QACV,SAAS;QACT,GAAG,IAAI,CAAC,WAAW;KACpB,CAAA;AACH,CAAC;AAED,SAAS,SAAS;IAChB,OAAO,OAAO,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAA;AACzD,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,IAAc;IAC5C,MAAM,MAAM,GAAG,eAAe,CAAC,IAAI,CAAC,CAAA;IACpC,IAAI,OAAO,IAAI,MAAM,EAAE,CAAC;QACtB,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;QAC3B,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAA;QACpB,OAAM;IACR,CAAC;IAED,MAAM,SAAS,GAAG,sBAAsB,CAAC,MAAM,CAAC,CAAA;IAChD,MAAM,OAAO,GAAG,qBAAqB,CAAC,MAAM,EAAE,SAAS,CAAC,CAAA;IAExD,OAAO,CAAC,GAAG,CAAC,kDAAkD,CAAC,CAAA;IAC/D,OAAO,CAAC,GAAG,CAAC,UAAU,SAAS,EAAE,CAAC,CAAA;IAClC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;IACf,OAAO,CAAC,GAAG,CAAC,OAAO,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;IACvC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;IAEf,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QAC1C,MAAM,KAAK,GAAG,KAAK,CAAC,SAAS,EAAE,EAAE,OAAO,EAAE;YACxC,KAAK,EAAE,SAAS;YAChB,GAAG,EAAE,OAAO,CAAC,GAAG;SACjB,CAAC,CAAA;QACF,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,CAAA;QACzB,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE;YACzB,OAAO,CAAC,QAAQ,GAAG,IAAI,IAAI,CAAC,CAAA;YAC5B,OAAO,EAAE,CAAA;QACX,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;AACJ,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"migrate-icons.d.ts","sourceRoot":"","sources":["../../src/commands/migrate-icons.ts"],"names":[],"mappings":"AAgOA,wBAAsB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAmCnE"}
|
|
@@ -0,0 +1,209 @@
|
|
|
1
|
+
import { spawnSync } from "node:child_process";
|
|
2
|
+
import { existsSync, mkdirSync, readdirSync, readFileSync, writeFileSync } from "node:fs";
|
|
3
|
+
import path from "node:path";
|
|
4
|
+
import iconMap from "../data/icon-map.json" with { type: "json" };
|
|
5
|
+
const OFFICIAL_PACKS = new Set([
|
|
6
|
+
"lucide",
|
|
7
|
+
"tabler",
|
|
8
|
+
"hugeicons",
|
|
9
|
+
"phosphor",
|
|
10
|
+
"remixicon",
|
|
11
|
+
]);
|
|
12
|
+
const EXTRA_PACKS = new Set(["heroicons", "iconoir"]);
|
|
13
|
+
const PACK_IMPORTS = {
|
|
14
|
+
lucide: "lucide-react",
|
|
15
|
+
tabler: "@tabler/icons-react",
|
|
16
|
+
hugeicons: "@hugeicons/react",
|
|
17
|
+
phosphor: "@phosphor-icons/react",
|
|
18
|
+
remixicon: "@remixicon/react",
|
|
19
|
+
heroicons: "@heroicons/react/24/outline",
|
|
20
|
+
iconoir: "iconoir-react",
|
|
21
|
+
};
|
|
22
|
+
const PACK_PACKAGES = {
|
|
23
|
+
lucide: ["lucide-react"],
|
|
24
|
+
tabler: ["@tabler/icons-react"],
|
|
25
|
+
hugeicons: ["@hugeicons/react", "@hugeicons/core-free-icons"],
|
|
26
|
+
phosphor: ["@phosphor-icons/react"],
|
|
27
|
+
remixicon: ["@remixicon/react"],
|
|
28
|
+
heroicons: ["@heroicons/react"],
|
|
29
|
+
iconoir: ["iconoir-react"],
|
|
30
|
+
};
|
|
31
|
+
function parseArgs(argv) {
|
|
32
|
+
let from = "lucide";
|
|
33
|
+
let to = "tabler";
|
|
34
|
+
let yes = false;
|
|
35
|
+
for (let index = 0; index < argv.length; index += 1) {
|
|
36
|
+
const token = argv[index];
|
|
37
|
+
if (token === "--from") {
|
|
38
|
+
from = argv[index + 1];
|
|
39
|
+
index += 1;
|
|
40
|
+
}
|
|
41
|
+
else if (token === "--to") {
|
|
42
|
+
to = argv[index + 1];
|
|
43
|
+
index += 1;
|
|
44
|
+
}
|
|
45
|
+
else if (token === "--yes" || token === "-y") {
|
|
46
|
+
yes = true;
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
return { from, to, yes };
|
|
50
|
+
}
|
|
51
|
+
function buildRenameMap(from, to) {
|
|
52
|
+
const map = new Map();
|
|
53
|
+
for (const entry of Object.values(iconMap)) {
|
|
54
|
+
const fromName = entry[from];
|
|
55
|
+
const toName = entry[to];
|
|
56
|
+
if (fromName && toName) {
|
|
57
|
+
map.set(fromName, toName);
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
return map;
|
|
61
|
+
}
|
|
62
|
+
function lucideAliasMap(pack) {
|
|
63
|
+
const map = new Map();
|
|
64
|
+
for (const entry of Object.values(iconMap)) {
|
|
65
|
+
const lucideName = entry.lucide;
|
|
66
|
+
const targetName = entry[pack];
|
|
67
|
+
if (lucideName && targetName) {
|
|
68
|
+
map.set(lucideName, targetName);
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
return map;
|
|
72
|
+
}
|
|
73
|
+
function installPackages(packages, cwd) {
|
|
74
|
+
const result = spawnSync("npm", ["install", ...packages], {
|
|
75
|
+
cwd,
|
|
76
|
+
stdio: "inherit",
|
|
77
|
+
shell: process.platform === "win32",
|
|
78
|
+
});
|
|
79
|
+
if (result.status !== 0) {
|
|
80
|
+
throw new Error(`Failed to install ${packages.join(" ")}`);
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
function delegateToShadcn(from, to, yes) {
|
|
84
|
+
const args = ["shadcn@latest", "migrate", "icons", "--from", from, "--to", to];
|
|
85
|
+
if (yes)
|
|
86
|
+
args.push("--yes");
|
|
87
|
+
const result = spawnSync("npx", args, {
|
|
88
|
+
stdio: "inherit",
|
|
89
|
+
shell: process.platform === "win32",
|
|
90
|
+
});
|
|
91
|
+
if (result.status !== 0) {
|
|
92
|
+
process.exitCode = 1;
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
function findUiDirectory(cwd) {
|
|
96
|
+
const candidates = [
|
|
97
|
+
path.join(cwd, "src", "components", "ui"),
|
|
98
|
+
path.join(cwd, "components", "ui"),
|
|
99
|
+
];
|
|
100
|
+
const match = candidates.find((candidate) => existsSync(candidate));
|
|
101
|
+
if (!match) {
|
|
102
|
+
throw new Error("Could not find components/ui directory");
|
|
103
|
+
}
|
|
104
|
+
return match;
|
|
105
|
+
}
|
|
106
|
+
function listUiFiles(uiDir) {
|
|
107
|
+
return readdirSync(uiDir)
|
|
108
|
+
.filter((name) => name.endsWith(".ts") || name.endsWith(".tsx"))
|
|
109
|
+
.map((name) => path.join(uiDir, name));
|
|
110
|
+
}
|
|
111
|
+
function replaceIconPlaceholder(content, to) {
|
|
112
|
+
const attr = to;
|
|
113
|
+
return content.replace(/<IconPlaceholder\b([^>]*)\/>/g, (_match, attrs) => {
|
|
114
|
+
const iconMatch = attrs.match(new RegExp(`${attr}=["']([^"']+)["']`));
|
|
115
|
+
const iconName = iconMatch?.[1];
|
|
116
|
+
if (!iconName)
|
|
117
|
+
return _match;
|
|
118
|
+
const keptAttrs = attrs
|
|
119
|
+
.replace(/\s*(lucide|tabler|hugeicons|phosphor|remixicon|heroicons|iconoir)=["'][^"']*["']/g, "")
|
|
120
|
+
.trim();
|
|
121
|
+
return keptAttrs.length > 0
|
|
122
|
+
? `<${iconName} ${keptAttrs} />`
|
|
123
|
+
: `<${iconName} />`;
|
|
124
|
+
});
|
|
125
|
+
}
|
|
126
|
+
function migrateSource(content, from, to) {
|
|
127
|
+
const renameMap = buildRenameMap(from, to);
|
|
128
|
+
let next = replaceIconPlaceholder(content, to);
|
|
129
|
+
const fromModule = PACK_IMPORTS[from];
|
|
130
|
+
const toModule = PACK_IMPORTS[to];
|
|
131
|
+
const importRegex = new RegExp(`import\\s+\\{([^}]+)\\}\\s+from\\s+["']${fromModule.replace(/[.*+?^${}()|[\]\\]/g, "\\$&")}["']`, "g");
|
|
132
|
+
next = next.replace(importRegex, (_match, imports) => {
|
|
133
|
+
const names = imports
|
|
134
|
+
.split(",")
|
|
135
|
+
.map((part) => part.trim())
|
|
136
|
+
.filter(Boolean)
|
|
137
|
+
.map((part) => {
|
|
138
|
+
const aliasMatch = part.match(/^(\w+)(?:\s+as\s+(\w+))?$/);
|
|
139
|
+
const importName = aliasMatch?.[1] ?? part;
|
|
140
|
+
const localName = aliasMatch?.[2] ?? importName;
|
|
141
|
+
const renamed = renameMap.get(importName);
|
|
142
|
+
if (!renamed)
|
|
143
|
+
return null;
|
|
144
|
+
return localName === renamed ? renamed : `${renamed} as ${localName}`;
|
|
145
|
+
})
|
|
146
|
+
.filter((value) => Boolean(value));
|
|
147
|
+
if (names.length === 0)
|
|
148
|
+
return "";
|
|
149
|
+
return `import { ${names.join(", ")} } from "${toModule}"`;
|
|
150
|
+
});
|
|
151
|
+
for (const [fromName, toName] of renameMap.entries()) {
|
|
152
|
+
if (fromName === toName)
|
|
153
|
+
continue;
|
|
154
|
+
next = next.replaceAll(fromName, toName);
|
|
155
|
+
}
|
|
156
|
+
return next;
|
|
157
|
+
}
|
|
158
|
+
function writeLucideAdapter(cwd, pack) {
|
|
159
|
+
const aliasMap = lucideAliasMap(pack);
|
|
160
|
+
const importFrom = PACK_IMPORTS[pack];
|
|
161
|
+
const uniqueTargets = [...new Set(aliasMap.values())];
|
|
162
|
+
const lines = [
|
|
163
|
+
"// Lucide-shaped re-exports for Pro icon packs.",
|
|
164
|
+
`import {`,
|
|
165
|
+
...uniqueTargets.map((name) => ` ${name},`),
|
|
166
|
+
`} from "${importFrom}"`,
|
|
167
|
+
"",
|
|
168
|
+
];
|
|
169
|
+
for (const [lucideName, targetName] of aliasMap.entries()) {
|
|
170
|
+
lines.push(`export { ${targetName} as ${lucideName} }`);
|
|
171
|
+
}
|
|
172
|
+
const iconsDir = path.join(cwd, "src", "icons");
|
|
173
|
+
mkdirSync(iconsDir, { recursive: true });
|
|
174
|
+
const adapterPath = path.join(iconsDir, `shads-${pack}.tsx`);
|
|
175
|
+
writeFileSync(adapterPath, `${lines.join("\n")}\n`);
|
|
176
|
+
const alias = `"lucide-react": path.resolve(__dirname, "./src/icons/shads-${pack}.tsx")`;
|
|
177
|
+
return { adapterPath, alias };
|
|
178
|
+
}
|
|
179
|
+
export async function runMigrateIcons(argv) {
|
|
180
|
+
const { from, to, yes } = parseArgs(argv);
|
|
181
|
+
const cwd = process.cwd();
|
|
182
|
+
if (OFFICIAL_PACKS.has(to)) {
|
|
183
|
+
delegateToShadcn(from, to, yes);
|
|
184
|
+
return;
|
|
185
|
+
}
|
|
186
|
+
if (!EXTRA_PACKS.has(to)) {
|
|
187
|
+
throw new Error(`Unsupported target icon pack: ${to}`);
|
|
188
|
+
}
|
|
189
|
+
if (!yes) {
|
|
190
|
+
console.error("Pass --yes to migrate icons in the current project.");
|
|
191
|
+
process.exitCode = 1;
|
|
192
|
+
return;
|
|
193
|
+
}
|
|
194
|
+
installPackages(PACK_PACKAGES[to], cwd);
|
|
195
|
+
const uiDir = findUiDirectory(cwd);
|
|
196
|
+
for (const filePath of listUiFiles(uiDir)) {
|
|
197
|
+
const original = readFileSync(filePath, "utf8");
|
|
198
|
+
const migrated = migrateSource(original, from, to);
|
|
199
|
+
if (migrated !== original) {
|
|
200
|
+
writeFileSync(filePath, migrated);
|
|
201
|
+
}
|
|
202
|
+
}
|
|
203
|
+
const { adapterPath, alias } = writeLucideAdapter(cwd, to);
|
|
204
|
+
console.log(`Wrote ${path.relative(cwd, adapterPath)}`);
|
|
205
|
+
console.log("");
|
|
206
|
+
console.log("Add this Vite alias so future `npx shadcn add` keeps rendering icons:");
|
|
207
|
+
console.log(alias);
|
|
208
|
+
}
|
|
209
|
+
//# sourceMappingURL=migrate-icons.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"migrate-icons.js","sourceRoot":"","sources":["../../src/commands/migrate-icons.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
{
|
|
2
|
+
"Check": {
|
|
3
|
+
"lucide": "CheckIcon",
|
|
4
|
+
"tabler": "IconCheck",
|
|
5
|
+
"hugeicons": "Tick02Icon",
|
|
6
|
+
"phosphor": "CheckIcon",
|
|
7
|
+
"remixicon": "RiCheckLine",
|
|
8
|
+
"heroicons": "CheckIcon",
|
|
9
|
+
"iconoir": "Check"
|
|
10
|
+
},
|
|
11
|
+
"ChevronDown": {
|
|
12
|
+
"lucide": "ChevronDownIcon",
|
|
13
|
+
"tabler": "IconChevronDown",
|
|
14
|
+
"hugeicons": "ArrowDown01Icon",
|
|
15
|
+
"phosphor": "CaretDownIcon",
|
|
16
|
+
"remixicon": "RiArrowDownSLine",
|
|
17
|
+
"heroicons": "ChevronDownIcon",
|
|
18
|
+
"iconoir": "NavArrowDown"
|
|
19
|
+
},
|
|
20
|
+
"ChevronLeft": {
|
|
21
|
+
"lucide": "ChevronLeftIcon",
|
|
22
|
+
"tabler": "IconChevronLeft",
|
|
23
|
+
"hugeicons": "ArrowLeft01Icon",
|
|
24
|
+
"phosphor": "CaretLeftIcon",
|
|
25
|
+
"remixicon": "RiArrowLeftSLine",
|
|
26
|
+
"heroicons": "ChevronLeftIcon",
|
|
27
|
+
"iconoir": "NavArrowLeft"
|
|
28
|
+
},
|
|
29
|
+
"ChevronRight": {
|
|
30
|
+
"lucide": "ChevronRightIcon",
|
|
31
|
+
"tabler": "IconChevronRight",
|
|
32
|
+
"hugeicons": "ArrowRight01Icon",
|
|
33
|
+
"phosphor": "CaretRightIcon",
|
|
34
|
+
"remixicon": "RiArrowRightSLine",
|
|
35
|
+
"heroicons": "ChevronRightIcon",
|
|
36
|
+
"iconoir": "NavArrowRight"
|
|
37
|
+
},
|
|
38
|
+
"ChevronUp": {
|
|
39
|
+
"lucide": "ChevronUpIcon",
|
|
40
|
+
"tabler": "IconChevronUp",
|
|
41
|
+
"hugeicons": "ArrowUp01Icon",
|
|
42
|
+
"phosphor": "CaretUpIcon",
|
|
43
|
+
"remixicon": "RiArrowUpSLine",
|
|
44
|
+
"heroicons": "ChevronUpIcon",
|
|
45
|
+
"iconoir": "NavArrowUp"
|
|
46
|
+
},
|
|
47
|
+
"X": {
|
|
48
|
+
"lucide": "XIcon",
|
|
49
|
+
"tabler": "IconX",
|
|
50
|
+
"hugeicons": "Cancel01Icon",
|
|
51
|
+
"phosphor": "XIcon",
|
|
52
|
+
"remixicon": "RiCloseLine",
|
|
53
|
+
"heroicons": "XMarkIcon",
|
|
54
|
+
"iconoir": "Xmark"
|
|
55
|
+
},
|
|
56
|
+
"Search": {
|
|
57
|
+
"lucide": "SearchIcon",
|
|
58
|
+
"tabler": "IconSearch",
|
|
59
|
+
"hugeicons": "SearchIcon",
|
|
60
|
+
"phosphor": "MagnifyingGlassIcon",
|
|
61
|
+
"remixicon": "RiSearchLine",
|
|
62
|
+
"heroicons": "MagnifyingGlassIcon",
|
|
63
|
+
"iconoir": "Search"
|
|
64
|
+
},
|
|
65
|
+
"Loader2": {
|
|
66
|
+
"lucide": "Loader2Icon",
|
|
67
|
+
"tabler": "IconLoader",
|
|
68
|
+
"hugeicons": "Loading03Icon",
|
|
69
|
+
"phosphor": "SpinnerIcon",
|
|
70
|
+
"remixicon": "RiLoaderLine",
|
|
71
|
+
"heroicons": "ArrowPathIcon",
|
|
72
|
+
"iconoir": "RefreshDouble"
|
|
73
|
+
},
|
|
74
|
+
"MoreHorizontal": {
|
|
75
|
+
"lucide": "MoreHorizontalIcon",
|
|
76
|
+
"tabler": "IconDots",
|
|
77
|
+
"hugeicons": "MoreHorizontalCircle01Icon",
|
|
78
|
+
"phosphor": "DotsThreeOutlineIcon",
|
|
79
|
+
"remixicon": "RiMoreLine",
|
|
80
|
+
"heroicons": "EllipsisHorizontalIcon",
|
|
81
|
+
"iconoir": "MoreHoriz"
|
|
82
|
+
},
|
|
83
|
+
"CircleCheck": {
|
|
84
|
+
"lucide": "CircleCheckIcon",
|
|
85
|
+
"tabler": "IconCircleCheckFilled",
|
|
86
|
+
"hugeicons": "CheckmarkCircle01Icon",
|
|
87
|
+
"phosphor": "CheckCircleIcon",
|
|
88
|
+
"remixicon": "RiCheckboxCircleFill",
|
|
89
|
+
"heroicons": "CheckCircleIcon",
|
|
90
|
+
"iconoir": "CheckCircle"
|
|
91
|
+
},
|
|
92
|
+
"Info": {
|
|
93
|
+
"lucide": "InfoIcon",
|
|
94
|
+
"tabler": "IconInfoCircle",
|
|
95
|
+
"hugeicons": "InformationCircleIcon",
|
|
96
|
+
"phosphor": "InfoIcon",
|
|
97
|
+
"remixicon": "RiInformationLine",
|
|
98
|
+
"heroicons": "InformationCircleIcon",
|
|
99
|
+
"iconoir": "InfoCircle"
|
|
100
|
+
},
|
|
101
|
+
"OctagonX": {
|
|
102
|
+
"lucide": "OctagonXIcon",
|
|
103
|
+
"tabler": "IconAlertOctagon",
|
|
104
|
+
"hugeicons": "MultiplicationSignCircleIcon",
|
|
105
|
+
"phosphor": "XCircleIcon",
|
|
106
|
+
"remixicon": "RiCloseCircleLine",
|
|
107
|
+
"heroicons": "XCircleIcon",
|
|
108
|
+
"iconoir": "XmarkCircle"
|
|
109
|
+
},
|
|
110
|
+
"TriangleAlert": {
|
|
111
|
+
"lucide": "TriangleAlertIcon",
|
|
112
|
+
"tabler": "IconAlertTriangle",
|
|
113
|
+
"hugeicons": "Alert02Icon",
|
|
114
|
+
"phosphor": "WarningIcon",
|
|
115
|
+
"remixicon": "RiErrorWarningLine",
|
|
116
|
+
"heroicons": "ExclamationTriangleIcon",
|
|
117
|
+
"iconoir": "WarningTriangle"
|
|
118
|
+
}
|
|
119
|
+
}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@shadsapp/cli",
|
|
3
|
-
"version": "0.1.
|
|
4
|
-
"description": "CLI for
|
|
3
|
+
"version": "0.1.2",
|
|
4
|
+
"description": "CLI for creating shadcn apps from shads themes and installing them into existing projects",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "MIT",
|
|
7
7
|
"bin": {
|
|
@@ -13,11 +13,13 @@
|
|
|
13
13
|
],
|
|
14
14
|
"scripts": {
|
|
15
15
|
"build": "tsc -p tsconfig.json",
|
|
16
|
-
"typecheck": "tsc -p tsconfig.json --noEmit"
|
|
16
|
+
"typecheck": "tsc -p tsconfig.json --noEmit",
|
|
17
|
+
"test": "node --experimental-strip-types --test src/commands/create.test.ts src/commands/migrate-icons.test.ts"
|
|
17
18
|
},
|
|
18
19
|
"dependencies": {
|
|
19
20
|
"@shadsapp/schema": "0.1.1",
|
|
20
|
-
"@shadsapp/themes": "0.1.
|
|
21
|
+
"@shadsapp/themes": "0.1.2",
|
|
22
|
+
"ts-morph": "^25.0.1"
|
|
21
23
|
},
|
|
22
24
|
"publishConfig": {
|
|
23
25
|
"access": "public"
|