@issuegraph/viewer 0.9.1 → 0.11.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.
Files changed (51) hide show
  1. package/dist/clusters.d.ts +1 -1
  2. package/dist/clusters.d.ts.map +1 -1
  3. package/dist/clusters.js +13 -12
  4. package/dist/clusters.js.map +1 -1
  5. package/dist/document.d.ts +27 -0
  6. package/dist/document.d.ts.map +1 -1
  7. package/dist/document.js +10 -2
  8. package/dist/document.js.map +1 -1
  9. package/dist/element.d.ts +10 -2
  10. package/dist/element.d.ts.map +1 -1
  11. package/dist/element.js.map +1 -1
  12. package/dist/index.d.ts +4 -1
  13. package/dist/index.d.ts.map +1 -1
  14. package/dist/index.js +11 -1
  15. package/dist/index.js.map +1 -1
  16. package/dist/layout.d.ts.map +1 -1
  17. package/dist/layout.js +7 -2
  18. package/dist/layout.js.map +1 -1
  19. package/dist/mount.d.ts +2 -2
  20. package/dist/mount.d.ts.map +1 -1
  21. package/dist/mount.js +6 -0
  22. package/dist/mount.js.map +1 -1
  23. package/dist/parts.d.ts +0 -7
  24. package/dist/parts.d.ts.map +1 -1
  25. package/dist/parts.js +24 -42
  26. package/dist/parts.js.map +1 -1
  27. package/dist/projections/graph.d.ts +50 -2
  28. package/dist/projections/graph.d.ts.map +1 -1
  29. package/dist/projections/graph.js +140 -49
  30. package/dist/projections/graph.js.map +1 -1
  31. package/dist/projections/linear.d.ts +105 -15
  32. package/dist/projections/linear.d.ts.map +1 -1
  33. package/dist/projections/linear.js +132 -58
  34. package/dist/projections/linear.js.map +1 -1
  35. package/dist/projections/tree.d.ts.map +1 -1
  36. package/dist/projections/tree.js +17 -4
  37. package/dist/projections/tree.js.map +1 -1
  38. package/dist/render.d.ts +5 -0
  39. package/dist/render.d.ts.map +1 -1
  40. package/dist/render.js.map +1 -1
  41. package/dist/scene.d.ts +22 -0
  42. package/dist/scene.d.ts.map +1 -1
  43. package/dist/scene.js.map +1 -1
  44. package/dist/skeleton.d.ts +63 -0
  45. package/dist/skeleton.d.ts.map +1 -0
  46. package/dist/skeleton.js +108 -0
  47. package/dist/skeleton.js.map +1 -0
  48. package/dist/styles.d.ts.map +1 -1
  49. package/dist/styles.js +236 -69
  50. package/dist/styles.js.map +1 -1
  51. package/package.json +1 -1
@@ -18,17 +18,72 @@ import { clusterReach, clusterReachLabel, clustersOf } from "../clusters.js";
18
18
  import { element, svg } from "../element.js";
19
19
  import { edgeGeometry, layoutGraph, } from "../layout.js";
20
20
  import { edgeMarkSpecs } from "../marks.js";
21
- import { adoptionNote, atStations, cardBlocks, caveatBadges, conditionKind, conditionNotice, footerLabels, nowRows, caveatText, edgeBadgeList, emptyState, evidenceBadge, hostHeader, statesItsOwnCause, identity, legend, notReadyBadge, priorityBadge, slotLabel, slotPosition, stationFill, stationsOf, unitBlock, } from "../parts.js";
21
+ import { adoptionNote, atStations, cardBlocks, caveatBadges, conditionKind, conditionNotice, nowRows, caveatText, edgeBadgeList, emptyState, evidenceBadge, hostHeader, statesItsOwnCause, identity, legend, notReadyBadge, priorityBadge, slotLabel, slotPosition, stationFill, stationsOf, unitBlock, } from "../parts.js";
22
22
  import { resolveFocusKey } from "../scene.js";
23
23
  import { resolveTheme } from "../theme.js";
24
24
  import { dashArrayFor, treatmentFor } from "../vocabulary.js";
25
- import { asideRow, excludedRow, footerHeading, footerRow, isFooterSlot, slotRow, } from "./linear.js";
25
+ import { asideRow, excludedRow, footerHead, footerRow, isFooterSlot, slotRow, } from "./linear.js";
26
26
  /**
27
- * The node budget, from the design's scale table. Above the first threshold the
28
- * canvas shows component capsules; above the second, clusters only.
27
+ * The node budget, from the design's scale table: the most RELATED issues — the
28
+ * count {@link relatedKeys} answers — the canvas draws. Past it the canvas
29
+ * shows component capsules instead.
30
+ *
31
+ * WHAT IS COUNTED IS THE WHOLE MEANING OF THE NUMBER, and it used to be the
32
+ * wrong thing. The budget compared `layout.nodes.size` — every laid-out card,
33
+ * related or not — while the refusal it triggers says "N related issues are too
34
+ * many to draw here". A day-one repository of 300 issues and no relationships
35
+ * was therefore refused as "300 related issues", with 300 one-issue capsules,
36
+ * and that refusal cost MORE to build than the plain spine it withheld: 293 KB
37
+ * and 6,050 elements against the canvas's 198 KB and 2,451 (issuegraph #133).
38
+ * An issue with no relationship adds a card to the spine and nothing else — no
39
+ * gutter, no arc — which is the same work the list does at any size, so it is
40
+ * not what the budget bounds.
29
41
  */
