@issuegraph/editor 0.10.0 → 0.22.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (106) hide show
  1. package/README.md +38 -7
  2. package/dist/a11y/baseline.d.ts.map +1 -1
  3. package/dist/a11y/baseline.js +4 -0
  4. package/dist/a11y/baseline.js.map +1 -1
  5. package/dist/audit/findings.d.ts +107 -1
  6. package/dist/audit/findings.d.ts.map +1 -1
  7. package/dist/audit/findings.js +113 -6
  8. package/dist/audit/findings.js.map +1 -1
  9. package/dist/audit/panel.d.ts +277 -0
  10. package/dist/audit/panel.d.ts.map +1 -0
  11. package/dist/audit/panel.js +462 -0
  12. package/dist/audit/panel.js.map +1 -0
  13. package/dist/audit/refused.d.ts +99 -0
  14. package/dist/audit/refused.d.ts.map +1 -0
  15. package/dist/audit/refused.js +276 -0
  16. package/dist/audit/refused.js.map +1 -0
  17. package/dist/audit/styles.d.ts +1 -1
  18. package/dist/audit/styles.d.ts.map +1 -1
  19. package/dist/audit/styles.js +428 -0
  20. package/dist/audit/styles.js.map +1 -1
  21. package/dist/audit/surface.d.ts +54 -12
  22. package/dist/audit/surface.d.ts.map +1 -1
  23. package/dist/audit/surface.js +53 -13
  24. package/dist/audit/surface.js.map +1 -1
  25. package/dist/create/draft.d.ts +19 -0
  26. package/dist/create/draft.d.ts.map +1 -1
  27. package/dist/create/draft.js +21 -0
  28. package/dist/create/draft.js.map +1 -1
  29. package/dist/create/keys.d.ts +68 -8
  30. package/dist/create/keys.d.ts.map +1 -1
  31. package/dist/create/keys.js +43 -5
  32. package/dist/create/keys.js.map +1 -1
  33. package/dist/index.d.ts +38 -15
  34. package/dist/index.d.ts.map +1 -1
  35. package/dist/index.js +34 -13
  36. package/dist/index.js.map +1 -1
  37. package/dist/overlay/render.d.ts +11 -3
  38. package/dist/overlay/render.d.ts.map +1 -1
  39. package/dist/overlay/render.js +22 -6
  40. package/dist/overlay/render.js.map +1 -1
  41. package/dist/overlay/request.d.ts +71 -0
  42. package/dist/overlay/request.d.ts.map +1 -0
  43. package/dist/overlay/request.js +129 -0
  44. package/dist/overlay/request.js.map +1 -0
  45. package/dist/overlay/styles.d.ts +1 -1
  46. package/dist/overlay/styles.d.ts.map +1 -1
  47. package/dist/overlay/styles.js +38 -7
  48. package/dist/overlay/styles.js.map +1 -1
  49. package/dist/reevaluate/parts.d.ts +130 -0
  50. package/dist/reevaluate/parts.d.ts.map +1 -0
  51. package/dist/reevaluate/parts.js +260 -0
  52. package/dist/reevaluate/parts.js.map +1 -0
  53. package/dist/reevaluate/render.d.ts +18 -11
  54. package/dist/reevaluate/render.d.ts.map +1 -1
  55. package/dist/reevaluate/render.js +21 -135
  56. package/dist/reevaluate/render.js.map +1 -1
  57. package/dist/reevaluate/styles.d.ts +1 -1
  58. package/dist/reevaluate/styles.d.ts.map +1 -1
  59. package/dist/reevaluate/styles.js +26 -0
  60. package/dist/reevaluate/styles.js.map +1 -1
  61. package/dist/reevaluate/view.d.ts +16 -1
  62. package/dist/reevaluate/view.d.ts.map +1 -1
  63. package/dist/reevaluate/view.js +21 -1
  64. package/dist/reevaluate/view.js.map +1 -1
  65. package/dist/reevaluate/words.d.ts +7 -0
  66. package/dist/reevaluate/words.d.ts.map +1 -1
  67. package/dist/scale/ladder.d.ts +62 -6
  68. package/dist/scale/ladder.d.ts.map +1 -1
  69. package/dist/scale/ladder.js +119 -8
  70. package/dist/scale/ladder.js.map +1 -1
  71. package/dist/scale/render.d.ts +44 -0
  72. package/dist/scale/render.d.ts.map +1 -1
  73. package/dist/scale/render.js +197 -27
  74. package/dist/scale/render.js.map +1 -1
  75. package/dist/scale/styles.d.ts +11 -5
  76. package/dist/scale/styles.d.ts.map +1 -1
  77. package/dist/scale/styles.js +133 -4
  78. package/dist/scale/styles.js.map +1 -1
  79. package/dist/workspace/host.d.ts +83 -1
  80. package/dist/workspace/host.d.ts.map +1 -1
  81. package/dist/workspace/host.js +197 -4
  82. package/dist/workspace/host.js.map +1 -1
  83. package/dist/workspace/inspector.d.ts +33 -7
  84. package/dist/workspace/inspector.d.ts.map +1 -1
  85. package/dist/workspace/inspector.js +15 -0
  86. package/dist/workspace/inspector.js.map +1 -1
  87. package/dist/workspace/mount.d.ts +23 -1
  88. package/dist/workspace/mount.d.ts.map +1 -1
  89. package/dist/workspace/mount.js +500 -17
  90. package/dist/workspace/mount.js.map +1 -1
  91. package/dist/workspace/rail.d.ts +5 -2
  92. package/dist/workspace/rail.d.ts.map +1 -1
  93. package/dist/workspace/rail.js.map +1 -1
  94. package/dist/workspace/render.d.ts +379 -3
  95. package/dist/workspace/render.d.ts.map +1 -1
  96. package/dist/workspace/render.js +893 -133
  97. package/dist/workspace/render.js.map +1 -1
  98. package/dist/workspace/selection.d.ts +11 -0
  99. package/dist/workspace/selection.d.ts.map +1 -1
  100. package/dist/workspace/selection.js +10 -0
  101. package/dist/workspace/selection.js.map +1 -1
  102. package/dist/workspace/styles.d.ts +1 -1
  103. package/dist/workspace/styles.d.ts.map +1 -1
  104. package/dist/workspace/styles.js +868 -18
  105. package/dist/workspace/styles.js.map +1 -1
  106. package/package.json +3 -3
