@duro-app/cli 5.14.0 → 5.16.0
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 +20 -6
- package/dist/bin.js +10 -3
- package/dist/bin.js.map +1 -1
- package/dist/commands/doctor.d.ts +7 -1
- package/dist/commands/doctor.d.ts.map +1 -1
- package/dist/commands/doctor.js +25 -12
- package/dist/commands/doctor.js.map +1 -1
- package/dist/commands/mcp.d.ts +45 -0
- package/dist/commands/mcp.d.ts.map +1 -1
- package/dist/commands/mcp.js +36 -1
- package/dist/commands/mcp.js.map +1 -1
- package/dist/commands/mockup.d.ts +33 -5
- package/dist/commands/mockup.d.ts.map +1 -1
- package/dist/commands/mockup.js +167 -13
- package/dist/commands/mockup.js.map +1 -1
- package/dist/manifest.d.ts +2 -0
- package/dist/manifest.d.ts.map +1 -1
- package/dist/manifest.js +18 -6
- package/dist/manifest.js.map +1 -1
- package/dist/skill-template.d.ts +1 -1
- package/dist/skill-template.d.ts.map +1 -1
- package/dist/skill-template.js +20 -9
- package/dist/skill-template.js.map +1 -1
- package/package.json +5 -5
- package/registry.json +33 -0
package/dist/commands/mockup.js
CHANGED
|
@@ -1,8 +1,10 @@
|
|
|
1
|
-
import { existsSync, mkdirSync, readFileSync, writeFileSync } from 'node:fs';
|
|
2
|
-
import { join, resolve } from 'node:path';
|
|
1
|
+
import { existsSync, mkdirSync, readdirSync, readFileSync, statSync, writeFileSync } from 'node:fs';
|
|
2
|
+
import { dirname, join, relative, resolve } from 'node:path';
|
|
3
3
|
import { lookup } from '../registry.js';
|
|
4
4
|
import { suggestions } from '../search.js';
|
|
5
5
|
import { lineOf } from '../scan.js';
|
|
6
|
+
import { MOCKUP_SUBCOMMANDS } from '../manifest.js';
|
|
7
|
+
import { uiVersionSkew } from './doctor.js';
|
|
6
8
|
/*
|
|
7
9
|
* duro mockup — token-seeded artboards, and the check that makes one a
|
|
8
10
|
* handoff contract.
|
|
@@ -13,7 +15,9 @@ import { lineOf } from '../scan.js';
|
|
|
13
15
|
* palette). `seed` writes an artboard whose only design vocabulary is the
|
|
14
16
|
* resolved token block, so the artboard is written in token names from the
|
|
15
17
|
* first line; `check` refuses an artboard that reaches past them, and refuses
|
|
16
|
-
* one that does not say which design-system component each control is
|
|
18
|
+
* one that does not say which design-system component each control is;
|
|
19
|
+
* `canvas` puts the directions side by side on one page for the person to
|
|
20
|
+
* pick from, and builds it only from artboards that pass `check`.
|
|
17
21
|
*
|
|
18
22
|
* What binds when a direction is chosen: layout, hierarchy, states, the
|
|
19
23
|
* data-duro component map and the token names — sizes and border widths
|
|
@@ -22,15 +26,15 @@ import { lineOf } from '../scan.js';
|
|
|
22
26
|
*/
|
|
23
27
|
export const TOKENS_START = '/* duro:tokens start */';
|
|
24
28
|
export const TOKENS_END = '/* duro:tokens end */';
|
|
25
|
-
/** The artboard size the
|
|
29
|
+
/** The artboard size, on the root element and in the review canvas's frames. */
|
|
26
30
|
export const ARTBOARD_WIDTH = 1120;
|
|
27
31
|
export const ARTBOARD_HEIGHT = 840;
|
|
28
32
|
export const MOCKUP_THEMES = ['dark', 'light', 'high-contrast'];
|
|
29
33
|
// ---------------------------------------------------------------------------
|
|
30
34
|
// seed
|
|
31
35
|
/**
|
|
32
|
-
* The artboard skeleton
|
|
33
|
-
*
|
|
36
|
+
* The artboard skeleton: support.js verbatim, one <x-dc>, one
|
|
37
|
+
* <helmet><style>. Everything a
|
|
34
38
|
* finished artboard adds goes inside the same style block and the root div.
|
|
35
39
|
*/
|
|
36
40
|
export function seedArtboard(registry, name, theme) {
|
|
@@ -450,20 +454,165 @@ export function runMockupCheck(registry, files, options = {}) {
|
|
|
450
454
|
}
|
|
451
455
|
all.push(...checkArtboard(registry, file, source));
|
|
452
456
|
}
|
|
453
|
-
const lines = all.map(
|
|
457
|
+
const lines = all.map(findingLine);
|
|
458
|
+
const skew = uiVersionSkew(cwd);
|
|
459
|
+
const note = skew ? `\n${skewNote(skew, `mockup check ${files.join(' ')}`)}` : '';
|
|
454
460
|
if (all.length === 0) {
|
|
455
461
|
return {
|
|
456
|
-
text: `duro mockup check: ${files.length} artboard(s) speak tokens and name their components`,
|
|
457
|
-
data: { ok: true, files, findings: [] },
|
|
462
|
+
text: `duro mockup check: ${files.length} artboard(s) speak tokens and name their components${note}`,
|
|
463
|
+
data: { ok: true, files, findings: [], ...(skew && { skew }) },
|
|
458
464
|
};
|
|
459
465
|
}
|
|
460
466
|
return {
|
|
461
|
-
text: `duro mockup check: ${all.length} finding(s)\n${lines.join('\n')}`,
|
|
462
|
-
data: { ok: false, files, findings: all },
|
|
467
|
+
text: `duro mockup check: ${all.length} finding(s)\n${lines.join('\n')}${note}`,
|
|
468
|
+
data: { ok: false, files, findings: all, ...(skew && { skew }) },
|
|
463
469
|
exitCode: 1,
|
|
464
470
|
};
|
|
465
471
|
}
|
|
466
|
-
const
|
|
472
|
+
const findingLine = (f) => `${f.file}:${f.line} ${f.rule}: ${f.message}`;
|
|
473
|
+
/**
|
|
474
|
+
* doctor's version-skew finding, said where it explains a finding: a checker
|
|
475
|
+
* older than the app reports a component it has not heard of as unknown. npx
|
|
476
|
+
* keeps a cached CLI that satisfies a range, so this is not hypothetical.
|
|
477
|
+
*/
|
|
478
|
+
function skewNote(skew, command) {
|
|
479
|
+
return `note: @duro-app/ui is ${skew.installed}, but this checker knows ${skew.own} — a component newer than the checker reads as unknown. Run: npx -y @duro-app/cli@${skew.installed} ${command}`;
|
|
480
|
+
}
|
|
481
|
+
// ---------------------------------------------------------------------------
|
|
482
|
+
// canvas
|
|
483
|
+
const ARTBOARD_SUFFIX = '.dc.html';
|
|
484
|
+
/** The artboard's own canvas size, from the seeded custom properties. */
|
|
485
|
+
function artboardSize(html) {
|
|
486
|
+
const width = /--duro-mockup-canvas-width:\s*(\d+)px/.exec(html);
|
|
487
|
+
const height = /--duro-mockup-canvas-height:\s*(\d+)px/.exec(html);
|
|
488
|
+
return {
|
|
489
|
+
width: width ? Number(width[1]) : ARTBOARD_WIDTH,
|
|
490
|
+
height: height ? Number(height[1]) : ARTBOARD_HEIGHT,
|
|
491
|
+
};
|
|
492
|
+
}
|
|
493
|
+
const escapeHtml = (text) => text.replace(/&/g, '&').replace(/</g, '<').replace(/>/g, '>').replace(/"/g, '"');
|
|
494
|
+
/**
|
|
495
|
+
* An artboard as the page inlines it: without the seed's relative support.js,
|
|
496
|
+
* which a srcdoc frame cannot load and the page does not need.
|
|
497
|
+
*/
|
|
498
|
+
const inlineable = (html) => html.replace(/<script src="\.\/support\.js"><\/script>\n?/g, '');
|
|
499
|
+
/** `Tree-Phone.dc.html` is direction `Tree`; `Main` sorts first, then by name. */
|
|
500
|
+
function directions(artboards) {
|
|
501
|
+
const stem = (a) => a.file.split('/').pop().replace(ARTBOARD_SUFFIX, '');
|
|
502
|
+
const groups = new Map();
|
|
503
|
+
for (const artboard of artboards) {
|
|
504
|
+
const key = stem(artboard).split('-')[0];
|
|
505
|
+
groups.set(key, [...(groups.get(key) ?? []), artboard]);
|
|
506
|
+
}
|
|
507
|
+
const rank = (key) => (key === 'Main' ? '' : key);
|
|
508
|
+
return [...groups.entries()]
|
|
509
|
+
.sort(([a], [b]) => rank(a).localeCompare(rank(b)))
|
|
510
|
+
.map(([key, group]) => [key, group.sort((a, b) => stem(a).localeCompare(stem(b)))]);
|
|
511
|
+
}
|
|
512
|
+
/**
|
|
513
|
+
* The review page: every direction side by side, each artboard inlined by
|
|
514
|
+
* srcdoc so the page is one file (an Artifact needs no supporting files, and
|
|
515
|
+
* a local copy opens from disk). The frames are sandboxed: an artboard is
|
|
516
|
+
* untrusted HTML (the MCP tool takes it from the caller) and needs no script. Nothing is built while an artboard fails the
|
|
517
|
+
* check: the person picks from contracts, not from sketches that drift.
|
|
518
|
+
*/
|
|
519
|
+
export function buildCanvas(registry, artboards, options) {
|
|
520
|
+
const findings = artboards.flatMap((a) => checkArtboard(registry, a.file, a.html));
|
|
521
|
+
if (findings.length > 0)
|
|
522
|
+
return { html: null, findings };
|
|
523
|
+
const title = escapeHtml(options.title ?? 'Mockup directions');
|
|
524
|
+
const sections = directions(artboards).map(([key, group], index) => {
|
|
525
|
+
const letter = String.fromCharCode(65 + (index % 26));
|
|
526
|
+
const figures = group.map((artboard) => {
|
|
527
|
+
const { width, height } = artboardSize(artboard.html);
|
|
528
|
+
const name = escapeHtml(artboard.file.split('/').pop());
|
|
529
|
+
return `<figure>
|
|
530
|
+
<div class="frame" style="aspect-ratio: ${width} / ${height}"><iframe title="${name}" width="${width}" height="${height}" data-width="${width}" style="transform: scale(0.5)" sandbox="" srcdoc="${escapeHtml(inlineable(artboard.html))}"></iframe></div>
|
|
531
|
+
<figcaption>${name} · ${width}×${height}</figcaption>
|
|
532
|
+
</figure>`;
|
|
533
|
+
});
|
|
534
|
+
return `<section>\n<h2>${letter} · ${escapeHtml(key)}</h2>\n<div class="grid">\n${figures.join('\n')}\n</div>\n</section>`;
|
|
535
|
+
});
|
|
536
|
+
const html = `<!doctype html>
|
|
537
|
+
<html lang="en">
|
|
538
|
+
<head>
|
|
539
|
+
<meta charset="utf-8">
|
|
540
|
+
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
541
|
+
<title>${title}</title>
|
|
542
|
+
<!-- GENERATED by duro mockup canvas: regenerate it, never edit it. -->
|
|
543
|
+
<style>
|
|
544
|
+
/* The page's own chrome, not a Duro surface: self-contained, themed by system colours. */
|
|
545
|
+
:root { color-scheme: light dark; --gap: 16px; }
|
|
546
|
+
body { margin: 0; padding: var(--gap); background: Canvas; color: CanvasText; font: 14px/1.5 system-ui, sans-serif; }
|
|
547
|
+
h1 { font-size: 20px; margin: 0 0 4px; }
|
|
548
|
+
h2 { font-size: 14px; margin: 32px 0 8px; text-transform: uppercase; letter-spacing: 0.04em; }
|
|
549
|
+
p { margin: 0; opacity: 0.75; }
|
|
550
|
+
.grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 420px), 1fr)); gap: var(--gap); }
|
|
551
|
+
figure { margin: 0; min-width: 0; }
|
|
552
|
+
.frame { position: relative; width: 100%; overflow: hidden; border: 1px solid GrayText; border-radius: 8px; }
|
|
553
|
+
.frame iframe { position: absolute; inset: 0 auto auto 0; border: 0; transform-origin: 0 0; }
|
|
554
|
+
figcaption { margin-top: 4px; font-size: 12px; opacity: 0.75; }
|
|
555
|
+
</style>
|
|
556
|
+
</head>
|
|
557
|
+
<body>
|
|
558
|
+
<h1>${title}</h1>
|
|
559
|
+
<p>Pick one direction by its letter. Sizes, colours and the component map are the contract; positions are a sketch.</p>
|
|
560
|
+
${sections.join('\n')}
|
|
561
|
+
<script>
|
|
562
|
+
// Scale each artboard to its frame's width; 0.5 stands until this runs.
|
|
563
|
+
const fit = () => document.querySelectorAll('.frame iframe').forEach((f) => {
|
|
564
|
+
f.style.transform = 'scale(' + f.parentElement.clientWidth / Number(f.dataset.width) + ')'
|
|
565
|
+
})
|
|
566
|
+
new ResizeObserver(fit).observe(document.body)
|
|
567
|
+
fit()
|
|
568
|
+
</script>
|
|
569
|
+
</body>
|
|
570
|
+
</html>
|
|
571
|
+
`;
|
|
572
|
+
return { html, findings: [] };
|
|
573
|
+
}
|
|
574
|
+
export function runMockupCanvas(registry, dir, options = {}) {
|
|
575
|
+
if (!dir)
|
|
576
|
+
return usage('duro mockup canvas: give the directory holding the *.dc.html artboards');
|
|
577
|
+
const cwd = options.cwd ?? process.cwd();
|
|
578
|
+
const abs = resolve(cwd, dir);
|
|
579
|
+
if (!existsSync(abs) || !statSync(abs).isDirectory()) {
|
|
580
|
+
return usage(`duro mockup canvas: ${dir} is not a directory`);
|
|
581
|
+
}
|
|
582
|
+
const files = readdirSync(abs)
|
|
583
|
+
.filter((name) => name.endsWith(ARTBOARD_SUFFIX))
|
|
584
|
+
.sort();
|
|
585
|
+
if (files.length === 0)
|
|
586
|
+
return usage(`duro mockup canvas: no *${ARTBOARD_SUFFIX} in ${dir}`);
|
|
587
|
+
const artboards = files.map((name) => ({
|
|
588
|
+
file: join(dir, name),
|
|
589
|
+
html: readFileSync(join(abs, name), 'utf8'),
|
|
590
|
+
}));
|
|
591
|
+
const title = options.title ?? `${abs.split('/').pop()} directions`;
|
|
592
|
+
const { html, findings } = buildCanvas(registry, artboards, { title });
|
|
593
|
+
const skew = uiVersionSkew(cwd);
|
|
594
|
+
const note = skew ? `\n${skewNote(skew, `mockup canvas ${dir}`)}` : '';
|
|
595
|
+
if (html === null) {
|
|
596
|
+
return {
|
|
597
|
+
text: `duro mockup canvas: ${findings.length} finding(s) — fix them, then build the page\n${findings.map(findingLine).join('\n')}${note}`,
|
|
598
|
+
data: { ok: false, findings, ...(skew && { skew }) },
|
|
599
|
+
exitCode: 1,
|
|
600
|
+
};
|
|
601
|
+
}
|
|
602
|
+
const out = options.out ?? join(dir, 'canvas.html');
|
|
603
|
+
mkdirSync(dirname(resolve(cwd, out)), { recursive: true });
|
|
604
|
+
writeFileSync(resolve(cwd, out), html, 'utf8');
|
|
605
|
+
return {
|
|
606
|
+
text: `duro mockup canvas: ${relative(cwd, resolve(cwd, out))} — ${files.length} artboard(s). Publish it as the Artifact, or open it locally.${note}`,
|
|
607
|
+
data: {
|
|
608
|
+
ok: true,
|
|
609
|
+
path: relative(cwd, resolve(cwd, out)),
|
|
610
|
+
artboards: files.length,
|
|
611
|
+
...(skew && { skew }),
|
|
612
|
+
},
|
|
613
|
+
};
|
|
614
|
+
}
|
|
615
|
+
export { MOCKUP_SUBCOMMANDS };
|
|
467
616
|
export function runMockup(registry, sub, rest, options) {
|
|
468
617
|
if (sub === 'seed') {
|
|
469
618
|
if (rest.length > 0)
|
|
@@ -472,6 +621,11 @@ export function runMockup(registry, sub, rest, options) {
|
|
|
472
621
|
}
|
|
473
622
|
if (sub === 'check')
|
|
474
623
|
return runMockupCheck(registry, rest, options);
|
|
475
|
-
|
|
624
|
+
if (sub === 'canvas') {
|
|
625
|
+
if (rest.length > 1)
|
|
626
|
+
return usage('duro mockup canvas takes one directory');
|
|
627
|
+
return runMockupCanvas(registry, rest[0], options);
|
|
628
|
+
}
|
|
629
|
+
return usage(`duro mockup: unknown subcommand "${sub ?? ''}" — expected ${MOCKUP_SUBCOMMANDS.join(' | ')}`);
|
|
476
630
|
}
|
|
477
631
|
//# sourceMappingURL=mockup.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mockup.js","sourceRoot":"","sources":["../../src/commands/mockup.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"mockup.js","sourceRoot":"","sources":["../../src/commands/mockup.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,UAAU,EAAE,SAAS,EAAE,WAAW,EAAE,YAAY,EAAE,QAAQ,EAAE,aAAa,EAAC,MAAM,SAAS,CAAA;AACjG,OAAO,EAAC,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAC,MAAM,WAAW,CAAA;AAG1D,OAAO,EAAC,MAAM,EAAC,MAAM,gBAAgB,CAAA;AACrC,OAAO,EAAC,WAAW,EAAC,MAAM,cAAc,CAAA;AACxC,OAAO,EAAC,MAAM,EAAC,MAAM,YAAY,CAAA;AACjC,OAAO,EAAC,kBAAkB,EAAC,MAAM,gBAAgB,CAAA;AACjD,OAAO,EAAC,aAAa,EAAC,MAAM,aAAa,CAAA;AAEzC;;;;;;;;;;;;;;;;;;GAkBG;AAEH,MAAM,CAAC,MAAM,YAAY,GAAG,yBAAyB,CAAA;AACrD,MAAM,CAAC,MAAM,UAAU,GAAG,uBAAuB,CAAA;AAEjD,gFAAgF;AAChF,MAAM,CAAC,MAAM,cAAc,GAAG,IAAI,CAAA;AAClC,MAAM,CAAC,MAAM,eAAe,GAAG,GAAG,CAAA;AAElC,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,MAAM,EAAE,OAAO,EAAE,eAAe,CAAU,CAAA;AA2CxE,8EAA8E;AAC9E,OAAO;AAEP;;;;GAIG;AACH,MAAM,UAAU,YAAY,CAAC,QAAkB,EAAE,IAAY,EAAE,KAAkB;IAC/E,MAAM,SAAS,GAAG,KAAK,KAAK,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,gBAAgB,KAAK,GAAG,CAAA;IAClE,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,OAAO,EAAE,CAAA;IAClD,OAAO;OACF,SAAS;;;;;;;;;EASd,YAAY;EACZ,MAAM;;sCAE8B,cAAc,oCAAoC,eAAe;EACrG,UAAU;;;KAGP,IAAI;;;;;;;yBAOgB,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAiC5B,CAAA;AACD,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,QAAkB,EAAE,UAAuB,EAAE;IACzE,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,EAAE,CAAA;IACxC,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,IAAI,MAAM,CAAA;IACnC,IAAI,CAAC,yBAAyB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QAC1C,OAAO,KAAK,CAAC,2DAA2D,IAAI,GAAG,CAAC,CAAA;IAClF,CAAC;IACD,MAAM,KAAK,GAAG,CAAC,OAAO,CAAC,KAAK,IAAI,MAAM,CAAgB,CAAA;IACtD,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QACnC,OAAO,KAAK,CACV,4CAA4C,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,KAAK,GAAG,CACxF,CAAA;IACH,CAAC;IACD,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,IAAI,IAAI,CAAC,MAAM,EAAE,SAAS,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC,CAAA;IACtE,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,UAAU,CAAC,CAAA;IACzC,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,CAAA;IAC9B,IAAI,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QACpB,OAAO;YACL,IAAI,EAAE,qBAAqB,IAAI,sDAAsD;YACrF,IAAI,EAAE,EAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAC;YAC5B,QAAQ,EAAE,CAAC;SACZ,CAAA;IACH,CAAC;IACD,SAAS,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,EAAC,SAAS,EAAE,IAAI,EAAC,CAAC,CAAA;IAC/C,aAAa,CAAC,GAAG,EAAE,YAAY,CAAC,QAAQ,EAAE,IAAI,EAAE,KAAK,CAAC,EAAE,MAAM,CAAC,CAAA;IAC/D,OAAO;QACL,IAAI,EAAE;YACJ,UAAU,IAAI,KAAK,KAAK,IAAI;YAC5B,yEAAyE;YACzE,2BAA2B,IAAI,wDAAwD;SACxF,CAAC,IAAI,CAAC,IAAI,CAAC;QACZ,IAAI,EAAE,EAAC,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAC;KAC9B,CAAA;AACH,CAAC;AAED,8EAA8E;AAC9E,QAAQ;AAER,oEAAoE;AACpE,MAAM,aAAa,GACjB,gFAAgF,CAAA;AAClF,MAAM,YAAY,GAAG,kCAAkC,CAAA;AACvD,MAAM,UAAU,GAAG,4CAA4C,CAAA;AAC/D,MAAM,YAAY,GAAG,cAAc,CAAA;AACnC,MAAM,UAAU,GAAG,mEAAmE,CAAA;AACtF,6EAA6E;AAC7E,oFAAoF;AACpF,MAAM,kBAAkB,GACtB,qGAAqG,CAAA;AACvG,MAAM,UAAU,GAAG,8BAA8B,CAAA;AACjD,MAAM,YAAY,GAChB,sHAAsH,CAAA;AAExH,MAAM,aAAa,GAAG,0CAA0C,CAAA;AAChE,MAAM,cAAc,GAAG,2CAA2C,CAAA;AAClE,MAAM,cAAc,GAAG,wBAAwB,CAAA;AAC/C,MAAM,gBAAgB,GACpB,iFAAiF,CAAA;AAEnF,gFAAgF;AAChF,MAAM,eAAe,GAAG,IAAI,GAAG,CAAC,CAAC,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,GAAG,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAA;AAClG,MAAM,aAAa,GAAG,IAAI,GAAG,CAAC;IAC5B,MAAM;IACN,MAAM;IACN,IAAI;IACJ,KAAK;IACL,OAAO;IACP,IAAI;IACJ,KAAK;IACL,OAAO;IACP,MAAM;IACN,MAAM;IACN,QAAQ;IACR,OAAO;IACP,KAAK;CACN,CAAC,CAAA;AAEF,SAAS,KAAK,CAAC,IAAY;IACzB,OAAO,EAAC,IAAI,EAAE,IAAI,EAAE,EAAC,IAAI,EAAE,aAAa,EAAC,EAAE,QAAQ,EAAE,CAAC,EAAC,CAAA;AACzD,CAAC;AAED,oFAAoF;AACpF,SAAS,cAAc,CAAC,MAAc;IACpC,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,CAAA;IAC1C,IAAI,KAAK,GAAG,CAAC;QAAE,OAAO,MAAM,CAAA;IAC5B,MAAM,GAAG,GAAG,MAAM,CAAC,OAAO,CAAC,UAAU,EAAE,KAAK,CAAC,CAAA;IAC7C,IAAI,GAAG,GAAG,CAAC;QAAE,OAAO,MAAM,CAAA;IAC1B,MAAM,IAAI,GAAG,GAAG,GAAG,UAAU,CAAC,MAAM,CAAA;IACpC,OAAO,CACL,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,OAAO,CAAC,QAAQ,EAAE,GAAG,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAC/F,CAAA;AACH,CAAC;AAED,mEAAmE;AACnE,SAAS,SAAS,CAAC,GAAW;IAC5B,OAAO,GAAG;SACP,OAAO,CAAC,mBAAmB,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;SAC7D,OAAO,CAAC,eAAe,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAA;AAC1D,CAAC;AASD,gFAAgF;AAChF,SAAS,YAAY,CAAC,GAAW,EAAE,IAAY;IAC7C,MAAM,GAAG,GAAkB,EAAE,CAAA;IAC7B,MAAM,EAAE,GAAG,2CAA2C,CAAA;IACtD,IAAI,CAAyB,CAAA;IAC7B,OAAO,CAAC,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;QAC1B,MAAM,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAA;QAC/B,0EAA0E;QAC1E,qEAAqE;QACrE,+DAA+D;QAC/D,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAA;QAC7D,IAAI,MAAM,IAAI,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;YAAE,SAAQ;QAC7E,GAAG,CAAC,IAAI,CAAC,EAAC,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,IAAI,GAAG,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC,CAAA;IACxE,CAAC;IACD,OAAO,GAAG,CAAA;AACZ,CAAC;AAED,SAAS,OAAO,CACd,IAAY,EACZ,MAAc,EACd,GAAW,EACX,IAAY,EACZ,QAAmB;IAEnB,MAAM,KAAK,GAAG,SAAS,CAAC,GAAG,CAAC,CAAA;IAE5B,qDAAqD;IACrD,KAAK,MAAM,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC;QAC9C,QAAQ,CAAC,IAAI,CAAC;YACZ,IAAI;YACJ,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,IAAI,GAAG,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC;YAC3C,IAAI,EAAE,WAAW;YACjB,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,oEAAoE;SACzG,CAAC,CAAA;IACJ,CAAC;IAED,qEAAqE;IACrE,yCAAyC;IACzC,MAAM,KAAK,GAAG,eAAe,EAAE,CAAA;IAC/B,KAAK,MAAM,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,CAAC;QACjD,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YAC7B,QAAQ,CAAC,IAAI,CAAC;gBACZ,IAAI;gBACJ,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,IAAI,GAAG,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC;gBAC3C,IAAI,EAAE,gBAAgB;gBACtB,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,yCAAyC,CAAC,GAAG,KAAK,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI;aACpF,CAAC,CAAA;QACJ,CAAC;IACH,CAAC;IAED,KAAK,MAAM,EAAC,IAAI,EAAE,KAAK,EAAE,EAAE,EAAC,IAAI,YAAY,CAAC,KAAK,EAAE,IAAI,CAAC,EAAE,CAAC;QAC1D,yEAAyE;QACzE,0EAA0E;QAC1E,wEAAwE;QACxE,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;YAC1B,MAAM,GAAG,GAAG,KAAK;iBACd,KAAK,CAAC,cAAc,CAAC;gBACtB,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAA;YACvE,IAAI,GAAG,EAAE,CAAC;gBACR,QAAQ,CAAC,IAAI,CAAC;oBACZ,IAAI;oBACJ,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,EAAE,CAAC;oBACxB,IAAI,EAAE,YAAY;oBAClB,OAAO,EAAE,GAAG,GAAG,yBAAyB,IAAI,iDAAiD,IAAI,mBAAmB;iBACrH,CAAC,CAAA;YACJ,CAAC;YACD,SAAQ;QACV,CAAC;QACD,2EAA2E;QAC3E,mEAAmE;QACnE,0DAA0D;QAC1D,MAAM,OAAO,GAAG,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC;YACnC,CAAC,CAAC,eAAe;YACjB,CAAC,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC;gBACzD,CAAC,CAAC,iBAAiB;gBACnB,CAAC,CAAC,IAAI,CAAA;QACV,IAAI,OAAO,EAAE,CAAC;YACZ,MAAM,EAAE,GAAG,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,CAAA;YAClC,IAAI,EAAE,IAAI,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC9B,QAAQ,CAAC,IAAI,CAAC;oBACZ,IAAI;oBACJ,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,EAAE,CAAC;oBACxB,IAAI,EAAE,YAAY;oBAClB,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,SAAS,IAAI,eAAe,OAAO,KAAK,eAAe,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,cAAc,gBAAgB,OAAO,SAAS;iBACnI,CAAC,CAAA;YACJ,CAAC;YACD,SAAQ;QACV,CAAC;QACD,MAAM,IAAI,GAAG,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC;YACnC,CAAC,CAAC,kBAAkB;YACpB,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC;gBACvB,CAAC,CAAC,iBAAiB;gBACnB,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC;oBACrB,CAAC,CAAC,2CAA2C;oBAC7C,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC;wBACvB,CAAC,CAAC,iBAAiB;wBACnB,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC;4BACvB,CAAC,CAAC,qCAAqC;4BACvC,CAAC,CAAC,IAAI,CAAA;QAChB,IAAI,CAAC,IAAI;YAAE,SAAQ;QACnB,MAAM,GAAG,GAAG,KAAK,CAAC,KAAK,CAAC,cAAc,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAA;QACpF,MAAM,MAAM,GACV,IAAI,KAAK,aAAa,IAAI,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;QACrF,MAAM,OAAO,GAAG,GAAG,IAAI,MAAM,CAAA;QAC7B,IAAI,OAAO,EAAE,CAAC;YACZ,QAAQ,CAAC,IAAI,CAAC;gBACZ,IAAI;gBACJ,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,EAAE,CAAC;gBACxB,IAAI,EAAE,YAAY;gBAClB,OAAO,EAAE,GAAG,OAAO,SAAS,IAAI,iCAAiC,IAAI,SAAS;aAC/E,CAAC,CAAA;QACJ,CAAC;IACH,CAAC;AACH,CAAC;AAED,IAAI,WAAW,GAAuB,IAAI,CAAA;AAC1C,SAAS,eAAe;IACtB,OAAO,CAAC,WAAW,KAAX,WAAW,GAAK,IAAI,GAAG,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,EAAC,CAAA;AAC/D,CAAC;AAED,SAAS,gBAAgB,CAAC,QAAkB,EAAE,IAAY;IACxD,mEAAmE;IACnE,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAA;IAC9C,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;IACpC,MAAM,GAAG,GAAG,MAAM,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAA;IAClC,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,KAAK,WAAW,IAAI,GAAG,CAAC,IAAI,KAAK,QAAQ,CAAC;QAC7D,OAAO,sBAAsB,IAAI,GAAG,CAAA;IACtC,IAAI,IAAI,IAAI,GAAG,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;QACrC,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,KAAK,CAAA;QAC7B,IAAI,CAAC,KAAK;YAAE,OAAO,GAAG,GAAG,CAAC,GAAG,0BAA0B,IAAI,GAAG,CAAA;QAC9D,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;YAAE,OAAO,GAAG,GAAG,CAAC,GAAG,iBAAiB,IAAI,MAAM,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAA;IAChG,CAAC;IACD,OAAO,IAAI,CAAA;AACb,CAAC;AAOD,SAAS,UAAU,CAAC,IAAY,EAAE,MAAc,EAAE,QAAmB,EAAE,QAAkB;IACvF,8DAA8D;IAC9D,MAAM,KAAK,GAAG,CAAC,CAAS,EAAU,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAA;IAC7D,MAAM,IAAI,GAAG,MAAM;SAChB,OAAO,CAAC,6BAA6B,EAAE,KAAK,CAAC;SAC7C,OAAO,CAAC,kBAAkB,EAAE,KAAK,CAAC,CAAA;IACrC,MAAM,WAAW,GAAG,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,qCAAqC,CAAC,CAAC,CAAA;IAE/E,yEAAyE;IACzE,2EAA2E;IAC3E,uEAAuE;IACvE,0EAA0E;IAC1E,mEAAmE;IACnE,wDAAwD;IACxD,MAAM,MAAM,GAAG,IAAI,GAAG,EAAuB,CAAA;IAC7C,MAAM,KAAK,GAAG,CAAC,GAAW,EAAE,CAAS,EAAQ,EAAE;QAC7C,MAAM,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,IAAI,GAAG,EAAU,CAAA;QAChD,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;QACV,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,CAAA;IACtB,CAAC,CAAA;IACD,KAAK,MAAM,KAAK,IAAI,WAAW,EAAE,CAAC;QAChC,MAAM,GAAG,GAAG,SAAS,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;QAC/C,KAAK,MAAM,IAAI,IAAI,GAAG,CAAC,QAAQ,CAAC,uBAAuB,CAAC,EAAE,CAAC;YACzD,MAAM,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,GAAG,IAAI,CAAA;YAC/B,MAAM,OAAO,GAAG,CAAC,GAAG,QAAQ,CAAC,QAAQ,CAAC,sBAAsB,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;YAC/E,KAAK,MAAM,GAAG,IAAI,OAAO,EAAE,CAAC;gBAC1B,IAAI,sBAAsB,CAAC,IAAI,CAAC,IAAI,CAAC;oBAAE,KAAK,CAAC,GAAG,EAAE,SAAS,CAAC,CAAA;gBAC5D,IAAI,uBAAuB,CAAC,IAAI,CAAC,QAAQ,CAAC;oBAAE,KAAK,CAAC,GAAG,EAAE,OAAO,CAAC,CAAA;gBAC/D,IAAI,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC;oBAAE,KAAK,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAA;gBACxD,IAAI,uBAAuB,CAAC,IAAI,CAAC,IAAI,CAAC;oBAAE,KAAK,CAAC,GAAG,EAAE,SAAS,CAAC,CAAA;gBAC7D,IAAI,yBAAyB,CAAC,IAAI,CAAC,IAAI,CAAC;oBAAE,KAAK,CAAC,GAAG,EAAE,MAAM,CAAC,CAAA;YAC9D,CAAC;QACH,CAAC;IACH,CAAC;IACD,MAAM,cAAc,GAAG,IAAI,GAAG,CAC5B,CAAC,GAAG,MAAM,CAAC;SACR,MAAM,CACL,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CACR,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC;QAChB,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC;QACd,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CACzD;SACA,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CACvB,CAAA;IAED,MAAM,KAAK,GAAc,EAAE,CAAA;IAC3B,IAAI,cAAc,GAAG,CAAC,CAAA;IACtB,MAAM,KAAK,GAAG,+BAA+B,CAAA;IAC7C,IAAI,CAAyB,CAAA;IAC7B,OAAO,CAAC,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;QAC9B,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,GAAG,CAAC,CAAA;QAChC,MAAM,GAAG,GAAG,MAAM,CAAC,WAAW,EAAE,CAAA;QAChC,IAAI,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;YAC3B,uDAAuD;YACvD,MAAM,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,CAAA;YAClD,IAAI,CAAC,IAAI,CAAC;gBAAE,KAAK,CAAC,MAAM,GAAG,CAAC,CAAA;YAC5B,SAAQ;QACV,CAAC;QACD,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,yDAAyD,CAAC,CAAA;QACnF,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;QACrD,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,CAAA;QACpC,IAAI,SAAS,GAAG,KAAK,CAAA;QACrB,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;YAClB,cAAc,EAAE,CAAA;YAChB,SAAS,GAAG,IAAI,CAAA;YAChB,MAAM,OAAO,GAAG,gBAAgB,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAA;YAChD,IAAI,OAAO,EAAE,CAAC;gBACZ,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAA;gBAChD,MAAM,IAAI,GAAG,WAAW,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;gBACpD,QAAQ,CAAC,IAAI,CAAC;oBACZ,IAAI;oBACJ,IAAI;oBACJ,IAAI,EAAE,mBAAmB;oBACzB,OAAO,EAAE,cAAc,IAAI,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,mBAAmB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;iBACtG,CAAC,CAAA;YACJ,CAAC;QACH,CAAC;QAED,MAAM,OAAO,GAAG,KAAK,CAAC,KAAK,CAAC,iDAAiD,CAAC,CAAA;QAC9E,MAAM,SAAS,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,IAAI,OAAO,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;QACnF,MAAM,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC,iDAAiD,CAAC,CAAA;QAC7E,MAAM,SAAS,GAAG,MAAM,EAAE,CAAC,CAAC,CAAC,IAAI,MAAM,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAA;QAClD,IAAI,SAAS,EAAE,CAAC;YACd,MAAM,EAAE,GAAG,CAAC,CAAC,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,CAAA;YAC7C,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,EAAE,EAAE,QAAQ,CAAC,CAAA;QAChD,CAAC;QACD,yEAAyE;QACzE,wEAAwE;QACxE,qEAAqE;QACrE,6CAA6C;QAC7C,MAAM,aAAa,GACjB,uBAAuB,CAAC,IAAI,CAAC,KAAK,CAAC;YACnC,sBAAsB,CAAC,IAAI,CAAC,SAAS,CAAC;YACtC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;QAC9C,MAAM,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAA;QACtC,MAAM,OAAO,GACX,CAAC,SAAS,IAAI,CAAC,aAAa,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,CAAA;QACnF,IAAI,OAAO,EAAE,CAAC;YACZ,QAAQ,CAAC,IAAI,CAAC;gBACZ,IAAI;gBACJ,IAAI;gBACJ,IAAI,EAAE,qBAAqB;gBAC3B,OAAO,EAAE,IAAI,GAAG,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,WAAW,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,gHAAgH;aAC7L,CAAC,CAAA;QACJ,CAAC;QAED,MAAM,WAAW,GAAG,aAAa,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAA;QAClE,IAAI,CAAC,WAAW;YAAE,KAAK,CAAC,IAAI,CAAC,EAAC,GAAG,EAAE,SAAS,EAAC,CAAC,CAAA;IAChD,CAAC;IAED,IAAI,cAAc,KAAK,CAAC,EAAE,CAAC;QACzB,QAAQ,CAAC,IAAI,CAAC;YACZ,IAAI;YACJ,IAAI,EAAE,CAAC;YACP,IAAI,EAAE,kBAAkB;YACxB,OAAO,EACL,wIAAwI;SAC3I,CAAC,CAAA;IACJ,CAAC;AACH,CAAC;AAED,kFAAkF;AAClF,MAAM,UAAU,aAAa,CAAC,QAAkB,EAAE,IAAY,EAAE,MAAc;IAC5E,MAAM,QAAQ,GAAc,EAAE,CAAA;IAC9B,MAAM,MAAM,GAAG,cAAc,CAAC,MAAM,CAAC,CAAA;IACrC,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,QAAQ,CAAC,qCAAqC,CAAC,EAAE,CAAC;QAC3E,MAAM,EAAE,GAAG,CAAC,KAAK,CAAC,KAAK,IAAI,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA;QAC1D,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,QAAQ,CAAC,CAAA;IAC/C,CAAC;IACD,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAA;IAC5C,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAA;IACxE,OAAO,QAAQ,CAAA;AACjB,CAAC;AAED,MAAM,UAAU,cAAc,CAC5B,QAAkB,EAClB,KAAe,EACf,UAAwB,EAAE;IAE1B,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC,qDAAqD,CAAC,CAAA;IAC3F,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,EAAE,CAAA;IACxC,MAAM,GAAG,GAAc,EAAE,CAAA;IACzB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,MAAc,CAAA;QAClB,IAAI,CAAC;YACH,MAAM,GAAG,YAAY,CAAC,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,CAAA;QACnD,CAAC;QAAC,MAAM,CAAC;YACP,OAAO;gBACL,IAAI,EAAE,kCAAkC,IAAI,EAAE;gBAC9C,IAAI,EAAE,EAAC,IAAI,EAAE,WAAW,EAAE,IAAI,EAAC;gBAC/B,QAAQ,EAAE,CAAC;aACZ,CAAA;QACH,CAAC;QACD,GAAG,CAAC,IAAI,CAAC,GAAG,aAAa,CAAC,QAAQ,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC,CAAA;IACpD,CAAC;IACD,MAAM,KAAK,GAAG,GAAG,CAAC,GAAG,CAAC,WAAW,CAAC,CAAA;IAClC,MAAM,IAAI,GAAG,aAAa,CAAC,GAAG,CAAC,CAAA;IAC/B,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,KAAK,QAAQ,CAAC,IAAI,EAAE,gBAAgB,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAA;IACjF,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACrB,OAAO;YACL,IAAI,EAAE,sBAAsB,KAAK,CAAC,MAAM,sDAAsD,IAAI,EAAE;YACpG,IAAI,EAAE,EAAC,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE,EAAE,GAAG,CAAC,IAAI,IAAI,EAAC,IAAI,EAAC,CAAC,EAAC;SAC3D,CAAA;IACH,CAAC;IACD,OAAO;QACL,IAAI,EAAE,sBAAsB,GAAG,CAAC,MAAM,gBAAgB,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,EAAE;QAC/E,IAAI,EAAE,EAAC,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,EAAE,GAAG,CAAC,IAAI,IAAI,EAAC,IAAI,EAAC,CAAC,EAAC;QAC5D,QAAQ,EAAE,CAAC;KACZ,CAAA;AACH,CAAC;AAED,MAAM,WAAW,GAAG,CAAC,CAAU,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,OAAO,EAAE,CAAA;AAEjF;;;;GAIG;AACH,SAAS,QAAQ,CAAC,IAAsC,EAAE,OAAe;IACvE,OAAO,yBAAyB,IAAI,CAAC,SAAS,4BAA4B,IAAI,CAAC,GAAG,qFAAqF,IAAI,CAAC,SAAS,IAAI,OAAO,EAAE,CAAA;AACpM,CAAC;AAED,8EAA8E;AAC9E,SAAS;AAET,MAAM,eAAe,GAAG,UAAU,CAAA;AAElC,yEAAyE;AACzE,SAAS,YAAY,CAAC,IAAY;IAChC,MAAM,KAAK,GAAG,uCAAuC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IAChE,MAAM,MAAM,GAAG,wCAAwC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IAClE,OAAO;QACL,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,cAAc;QAChD,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,eAAe;KACrD,CAAA;AACH,CAAC;AAED,MAAM,UAAU,GAAG,CAAC,IAAY,EAAE,EAAE,CAClC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAA;AAEjG;;;GAGG;AACH,MAAM,UAAU,GAAG,CAAC,IAAY,EAAE,EAAE,CAClC,IAAI,CAAC,OAAO,CAAC,8CAA8C,EAAE,EAAE,CAAC,CAAA;AAElE,kFAAkF;AAClF,SAAS,UAAU,CAAC,SAA2B;IAC7C,MAAM,IAAI,GAAG,CAAC,CAAiB,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAG,CAAC,OAAO,CAAC,eAAe,EAAE,EAAE,CAAC,CAAA;IACzF,MAAM,MAAM,GAAG,IAAI,GAAG,EAA4B,CAAA;IAClD,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;QACjC,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAE,CAAA;QACzC,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAA;IACzD,CAAC;IACD,MAAM,IAAI,GAAG,CAAC,GAAW,EAAE,EAAE,CAAC,CAAC,GAAG,KAAK,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAA;IACzD,OAAO,CAAC,GAAG,MAAM,CAAC,OAAO,EAAE,CAAC;SACzB,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;SAClD,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;AACvF,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,WAAW,CACzB,QAAkB,EAClB,SAA2B,EAC3B,OAAyB;IAEzB,MAAM,QAAQ,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,aAAa,CAAC,QAAQ,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAA;IAClF,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,EAAC,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAC,CAAA;IACtD,MAAM,KAAK,GAAG,UAAU,CAAC,OAAO,CAAC,KAAK,IAAI,mBAAmB,CAAC,CAAA;IAC9D,MAAM,QAAQ,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,KAAK,EAAE,EAAE;QACjE,MAAM,MAAM,GAAG,MAAM,CAAC,YAAY,CAAC,EAAE,GAAG,CAAC,KAAK,GAAG,EAAE,CAAC,CAAC,CAAA;QACrD,MAAM,OAAO,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE;YACrC,MAAM,EAAC,KAAK,EAAE,MAAM,EAAC,GAAG,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAA;YACnD,MAAM,IAAI,GAAG,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAG,CAAC,CAAA;YACxD,OAAO;0CAC6B,KAAK,MAAM,MAAM,oBAAoB,IAAI,YAAY,KAAK,aAAa,MAAM,iBAAiB,KAAK,sDAAsD,UAAU,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;cAC1N,IAAI,MAAM,KAAK,IAAI,MAAM;UAC7B,CAAA;QACN,CAAC,CAAC,CAAA;QACF,OAAO,kBAAkB,MAAM,MAAM,UAAU,CAAC,GAAG,CAAC,8BAA8B,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,sBAAsB,CAAA;IAC5H,CAAC,CAAC,CAAA;IACF,MAAM,IAAI,GAAG;;;;;SAKN,KAAK;;;;;;;;;;;;;;;;;MAiBR,KAAK;;EAET,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC;;;;;;;;;;;CAWpB,CAAA;IACC,OAAO,EAAC,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAC,CAAA;AAC7B,CAAC;AAED,MAAM,UAAU,eAAe,CAC7B,QAAkB,EAClB,GAAuB,EACvB,UAAyB,EAAE;IAE3B,IAAI,CAAC,GAAG;QAAE,OAAO,KAAK,CAAC,wEAAwE,CAAC,CAAA;IAChG,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,EAAE,CAAA;IACxC,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAA;IAC7B,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC;QACrD,OAAO,KAAK,CAAC,uBAAuB,GAAG,qBAAqB,CAAC,CAAA;IAC/D,CAAC;IACD,MAAM,KAAK,GAAG,WAAW,CAAC,GAAG,CAAC;SAC3B,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC;SAChD,IAAI,EAAE,CAAA;IACT,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC,2BAA2B,eAAe,OAAO,GAAG,EAAE,CAAC,CAAA;IAC5F,MAAM,SAAS,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QACrC,IAAI,EAAE,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC;QACrB,IAAI,EAAE,YAAY,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC;KAC5C,CAAC,CAAC,CAAA;IACH,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,IAAI,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,aAAa,CAAA;IACnE,MAAM,EAAC,IAAI,EAAE,QAAQ,EAAC,GAAG,WAAW,CAAC,QAAQ,EAAE,SAAS,EAAE,EAAC,KAAK,EAAC,CAAC,CAAA;IAClE,MAAM,IAAI,GAAG,aAAa,CAAC,GAAG,CAAC,CAAA;IAC/B,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,KAAK,QAAQ,CAAC,IAAI,EAAE,iBAAiB,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAA;IACtE,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;QAClB,OAAO;YACL,IAAI,EAAE,uBAAuB,QAAQ,CAAC,MAAM,gDAAgD,QAAQ,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,EAAE;YACzI,IAAI,EAAE,EAAC,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,CAAC,IAAI,IAAI,EAAC,IAAI,EAAC,CAAC,EAAC;YAChD,QAAQ,EAAE,CAAC;SACZ,CAAA;IACH,CAAC;IACD,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,EAAE,aAAa,CAAC,CAAA;IACnD,SAAS,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,EAAE,EAAC,SAAS,EAAE,IAAI,EAAC,CAAC,CAAA;IACxD,aAAa,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,CAAA;IAC9C,OAAO;QACL,IAAI,EAAE,uBAAuB,QAAQ,CAAC,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,MAAM,KAAK,CAAC,MAAM,gEAAgE,IAAI,EAAE;QACrJ,IAAI,EAAE;YACJ,EAAE,EAAE,IAAI;YACR,IAAI,EAAE,QAAQ,CAAC,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;YACtC,SAAS,EAAE,KAAK,CAAC,MAAM;YACvB,GAAG,CAAC,IAAI,IAAI,EAAC,IAAI,EAAC,CAAC;SACpB;KACF,CAAA;AACH,CAAC;AAED,OAAO,EAAC,kBAAkB,EAAC,CAAA;AAE3B,MAAM,UAAU,SAAS,CACvB,QAAkB,EAClB,GAAuB,EACvB,IAAc,EACd,OAAmD;IAEnD,IAAI,GAAG,KAAK,MAAM,EAAE,CAAC;QACnB,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC;YAAE,OAAO,KAAK,CAAC,4DAA4D,CAAC,CAAA;QAC/F,OAAO,aAAa,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAA;IACzC,CAAC;IACD,IAAI,GAAG,KAAK,OAAO;QAAE,OAAO,cAAc,CAAC,QAAQ,EAAE,IAAI,EAAE,OAAO,CAAC,CAAA;IACnE,IAAI,GAAG,KAAK,QAAQ,EAAE,CAAC;QACrB,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC;YAAE,OAAO,KAAK,CAAC,wCAAwC,CAAC,CAAA;QAC3E,OAAO,eAAe,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAAA;IACpD,CAAC;IACD,OAAO,KAAK,CACV,oCAAoC,GAAG,IAAI,EAAE,gBAAgB,kBAAkB,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAC9F,CAAA;AACH,CAAC"}
|
package/dist/manifest.d.ts
CHANGED
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
import type { Registry } from './registry-types.js';
|
|
2
|
+
/** `duro mockup <sub>`: the spec owns the names, the command dispatches on them. */
|
|
3
|
+
export declare const MOCKUP_SUBCOMMANDS: string[];
|
|
2
4
|
/**
|
|
3
5
|
* The single command spec. CLI dispatch, --help text, and MCP tool
|
|
4
6
|
* registration all derive from this object — one place to add a command.
|
package/dist/manifest.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"manifest.d.ts","sourceRoot":"","sources":["../src/manifest.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,QAAQ,EAAC,MAAM,qBAAqB,CAAA;AAGjD;;;GAGG;AACH,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,MAAM,CAAA;IACf,IAAI,EAAE,KAAK,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,OAAO,CAAC;QAAC,WAAW,EAAE,MAAM,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAA;KAAC,CAAC,CAAA;IACxF,KAAK,EAAE,KAAK,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,SAAS,GAAG,QAAQ,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAC,CAAC,CAAA;IAC7E,OAAO,EAAE;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAC,CAAA;IAC7C,QAAQ,EAAE,MAAM,EAAE,CAAA;IAClB,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB;AAED,eAAO,MAAM,QAAQ,EAAE,WAAW,
|
|
1
|
+
{"version":3,"file":"manifest.d.ts","sourceRoot":"","sources":["../src/manifest.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,QAAQ,EAAC,MAAM,qBAAqB,CAAA;AAGjD,oFAAoF;AACpF,eAAO,MAAM,kBAAkB,UAA8B,CAAA;AAE7D;;;GAGG;AACH,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,MAAM,CAAA;IACf,IAAI,EAAE,KAAK,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,OAAO,CAAC;QAAC,WAAW,EAAE,MAAM,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAA;KAAC,CAAC,CAAA;IACxF,KAAK,EAAE,KAAK,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,SAAS,GAAG,QAAQ,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAC,CAAC,CAAA;IAC7E,OAAO,EAAE;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAC,CAAA;IAC7C,QAAQ,EAAE,MAAM,EAAE,CAAA;IAClB,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB;AAED,eAAO,MAAM,QAAQ,EAAE,WAAW,EA0LjC,CAAA;AAED,wBAAgB,aAAa,CAAC,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM;;;;;;;;;;;;;;;;;;;;EAqBhE"}
|
package/dist/manifest.js
CHANGED
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
import { lookupNames } from './registry.js';
|
|
2
|
+
/** `duro mockup <sub>`: the spec owns the names, the command dispatches on them. */
|
|
3
|
+
export const MOCKUP_SUBCOMMANDS = ['seed', 'check', 'canvas'];
|
|
2
4
|
export const COMMANDS = [
|
|
3
5
|
{
|
|
4
6
|
name: 'lookup',
|
|
@@ -103,32 +105,42 @@ export const COMMANDS = [
|
|
|
103
105
|
},
|
|
104
106
|
{
|
|
105
107
|
name: 'mockup',
|
|
106
|
-
summary: 'Token-seeded mockup artboards: seed writes a .dc.html whose only design vocabulary is the resolved token block; check refuses raw colours/values and controls that name no component',
|
|
108
|
+
summary: 'Token-seeded mockup artboards: seed writes a .dc.html whose only design vocabulary is the resolved token block; check refuses raw colours/values and controls that name no component; canvas writes one review page of every direction in a directory, refusing any artboard that fails check',
|
|
107
109
|
args: [
|
|
108
110
|
{
|
|
109
111
|
name: 'action',
|
|
110
112
|
required: true,
|
|
111
|
-
description: 'seed (write <Name>.dc.html) | check <file.dc.html>... (exit 1 on findings)',
|
|
113
|
+
description: 'seed (write <Name>.dc.html) | check <file.dc.html>... (exit 1 on findings) | canvas <dir> (write the review page; exit 1 on findings)',
|
|
112
114
|
valuesFrom: 'mockupActions',
|
|
113
115
|
},
|
|
114
116
|
],
|
|
115
117
|
flags: [
|
|
116
|
-
{
|
|
118
|
+
{
|
|
119
|
+
name: 'out',
|
|
120
|
+
type: 'string',
|
|
121
|
+
description: 'seed: directory (default docs/mockups/<name>); canvas: the page (default <dir>/canvas.html)',
|
|
122
|
+
},
|
|
117
123
|
{ name: 'name', type: 'string', description: 'seed: artboard stem (default Main)' },
|
|
118
124
|
{
|
|
119
125
|
name: 'theme',
|
|
120
126
|
type: 'string',
|
|
121
127
|
description: 'seed: dark (default) | light | high-contrast — sets <html data-theme>',
|
|
122
128
|
},
|
|
129
|
+
{
|
|
130
|
+
name: 'title',
|
|
131
|
+
type: 'string',
|
|
132
|
+
description: 'canvas: the page title (default "<dir> directions")',
|
|
133
|
+
},
|
|
123
134
|
],
|
|
124
135
|
returns: {
|
|
125
|
-
shape: '{ok: boolean, path: string} | {ok: boolean, findings: Finding[]}',
|
|
136
|
+
shape: '{ok: boolean, path: string} | {ok: boolean, findings: Finding[], skew?: {own, installed}} | {ok: boolean, path: string, artboards: number, skew?: {own, installed}}',
|
|
126
137
|
description: 'seed: where it wrote. check: {file, line, rule, message} per finding — raw-color, raw-length, raw-breakpoint, unknown-component, no-component-map, unannotated-control',
|
|
127
138
|
},
|
|
128
139
|
examples: [
|
|
129
140
|
'duro mockup seed --name Main --out docs/mockups/approvals',
|
|
130
141
|
'duro mockup check docs/mockups/approvals/*.dc.html',
|
|
131
142
|
'duro mockup check Main.dc.html --json',
|
|
143
|
+
'duro mockup canvas docs/mockups/approvals',
|
|
132
144
|
],
|
|
133
145
|
mcpTool: 'duro_ds_mockup_check',
|
|
134
146
|
},
|
|
@@ -151,7 +163,7 @@ export const COMMANDS = [
|
|
|
151
163
|
},
|
|
152
164
|
{
|
|
153
165
|
name: 'mcp',
|
|
154
|
-
summary: 'Run a stdio MCP server exposing duro_ds_lookup / duro_ds_list / duro_ds_manifest / duro_ds_mockup_check',
|
|
166
|
+
summary: 'Run a stdio MCP server exposing duro_ds_lookup / duro_ds_list / duro_ds_manifest / duro_ds_mockup_check / duro_ds_mockup_canvas',
|
|
155
167
|
args: [],
|
|
156
168
|
flags: [],
|
|
157
169
|
returns: { shape: 'never', description: 'Serves until stdin closes' },
|
|
@@ -177,7 +189,7 @@ export function buildManifest(registry, version) {
|
|
|
177
189
|
names: lookupNames(registry),
|
|
178
190
|
kinds: ['components', 'recipes', 'tokens'],
|
|
179
191
|
events: ['session-start', 'install'],
|
|
180
|
-
mockupActions:
|
|
192
|
+
mockupActions: MOCKUP_SUBCOMMANDS,
|
|
181
193
|
skillActions: ['install'],
|
|
182
194
|
},
|
|
183
195
|
};
|
package/dist/manifest.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"manifest.js","sourceRoot":"","sources":["../src/manifest.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,WAAW,EAAC,MAAM,eAAe,CAAA;
|
|
1
|
+
{"version":3,"file":"manifest.js","sourceRoot":"","sources":["../src/manifest.ts"],"names":[],"mappings":"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"}
|
package/dist/skill-template.d.ts
CHANGED
|
@@ -20,5 +20,5 @@ export declare const SKILL_NOTES_PATH = ".claude/duro-mockup.local.md";
|
|
|
20
20
|
* up as --check drift.
|
|
21
21
|
*/
|
|
22
22
|
export declare const SKILL_MIN_CLI = "5.0.0";
|
|
23
|
-
export declare const SKILL = "---\nname: duro-mockup\ndescription: Take a new screen from mockup directions to an implemented, verified PR without leaving the Duro design system. Use whenever the user asks for a screen, a page, a UI proposal, mockups, or \"show me options\" in a repo that consumes @duro-app/ui \u2014 and when planning (plan mode) a new screen or a material layout, hierarchy or interaction change there.\n---\n\n# duro-mockup\n\nGENERATED by `duro skill install` \u2014 do not hand-edit. Regenerate:\n`npx -y @duro-app/cli@^5.0.0 skill install` (`--check` verifies it in CI). Repo-specific notes\nlive in `.claude/duro-mockup.local.md`; read it if it exists.\n\nStanding rule (fleet decision `ui.mockup-handoff`): a mockup is written in\nthe design system's own vocabulary, and the direction the user picks is a\ncontract. What binds: layout, hierarchy, states, the `data-duro` component\nmap and the token names, sizes and border widths included (ADR-0027). What\ndoes not bind: positions (top, left, inset, transform).\n\n**This overrides the `design` skill's step 0.** That skill says to lift\nresolved values from the real stylesheets. Here you never write a resolved\nvalue: every colour, spacing, radius, font, shadow and duration is a\n`var(--duro-*)` from the seeded token block, and every element a person can\nact on carries `data-duro=\"<Component>\"`.
|
|
23
|
+
export declare const SKILL = "---\nname: duro-mockup\ndescription: Take a new screen from mockup directions to an implemented, verified PR without leaving the Duro design system. Use whenever the user asks for a screen, a page, a UI proposal, mockups, or \"show me options\" in a repo that consumes @duro-app/ui \u2014 and when planning (plan mode) a new screen or a material layout, hierarchy or interaction change there.\n---\n\n# duro-mockup\n\nGENERATED by `duro skill install` \u2014 do not hand-edit. Regenerate:\n`npx -y @duro-app/cli@^5.0.0 skill install` (`--check` verifies it in CI). Repo-specific notes\nlive in `.claude/duro-mockup.local.md`; read it if it exists.\n\nStanding rule (fleet decision `ui.mockup-handoff`): a mockup is written in\nthe design system's own vocabulary, and the direction the user picks is a\ncontract. What binds: layout, hierarchy, states, the `data-duro` component\nmap and the token names, sizes and border widths included (ADR-0027). What\ndoes not bind: positions (top, left, inset, transform).\n\n**This overrides the `design` skill's step 0.** That skill says to lift\nresolved values from the real stylesheets. Here you never write a resolved\nvalue: every colour, spacing, radius, font, shadow and duration is a\n`var(--duro-*)` from the seeded token block, and every element a person can\nact on carries `data-duro=\"<Component>\"`. Everything this workflow needs ships\nwith the CLI: `mockup seed` writes the artboard, `mockup check` gates it and\n`mockup canvas` builds the page the person picks from.\n\n## Args\n\n- `propose <screen>` \u2014 seed 2\u20134 direction artboards, check them, publish the canvas.\n- `implement <screen> <direction>` \u2014 build the picked direction from its component map.\n- `prove <route>` \u2014 screenshot the built route and assemble the PR section.\n- no args \u2014 infer the stage from what exists under `docs/mockups/<screen>/`.\n\n## propose\n\n```bash\nnpx -y @duro-app/cli@^5.0.0 mockup seed --out docs/mockups/<screen> --name Main # direction A\nnpx -y @duro-app/cli@^5.0.0 mockup seed --out docs/mockups/<screen> --name <Direction> # B, C, \u2026\n```\n\n- `<screen>` is kebab-case (`approval-gates`). Artboards are committed with\n the PR \u2014 never leave them in a scratch directory; a session scratchpad is\n garbage-collected and the canvas URL would be the only surviving artefact.\n- Author each artboard inside the seeded `<style>` and root div. Colours,\n spacing, radii, sizes, border widths, type, shadows and motion come only\n from the token block (`var(--duro-size-*)`, `var(--duro-border-*)`);\n positions are yours, and the root keeps the seeded canvas size\n (`var(--duro-mockup-canvas-width)` / `-height`). A custom property you define\n outside the token block holds a token too (`--gap: var(--duro-spacing-md)`);\n `--gap: 12px` is the same raw value one `var()` away. Every button, row, chip, tab,\n input, link, table and dialog \u2014 whatever element it is drawn as \u2014 carries\n `data-duro=\"<Component>\"` or `data-duro=\"<Component>.<Part>\"`, using names\n from `npx -y @duro-app/cli@^5.0.0 list components`. Notes for the implementer go after the\n name: `data-duro=\"Button variant=primary\"`.\n- Start from a recipe when one fits the screen shape (`npx -y @duro-app/cli@^5.0.0 list recipes`\n \u2014 admin-detail-page, split-pane, page-with-sidenav, settings-page, \u2026) and\n say so in the artboard's header comment; a hand-rolled layout needs a reason.\n- Gate before publishing:\n\n```bash\nnpx -y @duro-app/cli@^5.0.0 mockup check docs/mockups/<screen>/*.dc.html\n```\n\n Exit 1 lists `file:line rule: message`. Fix every finding; do not publish\n an artboard that fails. A note that `@duro-app/ui` differs from the\n checker means an `unknown-component` may only be newer than the checker:\n rerun with the version the note names before changing the artboard.\n- Build the review page, one self-contained file with every direction under a\n letter (it refuses while any artboard fails the check):\n\n```bash\nnpx -y @duro-app/cli@^5.0.0 mockup canvas docs/mockups/<screen>\n```\n\n Publish `docs/mockups/<screen>/canvas.html` as the Artifact (the\n `duro_ds_mockup_canvas` MCP tool returns the same page from the artboards'\n HTML). Where Artifacts are unavailable, open it locally in the browser and\n say so; the pick does not wait on publishing.\n- Ask the user to pick a direction. Record the answer as\n `<canvas URL> \u00B7 direction <X>` \u2014 it goes in the PR.\n- Delete the directions that were not picked, rebuild the canvas, and commit\n the picked artboards: the files in `docs/mockups/` are the contract, the\n canvas is the review surface.\n\n## implement\n\n- Read the picked artboard. Its `data-duro` attributes ARE the component\n list: for each one, `npx -y @duro-app/cli@^5.0.0 <Component>` (or the `duro_ds_lookup` MCP\n tool) gives props and usage. Do not substitute a hand-rolled element for a\n named component; if a named component does not fit, say so and propose the\n design-system change rather than working around it.\n- Tokens map one to one: `var(--duro-spacing-md)` is `spacing.md` from\n `@duro-app/tokens/tokens/spacing.css`, `--duro-color-bg-card` is\n `colors.bgCard`, `--duro-radius-sm` is `radii.sm`, `--duro-typography-*`\n and `--duro-type-scale-*` are `typography`/`typeScale`, `--duro-shadow-*`\n is `shadows`, `--duro-duration-*`/`--duro-easing-*` are `duration`/`easing`.\n A media query on `768px` is `breakpoints.md` from\n `@duro-app/tokens/tokens/breakpoints.css`. The lint config refuses the raw\n value, so write the token the first time.\n- Layout comes from a recipe before a grid: `npx -y @duro-app/cli@^5.0.0 <recipe> --source-only`.\n- Positions in the artboard are a sketch: match its hierarchy and states.\n Its sizes are tokens, so they bind like colours do; a size the artboard\n needs and no token has is added to `@duro-app/tokens` first.\n\n## prove\n\n- Run the app, load the route in a real browser (Chrome MCP), and take a\n screenshot at the artboard's width (1120px) in the artboard's theme.\n- The PR body carries, under `## Mockup`: the canvas URL and direction, the\n path `docs/mockups/<screen>/`, and the artboard next to the live screenshot.\n A PR that touches no screen writes `Mockup: none` instead. CI checks for\n one or the other.\n- If the screenshot and the artboard disagree on hierarchy or states, that is\n a finding to fix, not a caption to write.\n";
|
|
24
24
|
//# sourceMappingURL=skill-template.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"skill-template.d.ts","sourceRoot":"","sources":["../src/skill-template.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,4CAA4C;AAC5C,eAAO,MAAM,SAAS,+BAA+B,CAAA;AACrD,eAAO,MAAM,UAAU,wCAA0B,CAAA;AACjD,6EAA6E;AAC7E,eAAO,MAAM,gBAAgB,iCAAiC,CAAA;AAE9D;;;;;GAKG;AACH,eAAO,MAAM,aAAa,UAAU,CAAA;AAIpC,eAAO,MAAM,KAAK,
|
|
1
|
+
{"version":3,"file":"skill-template.d.ts","sourceRoot":"","sources":["../src/skill-template.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,4CAA4C;AAC5C,eAAO,MAAM,SAAS,+BAA+B,CAAA;AACrD,eAAO,MAAM,UAAU,wCAA0B,CAAA;AACjD,6EAA6E;AAC7E,eAAO,MAAM,gBAAgB,iCAAiC,CAAA;AAE9D;;;;;GAKG;AACH,eAAO,MAAM,aAAa,UAAU,CAAA;AAIpC,eAAO,MAAM,KAAK,02MAiHjB,CAAA"}
|
package/dist/skill-template.js
CHANGED
|
@@ -42,8 +42,9 @@ does not bind: positions (top, left, inset, transform).
|
|
|
42
42
|
resolved values from the real stylesheets. Here you never write a resolved
|
|
43
43
|
value: every colour, spacing, radius, font, shadow and duration is a
|
|
44
44
|
\`var(--duro-*)\` from the seeded token block, and every element a person can
|
|
45
|
-
act on carries \`data-duro="<Component>"\`.
|
|
46
|
-
|
|
45
|
+
act on carries \`data-duro="<Component>"\`. Everything this workflow needs ships
|
|
46
|
+
with the CLI: \`mockup seed\` writes the artboard, \`mockup check\` gates it and
|
|
47
|
+
\`mockup canvas\` builds the page the person picks from.
|
|
47
48
|
|
|
48
49
|
## Args
|
|
49
50
|
|
|
@@ -83,15 +84,25 @@ ${DURO} mockup check docs/mockups/<screen>/*.dc.html
|
|
|
83
84
|
\`\`\`
|
|
84
85
|
|
|
85
86
|
Exit 1 lists \`file:line rule: message\`. Fix every finding; do not publish
|
|
86
|
-
an artboard that fails.
|
|
87
|
-
|
|
88
|
-
|
|
87
|
+
an artboard that fails. A note that \`@duro-app/ui\` differs from the
|
|
88
|
+
checker means an \`unknown-component\` may only be newer than the checker:
|
|
89
|
+
rerun with the version the note names before changing the artboard.
|
|
90
|
+
- Build the review page, one self-contained file with every direction under a
|
|
91
|
+
letter (it refuses while any artboard fails the check):
|
|
92
|
+
|
|
93
|
+
\`\`\`bash
|
|
94
|
+
${DURO} mockup canvas docs/mockups/<screen>
|
|
95
|
+
\`\`\`
|
|
96
|
+
|
|
97
|
+
Publish \`docs/mockups/<screen>/canvas.html\` as the Artifact (the
|
|
98
|
+
\`duro_ds_mockup_canvas\` MCP tool returns the same page from the artboards'
|
|
99
|
+
HTML). Where Artifacts are unavailable, open it locally in the browser and
|
|
100
|
+
say so; the pick does not wait on publishing.
|
|
89
101
|
- Ask the user to pick a direction. Record the answer as
|
|
90
102
|
\`<canvas URL> · direction <X>\` — it goes in the PR.
|
|
91
|
-
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
file in \`docs/mockups/\` is the contract, the canvas is the review surface.
|
|
103
|
+
- Delete the directions that were not picked, rebuild the canvas, and commit
|
|
104
|
+
the picked artboards: the files in \`docs/mockups/\` are the contract, the
|
|
105
|
+
canvas is the review surface.
|
|
95
106
|
|
|
96
107
|
## implement
|
|
97
108
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"skill-template.js","sourceRoot":"","sources":["../src/skill-template.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,4CAA4C;AAC5C,MAAM,CAAC,MAAM,SAAS,GAAG,4BAA4B,CAAA;AACrD,MAAM,CAAC,MAAM,UAAU,GAAG,GAAG,SAAS,WAAW,CAAA;AACjD,6EAA6E;AAC7E,MAAM,CAAC,MAAM,gBAAgB,GAAG,8BAA8B,CAAA;AAE9D;;;;;GAKG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,OAAO,CAAA;AAEpC,MAAM,IAAI,GAAG,yBAAyB,aAAa,EAAE,CAAA;AAErD,MAAM,CAAC,MAAM,KAAK,GAAG;;;;;;;;IAQjB,IAAI;YACI,gBAAgB
|
|
1
|
+
{"version":3,"file":"skill-template.js","sourceRoot":"","sources":["../src/skill-template.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,4CAA4C;AAC5C,MAAM,CAAC,MAAM,SAAS,GAAG,4BAA4B,CAAA;AACrD,MAAM,CAAC,MAAM,UAAU,GAAG,GAAG,SAAS,WAAW,CAAA;AACjD,6EAA6E;AAC7E,MAAM,CAAC,MAAM,gBAAgB,GAAG,8BAA8B,CAAA;AAE9D;;;;;GAKG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,OAAO,CAAA;AAEpC,MAAM,IAAI,GAAG,yBAAyB,aAAa,EAAE,CAAA;AAErD,MAAM,CAAC,MAAM,KAAK,GAAG;;;;;;;;IAQjB,IAAI;YACI,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;EA0B1B,IAAI;EACJ,IAAI;;;;;;;;;;;;;;;WAeK,IAAI;;0DAE2C,IAAI;;;;;;EAM5D,IAAI;;;;;;;;;;;EAWJ,IAAI;;;;;;;;;;;;;;;;0BAgBoB,IAAI;;;;;;;;;;;;gDAYkB,IAAI;;;;;;;;;;;;;;;CAenD,CAAA"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@duro-app/cli",
|
|
3
|
-
"version": "5.
|
|
3
|
+
"version": "5.16.0",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"description": "Machine-queryable docs for the Duro design system: components, props, recipes, tokens and rules as CLI output, JSON, or an MCP server.",
|
|
@@ -45,7 +45,7 @@
|
|
|
45
45
|
},
|
|
46
46
|
"peerDependencies": {
|
|
47
47
|
"@modelcontextprotocol/sdk": ">=1.0.0",
|
|
48
|
-
"@duro-app/ui": "^5.
|
|
48
|
+
"@duro-app/ui": "^5.16.0"
|
|
49
49
|
},
|
|
50
50
|
"peerDependenciesMeta": {
|
|
51
51
|
"@duro-app/ui": {
|
|
@@ -60,9 +60,9 @@
|
|
|
60
60
|
"@types/node": "^24.0.0",
|
|
61
61
|
"ts-morph": "^26.0.0",
|
|
62
62
|
"typescript": "^5.7.0",
|
|
63
|
-
"@duro-app/eslint-plugin": "^5.
|
|
64
|
-
"@duro-app/
|
|
65
|
-
"@duro-app/
|
|
63
|
+
"@duro-app/eslint-plugin": "^5.16.0",
|
|
64
|
+
"@duro-app/ui": "^5.16.0",
|
|
65
|
+
"@duro-app/tokens": "^5.16.0"
|
|
66
66
|
},
|
|
67
67
|
"scripts": {
|
|
68
68
|
"registry": "node scripts/build-registry.mjs",
|
package/registry.json
CHANGED
|
@@ -5244,6 +5244,39 @@
|
|
|
5244
5244
|
],
|
|
5245
5245
|
"sourcePath": "packages/ui/src/components/Prose/Prose.tsx"
|
|
5246
5246
|
},
|
|
5247
|
+
"QrCode": {
|
|
5248
|
+
"importPath": "@duro-app/ui",
|
|
5249
|
+
"kind": "component",
|
|
5250
|
+
"meta": {
|
|
5251
|
+
"description": "A QR code for another device to scan: dark modules on a fixed light square, as wide as its container, announced by its label as one image. The same on web and native.",
|
|
5252
|
+
"example": "<Stack gap=\"sm\">\n <QrCode value=\"https://example.com/pair?key=abc\" label=\"Scan to sign in on this device\" />\n <Text>Scan with a signed-in phone</Text>\n</Stack>",
|
|
5253
|
+
"whenNotToUse": [
|
|
5254
|
+
"Decoration or branding: a QR code is a machine-readable payload, not an illustration",
|
|
5255
|
+
"The only way to reach something: also give the text or a link beside it"
|
|
5256
|
+
],
|
|
5257
|
+
"whenToUse": [
|
|
5258
|
+
"Pairing or sign-in by scanning from a second device",
|
|
5259
|
+
"Handing a URL or a short secret to a phone camera"
|
|
5260
|
+
]
|
|
5261
|
+
},
|
|
5262
|
+
"name": "QrCode",
|
|
5263
|
+
"native": true,
|
|
5264
|
+
"props": [
|
|
5265
|
+
{
|
|
5266
|
+
"description": "The text the code carries: a URL, a pairing link.",
|
|
5267
|
+
"name": "value",
|
|
5268
|
+
"required": true,
|
|
5269
|
+
"type": "string"
|
|
5270
|
+
},
|
|
5271
|
+
{
|
|
5272
|
+
"description": "What the code is for, read by assistive tech in place of the image.",
|
|
5273
|
+
"name": "label",
|
|
5274
|
+
"required": true,
|
|
5275
|
+
"type": "string"
|
|
5276
|
+
}
|
|
5277
|
+
],
|
|
5278
|
+
"sourcePath": "packages/ui/src/components/QrCode/QrCode.tsx"
|
|
5279
|
+
},
|
|
5247
5280
|
"RadioGroup": {
|
|
5248
5281
|
"importPath": "@duro-app/ui",
|
|
5249
5282
|
"kind": "compound",
|