synthesisui 0.4.10 → 0.4.11

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.
@@ -90,7 +90,9 @@ export async function clean(opts) {
90
90
  // 4. Default README.
91
91
  const readmePath = join(root, "README.md");
92
92
  const readmeSrc = await readIf(readmePath);
93
- if (readmeSrc && /create-next-app/.test(readmeSrc) && /Getting Started/.test(readmeSrc)) {
93
+ if (readmeSrc &&
94
+ /create-next-app/.test(readmeSrc) &&
95
+ /Getting Started/.test(readmeSrc)) {
94
96
  actions.push({
95
97
  verb: "remove",
96
98
  path: "README.md",
@@ -16,14 +16,15 @@ export async function template(slug, name, opts) {
16
16
  const target = opts.target === "general" || opts.target === "next"
17
17
  ? opts.target
18
18
  : config.target;
19
- console.log(`→ generating "${name}" from "${slug}" (${target}) …`);
20
- const generated = await fetchTemplate(base, slug, name, target, opts.version);
19
+ const asName = opts.as && /^[a-z0-9]+(?:-[a-z0-9]+)*$/.test(opts.as) ? opts.as : undefined;
20
+ console.log(`→ generating "${name}"${asName ? ` as "${asName}"` : ""} from "${slug}" (${target}) …`);
21
+ const generated = await fetchTemplate(base, slug, name, target, opts.version, asName);
21
22
  // --out targets the page (1st file); sibling files (e.g. the CSS) land in the
22
23
  // same directory. Without --out, everything goes under templates/<name>/ -
23
24
  // a loose landing.tsx at the app/ root read as a route without being one,
24
25
  // and a second template turned the app dir into soup.
25
26
  const [pageFile, ...siblings] = generated.files;
26
- const defaultDir = join("templates", name);
27
+ const defaultDir = join("templates", asName ?? name);
27
28
  const pageRel = opts.out ?? join(defaultDir, pageFile.filename);
28
29
  const pageDir = dirname(join(root, pageRel));
29
30
  await mkdir(pageDir, { recursive: true });
package/dist/index.js CHANGED
@@ -21,6 +21,7 @@ Usage - deterministic, FREE:
21
21
  synthesisui add <slug> [options] materialize a DS into _synthesisui/ds/<slug>/
22
22
  synthesisui component <slug> <name> bring one EXISTING component in as YOUR <Pascal>.tsx
23
23
  synthesisui template <slug> <name> materialize a whole page from a DS template
24
+ (--as landing-home names the output - multi-page safe)
24
25
  synthesisui upgrade <slug> update an installed DS + regenerate your components + migration brief
25
26
  synthesisui use <slug> "<intent>" print a ready-to-paste agent prompt to build/modify on-system
26
27
  synthesisui clean [--force] strip create-next-app boilerplate (dry run without --force)
@@ -178,7 +179,15 @@ async function main() {
178
179
  }
179
180
  const target = typeof flags.target === "string" ? flags.target : undefined;
180
181
  const out = typeof flags.out === "string" ? flags.out : undefined;
181
- await template(slug, name, { registry, dir, out, target, version });
182
+ const as_ = typeof flags.as === "string" ? flags.as : undefined;
183
+ await template(slug, name, {
184
+ registry,
185
+ dir,
186
+ out,
187
+ target,
188
+ version,
189
+ as: as_,
190
+ });
182
191
  break;
183
192
  }
184
193
  case "component": {
package/dist/registry.js CHANGED
@@ -46,12 +46,14 @@ export async function fetchDesignSystem(base, slug, version) {
46
46
  * Fetches a whole page generated from a DS template (`?template=&target=`). The
47
47
  * server codegens it from `document.layouts[<template>]`; the CLI just writes it.
48
48
  */
49
- export async function fetchTemplate(base, slug, template, target, version) {
49
+ export async function fetchTemplate(base, slug, template, target, version, as_) {
50
50
  const url = new URL(`${base}/api/registry/ds/${encodeURIComponent(slug)}`);
51
51
  url.searchParams.set("template", template);
52
52
  url.searchParams.set("target", target);
53
53
  if (version != null)
54
54
  url.searchParams.set("version", String(version));
55
+ if (as_)
56
+ url.searchParams.set("as", as_);
55
57
  const res = await request(url.toString());
56
58
  if (res.status === 404) {
57
59
  const body = (await res.json().catch(() => ({})));
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "synthesisui",
3
- "version": "0.4.10",
3
+ "version": "0.4.11",
4
4
  "description": "Traz design systems do SynthesisUI para qualquer projeto (materializa em _local/ds/).",
5
5
  "type": "module",
6
6
  "bin": {