30
42
  export const GRAPH_NODE_BUDGET = 60;
43
+ /**
44
+ * The second threshold, over the same count as {@link GRAPH_NODE_BUDGET}: past
45
+ * this many RELATED issues the refusal lists clusters only, truncated.
46
+ */
31
47
  export const CLUSTER_ONLY_BUDGET = 300;
48
+ /**
49
+ * The issues both budgets count: every issue that is an endpoint of at least
50
+ * one relationship this document keeps.
51
+ *
52
+ * ONE FUNCTION, SO THE RULE LIVES IN ONE PLACE. The canvas compares it against
53
+ * the budgets, the refusal partitions it into capsules — so the count in the
54
+ * heading and the sum of the capsules cannot disagree — and the editor's scale
55
+ * ladder reads it for the same decision, so the workspace's tier and the
56
+ * canvas it narrows to cannot either.
57
+ *
58
+ * WHICH EDGES COUNT: every edge `normalizeDocument` kept, which is every edge
59
+ * this projection draws. Most become an arc between two cards. An edge whose
60
+ * two ends share one card — a `together-with` pair, or any relationship between
61
+ * members of one unit — draws no arc, but it is drawn: as the unit's enclosure,
62
+ * one title per member, and as a chip on the card's badge row. So a unit's
63
+ * members count, each of them, which is also how the capsules have always
64
+ * counted them ("3 issues" for a three-member unit) and what "related issues"
65
+ * says. An edge `normalizeDocument` dropped — dangling, or a `together-with`
66
+ * across two slots — is drawn nowhere and makes nothing related.
67
+ *
68
+ * NOT CYCLES. A cycle is the host's reading OF edges, and it draws no node of
69
+ * its own: on the canvas it is a badge on a card that is already there. A
70
+ * cycle member is counted when it keeps an edge in this document and not
71
+ * otherwise — a slice that carries the member but none of the loop's edges
72
+ * draws it as an ordinary station, so it costs what any unrelated issue costs.
73
+ *
74
+ * NOT RELATIVE TO `compact`. The column draws no arcs, yet the count is the
75
+ * same at either width: the budget is a property of the DOCUMENT, so the
76
+ * preview and the picture its expand affordance opens never disagree about
77
+ * whether this document can be drawn.
78
+ */
79
+ export function relatedKeys(document) {
80
+ const keys = new Set();
81
+ for (const issue of document.issues) {
82
+ if ((document.edgesOf.get(issue.key) ?? []).length > 0)
83
+ keys.add(issue.key);
84
+ }
85
+ return keys;
86
+ }
32
87
  function terminalMarker(terminal, geometry, field, identity, theme) {
33
88
  const { end, endAngle } = geometry;
34
89
  const degrees = (endAngle * 180) / Math.PI;
@@ -149,7 +204,9 @@ function nodeCard(document, layout, key, options, focused) {
149
204
  if (box === undefined)
150
205
  return null;
151
206
  const issue = document.byKey.get(key);
152
- const slot = document.order.slots.find((candidate) => candidate.lead === key);
207
+ // ONE LOOKUP PER CARD — see `NormalizedDocument.slotByLead` for the scan this
208
+ // replaced and what it cost.
209
+ const slot = document.slotByLead.get(key);
153
210
  const members = layout.slotMembers.get(key) ?? [key];
154
211
  const exclusion = document.order.excluded.find((candidate) => candidate.key === key);
155
212
  const caveats = caveatText(issue);
@@ -158,7 +215,7 @@ function nodeCard(document, layout, key, options, focused) {
158
215
  ...(caveats === '' ? [] : [caveats]),
159
216
  ...(exclusion === undefined
160
217
  ? []
161
- : [`${treatmentFor('duplicate-of').label} ${exclusion.canonical} — never worked`]),
218
+ : [`${treatmentFor('duplicate-of').label} ${exclusion.canonical}, which gets worked instead`]),
162
219
  ].join(' · ');
163
220
  // RENDERED FROM THE CARD'S OWN DESCRIPTION, which is also what the layout
164
221
  // counted this card's height from — see `CardBlock`. Built from a second
@@ -256,7 +313,7 @@ function spineStations(document, layout, theme) {
256
313
  const box = layout.nodes.get(key);
257
314
  if (box === undefined)
258
315
  continue;
259
- const slot = document.order.slots.find((candidate) => candidate.lead === key);
316
+ const slot = document.slotByLead.get(key);
260
317
  const fill = slot === undefined ? 'filled' : stationFill(slot);
261
318
  // A serialize hold waits on a PEER rather than on a rank above it, and the
262
319
  // frame colours that station differently for exactly that reason.
@@ -374,15 +431,19 @@ function capsuleSpec(cluster) {
374
431
  * narrows the document, because narrowing IS the host's job in a package that
375
432
  * renders exactly what it is given.
376
433
  */
377
- function refusal(document, layout, nodeCount, mode) {
378
- // THE SAME KEY SET THE COUNT ABOVE CAME FROM. `nodeCount` is `layout.nodes`,
379
- // so the component list has to partition `layout.nodes` or the two disagree —
380
- // which is how an edge-free over-budget document listed no components at all
381
- // under a sentence telling the reader to choose one.
382
- const clusters = clustersOf(document, new Set(layout.nodes.keys()));
434
+ function refusal(document, related, mode) {
435
+ // THE SAME KEY SET THE COUNT CAME FROM. The heading's number is `related`'s
436
+ // size, so the component list has to partition `related` or the two disagree
437
+ // — which is how an edge-free over-budget document once listed no components
438
+ // at all under a sentence telling the reader to choose one. It partitioned
439
+ // `layout.nodes` while the budget counted those; since the budget counts
440
+ // related issues, a related issue is the only kind that reaches a capsule,
441
+ // and an issue with no relationship is never listed as a "group" of one.
442
+ const clusters = clustersOf(document, related);
443
+ const nodeCount = related.size;
383
444
  const heading = mode === 'capsules'
384
- ? `${String(nodeCount)} related issues is past this canvas's budget of ${String(GRAPH_NODE_BUDGET)}, so it is not drawing them.`
385
- : `${String(nodeCount)} related issues is far past this canvas's budget, so it is showing clusters only.`;
445
+ ? `${String(nodeCount)} related issues are too many to draw here. The limit is ${String(GRAPH_NODE_BUDGET)}.`
446
+ : `${String(nodeCount)} related issues are far too many to draw, so they are shown as groups.`;
386
447
  // THE REFUSAL IS INFORMATIONAL. IT PUBLISHES NO CONTROL — and that is a
387
448
  // RESTRUCTURE, not a regression of the round-five finding it answers.
388
449
  // That finding offered two remedies: expose an actionable component target,
@@ -410,14 +471,14 @@ function refusal(document, layout, nodeCount, mode) {
410
471
  const omitted = clusters.length - shown.length;
411
472
  return element('section', { class: 'ig-refusal', role: 'note' }, [
412
473
  element('p', {}, [heading]),
413
- element('ol', { class: 'ig-list', 'aria-label': 'connected components' }, shown.map((cluster) => capsuleSpec(cluster))),
474
+ element('ol', { class: 'ig-list', 'aria-label': 'groups of related issues' }, shown.map((cluster) => capsuleSpec(cluster))),
414
475
  omitted > 0
415
476
  ? element('p', { class: 'ig-refusal-omitted' }, [
416
- `${String(omitted)} further ${omitted === 1 ? 'component is' : 'components are'} not listed; ${String(clusters.length)} were found in total.`,
477
+ `${String(omitted)} more ${omitted === 1 ? 'group is' : 'groups are'} not listed (${String(clusters.length)} in all).`,
417
478
  ])
418
479
  : null,
419
480
  element('p', { class: 'ig-refusal-next' }, [
420
- 'Narrow the document to one neighbourhood and render again — narrowing is the host\'s, because this package draws exactly what it is given. The order list is complete at any size.',
481
+ 'The list always shows the full order, however many issues there are.',
421
482
  ]),
422
483
  ]);
423
484
  }
@@ -433,27 +494,24 @@ function footerGroup(document, layout, options, focused) {
433
494
  const entries = footerKeys(document, layout, { ...options, focused });
434
495
  if (entries.length === 0)
435
496
  return null;
436
- const slots = document.order.slots.filter((slot) => layout.footer.includes(slot.lead));
437
- const excluded = document.order.excluded.filter((exclusion) => layout.footer.includes(exclusion.key));
497
+ // A SET, so each test is a lookup rather than a scan of the footer — the
498
+ // same membership question, asked once per slot and once per exclusion.
499
+ const inFooter = new Set(layout.footer);
500
+ const slots = document.order.slots.filter((slot) => inFooter.has(slot.lead));
501
+ const excluded = document.order.excluded.filter((exclusion) => inFooter.has(exclusion.key));
438
502
  // WHAT THIS GROUP ACTUALLY HOLDS. In the column it also holds every gutter
439
503
  // endpoint the compact picture does not draw — an ordinary open blocker, say,
440
504
  // which no runner holds and which is worked like anything else — so a heading
441
505
  // that named only the runner and the never-worked said something untrue about
442
506
  // them.
443
507
  const undrawn = entries.length > slots.length + excluded.length;
444
- const labels = footerLabels(slots);
445
508
  return element('section', { class: 'ig-footer' }, [
446
- element('div', { class: 'ig-footer-head' }, [
447
- element('p', { class: 'ig-footer-title' }, [
448
- footerHeading(entries.length, {
449
- runner: slots.length > 0,
450
- neverWorked: excluded.length > 0,
451
- undrawn,
452
- }),
453
- ]),
454
- labels === '' ? null : element('span', { class: 'ig-footer-labels' }, [labels]),
455
- ]),
456
- element('ol', { class: 'ig-list', 'aria-label': 'outside the order' }, entries),
509
+ footerHead(entries.length, {
510
+ runner: slots.length > 0,
511
+ neverWorked: excluded.length > 0,
512
+ undrawn,
513
+ }),
514
+ element('ol', { class: 'ig-list', 'aria-label': 'not in the order' }, entries),
457
515
  ]);
458
516
  }
459
517
  /**
@@ -470,7 +528,7 @@ function footerGroup(document, layout, options, focused) {
470
528
  */
471
529
  function footerKeys(document, layout, options) {
472
530
  return layout.footer.map((key) => {
473
- const slot = document.order.slots.find((candidate) => candidate.lead === key);
531
+ const slot = document.slotByLead.get(key);
474
532
  if (slot !== undefined)
475
533
  return footerRow(document, slot, options);
476
534
  const exclusion = document.order.excluded.find((candidate) => candidate.key === key);
@@ -486,7 +544,11 @@ export function graphScene(document, rawOptions = {}) {
486
544
  const options = atStations(rawOptions, stations);
487
545
  const theme = resolveTheme(options.theme);
488
546
  const layout = layoutGraph(document, theme, options.compact === true);
547
+ // TWO COUNTS, AND THEY ANSWER DIFFERENT QUESTIONS. `nodeCount` is whether
548
+ // there is anything to draw at all; `related` is what the budgets bound —
549
+ // see `relatedKeys` for why those are not the same number.
489
550
  const nodeCount = layout.nodes.size;
551
+ const related = relatedKeys(document);
490
552
  const inline = document.order.slots.filter((slot) => !isFooterSlot(slot));
491
553
  const footerSlots = document.order.slots.filter(isFooterSlot);
492
554
  // ── WHICH KEYS CAN HOLD FOCUS IS DERIVED FROM WHAT THIS SCENE WILL DRAW ────
@@ -511,7 +573,7 @@ export function graphScene(document, rawOptions = {}) {
511
573
  // footer group that was holding all of them, so the panel came back blank.
512
574
  // The question is whether this scene draws anything, and the footer draws.
513
575
  const drawsNothing = nodeCount === 0 && layout.footer.length === 0;
514
- const refused = drawsNothing || nodeCount > GRAPH_NODE_BUDGET;
576
+ const refused = drawsNothing || related.size > GRAPH_NODE_BUDGET;
515
577
  // FROM THE SAME RULE THE LIST RENDERS FROM — see `refusalContents`. With a
516
578
  // canvas every node is a card and the card owns the tab stop; without one,
517
579
  // the list is the whole order UI and its rows do.
@@ -535,12 +597,19 @@ export function graphScene(document, rawOptions = {}) {
535
597
  // held no slot, so the keyboard walked the drawing non-monotonically: down
536
598
  // the spine, back up to the top, on again.
537
599
  const spineFirst = refused ? [] : [...layout.spineOrder];
538
- const focusOrder = [
600
+ // FIRST OCCURRENCE WINS, through a Set: `indexOf` per entry made this dedupe
601
+ // quadratic in the order's length, for the same answer.
602
+ const ordered = new Set();
603
+ for (const key of [
539
604
  ...spineFirst,
540
605
  ...inline.map((slot) => slot.lead),
541
606
  ...footerSlots.map((slot) => slot.lead),
542
607
  ...document.order.excluded.map((exclusion) => exclusion.key),
543
- ].filter((key, index, all) => focusable.has(key) && all.indexOf(key) === index);
608
+ ]) {
609
+ if (focusable.has(key))
610
+ ordered.add(key);
611
+ }
612
+ const focusOrder = [...ordered];
544
613
  // ── the lateral axis: ONLY PAIRS WHOSE REVERSE HOLDS ──────────────────────
545
614
  //
546
615
  // A one-way mapping is not a traversal — focus went out to a gutter node and
@@ -615,9 +684,13 @@ export function graphScene(document, rawOptions = {}) {
615
684
  // than on a column, so a set derived from the laid-out nodes alone reached
616
685
  // none of them — and in compact mode, where the gutters are not drawn, that
617
686
  // is every off-order endpoint the panel still lists.
687
+ // `ordered` IS `focusOrder`'s membership, kept in step with every push, so
688
+ // the test is a lookup where `includes` scanned the whole order per node.
618
689
  for (const key of [...layout.nodes.keys(), ...layout.footer]) {
619
- if (!focusOrder.includes(key) && !lateral.has(key) && !represented.has(key))
690
+ if (!ordered.has(key) && !lateral.has(key) && !represented.has(key)) {
691
+ ordered.add(key);
620
692
  focusOrder.push(key);
693
+ }
621
694
  }
622
695
  }
623
696
  // A GUTTER NODE IS REACHABLE SIDEWAYS WITHOUT BEING A POSITION IN THE ORDER,
@@ -630,7 +703,7 @@ export function graphScene(document, rawOptions = {}) {
630
703
  // come after a pass that changes the order.
631
704
  const navigableKeys = [...focusOrder];
632
705
  for (const key of lateral.keys()) {
633
- if (!navigableKeys.includes(key))
706
+ if (!ordered.has(key))
634
707
  navigableKeys.push(key);
635
708
  }
636
709
  // One rule, shared with `reconcile` and the other projections, so the element
@@ -651,20 +724,24 @@ export function graphScene(document, rawOptions = {}) {
651
724
  canvas = null;
652
725
  }
653
726
  else if (drawsNothing) {
654
- canvas = emptyState('No issue in this document declares a relationship, so the canvas is empty.');
727
+ canvas = emptyState('No relationships yet, so there is nothing to draw.');
728
+ }
729
+ else if (related.size > CLUSTER_ONLY_BUDGET) {
730
+ diagnostics.push(`graph refused: ${String(related.size)} nodes is past the cluster-only budget of ${String(CLUSTER_ONLY_BUDGET)}`);
731
+ canvas = refusal(document, related, 'clusters');
732
+ }
733
+ else if (related.size > GRAPH_NODE_BUDGET) {
734
+ diagnostics.push(`graph refused: ${String(related.size)} nodes is past the node budget of ${String(GRAPH_NODE_BUDGET)}`);
735
+ canvas = refusal(document, related, 'capsules');
655
736
  }
656
737
  else if (nodeCount === 0) {
657
738
  // Nothing to draw ON the canvas, and a footer group beneath it that is the
658
739
  // whole panel. No stage, no refusal: the group renders in ordinary flow.
659
- canvas = emptyState('Nothing in this document is in the order, so the spine is empty.');
660
- }
661
- else if (nodeCount > CLUSTER_ONLY_BUDGET) {
662
- diagnostics.push(`graph refused: ${String(nodeCount)} nodes is past the cluster-only budget of ${String(CLUSTER_ONLY_BUDGET)}`);
663
- canvas = refusal(document, layout, nodeCount, 'clusters');
664
- }
665
- else if (nodeCount > GRAPH_NODE_BUDGET) {
666
- diagnostics.push(`graph refused: ${String(nodeCount)} nodes is past the node budget of ${String(GRAPH_NODE_BUDGET)}`);
667
- canvas = refusal(document, layout, nodeCount, 'capsules');
740
+ // AFTER THE BUDGETS, because `refused` above is read off the related count
741
+ // alone: in the column every off-order endpoint is in the footer and
742
+ // nothing is laid out, so an over-budget document there has no nodes and
743
+ // still refuses — and the refusal, not this sentence, is what it draws.
744
+ canvas = emptyState('Nothing is in the order yet, so there is nothing to draw.');
668
745
  }
669
746
  else {
670
747
  const edgeLayers = [];
@@ -767,6 +844,14 @@ export function graphScene(document, rawOptions = {}) {
767
844
  const root = element('section', {
768
845
  class: 'ig-viewer ig-graph',
769
846
  'data-projection': 'graph',
847
+ // See `SceneOptions.frame`; stamped on all three roots, because the
848
+ // container that declines the frame does not know which projection it
849
+ // was handed.
850
+ 'data-frame': options.frame === false ? 'none' : undefined,
851
+ // See `SceneOptions.dockLegend`; stamped on all three roots, because every
852
+ // projection draws the same legend and the container's scrollport does not
853
+ // change with the projection.
854
+ 'data-legend': options.dockLegend === true ? 'docked' : undefined,
770
855
  // Stamped on all three roots rather than on the one that draws rows.
771
856
  // A projection toggle must not silently drop a host's decision, and
772
857
  // the graph carries a footer group of rows of its own. See
@@ -830,7 +915,7 @@ export function graphScene(document, rawOptions = {}) {
830
915
  document.isolated.length === 0
831
916
  ? null
832
917
  : element('p', { class: 'ig-count' }, [
833
- `${String(document.isolated.length)} isolated ${document.isolated.length === 1 ? 'issue' : 'issues'} not drawn`,
918
+ `${String(document.isolated.length)} ${document.isolated.length === 1 ? 'issue has' : 'issues have'} no relationships, so ${document.isolated.length === 1 ? 'it is' : 'they are'} not drawn`,
834
919
  ]),
835
920
  legend(),
836
921
  // LAST, because §16h calls it the panel FOOTER and the legend is a footer
@@ -840,6 +925,12 @@ export function graphScene(document, rawOptions = {}) {
840
925
  return {
841
926
  projection: 'graph',
842
927
  root,
928
+ // INLINE, WHATEVER `detachFooter` SAYS. The option exists for a host that
929
+ // virtualizes rows, and nothing virtualizes a graph: the rail that windows
930
+ // the order is always linear, and a canvas draws every node it draws at
931
+ // once. So the footer group stays where the canvas puts it and this field
932
+ // says so. See `SceneOptions.detachFooter`.
933
+ footer: null,
843
934
  focusOrder,
844
935
  navigable: navigableKeys,
845
936
  lateral,
@@ -1 +1 @@
1
- {"version":3,"file":"graph.js","sourceRoot":"","sources":["../../src/projections/graph.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"graph.js","sourceRoot":"","sources":["../../src/projections/graph.ts"],"names":[],"mappings":"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"}
@@ -31,6 +31,99 @@ export interface SceneOptions {
31
31
  * rather than this package guessing which of its instances is the panel.
32
32
  */
33
33
  readonly chrome?: boolean | undefined;
34
+ /**
35
+ * Draw the panel's own outer frame — the border and the corner radius.
36
+ * Defaults to `true`.
37
+ *
38
+ * THE CONTAINER OWNS ITS SEAMS, AND ONLY THE CONTAINER KNOWS IT HAS ANY.
39
+ * Standing alone in a host's page the viewer is a card and has to draw its
40
+ * own edge, which is why the frame is on by default. Composed into a
41
+ * surface that already rules its zones off — the grooming workspace draws
42
+ * `border-right` on the rail track and `border-bottom` under the canvas
43
+ * toolbar — that same edge lands one pixel from the container's, and the
44
+ * two read as a single doubled hairline down every seam. Measured in the
45
+ * workspace: the rail's right edge carried the zone's rule and the viewer's
46
+ * border with nothing between them, and the canvas graph's top border sat
47
+ * directly under the toolbar's.
48
+ *
49
+ * IT IS AN OPTION RATHER THAN THE CONTAINER OVERRIDING THE BORDER AWAY. A
50
+ * host reaching into `.ig-viewer` to unset a property this package set is a
51
+ * second stylesheet with an opinion about this one's internals, and it
52
+ * breaks the first time the frame is expressed differently. Declining the
53
+ * frame is a statement about COMPOSITION, so it belongs in the composition
54
+ * API.
55
+ *
56
+ * It renders as `data-frame="none"` on the viewer root; absent is the
57
+ * framed default.
58
+ */
59
+ readonly frame?: boolean | undefined;
60
+ /**
61
+ * Dock the legend against the bottom of the container's scrollport instead
62
+ * of letting it scroll away with the order. Defaults to `false`.
63
+ *
64
+ * IT IS THE KEY TO THE GRAMMAR, AND IT WAS AT THE BOTTOM OF THE SCROLL. Five
65
+ * line styles and three station fills are what make every row and every edge
66
+ * on the surface legible, and in a container tall enough to scroll they sat
67
+ * below everything they explain — so the one thing a reader consults WHILE
68
+ * reading was the one thing they had to leave the reading to reach.
69
+ *
70
+ * ONLY A CONTAINER CAN ANSWER THIS, which is why it is an option and not the
71
+ * default. Sticky positions against the nearest scrollport: dropped into a
72
+ * host's page at its natural height the viewer has no scrollport of its own,
73
+ * so the nearest one is the PAGE, and a legend docked there would float over
74
+ * the host's own content for the whole of their document. A container that
75
+ * has given this viewer a bounded, scrolling box is the only party that knows
76
+ * the dock has somewhere to sit.
77
+ *
78
+ * IT IMPLIES `frame: false`, AND THE STYLESHEET ENFORCES THAT BY CONSTRUCTION.
79
+ * A sticky child cannot escape an ancestor that is itself a scroll container,
80
+ * and this root is `overflow: hidden` precisely so a drawn frame clips its
81
+ * own corners — so the docked rule has to lift that, and a root that no
82
+ * longer clips must not be drawing a radius to clip to. The workspace passes
83
+ * both; a caller that passes only this one gets a docked legend and an
84
+ * unclipped frame, which is why they are documented together.
85
+ *
86
+ * WHERE the dock sits is still the container's: it renders as
87
+ * `data-legend="docked"` with `bottom: 0`, and a container with something
88
+ * else already pinned to that edge moves it. The grooming workspace does —
89
+ * its rail footer holds the bottom of that zone — and sets the offset from
90
+ * the footer it measures rather than from a number either package wrote down.
91
+ */
92
+ readonly dockLegend?: boolean | undefined;
93
+ /**
94
+ * Hand the "not in the order" group back on `Scene.footer` instead of drawing
95
+ * it inside `Scene.root`. Defaults to `false`.
96
+ *
97
+ * THE FOOTER ENDS THE ORDER, AND A HOST THAT WINDOWS THE ORDER ENDS IT
98
+ * SOMEWHERE ELSE. The group is a fact about the whole document — every
99
+ * runner-held slot and every exclusion — so it belongs after the last row of
100
+ * the order. A host that virtualizes rows draws only a window of them, with a
101
+ * spacer above and below standing in for the rest, and composes
102
+ * `spacer + root + spacer`. With the footer inside the root that put the
103
+ * group directly under the VISIBLE rows: mid-scroll, with hundreds of ranks
104
+ * still to come beneath it. Detached, the host composes it after the
105
+ * trailing spacer, which is where the order actually ends.
106
+ *
107
+ * ONLY A CONTAINER THAT VIRTUALIZES NEEDS IT, which is why it is an option and
108
+ * not the default — the same reasoning as `frame` and `dockLegend`. A viewer
109
+ * that draws every row is its own extent, and the inline footer is already
110
+ * in the right place.
111
+ *
112
+ * HONOURED BY THE LINEAR PROJECTION ONLY. The graph and the tree are never
113
+ * virtualized — the rail that windows the order is always linear — so they
114
+ * keep their footer inline and return `footer: null` whatever this says. A
115
+ * host passing it to every projection is therefore safe: nothing goes
116
+ * missing from the projections that ignore it.
117
+ *
118
+ * THE DETACHED GROUP CARRIES ITS OWN `.ig-viewer` WRAPPER. Its styles hang off
119
+ * that ancestor — the type, the box sizing, the focus ring and §17j's density
120
+ * block are all scoped to it — so the group is handed out inside an element
121
+ * carrying the root's class and its `frame` and `density` attributes rather
122
+ * than leaving every host to rebuild that context or this sheet to say every
123
+ * rule twice. The traversal does not change: `focusOrder` and `navigable` are
124
+ * identical either way.
125
+ */
126
+ readonly detachFooter?: boolean | undefined;
34
127
  /**
35
128
  * Draw the header's own view controls — the List/Graph toggle, and the
36
129
  * graph's expand/collapse affordance. Defaults to `false`.
@@ -95,25 +188,22 @@ export interface SceneOptions {
95
188
  */
96
189
  readonly density?: 'dense' | 'wide' | undefined;
97
190
  }
191
+ export declare function footerHeading(): string;
192
+ export declare function footerReason(kinds: FooterKinds): string | null;
98
193
  /**
99
- * A slot the footer owns.
194
+ * The group's head, for either projection, in the panel header's own voice.
100
195
  *
101
- * ANY tracker-family hold sends the slot to the footer, even alongside a
102
- * graph-derived one. A slot the runner has already claimed is not waiting on
103
- * the graph in any sense a rank could express, so giving it a position would
104
- * claim work is queued that nothing can start.
105
- */
106
- /**
107
- * What the footer group calls itself.
196
+ * THE SAME TWO PIECES THE PANEL HEADER USES, NOT A THIRD STYLE. The name is an
197
+ * `.ig-header-label` — the accent mono kicker that reads "ORDER PREVIEW" at the
198
+ * top of the panel — and the count is an `.ig-count-chip`, the outlined tally
199
+ * beside it. A group that invented its own heading treatment was one more thing
200
+ * a reader had to learn, on the part of the panel they reach last.
108
201
  *
109
- * IT COVERS TWO FAMILIES, AND SAYING "held by the runner" COVERED ONE. §16a's
110
- * own group lists a duplicate under that heading, but §16d's table is explicit
111
- * that a duplicate is a different fact — "canonical elsewhere, never worked" —
112
- * from a claim or a park. A document with one duplicate and no tracker hold
113
- * therefore read "1 held by the runner" about an issue no runner has touched.
114
- * Shared by both projections, so the two cannot word one group two ways.
202
+ * "HELD" ONLY WHEN SOMETHING IS. The chip reads `4 held` the way the header's
203
+ * `6 held` does, but a group of duplicates alone is not held by anyone — §16d
204
+ * keeps the two facts apart — so it then states the bare count.
115
205
  */
116
- export declare function footerHeading(count: number, kinds: FooterKinds): string;
206
+ export declare function footerHead(count: number, kinds: FooterKinds): ElementSpec;
117
207
  /**
118
208
  * Which families of entry a footer group actually holds.
119
209
  *
@@ -1 +1 @@
1
- {"version":3,"file":"linear.d.ts","sourceRoot":"","sources":["../../src/projections/linear.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,KAAK,EAAE,kBAAkB,EAAc,UAAU,EAAE,MAAM,gBAAgB,CAAC;AACjF,OAAO,EAAE,KAAK,WAAW,EAAW,MAAM,eAAe,CAAC;AA8B1D,OAAO,EAA0B,KAAK,KAAK,EAAmB,MAAM,aAAa,CAAC;AAGlF,MAAM,WAAW,YAAY;IAC3B,4DAA4D;IAC5D,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IAC9C,2EAA2E;IAC3E,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IAC7C;;;;;;;;;OASG;IACH,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IACtC;;;;;;;;;;;;;;;;OAgBG;IACH,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC1C;;;;;;;;;;;OAWG;IACH,QAAQ,CAAC,QAAQ,CAAC,EAAE,SAAS,MAAM,EAAE,GAAG,SAAS,CAAC;IAClD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA8BG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAAC;CACjD;AAED;;;;;;;GAOG;AACH;;;;;;;;;GASG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,WAAW,GAAG,MAAM,CAWvE;AAED;;;;;;;;;GASG;AACH,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAC;IAC9B,mEAAmE;IACnE,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;CAC3B;AAED,wBAAgB,YAAY,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAEtD;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,OAAO,CACrB,QAAQ,EAAE,kBAAkB,EAC5B,IAAI,EAAE,UAAU,EAChB,OAAO,EAAE,YAAY,EACrB,QAAQ,EAAE,OAAO,GAChB,WAAW,CAsHb;AAED;;;;;;;;GAQG;AACH,wBAAgB,SAAS,CACvB,QAAQ,EAAE,kBAAkB,EAC5B,IAAI,EAAE,UAAU,EAChB,OAAO,EAAE,YAAY,GACpB,WAAW,CAmCb;AAyBD,wBAAgB,WAAW,CACzB,QAAQ,EAAE,kBAAkB,EAC5B,GAAG,EAAE,MAAM,EACX,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,YAAY,GACpB,WAAW,CA2Bb;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,QAAQ,CACtB,QAAQ,EAAE,kBAAkB,EAC5B,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,YAAY,GACpB,WAAW,CAkBb;AAUD,wBAAgB,WAAW,CACzB,QAAQ,EAAE,kBAAkB,EAC5B,UAAU,GAAE,YAAiB,GAC5B,KAAK,CA+IP"}
1
+ {"version":3,"file":"linear.d.ts","sourceRoot":"","sources":["../../src/projections/linear.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,KAAK,EAAE,kBAAkB,EAAc,UAAU,EAAE,MAAM,gBAAgB,CAAC;AACjF,OAAO,EAAE,KAAK,WAAW,EAAW,MAAM,eAAe,CAAC;AA6B1D,OAAO,EAA0B,KAAK,KAAK,EAAmB,MAAM,aAAa,CAAC;AAGlF,MAAM,WAAW,YAAY;IAC3B,4DAA4D;IAC5D,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IAC9C,2EAA2E;IAC3E,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IAC7C;;;;;;;;;OASG;IACH,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IACtC;;;;;;;;;;;;;;;;;;;;;;;;OAwBG;IACH,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IACrC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA+BG;IACH,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC1C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAgCG;IACH,QAAQ,CAAC,YAAY,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC5C;;;;;;;;;;;;;;;;OAgBG;IACH,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC1C;;;;;;;;;;;OAWG;IACH,QAAQ,CAAC,QAAQ,CAAC,EAAE,SAAS,MAAM,EAAE,GAAG,SAAS,CAAC;IAClD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA8BG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAAC;CACjD;AA6BD,wBAAgB,aAAa,IAAI,MAAM,CAEtC;AAED,wBAAgB,YAAY,CAAC,KAAK,EAAE,WAAW,GAAG,MAAM,GAAG,IAAI,CAY9D;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,WAAW,GAAG,WAAW,CAWzE;AAED;;;;;;;;;GASG;AACH,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAC;IAC9B,mEAAmE;IACnE,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;CAC3B;AAED,wBAAgB,YAAY,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAEtD;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,OAAO,CACrB,QAAQ,EAAE,kBAAkB,EAC5B,IAAI,EAAE,UAAU,EAChB,OAAO,EAAE,YAAY,EACrB,QAAQ,EAAE,OAAO,GAChB,WAAW,CAsHb;AAED;;;;;;;;GAQG;AACH,wBAAgB,SAAS,CACvB,QAAQ,EAAE,kBAAkB,EAC5B,IAAI,EAAE,UAAU,EAChB,OAAO,EAAE,YAAY,GACpB,WAAW,CAmCb;AA0DD,wBAAgB,WAAW,CACzB,QAAQ,EAAE,kBAAkB,EAC5B,GAAG,EAAE,MAAM,EACX,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,YAAY,GACpB,WAAW,CA8Bb;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,QAAQ,CACtB,QAAQ,EAAE,kBAAkB,EAC5B,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,YAAY,GACpB,WAAW,CAmBb;AAUD,wBAAgB,WAAW,CACzB,QAAQ,EAAE,kBAAkB,EAC5B,UAAU,GAAE,YAAiB,GAC5B,KAAK,CA4KP"}