@issuegraph/editor 0.3.0 → 0.10.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (87) hide show
  1. package/README.md +31 -6
  2. package/dist/a11y/baseline.d.ts +182 -0
  3. package/dist/a11y/baseline.d.ts.map +1 -0
  4. package/dist/a11y/baseline.js +430 -0
  5. package/dist/a11y/baseline.js.map +1 -0
  6. package/dist/audit/styles.d.ts +1 -1
  7. package/dist/audit/styles.d.ts.map +1 -1
  8. package/dist/audit/styles.js +1 -1
  9. package/dist/create/draft.d.ts +17 -0
  10. package/dist/create/draft.d.ts.map +1 -1
  11. package/dist/create/draft.js +19 -0
  12. package/dist/create/draft.js.map +1 -1
  13. package/dist/create/keys.d.ts +70 -5
  14. package/dist/create/keys.d.ts.map +1 -1
  15. package/dist/create/keys.js +78 -17
  16. package/dist/create/keys.js.map +1 -1
  17. package/dist/firstpass/candidates.d.ts +17 -1
  18. package/dist/firstpass/candidates.d.ts.map +1 -1
  19. package/dist/index.d.ts +6 -4
  20. package/dist/index.d.ts.map +1 -1
  21. package/dist/index.js +12 -2
  22. package/dist/index.js.map +1 -1
  23. package/dist/overlay/render.d.ts.map +1 -1
  24. package/dist/overlay/render.js +54 -14
  25. package/dist/overlay/render.js.map +1 -1
  26. package/dist/overlay/styles.d.ts +1 -1
  27. package/dist/overlay/styles.d.ts.map +1 -1
  28. package/dist/overlay/styles.js +40 -0
  29. package/dist/overlay/styles.js.map +1 -1
  30. package/dist/picker/render.d.ts +26 -16
  31. package/dist/picker/render.d.ts.map +1 -1
  32. package/dist/picker/render.js +25 -36
  33. package/dist/picker/render.js.map +1 -1
  34. package/dist/picker/styles.d.ts +7 -7
  35. package/dist/picker/styles.d.ts.map +1 -1
  36. package/dist/picker/styles.js +7 -36
  37. package/dist/picker/styles.js.map +1 -1
  38. package/dist/picker/view.d.ts +8 -4
  39. package/dist/picker/view.d.ts.map +1 -1
  40. package/dist/picker/view.js +4 -3
  41. package/dist/picker/view.js.map +1 -1
  42. package/dist/picker/words.d.ts +12 -10
  43. package/dist/picker/words.d.ts.map +1 -1
  44. package/dist/picker/words.js +12 -8
  45. package/dist/picker/words.js.map +1 -1
  46. package/dist/scale/ladder.d.ts.map +1 -1
  47. package/dist/scale/ladder.js +10 -0
  48. package/dist/scale/ladder.js.map +1 -1
  49. package/dist/scale/render.d.ts.map +1 -1
  50. package/dist/scale/render.js +9 -1
  51. package/dist/scale/render.js.map +1 -1
  52. package/dist/workspace/chrome.d.ts +1 -1
  53. package/dist/workspace/chrome.d.ts.map +1 -1
  54. package/dist/workspace/chrome.js +48 -0
  55. package/dist/workspace/chrome.js.map +1 -1
  56. package/dist/workspace/firstpass.d.ts +166 -0
  57. package/dist/workspace/firstpass.d.ts.map +1 -0
  58. package/dist/workspace/firstpass.js +151 -0
  59. package/dist/workspace/firstpass.js.map +1 -0
  60. package/dist/workspace/host.d.ts +212 -10
  61. package/dist/workspace/host.d.ts.map +1 -1
  62. package/dist/workspace/host.js +434 -42
  63. package/dist/workspace/host.js.map +1 -1
  64. package/dist/workspace/inspector.d.ts +45 -1
  65. package/dist/workspace/inspector.d.ts.map +1 -1
  66. package/dist/workspace/inspector.js +11 -0
  67. package/dist/workspace/inspector.js.map +1 -1
  68. package/dist/workspace/mount.d.ts +52 -5
  69. package/dist/workspace/mount.d.ts.map +1 -1
  70. package/dist/workspace/mount.js +1391 -56
  71. package/dist/workspace/mount.js.map +1 -1
  72. package/dist/workspace/rail.d.ts.map +1 -1
  73. package/dist/workspace/rail.js +12 -0
  74. package/dist/workspace/rail.js.map +1 -1
  75. package/dist/workspace/recovery.d.ts +155 -0
  76. package/dist/workspace/recovery.d.ts.map +1 -0
  77. package/dist/workspace/recovery.js +156 -0
  78. package/dist/workspace/recovery.js.map +1 -0
  79. package/dist/workspace/render.d.ts +402 -1
  80. package/dist/workspace/render.d.ts.map +1 -1
  81. package/dist/workspace/render.js +947 -36
  82. package/dist/workspace/render.js.map +1 -1
  83. package/dist/workspace/styles.d.ts +1 -1
  84. package/dist/workspace/styles.d.ts.map +1 -1
  85. package/dist/workspace/styles.js +554 -41
  86. package/dist/workspace/styles.js.map +1 -1
  87. package/package.json +3 -3
