@issuegraph/viewer 0.5.0 → 0.9.1

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.
Files changed (47) hide show
  1. package/dist/clusters.d.ts +116 -0
  2. package/dist/clusters.d.ts.map +1 -1
  3. package/dist/clusters.js +85 -2
  4. package/dist/clusters.js.map +1 -1
  5. package/dist/document.d.ts +76 -5
  6. package/dist/document.d.ts.map +1 -1
  7. package/dist/document.js +19 -1
  8. package/dist/document.js.map +1 -1
  9. package/dist/index.d.ts +14 -3
  10. package/dist/index.d.ts.map +1 -1
  11. package/dist/index.js +3 -2
  12. package/dist/index.js.map +1 -1
  13. package/dist/layout.d.ts +28 -0
  14. package/dist/layout.d.ts.map +1 -1
  15. package/dist/layout.js +7 -2
  16. package/dist/layout.js.map +1 -1
  17. package/dist/marks.d.ts +105 -0
  18. package/dist/marks.d.ts.map +1 -0
  19. package/dist/marks.js +430 -0
  20. package/dist/marks.js.map +1 -0
  21. package/dist/navigation.d.ts.map +1 -1
  22. package/dist/navigation.js +31 -0
  23. package/dist/navigation.js.map +1 -1
  24. package/dist/parts.d.ts +23 -0
  25. package/dist/parts.d.ts.map +1 -1
  26. package/dist/parts.js +64 -2
  27. package/dist/parts.js.map +1 -1
  28. package/dist/projections/graph.d.ts +15 -0
  29. package/dist/projections/graph.d.ts.map +1 -1
  30. package/dist/projections/graph.js +68 -14
  31. package/dist/projections/graph.js.map +1 -1
  32. package/dist/projections/linear.d.ts +45 -0
  33. package/dist/projections/linear.d.ts.map +1 -1
  34. package/dist/projections/linear.js +65 -12
  35. package/dist/projections/linear.js.map +1 -1
  36. package/dist/projections/tree.d.ts.map +1 -1
  37. package/dist/projections/tree.js +3 -0
  38. package/dist/projections/tree.js.map +1 -1
  39. package/dist/styles.d.ts +1 -1
  40. package/dist/styles.d.ts.map +1 -1
  41. package/dist/styles.js +472 -0
  42. package/dist/styles.js.map +1 -1
  43. package/dist/theme.d.ts +1 -1
  44. package/dist/theme.d.ts.map +1 -1
  45. package/dist/theme.js +47 -0
  46. package/dist/theme.js.map +1 -1
  47. package/package.json +1 -1
