@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
@@ -9,7 +9,7 @@
9
9
  * |-----------|-------------------------------------------------------|
10
10
  * | header | `auditOverlay` + `renderAuditHeader` |
11
11
  * | rail | `renderViewer(…, { projection: 'linear' })`, windowed |
12
- * | canvas | `renderScaleLadder` |
12
+ * | canvas | `canvasToolbar` + `renderScaleLadder` |
13
13
  * | inspector | `inspectorView`, rendered here |
14
14
  *
15
15
  * ## The audit left-bar is applied to the rail's SPEC, never to its markup
@@ -49,10 +49,13 @@
49
49
  * `styles.ts` writes structure against its custom properties.
50
50
  */
51
51
  import { type Theme, type ViewerDocument } from '@issuegraph/viewer';
52
- import type { EdgeId, InvalidCode, MutationId, ProjectedEdge } from '@issuegraph/store';
52
+ import type { EdgeId, InvalidCode, MutationId, OrderChange, OrderStatus, ProjectedEdge } from '@issuegraph/store';
53
53
  import type { AuditInput } from '../audit/findings.ts';
54
+ import { type AuditWords } from '../audit/panel.ts';
55
+ import { type EncodingRefusedBlockOptions } from '../audit/refused.ts';
54
56
  import { type CreateDraft } from '../create/draft.ts';
55
57
  import type { Point } from '../create/placement.ts';
58
+ import type { ChangeWords } from '../reevaluate/words.ts';
56
59
  import { type AuditOverlay } from '../audit/surface.ts';
57
60
  import { type ScaleState } from '../scale/commands.ts';
58
61
  import { type InspectorView } from './inspector.ts';
@@ -63,6 +66,56 @@ import { type WorkspaceSelection } from './selection.ts';
63
66
  export declare const ZONES: readonly ["header", "rail", "canvas", "inspector"];
64
67
  export type Zone = (typeof ZONES)[number];