@@ -1 +1 @@
1
- {"version":3,"file":"render.js","sourceRoot":"","sources":["../../src/overlay/render.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"render.js","sourceRoot":"","sources":["../../src/overlay/render.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,71 @@
1
+ /**
2
+ * The one place a write state becomes a position.
3
+ *
4
+ * ## What this module is for
5
+ *
6
+ * `attachEdgeOverlays` draws everything an overlay can say by reusing the path's
7
+ * own position — a halo is the path stroked wider, a ghost is the path dashed
8
+ * differently. What it cannot draw is the half that needs a NEW position: a chip
9
+ * on the two nodes, a cross beside the terminal, a reason beside the line, and a
10
+ * conflict's second version on the line's perpendicular. Those travel as
11
+ * {@link EdgeOverlay.marks}, declared here rather than half-drawn there.
12
+ *
13
+ * Layer 1 places them, because it is the layer that computed the layout. This
14
+ * module is the translation that lets it do so without learning anything: it
15
+ * turns each declared mark into an {@link EdgeMark} whose vocabulary is
16
+ * POSITIONAL, so the viewer receives `companion` and never `conflict`.
17
+ *
18
+ * ## The mapping is the seam, so it lives on one table
19
+ *
20
+ * One entry per mark the grammar can declare, and the table is exhaustive over
21
+ * that union rather than a switch with a default — a fifth mark added to the
22
+ * grammar should fail to compile here, not silently stop being drawn. That is
23
+ * the failure this whole area has had twice: a channel declared in a table and
24
+ * rendered by nothing.
25
+ *
26
+ * ## The words stay on this side
27
+ *
28
+ * `writing…` and `✕` are this package's vocabulary — the same strings
29
+ * `renderOverlayMark` puts in the host-facing slot — and they are handed over as
30
+ * opaque content. A host that translates translates one vocabulary, and the
31
+ * viewer never holds a word it could be asked to translate.
32
+ *
33
+ * The hue travels as a token NAME, read from the treatment table rather than
34
+ * copied, so a retheme moves the mark and the stroke together. Where a state has
35
+ * no hue of its own this asks for NONE, and layer 1 fills in the relationship's.
36
+ *
37
+ * That last clause used to say the mark "inherits the relationship's — which is
38
+ * the same rule the dashed clone follows", and both halves were wrong. A mark is
39
+ * a SIBLING of the edge, so it inherits the viewer's body text and not the hue
40
+ * `.ig-edge[data-edge=…]` gives the line; and the dashed clone does not inherit
41
+ * either — `render.ts` states its stroke inline for exactly that reason, in a
42
+ * comment about exactly this trap. A `pending-write` chip therefore rendered
43
+ * grey beside the red line it belonged to.
44
+ *
45
+ * So "no tone" is a REQUEST for the kind's hue rather than a decision to have
46
+ * none, and the layer that owns the relationship vocabulary is the one that
47
+ * resolves it.
48
+ */
49
+ import type { ProjectedEdge } from '@issuegraph/store';
50
+ import type { EdgeMark } from '@issuegraph/viewer';
51
+ import { type EdgeOverlay } from './grammar.ts';
52
+ /**
53
+ * The marks one overlay asks layer 1 to draw.
54
+ *
55
+ * Empty for an overlay with no marks, which is most of them: `selected` declares
56
+ * none at all, and its halo is drawn from the path's own position.
57
+ */
58
+ export declare function marksFor(overlay: EdgeOverlay): readonly EdgeMark[];
59
+ /**
60
+ * Every overlay's marks, keyed the way layer 1 keys its edges.
61
+ *
62
+ * `ProjectedEdge.id` is `edgeIdentity(field, from, to)` — the same string the
63
+ * viewer publishes on `data-ig-group` — so the two sides agree with no
64
+ * reconstruction and nothing to keep in step.
65
+ *
66
+ * An overlay with no marks is left OUT rather than mapped to an empty list: the
67
+ * absence of a key and a key with nothing under it should not be two ways of
68
+ * saying the same thing to a reader of this map.
69
+ */
70
+ export declare function edgeMarkRequests(edges: readonly ProjectedEdge[]): ReadonlyMap<string, readonly EdgeMark[]>;
71
+ //# sourceMappingURL=request.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"request.d.ts","sourceRoot":"","sources":["../../src/overlay/request.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+CG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,KAAK,EAAE,QAAQ,EAAqB,MAAM,oBAAoB,CAAC;AAEtE,OAAO,EACL,KAAK,WAAW,EAIjB,MAAM,cAAc,CAAC;AA4BtB;;;;;GAKG;AACH,wBAAgB,QAAQ,CAAC,OAAO,EAAE,WAAW,GAAG,SAAS,QAAQ,EAAE,CA2BlE;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,SAAS,aAAa,EAAE,GAC9B,WAAW,CAAC,MAAM,EAAE,SAAS,QAAQ,EAAE,CAAC,CAW1C"}
@@ -0,0 +1,129 @@
1
+ /**
2
+ * The one place a write state becomes a position.
3
+ *
4
+ * ## What this module is for
5
+ *
6
+ * `attachEdgeOverlays` draws everything an overlay can say by reusing the path's
7
+ * own position — a halo is the path stroked wider, a ghost is the path dashed
8
+ * differently. What it cannot draw is the half that needs a NEW position: a chip
9
+ * on the two nodes, a cross beside the terminal, a reason beside the line, and a
10
+ * conflict's second version on the line's perpendicular. Those travel as
11
+ * {@link EdgeOverlay.marks}, declared here rather than half-drawn there.
12
+ *
13
+ * Layer 1 places them, because it is the layer that computed the layout. This
14
+ * module is the translation that lets it do so without learning anything: it
15
+ * turns each declared mark into an {@link EdgeMark} whose vocabulary is
16
+ * POSITIONAL, so the viewer receives `companion` and never `conflict`.
17
+ *
18
+ * ## The mapping is the seam, so it lives on one table
19
+ *
20
+ * One entry per mark the grammar can declare, and the table is exhaustive over
21
+ * that union rather than a switch with a default — a fifth mark added to the
22
+ * grammar should fail to compile here, not silently stop being drawn. That is
23
+ * the failure this whole area has had twice: a channel declared in a table and
24
+ * rendered by nothing.
25
+ *
26
+ * ## The words stay on this side
27
+ *
28
+ * `writing…` and `✕` are this package's vocabulary — the same strings
29
+ * `renderOverlayMark` puts in the host-facing slot — and they are handed over as
30
+ * opaque content. A host that translates translates one vocabulary, and the
31
+ * viewer never holds a word it could be asked to translate.
32
+ *
33
+ * The hue travels as a token NAME, read from the treatment table rather than
34
+ * copied, so a retheme moves the mark and the stroke together. Where a state has
35
+ * no hue of its own this asks for NONE, and layer 1 fills in the relationship's.
36
+ *
37
+ * That last clause used to say the mark "inherits the relationship's — which is
38
+ * the same rule the dashed clone follows", and both halves were wrong. A mark is
39
+ * a SIBLING of the edge, so it inherits the viewer's body text and not the hue
40
+ * `.ig-edge[data-edge=…]` gives the line; and the dashed clone does not inherit
41
+ * either — `render.ts` states its stroke inline for exactly that reason, in a
42
+ * comment about exactly this trap. A `pending-write` chip therefore rendered
43
+ * grey beside the red line it belonged to.
44
+ *
45
+ * So "no tone" is a REQUEST for the kind's hue rather than a decision to have
46
+ * none, and the layer that owns the relationship vocabulary is the one that
47
+ * resolves it.
48
+ */
49
+ import { OVERLAY_TREATMENTS, overlayFor, } from "./grammar.js";
50
+ /**
51
+ * Where each declared mark goes, and what it says when it gets there.
52
+ *
53
+ * `glyph` is `null` for a mark whose whole form is the line — a companion is not
54
+ * a symbol, it is the relationship drawn a second time.
55
+ */
56
+ const MARK_PLACEMENTS = Object.freeze({
57
+ // §17b: "writing… chip on both nodes". Both, not one — an optimistic edit is
58
+ // in flight at both ends of what it joins, and a single chip reads as a
59
+ // property of whichever end happened to get it.
60
+ 'node-chip': { placement: 'both-ends', glyph: 'writing…' },
61
+ // A glyph rather than a word, for the reason the edge vocabulary uses glyphs:
62
+ // it is the non-colour channel, and it needs no translation. `marks.ts` steps
63
+ // it clear of the terminal marker rather than over it.
64
+ 'terminal-cross': { placement: 'terminal', glyph: '✕' },
65
+ // THE SENTENCE IS STILL THE HOST'S. What goes on the canvas is the symbol that
66
+ // says a reason exists and where it belongs; the reason itself is keyed off
67
+ // the store's `InvalidCode` in the panel, exactly as `renderOverlayMark`'s
68
+ // slot does. Putting prose on a canvas would also put it outside the rail that
69
+ // carries every readable thing about this document.
70
+ 'inline-reason': { placement: 'beside', glyph: '!' },
71
+ 'second-version': { placement: 'companion', glyph: null },
72
+ });
73
+ /**
74
+ * The marks one overlay asks layer 1 to draw.
75
+ *
76
+ * Empty for an overlay with no marks, which is most of them: `selected` declares
77
+ * none at all, and its halo is drawn from the path's own position.
78
+ */
79
+ export function marksFor(overlay) {
80
+ const marks = [];
81
+ for (const mark of overlay.marks) {
82
+ const spec = MARK_PLACEMENTS[mark];
83
+ // THE HUE OF THE STATE THAT DECLARED THIS MARK, not of the overlay as a
84
+ // whole. An edge can be `selected` and `conflict` at once, and the overlay's
85
+ // own `line` carries whichever won on precedence — so reading the tone from
86
+ // there would paint a conflict's companion in the focus colour the moment a
87
+ // reader clicked it.
88
+ const owner = overlay.states.find((state) => {
89
+ // Widened at the read, because each entry's `marks` is a literal tuple —
90
+ // `selected`'s is empty, so an unwidened `includes` takes `never` and the
91
+ // lookup does not compile.
92
+ const declared = OVERLAY_TREATMENTS[state].marks;
93
+ return declared.includes(mark);
94
+ });
95
+ const tone = owner === undefined ? null : OVERLAY_TREATMENTS[owner].hueToken;
96
+ // NO ACCESSIBLE NAME, and there is no longer a field for one. The canvas is
97
+ // `aria-hidden`, so nothing inside it can carry a name however it is marked
98
+ // up — and the state is already announced once, on the edge's own
99
+ // `aria-label`, by `attachEdgeOverlays`. Saying it twice is what the hidden
100
+ // canvas exists to prevent.
101
+ marks.push({ placement: spec.placement, glyph: spec.glyph, tone });
102
+ }
103
+ return marks;
104
+ }
105
+ /**
106
+ * Every overlay's marks, keyed the way layer 1 keys its edges.
107
+ *
108
+ * `ProjectedEdge.id` is `edgeIdentity(field, from, to)` — the same string the
109
+ * viewer publishes on `data-ig-group` — so the two sides agree with no
110
+ * reconstruction and nothing to keep in step.
111
+ *
112
+ * An overlay with no marks is left OUT rather than mapped to an empty list: the
113
+ * absence of a key and a key with nothing under it should not be two ways of
114
+ * saying the same thing to a reader of this map.
115
+ */
116
+ export function edgeMarkRequests(edges) {
117
+ const requests = new Map();
118
+ // Folded through `overlayFor`, the same function `attachEdgeOverlays` uses, so
119
+ // the marks drawn and the states announced cannot come from two readings of
120
+ // one projection.
121
+ for (const edge of edges) {
122
+ const marks = marksFor(overlayFor(edge));
123
+ if (marks.length === 0)
124
+ continue;
125
+ requests.set(edge.id, marks);
126
+ }
127
+ return requests;
128
+ }
129
+ //# sourceMappingURL=request.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"request.js","sourceRoot":"","sources":["../../src/overlay/request.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+CG;AAKH,OAAO,EAGL,kBAAkB,EAClB,UAAU,GACX,MAAM,cAAc,CAAC;AAEtB;;;;;GAKG;AACH,MAAM,eAAe,GAEjB,MAAM,CAAC,MAAM,CAAC;IAChB,6EAA6E;IAC7E,wEAAwE;IACxE,gDAAgD;IAChD,WAAW,EAAE,EAAE,SAAS,EAAE,WAAW,EAAE,KAAK,EAAE,UAAU,EAAE;IAC1D,8EAA8E;IAC9E,8EAA8E;IAC9E,uDAAuD;IACvD,gBAAgB,EAAE,EAAE,SAAS,EAAE,UAAU,EAAE,KAAK,EAAE,GAAG,EAAE;IACvD,+EAA+E;IAC/E,4EAA4E;IAC5E,2EAA2E;IAC3E,+EAA+E;IAC/E,oDAAoD;IACpD,eAAe,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,EAAE;IACpD,gBAAgB,EAAE,EAAE,SAAS,EAAE,WAAW,EAAE,KAAK,EAAE,IAAI,EAAE;CAC1D,CAAC,CAAC;AAEH;;;;;GAKG;AACH,MAAM,UAAU,QAAQ,CAAC,OAAoB;IAC3C,MAAM,KAAK,GAAe,EAAE,CAAC;IAE7B,KAAK,MAAM,IAAI,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;QACjC,MAAM,IAAI,GAAG,eAAe,CAAC,IAAI,CAAC,CAAC;QACnC,wEAAwE;QACxE,6EAA6E;QAC7E,4EAA4E;QAC5E,4EAA4E;QAC5E,qBAAqB;QACrB,MAAM,KAAK,GAAG,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE;YAC1C,yEAAyE;YACzE,0EAA0E;YAC1E,2BAA2B;YAC3B,MAAM,QAAQ,GAA2B,kBAAkB,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC;YACzE,OAAO,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QACjC,CAAC,CAAC,CAAC;QACH,MAAM,IAAI,GAAG,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC;QAC7E,4EAA4E;QAC5E,4EAA4E;QAC5E,kEAAkE;QAClE,4EAA4E;QAC5E,4BAA4B;QAC5B,KAAK,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IACrE,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,gBAAgB,CAC9B,KAA+B;IAE/B,MAAM,QAAQ,GAAG,IAAI,GAAG,EAA+B,CAAC;IACxD,+EAA+E;IAC/E,4EAA4E;IAC5E,kBAAkB;IAClB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,KAAK,GAAG,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC;QACzC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;YAAE,SAAS;QACjC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;IAC/B,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC"}
@@ -37,5 +37,5 @@
37
37
  * and the dash pattern carry that on their own, so the movement is what drops
38
38
  * rather than the signal.
39
39
  */
40
- export declare const edgeOverlayStylesheet = "\n.ig-overlay {\n pointer-events: none;\n}\n\n.ig-overlay-halo {\n fill: none;\n stroke: var(--ig-focus);\n stroke-linecap: round;\n}\n\n/* The stroke is set per element from the treatment table \u2014 a state's own hue\n where it has one, the relationship's where it does not \u2014 for the same reason\n the viewer sets its dash per element: one source for a channel. */\n.ig-overlay-dash {\n fill: none;\n}\n\n.ig-overlay-marching {\n stroke-dasharray: 4 4;\n animation: ig-overlay-march 1s linear infinite;\n}\n\n.ig-overlay-dotted {\n stroke-dasharray: 1 3;\n}\n\n@keyframes ig-overlay-march {\n to {\n stroke-dashoffset: -8;\n }\n}\n\n@media (prefers-reduced-motion: reduce) {\n .ig-overlay-marching {\n animation: none;\n }\n}\n\n/* NOT prefixed with the edge class. A together-with relationship is drawn as a\n connector rather than an edge path, so an edge-anchored rule left one of the\n five relationships unstyled in every state. Only an overlaid element carries\n the attribute at all, so the bare selector reaches exactly the intended set.\n (No backticks in here: this is inside a template literal, and one ends it.) */\n[data-ig-state~='invalid'] {\n stroke: var(--ig-state-invalid);\n}\n\n[data-ig-state~='failed'] {\n stroke: var(--ig-state-failed);\n}\n\n[data-ig-state~='conflict'] {\n stroke: var(--ig-state-conflict);\n}\n\n/* A BADGE IS NOT A STROKE, AND SOME RELATIONSHIPS ARE ONLY A BADGE.\n together-with is drawn as no line at all \u2014 it shares a rank rather than\n ordering anything, and layer 1 draws the unit as one card with its members\n listed inside \u2014 so the chip that names it is its entire representation. The\n marks this module clones from a stroke cannot be cloned from a span, and the\n stroke rules above paint a property a span does not have: an in-flight or\n refused together-edge therefore read exactly like a settled one, with the\n state visible only to a screen reader.\n\n So a chip states the state with what a chip HAS: its border and its ink.\n Every state the drawn edge distinguishes, distinguished here too \u2014 including\n the two that have no hue of their own, where a stroke uses a ghost or a halo\n and a chip uses a dash and the focus ring. */\n.ig-badge[data-ig-state~='invalid'] {\n border-color: var(--ig-state-invalid);\n color: var(--ig-state-invalid);\n}\n\n.ig-badge[data-ig-state~='failed'] {\n border-color: var(--ig-state-failed);\n color: var(--ig-state-failed);\n}\n\n.ig-badge[data-ig-state~='conflict'] {\n border-color: var(--ig-state-conflict);\n color: var(--ig-state-conflict);\n}\n\n/* Pending is the state with no hue: the drawn edge says it with a dashed ghost,\n and a chip says it with a dashed border of its own. */\n.ig-badge[data-ig-state~='pending-write'] {\n border-style: dashed;\n}\n\n/* Selected is the focus ring's meaning, and the theme says so where it declares\n the token \u2014 selected is deliberately not an edit-state hue. */\n.ig-badge[data-ig-state~='selected'] {\n box-shadow: 0 0 0 var(--ig-stroke) var(--ig-focus);\n}\n\n.ig-overlay-chip {\n background: var(--ig-surface-2);\n color: var(--ig-text-muted);\n border: var(--ig-stroke) solid var(--ig-line);\n border-radius: var(--ig-radius);\n padding: var(--ig-space-tight);\n font-family: var(--ig-font-ui);\n font-size: var(--ig-font-size-small);\n}\n\n.ig-overlay-cross {\n color: var(--ig-state-failed);\n font-family: var(--ig-font-ui);\n font-size: var(--ig-font-size);\n}\n\n.ig-overlay-reason {\n color: var(--ig-state-invalid);\n font-family: var(--ig-font-ui);\n font-size: var(--ig-font-size-small);\n}\n\n.ig-overlay-held {\n color: var(--ig-state-conflict);\n font-family: var(--ig-font-ui);\n font-size: var(--ig-font-size-small);\n}\n";
40
+ export declare const edgeOverlayStylesheet = "\n.ig-overlay {\n pointer-events: none;\n}\n\n.ig-overlay-halo {\n fill: none;\n stroke: var(--ig-focus);\n stroke-linecap: round;\n}\n\n/* The stroke is set per element from the treatment table \u2014 a state's own hue\n where it has one, the relationship's where it does not \u2014 for the same reason\n the viewer sets its dash per element: one source for a channel. */\n.ig-overlay-dash {\n fill: none;\n}\n\n.ig-overlay-marching {\n stroke-dasharray: 4 4;\n animation: ig-overlay-march 1s linear infinite;\n}\n\n.ig-overlay-dotted {\n stroke-dasharray: 1 3;\n}\n\n@keyframes ig-overlay-march {\n to {\n stroke-dashoffset: -8;\n }\n}\n\n@media (prefers-reduced-motion: reduce) {\n .ig-overlay-marching {\n animation: none;\n }\n}\n\n/* QUALIFIED, AND THE QUALIFICATION IS THE WHOLE RULE \u2014 it is what makes these\n three declarations apply at all.\n\n They used to be bare, and the comment here explained why: a together-with was\n drawn as a CONNECTOR rather than an edge path, so an edge-anchored rule left\n one of the five relationships unstyled. Both halves of that have since stopped\n being true, and nothing noticed either.\n\n The connector is gone \u2014 layer 1's section-16 pass draws a together unit as ONE\n card with its members listed inside, so the relationship's whole drawn form is\n its badge, and the badge rules below are what reach it.\n\n And the bare selector never painted an edge. A drawn path carries BOTH the edge\n class with its kind attribute, which the viewer hues at specificity (0,2,0), and\n the state attribute, which at (0,1,0) loses to it \u2014 and specificity beats source\n order, so concatenating this sheet last changed nothing. Measured in a browser:\n a conflicted blocked-by edge computed the relationship's own red, never the\n state's gold.\n\n So the bare rules matched exactly two kinds of element and were dead on both.\n On a path they lost the cascade; on a badge they set a stroke, which a span has\n no use for.\n\n invalid was the only state that looked right, and by accident: it is the one\n settled state carrying a dash, so render.ts builds a CLONE for it, and a clone\n drops its class \u2014 which is precisely why that file sets the stroke inline on\n one. The states that build no clone had nothing to fall back on, which is why\n failed rendered identically to invalid, and conflict identically to a settled\n edge.\n\n The kind attribute is carried by every drawn path and by nothing else, so adding\n it reaches (0,3,0) and wins OUTRIGHT rather than by tying and being placed later.\n A tie would work today and would break the first time a host reordered the\n sheets \u2014 and this rule has already failed silently once.\n\n (No backticks in here: this is inside a template literal, and one ends it.) */\n.ig-edge[data-edge][data-ig-state~='invalid'] {\n stroke: var(--ig-state-invalid);\n}\n\n.ig-edge[data-edge][data-ig-state~='failed'] {\n stroke: var(--ig-state-failed);\n}\n\n.ig-edge[data-edge][data-ig-state~='conflict'] {\n stroke: var(--ig-state-conflict);\n}\n\n/* A BADGE IS NOT A STROKE, AND SOME RELATIONSHIPS ARE ONLY A BADGE.\n together-with is drawn as no line at all \u2014 it shares a rank rather than\n ordering anything, and layer 1 draws the unit as one card with its members\n listed inside \u2014 so the chip that names it is its entire representation. The\n marks this module clones from a stroke cannot be cloned from a span, and the\n stroke rules above paint a property a span does not have: an in-flight or\n refused together-edge therefore read exactly like a settled one, with the\n state visible only to a screen reader.\n\n So a chip states the state with what a chip HAS: its border and its ink.\n Every state the drawn edge distinguishes, distinguished here too \u2014 including\n the two that have no hue of their own, where a stroke uses a ghost or a halo\n and a chip uses a dash and the focus ring. */\n.ig-badge[data-ig-state~='invalid'] {\n border-color: var(--ig-state-invalid);\n color: var(--ig-state-invalid);\n}\n\n.ig-badge[data-ig-state~='failed'] {\n border-color: var(--ig-state-failed);\n color: var(--ig-state-failed);\n}\n\n.ig-badge[data-ig-state~='conflict'] {\n border-color: var(--ig-state-conflict);\n color: var(--ig-state-conflict);\n}\n\n/* Pending is the state with no hue: the drawn edge says it with a dashed ghost,\n and a chip says it with a dashed border of its own. */\n.ig-badge[data-ig-state~='pending-write'] {\n border-style: dashed;\n}\n\n/* Selected is the focus ring's meaning, and the theme says so where it declares\n the token \u2014 selected is deliberately not an edit-state hue. */\n.ig-badge[data-ig-state~='selected'] {\n box-shadow: 0 0 0 var(--ig-stroke) var(--ig-focus);\n}\n\n.ig-overlay-chip {\n background: var(--ig-surface-2);\n color: var(--ig-text-muted);\n border: var(--ig-stroke) solid var(--ig-line);\n border-radius: var(--ig-radius);\n padding: var(--ig-space-tight);\n font-family: var(--ig-font-ui);\n font-size: var(--ig-font-size-small);\n}\n\n.ig-overlay-cross {\n color: var(--ig-state-failed);\n font-family: var(--ig-font-ui);\n font-size: var(--ig-font-size);\n}\n\n.ig-overlay-reason {\n color: var(--ig-state-invalid);\n font-family: var(--ig-font-ui);\n font-size: var(--ig-font-size-small);\n}\n\n.ig-overlay-held {\n color: var(--ig-state-conflict);\n font-family: var(--ig-font-ui);\n font-size: var(--ig-font-size-small);\n}\n";
41
41
  //# sourceMappingURL=styles.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"styles.d.ts","sourceRoot":"","sources":["../../src/overlay/styles.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;AAEH,eAAO,MAAM,qBAAqB,ytHA2HjC,CAAC"}
1
+ {"version":3,"file":"styles.d.ts","sourceRoot":"","sources":["../../src/overlay/styles.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;AAEH,eAAO,MAAM,qBAAqB,k7KA0JjC,CAAC"}
@@ -76,20 +76,51 @@ export const edgeOverlayStylesheet = `
76
76
  }
77
77
  }
78
78
 
79
- /* NOT prefixed with the edge class. A together-with relationship is drawn as a
80
- connector rather than an edge path, so an edge-anchored rule left one of the
81
- five relationships unstyled in every state. Only an overlaid element carries
82
- the attribute at all, so the bare selector reaches exactly the intended set.
79
+ /* QUALIFIED, AND THE QUALIFICATION IS THE WHOLE RULE — it is what makes these
80
+ three declarations apply at all.
81
+
82
+ They used to be bare, and the comment here explained why: a together-with was
83
+ drawn as a CONNECTOR rather than an edge path, so an edge-anchored rule left
84
+ one of the five relationships unstyled. Both halves of that have since stopped
85
+ being true, and nothing noticed either.
86
+
87
+ The connector is gone — layer 1's section-16 pass draws a together unit as ONE
88
+ card with its members listed inside, so the relationship's whole drawn form is
89
+ its badge, and the badge rules below are what reach it.
90
+
91
+ And the bare selector never painted an edge. A drawn path carries BOTH the edge
92
+ class with its kind attribute, which the viewer hues at specificity (0,2,0), and
93
+ the state attribute, which at (0,1,0) loses to it — and specificity beats source
94
+ order, so concatenating this sheet last changed nothing. Measured in a browser:
95
+ a conflicted blocked-by edge computed the relationship's own red, never the
96
+ state's gold.
97
+
98
+ So the bare rules matched exactly two kinds of element and were dead on both.
99
+ On a path they lost the cascade; on a badge they set a stroke, which a span has
100
+ no use for.
101
+
102
+ invalid was the only state that looked right, and by accident: it is the one
103
+ settled state carrying a dash, so render.ts builds a CLONE for it, and a clone
104
+ drops its class — which is precisely why that file sets the stroke inline on
105
+ one. The states that build no clone had nothing to fall back on, which is why
106
+ failed rendered identically to invalid, and conflict identically to a settled
107
+ edge.
108
+
109
+ The kind attribute is carried by every drawn path and by nothing else, so adding
110
+ it reaches (0,3,0) and wins OUTRIGHT rather than by tying and being placed later.
111
+ A tie would work today and would break the first time a host reordered the
112
+ sheets — and this rule has already failed silently once.
113
+
83
114
  (No backticks in here: this is inside a template literal, and one ends it.) */
84
- [data-ig-state~='invalid'] {
115
+ .ig-edge[data-edge][data-ig-state~='invalid'] {
85
116
  stroke: var(--ig-state-invalid);
86
117
  }
87
118
 
88
- [data-ig-state~='failed'] {
119
+ .ig-edge[data-edge][data-ig-state~='failed'] {
89
120
  stroke: var(--ig-state-failed);
90
121
  }
91
122
 
92
- [data-ig-state~='conflict'] {
123
+ .ig-edge[data-edge][data-ig-state~='conflict'] {
93
124
  stroke: var(--ig-state-conflict);
94
125
  }
95
126
 
@@ -1 +1 @@
1
- {"version":3,"file":"styles.js","sourceRoot":"","sources":["../../src/overlay/styles.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;AAEH,MAAM,CAAC,MAAM,qBAAqB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA2HpC,CAAC"}
1
+ {"version":3,"file":"styles.js","sourceRoot":"","sources":["../../src/overlay/styles.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;AAEH,MAAM,CAAC,MAAM,qBAAqB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA0JpC,CAAC"}
@@ -0,0 +1,130 @@
1
+ /**
2
+ * The pieces every §17c rendering draws the same way.
3
+ *
4
+ * ## Why this is its own module
5
+ *
6
+ * The loop is drawn twice: by `renderReevaluate`, standalone, with its chips in
7
+ * a list beside the rail; and by the workspace, with the summary in the header
8
+ * and each chip ON its row. Two spellings of one summary or one chip is the
9
+ * drift the package split exists to prevent, so both call these and neither
10
+ * builds spans of its own. Same reasoning as `@issuegraph/viewer`'s own
11
+ * `parts.ts`, one layer up.
12
+ *
13
+ * ## PLACED IS NOT A STYLING FLAG — it removes a fact the row already states
14
+ *
15
+ * `renderReevaluate`'s header records why the unpositioned chip names its row
16
+ * in text: *"a chip that carried its key only as an attribute said nothing a
17
+ * reader could see about WHICH row moved."* That reasoning is conditional on
18
+ * being unpositioned, and it inverts once the chip sits on the row: the row
19
+ * names the issue immediately to its left, so a `.ig-delta-key` there is the
20
+ * one span on the chip that says nothing new.
21
+ *
22
+ * So `placed: true` drops the key span, and it drops nothing else. The
23
+ * per-member `data-ref` stays in both, because a `together-with` unit is one
24
+ * row speaking for several issues and the row names only its lead.
25
+ *
26
+ * ## It builds a SPEC, so it is composed and never concatenated
27
+ *
28
+ * The words come from the host through {@link ChangeWords}, and host prose may
29
+ * not be joined into markup out here — `audit/surface.ts` states the rule and
30
+ * the reason: layer 1 owns the markup primitive, and a second escaper in this
31
+ * package is duplication with an injection shape. `element` is that primitive,
32
+ * reached through the viewer's public surface, so this is the one renderer used
33
+ * from a second call site rather than a second renderer.
34
+ *
35
+ * @see https://github.com/autnmy/issuegraph/blob/main/SPEC.md
36
+ */
37
+ import { type ElementSpec } from '@issuegraph/viewer';
38
+ import type { ChangeWords } from './words.ts';
39
+ import type { ChangeSummary, PlacedChip } from './view.ts';
40
+ /**
41
+ * The attribute a rail row carries while the last edit moved it.
42
+ *
43
+ * ITS VALUE IS THE ROW'S OWN DELTA KIND, not a severity: §17c tints a promoted
44
+ * row and a newly-held row differently, and a single boolean "changed" would
45
+ * make the reader read the chip to learn which. It is the same shape
46
+ * `AUDIT_SEVERITY_ATTRIBUTE` takes and for the same reason — the styling
47
+ * decision stays the host's, and this package only says which kind it is.
48
+ *
49
+ * THE VALUES ARE {@link deltaKind}'S, AND THEY COME FROM THE STORE'S OWN
50
+ * VOCABULARY: `promoted`, `newly-held`, `up`, `down`, `entered`, `left`. An
51
+ * earlier revision of this comment named `present` and `absent`, which no code
52
+ * path has ever produced — `RankDelta.presence` is `'entered' | 'left'` — and
53
+ * the stylesheet keyed a rule on `absent` accordingly. It matched nothing while
54
+ * reading as the neutral case, so a row the edit removed from the order took
55
+ * the READY tint instead. Read the union at its type rather than this list if
56
+ * the two ever disagree.
57
+ *
58
+ * ABSENT ON AN UNAFFECTED ROW, never `""` or `"none"`. §17c's rule is that
59
+ * unaffected rows are *left completely alone*, and an attribute stamped on
60
+ * every row with one value meaning "nothing" is not leaving it alone — it is
61
+ * marking it, and a host stylesheet would then have to know which value means
62
+ * absent.
63
+ */
64
+ export declare const DELTA_ATTRIBUTE = "data-ig-delta";
65
+ /**
66
+ * Which of a chip's facts decides the row's tint.
67
+ *
68
+ * ONE ROW, ONE TINT, and a `together-with` unit can carry several members whose
69
+ * deltas disagree — so this picks rather than concatenates. Readiness outranks
70
+ * movement because §17c's own summary orders it that way ("1 newly promoted · 1
71
+ * newly held · 1 pushed down"): becoming held is a change to whether the work
72
+ * can start, and moving five ranks is a change to when. A reader scanning for
73
+ * what broke is scanning for the first.
74
+ *
75
+ * `undefined` when no member carries either, which is the only way a chip with
76
+ * no drawable delta reaches a row. It leaves the row unmarked rather than
77
+ * inventing a kind for it.
78
+ */
79
+ export declare function deltaKind(chip: PlacedChip): string | undefined;
80
+ /**
81
+ * The words a spec renders, in order, as one string.
82
+ *
83
+ * DERIVED FROM THE SPEC RATHER THAN FROM THE CHIP, which is the whole point:
84
+ * the row's accessible name has to say exactly what the chip says, and a second
85
+ * walk over `chip.deltas` composing the same words again is two spellings of
86
+ * one sentence — the drift this module exists to prevent, arriving on the
87
+ * channel where nobody would see it drift, because the difference is only
88
+ * audible.
89
+ *
90
+ * Whitespace-joined because the spans are laid out with a gap and no
91
+ * punctuation between them; the separator is the layout's, so it is a space
92
+ * here rather than a glyph this package would have to choose.
93
+ */
94
+ export declare function textOf(spec: ElementSpec): string;
95
+ export declare function countWord(count: number, word: string): readonly ElementSpec[];
96
+ /**
97
+ * The summary, and the held-order label when the order is being re-evaluated.
98
+ *
99
+ * THE COMPUTING LABEL IS INSIDE THE LIVE REGION, and it was a sibling of it
100
+ * until a reader pointed out that this makes it silent. A pending write CLEARS
101
+ * `lastChange`, so the region is empty in exactly the state the label exists
102
+ * for — a sighted reader gets a greyed rail and a sentence saying why, and a
103
+ * screen-reader user is told nothing at all about the ranks having gone stale.
104
+ * Rendered inside, its appearance IS a change to the region, which is what
105
+ * announces.
106
+ *
107
+ * BOTH SURFACES DRAW IT FROM HERE for that reason. `renderReevaluate` had its
108
+ * own copy outside its own region and had the identical defect; one builder
109
+ * means the fix could not land on one surface and miss the other.
110
+ */
111
+ export declare function summarySpec(summary: ChangeSummary | null, words: ChangeWords, options?: {
112
+ readonly held: boolean;
113
+ }): ElementSpec;
114
+ /**
115
+ * One ROW's chip — which can speak for more than one issue.
116
+ *
117
+ * A `together-with` unit is one row and several refs, so its members are nested
118
+ * inside a single chip rather than given one each. Each keeps its own
119
+ * `data-ref`, so a host can still tell which member moved.
120
+ *
121
+ * THE TAG FOLLOWS THE PLACE. Unplaced it is an `li`, because the standalone
122
+ * surface draws a list of them and a list item outside a list is markup a
123
+ * reader's assistive technology reports wrongly. Placed it is a `span`, because
124
+ * the row it joins is not a list and an `li` there would be the same defect
125
+ * mirrored.
126
+ */
127
+ export declare function chipSpec(chip: PlacedChip, words: ChangeWords, options?: {
128
+ readonly placed: boolean;
129
+ }): ElementSpec;
130
+ //# sourceMappingURL=parts.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parts.d.ts","sourceRoot":"","sources":["../../src/reevaluate/parts.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AAEH,OAAO,EAAE,KAAK,WAAW,EAA0C,MAAM,oBAAoB,CAAC;AAG9F,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAC9C,OAAO,KAAK,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAE3D;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,eAAO,MAAM,eAAe,kBAAkB,CAAC;AAE/C;;;;;;;;;;;;;GAaG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,UAAU,GAAG,MAAM,GAAG,SAAS,CAM9D;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,MAAM,CAAC,IAAI,EAAE,WAAW,GAAG,MAAM,CAWhD;AAED,wBAAgB,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,SAAS,WAAW,EAAE,CAK7E;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,WAAW,CACzB,OAAO,EAAE,aAAa,GAAG,IAAI,EAC7B,KAAK,EAAE,WAAW,EAClB,OAAO,GAAE;IAAE,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAA;CAAoB,GACpD,WAAW,CA4Eb;AA8CD;;;;;;;;;;;;GAYG;AACH,wBAAgB,QAAQ,CACtB,IAAI,EAAE,UAAU,EAChB,KAAK,EAAE,WAAW,EAClB,OAAO,GAAE;IAAE,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAA;CAAsB,GACxD,WAAW,CAab"}