chain table round 3: waypoints icons gone + the alignment staircase (owner refinements)
- chain rows lose the WaypointsIcon (owner: not needed — the chips + connectors already read as chains); folders keep their icons. - THE ALIGNMENT STAIRCASE: every level's checkbox sits directly under its parent's expander arrow. The expander now shares the checkbox's 14px width (h-5 w-3.5), making each nesting step exactly 18px — clusters pl-3 (12px) → chains pl-7.5 (30px, the cluster expander) → statements pl-12 (48px, the chain expander). Live-measured: 318=318, 336=336.
This commit is contained in:
@@ -139,9 +139,9 @@ describe("ChainTableBody — THE shared TopBar + the lines law (owner, round 2)"
|
||||
const sep = html.split("border-b border-border/60").length - 1;
|
||||
assert.ok(sep >= 2, "separators between groups");
|
||||
// chain rows themselves carry NO border — their entire class list is
|
||||
// the indent law (pl-11 under the cluster folder, owner round 2); the
|
||||
// chip outlines' border-border/70 is an outline, not a row line
|
||||
assert.ok(html.includes('class="flex items-center gap-1 py-1 pl-11 pr-3"'), "the chain row: indent, no border");
|
||||
// the staircase law (pl-7.5 = under the cluster's expander arrow);
|
||||
// the chip outlines' border-border/70 is an outline, not a row line
|
||||
assert.ok(html.includes('class="flex items-center gap-1 py-1 pl-7.5 pr-3"'), "the chain row: staircase indent, no border");
|
||||
});
|
||||
});
|
||||
|
||||
@@ -154,7 +154,9 @@ describe("ChainTableBody — chain rows (chips + connectors)", () => {
|
||||
assert.ok(html.includes("Premise one"), "chip text");
|
||||
assert.ok(html.includes('data-testid="chain-arrow-c1-1"'), "the connector");
|
||||
assert.ok(html.includes("→"), "the arrow glyph");
|
||||
assert.ok(html.includes("lucide-waypoints"), "the chain icon");
|
||||
// owner ruling (round 3): the chain waypoints icons are GONE — the
|
||||
// chips + connectors already read as chains; only folders keep icons
|
||||
assert.ok(!html.includes("lucide-waypoints"), "no chain icon");
|
||||
});
|
||||
|
||||
it("a singleton renders ONE lonely chip, no connector; the annotation survives only for screen readers", () => {
|
||||
@@ -184,9 +186,14 @@ describe("ChainTableBody — chain rows (chips + connectors)", () => {
|
||||
// owner ruling: the derivation is already encoded in the chain line —
|
||||
// no conclusion marker down here
|
||||
assert.ok(!html.includes("prop-conclusion"), "no conclusion marker anywhere");
|
||||
// statements indent DEEPEST (pl-[4.75rem]); chains pl-11 under clusters
|
||||
assert.ok(html.includes("pl-[4.75rem]"), "the deepest indent");
|
||||
assert.ok(html.includes("pl-11"), "the chain indent");
|
||||
// THE ALIGNMENT STAIRCASE (owner ruling, round 3): each level's
|
||||
// checkbox sits under its parent's expander arrow. The expander
|
||||
// shares the checkbox's 14px width, so each step is 18px: clusters
|
||||
// pl-3 (12) → chains pl-7.5 (30 = the cluster expander) →
|
||||
// statements pl-12 (48 = the chain expander)
|
||||
assert.ok(html.includes("pl-12"), "statements under the chain's expander");
|
||||
assert.ok(html.includes("pl-7.5"), "chains under the cluster's expander");
|
||||
assert.ok(html.includes("h-5 w-3.5"), "the expander shares the checkbox's 14px width");
|
||||
});
|
||||
});
|
||||
|
||||
|
||||
Reference in New Issue
Block a user