@caddis/cli 0.4.46 → 0.4.48
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/bundles/antigravity-plugin/plugin.json +1 -1
- package/bundles/antigravity-plugin/skills/flow-studio/SKILL.md +2 -1
- package/bundles/antigravity-plugin/skills/flow-studio/model.schema.json +1 -1
- package/bundles/antigravity-plugin/skills/flow-studio/references/design-language.md +10 -2
- package/bundles/antigravity-plugin/skills/flow-studio/references/model-schema.md +1 -0
- package/bundles/antigravity-plugin/skills/flow-studio/scripts/lib/styles.test.mjs +37 -0
- package/bundles/antigravity-plugin/skills/flow-studio/src/chrome.ts +9 -6
- package/bundles/antigravity-plugin/skills/flow-studio/src/controls.ts +1 -1
- package/bundles/antigravity-plugin/skills/flow-studio/src/model.test.ts +8 -0
- package/bundles/antigravity-plugin/skills/flow-studio/src/model.ts +2 -1
- package/bundles/antigravity-plugin/skills/flow-studio/src/notes.ts +1 -1
- package/bundles/antigravity-plugin/skills/flow-studio/src/rules.test.ts +10 -1
- package/bundles/antigravity-plugin/skills/flow-studio/src/rules.ts +6 -0
- package/bundles/antigravity-plugin/skills/flow-studio/src/styles.css +10 -9
- package/bundles/antigravity-plugin/skills/flow-studio/templates/engine.html +27 -16
- package/bundles/antigravity-plugin/skills/flow-studio/templates/flow-studio.css +10 -9
- package/bundles/antigravity-plugin/skills/flow-studio/templates/flow-studio.lib.mjs +21 -8
- package/bundles/codex/.codex/skills/frontend/flow-studio/SKILL.md +2 -1
- package/bundles/codex/.codex/skills/frontend/flow-studio/model.schema.json +1 -1
- package/bundles/codex/.codex/skills/frontend/flow-studio/references/design-language.md +10 -2
- package/bundles/codex/.codex/skills/frontend/flow-studio/references/model-schema.md +1 -0
- package/bundles/codex/.codex/skills/frontend/flow-studio/scripts/lib/styles.test.mjs +37 -0
- package/bundles/codex/.codex/skills/frontend/flow-studio/src/chrome.ts +9 -6
- package/bundles/codex/.codex/skills/frontend/flow-studio/src/controls.ts +1 -1
- package/bundles/codex/.codex/skills/frontend/flow-studio/src/model.test.ts +8 -0
- package/bundles/codex/.codex/skills/frontend/flow-studio/src/model.ts +2 -1
- package/bundles/codex/.codex/skills/frontend/flow-studio/src/notes.ts +1 -1
- package/bundles/codex/.codex/skills/frontend/flow-studio/src/rules.test.ts +10 -1
- package/bundles/codex/.codex/skills/frontend/flow-studio/src/rules.ts +6 -0
- package/bundles/codex/.codex/skills/frontend/flow-studio/src/styles.css +10 -9
- package/bundles/codex/.codex/skills/frontend/flow-studio/templates/engine.html +27 -16
- package/bundles/codex/.codex/skills/frontend/flow-studio/templates/flow-studio.css +10 -9
- package/bundles/codex/.codex/skills/frontend/flow-studio/templates/flow-studio.lib.mjs +21 -8
- package/bundles/manifest.json +2 -2
- package/package.json +1 -1
|
@@ -29,6 +29,7 @@ function validateModel(input) {
|
|
|
29
29
|
if (!Array.isArray(m.lanes) || m.layout !== "auto" && m.lanes.length === 0) add("error", "lanes-missing", "lanes", "At least one lane is required.");
|
|
30
30
|
if (!m.states || typeof m.states !== "object" || Object.keys(m.states).length === 0) add("error", "states-missing", "states", "At least one state is required.");
|
|
31
31
|
const columns = Array.isArray(m.columns) ? m.columns : [];
|
|
32
|
+
if (columns[0]?.continues) add("error", "column-continues-first", "columns[0]", "The first column cannot continue a column before it.");
|
|
32
33
|
const lanes = Array.isArray(m.lanes) ? m.lanes : [];
|
|
33
34
|
const states = m.states && typeof m.states === "object" ? m.states : {};
|
|
34
35
|
if (!m.meta || typeof m.meta !== "object" || typeof m.meta.title !== "string") add("error", "meta-missing", "meta", "meta with a title is required.");
|
|
@@ -347,11 +348,19 @@ __export(rules_exports, {
|
|
|
347
348
|
linkVisible: () => linkVisible,
|
|
348
349
|
nodeStateId: () => nodeStateId,
|
|
349
350
|
nodeVisible: () => nodeVisible,
|
|
351
|
+
stripHeads: () => stripHeads,
|
|
350
352
|
toggleGroupState: () => toggleGroupState
|
|
351
353
|
});
|
|
352
354
|
var baselineView = (m) => m.views?.[0]?.id ?? "all";
|
|
353
355
|
var defaultView = (m) => (m.views?.find((v) => v.default) ?? m.views?.[0])?.id ?? "all";
|
|
354
356
|
var initialCollapsed = (m) => new Set(m.nodes.filter((n) => n.kind === "group" && n.contains && n.collapsed !== false).map((n) => n.id));
|
|
357
|
+
var stripHeads = (m) => {
|
|
358
|
+
let head = 0;
|
|
359
|
+
return m.columns.map((c, i) => {
|
|
360
|
+
if (!c.continues || i === 0) head = i;
|
|
361
|
+
return head;
|
|
362
|
+
});
|
|
363
|
+
};
|
|
355
364
|
var columnTitle = (m, n) => n.col === void 0 ? "" : m.columns[n.col]?.title ?? "";
|
|
356
365
|
function groupFor(m, nodeId) {
|
|
357
366
|
return m.nodes.find((n) => n.kind === "group" && n.contains?.includes(nodeId));
|
|
@@ -1203,7 +1212,7 @@ function install3(ctx) {
|
|
|
1203
1212
|
if (!cols.firstChild) {
|
|
1204
1213
|
model.columns.forEach((c, i2) => {
|
|
1205
1214
|
const h = el("div", "hd");
|
|
1206
|
-
h.textContent = (c.short ?? c.title).toUpperCase();
|
|
1215
|
+
h.textContent = c.continues ? "" : (c.short ?? c.title).toUpperCase();
|
|
1207
1216
|
h.title = c.title;
|
|
1208
1217
|
h.dataset.i = String(i2);
|
|
1209
1218
|
cols.appendChild(h);
|
|
@@ -1589,16 +1598,18 @@ function install5(ctx) {
|
|
|
1589
1598
|
}
|
|
1590
1599
|
function buildStrip() {
|
|
1591
1600
|
const box = els.strip;
|
|
1601
|
+
const heads = stripHeads(model), cells = model.columns.map((c, i) => ({ c, i })).filter(({ i }) => heads[i] === i);
|
|
1592
1602
|
box.style.display = model.columns.length ? "" : "none";
|
|
1593
|
-
box.style.gridTemplateColumns = `repeat(${Math.max(1,
|
|
1603
|
+
box.style.gridTemplateColumns = `repeat(${Math.max(1, cells.length)}, minmax(0, 1fr))`;
|
|
1594
1604
|
if (!box.firstChild) {
|
|
1595
|
-
box.innerHTML =
|
|
1605
|
+
box.innerHTML = cells.map(({ c }) => `<div class="lcell"><div class="ln">${esc(c.title)}</div><div class="lb"><i class="good"></i><i class="neutral"></i><i class="gap"></i></div><div class="lv"></div></div>`).join("");
|
|
1596
1606
|
}
|
|
1597
|
-
box.querySelectorAll(".lcell").forEach((cell,
|
|
1598
|
-
|
|
1607
|
+
box.querySelectorAll(".lcell").forEach((cell, cellIndex) => {
|
|
1608
|
+
const i = cells[cellIndex]?.i ?? cellIndex;
|
|
1609
|
+
cell.style.setProperty("--i", String(cellIndex));
|
|
1599
1610
|
let tot = 0, good = 0, neutral = 0, gap = 0;
|
|
1600
1611
|
for (const n of model.nodes) {
|
|
1601
|
-
if (n.col !== i || n.kind === "chip") continue;
|
|
1612
|
+
if (heads[n.col ?? -1] !== i || n.kind === "chip") continue;
|
|
1602
1613
|
if (!visible(n.id)) continue;
|
|
1603
1614
|
const w = Math.max(1, n.weight ?? 1);
|
|
1604
1615
|
tot += w;
|
|
@@ -1764,7 +1775,8 @@ function install6(ctx) {
|
|
|
1764
1775
|
if (!a) continue;
|
|
1765
1776
|
let r = a.getBoundingClientRect();
|
|
1766
1777
|
if (!r.width && !r.height) {
|
|
1767
|
-
|
|
1778
|
+
let d = a.closest("details");
|
|
1779
|
+
while (d && d.open) d = d.parentElement?.closest("details") ?? null;
|
|
1768
1780
|
if (d) r = d.getBoundingClientRect();
|
|
1769
1781
|
}
|
|
1770
1782
|
if (!r.width && !r.height) continue;
|
|
@@ -1816,7 +1828,7 @@ function install6(ctx) {
|
|
|
1816
1828
|
const markdown = () => {
|
|
1817
1829
|
const out = [`# ${model.meta.title}`, "", model.meta.help, "", `As of ${model.meta.asOf}. Source: ${model.meta.source}`, "", "## States"];
|
|
1818
1830
|
for (const [id, s] of Object.entries(model.states)) out.push(`- **${s.word}** (${id}): tone ${s.tone}, border ${s.border}, link ${s.edge}, motion ${s.motion}, bucket ${s.bucket}`);
|
|
1819
|
-
out.push("", "## Columns", ...model.columns.map((c, i) => `${i + 1}. ${c.title}${c.phase ? ` (${c.phase})` : ""}`));
|
|
1831
|
+
out.push("", "## Columns", ...model.columns.filter((c) => !c.continues).map((c, i) => `${i + 1}. ${c.title}${c.phase ? ` (${c.phase})` : ""}`));
|
|
1820
1832
|
out.push("", "## Lanes", ...model.lanes.map((l) => `- ${l.title}${l.badge ? ` [${l.badge}]` : ""}${l.note ? `: ${l.note}` : ""}`));
|
|
1821
1833
|
out.push("", `## Size`, `${model.nodes.length} nodes, ${model.links.length} links.`);
|
|
1822
1834
|
if (notes.length) out.push("", "## Notes", ...notes.map((n) => `${n.id}. **${n.title}**: ${n.text}`));
|
|
@@ -2481,6 +2493,7 @@ export {
|
|
|
2481
2493
|
rules_exports as rules,
|
|
2482
2494
|
slaState,
|
|
2483
2495
|
stateCss,
|
|
2496
|
+
stripHeads,
|
|
2484
2497
|
suggestedExit,
|
|
2485
2498
|
toggleGroupState,
|
|
2486
2499
|
trace_exports as trace,
|
package/bundles/manifest.json
CHANGED
package/package.json
CHANGED