synthesisui 0.1.0 → 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 +3 -3
- package/dist/claude-md.js +6 -4
- package/dist/commands/add.js +5 -5
- package/dist/guide.js +12 -2
- package/dist/index.js +1 -1
- package/package.json +4 -2
package/README.md
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
# synthesisui
|
|
2
2
|
|
|
3
3
|
CLI para trazer design systems publicados no [SynthesisUI](https://www.synthesisui.com)
|
|
4
|
-
para dentro de qualquer projeto. Materializa o sistema em `
|
|
4
|
+
para dentro de qualquer projeto. Materializa o sistema em `_synthesisui/ds/<slug>/` e injeta
|
|
5
5
|
um bloco gerenciado no `CLAUDE.md` da raiz, de forma que o Claude Code construa
|
|
6
6
|
componentes seguindo o design system.
|
|
7
7
|
|
|
@@ -12,7 +12,7 @@ Sem instalar nada:
|
|
|
12
12
|
```bash
|
|
13
13
|
npx synthesisui login # conecta o CLI à sua conta (device-flow no browser)
|
|
14
14
|
npx synthesisui list # lista os design systems disponíveis
|
|
15
|
-
npx synthesisui add <slug> # traz um DS para
|
|
15
|
+
npx synthesisui add <slug> # traz um DS para _synthesisui/ds/<slug>/
|
|
16
16
|
```
|
|
17
17
|
|
|
18
18
|
Ou instale globalmente:
|
|
@@ -24,7 +24,7 @@ synthesisui add halogen
|
|
|
24
24
|
|
|
25
25
|
### O que o `add` materializa
|
|
26
26
|
|
|
27
|
-
Em `
|
|
27
|
+
Em `_synthesisui/ds/<slug>/`:
|
|
28
28
|
|
|
29
29
|
- `design-system.json` — a verdade canônica do design system
|
|
30
30
|
- `tokens.css` — CSS custom properties escopadas por `data-ds`
|
package/dist/claude-md.js
CHANGED
|
@@ -2,9 +2,9 @@ import { readdir, readFile, writeFile } from "node:fs/promises";
|
|
|
2
2
|
import { join } from "node:path";
|
|
3
3
|
const START = "<!-- synthesisui:start -->";
|
|
4
4
|
const END = "<!-- synthesisui:end -->";
|
|
5
|
-
/** Lê os DSs instalados a partir dos .lock em
|
|
5
|
+
/** Lê os DSs instalados a partir dos .lock em _synthesisui/ds/<slug>/. */
|
|
6
6
|
async function readInstalled(projectRoot) {
|
|
7
|
-
const dsDir = join(projectRoot, "
|
|
7
|
+
const dsDir = join(projectRoot, "_synthesisui", "ds");
|
|
8
8
|
let entries = [];
|
|
9
9
|
try {
|
|
10
10
|
const dirents = await readdir(dsDir, { withFileTypes: true });
|
|
@@ -31,14 +31,16 @@ function renderRegion(installed) {
|
|
|
31
31
|
return `${START}\n${END}`;
|
|
32
32
|
}
|
|
33
33
|
const lines = installed
|
|
34
|
-
.map((ds) => `- **${ds.name}** (\`${ds.slug}\`, v${ds.version}) — guia: \`
|
|
34
|
+
.map((ds) => `- **${ds.name}** (\`${ds.slug}\`, v${ds.version}) — guia: \`_synthesisui/ds/${ds.slug}/GUIDE.md\``)
|
|
35
35
|
.join("\n");
|
|
36
36
|
const body = `## Design Systems (via SynthesisUI)
|
|
37
37
|
|
|
38
38
|
Este projeto usa design system(s) trazido(s) pelo \`synthesisui\` CLI. **Ao criar ou editar
|
|
39
39
|
componentes, leia o GUIDE.md do sistema e siga-o:** use apenas tokens semânticos
|
|
40
40
|
(\`var(--ds-color-semantic-*)\`, \`--ds-spacing-*\`, etc.), escope a UI com \`data-ds="<slug>"\`,
|
|
41
|
-
e reaproveite as classes \`.ds-*\`. Não use valores crus fora da escala do sistema.
|
|
41
|
+
e reaproveite as classes \`.ds-*\`. Não use valores crus fora da escala do sistema. **Para revisar um
|
|
42
|
+
componente, crie uma página de amostra isolada (ex.: \`app/synthesisui-samples/<componente>/\`) — não
|
|
43
|
+
aplique a páginas reais de produção a menos que seja pedido.**
|
|
42
44
|
|
|
43
45
|
${lines}
|
|
44
46
|
|
package/dist/commands/add.js
CHANGED
|
@@ -5,14 +5,14 @@ import { resolveRegistry } from "../config.js";
|
|
|
5
5
|
import { buildGuide } from "../guide.js";
|
|
6
6
|
import { fetchDesignSystem } from "../registry.js";
|
|
7
7
|
/**
|
|
8
|
-
* Materializa um DS publicado em `
|
|
8
|
+
* Materializa um DS publicado em `_synthesisui/ds/<slug>/` e atualiza o CLAUDE.md.
|
|
9
9
|
*/
|
|
10
10
|
export async function add(slug, opts) {
|
|
11
11
|
const base = resolveRegistry(opts.registry);
|
|
12
12
|
const projectRoot = opts.dir ?? process.cwd();
|
|
13
13
|
console.log(`→ buscando "${slug}" em ${base} …`);
|
|
14
14
|
const payload = await fetchDesignSystem(base, slug);
|
|
15
|
-
const targetDir = join(projectRoot, "
|
|
15
|
+
const targetDir = join(projectRoot, "_synthesisui", "ds", payload.slug);
|
|
16
16
|
await mkdir(targetDir, { recursive: true });
|
|
17
17
|
// 1. artifacts compilados pelo servidor (tokens.css, e futuros theme.css…)
|
|
18
18
|
for (const [filename, content] of Object.entries(payload.artifacts)) {
|
|
@@ -39,12 +39,12 @@ export async function add(slug, opts) {
|
|
|
39
39
|
"GUIDE.md",
|
|
40
40
|
".lock",
|
|
41
41
|
];
|
|
42
|
-
console.log(`✓ ${payload.name} v${payload.version} →
|
|
42
|
+
console.log(`✓ ${payload.name} v${payload.version} → _synthesisui/ds/${payload.slug}/`);
|
|
43
43
|
console.log(` ${files.join(", ")}`);
|
|
44
44
|
console.log(` CLAUDE.md ${claudeMd.created ? "criado" : "atualizado"} (${claudeMd.count} sistema(s) instalado(s))`);
|
|
45
45
|
console.log("");
|
|
46
46
|
console.log("Próximos passos:");
|
|
47
|
-
console.log(` • @import "
|
|
47
|
+
console.log(` • @import "_synthesisui/ds/${payload.slug}/tokens.css" no seu CSS global`);
|
|
48
48
|
console.log(` • escope sua UI com data-ds="${payload.slug}"`);
|
|
49
|
-
console.log(` • detalhes e regras em
|
|
49
|
+
console.log(` • detalhes e regras em _synthesisui/ds/${payload.slug}/GUIDE.md`);
|
|
50
50
|
}
|
package/dist/guide.js
CHANGED
|
@@ -44,7 +44,7 @@ ${meta.narrative}
|
|
|
44
44
|
|
|
45
45
|
1. Importe os tokens uma vez no CSS global do projeto:
|
|
46
46
|
\`\`\`css
|
|
47
|
-
@import "./
|
|
47
|
+
@import "./_synthesisui/ds/${slug}/tokens.css";
|
|
48
48
|
\`\`\`
|
|
49
49
|
(ajuste o caminho relativo conforme a localização do seu CSS.)
|
|
50
50
|
|
|
@@ -61,7 +61,7 @@ ${hasAlt
|
|
|
61
61
|
\`\`\`
|
|
62
62
|
`
|
|
63
63
|
: ""}
|
|
64
|
-
Artefatos disponíveis em \`
|
|
64
|
+
Artefatos disponíveis em \`_synthesisui/ds/${slug}/\`: ${artifactList}, \`design-system.json\` (verdade canônica), \`GUIDE.md\` (este arquivo).
|
|
65
65
|
|
|
66
66
|
---
|
|
67
67
|
|
|
@@ -83,6 +83,16 @@ Artefatos disponíveis em \`_local/ds/${slug}/\`: ${artifactList}, \`design-syst
|
|
|
83
83
|
|
|
84
84
|
---
|
|
85
85
|
|
|
86
|
+
## Onde testar/preview
|
|
87
|
+
|
|
88
|
+
**Preview isolado, nunca em página real.** Ao criar ou demonstrar um componente, gere uma página de
|
|
89
|
+
amostra dedicada — \`app/synthesisui-samples/<componente>/\` no Next.js App Router (ou a rota/pasta de
|
|
90
|
+
samples equivalente na stack do projeto). **Não** aplique o componente a páginas reais de produção
|
|
91
|
+
(home, layout, rotas existentes) a menos que seja explicitamente pedido. As amostras deixam revisar o
|
|
92
|
+
componente no contexto do design system sem tocar no app.
|
|
93
|
+
|
|
94
|
+
---
|
|
95
|
+
|
|
86
96
|
## Componentes prontos
|
|
87
97
|
|
|
88
98
|
Cada recipe vira uma classe \`.ds-<nome>\` (dentro do escopo \`[data-ds="${slug}"]\`).
|
package/dist/index.js
CHANGED
|
@@ -8,7 +8,7 @@ const HELP = `synthesisui — traz design systems do SynthesisUI para o seu proj
|
|
|
8
8
|
Uso:
|
|
9
9
|
synthesisui login [opções] conecta o CLI à sua conta (device-flow)
|
|
10
10
|
synthesisui list [opções] lista os DSs publicados
|
|
11
|
-
synthesisui add <slug> [opções] materializa um DS em
|
|
11
|
+
synthesisui add <slug> [opções] materializa um DS em _synthesisui/ds/<slug>/
|
|
12
12
|
|
|
13
13
|
Opções:
|
|
14
14
|
--registry <url> URL do registry (ou env SYNTHESISUI_REGISTRY_URL)
|
package/package.json
CHANGED
|
@@ -1,12 +1,14 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "synthesisui",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.2",
|
|
4
4
|
"description": "Traz design systems do SynthesisUI para qualquer projeto (materializa em _local/ds/).",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|
|
7
7
|
"synthesisui": "dist/index.js"
|
|
8
8
|
},
|
|
9
|
-
"files": [
|
|
9
|
+
"files": [
|
|
10
|
+
"dist"
|
|
11
|
+
],
|
|
10
12
|
"keywords": [
|
|
11
13
|
"synthesisui",
|
|
12
14
|
"design-system",
|