@@ -26,12 +26,13 @@
26
26
  * of which a host reducer should know about, and each of which the demo now
27
27
  * handles beside the mount rather than through it.
28
28
  */
29
- import { type EdgeField } from '@issuegraph/core';
30
- import type { GraphDocument, MutationId, Proposal, StoredIssue } from '@issuegraph/store';
29
+ import type { EdgeId, GraphDocument, MutationId, Proposal, StoredIssue } from '@issuegraph/store';
31
30
  import { type CreateDraft } from '../create/draft.ts';
32
31
  import type { KeyIntent } from '../create/keys.ts';
33
32
  import type { Point } from '../create/placement.ts';
33
+ import type { CandidateId } from '../firstpass/candidates.ts';
34
34
  import { type ScaleState } from '../scale/commands.ts';
35
+ import { type FirstPassCommand, type FirstPassState } from './firstpass.ts';
35
36
  import { type WorkspaceSelection } from './selection.ts';
36
37
  export interface HostState {
37
38
  readonly selection: WorkspaceSelection;
@@ -46,16 +47,37 @@ export interface HostState {
46
47
  readonly drag: string | null;
47
48
  /** Where a canvas drop landed, so the kind chooser can be placed there. */
48
49
  readonly drop: Point | null;
50
+ /** The first-pass surface: shut, scanning, failed, or holding a queue. */
51
+ readonly firstPass: FirstPassState;
52
+ /**
53
+ * Which conflicted write has its held document on show, if any.
54
+ *
55
+ * ONE AT A TIME: the difference is drawn inside a panel rather than a dialog,
56
+ * and two open at once would push the second past the fold on the surface
57
+ * whose whole job is to be read at a glance.
58
+ *
59
+ * PRUNED BY THE SHELL, NOT BY `reconcileHost`. Its lifetime is the WRITE
60
+ * LEDGER's and reconciliation sees only the landed document — a mutation id
61
+ * is not answerable from a `GraphDocument`. `mountWorkspace` already walks
62
+ * the ledger to prune `writeCarriers` and clears this in the same pass, on a
63
+ * rule stricter than "still in the ledger": a `retry on latest` reserves its
64
+ * record as `pending` and a resolve whose re-check refuses leaves it
65
+ * `invalid`, and in BOTH the record is still there with its held document
66
+ * gone. So the rule is "still a conflict".
67
+ */
68
+ readonly diffOpen: MutationId | null;
49
69
  }
50
70
  export declare const INITIAL_HOST_STATE: HostState;
51
71
  /**
52
72
  * What the shell saw.
53
73
  *
54
74
  * `control` carries a `data-ig-command` — the package's own vocabulary
55
- * (`select-edge`, `focus`, `search`, `retype`, `flip`, …) and the mount's
56
- * chrome (`add`, `kind`, `target`, `delete`, `retry`, …) share one channel
57
- * because the shell reads one attribute. `point` and `group` are the viewer's
58
- * two identities: a focusable issue key, and a mark naming an edge or a slot.
75
+ * (`select-edge`, `focus`, `add`, `kind`, `delete`, `cancel`, …) and the
76
+ * mount's chrome, which is now the handful of controls that need a DOM or a
77
+ * host's own surface (`target-query`, `target`, `audit-filter`, `retry`,
78
+ * `discard`) — share one channel because the shell reads one attribute.
79
+ * `point` and `group` are the viewer's two identities: a focusable issue key,
80
+ * and a mark naming an edge or a slot.
59
81
  */
60
82
  export type HostCommand = {
61
83
  readonly kind: 'point';
@@ -81,11 +103,38 @@ export type HostCommand = {
81
103
  readonly kind: 'drop';
82
104
  readonly key: string | null;
83
105
  readonly at: Point;
106
+ }
107
+ /**
108
+ * A first-pass act that did not arrive as a `data-ig-command` string.
109
+ *
110
+ * The keyboard's intent is already a typed {@link FirstPassCommand}-shaped
111
+ * value and a scan's answer is a list of candidates, so both reach this
112
+ * reducer as VALUES rather than being flattened into an attribute and parsed
113
+ * back out. The controls that DO arrive as attributes still come through
114
+ * `control`, and both routes end in the same arm below.
115
+ */
116
+ | {
117
+ readonly kind: 'first-pass';
118
+ readonly command: FirstPassCommand;
84
119
  };
85
120
  /** What the shell performs against the store after reducing. */
86
121
  export type HostEffect = {
87
122
  readonly kind: 'propose';
88
123
  readonly proposal: Proposal;
124
+ /**
125
+ * The issue this edit is about, answered ONCE — here, and never again.
126
+ *
127
+ * THE SHELL REMEMBERS IT AGAINST THE WRITE. A refusal arrives from the
128
+ * store long after the act that caused it, by which time a sibling write
129
+ * may have taken the relationship away; asking then is asking a document
130
+ * that no longer holds the answer. See {@link editCarrier} for what the
131
+ * remaining sources can and cannot say, and `mount.ts` for the map this
132
+ * value is recorded in.
133
+ *
134
+ * `null` when the document holds NEITHER end — there is no panel for an
135
+ * issue this backlog does not carry, so there is nowhere to state it.
136
+ */
137
+ readonly carrier: string | null;
89
138
  } | {
90
139
  readonly kind: 'retry';
91
140
  readonly mutationId: MutationId;
@@ -94,15 +143,118 @@ export type HostEffect = {
94
143
  readonly mutationId: MutationId;
95
144
  } | {
96
145
  readonly kind: 'dismiss-change';
146
+ }
147
+ /**
148
+ * Run the host's candidate scan under this generation.
149
+ *
150
+ * The port is asynchronous by declaration, so the scan is an EFFECT and its
151
+ * answer comes back as a command. The generation rides along because a close
152
+ * and a re-open can leave two scans in flight — see `firstpass.ts`.
153
+ */
154
+ | {
155
+ readonly kind: 'find-candidates';
156
+ readonly scan: number;
157
+ }
158
+ /**
159
+ * An `apply`: propose this create, and REMEMBER which candidate it was.
160
+ *
161
+ * Its own arm rather than a plain `propose`, because the shell has to be able
162
+ * to find this exact write again if the reader takes the answer back — and it
163
+ * cannot do that from the create's fields. `candidates.ts` mints a distinct
164
+ * {@link CandidateId} per finding precisely so two detectors proposing the
165
+ * same pair stay two findings, so `kind`/`from`/`to` does not identify a
166
+ * write; only the `MutationId` the store returns does, and only the shell
167
+ * ever sees it.
168
+ */
169
+ | {
170
+ readonly kind: 'first-pass-apply';
171
+ readonly candidateId: CandidateId;
172
+ readonly proposal: Proposal;
173
+ /** As on `propose`, and for the same reason — this arm emits a write too. */
174
+ readonly carrier: string | null;
175
+ }
176
+ /**
177
+ * An `undo` took back an `apply`, and the shell decides what the store can do
178
+ * about it.
179
+ *
180
+ * The CANDIDATE rather than a proposal: this reducer does not build a
181
+ * `Proposal` for a write it is not making, and the shell matches the create
182
+ * against the store's own records by the candidate's own fields.
183
+ */
184
+ | {
185
+ readonly kind: 'first-pass-withdraw';
186
+ readonly candidateId: CandidateId;
97
187
  };
98
188
  export interface HostResult {
99
189
  readonly state: HostState;
100
190
  readonly effects: readonly HostEffect[];
191
+ /**
192
+ * Whether this reducer HAS AN ARM for the command, rather than whether the
193
+ * command changed anything.
194
+ *
195
+ * The two are different and only one of them is answerable here. Plenty of
196
+ * arms settle without changing state — a `retype` with no edge selected, a
197
+ * `focus` that was already focused — and those are still this reducer's acts.
198
+ * What `false` means is narrower and is the `default` arm's own words: a
199
+ * command published on the same attribute that belongs to the HOST's chrome,
200
+ * which this reducer must not guess at.
201
+ *
202
+ * IT EXISTS FOR THE KEYBOARD. A shell activating a control from a key press
203
+ * has to cancel the press, or the browser's own activation behaviour fires a
204
+ * second click and the act happens twice — but cancelling a press whose
205
+ * command this reducer never owned suppresses the native click the host's own
206
+ * listener was waiting for, and the host's control silently stops answering
207
+ * the keyboard. The shell cannot tell those apart from the outside; this
208
+ * reducer already knows, so it says.
209
+ */
210
+ readonly claimed: boolean;
101
211
  }
212
+ /**
213
+ * Which issue an edit is ABOUT — the panel that states it, and the panel it is
214
+ * refused on.
215
+ *
216
+ * THE SUBJECT OF AN EDIT IS DECIDED ONCE, AND THAT MEANS ONCE IN TIME AS WELL
217
+ * AS ONCE IN THE SOURCE. It used to be decided twice and in two vocabularies:
218
+ * the panel derived its own subject from the selection (canonicalized onto a
219
+ * together unit's lead), and the inspector separately asked whether the REFUSED
220
+ * EDGE's identity named that subject. Two derivations of one fact diverge, and
221
+ * they did, three times over. This function replaced the second derivation —
222
+ * and then a fourth divergence appeared inside it, because it was still being
223
+ * CALLED twice: once when the edit went out, and again when the refusal came
224
+ * back, against a document a sibling write had changed in between. So the shell
225
+ * calls it at the moment of emission, records the answer against the write, and
226
+ * reads the record afterwards. See `HostEffect`'s `carrier` and `mount.ts`.
227
+ *
228
+ * THE CARRIER'S END WINS, AND THE FAR END IS THE FALLBACK. The relationship is
229
+ * declared in the carrier's block, so that is the panel a reader made the edit
230
+ * from and the panel that can undo it. A create naming an unknown SOURCE has
231
+ * no such panel, and stating the refusal on the target's — the only issue the
232
+ * document holds — beats stating it nowhere.
233
+ *
234
+ * AND WITH ONLY AN IDENTITY LEFT, THE SAME RANKING APPLIES AS FAR AS THE FORMAT
235
+ * KEPT IT. `edgeIdentity` discards the declaring end of a SYMMETRIC pair and
236
+ * keeps it for a directed one, so `edgeIdentityEnd` names the carrier of a
237
+ * directed identity and answers `either` for a symmetric one — and both arms
238
+ * here rank by one rule instead of two. THIS ARM HAS BEEN WRONG IN BOTH
239
+ * DIRECTIONS: ranking a symmetric identity's segments invented an order the
240
+ * format had thrown away and stated a refusal on the far end's panel, and the
241
+ * correction — ranking nothing at all — discarded the order a DIRECTED identity
242
+ * still carries, so a host proposing on the shared store had its refusal placed
243
+ * under whichever end `document.issues` listed first. `either`, and a directed
244
+ * identity whose carrier this backlog does not hold, both fall through to the
245
+ * fallback this arm always had: "an issue this backlog holds and this edit was
246
+ * between", in the document's own order. The reader's own edits reach none of
247
+ * it, because their carrier was taken while the edge was still there.
248
+ *
249
+ * `null` when the document holds NEITHER end, which is not a refusal being
250
+ * dropped: there is no panel for an issue this backlog does not carry, so
251
+ * there is nowhere the reader could be standing to read it.
252
+ */
253
+ export declare function editCarrier(document: GraphDocument, proposal: Proposal): string | null;
102
254
  /** The one reducer. `document` is the landed document, for edge lookups. */
103
255
  export declare function reduceHost(state: HostState, command: HostCommand, document: GraphDocument): HostResult;
104
256
  /**
105
- * Bring the state back into agreement with a document that moved under it.
257
+ * Bring the state back into agreement with what the reader can SEE.
106
258
  *
107
259
  * The store re-renders on every landed write, and a write can remove what the
108
260
  * state names: a retype or a flip gives the edge a NEW identity, a delete
@@ -111,12 +263,50 @@ export declare function reduceHost(state: HostState, command: HostCommand, docum
111
263
  * the inspector showing a picker for nothing — the viewer already refuses a
112
264
  * stale selection the same way, so the host does too, from the document
113
265
  * rather than from memory of what it just proposed.
266
+ *
267
+ * ## `hidden` is the OTHER half of "no longer carries", and the landed
268
+ * document cannot state it
269
+ *
270
+ * `document` is what LANDED, and an unsettled retype or flip lands nothing —
271
+ * so the edge the reader was inspecting is still in it, and the check above
272
+ * passes, while the store's projection has already hidden that edge and the
273
+ * workspace has already stopped drawing it. Two documents were answering
274
+ * "does this selection resolve", and they disagreed for the whole life of the
275
+ * write: the panel resolved the selection to `none` and drew the empty
276
+ * sentence, and — because a refusal is only drawn for the subject it names —
277
+ * the reason the edit was refused was drawn nowhere at all. A reader who
278
+ * retyped an edge into a relationship that already exists saw the picker
279
+ * close and nothing else. `hidden` is the store's own set of landed edges its
280
+ * projection is not showing, so both halves of the question are asked here
281
+ * and the answer is one.
282
+ *
283
+ * A HIDDEN EDGE RETURNS THE PANEL TO ITS CARRIER, not to nothing. Through
284
+ * {@link carrierOf}, which is the same rule the refusal's own carrier was taken
285
+ * by when the edit went out — so the panel this lands on and the panel the
286
+ * refusal is stated under are one answer rather than two that agree. Clearing to `none`
287
+ * instead would be the same silence the check above already produced.
288
+ *
289
+ * IT IS A BACKSTOP NOW, NOT THE ONLY GUARD. `emitting` already puts the panel
290
+ * on the carrier the moment the reader's own edit goes out, so the route this
291
+ * paragraph was written for cannot reach here any more. What still can is a
292
+ * SIBLING write: another edit's retype or flip hiding the edge this selection
293
+ * names, which no act of the reader's announced.
294
+ *
295
+ * RECONCILING ONTO THE PROJECTED REPLACEMENT was the other candidate — follow
296
+ * the selection to the identity the edit produced — and it cannot be done from
297
+ * here or anywhere else. It works only when that identity happens to be
298
+ * landed, which is exactly one of the two refusals this route reaches:
299
+ * `duplicate-edge` produces an edge that already exists, but `cardinality`
300
+ * produces a PHANTOM, and a selection naming an edge the landed document does
301
+ * not carry is dropped by the first check in this very function on the next
302
+ * render. Measured: `reconcileHost` returns `{ kind: 'none' }` for it. That is
303
+ * the same vanishing one frame later, and it is the same decision the phantom
304
+ * capsule already records by publishing no `select-edge` — there is nothing
305
+ * there to select.
114
306
  */
115
- export declare function reconcileHost(state: HostState, document: GraphDocument): HostState;
307
+ export declare function reconcileHost(state: HostState, document: GraphDocument, hidden: ReadonlySet<EdgeId>): HostState;
116
308
  /** The issues a target search offers, by reference or title, never the source itself. */
117
309
  export declare function targetMatches(issues: readonly StoredIssue[], query: string, source: string | null, limit?: number): readonly StoredIssue[];
118
- /** The edge kinds, in the format's order — the keyboard path's `1`–`5` is this list. */
119
- export declare const KINDS: readonly EdgeField[];
120
310
  /** How far the reader may scroll into the rail window before it is re-cut around them, in rows. */
121
311
  export declare const RAIL_SLACK = 20;
122
312
  /**
@@ -127,6 +317,18 @@ export declare const RAIL_SLACK = 20;
127
317
  * unchanged, and keyboard navigation could not leave the first window.
128
318
  */
129
319
  export declare function railSlackFor(count: number): number;
320
+ /**
321
+ * Which order row a rail scroll offset points at.
322
+ *
323
+ * THE ROWS DO NOT START AT THE TOP OF THE RAIL. The legend sits above them, and
324
+ * so do the host header and the NOW list when the host supplies them — and the
325
+ * NOW list is one row per running job, unbounded. Dividing the raw offset by
326
+ * the row pitch read that chrome as rows: with enough jobs the window advanced
327
+ * past ranks the reader had not reached, and the rows chased the scroll
328
+ * position. The chrome's height is measured and subtracted first, so the
329
+ * offset that reaches the division is the offset INTO the rows.
330
+ */
331
+ export declare function railRowAt(scrollTop: number, chromeHeight: number, pitch: number): number;
130
332
  /**
131
333
  * Where the rail window should be re-cut for a scroll position, or `null` when
132
334
  * it should stay where it is.
@@ -1 +1 @@
1
- {"version":3,"file":"host.d.ts","sourceRoot":"","sources":["../../src/workspace/host.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"host.d.ts","sourceRoot":"","sources":["../../src/workspace/host.ts"],"names":[],"mappings":"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"}