65
68
  export interface WorkspaceWords {
69
+ /**
70
+ * §17c's vocabulary — the change summary's facets, its dismiss control and
71
+ * its direction words.
72
+ *
73
+ * OPTIONAL, AND ITS ABSENCE DRAWS NOTHING rather than drawing a default.
74
+ * `ChangeWords` states the doctrine and this obeys it exactly: the store
75
+ * ships the change as COUNTS so a host writes the sentence in its own
76
+ * language, and a default supplied here would take that choice back one layer
77
+ * down. So a host that has not supplied these gets no summary and no chips —
78
+ * not an English summary it cannot translate.
79
+ *
80
+ * It is the one shape that also keeps this a non-breaking addition: every
81
+ * host built against 0.12 renders exactly as it did.
82
+ */
83
+ readonly change?: ChangeWords | undefined;
84
+ /**
85
+ * Reads the freshness stamp in §17a's header — the frame's `as of 14:32 ↻`,
86
+ * minus the clock.
87
+ *
88
+ * THE NUMBER IS APPENDED, NOT INTERPOLATED, exactly as {@link whyRank}'s is
89
+ * and for the reason stated there: a `{n}` template makes every host
90
+ * reimplement the substitution, which is how a package that refuses to invent
91
+ * English ships a tiny template language instead. `Freshness.asOf` and
92
+ * `Freshness.age` are the host's own strings and are printed verbatim.
93
+ *
94
+ * THE STALE FLAG CARRIES NO WORD, unlike layer 1's stamp, which appends a
95
+ * literal ` · stale`. §17a's stamp is `as of 14:32 ↻` and says nothing more,
96
+ * so staleness rides on `data-stale` for the stylesheet to treat. A word here
97
+ * would be a fourth thing to translate for a state the frame draws silently.
98
+ */
99
+ readonly asOf: string;
100
+ /**
101
+ * The noun after the backlog's total — frame 17a's `312 open`.
102
+ *
103
+ * IT WORDS `Adoption.counts.total`, WHICH IS NOT `OrderCounts`. Two different
104
+ * pairs reach this surface and only one of them is §17a's header content: the
105
+ * adoption pair says how much of the backlog is encoded, and the order pair
106
+ * (`ranked` / `readyNow` / `held`) says how the order splits. The second stays
107
+ * in the rail, where it belongs to the order it describes.
108
+ */
109
+ readonly open: string;
110
+ /**
111
+ * The noun after the encoded count — frame 17a's `64 encoded`, wording
112
+ * `Adoption.counts.declaring`.
113
+ *
114
+ * SEPARATE FROM {@link open} RATHER THAN ONE PHRASE, because the two numbers
115
+ * are the package's and the two nouns are the host's; a single string would
116
+ * have to carry both figures and would be a template again.
117
+ */
118
+ readonly encoded: string;
66
119
  /**
67
120
  * The panel's own heading — frame 17a's `INSPECTOR`.
68
121
  *
@@ -85,6 +138,32 @@ export interface WorkspaceWords {
85
138
  * command it publishes is `clear`, and that is the whole of its behaviour.
86
139
  */
87
140
  readonly clearSelection: string;
141
+ /**
142
+ * §17k's strip control while the canvas is collapsed — "open the canvas".
143
+ *
144
+ * REQUIRED, UNLIKE {@link CanvasWords}, AND THAT IS THE WHOLE REASON IT IS
145
+ * NOT IN IT. The canvas caption is optional because a surface without it
146
+ * still draws every fact; this control is the only way back out of §17k's
147
+ * strip, and a host that omitted it would ship a layout with a zone the
148
+ * reader cannot reach below `1120`. An unreachable zone is not a degraded
149
+ * caption.
150
+ *
151
+ * IT NAMES THE ZONE, NOT A DIRECTION. The strip is drawn at the canvas's own
152
+ * track, so "open" and "show" both read as acting on what is beside the word;
153
+ * the fixture and the demo both say which zone out loud, because a strip four
154
+ * characters wide, turned on its side, carries no other label.
155
+ */
156
+ readonly showCanvas: string;
157
+ /**
158
+ * The same control while the canvas is open.
159
+ *
160
+ * ITS OWN MEMBER RATHER THAN REUSING {@link showCanvas}, on
161
+ * {@link RailWords.hide}'s reasoning exactly: the control carries
162
+ * `aria-expanded`, which flips, and a label that did not flip with it would
163
+ * tell a screen-reader user the canvas is open and offer to open it in one
164
+ * breath.
165
+ */
166
+ readonly hideCanvas: string;
88
167
  /** Names the relationships list. */
89
168
  readonly relationships: string;
90
169
  /**
@@ -106,6 +185,40 @@ export interface WorkspaceWords {
106
185
  * a held unit prints the em dash rather than a number.
107
186
  */
108
187
  readonly whyHeld: string;
188
+ /**
189
+ * What the rail says when the audit filter is on and NOTHING matched it:
190
+ * §17's *"No flagged rows match."*
191
+ *
192
+ * A SEPARATE STRING FROM EVERY OTHER EMPTY SENTENCE, because it is about a
193
+ * different world. The others say the order is short; this one says the order
194
+ * is intact and the view is narrow.
195
+ */
196
+ readonly filteredEmpty: string;
197
+ /**
198
+ * The count that makes the sentence above unmisreadable: *"8 issues are
199
+ * ranked"*.
200
+ *
201
+ * A FUNCTION, WHICH IS THE ONE PLACE THIS FILE TAKES ONE, and the reason is
202
+ * the reason `whyRank` refuses to: there the number is APPENDED to a fixed
203
+ * phrase and a host can write the phrase; here the number sits INSIDE the
204
+ * sentence and its grammar moves with it — *"1 issue is ranked"* against
205
+ * *"8 issues are ranked"*. A fixed string plus a number cannot say both, and
206
+ * a `{n}` placeholder would make every host implement the substitution. So
207
+ * the host is handed the count and writes its own sentence, in its own
208
+ * language, with its own plural rule.
209
+ */
210
+ readonly filteredDenominator: (ranked: number) => string;
211
+ /** The way back out, which §17d requires be one click: *"clear the filter"*. */
212
+ readonly filteredClear: string;
213
+ /**
214
+ * What the rail says while the filter is on AND some rows still match.
215
+ *
216
+ * A SECOND HEADLINE RATHER THAN A REUSE OF `filteredEmpty`, because they are
217
+ * opposite statements: that one says nothing matched, this one says the list
218
+ * is narrowed. Saying "no flagged rows match" above three flagged rows is the
219
+ * false statement §2 wrote its ruling about.
220
+ */
221
+ readonly filteredActive: string;
109
222
  /**
110
223
  * Joins the rest of a together unit: §17a ends *"then worked with #514 as one
111
224
  * unit"*, and this is that phrase minus the members, which the package names.
@@ -132,6 +245,25 @@ export interface WorkspaceWords {
132
245
  * still reads the same field and no host supplies two.
133
246
  */
134
247
  readonly addRelationship: string;
248
+ /**
249
+ * §17a's `ADD RELATIONSHIP` heading, over the numbered kinds.
250
+ *
251
+ * NOT {@link WorkspaceWords.addRelationship}, AND THE FRAME IS WHY. That
252
+ * field is the CONTROL's label — frame 17a writes it `+ add`, on the
253
+ * relationships header row — and this is the HEADING over the five numbered
254
+ * choices, which the frame writes in full. They are two strings in the frame
255
+ * and reusing one for both would put a control's label where a section name
256
+ * belongs, in a panel whose other two headings are already section names.
257
+ *
258
+ * REQUIRED, on the same rule the three header nouns took. An optional field
259
+ * would draw the heading only for a host that opted in, leaving every other
260
+ * host with the frame's two moved placements and not its third — a panel that
261
+ * half-applies the pass this exists to complete. The usual argument for
262
+ * optional, that a host built against the previous version renders
263
+ * byte-identically, has nothing to preserve here: this release moves `+ add`
264
+ * and the kind digits for every host regardless of what it passes.
265
+ */
266
+ readonly addRelationshipHeading: string;
135
267
  /**
136
268
  * The control that abandons a draft — frame 17b's escape hatch beside the
137
269
  * numbered kind list, publishing `cancel`.
@@ -149,7 +281,7 @@ export interface WorkspaceWords {
149
281
  * subject — "relating from", read before the reference the package supplies.
150
282
  *
151
283
  * IT EXISTS BECAUSE THE TWO CAN DIVERGE AND THE DRAFT MUST STILL BE
152
- * CANCELLABLE. See {@link addStepSpec}: a draft begun by `R` on a together
284
+ * CANCELLABLE. See {@link createStep}: a draft begun by `R` on a together
153
285
  * unit's non-lead member, or one outlived by a change of selection, leaves
154
286
  * the kind step live under a panel headed by a different issue. The step is
155
287
  * drawn anyway — it carries the only pointer cancel there is — so it has to
@@ -226,6 +358,134 @@ export interface WorkspaceWords {
226
358
  * whose consequence most needs stating.
227
359
  */
228
360
  readonly recovery: RecoveryWords;
361
+ /**
362
+ * §17d's findings panel, in the host's own words.
363
+ *
364
+ * NESTED, like `recovery` and `refusals` beside it, because it is a record
365
+ * over a closed class table rather than a loose string — flattening four
366
+ * chips and four titles into this interface would put eight members here
367
+ * whose relationship to each other is only legible from their names.
368
+ */
369
+ readonly audit: AuditWords;
370
+ /**
371
+ * The canvas toolbar's words — frame 17a's caption over the graph.
372
+ *
373
+ * OPTIONAL, AND ITS ABSENCE DRAWS NO TOOLBAR, on `change`'s reasoning
374
+ * exactly: a required member here would break every host built against the
375
+ * current version, and a default supplied here would be this package writing
376
+ * an English caption for a host that may not speak English. So a host that
377
+ * has not worded the row gets the canvas it already had.
378
+ */
379
+ readonly canvas?: CanvasWords | undefined;
380
+ /**
381
+ * The order rail's footer — frame 17a's `248 with no relationships · show`.
382
+ *
383
+ * OPTIONAL, AND ITS ABSENCE DRAWS NO FOOTER, on `canvas`'s reasoning exactly:
384
+ * a required member here would break every host built against the current
385
+ * version, and a default supplied here would be this package writing English
386
+ * for a host that may not speak it.
387
+ *
388
+ * IT IS ALSO THE ONE WORDS MEMBER WHOSE PRESENCE MOVES SOMETHING IN ANOTHER
389
+ * ZONE, and that is worth stating where a host reads it. Supplying this draws
390
+ * the count and its control at the foot of the rail and turns the canvas
391
+ * ladder's own chip off, so the surface offers one control rather than two.
392
+ * The list the control opens is drawn in the CANVAS either way — the rail is
393
+ * virtualized and cannot hold it; `railFooter` records the arithmetic. The
394
+ * `isolatedChip` argument at the ladder call records why the two conditions
395
+ * are safely the same.
396
+ */
397
+ readonly rail?: RailWords | undefined;
398
+ }
399
+ /**
400
+ * Frame 17a's canvas toolbar reads `focus: #512 · 1 hop · 6 of 312 shown`, and
401
+ * every word in it is the host's.
402
+ *
403
+ * NUMBERS ARE APPENDED, NEVER INTERPOLATED, which is why this is four words
404
+ * rather than one sentence with two `{n}` holes in it. {@link
405
+ * WorkspaceWords.whyRank} states the doctrine and the reason: a template makes
406
+ * every host reimplement the substitution. The row is assembled as spans —
407
+ * `<focus> <key> · <n> <of> <total> <shown>` — so a host whose language orders
408
+ * those differently is no worse off than it is with `whyRank`, and no host has
409
+ * to parse a format string.
410
+ *
411
+ * THE DOCTRINE IS THIS INTERFACE'S, NOT THE WHOLE PACKAGE'S, and saying
412
+ * otherwise would be refuted by the markup directly beneath this row. The scale
413
+ * module writes English with numbers in it — the refusal sentence
414
+ * (`scale/ladder.ts`), the isolated chip's label, and a literal button label in
415
+ * `scale/render.ts`. That is a pre-existing inconsistency; the row follows
416
+ * `WorkspaceWords`' rule because the row is composed in the workspace, and it
417
+ * neither resolves nor extends the other one.
418
+ *
419
+ * THE FRAME'S `1 hop` IS NOT HERE, and its absence is a decision rather than an
420
+ * omission. `scaleLadder` narrows the canvas to a whole CONNECTED COMPONENT,
421
+ * not to an n-hop ball around the focus: there is no hop radius in
422
+ * `ScaleState`, in `ScaleLadder`, or in the viewer's graph projection, and a
423
+ * component can be ten hops deep. Printing `1 hop` would state a bound the
424
+ * canvas does not honour — the same defect as a rank the rail is not sure of —
425
+ * so the row prints what the ladder computed and nothing else.
426
+ */
427
+ export interface CanvasWords {
428
+ /**
429
+ * Leads the focus clause — the frame's `focus:`, minus the colon, which is
430
+ * punctuation this package draws rather than a word a host translates.
431
+ */
432
+ readonly focus: string;
433
+ /**
434
+ * Sits between the two counts: the frame's `6 OF 312`.
435
+ *
436
+ * ITS OWN MEMBER RATHER THAN PART OF `shown`, because the two numbers
437
+ * straddle it. Folding it into either neighbour would put a number in the
438
+ * middle of a host's string, which is the interpolation this interface's
439
+ * whole shape exists to avoid.
440
+ */
441
+ readonly of: string;
442
+ /** Trails the counts — the frame's `6 of 312 SHOWN`. */
443
+ readonly shown: string;
444
+ /**
445
+ * The trailing pill — the frame's `edit mode`.
446
+ *
447
+ * A STATE, NOT A CONTROL. The workspace is the editing surface and there is
448
+ * no read-only workspace to toggle into, so this names what the reader is
449
+ * looking at rather than offering to change it. It is drawn as text, never as
450
+ * a button, because a pill that looked pressable and did nothing is the dead
451
+ * control `headerControls` refuses to draw.
452
+ *
453
+ * OPTIONAL AND SEPARATELY SO, on `headerControls`' own reasoning rather than
454
+ * on this group's. `renderWorkspace` returns markup, and markup can be served
455
+ * without `mountWorkspace` — nothing on such a surface is editable, so a pill
456
+ * asserting that it is would be a claim the render layer cannot honour. The
457
+ * host knows which it built, so the host says: supply this only where the
458
+ * surface was mounted. Absent, the caption still draws and the pill does not.
459
+ */
460
+ readonly editMode?: string | undefined;
461
+ }
462
+ /**
463
+ * Frame 17a's rail footer reads `248 with no relationships · show`, and every
464
+ * word in it is the host's.
465
+ *
466
+ * NUMBERS ARE APPENDED, NEVER INTERPOLATED — {@link CanvasWords} states the
467
+ * doctrine and {@link WorkspaceWords.whyRank} the reason. The row is assembled
468
+ * as spans, `<count> <isolated>`, so a host is never handed a format string.
469
+ *
470
+ * `IsolatedChip.label` IS NOT REUSED, and the reason is the one `CanvasWords`
471
+ * already records: the scale module writes English with numbers in it, that is
472
+ * a pre-existing inconsistency, and a row composed in the workspace follows the
473
+ * workspace's rule rather than inheriting it. Reusing the label here would have
474
+ * been the cheaper line and would have imported the defect.
475
+ */
476
+ export interface RailWords {
477
+ /** Trails the count — the frame's `248 WITH NO RELATIONSHIPS`. */
478
+ readonly isolated: string;
479
+ /** The toggle while the list is closed — the frame's `show`. */
480
+ readonly show: string;
481
+ /**
482
+ * The toggle while the list is open.
483
+ *
484
+ * ITS OWN MEMBER RATHER THAN REUSING `show`. The control carries
485
+ * `aria-expanded`, which flips; a label that did not flip with it would tell
486
+ * a screen-reader user the list is open and offer to open it in one breath.
487
+ */
488
+ readonly hide: string;
229
489
  }
