skillui 1.1.4 → 1.1.6
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/cli.js +32 -10
- package/package.json +1 -1
package/dist/cli.js
CHANGED
|
@@ -100949,8 +100949,6 @@ function generateSkillMd(profile, screenshotPath, ultraResult) {
|
|
|
100949
100949
|
md += `---
|
|
100950
100950
|
name: ${profile.projectName}-design
|
|
100951
100951
|
description: Design system skill for ${profile.projectName}. Activate when building UI components, pages, or any visual elements. Provides exact color tokens, typography scale, spacing grid, component patterns, and craft rules. Read references/DESIGN.md before writing any CSS or JSX.${ultraDesc}
|
|
100952
|
-
version: 1.0.0
|
|
100953
|
-
allowed-tools: [Read, Write, Edit, Glob, Grep]
|
|
100954
100952
|
---
|
|
100955
100953
|
|
|
100956
100954
|
`;
|
|
@@ -104561,7 +104559,7 @@ gradient.pastel = pastel;
|
|
|
104561
104559
|
// src/ui.ts
|
|
104562
104560
|
var import_cli_progress = __toESM(require_cli_progress());
|
|
104563
104561
|
var path15 = __toESM(require("path"));
|
|
104564
|
-
var VERSION = "1.1.
|
|
104562
|
+
var VERSION = "1.1.6";
|
|
104565
104563
|
function padAnsi(str, width) {
|
|
104566
104564
|
const raw = stripAnsi(str);
|
|
104567
104565
|
return str + " ".repeat(Math.max(0, width - raw.length));
|
|
@@ -104755,7 +104753,7 @@ function showUltraPlaywrightError() {
|
|
|
104755
104753
|
console.log("");
|
|
104756
104754
|
}
|
|
104757
104755
|
function showResults(data) {
|
|
104758
|
-
const { profile, animations, skillFilePath, designMdPath, projectName } = data;
|
|
104756
|
+
const { profile, animations, skillFilePath, designMdPath, projectName, skillInstalled } = data;
|
|
104759
104757
|
const fontCount = new Set(profile.typography.map((t) => t.fontFamily)).size;
|
|
104760
104758
|
const framework = profile.frameworks.map((f) => f.name).join(", ") || "none detected";
|
|
104761
104759
|
const darkMode = profile.designTraits.hasDarkMode ? "detected" : "not detected";
|
|
@@ -104806,17 +104804,17 @@ function showResults(data) {
|
|
|
104806
104804
|
}));
|
|
104807
104805
|
console.log("");
|
|
104808
104806
|
}
|
|
104807
|
+
const skillLine = skillInstalled ? source_default.hex("#4ade80")(" \u2713 Skill auto-installed") + source_default.dim(" \u2014 type ") + source_default.hex("#38bdf8")("/skills") + source_default.dim(" in Claude Code to see it") : source_default.dim(" Copy SKILL.md to ") + source_default.hex("#38bdf8")("~/.claude/skills/" + projectName + ".md");
|
|
104809
104808
|
const nextSteps = [
|
|
104810
|
-
|
|
104811
|
-
" " + source_default.hex("#38bdf8")("claude skill install ./" + projectName + ".skill"),
|
|
104809
|
+
skillLine,
|
|
104812
104810
|
"",
|
|
104813
|
-
source_default.dim("
|
|
104814
|
-
" " + source_default.dim('"Build me a UI that matches
|
|
104811
|
+
source_default.dim(" Then ask Claude:"),
|
|
104812
|
+
" " + source_default.dim('"Build me a UI that matches the ' + projectName + ' design system"')
|
|
104815
104813
|
].join("\n");
|
|
104816
104814
|
console.log(boxen(nextSteps, {
|
|
104817
104815
|
title: source_default.bold(" Next steps "),
|
|
104818
104816
|
borderStyle: "round",
|
|
104819
|
-
borderColor: "yellow",
|
|
104817
|
+
borderColor: skillInstalled ? "green" : "yellow",
|
|
104820
104818
|
width: 76,
|
|
104821
104819
|
padding: { top: 0, bottom: 0, left: 0, right: 1 }
|
|
104822
104820
|
}));
|
|
@@ -104973,12 +104971,14 @@ program2.name("skillui").description("Reverse-engineer design systems from any p
|
|
|
104973
104971
|
succeedSpinner(spWrite, "DESIGN.md", designMdPath);
|
|
104974
104972
|
}
|
|
104975
104973
|
let skillFilePath;
|
|
104974
|
+
let skillInstalled = false;
|
|
104976
104975
|
if (shouldWriteSkill) {
|
|
104977
104976
|
const spSkill = startSpinner("Bundling .skill package...");
|
|
104978
104977
|
try {
|
|
104979
104978
|
const result = await generateSkill(profile, designMdContent, path16.resolve(opts.out), screenshotPath, ultraAnimations);
|
|
104980
104979
|
skillFilePath = result.skillFile;
|
|
104981
104980
|
succeedSpinner(spSkill, ".skill package", skillFilePath);
|
|
104981
|
+
skillInstalled = installSkillForClaude(result.skillDir, safeName);
|
|
104982
104982
|
} catch (e) {
|
|
104983
104983
|
failSpinner(spSkill, ".skill package", e.message);
|
|
104984
104984
|
throw e;
|
|
@@ -104989,7 +104989,8 @@ program2.name("skillui").description("Reverse-engineer design systems from any p
|
|
|
104989
104989
|
animations: ultraAnimations ?? void 0,
|
|
104990
104990
|
skillFilePath,
|
|
104991
104991
|
designMdPath,
|
|
104992
|
-
projectName: safeName
|
|
104992
|
+
projectName: safeName,
|
|
104993
|
+
skillInstalled
|
|
104993
104994
|
});
|
|
104994
104995
|
} catch (err) {
|
|
104995
104996
|
console.error(`
|
|
@@ -104999,6 +105000,27 @@ program2.name("skillui").description("Reverse-engineer design systems from any p
|
|
|
104999
105000
|
}
|
|
105000
105001
|
});
|
|
105001
105002
|
program2.parse();
|
|
105003
|
+
function installSkillForClaude(skillDir, safeName) {
|
|
105004
|
+
try {
|
|
105005
|
+
const skillMdSrc = path16.join(skillDir, "SKILL.md");
|
|
105006
|
+
if (!fs14.existsSync(skillMdSrc)) return false;
|
|
105007
|
+
let installed = false;
|
|
105008
|
+
const homeDir = process.env.USERPROFILE || process.env.HOME || "";
|
|
105009
|
+
if (homeDir) {
|
|
105010
|
+
const globalDir = path16.join(homeDir, ".claude", "skills");
|
|
105011
|
+
fs14.mkdirSync(globalDir, { recursive: true });
|
|
105012
|
+
fs14.copyFileSync(skillMdSrc, path16.join(globalDir, `${safeName}.md`));
|
|
105013
|
+
installed = true;
|
|
105014
|
+
}
|
|
105015
|
+
const localDir = path16.join(process.cwd(), ".claude", "skills");
|
|
105016
|
+
fs14.mkdirSync(localDir, { recursive: true });
|
|
105017
|
+
fs14.copyFileSync(skillMdSrc, path16.join(localDir, `${safeName}.md`));
|
|
105018
|
+
installed = true;
|
|
105019
|
+
return installed;
|
|
105020
|
+
} catch {
|
|
105021
|
+
return false;
|
|
105022
|
+
}
|
|
105023
|
+
}
|
|
105002
105024
|
/*! Bundled license information:
|
|
105003
105025
|
|
|
105004
105026
|
tmp/lib/tmp.js:
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "skillui",
|
|
3
|
-
"version": "1.1.
|
|
3
|
+
"version": "1.1.6",
|
|
4
4
|
"description": "Reverse-engineer design systems from any website, repo, or project. Extracts colors, fonts, spacing, animations, and components — packaged as a .skill file for Claude. Pure static analysis, zero AI, zero API keys.",
|
|
5
5
|
"main": "dist/cli.js",
|
|
6
6
|
"bin": {
|