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 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 `_local/ds/<slug>/` e injeta
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 _local/ds/<slug>/
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 `_local/ds/<slug>/`:
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 _local/ds/<slug>/. */
5
+ /** Lê os DSs instalados a partir dos .lock em _synthesisui/ds/<slug>/. */
6
6
  async function readInstalled(projectRoot) {
7
- const dsDir = join(projectRoot, "_local", "ds");
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: \`_local/ds/${ds.slug}/GUIDE.md\``)
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
 
@@ -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 `_local/ds/<slug>/` e atualiza o CLAUDE.md.
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, "_local", "ds", payload.slug);
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} → _local/ds/${payload.slug}/`);
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 "_local/ds/${payload.slug}/tokens.css" no seu CSS global`);
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 _local/ds/${payload.slug}/GUIDE.md`);
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 "./_local/ds/${slug}/tokens.css";
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 \`_local/ds/${slug}/\`: ${artifactList}, \`design-system.json\` (verdade canônica), \`GUIDE.md\` (este arquivo).
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 _local/ds/<slug>/
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.0",
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": ["dist"],
9
+ "files": [
10
+ "dist"
11
+ ],
10
12
  "keywords": [
11
13
  "synthesisui",
12
14
  "design-system",