@issuegraph/viewer 0.9.1 → 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.
@@ -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"}
@@ -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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"}
@@ -1 +1 @@
1
- {"version":3,"file":"styles.d.ts","sourceRoot":"","sources":["../src/styles.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AA0RH,eAAO,MAAM,gBAAgB,QAiyC5B,CAAC"}
1
+ {"version":3,"file":"styles.d.ts","sourceRoot":"","sources":["../src/styles.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAkPH,eAAO,MAAM,gBAAgB,QAq9C5B,CAAC"}
package/dist/styles.js CHANGED
@@ -169,18 +169,10 @@ ${scope} .ig-unit-count {
169
169
  margin-right: var(--ig-space-tight);
170
170
  }
171
171
 
172
- /* THE FOOTER ROWS TOO, AND THIS IS THE POPULATION THE ROW FIX MISSED.
173
- A footer entry is deliberately ONE LINE and shorter than a ranked row -
174
- 16a gives it no rank, no station and no explanation block, because it is
175
- not a fact about the work. That part was right. What was not governed is
176
- its TITLE: it wrapped, and the excluded row carrying a canonical reference
177
- ran to 73px while its siblings sat at 36. A footer row taller than a
178
- ranked row inverts the whole point of the group.
179
-
180
- THE DEFECT IS THE ONE ALREADY FIXED ON .ig-slot, ONE ROW KIND OVER: a
181
- title with nothing stopping it wrapping takes the row with it. Fixed at
182
- the class this time rather than at the site - the rail renders three row
183
- kinds and the first pass governed two. */
172
+ /* THE FOOTER ROW'S TITLE STAYS ON ONE LINE, as a ranked row's does. The row
173
+ is taller than a ranked row now by design — its status and its reason are
174
+ what it exists to show — but a title that wraps still takes the row with it,
175
+ so the name ellipsizes and the reason below it carries the length. */
184
176
  ${scope} .ig-footer-row .ig-title {
185
177
  line-height: var(--ig-row-title-line);
186
178
  min-width: 0;
@@ -189,39 +181,7 @@ ${scope} .ig-footer-row .ig-title {
189
181
  white-space: nowrap;
190
182
  }
191
183
 
192
- ${scope} .ig-footer-row .ig-badges {
193
- flex-wrap: nowrap;
194
- min-width: 0;
195
- overflow: hidden;
196
- }
197
-
198
- /* AND THE CHIPS LOSE THEIR CHROME HERE TOO, which is what actually makes a
199
- footer entry ONE LINE. 16a draws it as "a label chip, a title and an
200
- identity, on one line"; a bordered chip is padding plus stroke plus line
201
- box, so a row carrying any relationship badge stood at 36px against 22px
202
- for one carrying none - and the badge block, not the title, was the last
203
- thing driving it.
204
-
205
- MEASURED IN TWO PASSES, WHICH IS THE POINT. Stopping after the title fix
206
- left the footer group at two heights and looked finished: the row that had
207
- been 73px was down to 36 and matched its siblings, so the obvious check
208
- passed. It was the SECOND measurement - why 22 and why 36 - that found the
209
- badges. A class is not fixed until nothing in it varies for a reason you
210
- have not named. */
211
- ${scope} .ig-footer-row .ig-badge {
212
- background: none;
213
- border: 0;
214
- border-radius: 0;
215
- padding: 0;
216
- white-space: nowrap;
217
- }
218
-
219
- /* THE THIRD AND LAST MEMBER OF THE CLASS: the identity. An excluded row
220
- carries TWO - its own, and the canonical it defers to ('455 -> 512') - and
221
- the second wrapped, which is why that row alone stood at 30px when the
222
- others reached 17. Same defect as the title and the chips, third element,
223
- found by asking the same question a third time rather than by stopping at
224
- the first uniform-looking answer. */
184
+ /* The identity never wraps mid-reference. */
225
185
  ${scope} .ig-footer-row .ig-id {
226
186
  white-space: nowrap;
227
187
  }
@@ -314,6 +274,51 @@ export const viewerStylesheet = `
314
274
  position: relative;
315
275
  }
316
276
 
277
+ /* THE FRAME IS THE STANDALONE CASE'S, AND A CONTAINER CAN DECLINE IT.
278
+ Alone in a host's page the viewer is a card and draws its own edge. Composed
279
+ into a surface that already rules its own zones off, that edge lands beside
280
+ the container's and the seam reads as a doubled hairline — so the container
281
+ passes frame: false and takes responsibility for every line on the
282
+ surface. See SceneOptions.frame for why this is an option rather than a
283
+ host stylesheet unsetting the properties above. */
284
+ .ig-viewer[data-frame='none'] {
285
+ border: 0;
286
+ border-radius: 0;
287
+ }
288
+
289
+ /* THE LEGEND DOCKS AGAINST THE CONTAINER'S SCROLLPORT, NOT THIS ROOT'S.
290
+ See SceneOptions.dockLegend for why only a container can ask for this.
291
+
292
+ THE overflow LINE IS THE WHOLE MECHANISM AND LOOKS LIKE A TIDY-UP. A sticky
293
+ element positions against its nearest SCROLLPORT, and an ancestor with
294
+ overflow: hidden is one — so with the root left as it is above, the legend
295
+ sticks to a box that never scrolls, which is the box it already sat at the
296
+ bottom of. Nothing moves, nothing errors, and the declaration below reads as
297
+ though it works. Lifting the clip hands the legend the container's scroller
298
+ instead, which is the only one that scrolls.
299
+
300
+ WHICH IS ALSO WHY THIS IS SAFE ONLY WITH THE FRAME DECLINED. The clip exists
301
+ so a drawn radius cuts its own corners; a root that has stopped clipping must
302
+ not be drawing one. The rule above and this one are written to be passed
303
+ together, and the workspace passes both.
304
+
305
+ NO z-index, DELIBERATELY. The legend is the root's last child, so it already
306
+ paints over the order it overlaps; a layer number here would be a claim about
307
+ a stacking order this package does not own. */
308
+ .ig-viewer[data-legend='docked'] {
309
+ overflow: visible;
310
+ }
311
+
312
+ /* bottom: 0 IS A DEFAULT THE CONTAINER OVERRIDES, not a fixed position. A
313
+ container with something of its own already pinned to that edge — the
314
+ grooming workspace's rail footer — sets this element's bottom to clear it,
315
+ from a height it measures rather than from a number either package wrote
316
+ down and both would have to keep true. */
317
+ .ig-viewer[data-legend='docked'] > .ig-legend {
318
+ position: sticky;
319
+ bottom: 0;
320
+ }
321
+
317
322
  .ig-viewer *,
318
323
  .ig-viewer *::before,
319
324
  .ig-viewer *::after {
@@ -1188,57 +1193,83 @@ ${railDensity(".ig-viewer[data-density='dense']")}
1188
1193
 
1189
1194
  /* ── the footer group: holds that earn no rank slot ────────────────────── */
1190
1195
 
1191
- .ig-footer {
1192
- background: var(--ig-surface-2);
1193
- padding: var(--ig-space) var(--ig-space-wide);
1196
+ /* NO RULE OF ITS OWN ON TOP. The last ranked row above already draws its
1197
+ bottom rule, and a second one here stacked on it as a doubled line. */
1198
+ /* THE PANEL HEADER'S LAYOUT, ONE LEVEL DOWN: a kicker and a count chip on one
1199
+ line, a sentence under them. The kicker and the chip are the header's own
1200
+ classes (see footerHead), so this rule only places them. */
1201
+ .ig-footer-head {
1202
+ display: flex;
1203
+ flex-direction: column;
1204
+ gap: var(--ig-space-tight);
1205
+ padding: var(--ig-row-padding-block-dense) var(--ig-space-wide);
1194
1206
  }
1195
1207
 
1196
- .ig-footer-head {
1208
+ .ig-footer-title-row {
1197
1209
  align-items: center;
1198
1210
  display: flex;
1199
1211
  gap: var(--ig-space);
1200
- justify-content: space-between;
1201
1212
  }
1202
1213
 
1203
1214
  .ig-footer-title {
1204
- color: var(--ig-text-body);
1205
- font-size: var(--ig-font-size-compact);
1206
1215
  margin: 0;
1207
1216
  }
1208
1217
 
1209
- .ig-footer-labels {
1218
+ .ig-footer-note {
1210
1219
  color: var(--ig-text-muted);
1211
- font-family: var(--ig-font-mono);
1212
- font-size: var(--ig-font-size-meta);
1220
+ font-size: var(--ig-font-size-compact);
1221
+ line-height: var(--ig-row-meta-line);
1222
+ margin: 0;
1213
1223
  }
1214
1224
 
1215
- /* ONE LINE EACH, and the frame is explicit about why: these are not facts
1216
- about the work, so they earn no rank slot and no explanation block. A full
1217
- row here — station, badges, provenance — was claiming the opposite. */
1218
1225
  .ig-footer .ig-list {
1219
1226
  display: flex;
1220
1227
  flex-direction: column;
1221
- gap: var(--ig-space-snug);
1222
- margin-top: var(--ig-space);
1223
1228
  }
1224
1229
 
1230
+ /* A RANKED ROW'S GRID, PADDING AND RULE, so the group is the rest of the same
1231
+ list rather than a panel of its own: the rank track holds the held station,
1232
+ and it lines up under the stations above because it is the same track.
1233
+
1234
+ ON THE PANEL'S OWN GROUND, NOT A SECOND SURFACE, and at full strength. The
1235
+ group used to sit on --ig-surface-2 with every row at 0.72 opacity, which
1236
+ read as disabled — on the rows whose whole purpose is "open me to see why". */
1225
1237
  .ig-footer-row {
1226
- align-items: center;
1227
- display: flex;
1228
- gap: var(--ig-space-snug);
1229
- opacity: 0.72;
1238
+ border-top: var(--ig-stroke) solid var(--ig-line);
1239
+ column-gap: var(--ig-space);
1240
+ cursor: pointer;
1241
+ display: grid;
1242
+ grid-template-columns: var(--ig-rank-column) 1fr;
1243
+ /* THE DENSE RANKED ROW'S PADDING, at every width: these rows carry three
1244
+ lines where a ranked row carries two, and the wider padding on top of that
1245
+ made each one twice the height of its neighbours above. */
1246
+ padding: var(--ig-row-padding-block-dense) var(--ig-space-wide);
1247
+ }
1248
+
1249
+ .ig-footer-row:hover {
1250
+ background: color-mix(in srgb, var(--ig-text) var(--ig-tint-unit), transparent);
1251
+ }
1252
+
1253
+ /* THE RANKED ROW'S SELECTED BAND, and its fill: one selection, one look,
1254
+ whichever part of the list it was made in. */
1255
+ .ig-footer-row[aria-current='true'] {
1256
+ background: color-mix(in srgb, var(--ig-accent) var(--ig-tint-fill), transparent);
1257
+ box-shadow: inset var(--ig-band-rail) 0 0 var(--ig-accent);
1230
1258
  }
1231
1259
 
1232
1260
  .ig-footer-row .ig-title {
1233
- font-size: var(--ig-font-size-compact);
1261
+ color: var(--ig-text-body);
1234
1262
  }
1235
1263
 
1236
- .ig-footer-row .ig-id {
1237
- font-size: var(--ig-font-size-meta);
1264
+ .ig-footer-row[aria-current='true'] .ig-title {
1265
+ color: var(--ig-text);
1238
1266
  }
1239
1267
 
1240
- .ig-footer-row[aria-current='true'] {
1241
- opacity: 1;
1268
+ .ig-footer-why {
1269
+ color: var(--ig-text-muted);
1270
+ font-size: var(--ig-font-size-compact);
1271
+ line-height: var(--ig-row-meta-line);
1272
+ margin: 0;
1242
1273
  }
1243
1274
 
1244
1275
  /* ── the graph canvas ──────────────────────────────────────────────────── */
@@ -1573,6 +1604,94 @@ ${railDensity(".ig-viewer[data-density='dense']")}
1573
1604
  padding: var(--ig-space-tight) 0;
1574
1605
  }
1575
1606
 
1607
+ /* ── loading placeholder ───────────────────────────────────────────────── */
1608
+
1609
+ /* THE HOST'S HOOK, AND THE ONLY ONE. Every placeholder shape is one of these,
1610
+ filled with the second surface and holding still: this package ships no
1611
+ motion, and the fill already follows the host's theme. A host that wants a
1612
+ pulse animates this class under its own reduced-motion rule. */
1613
+ .ig-skeleton-block {
1614
+ background: var(--ig-surface-2);
1615
+ border-radius: var(--ig-radius);
1616
+ display: block;
1617
+ }
1618
+
1619
+ /* ON THE HEADER'S OWN GROUND the second surface is the ground, so the shapes
1620
+ there take the hairline colour instead, or they vanish into it. */
1621
+ .ig-header .ig-skeleton-block {
1622
+ background: var(--ig-line);
1623
+ }
1624
+
1625
+ .ig-skeleton-block[data-shape='label'] {
1626
+ block-size: var(--ig-space);
1627
+ inline-size: calc(var(--ig-char-width) * 14);
1628
+ }
1629
+
1630
+ .ig-skeleton-chips {
1631
+ display: flex;
1632
+ gap: var(--ig-space-snug);
1633
+ }
1634
+
1635
+ .ig-skeleton-block[data-shape='chip'] {
1636
+ block-size: calc(var(--ig-space) * 2);
1637
+ border-radius: var(--ig-radius);
1638
+ inline-size: calc(var(--ig-char-width) * 9);
1639
+ }
1640
+
1641
+ .ig-skeleton-block[data-shape='station'] {
1642
+ block-size: var(--ig-space);
1643
+ border-radius: 50%;
1644
+ inline-size: var(--ig-space);
1645
+ }
1646
+
1647
+ /* THE ROW'S OWN LINE HEIGHTS, so a placeholder row and a real row are the same
1648
+ height at every density the container picks. */
1649
+ .ig-skeleton-block[data-shape='title'] {
1650
+ block-size: var(--ig-row-title-line);
1651
+ inline-size: 68%;
1652
+ }
1653
+
1654
+ .ig-skeleton-block[data-shape='title'][data-width='1'] {
1655
+ inline-size: 54%;
1656
+ }
1657
+
1658
+ .ig-skeleton-block[data-shape='title'][data-width='2'] {
1659
+ inline-size: 82%;
1660
+ }
1661
+
1662
+ .ig-skeleton-block[data-shape='meta'] {
1663
+ block-size: var(--ig-row-meta-line);
1664
+ inline-size: 36%;
1665
+ }
1666
+
1667
+ /* THE TWO LINES OF A ROW, stacked with no gap of their own: each block is its
1668
+ line's full height, which already carries the leading a real line has. */
1669
+ .ig-skeleton-lines {
1670
+ display: flex;
1671
+ flex-direction: column;
1672
+ }
1673
+
1674
+ /* A placeholder row points at nothing, so it takes no pointer and no hover. */
1675
+ .ig-skeleton-row {
1676
+ pointer-events: none;
1677
+ }
1678
+
1679
+ .ig-skeleton-stage {
1680
+ align-items: center;
1681
+ display: flex;
1682
+ flex-direction: column;
1683
+ gap: var(--ig-space-wide);
1684
+ padding: var(--ig-space-wide);
1685
+ }
1686
+
1687
+ /* THE SPINE CARD'S OWN WIDTH, so the graph's placeholder sits where its cards
1688
+ will, as one solid block with the large radius the panel's cards use. */
1689
+ .ig-skeleton-block[data-shape='card'] {
1690
+ block-size: calc(var(--ig-station-box) * 4);
1691
+ border-radius: var(--ig-radius-large);
1692
+ inline-size: min(100%, var(--ig-spine-width));
1693
+ }
1694
+
1576
1695
  /* ── legend ────────────────────────────────────────────────────────────── */
1577
1696
 
1578
1697
  /* A FOOTER BAR, WHERE §16b PUTS IT, and worded rather than glyph-only. It sits
@@ -1591,8 +1710,29 @@ ${railDensity(".ig-viewer[data-density='dense']")}
1591
1710
  padding: var(--ig-space) var(--ig-space-wide);
1592
1711
  }
1593
1712
 
1713
+ /* FLOATED SO THE BROWSER STOPS TREATING IT AS A RENDERED LEGEND, which is the
1714
+ only reason this declaration exists. HTML gives the first in-flow legend of a
1715
+ fieldset a layout nothing else in CSS has: it is lifted OUT of the fieldset's
1716
+ content box, painted across the top border with a notch cut through the rule
1717
+ either side of it, and the content box then starts below it. On this bar that
1718
+ drew the caption sitting on the rule, a gap of bare ground under the caption
1719
+ where the fieldset's own surface should have been, and a top rule broken in
1720
+ the middle — all three of which looked like a styling bug and none of which
1721
+ any rule here asked for.
1722
+
1723
+ The spec's own escape hatch is the float: a legend whose computed float is
1724
+ not none is not the rendered legend, and becomes an ordinary child. This bar
1725
+ is a flex container, where float does not apply to an item at all, so the
1726
+ caption simply lays out as the first item on the row — which is what the
1727
+ flex rule above, its muted uppercase micro type and its centred alignment
1728
+ were always written for.
1729
+
1730
+ IT IS LOAD-BEARING AND LOOKS DECORATIVE, which is why it is recorded here at
1731
+ this length: delete it and the notch, the gap and the broken rule all come
1732
+ back, with nothing else in this file changed. */
1594
1733
  .ig-legend-caption {
1595
1734
  color: var(--ig-text-muted);
1735
+ float: left;
1596
1736
  font-family: var(--ig-font-mono);
1597
1737
  font-size: var(--ig-font-size-pill);
1598
1738
  letter-spacing: var(--ig-tracking-group);
@@ -1 +1 @@
1
- {"version":3,"file":"styles.js","sourceRoot":"","sources":["../src/styles.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,SAAS,WAAW,CAAC,KAAa;IAChC,OAAO;EACP,KAAK;;;;;;;;;;EAUL,KAAK;;;;EAIL,KAAK;;;;;;;;;EASL,KAAK;;;;;;;;;;EAUL,KAAK;;;;;;;;;;;;;EAaL,KAAK;;;;;;;;EAQL,KAAK;;;;;;;;;;;;;;;;;;EAkBL,KAAK;;;;;;;;;;;;;;;;;;;;;;;;;;;EA2BL,KAAK;;;;EAIL,KAAK;EACL,KAAK;;;;;;;EAOL,KAAK;;;;;;;;;;;;;;;;;;;EAmBL,KAAK;;;;;;;;EAQL,KAAK;;;;;;;;;;;;;;;;;;;EAmBL,KAAK;;;;;;;;;;;;;;EAcL,KAAK;;;;;;;;;;;;EAYL,KAAK;;;;;EAKL,KAAK;;;;;EAKL,KAAK;;;;;;;EAOL,KAAK;;;;;;;;;;;;;;;;;;;;;;;EAuBL,KAAK;EACL,KAAK;EACL,KAAK;;;;;;;;;;;;;;;;EAgBL,KAAK;;;;EAIL,KAAK;;;CAGN,CAAC;AACF,CAAC;AAED,MAAM,CAAC,MAAM,gBAAgB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAsc9B,WAAW,CAAC,gCAAgC,CAAC;;;;;;;;;;;;;EAa7C,WAAW,CAAC,kCAAkC,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA80BhD,CAAC"}
1
+ {"version":3,"file":"styles.js","sourceRoot":"","sources":["../src/styles.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,SAAS,WAAW,CAAC,KAAa;IAChC,OAAO;EACP,KAAK;;;;;;;;;;EAUL,KAAK;;;;EAIL,KAAK;;;;;;;;;EASL,KAAK;;;;;;;;;;EAUL,KAAK;;;;;;;;;;;;;EAaL,KAAK;;;;;;;;EAQL,KAAK;;;;;;;;;;;;;;;;;;EAkBL,KAAK;;;;;;;;;;;;;;;;;;;;;;;;;;;EA2BL,KAAK;;;;EAIL,KAAK;EACL,KAAK;;;;;;;EAOL,KAAK;;;;;;;;;;;EAWL,KAAK;;;;;;;;;EASL,KAAK;;;;;;;;;;;;EAYL,KAAK;;;;;EAKL,KAAK;;;;;EAKL,KAAK;;;;;;;EAOL,KAAK;;;;;;;;;;;;;;;;;;;;;;;EAuBL,KAAK;EACL,KAAK;EACL,KAAK;;;;;;;;;;;;;;;;EAgBL,KAAK;;;;EAIL,KAAK;;;CAGN,CAAC;AACF,CAAC;AAED,MAAM,CAAC,MAAM,gBAAgB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAmf9B,WAAW,CAAC,gCAAgC,CAAC;;;;;;;;;;;;;EAa7C,WAAW,CAAC,kCAAkC,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAq9BhD,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@issuegraph/viewer",
3
- "version": "0.9.1",
3
+ "version": "0.10.0",
4
4
  "description": "Render an Issuegraph document as a work order — the ordered spine with readiness stations, the five edge treatments, and three projections. Rendering only: no fetching, no mutation, no auth, and every value themeable through CSS custom properties.",
5
5
  "keywords": [
6
6
  "issuegraph",