@issuegraph/viewer 0.3.0 → 0.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/document.d.ts +152 -0
- package/dist/document.d.ts.map +1 -1
- package/dist/document.js +185 -2
- package/dist/document.js.map +1 -1
- package/dist/element.d.ts +11 -0
- package/dist/element.d.ts.map +1 -1
- package/dist/element.js.map +1 -1
- package/dist/index.d.ts +3 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +28 -2
- package/dist/index.js.map +1 -1
- package/dist/layout.d.ts +51 -50
- package/dist/layout.d.ts.map +1 -1
- package/dist/layout.js +364 -168
- package/dist/layout.js.map +1 -1
- package/dist/mount.d.ts +13 -0
- package/dist/mount.d.ts.map +1 -1
- package/dist/mount.js +69 -1
- package/dist/mount.js.map +1 -1
- package/dist/navigation.d.ts +14 -0
- package/dist/navigation.d.ts.map +1 -1
- package/dist/navigation.js +20 -0
- package/dist/navigation.js.map +1 -1
- package/dist/parts.d.ts +285 -2
- package/dist/parts.d.ts.map +1 -1
- package/dist/parts.js +781 -63
- package/dist/parts.js.map +1 -1
- package/dist/projections/graph.d.ts +10 -0
- package/dist/projections/graph.d.ts.map +1 -1
- package/dist/projections/graph.js +413 -326
- package/dist/projections/graph.js.map +1 -1
- package/dist/projections/linear.d.ts +90 -0
- package/dist/projections/linear.d.ts.map +1 -1
- package/dist/projections/linear.js +213 -31
- package/dist/projections/linear.js.map +1 -1
- package/dist/projections/tree.d.ts.map +1 -1
- package/dist/projections/tree.js +26 -3
- package/dist/projections/tree.js.map +1 -1
- package/dist/styles.d.ts +10 -1
- package/dist/styles.d.ts.map +1 -1
- package/dist/styles.js +803 -132
- package/dist/styles.js.map +1 -1
- package/dist/theme.d.ts +5 -6
- package/dist/theme.d.ts.map +1 -1
- package/dist/theme.js +72 -7
- package/dist/theme.js.map +1 -1
- package/dist/vocabulary.d.ts +39 -0
- package/dist/vocabulary.d.ts.map +1 -1
- package/dist/vocabulary.js +27 -0
- package/dist/vocabulary.js.map +1 -1
- package/package.json +2 -2
package/dist/parts.d.ts
CHANGED
|
@@ -15,6 +15,40 @@ import { type ElementSpec } from './element.ts';
|
|
|
15
15
|
* listener.
|
|
16
16
|
*/
|
|
17
17
|
export declare const COMMAND_ATTRIBUTE = "data-ig-command";
|
|
18
|
+
/**
|
|
19
|
+
* A mark for the eye and for nothing else.
|
|
20
|
+
*
|
|
21
|
+
* FOUR CHANNELS SEPARATE A RELATIONSHIP AND ONLY ONE OF THEM IS AUDIBLE. The
|
|
22
|
+
* glyph is `aria-hidden` because `⊘` announces as whatever a given screen
|
|
23
|
+
* reader's character table calls it — "circle with slash", or nothing at all —
|
|
24
|
+
* which is a description of the mark rather than of the relationship. Whatever
|
|
25
|
+
* carries the NAME has to be something else: the word beside it, or an
|
|
26
|
+
* `aria-label` on the control the mark sits inside.
|
|
27
|
+
*
|
|
28
|
+
* IT IS ITS OWN FUNCTION BECAUSE THE PAIRING IS NOT ITS ONLY CONSUMER. A word
|
|
29
|
+
* beside the glyph is the common shape and {@link glyphAndLabel} is it, but a
|
|
30
|
+
* glyph-only control — §17a's `✕` in a relationship row's slot, whose name is
|
|
31
|
+
* on the button — genuinely needs the hidden mark with no visible word. Given
|
|
32
|
+
* only the pairing, that call site writes the class and the `aria-hidden` out
|
|
33
|
+
* by hand, which is the copy the pairing exists to prevent wearing a different
|
|
34
|
+
* shape. Two published pieces, one rule.
|
|
35
|
+
*/
|
|
36
|
+
export declare function hiddenGlyph(glyph: string): ElementSpec;
|
|
37
|
+
/**
|
|
38
|
+
* A badge's inner pair — the glyph a reader can see and the word a reader can
|
|
39
|
+
* hear.
|
|
40
|
+
*
|
|
41
|
+
* THE WORD IS THE ACCESSIBLE NAME, and it is the vocabulary's own. The mark
|
|
42
|
+
* beside it is {@link hiddenGlyph}, so the `aria-hidden` that makes this pair
|
|
43
|
+
* work at all is written in one place for every surface that draws one.
|
|
44
|
+
*
|
|
45
|
+
* EXPORTED FOR THE EDITOR, which draws the same pair in §17a's inspector rows
|
|
46
|
+
* and its numbered kind list. A second spelling of the pairing there would be
|
|
47
|
+
* free to drop the `aria-hidden` — the failure it exists to prevent — and would
|
|
48
|
+
* put the same relationship on screen in two shapes one zone apart from the
|
|
49
|
+
* §16 badge this already draws.
|
|
50
|
+
*/
|
|
51
|
+
export declare function glyphAndLabel(glyph: string, label: string): readonly ElementSpec[];
|
|
18
52
|
/** How a readiness station is filled — the parallelism channel. */
|
|
19
53
|
export type StationFill = 'filled' | 'hollow' | 'dashed';
|
|
20
54
|
/**
|
|
@@ -32,12 +66,54 @@ export declare function station(fill: StationFill): ElementSpec;
|
|
|
32
66
|
* kind of knowledge this layer exists not to have.
|
|
33
67
|
*/
|
|
34
68
|
export declare function identity(issue: ViewerIssue): ElementSpec;
|
|
69
|
+
/**
|
|
70
|
+
* The provenance SENTENCE, without the line it normally sits on.
|
|
71
|
+
*
|
|
72
|
+
* ONE WORDING, TWO PLACEMENTS. §16 hangs this sentence off a turnstile as a
|
|
73
|
+
* subordinate rail line; §17a's inspector needs the same sentence inside its
|
|
74
|
+
* own "why rank" paragraph, where a `↳` would be rail furniture imported into
|
|
75
|
+
* a panel. So the wording lives here and the furniture lives in
|
|
76
|
+
* {@link provenanceLine}, which is the only difference between the two.
|
|
77
|
+
*
|
|
78
|
+
* IT IS ON THE PUBLIC SURFACE FOR THE EDITOR, and that is the whole reason it
|
|
79
|
+
* exists separately. Layer 2 composing this is layer 2 reading layer 1's
|
|
80
|
+
* wording; layer 2 switching on `RankProvenance` itself would be a second
|
|
81
|
+
* wording of one fact, free to drift from the rail's. The seam permits adding
|
|
82
|
+
* to this layer's surface — what it forbids is reaching past it.
|
|
83
|
+
*
|
|
84
|
+
* NO TURNSTILE HERE, DELIBERATELY. `provenanceLine` adds it. A caller that
|
|
85
|
+
* wants the §16 line calls that; a caller that wants the sentence calls this.
|
|
86
|
+
*/
|
|
87
|
+
export declare function provenanceClause(provenance: RankProvenance | undefined): ElementSpec | null;
|
|
35
88
|
/**
|
|
36
89
|
* The provenance line, in the three forms the design fixes: a matched ordering
|
|
37
90
|
* query, the declared tier, and an effective-priority promotion that names the
|
|
38
91
|
* dependent the urgency arrived through.
|
|
92
|
+
*
|
|
93
|
+
* The wording is {@link provenanceClause}'s; this adds only §16's turnstile and
|
|
94
|
+
* the paragraph it hangs on, so the rail and the inspector cannot come to
|
|
95
|
+
* disagree about how one fact reads.
|
|
39
96
|
*/
|
|
40
97
|
export declare function provenanceLine(provenance: RankProvenance | undefined): ElementSpec | null;
|
|
98
|
+
/**
|
|
99
|
+
* The priority chip a row wears on its badge row, derived from the same
|
|
100
|
+
* provenance the sentence beneath it explains.
|
|
101
|
+
*
|
|
102
|
+
* ONE FACT, TWO READS, and the frame draws both on purpose: the chip is what a
|
|
103
|
+
* reader scanning a column of rows sees, and the sentence is what they read
|
|
104
|
+
* when the chip surprises them. A promotion is the one chip the design accents,
|
|
105
|
+
* because a low tier pulled to the top because it blocks a high one is the most
|
|
106
|
+
* interesting thing the panel can say.
|
|
107
|
+
*/
|
|
108
|
+
export declare function priorityBadge(provenance: RankProvenance | undefined): ElementSpec | null;
|
|
109
|
+
/**
|
|
110
|
+
* The evidence chip: `✓ verified`, or nothing.
|
|
111
|
+
*
|
|
112
|
+
* ABSENT READS `asserted`, which §16d states in those words, so an absent field
|
|
113
|
+
* draws no chip rather than a muted one — a panel that prints "asserted" on
|
|
114
|
+
* every row has spent a chip slot on the default.
|
|
115
|
+
*/
|
|
116
|
+
export declare function evidenceBadge(issue: ViewerIssue | undefined): ElementSpec | null;
|
|
41
117
|
/**
|
|
42
118
|
* One hold, rendered with the family it belongs to visible in the markup — and
|
|
43
119
|
* its cause and subject beside it when the host supplied them, so a host reads
|
|
@@ -61,7 +137,78 @@ export declare function footerLabels(slots: readonly ViewerSlot[]): string;
|
|
|
61
137
|
* count over a window), and the stamp is text the host formatted. `null` when
|
|
62
138
|
* the host stated neither, so a document with no host facts draws no header.
|
|
63
139
|
*/
|
|
64
|
-
export
|
|
140
|
+
export interface HeaderControls {
|
|
141
|
+
/** Which projection is drawn now, so the toggle can mark it. */
|
|
142
|
+
readonly projection: 'linear' | 'graph' | 'tree';
|
|
143
|
+
/**
|
|
144
|
+
* Whether the host wired the view commands — `projection:*`, `expand` and
|
|
145
|
+
* `collapse`. See `SceneOptions.switchable`.
|
|
146
|
+
*/
|
|
147
|
+
readonly switchable: boolean;
|
|
148
|
+
/**
|
|
149
|
+
* Whether the graph is drawn in a column or at full width. Absent for the
|
|
150
|
+
* projections where the question does not arise.
|
|
151
|
+
*/
|
|
152
|
+
readonly compact?: boolean | undefined;
|
|
153
|
+
}
|
|
154
|
+
export declare function hostHeader(document: NormalizedDocument, controls?: HeaderControls): ElementSpec | null;
|
|
155
|
+
/**
|
|
156
|
+
* The kind of condition the host stated, or nothing.
|
|
157
|
+
*
|
|
158
|
+
* Exported so each projection root can put it on the panel element as
|
|
159
|
+
* `data-ig-condition` and let the STYLESHEET decide what a condition looks
|
|
160
|
+
* like. `renderAttrs` omits a `null` attribute, so a host that stated none
|
|
161
|
+
* emits exactly the markup it emitted before this existed — which is what keeps
|
|
162
|
+
* the pure-graph promise a promise rather than an aspiration.
|
|
163
|
+
*/
|
|
164
|
+
export declare function conditionKind(document: NormalizedDocument, chrome: boolean | undefined): string | null;
|
|
165
|
+
/**
|
|
166
|
+
* Whether the host has said why this panel is short, so no projection may say
|
|
167
|
+
* why itself.
|
|
168
|
+
*
|
|
169
|
+
* NOT CHROME, AND THIS IS THE DISTINCTION THE TWO HELPERS EXIST TO KEEP. What
|
|
170
|
+
* to DRAW is a rendering question, and a host composing two views of one
|
|
171
|
+
* document wants the notice and its outline once — that is `conditionKind`.
|
|
172
|
+
* What is TRUE is not: a chrome-less canvas beside an explained rail is still a
|
|
173
|
+
* view of a document whose emptiness the host has accounted for, and its own
|
|
174
|
+
* derived sentence is not a fallback explanation but a false one. The graph's
|
|
175
|
+
* reads "no issue in this document declares a relationship", which under a
|
|
176
|
+
* stated `error` is a claim about something else entirely, contradicting the
|
|
177
|
+
* panel beside it. Drawing nothing there is right; explaining it wrongly is not.
|
|
178
|
+
*/
|
|
179
|
+
export declare function statesItsOwnCause(document: NormalizedDocument): boolean;
|
|
180
|
+
/**
|
|
181
|
+
* The panel-level notice: what the host says is true of the whole panel.
|
|
182
|
+
*
|
|
183
|
+
* CHROME, like the header beside it, and it takes the flag rather than leaving
|
|
184
|
+
* each projection to apply it: the rule is that a host composing two views of
|
|
185
|
+
* one document owns ONE notice for the same reason it owns one header, and a
|
|
186
|
+
* rule restated at three call sites is three places to forget it. The same
|
|
187
|
+
* argument that gave `hostHeader` its gate gives this one its parameter.
|
|
188
|
+
*
|
|
189
|
+
* `role="status"` SITS ON THE TEXT, NOT THE CONTAINER. A polite live region
|
|
190
|
+
* holding an interactive control re-announces the button every time the host
|
|
191
|
+
* re-renders, which turns a reassurance into a nag.
|
|
192
|
+
*
|
|
193
|
+
* A CONTROL IS DRAWN ONLY FOR A HOST THAT NAMED ONE, exactly as the refresh
|
|
194
|
+
* button beside the stamp is. An `href` makes it a link instead of a command —
|
|
195
|
+
* some hosts route rather than act — and the scheme was already refused or
|
|
196
|
+
* kept by `normalizeDocument`, so nothing is checked a second time here.
|
|
197
|
+
*/
|
|
198
|
+
export declare function conditionNotice(document: NormalizedDocument, chrome: boolean | undefined): ElementSpec | null;
|
|
199
|
+
/**
|
|
200
|
+
* §16h's one quiet line: why this panel shows no relationships at all.
|
|
201
|
+
*
|
|
202
|
+
* THE SENTENCE IS THE HOST'S, and it has to be: the cause names a host's own
|
|
203
|
+
* configuration, and a package that has never heard of a pick order cannot
|
|
204
|
+
* write it. The line, the link and the dismiss control are this package's.
|
|
205
|
+
*
|
|
206
|
+
* THE VIEWER NEVER HIDES ITS OWN LINE. Dismiss is published like every other
|
|
207
|
+
* command; the host re-renders without the note. A package that removed the
|
|
208
|
+
* element itself would be holding state, which is the one thing this layer
|
|
209
|
+
* promises it does not do.
|
|
210
|
+
*/
|
|
211
|
+
export declare function adoptionNote(document: NormalizedDocument, chrome: boolean | undefined): ElementSpec | null;
|
|
65
212
|
/**
|
|
66
213
|
* The NOW rows: what the runner is working this moment, drawn above the order.
|
|
67
214
|
*
|
|
@@ -75,6 +222,19 @@ export declare function hostHeader(document: NormalizedDocument): ElementSpec |
|
|
|
75
222
|
* words, because only the host has the clock.
|
|
76
223
|
*/
|
|
77
224
|
export declare function nowRows(document: NormalizedDocument): ElementSpec | null;
|
|
225
|
+
/**
|
|
226
|
+
* A together unit's members, one line each.
|
|
227
|
+
*
|
|
228
|
+
* THE UNIT IS THE ONE PLACE THE DESIGN DRAWS AN ENCLOSURE, and it draws it to
|
|
229
|
+
* say that two distinct issues are one unit of work. Joining their titles with
|
|
230
|
+
* a separator — which is what shipped — says the opposite: a reader sees one
|
|
231
|
+
* issue with an unusually long name, and the second issue's own identity and
|
|
232
|
+
* tier vanish. Returns `null` for a single-member slot, so an ordinary row is
|
|
233
|
+
* unchanged by construction.
|
|
234
|
+
*/
|
|
235
|
+
export declare function unitBlock(document: NormalizedDocument, slot: ViewerSlot): ElementSpec | null;
|
|
236
|
+
/** The unit's own pill, above the enclosure: what it is, and how many. */
|
|
237
|
+
export declare function unitMark(slot: ViewerSlot): ElementSpec | null;
|
|
78
238
|
/**
|
|
79
239
|
* The two caveats a host can put on a row, each ONE row child so the slot grid
|
|
80
240
|
* places it like provenance.
|
|
@@ -86,6 +246,23 @@ export declare function nowRows(document: NormalizedDocument): ElementSpec | nul
|
|
|
86
246
|
* whose job is explaining the order cannot silently pick a winner.
|
|
87
247
|
*/
|
|
88
248
|
export declare function caveatLines(issue: ViewerIssue | undefined): ElementSpec[];
|
|
249
|
+
/**
|
|
250
|
+
* The caveat CHIPS, which sit on the badge row rather than in front of the note.
|
|
251
|
+
*
|
|
252
|
+
* §16a treats a caveat exactly like a relationship: a chip a scanner sees, and
|
|
253
|
+
* a sentence a reader reads. Leaving the chip inline in the sentence made the
|
|
254
|
+
* badge row incomplete and the sentence lumpy — the chip is a fact ABOUT the
|
|
255
|
+
* row, not the first two words of an explanation.
|
|
256
|
+
*/
|
|
257
|
+
export declare function caveatBadges(issue: ViewerIssue | undefined): readonly ElementSpec[];
|
|
258
|
+
/**
|
|
259
|
+
* The `⊘ not ready` chip a graph-held row wears.
|
|
260
|
+
*
|
|
261
|
+
* The frame puts it on the badge row beside the tier, so "held" is legible in
|
|
262
|
+
* the same scan as "P1" rather than only from the hatched ground or the
|
|
263
|
+
* sentence underneath.
|
|
264
|
+
*/
|
|
265
|
+
export declare function notReadyBadge(slot: ViewerSlot): ElementSpec | null;
|
|
89
266
|
/**
|
|
90
267
|
* The caveats as one sentence, for a row that has no room for a block — the
|
|
91
268
|
* graph rail positions its rows onto layout boxes, so it carries text on the
|
|
@@ -129,7 +306,113 @@ export declare const ROW_BADGE_BUDGET = 12;
|
|
|
129
306
|
* key — a single-key row is unchanged by construction.
|
|
130
307
|
*/
|
|
131
308
|
export declare function edgeBadges(document: NormalizedDocument, keys: readonly string[]): ElementSpec | null;
|
|
132
|
-
/**
|
|
309
|
+
/**
|
|
310
|
+
* The same badges, unwrapped, for a row that builds ONE badge row out of
|
|
311
|
+
* several sources — a priority chip, an evidence chip, a caveat chip and the
|
|
312
|
+
* relationships — which is what §16a draws. Returning the wrapper to such a
|
|
313
|
+
* caller left it either nesting one flex row inside another or reaching into
|
|
314
|
+
* the spec's children, and the second is how markup and its published
|
|
315
|
+
* behaviour drift.
|
|
316
|
+
*/
|
|
317
|
+
export declare function edgeBadgeList(document: NormalizedDocument, keys: readonly string[]): readonly ElementSpec[];
|
|
318
|
+
/**
|
|
319
|
+
* The VISIBLE TEXT of every chip a row's badge row draws, in order.
|
|
320
|
+
*
|
|
321
|
+
* EXPORTED FOR THE LAYOUT, which has to know how tall a card is before anything
|
|
322
|
+
* is rendered and cannot measure the DOM — this package is pure and its
|
|
323
|
+
* coordinates have to be the same on a server with no fonts as in a browser
|
|
324
|
+
* with them. Deriving the strings here rather than re-deriving them there is
|
|
325
|
+
* what keeps the reserved height and the drawn height about the same thing: a
|
|
326
|
+
* badge whose wording changes moves the geometry with it.
|
|
327
|
+
*/
|
|
328
|
+
export declare function badgeTexts(document: NormalizedDocument, slot: ViewerSlot | undefined, issue: ViewerIssue | undefined, keys: readonly string[]): readonly string[];
|
|
329
|
+
/**
|
|
330
|
+
* One block of a canvas card, described rather than drawn.
|
|
331
|
+
*
|
|
332
|
+
* THIS EXISTS BECAUSE THE SAME DEFECT ARRIVED FOUR TIMES. A card's height is
|
|
333
|
+
* COUNTED by the layout before anything renders — the projection is pure and
|
|
334
|
+
* positions every card absolutely — while the card's contents are BUILT by the
|
|
335
|
+
* projection. Two functions, one shape, and nothing tying them together: every
|
|
336
|
+
* block added to the card had to be remembered in the height rule, and four
|
|
337
|
+
* times running it was not. The badge row wrapped and was charged one line; a
|
|
338
|
+
* unit in the gutter was sized as a single issue; the unit branch returned
|
|
339
|
+
* before the notes; the NOW banner was added with no allowance at all. Each
|
|
340
|
+
* time the card overran its box, the next card was drawn over the overflow, and
|
|
341
|
+
* the arcs stayed anchored to geometry nobody drew.
|
|
342
|
+
*
|
|
343
|
+
* So the CARD IS DESCRIBED ONCE, here, and both readers consume the
|
|
344
|
+
* description: {@link cardText} counts it, and the graph projection renders it.
|
|
345
|
+
* A block added to this list reaches the height rule by construction. That is
|
|
346
|
+
* the property, and it is why this is a shape and not a second helper.
|
|
347
|
+
*/
|
|
348
|
+
export type CardBlock =
|
|
349
|
+
/** §16b's NOW banner, or a unit's own pill: one line of chips. */
|
|
350
|
+
{
|
|
351
|
+
readonly kind: 'banner';
|
|
352
|
+
readonly mark: string;
|
|
353
|
+
readonly note: string;
|
|
354
|
+
}
|
|
355
|
+
/** A title over its identity — the two-line pair every row draws. */
|
|
356
|
+
| {
|
|
357
|
+
readonly kind: 'head';
|
|
358
|
+
readonly key: string;
|
|
359
|
+
}
|
|
360
|
+
/** A unit's enclosure: one title-and-identity pair per member. */
|
|
361
|
+
| {
|
|
362
|
+
readonly kind: 'unit';
|
|
363
|
+
readonly members: readonly string[];
|
|
364
|
+
}
|
|
365
|
+
/** The wrapping row of chips. */
|
|
366
|
+
| {
|
|
367
|
+
readonly kind: 'badges';
|
|
368
|
+
readonly texts: readonly string[];
|
|
369
|
+
}
|
|
370
|
+
/** A sentence the card prints because nothing else draws it. */
|
|
371
|
+
| {
|
|
372
|
+
readonly kind: 'note';
|
|
373
|
+
readonly text: string;
|
|
374
|
+
};
|
|
375
|
+
/**
|
|
376
|
+
* Everything one canvas card draws, in the order it draws it.
|
|
377
|
+
*
|
|
378
|
+
* `onSpine` decides the notes and nothing else: a spine card keeps its hold on
|
|
379
|
+
* a chip and a tooltip, because the list beside it prints the sentence, while a
|
|
380
|
+
* gutter card is the only mark the projection makes for its issue and §16b
|
|
381
|
+
* prints "open · not eligible" on it in as many words.
|
|
382
|
+
*/
|
|
383
|
+
export declare function cardBlocks(document: NormalizedDocument, key: string, members: readonly string[], onSpine: boolean, now: boolean): readonly CardBlock[];
|
|
384
|
+
/**
|
|
385
|
+
* The sentences a card off the spine prints: why it is held, and what it
|
|
386
|
+
* duplicates.
|
|
387
|
+
*
|
|
388
|
+
* Lives here rather than in the layout for the reason {@link cardBlocks} gives:
|
|
389
|
+
* one description, two readers.
|
|
390
|
+
*/
|
|
391
|
+
export declare function noteText(document: NormalizedDocument, key: string): readonly string[];
|
|
392
|
+
/**
|
|
393
|
+
* The text runs one block puts on the card, each of which the layout wraps and
|
|
394
|
+
* counts as one or more lines.
|
|
395
|
+
*
|
|
396
|
+
* A `head` is a title AND an identity, and a `unit` is that pair per member —
|
|
397
|
+
* so the count is per RUN rather than per block, which is what lets the layout
|
|
398
|
+
* charge a wrapped title what it costs.
|
|
399
|
+
*/
|
|
400
|
+
export declare function cardText(document: NormalizedDocument, block: CardBlock): readonly string[];
|
|
401
|
+
/**
|
|
402
|
+
* The legend: a footer bar under the drawing it explains.
|
|
403
|
+
*
|
|
404
|
+
* IT DRAWS THE LINE, NOT A CHIP OF IT. The claim this package makes about
|
|
405
|
+
* colour-blind safety is that each relationship is separable by dash pattern,
|
|
406
|
+
* terminal marker and glyph as well as hue — and a legend of five outlined
|
|
407
|
+
* chips shows none of the first two, so a reader meeting a dotted arc has
|
|
408
|
+
* nothing to match it against. Each sample is the same stroke and the same
|
|
409
|
+
* dash array the canvas uses, taken from `vocabulary.ts` rather than restated,
|
|
410
|
+
* and the terminal is the marker that edge actually ends in.
|
|
411
|
+
*
|
|
412
|
+
* THE READINESS KEY RIDES ALONG. The station fill is the parallelism channel —
|
|
413
|
+
* filled, hollow, dashed — and it is the one part of the grammar the edge table
|
|
414
|
+
* cannot explain, so §16b keys it at the far end of the same bar.
|
|
415
|
+
*/
|
|
133
416
|
export declare function legend(): ElementSpec;
|
|
134
417
|
/**
|
|
135
418
|
* Every key a projection draws under some OTHER key's station, mapped to it.
|
package/dist/parts.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parts.d.ts","sourceRoot":"","sources":["../src/parts.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAIH,OAAO,KAAK,EACV,kBAAkB,EAClB,cAAc,
|
|
1
|
+
{"version":3,"file":"parts.d.ts","sourceRoot":"","sources":["../src/parts.ts"],"names":[],"mappings":"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"}
|