A lane chip clears the card above its run: running downwards ELK keeps runs half a chip and a border (14px) from nodes, so House history's feedback chip no longer covers the node border at 390 (crossings and node order unchanged, Demo house 178px taller); an empty string reads "" on its chip

This commit is contained in:
2026-10-15 21:46:05 +02:00
parent dc2802d4c0
commit 8d3165c8c4
2 changed files with 13 additions and 1 deletions
+2 -1
View File
@@ -174,7 +174,8 @@ function formatValue(value: unknown): string {
if (typeof value === "number") {
return Number.isInteger(value) ? String(value) : value.toFixed(2)
}
if (typeof value === "string") return value
// An empty string reads the way `null` and `[]` do, not as an empty pill.
if (typeof value === "string") return value || '""'
// A media reference serialised whole is a line of hash: what belongs in a
// chip this size is what kind of bytes crossed the edge.
if (isRef(value)) return describeArtifact(value as Record<string, unknown>)
+11
View File
@@ -294,6 +294,17 @@ function graphOf(
RANK_GAP[direction],
),
"org.eclipse.elk.padding": `[top=${MARGIN},left=${MARGIN},bottom=${MARGIN},right=${MARGIN}]`,
// Running downwards, a chip moved onto a run across the flow (see
// `longestRun`) is centred on it, so a run keeps half a chip and a
// node's border clear of the nodes it passes. ELK's default of 10px
// put such a chip over the border of the card above it.
...(across
? {}
: {
"org.eclipse.elk.layered.spacing.edgeNodeBetweenLayers": String(
LABEL_H / 2 + 2,
),
}),
// What decides a tie is the order the document lists things in, so the
// graph reads the way the flow is written rather than however the
// algorithm happened to land.