@issuegraph/viewer 0.5.0 → 0.10.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/dist/clusters.d.ts +116 -0
- package/dist/clusters.d.ts.map +1 -1
- package/dist/clusters.js +85 -2
- package/dist/clusters.js.map +1 -1
- package/dist/document.d.ts +76 -5
- package/dist/document.d.ts.map +1 -1
- package/dist/document.js +19 -1
- package/dist/document.js.map +1 -1
- package/dist/index.d.ts +16 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -2
- package/dist/index.js.map +1 -1
- package/dist/layout.d.ts +28 -0
- package/dist/layout.d.ts.map +1 -1
- package/dist/layout.js +7 -2
- package/dist/layout.js.map +1 -1
- package/dist/marks.d.ts +105 -0
- package/dist/marks.d.ts.map +1 -0
- package/dist/marks.js +430 -0
- package/dist/marks.js.map +1 -0
- package/dist/navigation.d.ts.map +1 -1
- package/dist/navigation.js +31 -0
- package/dist/navigation.js.map +1 -1
- package/dist/parts.d.ts +23 -7
- package/dist/parts.d.ts.map +1 -1
- package/dist/parts.js +80 -37
- package/dist/parts.js.map +1 -1
- package/dist/projections/graph.d.ts +15 -0
- package/dist/projections/graph.d.ts.map +1 -1
- package/dist/projections/graph.js +91 -35
- package/dist/projections/graph.js.map +1 -1
- package/dist/projections/linear.d.ts +116 -15
- package/dist/projections/linear.d.ts.map +1 -1
- package/dist/projections/linear.js +171 -69
- package/dist/projections/linear.js.map +1 -1
- package/dist/projections/tree.d.ts.map +1 -1
- package/dist/projections/tree.js +15 -4
- package/dist/projections/tree.js.map +1 -1
- package/dist/skeleton.d.ts +63 -0
- package/dist/skeleton.d.ts.map +1 -0
- package/dist/skeleton.js +108 -0
- package/dist/skeleton.js.map +1 -0
- package/dist/styles.d.ts +1 -1
- package/dist/styles.d.ts.map +1 -1
- package/dist/styles.js +636 -24
- package/dist/styles.js.map +1 -1
- package/dist/theme.d.ts +1 -1
- package/dist/theme.d.ts.map +1 -1
- package/dist/theme.js +47 -0
- package/dist/theme.js.map +1 -1
- package/package.json +1 -1
|
@@ -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,
|
|
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,CA2EzF"}
|
package/dist/projections/tree.js
CHANGED
|
@@ -143,7 +143,7 @@ function treeRow(document, key, level, hasChildren, options, focused) {
|
|
|
143
143
|
outOfSet === undefined
|
|
144
144
|
? null
|
|
145
145
|
: element('p', { class: 'ig-provenance' }, [
|
|
146
|
-
`decomposed from ${outOfSet}, which is
|
|
146
|
+
`decomposed from ${outOfSet}, which is not in this backlog`,
|
|
147
147
|
]),
|
|
148
148
|
// A SPEC LITERAL, not `element()`. That helper FILTERS its children, which
|
|
149
149
|
// copies the array — so the list this row hands back would no longer be
|
|
@@ -192,13 +192,24 @@ export function treeScene(document, options = {}) {
|
|
|
192
192
|
? // THE HOST'S NOTICE IS THE PANEL'S ONE CAUSE STATEMENT — see `linear.ts`.
|
|
193
193
|
statesItsOwnCause(document)
|
|
194
194
|
? null
|
|
195
|
-
: emptyState('
|
|
196
|
-
: element('ul', { class: 'ig-tree ig-list', 'aria-label': '
|
|
195
|
+
: emptyState('No issues yet, so there is nothing to show.')
|
|
196
|
+
: element('ul', { class: 'ig-tree ig-list', 'aria-label': 'sub-issues' }, buildForestElements(document, forest, options, focused));
|
|
197
197
|
const root = element('section', {
|
|
198
198
|
class: 'ig-viewer ig-tree-view',
|
|
199
199
|
'data-projection': 'tree',
|
|
200
|
+
// See `SceneOptions.frame`; stamped on all three roots, because the
|
|
201
|
+
// container that declines the frame does not know which projection it
|
|
202
|
+
// was handed.
|
|
203
|
+
'data-frame': options.frame === false ? 'none' : undefined,
|
|
204
|
+
// See `SceneOptions.dockLegend`; stamped on all three roots, because every
|
|
205
|
+
// projection draws the same legend and the container's scrollport does not
|
|
206
|
+
// change with the projection.
|
|
207
|
+
'data-legend': options.dockLegend === true ? 'docked' : undefined,
|
|
208
|
+
// See `SceneOptions.density`; stamped on all three roots so a
|
|
209
|
+
// projection toggle cannot drop the host's decision.
|
|
210
|
+
'data-density': options.density,
|
|
200
211
|
'data-ig-condition': conditionKind(document, options.chrome),
|
|
201
|
-
'aria-label': '
|
|
212
|
+
'aria-label': 'issues and their sub-issues',
|
|
202
213
|
},
|
|
203
214
|
// The legend last, as a footer bar, the way §16b draws it — one placement
|
|
204
215
|
// for all three projections, so a reader meets the grammar in one place.
|
|
@@ -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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"}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `renderViewerSkeleton` — what the viewer draws before there is a document.
|
|
3
|
+
*
|
|
4
|
+
* ## Why the package draws it, and the host only styles it
|
|
5
|
+
*
|
|
6
|
+
* A viewer mounted before its data arrives had two choices and both were wrong.
|
|
7
|
+
* Rendered over an empty document it said "nothing is in the order", which is
|
|
8
|
+
* a claim about a backlog nobody has read yet. Held back by the host instead,
|
|
9
|
+
* the host drew its own placeholder — a guess at this package's layout that
|
|
10
|
+
* jumped when the real rows landed and that every host had to rewrite.
|
|
11
|
+
*
|
|
12
|
+
* So the SHAPE is this package's: the skeleton rows use the same `.ig-slot`
|
|
13
|
+
* geometry the order uses, so a placeholder row is exactly as tall as a real
|
|
14
|
+
* one at every density the container picks, and nothing moves on arrival. It
|
|
15
|
+
* is a pure function over no document, so a host can render it on the server
|
|
16
|
+
* — in a route's loading state — and the page-load placeholder, the
|
|
17
|
+
* waiting-for-data placeholder and the data all line up.
|
|
18
|
+
*
|
|
19
|
+
* The LOOK is the host's. Every placeholder is an `.ig-skeleton-block`,
|
|
20
|
+
* filled with `--ig-surface-2` and carrying no animation. This package ships
|
|
21
|
+
* no motion anywhere — the editor's sheet says why — so a host that wants its
|
|
22
|
+
* own pulse adds it to that one class, gated on its own reduced-motion rule,
|
|
23
|
+
* and the fill follows the host's theme like every other surface here.
|
|
24
|
+
*
|
|
25
|
+
* ## No word of its own
|
|
26
|
+
*
|
|
27
|
+
* The root is `aria-busy` always. It is a labelled `status` region only when
|
|
28
|
+
* the host supplies `label` — "Loading your issues" is a sentence in the
|
|
29
|
+
* host's language, and this package does not write one.
|
|
30
|
+
*/
|
|
31
|
+
import { type ElementSpec } from './element.ts';
|
|
32
|
+
import { type Theme } from './theme.ts';
|
|
33
|
+
export interface SkeletonOptions {
|
|
34
|
+
/** Which projection the placeholder stands in for. Defaults to `linear`. */
|
|
35
|
+
readonly projection?: 'linear' | 'graph' | 'tree' | undefined;
|
|
36
|
+
/** How many placeholder rows or cards to draw. Defaults to 8 rows, 3 cards. */
|
|
37
|
+
readonly rows?: number | undefined;
|
|
38
|
+
/**
|
|
39
|
+
* The host's words for what is loading, read to assistive technology. Absent,
|
|
40
|
+
* the region is marked busy and carries no text — this package writes none.
|
|
41
|
+
*/
|
|
42
|
+
readonly label?: string | undefined;
|
|
43
|
+
/** Draw the panel header's placeholder. Same meaning as `SceneOptions.chrome`. Defaults to `true`. */
|
|
44
|
+
readonly chrome?: boolean | undefined;
|
|
45
|
+
/** Same meaning as `SceneOptions.frame`. Defaults to `true`. */
|
|
46
|
+
readonly frame?: boolean | undefined;
|
|
47
|
+
readonly theme?: Theme | undefined;
|
|
48
|
+
/** The selector `themeCss` writes the custom properties onto. */
|
|
49
|
+
readonly themeSelector?: string | undefined;
|
|
50
|
+
}
|
|
51
|
+
export interface SkeletonResult {
|
|
52
|
+
readonly markup: string;
|
|
53
|
+
/** The stylesheet and the theme, in that order. Install both. */
|
|
54
|
+
readonly styles: string;
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* The placeholder's root, as a spec — exported so a composing surface (the
|
|
58
|
+
* editor's workspace skeleton) can place it inside its own zones.
|
|
59
|
+
*/
|
|
60
|
+
export declare function skeletonSpec(options?: SkeletonOptions): ElementSpec;
|
|
61
|
+
/** Render the placeholder a host shows before the viewer has a document. Pure and total. */
|
|
62
|
+
export declare function renderViewerSkeleton(options?: SkeletonOptions): SkeletonResult;
|
|
63
|
+
//# sourceMappingURL=skeleton.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"skeleton.d.ts","sourceRoot":"","sources":["../src/skeleton.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AAEH,OAAO,EAAE,KAAK,WAAW,EAAyB,MAAM,cAAc,CAAC;AACvE,OAAO,EAAE,KAAK,KAAK,EAA0B,MAAM,YAAY,CAAC;AAGhE,MAAM,WAAW,eAAe;IAC9B,4EAA4E;IAC5E,QAAQ,CAAC,UAAU,CAAC,EAAE,QAAQ,GAAG,OAAO,GAAG,MAAM,GAAG,SAAS,CAAC;IAC9D,+EAA+E;IAC/E,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACnC;;;OAGG;IACH,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACpC,sGAAsG;IACtG,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IACtC,gEAAgE;IAChE,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IACrC,QAAQ,CAAC,KAAK,CAAC,EAAE,KAAK,GAAG,SAAS,CAAC;IACnC,iEAAiE;IACjE,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC7C;AAED,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,iEAAiE;IACjE,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AA8CD;;;GAGG;AACH,wBAAgB,YAAY,CAAC,OAAO,GAAE,eAAoB,GAAG,WAAW,CA8BvE;AAED,4FAA4F;AAC5F,wBAAgB,oBAAoB,CAAC,OAAO,GAAE,eAAoB,GAAG,cAAc,CAMlF"}
|
package/dist/skeleton.js
ADDED
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `renderViewerSkeleton` — what the viewer draws before there is a document.
|
|
3
|
+
*
|
|
4
|
+
* ## Why the package draws it, and the host only styles it
|
|
5
|
+
*
|
|
6
|
+
* A viewer mounted before its data arrives had two choices and both were wrong.
|
|
7
|
+
* Rendered over an empty document it said "nothing is in the order", which is
|
|
8
|
+
* a claim about a backlog nobody has read yet. Held back by the host instead,
|
|
9
|
+
* the host drew its own placeholder — a guess at this package's layout that
|
|
10
|
+
* jumped when the real rows landed and that every host had to rewrite.
|
|
11
|
+
*
|
|
12
|
+
* So the SHAPE is this package's: the skeleton rows use the same `.ig-slot`
|
|
13
|
+
* geometry the order uses, so a placeholder row is exactly as tall as a real
|
|
14
|
+
* one at every density the container picks, and nothing moves on arrival. It
|
|
15
|
+
* is a pure function over no document, so a host can render it on the server
|
|
16
|
+
* — in a route's loading state — and the page-load placeholder, the
|
|
17
|
+
* waiting-for-data placeholder and the data all line up.
|
|
18
|
+
*
|
|
19
|
+
* The LOOK is the host's. Every placeholder is an `.ig-skeleton-block`,
|
|
20
|
+
* filled with `--ig-surface-2` and carrying no animation. This package ships
|
|
21
|
+
* no motion anywhere — the editor's sheet says why — so a host that wants its
|
|
22
|
+
* own pulse adds it to that one class, gated on its own reduced-motion rule,
|
|
23
|
+
* and the fill follows the host's theme like every other surface here.
|
|
24
|
+
*
|
|
25
|
+
* ## No word of its own
|
|
26
|
+
*
|
|
27
|
+
* The root is `aria-busy` always. It is a labelled `status` region only when
|
|
28
|
+
* the host supplies `label` — "Loading your issues" is a sentence in the
|
|
29
|
+
* host's language, and this package does not write one.
|
|
30
|
+
*/
|
|
31
|
+
import { element, renderMarkup } from "./element.js";
|
|
32
|
+
import { resolveTheme, themeCss } from "./theme.js";
|
|
33
|
+
import { viewerStylesheet } from "./styles.js";
|
|
34
|
+
const DEFAULT_ROWS = 8;
|
|
35
|
+
const DEFAULT_CARDS = 3;
|
|
36
|
+
/** Title widths cycle through a few lengths so the column reads as text, not as a bar chart. */
|
|
37
|
+
const TITLE_WIDTHS = ['0', '1', '2', '1'];
|
|
38
|
+
function block(shape, extra = {}) {
|
|
39
|
+
return element('span', { class: 'ig-skeleton-block', 'data-shape': shape, ...extra });
|
|
40
|
+
}
|
|
41
|
+
function headerSkeleton() {
|
|
42
|
+
return element('header', { class: 'ig-header' }, [
|
|
43
|
+
element('div', { class: 'ig-header-top' }, [block('label')]),
|
|
44
|
+
element('div', { class: 'ig-skeleton-chips' }, [block('chip'), block('chip'), block('chip')]),
|
|
45
|
+
]);
|
|
46
|
+
}
|
|
47
|
+
function rowSkeleton(index) {
|
|
48
|
+
return element('li', { class: 'ig-slot ig-skeleton-row' }, [
|
|
49
|
+
// THE STATION ALONE IN THE RANK TRACK. A rank figure over it made the cell
|
|
50
|
+
// taller than a real row's, and the whole placeholder a few pixels a row
|
|
51
|
+
// too tall — the jump this file exists to prevent. Measured against the
|
|
52
|
+
// real rail at its dense density: 53 and 53.
|
|
53
|
+
element('div', { class: 'ig-rank-cell' }, [block('station')]),
|
|
54
|
+
element('div', { class: 'ig-row-body' }, [
|
|
55
|
+
// ONE WRAPPER FOR BOTH LINES, as the real row has, so the body's own gap
|
|
56
|
+
// is not spent between the title and the meta line a second time.
|
|
57
|
+
element('div', { class: 'ig-skeleton-lines' }, [
|
|
58
|
+
block('title', { 'data-width': TITLE_WIDTHS[index % TITLE_WIDTHS.length] ?? '0' }),
|
|
59
|
+
block('meta'),
|
|
60
|
+
]),
|
|
61
|
+
]),
|
|
62
|
+
]);
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* A spine card's placeholder: ONE filled block at the card's width and height,
|
|
66
|
+
* not an outlined card with bars inside. Solid rounded blocks are how a
|
|
67
|
+
* skeleton reads at a glance — the same shape host dashboards draw for their
|
|
68
|
+
* own cards — and it keeps every placeholder on the one hook a host styles.
|
|
69
|
+
*/
|
|
70
|
+
function cardSkeleton() {
|
|
71
|
+
return block('card');
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* The placeholder's root, as a spec — exported so a composing surface (the
|
|
75
|
+
* editor's workspace skeleton) can place it inside its own zones.
|
|
76
|
+
*/
|
|
77
|
+
export function skeletonSpec(options = {}) {
|
|
78
|
+
const projection = options.projection ?? 'linear';
|
|
79
|
+
const graph = projection === 'graph';
|
|
80
|
+
const count = Math.max(1, Math.floor(options.rows ?? (graph ? DEFAULT_CARDS : DEFAULT_ROWS)));
|
|
81
|
+
const body = graph
|
|
82
|
+
? element('div', { class: 'ig-skeleton-stage' }, Array.from({ length: count }, () => cardSkeleton()))
|
|
83
|
+
: element('ol', { class: 'ig-list' }, Array.from({ length: count }, (_, index) => rowSkeleton(index)));
|
|
84
|
+
return element('section', {
|
|
85
|
+
class: `ig-viewer ${graph ? 'ig-graph' : projection === 'tree' ? 'ig-tree-view' : 'ig-linear'}`,
|
|
86
|
+
'data-projection': projection,
|
|
87
|
+
'data-frame': options.frame === false ? 'none' : undefined,
|
|
88
|
+
'data-ig-loading': 'true',
|
|
89
|
+
'aria-busy': 'true',
|
|
90
|
+
role: options.label === undefined ? undefined : 'status',
|
|
91
|
+
'aria-label': options.label,
|
|
92
|
+
}, [
|
|
93
|
+
options.chrome === false || graph ? null : headerSkeleton(),
|
|
94
|
+
// THE PLACEHOLDERS SAY NOTHING. They are shapes, not content, and a
|
|
95
|
+
// screen reader walking eight empty list items learns only that there
|
|
96
|
+
// are eight of them — the region's busy state and label already say it.
|
|
97
|
+
element('div', { 'aria-hidden': 'true' }, [body]),
|
|
98
|
+
]);
|
|
99
|
+
}
|
|
100
|
+
/** Render the placeholder a host shows before the viewer has a document. Pure and total. */
|
|
101
|
+
export function renderViewerSkeleton(options = {}) {
|
|
102
|
+
const theme = resolveTheme(options.theme);
|
|
103
|
+
return {
|
|
104
|
+
markup: renderMarkup(skeletonSpec(options)),
|
|
105
|
+
styles: `${viewerStylesheet}\n${themeCss(theme, options.themeSelector ?? ':root')}`,
|
|
106
|
+
};
|
|
107
|
+
}
|
|
108
|
+
//# sourceMappingURL=skeleton.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"skeleton.js","sourceRoot":"","sources":["../src/skeleton.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
|
package/dist/styles.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"styles.d.ts","sourceRoot":"","sources":["../src/styles.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;
|
|
1
|
+
{"version":3,"file":"styles.d.ts","sourceRoot":"","sources":["../src/styles.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAkPH,eAAO,MAAM,gBAAgB,QAq9C5B,CAAC"}
|