@issuegraph/editor 0.10.0 → 0.23.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +38 -7
- package/dist/a11y/baseline.d.ts.map +1 -1
- package/dist/a11y/baseline.js +4 -0
- package/dist/a11y/baseline.js.map +1 -1
- package/dist/audit/findings.d.ts +107 -1
- package/dist/audit/findings.d.ts.map +1 -1
- package/dist/audit/findings.js +114 -7
- package/dist/audit/findings.js.map +1 -1
- package/dist/audit/panel.d.ts +277 -0
- package/dist/audit/panel.d.ts.map +1 -0
- package/dist/audit/panel.js +462 -0
- package/dist/audit/panel.js.map +1 -0
- package/dist/audit/refused.d.ts +99 -0
- package/dist/audit/refused.d.ts.map +1 -0
- package/dist/audit/refused.js +276 -0
- package/dist/audit/refused.js.map +1 -0
- package/dist/audit/styles.d.ts +1 -1
- package/dist/audit/styles.d.ts.map +1 -1
- package/dist/audit/styles.js +428 -0
- package/dist/audit/styles.js.map +1 -1
- package/dist/audit/surface.d.ts +54 -12
- package/dist/audit/surface.d.ts.map +1 -1
- package/dist/audit/surface.js +54 -14
- package/dist/audit/surface.js.map +1 -1
- package/dist/create/draft.d.ts +19 -0
- package/dist/create/draft.d.ts.map +1 -1
- package/dist/create/draft.js +21 -0
- package/dist/create/draft.js.map +1 -1
- package/dist/create/keys.d.ts +68 -8
- package/dist/create/keys.d.ts.map +1 -1
- package/dist/create/keys.js +43 -5
- package/dist/create/keys.js.map +1 -1
- package/dist/firstpass/render.d.ts.map +1 -1
- package/dist/firstpass/render.js +10 -9
- package/dist/firstpass/render.js.map +1 -1
- package/dist/index.d.ts +40 -15
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +35 -13
- package/dist/index.js.map +1 -1
- package/dist/overlay/render.d.ts +11 -3
- package/dist/overlay/render.d.ts.map +1 -1
- package/dist/overlay/render.js +24 -7
- package/dist/overlay/render.js.map +1 -1
- package/dist/overlay/request.d.ts +71 -0
- package/dist/overlay/request.d.ts.map +1 -0
- package/dist/overlay/request.js +129 -0
- package/dist/overlay/request.js.map +1 -0
- package/dist/overlay/styles.d.ts +1 -1
- package/dist/overlay/styles.d.ts.map +1 -1
- package/dist/overlay/styles.js +38 -7
- package/dist/overlay/styles.js.map +1 -1
- package/dist/reevaluate/parts.d.ts +130 -0
- package/dist/reevaluate/parts.d.ts.map +1 -0
- package/dist/reevaluate/parts.js +260 -0
- package/dist/reevaluate/parts.js.map +1 -0
- package/dist/reevaluate/render.d.ts +18 -11
- package/dist/reevaluate/render.d.ts.map +1 -1
- package/dist/reevaluate/render.js +21 -135
- package/dist/reevaluate/render.js.map +1 -1
- package/dist/reevaluate/styles.d.ts +1 -1
- package/dist/reevaluate/styles.d.ts.map +1 -1
- package/dist/reevaluate/styles.js +26 -0
- package/dist/reevaluate/styles.js.map +1 -1
- package/dist/reevaluate/view.d.ts +16 -1
- package/dist/reevaluate/view.d.ts.map +1 -1
- package/dist/reevaluate/view.js +21 -1
- package/dist/reevaluate/view.js.map +1 -1
- package/dist/reevaluate/words.d.ts +7 -0
- package/dist/reevaluate/words.d.ts.map +1 -1
- package/dist/scale/ladder.d.ts +62 -6
- package/dist/scale/ladder.d.ts.map +1 -1
- package/dist/scale/ladder.js +127 -16
- package/dist/scale/ladder.js.map +1 -1
- package/dist/scale/render.d.ts +44 -0
- package/dist/scale/render.d.ts.map +1 -1
- package/dist/scale/render.js +223 -30
- package/dist/scale/render.js.map +1 -1
- package/dist/scale/styles.d.ts +11 -5
- package/dist/scale/styles.d.ts.map +1 -1
- package/dist/scale/styles.js +185 -4
- package/dist/scale/styles.js.map +1 -1
- package/dist/workspace/host.d.ts +83 -1
- package/dist/workspace/host.d.ts.map +1 -1
- package/dist/workspace/host.js +197 -4
- package/dist/workspace/host.js.map +1 -1
- package/dist/workspace/inspector.d.ts +33 -7
- package/dist/workspace/inspector.d.ts.map +1 -1
- package/dist/workspace/inspector.js +15 -0
- package/dist/workspace/inspector.js.map +1 -1
- package/dist/workspace/mount.d.ts +23 -1
- package/dist/workspace/mount.d.ts.map +1 -1
- package/dist/workspace/mount.js +605 -20
- package/dist/workspace/mount.js.map +1 -1
- package/dist/workspace/rail.d.ts +5 -2
- package/dist/workspace/rail.d.ts.map +1 -1
- package/dist/workspace/rail.js.map +1 -1
- package/dist/workspace/render.d.ts +390 -3
- package/dist/workspace/render.d.ts.map +1 -1
- package/dist/workspace/render.js +924 -133
- package/dist/workspace/render.js.map +1 -1
- package/dist/workspace/selection.d.ts +11 -0
- package/dist/workspace/selection.d.ts.map +1 -1
- package/dist/workspace/selection.js +10 -0
- package/dist/workspace/selection.js.map +1 -1
- package/dist/workspace/skeleton.d.ts +33 -0
- package/dist/workspace/skeleton.d.ts.map +1 -0
- package/dist/workspace/skeleton.js +56 -0
- package/dist/workspace/skeleton.js.map +1 -0
- package/dist/workspace/styles.d.ts +1 -1
- package/dist/workspace/styles.d.ts.map +1 -1
- package/dist/workspace/styles.js +931 -19
- package/dist/workspace/styles.js.map +1 -1
- package/package.json +4 -4
package/dist/overlay/render.d.ts
CHANGED
|
@@ -45,9 +45,17 @@
|
|
|
45
45
|
*
|
|
46
46
|
* ## How an edge is recognised
|
|
47
47
|
*
|
|
48
|
-
*
|
|
49
|
-
*
|
|
50
|
-
*
|
|
48
|
+
* Edge paths publish `edgeIdentity(field, from, to)` on `data-ig-group`, and that
|
|
49
|
+
* is the key an edge is matched by. The accessible name — `${from}
|
|
50
|
+
* ${treatment.label} ${to}` — is the FALLBACK, kept for a viewer that has not
|
|
51
|
+
* shipped the identity yet; `overlayOn` below states the full reasoning.
|
|
52
|
+
*
|
|
53
|
+
* This paragraph used to say the opposite, that only the `together-with`
|
|
54
|
+
* connector carried an identity and the name was the only key. It was true when
|
|
55
|
+
* it was written and stopped being true when the paths gained one, while the
|
|
56
|
+
* correct version sat 140 lines below it in the same file. A reader consulting
|
|
57
|
+
* the design record before touching this seam would have concluded the key it
|
|
58
|
+
* rests on does not exist.
|
|
51
59
|
*
|
|
52
60
|
* The label is read from the viewer's OWN `treatmentFor`, never from a copy, so
|
|
53
61
|
* a renamed relationship moves both sides at once. What stays local is the
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"render.d.ts","sourceRoot":"","sources":["../../src/overlay/render.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"render.d.ts","sourceRoot":"","sources":["../../src/overlay/render.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2FG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,EAEL,KAAK,WAAW,EAChB,KAAK,KAAK,EAEV,KAAK,KAAK,EAIX,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EAGL,KAAK,WAAW,EAGjB,MAAM,cAAc,CAAC;AAEtB,8EAA8E;AAC9E,eAAO,MAAM,aAAa,eAAe,CAAC;AA4B1C,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,KAAK,CAAC,EAAE,KAAK,GAAG,SAAS,CAAC;CACpC;AAED,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC;IACtB;;;;OAIG;IACH,QAAQ,CAAC,QAAQ,EAAE,SAAS,WAAW,EAAE,CAAC;IAC1C,2EAA2E;IAC3E,QAAQ,CAAC,UAAU,EAAE,SAAS,WAAW,EAAE,CAAC;CAC7C;AA2TD;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,KAAK,EACZ,KAAK,EAAE,SAAS,aAAa,EAAE,EAC/B,OAAO,GAAE,cAAmB,GAC3B,YAAY,CAyCd;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE,WAAW,EACpB,IAAI,EAAE,WAAW,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,EAClC,UAAU,CAAC,EAAE,MAAM,GAClB,WAAW,CAgEb"}
|
package/dist/overlay/render.js
CHANGED
|
@@ -45,9 +45,17 @@
|
|
|
45
45
|
*
|
|
46
46
|
* ## How an edge is recognised
|
|
47
47
|
*
|
|
48
|
-
*
|
|
49
|
-
*
|
|
50
|
-
*
|
|
48
|
+
* Edge paths publish `edgeIdentity(field, from, to)` on `data-ig-group`, and that
|
|
49
|
+
* is the key an edge is matched by. The accessible name — `${from}
|
|
50
|
+
* ${treatment.label} ${to}` — is the FALLBACK, kept for a viewer that has not
|
|
51
|
+
* shipped the identity yet; `overlayOn` below states the full reasoning.
|
|
52
|
+
*
|
|
53
|
+
* This paragraph used to say the opposite, that only the `together-with`
|
|
54
|
+
* connector carried an identity and the name was the only key. It was true when
|
|
55
|
+
* it was written and stopped being true when the paths gained one, while the
|
|
56
|
+
* correct version sat 140 lines below it in the same file. A reader consulting
|
|
57
|
+
* the design record before touching this seam would have concluded the key it
|
|
58
|
+
* rests on does not exist.
|
|
51
59
|
*
|
|
52
60
|
* The label is read from the viewer's OWN `treatmentFor`, never from a copy, so
|
|
53
61
|
* a renamed relationship moves both sides at once. What stays local is the
|
|
@@ -465,14 +473,23 @@ export function renderOverlayMark(overlay, mark, reasonCode) {
|
|
|
465
473
|
'data-ig-code': reasonCode ?? null,
|
|
466
474
|
});
|
|
467
475
|
case 'second-version':
|
|
468
|
-
// Also a slot
|
|
469
|
-
//
|
|
470
|
-
//
|
|
476
|
+
// Also a slot, and this comment used to say the held version was drawn
|
|
477
|
+
// "by `attachEdgeOverlays` as the companion stroke". That contradicted the
|
|
478
|
+
// module note at the top of this file, which is the half that was true:
|
|
479
|
+
// the companion needs the path's PERPENDICULAR, which cannot be recovered
|
|
480
|
+
// from a `d` this layer does not interpret, so it is not drawn here and
|
|
481
|
+
// never was after the fourth round removed it.
|
|
482
|
+
//
|
|
483
|
+
// It is drawn by layer 1 now, from the `companion` placement `request.ts`
|
|
484
|
+
// asks for — the layer that computed the layout is the one that can put a
|
|
485
|
+
// line beside a line. What a host adds HERE is whatever labels or offers
|
|
486
|
+
// to act on it — view-diff, retry-on-latest, discard-mine. Never a merge.
|
|
471
487
|
return element('span', {
|
|
472
488
|
class: `${OVERLAY_CLASS} ig-overlay-held`,
|
|
473
489
|
'data-ig-overlay': 'conflict',
|
|
474
490
|
'data-ig-slot': 'held-version',
|
|
475
|
-
|
|
491
|
+
// No subject here, so the label has no text before its separator.
|
|
492
|
+
'aria-label': overlayLabel('', overlay).replace(/^[\s\u2014]+/, ''),
|
|
476
493
|
});
|
|
477
494
|
}
|
|
478
495
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"render.js","sourceRoot":"","sources":["../../src/overlay/render.ts"],"names":[],"mappings":"AAAA
|
|
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"}
|
package/dist/overlay/styles.d.ts
CHANGED
|
@@ -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/*
|
|
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,
|
|
1
|
+
{"version":3,"file":"styles.d.ts","sourceRoot":"","sources":["../../src/overlay/styles.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;AAEH,eAAO,MAAM,qBAAqB,k7KA0JjC,CAAC"}
|
package/dist/overlay/styles.js
CHANGED
|
@@ -76,20 +76,51 @@ export const edgeOverlayStylesheet = `
|
|
|
76
76
|
}
|
|
77
77
|
}
|
|
78
78
|
|
|
79
|
-
/*
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
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
|
|
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"}
|