@nucleoicons/skills 0.1.8 → 0.1.9
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 +15 -9
- package/dist/api.d.ts +2 -2
- package/dist/api.js +2 -2
- package/dist/commands/setup.d.ts +1 -1
- package/dist/commands/setup.js +5 -1
- package/dist/config.d.ts +3 -1
- package/dist/config.js +4 -0
- package/dist/index.js +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -5,7 +5,7 @@ CLI to install and update **Nucleo** MCP + icon skills on your machine.
|
|
|
5
5
|
Once installed, your AI coding tool can help you **use Nucleo icons in code**. Typical uses:
|
|
6
6
|
|
|
7
7
|
- Search icons by name or idea across your installed families (Pro and/or free)
|
|
8
|
-
- Pick an icon and get the right React component or SVG for your project
|
|
8
|
+
- Pick an icon and get the right **React** component, **Vue** SFC, or **vanilla SVG** for your project
|
|
9
9
|
- Customize icons when inserting them (color, secondary color, stroke width, duo opacity, corners)
|
|
10
10
|
|
|
11
11
|
Ask your editor naturally, for example: “find a settings icon in Nucleo” or “insert the home icon as a React component.”
|
|
@@ -26,15 +26,21 @@ npx @nucleoicons/skills setup --target react --tools cursor
|
|
|
26
26
|
npx @nucleoicons/skills setup --free --target react --tools cursor
|
|
27
27
|
```
|
|
28
28
|
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
**Required for setup:** `--target` (`react` or `vanilla`) and `--tools` (`cursor`, `claude`, `codex`).
|
|
29
|
+
**Required for setup:** `--target` (`react`, `vue`, or `vanilla`) and `--tools` (`cursor`, `claude`, `codex`).
|
|
32
30
|
|
|
33
31
|
```bash
|
|
34
32
|
npx @nucleoicons/skills setup --target react --tools cursor
|
|
35
|
-
npx @nucleoicons/skills setup --
|
|
33
|
+
npx @nucleoicons/skills setup --target vue --tools cursor
|
|
34
|
+
npx @nucleoicons/skills setup --target vanilla --tools cursor,claude
|
|
35
|
+
npx @nucleoicons/skills setup --free --target vue --tools cursor
|
|
36
36
|
```
|
|
37
37
|
|
|
38
|
+
| `--target` | What you get |
|
|
39
|
+
| ---------- | ------------------------- |
|
|
40
|
+
| `react` | React components (`.tsx`) |
|
|
41
|
+
| `vue` | Vue SFCs (`.vue`) |
|
|
42
|
+
| `vanilla` | SVG files |
|
|
43
|
+
|
|
38
44
|
Setup installs the package under your user home (`~/.nucleo/skills`) and configures the editors you choose (skills + MCP, no manual config step).
|
|
39
45
|
|
|
40
46
|
Reload MCP in your editor, then ask something like:
|
|
@@ -59,8 +65,8 @@ After updating, reload MCP in your editor again.
|
|
|
59
65
|
|
|
60
66
|
## Editors
|
|
61
67
|
|
|
62
|
-
| Tool | `--tools` value | Auto-configured
|
|
63
|
-
| ----------- | --------------- |
|
|
64
|
-
| Cursor | `cursor` | `~/.cursor/mcp.json` + `~/.cursor/skills/`
|
|
65
|
-
| Claude Code | `claude` | `~/.claude.json` + `~/.claude/skills/`
|
|
68
|
+
| Tool | `--tools` value | Auto-configured |
|
|
69
|
+
| ----------- | --------------- | -------------------------------------------- |
|
|
70
|
+
| Cursor | `cursor` | `~/.cursor/mcp.json` + `~/.cursor/skills/` |
|
|
71
|
+
| Claude Code | `claude` | `~/.claude.json` + `~/.claude/skills/` |
|
|
66
72
|
| Codex | `codex` | `~/.codex/config.toml` + `~/.agents/skills/` |
|
package/dist/api.d.ts
CHANGED
|
@@ -44,12 +44,12 @@ export interface DownloadProgress {
|
|
|
44
44
|
*/
|
|
45
45
|
export declare function skillsLogin(email: string, password: string): Promise<SkillsLoginData>;
|
|
46
46
|
/**
|
|
47
|
-
* GET /skills/release?token=…&target=react|vanilla
|
|
47
|
+
* GET /skills/release?token=…&target=react|vanilla|vue
|
|
48
48
|
* Response: { data: { version, families, files, downloadReady } }
|
|
49
49
|
*/
|
|
50
50
|
export declare function fetchSkillsRelease(token: string, target: PackageTarget): Promise<SkillsReleaseData>;
|
|
51
51
|
/**
|
|
52
|
-
* GET /skills/release-free?target=react|vanilla (no auth)
|
|
52
|
+
* GET /skills/release-free?target=react|vanilla|vue (no auth)
|
|
53
53
|
*/
|
|
54
54
|
export declare function fetchSkillsFreeRelease(target: PackageTarget): Promise<SkillsReleaseData>;
|
|
55
55
|
declare function formatBytes(bytes: number): string;
|
package/dist/api.js
CHANGED
|
@@ -65,7 +65,7 @@ export async function skillsLogin(email, password) {
|
|
|
65
65
|
return json.data;
|
|
66
66
|
}
|
|
67
67
|
/**
|
|
68
|
-
* GET /skills/release?token=…&target=react|vanilla
|
|
68
|
+
* GET /skills/release?token=…&target=react|vanilla|vue
|
|
69
69
|
* Response: { data: { version, families, files, downloadReady } }
|
|
70
70
|
*/
|
|
71
71
|
export async function fetchSkillsRelease(token, target) {
|
|
@@ -86,7 +86,7 @@ export async function fetchSkillsRelease(token, target) {
|
|
|
86
86
|
return { ...json.data, tier: json.data.tier ?? "pro" };
|
|
87
87
|
}
|
|
88
88
|
/**
|
|
89
|
-
* GET /skills/release-free?target=react|vanilla (no auth)
|
|
89
|
+
* GET /skills/release-free?target=react|vanilla|vue (no auth)
|
|
90
90
|
*/
|
|
91
91
|
export async function fetchSkillsFreeRelease(target) {
|
|
92
92
|
const url = new URL(`${getApiBaseUrl()}/skills/release-free`);
|
package/dist/commands/setup.d.ts
CHANGED
package/dist/commands/setup.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { confirm, select, checkbox } from "@inquirer/prompts";
|
|
2
2
|
import { mkdir } from "node:fs/promises";
|
|
3
3
|
import { ApiError, fetchSkillsFreeRelease, fetchSkillsRelease } from "../api.js";
|
|
4
|
-
import { installRoot, nucleoHomeDir } from "../config.js";
|
|
4
|
+
import { installRoot, isPackageTarget, nucleoHomeDir, } from "../config.js";
|
|
5
5
|
import { buildMcp, ensureManifestTarget, hasProFamilies, installFromLocalDir, installFromRelease, readInstallManifest, } from "../install.js";
|
|
6
6
|
import { configureTool } from "../adapters/agents.js";
|
|
7
7
|
import { ensureSkillsSession, isInvalidTokenError } from "../session.js";
|
|
@@ -23,11 +23,15 @@ export async function runSetup(options = {}) {
|
|
|
23
23
|
const free = Boolean(options.free);
|
|
24
24
|
console.log(free ? "\nNucleo Skills setup (free)" : "\nNucleo Skills setup");
|
|
25
25
|
console.log(free ? "─────────────────────────\n" : "───────────────────\n");
|
|
26
|
+
if (options.target && !isPackageTarget(options.target)) {
|
|
27
|
+
throw new Error(`Unknown target "${options.target}". Use react, vanilla, or vue.`);
|
|
28
|
+
}
|
|
26
29
|
const target = options.target ??
|
|
27
30
|
(await select({
|
|
28
31
|
message: "Which package?",
|
|
29
32
|
choices: [
|
|
30
33
|
{ name: "React components", value: "react" },
|
|
34
|
+
{ name: "Vue components", value: "vue" },
|
|
31
35
|
{ name: "Vanilla SVG", value: "vanilla" },
|
|
32
36
|
],
|
|
33
37
|
}));
|
package/dist/config.d.ts
CHANGED
|
@@ -6,7 +6,9 @@ export declare function nucleoHomeDir(): string;
|
|
|
6
6
|
export declare function credentialsPath(): string;
|
|
7
7
|
/** Where the downloaded Pro package lives (MCP, skills, icons) */
|
|
8
8
|
export declare function installRoot(): string;
|
|
9
|
-
export
|
|
9
|
+
export declare const PACKAGE_TARGETS: readonly ["react", "vanilla", "vue"];
|
|
10
|
+
export type PackageTarget = (typeof PACKAGE_TARGETS)[number];
|
|
11
|
+
export declare function isPackageTarget(value: string): value is PackageTarget;
|
|
10
12
|
export type AgentTool = "cursor" | "claude" | "codex";
|
|
11
13
|
export interface NucleoCredentials {
|
|
12
14
|
email: string;
|
package/dist/config.js
CHANGED
|
@@ -19,3 +19,7 @@ export function credentialsPath() {
|
|
|
19
19
|
export function installRoot() {
|
|
20
20
|
return join(nucleoHomeDir(), "skills");
|
|
21
21
|
}
|
|
22
|
+
export const PACKAGE_TARGETS = ["react", "vanilla", "vue"];
|
|
23
|
+
export function isPackageTarget(value) {
|
|
24
|
+
return PACKAGE_TARGETS.includes(value);
|
|
25
|
+
}
|
package/dist/index.js
CHANGED
|
@@ -52,7 +52,7 @@ program
|
|
|
52
52
|
program
|
|
53
53
|
.command("setup")
|
|
54
54
|
.description("Sign in, download your licensed package, configure your editor")
|
|
55
|
-
.option("-t, --target <target>", "react | vanilla")
|
|
55
|
+
.option("-t, --target <target>", "react | vanilla | vue")
|
|
56
56
|
.option("--tools <list>", "comma-separated: cursor,claude,codex (default: prompt, or cursor with --yes)")
|
|
57
57
|
.option("--free", "Install free icon families (no Nucleo login)")
|
|
58
58
|
.option("--from <dir>", "Install from a local prepared package (skip API download)")
|