@quillmark/wasm 0.124.0 → 0.126.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/render/wasm.d.ts CHANGED
@@ -146,7 +146,8 @@ export interface TableCell {
146
146
 
147
147
  /** `props` of a `type: "table"` island: a pipe table normalized to one column
148
148
  * count that `header`, every row of `rows`, `aligns` and `widths` all share.
149
- * A layout key at its default is absent. */
149
+ * A layout key at its default is absent; one holding a value outside its type
150
+ * stays as written and reads as absent. */
150
151
  export interface TableProps {
151
152
  header: TableCell[];
152
153
  rows: TableCell[][];
@@ -154,7 +155,7 @@ export interface TableProps {
154
155
  aligns: ("none" | "left" | "center" | "right")[];
155
156
  /** Per-column relative weights; `null` is an auto-fit column. Absent when
156
157
  * every column is auto-fit. A weight is an integer from 1 to
157
- * `Number.MAX_SAFE_INTEGER`; any other entry drops the key. */
158
+ * `Number.MAX_SAFE_INTEGER`. */
158
159
  widths?: (number | null)[];
159
160
  /** The table's placement; absent is the quill's. */
160
161
  align?: "left" | "center" | "right";
@@ -237,14 +238,14 @@ export interface Revised {
237
238
 
238
239
  /**
239
240
  * The receipt of `writer.reviseDocument`. `droppedAnchors` names every prose
240
- * anchor the write did not carry, at its path in the stored document; a table
241
+ * anchor the write did not carry, at its path and line in the stored document; a table
241
242
  * cell's anchors drop unnamed. `warnings` are the parse's, then each revised
242
243
  * content field's `parse::dropped_construct`, then the writer's `conform::*`.
243
244
  * A field that lands rather than revises, on an inserted card or over no stored
244
245
  * content, reports no drop.
245
246
  */
246
247
  export interface DocumentRevised {
247
- droppedAnchors: { path: string; id: string }[];
248
+ droppedAnchors: DocumentAnchor[];
248
249
  warnings: Diagnostic[];
249
250
  }
250
251
 
@@ -258,7 +259,13 @@ export interface DocumentRevised {
258
259
  */
259
260
  export interface AnnotatedMarkdown {
260
261
  markdown: string;
261
- anchors: { id: string; path: string; line: string }[];
262
+ anchors: DocumentAnchor[];
263
+ }
264
+
265
+ export interface DocumentAnchor {
266
+ id: string;
267
+ path: string;
268
+ line: string;
262
269
  }
263
270
 
264
271
  /**
@@ -450,9 +457,10 @@ export interface Resolved {
450
457
  /** UI layout hints for a single field. Display order is not a hint: key order
451
458
  * in the schema's `fields`/`properties` objects is the ordering contract. */
452
459
  export interface QuillFieldUi {
460
+ /** The id of the card group holding the field, a key of the card's
461
+ * `ui.groups`. */
453
462
  group?: string;
454
463
  compact?: boolean;
455
- multiline?: boolean;
456
464
  /** Label for an `enum`'s blank option. Absent, the consumer supplies a
457
465
  * conventional label of its own. */
458
466
  blank_title?: string;
@@ -466,18 +474,18 @@ export interface QuillFieldUi {
466
474
  layout?: "table" | "flat";
467
475
  }
468
476
 
469
- /** One entry in a card's `ui.groups` registry: a display-label override for the
470
- * group id (the map key). An empty object carries no override, and the consumer
471
- * derives the label from the id (`memo_for` → "Memo For"). */
477
+ /** One group in a card's `ui.groups`: a display-label override for the
478
+ * group id (the map key). An empty object carries no override, and the
479
+ * consumer derives the label from the id (`memo_for` → "Memo For"). */
472
480
  export interface QuillGroupUi {
473
481
  title?: string;
474
482
  }
475
483
 
476
484
  /** UI layout hints for a card (main or named card kind). */
477
485
  export interface QuillCardUi {
478
- /** The groups a field's `ui.group` may reference, keyed by group id. Key
479
- * order is the display-order contract, as with `fields`. Absent when the
480
- * card declares no groups. */
486
+ /** The card's groups keyed by id, each holding at least one field, which
487
+ * names it in its `ui.group`. Key order is the display-order contract, as
488
+ * with `fields`. Absent when the card declares no groups. */
481
489
  groups?: Record<string, QuillGroupUi>;
482
490
  }
483
491
 
@@ -487,7 +495,7 @@ export interface QuillCardBody {
487
495
  enabled?: boolean;
488
496
  }
489
497
 
490
- export type QuillFieldType = "string" | "number" | "integer" | "boolean" | "array" | "object" | "date" | "datetime" | "richtext" | "plaintext" | "enum" | "matrix";
498
+ export type QuillFieldType = "number" | "integer" | "boolean" | "array" | "object" | "date" | "datetime" | "text" | "richtext" | "enum" | "matrix";
491
499
 
492
500
  /** Schema entry for a single field declared in a quill's `Quill.yaml`.
493
501
  *
@@ -532,9 +540,12 @@ export interface QuillFieldSchema {
532
540
  * out on. Valid only on an `array`. Never gates render: a document over
533
541
  * the cap warns `validation::cardinality` and renders. */
534
542
  max?: number;
535
- /** `true` on a `richtext` or `plaintext` field declared `inline`: the
536
- * single-paragraph, container-free, island-free constraint. */
537
- inline?: boolean;
543
+ /** The line shape of a `text` or `richtext` field, valid nowhere else.
544
+ * Absent or `false`, the field is one line (`text`) or one paragraph with
545
+ * no container or island (`richtext`); `true` admits line breaks
546
+ * (`text`) or block structure (`richtext`). A `richtext` always carries
547
+ * it. */
548
+ multiline?: boolean;
538
549
  }
539
550
 
540
551
  /** Schema entry for the main card or a named card kind. */
@@ -574,6 +585,10 @@ export interface QuillMetadata {
574
585
  backend: string;
575
586
  author: string;
576
587
  description: string;
588
+ /** An SPDX license expression; absent when the quill declares none. */
589
+ license?: string;
590
+ /** An absolute `http(s)` URL; absent when the quill declares none. */
591
+ homepage?: string;
577
592
  }
578
593
 
579
594
 
@@ -619,7 +634,8 @@ export interface FieldRegion {
619
634
  rect: [number, number, number, number];
620
635
  /**
621
636
  * The slice this box covers: USV `[start, end)` into the field's `Content`
622
- * for one content segment, `undefined` for a scalar site or widget.
637
+ * for one content segment, `undefined` for a scalar's ink, a claim or a
638
+ * widget.
623
639
  */
624
640
  span?: [number, number];
625
641
  }
@@ -630,6 +646,23 @@ export interface FieldRegion {
630
646
  */
631
647
  export type HitGranularity = "cluster" | "segment";
632
648
 
649
+ /**
650
+ * One address a compiled document fills and the region address a click
651
+ * reaches it through: the consumer's copy of this contract is
652
+ * `runtime/runtime.d.ts`.
653
+ */
654
+ export interface FieldCoverage {
655
+ /**
656
+ * Canonical `DocPath` field address, as `FieldRegion.field` spells it.
657
+ */
658
+ field: string;
659
+ /**
660
+ * The `DocPath` of the region reaching `field`: itself, or the nearest
661
+ * enclosing address a region carries. `undefined` where no click does.
662
+ */
663
+ coveredBy?: string;
664
+ }
665
+
633
666
  /**
634
667
  * Output formats supported by backends. Gated behind the engine surface so
635
668
  * tsify omits it from the core bundle, which has no rendering surface.
@@ -797,7 +830,7 @@ export class Document {
797
830
  * `edit::index_out_of_range`.
798
831
  *
799
832
  * A content field at rest has one stored form per codec: a `richtext` field
800
- * holds the canonical content object, a `plaintext` field its literal
833
+ * holds the canonical content object, a `text` field its literal
801
834
  * string. A document from the bound door (`quill.parse` / `quill.conform`)
802
835
  * is at rest; one from the transport door may rest as authored until it is
803
836
  * conformed, and this read reports what is there. For the `Content` either
@@ -810,8 +843,9 @@ export class Document {
810
843
  /**
811
844
  * Insert a card: `at` absent appends, a number inserts at that index (in
812
845
  * `0..=cards.length`). Accepts any `CardInput`, including a card read back
813
- * out of a document. Throws if `card.kind` is not a valid kind name, or if
814
- * `at` is out of range.
846
+ * out of a document. Throws if `card.kind` is not a valid kind name, if
847
+ * `at` is out of range, or `edit::too_many_cards` if the document holds
848
+ * 1,000 cards.
815
849
  */
816
850
  insertCard(card: CardInput, at?: number): void;
817
851
  /**
@@ -1010,6 +1044,13 @@ export class LiveSession {
1010
1044
  private constructor();
1011
1045
  free(): void;
1012
1046
  [Symbol.dispose](): void;
1047
+ /**
1048
+ * Each address the current compile fills that a reader could want to
1049
+ * click, and the `DocPath` of the region reaching it: the address itself,
1050
+ * the nearest enclosing one a region carries (a row claim reaching its
1051
+ * cells), or `undefined` where no click does. Reflects the current compile.
1052
+ */
1053
+ coverage(): FieldCoverage[];
1013
1054
  /**
1014
1055
  * The schema field whose content is under a point on `page`: the `DocPath`
1015
1056
  * address to focus in the editor, or `undefined` off any field's ink.
@@ -1030,9 +1071,9 @@ export class LiveSession {
1030
1071
  /**
1031
1072
  * The whole-field highlight boxes for `field`: one union rect per page over
1032
1073
  * the field's `span`-bearing content segments, the union `regions()` leaves
1033
- * derived. **Content only**: a field placed solely as a scalar reference or
1034
- * a bound widget carries no `span` and returns `[]`, its box being a single
1035
- * `regions()` rect. Reflects the current compile.
1074
+ * derived. **Content only**: a field placed solely as a scalar's ink, a
1075
+ * claim or a bound widget carries no `span` and returns `[]`, its box being
1076
+ * a single `regions()` rect. Reflects the current compile.
1036
1077
  */
1037
1078
  fieldBoxes(field: string): FieldRegion[];
1038
1079
  /**
@@ -1077,9 +1118,9 @@ export class LiveSession {
1077
1118
  */
1078
1119
  positionAt(page: number, x: number, y: number, tol_pt?: number | null): ContentHit | undefined;
1079
1120
  /**
1080
- * Schema-field geometry for this compiled session: each content field's
1081
- * **first placement** (one region per page it touches) plus widget and
1082
- * scalar-reference-site regions, keyed on the canonical `DocPath` address. A
1121
+ * Schema-field geometry for this compiled session: each piece of generated
1122
+ * ink's **first placement** (one region per page it touches) plus claim and
1123
+ * widget regions, keyed on the canonical `DocPath` address. A
1083
1124
  * field may appear more than once, so group by `field` (see `FieldRegion`).
1084
1125
  * A session-level query: no render, no byte artifact. The click direction is
1085
1126
  * `fieldAt`. Empty for backends that place no schema fields.
@@ -1138,7 +1179,7 @@ export class Quill {
1138
1179
  * The quill's example document, `undefined` when the quill has no
1139
1180
  * `example.md` at its root: a filled-in page whose values are made up to show the
1140
1181
  * quill in use, never kept. It comes back pinned to this quill's
1141
- * `name@version` and conformed as `parse` conforms, its parse and
1182
+ * `name@MAJOR.MINOR` and conformed as `parse` conforms, its parse and
1142
1183
  * `conform::*` warnings on `doc.warnings`. Throws when the file does not
1143
1184
  * parse or its `$quill` is not this quill's bare name.
1144
1185
  */
@@ -1153,7 +1194,7 @@ export class Quill {
1153
1194
  * Parse `markdown` and conform it against this quill: the primary ingestion
1154
1195
  * path, and the bound twin of the schema-free `Document.fromMarkdown`. The
1155
1196
  * returned document rests at its canonical form (a `richtext` field as a
1156
- * content object, a `plaintext` field as its literal string), so `getStored`
1197
+ * content object, a `text` field as its literal string), so `getStored`
1157
1198
  * answers by the field's declared codec, not by how the document was built.
1158
1199
  *
1159
1200
  * Parse warnings and the `conform::*` diagnostics both land on
@@ -1197,8 +1238,9 @@ export class Quill {
1197
1238
  toTree(): Map<string, Uint8Array>;
1198
1239
  /**
1199
1240
  * Validate `doc` against this quill's schema, returning every diagnostic:
1200
- * an error blocks a render, a warning does not. Forwards the canonical
1201
- * `validation::*` diagnostics the engine emits.
1241
+ * an error blocks a render, a warning does not. Forwards the engine's
1242
+ * `validation::*`, a markdown string's `parse::dropped_construct` and the
1243
+ * backend's `backend::declined_construct`.
1202
1244
  */
1203
1245
  validate(doc: Document): Diagnostic[];
1204
1246
  /**
@@ -1242,11 +1284,10 @@ export class Quillmark {
1242
1284
  open(quill: Quill, doc: Document, today?: string | null): LiveSession;
1243
1285
  /**
1244
1286
  * Render `doc` against `quill` in one shot: `open` + `LiveSession.render`,
1245
- * with every `quill.validate` warning but `validation::declined_construct`,
1246
- * which the compile raises as `backend::declined_construct`, ahead of the
1247
- * compile's in `warnings`; the load's stay on `doc.warnings`. An unset
1248
- * `output_format` falls back to the backend's first supported format.
1249
- * `today` reads as on `open`.
1287
+ * with every `quill.validate` warning in `warnings`, a decline among the
1288
+ * compile's and the rest ahead of them; the load's stay on `doc.warnings`.
1289
+ * An unset `output_format` falls back to the backend's first supported
1290
+ * format. `today` reads as on `open`.
1250
1291
  */
1251
1292
  render(quill: Quill, doc: Document, opts?: RenderOptions | null, today?: string | null): RenderResult;
1252
1293
  /**
@@ -1293,15 +1334,15 @@ export function formatDocPath(segs: DocPathSeg[]): string;
1293
1334
  export function importMarkdown(markdown: string): Imported;
1294
1335
 
1295
1336
  /**
1296
- * Whether `content` satisfies the `inline` constraint of `richtext` and
1297
- * `plaintext`: one `Para` line, in no container, with no islands. Judged on
1337
+ * Whether `content` satisfies the one-line constraint of `text` and
1338
+ * `richtext`: one `Para` line, in no container, with no islands. Judged on
1298
1339
  * the normalized content, which is what a write stores. Throws if `content` is
1299
1340
  * not canonical content.
1300
1341
  */
1301
1342
  export function isInline(content: Content): boolean;
1302
1343
 
1303
1344
  /**
1304
- * Whether `content` satisfies the `plaintext` constraint: no marks, no
1345
+ * Whether `content` satisfies the `text` constraint: no marks, no
1305
1346
  * islands, every line a `Para` in no container. Judged on the normalized
1306
1347
  * content, which is what a write stores. Throws if `content` is not canonical
1307
1348
  * content.
@@ -1422,6 +1463,7 @@ export interface InitOutput {
1422
1463
  readonly isInline: (a: number, b: number) => void;
1423
1464
  readonly isPlain: (a: number, b: number) => void;
1424
1465
  readonly livesession_backendId: (a: number, b: number) => void;
1466
+ readonly livesession_coverage: (a: number, b: number) => void;
1425
1467
  readonly livesession_fieldAt: (a: number, b: number, c: number, d: number, e: number, f: number) => void;
1426
1468
  readonly livesession_fieldBoxes: (a: number, b: number, c: number, d: number) => void;
1427
1469
  readonly livesession_locate: (a: number, b: number, c: number, d: number, e: number) => void;
package/render/wasm.js CHANGED
@@ -26,8 +26,8 @@ export class Document {
26
26
  * leaves the document untouched. Field errors throw the same per-field
27
27
  * bundle as [`commitFields`](Self::commit_fields); an invalid kind or body,
28
28
  * or a bad position, throws a single-entry bundle keyed `$kind` / `$body`.
29
- * Returns the body import's `parse::dropped_construct` warnings, anchored
30
- * at the placed card's body.
29
+ * Returns the fields' `parse::dropped_construct` warnings, then the body
30
+ * import's, anchored under the placed card.
31
31
  * @param {Quill} quill
32
32
  * @param {string} kind
33
33
  * @param {Record<string, unknown>} [fields]
@@ -58,7 +58,7 @@ export class Document {
58
58
  /**
59
59
  * Typed field write at `addr`, resolving the field's schema `type` from
60
60
  * `quill`: the stable ABI under the runtime `writer.set`. One verb for every
61
- * field type; the schema carries the `inline` constraint, so no type token
61
+ * field type; the schema carries the one-line constraint, so no type token
62
62
  * is passed.
63
63
  *
64
64
  * A bare string is `Addr` shorthand for `{ field }`. A body address throws,
@@ -67,15 +67,19 @@ export class Document {
67
67
  * `edit::unknown_field` rather than falling to the opaque store — use
68
68
  * [`storeField`](Document::store_field) for that. Also throws
69
69
  * `edit::field_coercion_failed` / `edit::field_decode` /
70
- * `edit::field_not_inline` on a typed mismatch,
70
+ * `edit::field_not_single_line` on a typed mismatch,
71
71
  * `edit::invalid_field_name` on a malformed name, and
72
72
  * `edit::index_out_of_range` on an out-of-range card.
73
73
  *
74
74
  * The `quill` handle is passed per call because a `Document` carries only a
75
75
  * `$quill` reference, not the resolved schema.
76
+ *
77
+ * Returns a `parse::dropped_construct` warning per construct a `richtext`
78
+ * markdown string in the value dropped, at the string's path.
76
79
  * @param {Quill} quill
77
80
  * @param {Addr | string} addr
78
81
  * @param {any} value
82
+ * @returns {Diagnostic[]}
79
83
  */
80
84
  _commitField(quill, addr, value) {
81
85
  try {
@@ -84,9 +88,11 @@ export class Document {
84
88
  wasm.document__commitField(retptr, this.__wbg_ptr, quill.__wbg_ptr, addHeapObject(addr), addHeapObject(value));
85
89
  var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
86
90
  var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
87
- if (r1) {
88
- throw takeObject(r0);
91
+ var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
92
+ if (r2) {
93
+ throw takeObject(r1);
89
94
  }
95
+ return takeObject(r0);
90
96
  } finally {
91
97
  wasm.__wbindgen_add_to_stack_pointer(16);
92
98
  }
@@ -98,10 +104,12 @@ export class Document {
98
104
  * diagnostic contract as [`storeFields`](Document::store_fields) — nothing
99
105
  * applied on error, one `diagnostics` entry per offending field, including
100
106
  * `edit::unknown_field` for undeclared names. Throws on an out-of-range
101
- * card.
107
+ * card. Returns [`commitField`](Document::commit_field)'s warnings for
108
+ * every field, in batch order.
102
109
  * @param {Quill} quill
103
110
  * @param {CardAddr} addr
104
111
  * @param {Record<string, unknown>} fields
112
+ * @returns {Diagnostic[]}
105
113
  */
106
114
  _commitFields(quill, addr, fields) {
107
115
  try {
@@ -110,9 +118,11 @@ export class Document {
110
118
  wasm.document__commitFields(retptr, this.__wbg_ptr, quill.__wbg_ptr, addHeapObject(addr), addHeapObject(fields));
111
119
  var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
112
120
  var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
113
- if (r1) {
114
- throw takeObject(r0);
121
+ var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
122
+ if (r2) {
123
+ throw takeObject(r1);
115
124
  }
125
+ return takeObject(r0);
116
126
  } finally {
117
127
  wasm.__wbindgen_add_to_stack_pointer(16);
118
128
  }
@@ -263,10 +273,10 @@ export class Document {
263
273
  * Revise the content field at `addr` from authored text, typed *and*
264
274
  * anchor-preserving: the ABI under `writer.reviseField`. Surviving anchors
265
275
  * rebase as in [`revise`](Self::revise), then the diffed result is
266
- * schema-conformed, so a `richtext(inline)` field rejects a multi-block
267
- * result with `edit::field_not_inline`. Returns the `Revised` receipt, its
276
+ * schema-conformed, so a one-paragraph `richtext` field rejects a multi-block
277
+ * result with `edit::field_not_single_line`. Returns the `Revised` receipt, its
268
278
  * warnings anchored at the field. The codec is the declared type's:
269
- * `richtext` diffs markdown, `plaintext` literal text, which drops nothing.
279
+ * `richtext` diffs markdown, `text` literal text, which drops nothing.
270
280
  *
271
281
  * `addr` must name a field; a body address throws, since a body carries no
272
282
  * field schema (use [`revise`](Self::revise)). An undeclared name throws
@@ -541,7 +551,7 @@ export class Document {
541
551
  * `edit::index_out_of_range`.
542
552
  *
543
553
  * A content field at rest has one stored form per codec: a `richtext` field
544
- * holds the canonical content object, a `plaintext` field its literal
554
+ * holds the canonical content object, a `text` field its literal
545
555
  * string. A document from the bound door (`quill.parse` / `quill.conform`)
546
556
  * is at rest; one from the transport door may rest as authored until it is
547
557
  * conformed, and this read reports what is there. For the `Content` either
@@ -570,8 +580,9 @@ export class Document {
570
580
  /**
571
581
  * Insert a card: `at` absent appends, a number inserts at that index (in
572
582
  * `0..=cards.length`). Accepts any `CardInput`, including a card read back
573
- * out of a document. Throws if `card.kind` is not a valid kind name, or if
574
- * `at` is out of range.
583
+ * out of a document. Throws if `card.kind` is not a valid kind name, if
584
+ * `at` is out of range, or `edit::too_many_cards` if the document holds
585
+ * 1,000 cards.
575
586
  * @param {CardInput} card
576
587
  * @param {number} [at]
577
588
  */
@@ -1224,6 +1235,28 @@ export class LiveSession {
1224
1235
  wasm.__wbindgen_export4(deferred1_0, deferred1_1, 1);
1225
1236
  }
1226
1237
  }
1238
+ /**
1239
+ * Each address the current compile fills that a reader could want to
1240
+ * click, and the `DocPath` of the region reaching it: the address itself,
1241
+ * the nearest enclosing one a region carries (a row claim reaching its
1242
+ * cells), or `undefined` where no click does. Reflects the current compile.
1243
+ * @returns {FieldCoverage[]}
1244
+ */
1245
+ coverage() {
1246
+ try {
1247
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
1248
+ wasm.livesession_coverage(retptr, this.__wbg_ptr);
1249
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
1250
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
1251
+ var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
1252
+ if (r2) {
1253
+ throw takeObject(r1);
1254
+ }
1255
+ return takeObject(r0);
1256
+ } finally {
1257
+ wasm.__wbindgen_add_to_stack_pointer(16);
1258
+ }
1259
+ }
1227
1260
  /**
1228
1261
  * The schema field whose content is under a point on `page`: the `DocPath`
1229
1262
  * address to focus in the editor, or `undefined` off any field's ink.
@@ -1264,9 +1297,9 @@ export class LiveSession {
1264
1297
  /**
1265
1298
  * The whole-field highlight boxes for `field`: one union rect per page over
1266
1299
  * the field's `span`-bearing content segments, the union `regions()` leaves
1267
- * derived. **Content only**: a field placed solely as a scalar reference or
1268
- * a bound widget carries no `span` and returns `[]`, its box being a single
1269
- * `regions()` rect. Reflects the current compile.
1300
+ * derived. **Content only**: a field placed solely as a scalar's ink, a
1301
+ * claim or a bound widget carries no `span` and returns `[]`, its box being
1302
+ * a single `regions()` rect. Reflects the current compile.
1270
1303
  * @param {string} field
1271
1304
  * @returns {FieldRegion[]}
1272
1305
  */
@@ -1405,9 +1438,9 @@ export class LiveSession {
1405
1438
  }
1406
1439
  }
1407
1440
  /**
1408
- * Schema-field geometry for this compiled session: each content field's
1409
- * **first placement** (one region per page it touches) plus widget and
1410
- * scalar-reference-site regions, keyed on the canonical `DocPath` address. A
1441
+ * Schema-field geometry for this compiled session: each piece of generated
1442
+ * ink's **first placement** (one region per page it touches) plus claim and
1443
+ * widget regions, keyed on the canonical `DocPath` address. A
1411
1444
  * field may appear more than once, so group by `field` (see `FieldRegion`).
1412
1445
  * A session-level query: no render, no byte artifact. The click direction is
1413
1446
  * `fieldAt`. Empty for backends that place no schema fields.
@@ -1630,7 +1663,7 @@ export class Quill {
1630
1663
  * The quill's example document, `undefined` when the quill has no
1631
1664
  * `example.md` at its root: a filled-in page whose values are made up to show the
1632
1665
  * quill in use, never kept. It comes back pinned to this quill's
1633
- * `name@version` and conformed as `parse` conforms, its parse and
1666
+ * `name@MAJOR.MINOR` and conformed as `parse` conforms, its parse and
1634
1667
  * `conform::*` warnings on `doc.warnings`. Throws when the file does not
1635
1668
  * parse or its `$quill` is not this quill's bare name.
1636
1669
  * @returns {Document | undefined}
@@ -1697,7 +1730,7 @@ export class Quill {
1697
1730
  * Parse `markdown` and conform it against this quill: the primary ingestion
1698
1731
  * path, and the bound twin of the schema-free `Document.fromMarkdown`. The
1699
1732
  * returned document rests at its canonical form (a `richtext` field as a
1700
- * content object, a `plaintext` field as its literal string), so `getStored`
1733
+ * content object, a `text` field as its literal string), so `getStored`
1701
1734
  * answers by the field's declared codec, not by how the document was built.
1702
1735
  *
1703
1736
  * Parse warnings and the `conform::*` diagnostics both land on
@@ -1822,8 +1855,9 @@ export class Quill {
1822
1855
  }
1823
1856
  /**
1824
1857
  * Validate `doc` against this quill's schema, returning every diagnostic:
1825
- * an error blocks a render, a warning does not. Forwards the canonical
1826
- * `validation::*` diagnostics the engine emits.
1858
+ * an error blocks a render, a warning does not. Forwards the engine's
1859
+ * `validation::*`, a markdown string's `parse::dropped_construct` and the
1860
+ * backend's `backend::declined_construct`.
1827
1861
  * @param {Document} doc
1828
1862
  * @returns {Diagnostic[]}
1829
1863
  */
@@ -1917,11 +1951,10 @@ export class Quillmark {
1917
1951
  }
1918
1952
  /**
1919
1953
  * Render `doc` against `quill` in one shot: `open` + `LiveSession.render`,
1920
- * with every `quill.validate` warning but `validation::declined_construct`,
1921
- * which the compile raises as `backend::declined_construct`, ahead of the
1922
- * compile's in `warnings`; the load's stay on `doc.warnings`. An unset
1923
- * `output_format` falls back to the backend's first supported format.
1924
- * `today` reads as on `open`.
1954
+ * with every `quill.validate` warning in `warnings`, a decline among the
1955
+ * compile's and the rest ahead of them; the load's stay on `doc.warnings`.
1956
+ * An unset `output_format` falls back to the backend's first supported
1957
+ * format. `today` reads as on `open`.
1925
1958
  * @param {Quill} quill
1926
1959
  * @param {Document} doc
1927
1960
  * @param {RenderOptions | null} [opts]
@@ -2102,8 +2135,8 @@ export function importMarkdown(markdown) {
2102
2135
  }
2103
2136
 
2104
2137
  /**
2105
- * Whether `content` satisfies the `inline` constraint of `richtext` and
2106
- * `plaintext`: one `Para` line, in no container, with no islands. Judged on
2138
+ * Whether `content` satisfies the one-line constraint of `text` and
2139
+ * `richtext`: one `Para` line, in no container, with no islands. Judged on
2107
2140
  * the normalized content, which is what a write stores. Throws if `content` is
2108
2141
  * not canonical content.
2109
2142
  * @param {Content} content
@@ -2126,7 +2159,7 @@ export function isInline(content) {
2126
2159
  }
2127
2160
 
2128
2161
  /**
2129
- * Whether `content` satisfies the `plaintext` constraint: no marks, no
2162
+ * Whether `content` satisfies the `text` constraint: no marks, no
2130
2163
  * islands, every line a `Para` in no container. Judged on the normalized
2131
2164
  * content, which is what a write stores. Throws if `content` is not canonical
2132
2165
  * content.
Binary file
@@ -59,6 +59,7 @@ export const importMarkdown: (a: number, b: number, c: number) => void;
59
59
  export const isInline: (a: number, b: number) => void;
60
60
  export const isPlain: (a: number, b: number) => void;
61
61
  export const livesession_backendId: (a: number, b: number) => void;
62
+ export const livesession_coverage: (a: number, b: number) => void;
62
63
  export const livesession_fieldAt: (a: number, b: number, c: number, d: number, e: number, f: number) => void;
63
64
  export const livesession_fieldBoxes: (a: number, b: number, c: number, d: number) => void;
64
65
  export const livesession_locate: (a: number, b: number, c: number, d: number, e: number) => void;