@quillmark/wasm 0.120.0 → 0.121.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/CHANGELOG.md CHANGED
@@ -1,5 +1,59 @@
1
1
  # Changelog
2
2
 
3
+ ## v0.121.0 - 2026-09-30
4
+
5
+ Upgrade path: [0.120 → 0.121](docs/migrations/0.120-to-0.121.md).
6
+
7
+ ### Matrix presence
8
+
9
+ - feat(core,typst,wasm)!: **a matrix member is held by being present in the
10
+ document**: a mapping is held whatever it carries, `{}` included, and a bare
11
+ scalar is the tick. A mapping naming no `held` flips from unticked to ticked,
12
+ with nothing reporting it. `held` is never stored: a member mapping storing
13
+ it fails validation as `validation::held_stored`, and the render with it, and
14
+ a `Quill.yaml` `seed:` or `default:` storing it fails to load as
15
+ `quill::seed_held_stored` / `quill::default_held_stored`. A `held: null` is
16
+ absent. The strict write rests a held member with no answers as `true`, and
17
+ the blueprint's `# e.g.` line drops `held: true`. (#2023)
18
+
19
+ ### Matrix plate
20
+
21
+ - feat(core,typst,acroform)!: **a matrix reaches the plate as the members it
22
+ holds**, each its columns keyed by id: no member carries `held` or a roster
23
+ `title`, and an unheld member is absent, so a plate reading `m.held` or
24
+ `m.title` fails to compile. `roster(dict, key)` in the Typst helper prints the
25
+ whole vocabulary as `(id, title, held, value, path)` rows, and the dictionary
26
+ declaring a matrix carries `$path` for it. A member's tick is its own address,
27
+ `<field>.<member>`: a claim on `<field>.<member>.held` fails the compile, an
28
+ acroform binding on it fails to load as `acroform::dangling_binding`, and a
29
+ bare tick the boolean coercion refuses is `validation::type_mismatch` at the
30
+ member's path. `resolve()` reports the members a matrix holds. A matrix takes
31
+ a `default:` and `type: matrix?`. The transform schema carries the roster as
32
+ `quillmark:roster` `[id, title]` pairs, and Rust `QUILLMARK_ORDER_KEY` is
33
+ `QUILLMARK_ROSTER_KEY`; `FieldSchema::members` is `FieldSchema::member`,
34
+ beside `added_item`, and `namespace_props` answers `None` for a matrix.
35
+ (#2023)
36
+
37
+ ### Open matrix
38
+
39
+ - feat(core,typst,wasm): **`open: true` on a matrix admits items a document
40
+ adds**, each keyed by a snake_case id and carrying a `title`, taking the
41
+ roster's columns. The plate and `roster` carry them after the held roster
42
+ members, sorted by id, and an added item's `title` is a cell with an address.
43
+ Any other key outside the roster is `validation::enum_violation`, which gains
44
+ an `open` arg. The transform schema declares the added item as
45
+ `additionalProperties`, `schema()` emits `open: true` (WASM
46
+ `QuillFieldSchema.open`), and an acroform quill declaring one fails to load as
47
+ `quill::open_matrix_unsupported`. `FieldType::Matrix` carries `open: bool`.
48
+ (#2023)
49
+
50
+ ### Release
51
+
52
+ - ci(release): **crate publishing retries past a crates.io index backlog**,
53
+ excluding the crates crates.io already holds at the release version, so a
54
+ re-run resumes a partial upload. (#2029)
55
+
56
+
3
57
  ## v0.120.0 - 2026-09-30
4
58
 
5
59
  Upgrade path: [0.119 → 0.120](docs/migrations/0.119-to-0.120.md).
package/core/wasm.d.ts CHANGED
@@ -439,9 +439,16 @@ export interface QuillFieldSchema {
439
439
  variants?: Record<string, Record<string, QuillFieldSchema>>;
440
440
  /** The roster of a `type: "matrix"` field, required there and valid
441
441
  * nowhere else: member id to display title, key order the display order.
442
- * Each member is an object of `held` plus the field's `properties`
443
- * (the columns), addressed as `<field>.<member id>.held`. */
442
+ * A member is held by being present in the document, as a mapping of the
443
+ * field's `properties` (the columns) or a bare `true`; unticking removes
444
+ * it. Its own address `<field>.<member id>` is the tick, and each column
445
+ * addresses one step further down. */
444
446
  members?: Record<string, string>;
447
+ /** `true` on a `type: "matrix"` field admitting items a document adds
448
+ * beside the roster: each keyed by a snake_case id and carrying a
449
+ * `title` string beside the columns, held by being present. Valid only
450
+ * on a matrix. */
451
+ open?: boolean;
445
452
  ui?: QuillFieldUi;
446
453
  properties?: Record<string, QuillFieldSchema>;
447
454
  items?: QuillFieldSchema;
package/core/wasm_bg.wasm CHANGED
Binary file
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@quillmark/wasm",
3
- "version": "0.120.0",
3
+ "version": "0.121.0",
4
4
  "description": "WebAssembly bindings for Quillmark, a schema-driven document engine",
5
5
  "type": "module",
6
6
  "license": "Apache-2.0",
package/render/wasm.d.ts CHANGED
@@ -450,9 +450,16 @@ export interface QuillFieldSchema {
450
450
  variants?: Record<string, Record<string, QuillFieldSchema>>;
451
451
  /** The roster of a `type: "matrix"` field, required there and valid
452
452
  * nowhere else: member id to display title, key order the display order.
453
- * Each member is an object of `held` plus the field's `properties`
454
- * (the columns), addressed as `<field>.<member id>.held`. */
453
+ * A member is held by being present in the document, as a mapping of the
454
+ * field's `properties` (the columns) or a bare `true`; unticking removes
455
+ * it. Its own address `<field>.<member id>` is the tick, and each column
456
+ * addresses one step further down. */
455
457
  members?: Record<string, string>;
458
+ /** `true` on a `type: "matrix"` field admitting items a document adds
459
+ * beside the roster: each keyed by a snake_case id and carrying a
460
+ * `title` string beside the columns, held by being present. Valid only
461
+ * on a matrix. */
462
+ open?: boolean;
456
463
  ui?: QuillFieldUi;
457
464
  properties?: Record<string, QuillFieldSchema>;
458
465
  items?: QuillFieldSchema;
Binary file