230
490
  export interface RecoveryWords {
231
491
  /** Names the state on a failed card. */
@@ -411,11 +671,43 @@ export interface WorkspaceOptions {
411
671
  * not invent an English sentence, and a default would be one.
412
672
  */
413
673
  readonly words: WorkspaceWords;
674
+ /**
675
+ * The store's `lastChange` — what the last landed edit did to the order.
676
+ *
677
+ * ABSENT MEANS NO EDIT HAS LANDED TO REPORT, which is not the same as an edit
678
+ * that landed and moved nothing. The second is a `change` whose summary is
679
+ * `unchanged`, and §17c draws it in the summary's own place because "landed
680
+ * and moved nothing" is the finding an owner auditing an encoding most needs.
681
+ */
682
+ readonly change?: OrderChange | null | undefined;
683
+ /**
684
+ * The store's `order.status`. `held` labels the rail and greys it one step.
685
+ *
686
+ * THE RANKS DRAWN ARE STILL THE ONES THE CALLER VOUCHED FOR. This says the
687
+ * order is being re-evaluated; it does not re-rank anything, and nothing in
688
+ * this render moves a row because a write is in flight. §122's rule —
689
+ * optimistic rendering yes, optimistic re-ORDERING no — is held by there
690
+ * being no code path here that reorders at all.
691
+ */
692
+ readonly orderStatus?: OrderStatus | undefined;
414
693
  readonly selection?: WorkspaceSelection | undefined;
415
694
  /** The ladder's reader position — search, focus, opened isolates. */
416
695
  readonly scale?: ScaleState | undefined;
417
696
  /** Which slice of the order the rail draws. See {@link railWindow}. */
418
697
  readonly rail?: RailWindowOptions | undefined;
698
+ /**
699
+ * The rail rows whose provenance is open, by lead key.
700
+ *
701
+ * §16f's `→ expands provenance` names a per-row state, and the VIEWER CANNOT
702
+ * HOLD ONE: it is a pure renderer, re-run from scratch on every change. So
703
+ * the host owns the set and hands it back in, exactly as `selection` is.
704
+ *
705
+ * ONLY THE RAIL READS IT. The canvas draws stations rather than rows and has
706
+ * no provenance to open, and §17j already shows provenance inline on the wide
707
+ * panel — where the expand affordance would be a control for something
708
+ * already visible.
709
+ */
710
+ readonly expanded?: readonly string[] | undefined;
419
711
  /**
420
712
  * The audit's input, when the host has one.
421
713
  *
@@ -438,6 +730,73 @@ export interface WorkspaceOptions {
438
730
  * Ignored with no audit, because there is nothing to filter by.
439
731
  */
440
732
  readonly auditFiltered?: boolean | undefined;
733
+ /**
734
+ * Whether §17d's audit overlay is open.
735
+ *
736
+ * SEPARATE FROM `auditFiltered`, and they used to be one thing. The header
737
+ * count was the filter toggle; `RULINGS.md` §3 makes it this overlay's anchor
738
+ * and moves the filter into the panel head, so the two states are now two
739
+ * questions: which rows the rail shows, and whether the panel is on screen.
740
+ *
741
+ * Ignored with no audit, because there is no panel to open.
742
+ */
743
+ readonly auditOpen?: boolean | undefined;
744
+ /**
745
+ * Whether §17k's collapsed canvas has been opened — `HostState.canvasOpen`.
746
+ *
747
+ * PUBLISHED AS AN ATTRIBUTE ON THE SURFACE ROOT, and read only by the
748
+ * stylesheet's narrow block. Nothing here decides whether the canvas IS a
749
+ * strip: that is a question about the box the surface was given, the
750
+ * container query is the only party that can answer it, and §17k's
751
+ * implementation note is explicit that the package must not ask the window
752
+ * instead. So this says what the reader asked for and the sheet says whether
753
+ * it is currently drawn.
754
+ *
755
+ * Absent means shut, which is §17k's resting state for the strip.
756
+ */
757
+ readonly canvasOpen?: boolean | undefined;
758
+ /**
759
+ * Whether the reader has dismissed §17k's lifted inspector —
760
+ * `HostState.inspectorDismissed`.
761
+ *
762
+ * COMBINED WITH THE SELECTION, NEVER READ ALONE. §17k opens the lifted panel
763
+ * "by selection", so the attribute this becomes is `lifted` only when
764
+ * something is selected AND the reader has not pressed Escape since. A render
765
+ * with nothing selected draws the panel dismissed however this is set, which
766
+ * is what keeps an empty "nothing selected" card from floating over the
767
+ * canvas at the middle width.
768
+ *
769
+ * Ignored at the two other widths, where the inspector is a zone.
770
+ */
771
+ readonly inspectorDismissed?: boolean | undefined;
772
+ /**
773
+ * Take over §17j's rail density, instead of letting the rail's own box decide.
774
+ *
775
+ * FORWARDED, NOT INVENTED. `@issuegraph/viewer` owns the rule and the
776
+ * default: the rail reads its density off the column it was given, and the
777
+ * crossover it uses — `430px` — is that package's default rather than a
778
+ * figure Design published. This exists so a consumer of the EDITOR can reach
779
+ * the same escape hatch without rendering the rail themselves.
780
+ *
781
+ * THE WORKSPACE ITSELF NEEDS IT FOR NOTHING. §17k holds the rail at one
782
+ * measure now — 390 at every width, which is the rule §17k states outright —
783
+ * so this surface never crosses the threshold and never has an opinion. It is
784
+ * threaded for the host's sake, and absent it changes nothing.
785
+ */
786
+ readonly railDensity?: 'dense' | 'wide' | undefined;
787
+ /**
788
+ * Where an issue lives in the host's own world, for §17d's refused block.
789
+ *
790
+ * THE HOST'S ANSWER BECAUSE IT IS THE ONLY PARTY THAT HAS ONE. A store ref is
791
+ * opaque in here and this package holds no repository identity, so a URL is
792
+ * supplied rather than derived. Absent, `null`, or a scheme the viewer's
793
+ * allowlist refuses all mean the same thing — no link is drawn. See
794
+ * {@link EncodingRefusedBlockOptions.issueUrl}, which owns that rule and the
795
+ * reason an `href` cannot be trusted to escaping alone.
796
+ *
797
+ * Ignored with no audit, because a refusal arrives on the audit's input.
798
+ */
799
+ readonly issueUrl?: EncodingRefusedBlockOptions['issueUrl'];
441
800
  readonly theme?: Theme | undefined;
442
801
  /** The selector the theme's custom properties are written onto. */
443
802
  readonly themeSelector?: string | undefined;
@@ -518,6 +877,23 @@ export interface WorkspaceOptions {
518
877
  * answers "closed" and the control cannot complete what it advertises.
519
878
  */
520
879
  readonly diffOpen?: MutationId | null | undefined;
880
+ /**
881
+ * A value unique to this surface, used to bind §17a's rail footer to the
882
+ * isolated list the canvas draws.
883
+ *
884
+ * SUPPLIED BY WHOEVER KNOWS THE PAGE. The footer's toggle and the list are in
885
+ * different zones, so the toggle names the list with `aria-controls` — and an
886
+ * id invented in here would be emitted twice by a host rendering two
887
+ * workspaces, leaving the second toggle pointing at the first surface's list.
888
+ * `scale/render.ts`'s `searchSpec` records the same hazard for its own label.
889
+ *
890
+ * ABSENT, NO ASSOCIATION IS DRAWN, and that is the honest default rather than
891
+ * a degraded one: `mountWorkspace` mints a value per mount, and markup served
892
+ * WITHOUT a mount is not operable anyway — the same argument
893
+ * `CanvasWords.editMode` is optional under. A toggle nobody can press needs no
894
+ * `aria-controls`.
895
+ */
896
+ readonly surfaceId?: string | undefined;
521
897
  }
522
898
  export interface WorkspaceView {
523
899
  readonly selection: WorkspaceSelection;
@@ -1 +1 @@
1
- {"version":3,"file":"render.d.ts","sourceRoot":"","sources":["../../src/workspace/render.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"render.d.ts","sourceRoot":"","sources":["../../src/workspace/render.ts"],"names":[],"mappings":"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"}