@@ -65,26 +65,20 @@ export function slotRow(document, slot, options, showRank) {
65
65
  const selected = options.selected === slot.lead;
66
66
  const focused = options.focused === slot.lead;
67
67
  const unit = slot.members.length > 1;
68
+ const expanded = options.expanded?.includes(slot.lead) ?? false;
68
69
  const rankCell = element('div', { class: 'ig-rank-cell', 'aria-hidden': 'true' }, [
69
70
  showRank
70
71
  ? element('span', { class: 'ig-rank', 'data-held': held ? 'true' : 'false' },
71
- // A held slot never prints a number: it has no position in the
72
- // sequence, and printing one would claim work is queued that nothing
73
- // can start.
72
+ // The em dash is for a slot the host could not PLACE, which since
73
+ // `RULINGS.md` §1 is narrower than "held": a held slot whose blocker
74
+ // is inside the previewed order carries a number, and the `data-held`
75
+ // channel beside it is what says the work cannot start.
74
76
  [slot.rank === null ? '—' : String(slot.rank)])
75
77
  : null,
76
78
  station(stationFill(slot)),
77
79
  ]);
78
80
  // A UNIT'S HEAD IS ITS ENCLOSURE, not a joined title. Every other row keeps
79
81
  // the frame's two-line pair: the title, and the identity 2px beneath it.
80
- const head = unit
81
- ? [unitMark(slot), unitBlock(document, slot)]
82
- : [
83
- element('div', { class: 'ig-row-head' }, [
84
- element('span', { class: 'ig-title' }, [slotTitle(document, slot)]),
85
- lead === undefined ? null : identity(lead),
86
- ]),
87
- ];
88
82
  const badges = [
89
83
  priorityBadge(lead?.provenance),
90
84
  evidenceBadge(lead),
@@ -96,9 +90,55 @@ export function slotRow(document, slot, options, showRank) {
96
90
  // order — the facts a reader scans for before they read a word of the
97
91
  // sentence beneath.
98
92
  const badgeRow = [...badges, ...edgeBadgeList(document, slot.members)];
93
+ // THE IDENTITY AND THE BADGES ARE ONE LINE, NOT TWO BLOCKS — which is what
94
+ // §17j's row anatomy asks for and what the old markup could not express.
95
+ //
96
+ // `17j` draws line 2 as a single mono run: `#512 · P0 · ⊘ #488`. The identity
97
+ // used to sit inside the head and the chips in a sibling block beneath it, so
98
+ // the two could never share a line however they were styled, and a row that
99
+ // should be 53px stacked to 5-11 lines. Nesting them in one `.ig-row-meta`
100
+ // makes the frame's line a property of the markup rather than of a CSS trick.
101
+ //
102
+ // IT SERVES BOTH DENSITIES, which is why this is a restructure and not a
103
+ // rail-only branch. §16a's row is the same sequence — title, identity, chips,
104
+ // then the provenance turnstile — and at that panel's width the line simply
105
+ // wraps and the provenance stays inline. `17j`: *"Same row, two densities."*
106
+ const meta = lead === undefined && badgeRow.length === 0
107
+ ? null
108
+ : element('div', { class: 'ig-row-meta' }, [
109
+ lead === undefined ? null : identity(lead),
110
+ badgeRow.length === 0 ? null : element('div', { class: 'ig-badges' }, badgeRow),
111
+ ]);
112
+ // A TOGETHER UNIT IS ONE ROW AND ONE RANK, IN BOTH DENSITIES — and the two
113
+ // densities draw it differently, so the markup carries both and the container
114
+ // query picks.
115
+ //
116
+ // `RULINGS.md` §1: *"A together-unit is one row, one rank, containing a box.
117
+ // Not two rows, not a box spanning ranks."* §16a's wide panel IS that box —
118
+ // the `⧉ ONE UNIT · 2 ISSUES` pill, the note, and a member list. But `17j`
119
+ // draws the same unit in the 390px rail as `⧉ 2` inline with an ORDINARY
120
+ // title and an ordinary meta line, at the same 53px as every other row,
121
+ // because a box of member cards cannot be 53px and the rail's row height is
122
+ // not negotiable.
123
+ //
124
+ // So a unit row now carries an ordinary head as well as its enclosure, and
125
+ // each density hides the other's. The lead's title is what the rail shows;
126
+ // `slotTitle` joins every member and stays the ACCESSIBLE name through
127
+ // `slotLabel`, so what a screen reader hears still names both issues while
128
+ // the 53px row shows the one it has room for.
129
+ const unitCount = unit
130
+ ? element('span', { class: 'ig-unit-count' }, [`⧉ ${String(slot.members.length)}`])
131
+ : null;
132
+ const railTitle = unit ? (lead?.title ?? slot.lead) : slotTitle(document, slot);
133
+ const head = [
134
+ element('div', { class: 'ig-row-head' }, [
135
+ element('span', { class: 'ig-title' }, [unitCount, railTitle]),
136
+ meta,
137
+ ]),
138
+ ...(unit ? [unitMark(slot), unitBlock(document, slot)] : []),
139
+ ];
99
140
  const body = element('div', { class: 'ig-row-body' }, [
100
141
  ...head,
101
- badgeRow.length === 0 ? null : element('div', { class: 'ig-badges' }, badgeRow),
102
142
  provenanceLine(lead?.provenance),
103
143
  // THE LEAD'S CAVEATS, like the lead's provenance: a together unit is one
104
144
  // row and one rank, and the host facts about that rank ride on its lead.
@@ -112,6 +152,14 @@ export function slotRow(document, slot, options, showRank) {
112
152
  'data-unit': unit ? 'true' : 'false',
113
153
  'aria-current': selected ? 'true' : 'false',
114
154
  'aria-label': slotLabel(document, slot),
155
+ // ONLY WHEN THERE IS SOMETHING TO EXPAND. `aria-expanded` on a row with
156
+ // no provenance line would advertise a disclosure that cannot open, which
157
+ // is the "control that cannot complete its own action" class this package
158
+ // refuses elsewhere. A row whose host stated no provenance carries no
159
+ // attribute at all.
160
+ ...(lead?.provenance === undefined
161
+ ? {}
162
+ : { 'aria-expanded': expanded ? 'true' : 'false' }),
115
163
  tabindex: focused ? 0 : -1,
116
164
  }, [rankCell, body]);
117
165
  }
@@ -296,6 +344,11 @@ export function linearScene(document, rawOptions = {}) {
296
344
  const root = element('section', {
297
345
  class: 'ig-viewer ig-linear',
298
346
  'data-projection': 'linear',
347
+ // §17j'S DENSITY, WHERE THE HOST TOOK IT OVER. Absent is the whole
348
+ // default: the stylesheet keys the density block off this attribute's
349
+ // PRESENCE, so a viewer that renders none is decided by the container
350
+ // exactly as §17j asks. See `SceneOptions.density`.
351
+ 'data-density': options.density,
299
352
  'data-ig-condition': conditionKind(document, options.chrome),
300
353
  'aria-label': 'issue order',
301
354
  },
@@ -1 +1 @@
1
- {"version":3,"file":"linear.js","sourceRoot":"","sources":["../../src/projections/linear.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"linear.js","sourceRoot":"","sources":["../../src/projections/linear.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"tree.d.ts","sourceRoot":"","sources":["../../src/projections/tree.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAezD,OAAO,EAA0B,KAAK,KAAK,EAAmB,MAAM,aAAa,CAAC;AAClF,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AA4MhD,wBAAgB,SAAS,CAAC,QAAQ,EAAE,kBAAkB,EAAE,OAAO,GAAE,YAAiB,GAAG,KAAK,CAgEzF"}
1
+ {"version":3,"file":"tree.d.ts","sourceRoot":"","sources":["../../src/projections/tree.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAezD,OAAO,EAA0B,KAAK,KAAK,EAAmB,MAAM,aAAa,CAAC;AAClF,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AA4MhD,wBAAgB,SAAS,CAAC,QAAQ,EAAE,kBAAkB,EAAE,OAAO,GAAE,YAAiB,GAAG,KAAK,CAmEzF"}
@@ -197,6 +197,9 @@ export function treeScene(document, options = {}) {
197
197
  const root = element('section', {
198
198
  class: 'ig-viewer ig-tree-view',
199
199
  'data-projection': 'tree',
200
+ // See `SceneOptions.density`; stamped on all three roots so a
201
+ // projection toggle cannot drop the host's decision.
202
+ 'data-density': options.density,
200
203
  'data-ig-condition': conditionKind(document, options.chrome),
201
204
  'aria-label': 'issue decomposition',
202
205
  },
@@ -1 +1 @@
1
- {"version":3,"file":"tree.js","sourceRoot":"","sources":["../../src/projections/tree.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tree.js","sourceRoot":"","sources":["../../src/projections/tree.ts"],"names":[],"mappings":"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"}
package/dist/styles.d.ts CHANGED
@@ -22,5 +22,5 @@
22
22
  * hairlines — and a host that wants the panel suppressed overrides the four
23
23
  * properties on `.ig-viewer`.
24
24
  */
25
- export declare const viewerStylesheet = "\n.ig-viewer {\n background: var(--ig-bg);\n border: var(--ig-stroke) solid var(--ig-line);\n border-radius: var(--ig-radius-large);\n color: var(--ig-text-body);\n font-family: var(--ig-font-ui);\n font-size: var(--ig-font-size);\n line-height: var(--ig-line-height);\n overflow: hidden;\n position: relative;\n}\n\n.ig-viewer *,\n.ig-viewer *::before,\n.ig-viewer *::after {\n box-sizing: border-box;\n}\n\n.ig-viewer :focus-visible {\n outline: var(--ig-focus-ring) solid var(--ig-focus);\n outline-offset: calc(var(--ig-focus-ring) * -1);\n}\n\n.ig-list {\n list-style: none;\n margin: 0;\n padding: 0;\n}\n\n/* \u2500\u2500 the panel header \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n\n/* Present only when the host stated a fact; a document with none draws no\n header at all, which is what keeps the pure-graph markup unchanged. */\n.ig-header {\n background: var(--ig-surface-2);\n border-bottom: var(--ig-stroke) solid var(--ig-line);\n display: flex;\n flex-direction: column;\n gap: var(--ig-space);\n margin: 0;\n padding: var(--ig-space-loose) var(--ig-space-wide);\n}\n\n.ig-header-lead {\n align-items: center;\n display: inline-flex;\n gap: var(--ig-space-snug);\n}\n\n/* The segmented projection toggle \u00A716a and \u00A716b both draw. One rounded outline\n around two buttons, the pressed one filled with the accent. */\n.ig-toggle {\n border: var(--ig-stroke) solid var(--ig-line);\n border-radius: var(--ig-radius);\n display: inline-flex;\n overflow: hidden;\n}\n\n.ig-toggle-option {\n align-items: center;\n background: none;\n border: 0;\n color: var(--ig-text-body);\n cursor: pointer;\n display: inline-flex;\n font: inherit;\n font-size: var(--ig-font-size-small);\n gap: var(--ig-space-tight);\n padding: var(--ig-space-micro) var(--ig-space-snug);\n}\n\n.ig-toggle-option[aria-pressed='true'] {\n background: var(--ig-accent);\n color: var(--ig-bg);\n font-weight: var(--ig-weight-strong);\n}\n\n.ig-header-top {\n align-items: center;\n display: flex;\n flex-wrap: wrap;\n gap: var(--ig-space);\n justify-content: space-between;\n}\n\n/* The panel's own name, at the tracking the frame gives a frame-level label. */\n.ig-header-label {\n color: var(--ig-accent);\n font-family: var(--ig-font-mono);\n font-size: var(--ig-font-size-small);\n letter-spacing: var(--ig-tracking-label);\n text-transform: uppercase;\n}\n\n/* THE COUNTS ARE CHIPS, NOT A SENTENCE. The frame gives each tally its own\n outline and tints only the one a reader acts on \u2014 \"how many could run right\n now, against the cap\" \u2014 so the accent is spent once instead of on a whole\n line of muted prose. */\n.ig-counts {\n align-items: center;\n display: flex;\n flex-wrap: wrap;\n gap: var(--ig-space-snug);\n margin: 0;\n}\n\n.ig-count-chip {\n background: var(--ig-bg);\n border: var(--ig-stroke) solid var(--ig-line);\n border-radius: var(--ig-radius);\n color: var(--ig-text-body);\n font-family: var(--ig-font-mono);\n font-size: var(--ig-font-size-small);\n font-variant-numeric: tabular-nums;\n padding: var(--ig-space-micro) var(--ig-space-snug);\n}\n\n.ig-count-chip[data-count='ready'] {\n background: color-mix(in srgb, var(--ig-accent) var(--ig-tint-fill), transparent);\n border-color: color-mix(in srgb, var(--ig-accent) var(--ig-tint-border), transparent);\n color: var(--ig-text);\n}\n\n.ig-freshness {\n align-items: center;\n color: var(--ig-text-muted);\n display: inline-flex;\n font-family: var(--ig-font-mono);\n font-size: var(--ig-font-size-small);\n font-variant-numeric: tabular-nums;\n gap: var(--ig-space-tight);\n margin: 0;\n}\n\n/* STALE GOES GOLD, as the design draws it. The gold this palette already holds\n is the conflict state's \u2014 \"the document moved upstream\" \u2014 and a stale mirror\n is that fact about the whole document, so the state hue is reused rather\n than a token added for one word. No new token: the theme's token list is\n the contract every host theme has to fill. */\n.ig-freshness[data-stale='true'] {\n color: var(--ig-state-conflict);\n}\n\n/* A control the viewer publishes and does not wire: the UA button reset, so it\n reads as the inline control the frame draws beside the stamp. */\n.ig-refresh,\n.ig-size {\n background: none;\n border: var(--ig-stroke) solid var(--ig-line);\n border-radius: var(--ig-radius);\n color: var(--ig-text);\n cursor: pointer;\n font: inherit;\n padding: var(--ig-space-micro) var(--ig-space-snug);\n}\n\n.ig-refresh:hover,\n.ig-size:hover {\n border-color: var(--ig-accent);\n color: var(--ig-accent);\n}\n\n/* \u2500\u2500 the panel-level notice \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n\n/* WHAT THE HOST SAYS IS TRUE OF THE WHOLE PANEL, drawn between the NOW row and\n the order it qualifies. Its own surface, so it reads as a statement about the\n panel rather than as a row that lost its rank. */\n.ig-notice {\n align-items: flex-start;\n background: var(--ig-surface-2);\n border: var(--ig-stroke) solid var(--ig-line);\n border-radius: var(--ig-radius);\n display: flex;\n gap: var(--ig-space-snug);\n justify-content: space-between;\n padding: var(--ig-space-snug) var(--ig-space-loose);\n}\n\n.ig-notice-text {\n display: flex;\n flex-direction: column;\n gap: var(--ig-space-micro);\n}\n\n.ig-notice-head {\n align-items: center;\n color: var(--ig-text);\n display: flex;\n gap: var(--ig-space-tight);\n margin: 0;\n}\n\n.ig-notice-body {\n color: var(--ig-text-body);\n margin: 0;\n}\n\n/* A COUNT, SO IT SITS ON THE FIGURE FACE. A progress figure is read as a number,\n and the proportional face makes its digits wander the way a rank column's do. */\n.ig-notice-progress {\n color: var(--ig-text-muted);\n font-family: var(--ig-font-mono);\n font-size: var(--ig-font-size-small);\n font-variant-numeric: tabular-nums;\n margin: 0;\n}\n\n/* THE SAME CONTROL RESET THE REFRESH BUTTON TAKES, and for the same reason: it\n is published and not wired, so it must look like the inline control the frame\n draws rather than like a UA button. The anchor arm gets it too \u2014 a host that\n routes instead of acting should not get a different-looking affordance. */\n.ig-notice-action {\n background: none;\n border: var(--ig-stroke) solid var(--ig-line);\n border-radius: var(--ig-radius);\n color: var(--ig-text);\n cursor: pointer;\n font: inherit;\n padding: var(--ig-space-micro) var(--ig-space-snug);\n text-decoration: none;\n white-space: nowrap;\n}\n\n.ig-notice-action:hover {\n border-color: var(--ig-accent);\n color: var(--ig-accent);\n}\n\n/* GOLD ON FIRST IMPORT, and gold is the conflict state's hue \u2014 the same reuse\n the stale stamp already makes, for the same reason: the token list is the\n contract every host theme has to fill, so a token added for one state is a\n theme every host has to revisit.\n\n AND NOTHING FOR THE ERROR ARM. The design makes exactly one panel-level outline\n claim, and it is this one; an error is drawn calm on purpose, because its own\n sentence is that settings are safe and the pipeline is still running. A\n failure-hued outline around the whole panel would say the opposite. */\n.ig-viewer[data-ig-condition='importing'] {\n outline: var(--ig-stroke) solid var(--ig-state-conflict);\n outline-offset: var(--ig-space-micro);\n}\n\n.ig-notice[data-ig-condition='importing'] .ig-notice-head {\n color: var(--ig-state-conflict);\n}\n\n.ig-notice[data-ig-condition='error'] .ig-notice-head {\n color: var(--ig-state-failed);\n}\n\n/* \u2500\u2500 the adoption line \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n\n/* ONE QUIET LINE, which is the whole of what the design asks for here: the\n day-one panel has to read complete and calm, and a block explaining what the\n reader is missing is the opposite of calm. */\n.ig-adoption {\n align-items: center;\n color: var(--ig-text-muted);\n display: flex;\n font-size: var(--ig-font-size-small);\n gap: var(--ig-space-tight);\n margin: 0;\n}\n\n/* THE SENTENCE IS NOT THE LINK. Underlining the whole line made the quietest\n element on the panel its loudest; the link is a short label beside it. */\n.ig-adoption-text {\n color: var(--ig-text-muted);\n}\n\n.ig-adoption-link {\n color: var(--ig-text-muted);\n margin-left: auto;\n text-decoration: underline;\n white-space: nowrap;\n}\n\n.ig-adoption-link:hover {\n color: var(--ig-accent);\n}\n\n/* PUBLISHED, NOT PERFORMED. The viewer never removes its own line; the host\n re-renders without the note. */\n.ig-adoption-dismiss {\n background: none;\n border: 0;\n color: var(--ig-text-muted);\n cursor: pointer;\n font: inherit;\n padding: 0;\n text-decoration: underline;\n}\n\n.ig-adoption-dismiss:hover {\n color: var(--ig-accent);\n}\n\n/* \u2500\u2500 working now \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n\n.ig-now {\n list-style: none;\n margin: 0;\n padding: 0;\n}\n\n/* A BAND, NOT A CARD. The frame runs it full-bleed across the panel with a\n wash and an accent rail down its leading edge \u2014 the same treatment the shell\n gives anything in flight \u2014 so it reads as a state of the panel rather than\n as the first row of the order. */\n.ig-now-row {\n background: color-mix(in srgb, var(--ig-accent) var(--ig-tint-wash), transparent);\n border-bottom: var(--ig-stroke) solid var(--ig-line);\n box-shadow: inset var(--ig-band-rail) 0 0 var(--ig-accent);\n column-gap: var(--ig-space);\n display: grid;\n grid-template-columns: auto 1fr auto;\n align-items: center;\n padding: var(--ig-space) var(--ig-space-wide);\n}\n\n.ig-now-mark {\n background: var(--ig-accent);\n border-radius: var(--ig-radius-small);\n color: var(--ig-bg);\n font-family: var(--ig-font-mono);\n font-size: var(--ig-font-size-pill);\n font-weight: var(--ig-weight-strong);\n letter-spacing: var(--ig-tracking-pill);\n padding: var(--ig-space-micro) var(--ig-space-tight);\n text-transform: uppercase;\n}\n\n.ig-now-phase {\n align-items: center;\n color: var(--ig-accent);\n display: inline-flex;\n font-family: var(--ig-font-mono);\n font-size: var(--ig-font-size-small);\n gap: var(--ig-space-tight);\n white-space: nowrap;\n}\n\n/* The pulse is the frame's, and it is the one moving thing in the panel. */\n.ig-now-pulse {\n background: var(--ig-accent);\n block-size: var(--ig-space-tight);\n border-radius: 50%;\n display: inline-block;\n inline-size: var(--ig-space-tight);\n}\n\n/* \u2500\u2500 the order \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n\n/* TWO COLUMNS, WHICH IS THE FRAME'S GRID EXACTLY. The rank track holds the\n figure and the readiness dot stacked, and everything else is one body\n column, so a row has exactly two children and nothing can auto-place into\n the rank track and set its width. That was a real defect: a single\n relationship badge left unplaced widened the rank column for the whole list\n and squeezed every title to pay for it. */\n.ig-slot {\n border-bottom: var(--ig-stroke) solid var(--ig-line);\n column-gap: var(--ig-space);\n display: grid;\n grid-template-columns: var(--ig-rank-column) 1fr;\n min-height: var(--ig-row-min-height);\n padding: var(--ig-row-padding-block) var(--ig-space-wide);\n}\n\n/* THE ONE ROW GROUND THE FRAME DRAWS, and it is not a stripe. A together unit\n is the compound station, and the tint says so; the other ranked rows carry\n no background at all. */\n.ig-slot[data-unit='true'] {\n background: color-mix(in srgb, var(--ig-accent) var(--ig-tint-unit), transparent);\n}\n\n/* A HELD ROW IS HATCHED, NOT DASHED. It keeps its position in the sequence \u2014\n \"why isn't my P1 running\" is answerable in place \u2014 so it must read as\n unavailable without leaving the grid the rows above and below hang off. A\n dashed border around one row breaks that alignment; a ground does not. */\n.ig-slot[data-held='true'] {\n background-image: repeating-linear-gradient(\n 135deg,\n color-mix(in srgb, var(--ig-text) var(--ig-tint-unit), transparent) 0 var(--ig-space-tight),\n transparent var(--ig-space-tight) calc(var(--ig-space-tight) * 2)\n );\n}\n\n.ig-slot[aria-current='true'] {\n box-shadow: inset var(--ig-band-rail) 0 0 var(--ig-accent);\n}\n\n/* A CANVAS-OWNED NODE IS SELECTABLE TOO, and only the rail rows had a selected\n look \u2014 so clicking a gutter, excluded or tracker-held node set aria-current on\n the group and changed nothing a reader could see. A pointer does not normally\n raise :focus-visible either, so those selections had no visible state at all\n on the channel most likely to make them. Same accent the rail uses, so one\n selection reads the same whichever surface drew it. */\n.ig-node-group[aria-current='true'] .ig-node {\n stroke: var(--ig-accent);\n stroke-width: calc(var(--ig-stroke) * 2);\n}\n\n/* The rank track: figure over dot, centred, so the title column starts at one\n x on every row whether or not the row has a number to print. */\n.ig-rank-cell {\n align-items: center;\n display: flex;\n flex-direction: column;\n gap: var(--ig-space-tight);\n}\n\n.ig-rank {\n color: var(--ig-text);\n font-family: var(--ig-font-mono);\n font-size: var(--ig-font-size-rank);\n font-variant-numeric: tabular-nums;\n font-weight: var(--ig-weight-strong);\n line-height: 1;\n}\n\n.ig-rank[data-held='true'] {\n color: var(--ig-text-muted);\n font-weight: var(--ig-weight-regular);\n}\n\n.ig-row-body {\n display: flex;\n flex-direction: column;\n gap: var(--ig-space-snug);\n min-width: 0;\n}\n\n/* The title, the identity and the two-line pair they form: 2px apart, which is\n what makes them read as one object rather than as two rows of metadata. */\n.ig-row-head {\n display: flex;\n flex-direction: column;\n gap: var(--ig-space-micro);\n min-width: 0;\n}\n\n/* \u2500\u2500 readiness stations \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n\n.ig-station {\n block-size: var(--ig-station-size);\n border: var(--ig-stroke) solid var(--ig-station-held);\n border-radius: 50%;\n display: inline-block;\n inline-size: var(--ig-station-size);\n}\n\n.ig-station[data-fill='filled'] {\n background: var(--ig-station-ready);\n border-color: var(--ig-station-ready);\n}\n\n.ig-station[data-fill='hollow'] {\n background: transparent;\n border-color: var(--ig-station-pending);\n}\n\n.ig-station[data-fill='dashed'] {\n background: transparent;\n border-style: dashed;\n border-color: var(--ig-station-held);\n}\n\n/* \u2500\u2500 titles, identity, provenance \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n\n/* NOTHING TRUNCATES. The ellipsis this rule used to carry, against a FIXED row\n height, is the direct cause of the frame's titles arriving on screen as\n \"Retype the ca\u2026\" \u2014 a panel whose job is to say what the work is, declining\n to say what the work is. A row grows instead; --ig-row-min-height is a\n floor, not a height. anywhere covers the one case wrapping cannot: an\n unbroken token wider than the column, which would otherwise overflow the\n panel rather than the line. */\n.ig-title {\n color: var(--ig-text);\n font-size: var(--ig-font-size-row);\n overflow-wrap: anywhere;\n}\n\n.ig-slot[data-held='true'] .ig-title,\n.ig-footer .ig-title {\n color: var(--ig-text-body);\n}\n\n/* A held row's CONTENT recedes, not its position. The frame dims the body and\n leaves the rank track at full strength, so the row still reads as occupying\n the slot it would have taken. */\n.ig-slot[data-held='true'] .ig-row-body {\n opacity: 0.72;\n}\n\n/* The isolated-issue tally sits directly on the panel, outside the padded\n groups, so it carries the panel's own inset rather than none. */\n.ig-count {\n margin: 0;\n padding: var(--ig-space) var(--ig-space-wide);\n}\n\n.ig-id,\n.ig-count {\n color: var(--ig-text-muted);\n font-family: var(--ig-font-mono);\n font-size: var(--ig-font-size-small);\n font-variant-numeric: tabular-nums;\n}\n\n.ig-link {\n color: inherit;\n text-decoration: none;\n}\n\n.ig-link:hover {\n color: var(--ig-accent);\n text-decoration: underline;\n}\n\n/* THE PROVENANCE LINE IS NOT MUTED. It is the answer to \"why is this here\",\n which is the panel's whole reason to exist, so the frame gives it body text\n and lifts the named parts to the brightest ink on the page. Muting the whole\n sentence \u2014 which is what shipped \u2014 files the explanation under decoration. */\n.ig-provenance,\n.ig-hold,\n.ig-caveat {\n align-items: baseline;\n color: var(--ig-text-body);\n display: flex;\n font-family: var(--ig-font-mono);\n font-size: var(--ig-font-size-small);\n gap: var(--ig-space-tight);\n margin: 0;\n}\n\n.ig-provenance .ig-id,\n.ig-hold .ig-id,\n.ig-caveat .ig-id {\n color: var(--ig-text);\n}\n\n/* The turnstile the frame puts in front of every explanation, so the line reads\n as subordinate to the row above it without being dimmed. */\n.ig-turn {\n color: var(--ig-text-muted);\n font-size: var(--ig-font-size-micro);\n flex: 0 0 auto;\n}\n\n.ig-strike {\n text-decoration: line-through;\n}\n\n/* \u2500\u2500 edge badges \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n\n.ig-badges {\n display: flex;\n flex-wrap: wrap;\n gap: var(--ig-space-tight);\n}\n\n/* A TINTED CHIP, NOT A BARE OUTLINE. The frame fills every relationship chip\n with its own hue at a low alpha inside a heavier border of the same hue;\n drawn as an outline alone the badge row reads as a row of empty boxes, and\n the hue channel carries a third of the weight the design gives it. The two\n alphas are the theme's, so a host retinting a relationship retints its chip. */\n.ig-badge {\n align-items: center;\n background: var(--ig-surface-2);\n border: var(--ig-stroke) solid var(--ig-line);\n border-radius: var(--ig-radius-small);\n color: var(--ig-text);\n display: inline-flex;\n font-family: var(--ig-font-mono);\n font-size: var(--ig-font-size-micro);\n gap: var(--ig-space-tight);\n padding: var(--ig-space-micro) var(--ig-space-tight);\n}\n\n/* THE HUE IS A BORDER AND A FILL HERE, NOT A TEXT COLOUR \u2014 the theme holds the\n edge hues to the 3:1 NON-TEXT bar, and says so where it defines them, so\n painting badge LABELS with them contradicts the palette's own claim. It was\n not merely theoretical: at this size duplicate-of measured 3.98:1 on\n --ig-surface and decomposed-from 4.37:1, both under the 4.5:1 the text test\n asserts for every text colour. The label takes --ig-text, which that test\n already proves on all three surfaces, and the hue keeps the non-text use it\n was measured for. This is a DELIBERATE DEPARTURE from the frame, which tints\n its chip labels; the frame's own colour-blind-safety clause says hue is one\n of four redundant channels, and here it is carried by two of them.\n NO CHANNEL IS LOST. The dash pattern and the glyph are untouched, and the\n vocabulary test independently proves all five stay distinguishable with hue\n removed ENTIRELY, which is the stronger claim. */\n/* WRITTEN OUT PER EDGE RATHER THAN THROUGH ONE INTERMEDIATE PROPERTY. A\n an intermediate --ig-badge-hue set here and read here would be a property no\n theme and no layout declares, and styles.test.ts refuses those on purpose:\n the whole point of that guard is that every var() in this file names\n something a host or the layout actually sets. */\n.ig-badge[data-edge='blocked-by'] {\n background: color-mix(in srgb, var(--ig-edge-blocked-by) var(--ig-tint-fill), transparent);\n border-color: color-mix(in srgb, var(--ig-edge-blocked-by) var(--ig-tint-border), transparent);\n border-style: solid;\n}\n\n.ig-badge[data-edge='serialize-with'] {\n background: color-mix(in srgb, var(--ig-edge-serialize-with) var(--ig-tint-fill), transparent);\n border-color: color-mix(in srgb, var(--ig-edge-serialize-with) var(--ig-tint-border), transparent);\n border-style: double;\n}\n\n.ig-badge[data-edge='together-with'] {\n background: color-mix(in srgb, var(--ig-edge-together-with) var(--ig-tint-fill), transparent);\n border-color: color-mix(in srgb, var(--ig-edge-together-with) var(--ig-tint-border), transparent);\n border-style: solid;\n}\n\n.ig-badge[data-edge='duplicate-of'] {\n background: color-mix(in srgb, var(--ig-edge-duplicate-of) var(--ig-tint-fill), transparent);\n border-color: color-mix(in srgb, var(--ig-edge-duplicate-of) var(--ig-tint-border), transparent);\n border-style: dotted;\n}\n\n.ig-badge[data-edge='decomposed-from'] {\n background: color-mix(in srgb, var(--ig-edge-decomposed-from) var(--ig-tint-fill), transparent);\n border-color: color-mix(in srgb, var(--ig-edge-decomposed-from) var(--ig-tint-border), transparent);\n border-style: dashed;\n}\n\n/* A PROMOTION IS THE ONE CHIP THE FRAME ACCENTS. It is the most interesting\n event the panel can show \u2014 a low tier pulled to the top because it blocks a\n high one \u2014 and the design spends its accent on exactly that. */\n.ig-badge[data-priority='promoted'] {\n background: color-mix(in srgb, var(--ig-accent) var(--ig-tint-fill), transparent);\n border-color: color-mix(in srgb, var(--ig-accent) var(--ig-tint-border), transparent);\n}\n\n.ig-badge[data-evidence='verified'] {\n background: color-mix(in srgb, var(--ig-station-ready) var(--ig-tint-fill), transparent);\n border-color: color-mix(in srgb, var(--ig-station-ready) var(--ig-tint-border), transparent);\n}\n\n/* A caveat or hold-label chip carries no relationship hue: it is a word, not\n an edge, so it keeps the line colour the plain badge has. */\n.ig-badge[data-caveat],\n.ig-badge[data-hold] {\n color: var(--ig-text-body);\n}\n\n.ig-badge[data-caveat='preview-only'] {\n border-color: color-mix(in srgb, var(--ig-state-conflict) var(--ig-tint-border), transparent);\n}\n\n.ig-badge[data-not-ready='true'] {\n background: color-mix(in srgb, var(--ig-edge-blocked-by) var(--ig-tint-fill), transparent);\n border-color: color-mix(in srgb, var(--ig-edge-blocked-by) var(--ig-tint-border), transparent);\n}\n\n.ig-glyph {\n font-family: var(--ig-font-mono);\n}\n\n/* \u2500\u2500 the together unit: one rank, two issues \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n\n.ig-unit-mark {\n align-items: center;\n display: flex;\n gap: var(--ig-space-snug);\n}\n\n.ig-unit-pill {\n background: var(--ig-accent);\n border-radius: var(--ig-radius-small);\n color: var(--ig-bg);\n font-family: var(--ig-font-mono);\n font-size: var(--ig-font-size-pill);\n font-weight: var(--ig-weight-strong);\n letter-spacing: var(--ig-tracking-badge);\n padding: var(--ig-space-micro) var(--ig-space-tight);\n text-transform: uppercase;\n}\n\n.ig-unit-note {\n color: var(--ig-text-muted);\n font-family: var(--ig-font-mono);\n font-size: var(--ig-font-size-micro);\n}\n\n/* THE MEMBERS GET ONE LINE EACH. Joining them with a separator \u2014 which is what\n shipped \u2014 makes a two-issue unit read as one issue with a long title, and\n the unit is the one place the design draws an enclosure to say the opposite. */\n/* THE UNIT'S ENCLOSURE IS THE together-with MARK. It is drawn at the\n connector's hairline width, which is what that token has always meant: finer\n than an ordinary edge, so the enclosure stays the primary read. */\n.ig-unit {\n border: var(--ig-stroke-connector) solid color-mix(in srgb, var(--ig-edge-together-with) var(--ig-tint-border), transparent);\n border-radius: var(--ig-radius);\n list-style: none;\n margin: 0;\n overflow: hidden;\n padding: 0;\n}\n\n.ig-unit-member {\n display: flex;\n flex-direction: column;\n gap: var(--ig-space-micro);\n padding: var(--ig-space-snug) var(--ig-space);\n}\n\n.ig-unit-member + .ig-unit-member {\n border-top: var(--ig-stroke) solid var(--ig-line);\n}\n\n.ig-unit-member .ig-title {\n font-size: var(--ig-font-size-compact);\n}\n\n.ig-unit-member .ig-id {\n font-size: var(--ig-font-size-meta);\n}\n\n/* \u2500\u2500 the footer group: holds that earn no rank slot \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n\n.ig-footer {\n background: var(--ig-surface-2);\n padding: var(--ig-space) var(--ig-space-wide);\n}\n\n.ig-footer-head {\n align-items: center;\n display: flex;\n gap: var(--ig-space);\n justify-content: space-between;\n}\n\n.ig-footer-title {\n color: var(--ig-text-body);\n font-size: var(--ig-font-size-compact);\n margin: 0;\n}\n\n.ig-footer-labels {\n color: var(--ig-text-muted);\n font-family: var(--ig-font-mono);\n font-size: var(--ig-font-size-meta);\n}\n\n/* ONE LINE EACH, and the frame is explicit about why: these are not facts\n about the work, so they earn no rank slot and no explanation block. A full\n row here \u2014 station, badges, provenance \u2014 was claiming the opposite. */\n.ig-footer .ig-list {\n display: flex;\n flex-direction: column;\n gap: var(--ig-space-snug);\n margin-top: var(--ig-space);\n}\n\n.ig-footer-row {\n align-items: center;\n display: flex;\n gap: var(--ig-space-snug);\n opacity: 0.72;\n}\n\n.ig-footer-row .ig-title {\n font-size: var(--ig-font-size-compact);\n}\n\n.ig-footer-row .ig-id {\n font-size: var(--ig-font-size-meta);\n}\n\n.ig-footer-row[aria-current='true'] {\n opacity: 1;\n}\n\n/* \u2500\u2500 the graph canvas \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n\n/* The stage carries the LAYOUT's own size, so one SVG unit is one CSS pixel\n and an absolutely-positioned rail row lands on the node it names. A\n percentage-width canvas would rescale under the rail and drift. It scrolls\n rather than shrinking, because shrinking would silently break that. */\n.ig-stage {\n block-size: var(--ig-stage-h);\n inline-size: var(--ig-stage-w);\n max-inline-size: 100%;\n overflow-x: auto;\n overflow-y: hidden;\n position: relative;\n}\n\n.ig-canvas {\n block-size: var(--ig-stage-h);\n display: block;\n inline-size: var(--ig-stage-w);\n}\n\n/* The three column headers, which say what each column is FOR. Without them\n the gutters read as two more piles of issues rather than as the two answers\n the spine deliberately keeps off itself. */\n.ig-column-head {\n color: var(--ig-text-muted);\n font-family: var(--ig-font-mono);\n font-size: var(--ig-font-size-pill);\n letter-spacing: var(--ig-tracking-group);\n position: absolute;\n text-transform: uppercase;\n inset-block-start: var(--ig-space-snug);\n inset-inline-start: var(--ig-col-x);\n}\n\n.ig-column-head[data-column='spine'] {\n color: var(--ig-accent);\n}\n\n/* The node cards and the station column, sitting on the coordinates the layout\n computed. */\n.ig-rail {\n inset: 0;\n pointer-events: none;\n position: absolute;\n}\n\n.ig-rail-row {\n block-size: auto;\n inline-size: var(--ig-row-w);\n inset-block-start: var(--ig-row-y);\n inset-inline-start: var(--ig-row-x);\n min-block-size: var(--ig-row-h);\n pointer-events: auto;\n position: absolute;\n}\n\n/* A CARD, NOT A LABELLED RECTANGLE. Drawing the node's text in SVG is what\n forced every title through a width fit and out the other side truncated; an\n HTML card wraps, so the acceptance criterion \"nothing truncates\" is met by\n construction rather than by choosing a wider box. */\n.ig-card {\n background: var(--ig-surface);\n border: var(--ig-stroke) solid var(--ig-line);\n border-radius: var(--ig-radius-large);\n display: flex;\n flex-direction: column;\n gap: var(--ig-space-tight);\n padding: var(--ig-space) var(--ig-space);\n}\n\n.ig-card .ig-title {\n font-size: var(--ig-font-size-compact);\n}\n\n.ig-card .ig-id {\n font-size: var(--ig-font-size-meta);\n}\n\n.ig-card[data-column='left'] {\n background: var(--ig-surface-2);\n border-color: color-mix(in srgb, var(--ig-edge-blocked-by) var(--ig-tint-border), transparent);\n}\n\n/* NEVER WORKED READS AS NEVER DRAWN IN. The right gutter's two node states are\n the design's own: a dashed provenance origin and a dotted duplicate, both on\n no ground at all, so the eye files them as outside the order before reading\n a word. */\n.ig-card[data-column='right'] {\n background: transparent;\n border-style: dashed;\n opacity: 0.8;\n}\n\n.ig-card[data-exclusion='true'] {\n border-style: dotted;\n border-color: color-mix(in srgb, var(--ig-edge-duplicate-of) var(--ig-tint-border), transparent);\n}\n\n.ig-card[data-held='true'] {\n background: transparent;\n border-style: dashed;\n opacity: 0.75;\n}\n\n.ig-card[data-now='true'] {\n background: color-mix(in srgb, var(--ig-accent) var(--ig-tint-wash), transparent);\n border-color: color-mix(in srgb, var(--ig-accent) var(--ig-tint-border), transparent);\n}\n\n.ig-card[data-unit='true'] {\n background: color-mix(in srgb, var(--ig-accent) var(--ig-tint-unit), transparent);\n border-color: var(--ig-accent);\n}\n\n.ig-rail-row[aria-current='true'] .ig-card {\n border-color: var(--ig-accent);\n box-shadow: 0 0 0 var(--ig-band-rail) color-mix(in srgb, var(--ig-accent) var(--ig-tint-border), transparent);\n}\n\n/* The station column: a disc on the spine, carrying the rank the row would\n otherwise have to be read for. */\n.ig-spine-station {\n align-items: center;\n background: var(--ig-bg);\n block-size: var(--ig-station-box);\n border: calc(var(--ig-stroke) * 2) solid var(--ig-station-ready);\n border-radius: 50%;\n box-shadow: 0 0 0 var(--ig-station-halo) var(--ig-bg);\n color: var(--ig-station-pending);\n display: flex;\n font-family: var(--ig-font-mono);\n font-size: var(--ig-font-size-small);\n font-weight: var(--ig-weight-heavy);\n inline-size: var(--ig-station-box);\n inset-block-start: var(--ig-station-y);\n inset-inline-start: var(--ig-station-x);\n justify-content: center;\n pointer-events: none;\n position: absolute;\n}\n\n.ig-spine-station[data-fill='filled'] {\n background: var(--ig-station-ready);\n color: var(--ig-bg);\n}\n\n.ig-spine-station[data-fill='hollow'] {\n border-color: var(--ig-station-ready);\n color: var(--ig-station-ready);\n}\n\n.ig-spine-station[data-fill='dashed'] {\n border-style: dashed;\n border-width: var(--ig-stroke);\n border-color: var(--ig-station-held);\n color: var(--ig-text-muted);\n}\n\n/* The serialize hold is gold in the frame, on the station as well as the arc:\n a station that waits for a PEER is a different fact from one that waits for\n a rank above it. */\n/* THE RING TAKES THE HUE, THE DIGIT DOES NOT. \u00A716b draws both in gold, and the\n theme holds every edge hue to the 3:1 NON-TEXT bar \u2014 so painting the rank\n figure with it makes a claim the palette does not support, on the one glyph\n in the station a reader has to actually read. The hue keeps the ring, which\n is the channel it was measured for; the number keeps the ink every text\n contrast test already proves. */\n.ig-spine-station[data-wait='serialize'] {\n border-color: var(--ig-edge-serialize-with);\n color: var(--ig-text);\n}\n\n.ig-spine {\n stroke: var(--ig-line);\n stroke-width: calc(var(--ig-stroke) * 2);\n}\n\n.ig-more {\n color: var(--ig-text-muted);\n font-family: var(--ig-font-mono);\n font-size: var(--ig-font-size-micro);\n inline-size: var(--ig-row-w);\n inset-block-start: var(--ig-row-y);\n inset-inline-start: var(--ig-row-x);\n position: absolute;\n text-align: center;\n}\n\n.ig-node {\n fill: var(--ig-surface);\n stroke: var(--ig-line);\n stroke-width: var(--ig-stroke);\n}\n\n.ig-node[data-held='true'] {\n fill: var(--ig-surface-2);\n stroke-dasharray: 4 3;\n}\n\n.ig-node-label {\n fill: var(--ig-text);\n font-family: var(--ig-font-ui);\n font-size: var(--ig-font-size-small);\n}\n\n.ig-edge {\n fill: none;\n stroke-width: var(--ig-stroke);\n}\n\n.ig-edge[data-edge='blocked-by'] { stroke: var(--ig-edge-blocked-by); }\n.ig-edge[data-edge='serialize-with'] { stroke: var(--ig-edge-serialize-with); }\n.ig-edge[data-edge='together-with'] { stroke: var(--ig-edge-together-with); }\n.ig-edge[data-edge='duplicate-of'] { stroke: var(--ig-edge-duplicate-of); }\n.ig-edge[data-edge='decomposed-from'] { stroke: var(--ig-edge-decomposed-from); }\n\n/* The dash pattern is set per element from the edge vocabulary, never here \u2014\n one source for the channel the colour-blind-safety claim rests on. Drawn only\n in the legend now: a together unit is ONE card with its members listed inside\n it, so the canvas has no pair of boxes to surround. */\n.ig-enclosure {\n fill: none;\n stroke: var(--ig-edge-together-with);\n stroke-width: var(--ig-stroke);\n}\n\n/* currentColor on the marker resolves to the inherited text colour, not to the\n edge's stroke \u2014 so a terminal has to be given the hue explicitly or it renders\n in body text and the fourth channel silently collapses. */\n.ig-terminal {\n color: var(--ig-text-body);\n stroke-width: var(--ig-stroke);\n}\n\n.ig-terminal[data-edge='blocked-by'] { color: var(--ig-edge-blocked-by); }\n.ig-terminal[data-edge='serialize-with'] { color: var(--ig-edge-serialize-with); }\n.ig-terminal[data-edge='together-with'] { color: var(--ig-edge-together-with); }\n.ig-terminal[data-edge='duplicate-of'] { color: var(--ig-edge-duplicate-of); }\n.ig-terminal[data-edge='decomposed-from'] { color: var(--ig-edge-decomposed-from); }\n\n/* \u2500\u2500 refusals and empty states \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n\n.ig-refusal,\n.ig-empty {\n background: var(--ig-surface-2);\n border: var(--ig-stroke) solid var(--ig-line);\n border-radius: var(--ig-radius);\n color: var(--ig-text-body);\n margin: var(--ig-space-wide);\n padding: var(--ig-space);\n}\n\n.ig-refusal-next {\n color: var(--ig-text);\n margin: var(--ig-space-tight) 0 0;\n}\n\n/* The capsule is INFORMATIONAL \u2014 a plain list item again. It was briefly a\n button, to make the refusal's advertised action keyboard-reachable; the\n action itself has since gone, because this package cannot narrow a document\n and so could never complete it. With the control removed the UA button reset\n goes too: there is no button look left to undo. */\n.ig-capsule {\n align-items: baseline;\n background: var(--ig-surface);\n border: var(--ig-stroke) solid var(--ig-line);\n border-radius: var(--ig-radius);\n display: flex;\n gap: var(--ig-space);\n margin-top: var(--ig-space-tight);\n padding: var(--ig-space-tight) var(--ig-space);\n}\n\n.ig-refusal-omitted {\n color: var(--ig-text-muted);\n font-size: var(--ig-font-size-small);\n margin: var(--ig-space-tight) 0 0;\n}\n\n/* \u2500\u2500 the decomposition tree \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n\n.ig-tree,\n.ig-tree .ig-list {\n list-style: none;\n margin: 0;\n padding: 0;\n}\n\n.ig-tree {\n padding: var(--ig-space) var(--ig-space-wide);\n}\n\n.ig-tree .ig-list {\n border-left: var(--ig-stroke) dashed var(--ig-edge-decomposed-from);\n margin-left: var(--ig-space);\n padding-left: var(--ig-space);\n}\n\n.ig-tree-item {\n padding: var(--ig-space-tight) 0;\n}\n\n/* \u2500\u2500 legend \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n\n/* A FOOTER BAR, WHERE \u00A716b PUTS IT, and worded rather than glyph-only. It sits\n under the drawing it explains, carries a drawn sample of each line so the\n dash and terminal channels are legible cold, and ends with the readiness key\n the station fills need. */\n.ig-legend {\n align-items: center;\n background: var(--ig-surface-2);\n border: 0;\n border-top: var(--ig-stroke) solid var(--ig-line);\n display: flex;\n flex-wrap: wrap;\n gap: var(--ig-space-wide);\n margin: 0;\n padding: var(--ig-space) var(--ig-space-wide);\n}\n\n.ig-legend-caption {\n color: var(--ig-text-muted);\n font-family: var(--ig-font-mono);\n font-size: var(--ig-font-size-pill);\n letter-spacing: var(--ig-tracking-group);\n padding: 0;\n text-transform: uppercase;\n}\n\n.ig-legend-item {\n align-items: center;\n color: var(--ig-text-body);\n display: inline-flex;\n font-family: var(--ig-font-mono);\n font-size: var(--ig-font-size-meta);\n gap: var(--ig-space-tight);\n}\n\n.ig-legend-keys {\n display: inline-flex;\n gap: var(--ig-space-loose);\n margin-inline-start: auto;\n}\n";
25
+ export declare const viewerStylesheet: string;
26
26
  //# sourceMappingURL=styles.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"styles.d.ts","sourceRoot":"","sources":["../src/styles.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,eAAO,MAAM,gBAAgB,qltCAgmC5B,CAAC"}
1
+ {"version":3,"file":"styles.d.ts","sourceRoot":"","sources":["../src/styles.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AA0RH,eAAO,MAAM,gBAAgB,QAiyC5B,CAAC"}