@refrakt-md/runes 0.38.0 → 0.40.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 (106) hide show
  1. package/dist/attribute-presets.d.ts +3 -2
  2. package/dist/attribute-presets.d.ts.map +1 -1
  3. package/dist/attribute-presets.js +2 -1
  4. package/dist/attribute-presets.js.map +1 -1
  5. package/dist/collection-helpers.d.ts +21 -2
  6. package/dist/collection-helpers.d.ts.map +1 -1
  7. package/dist/collection-helpers.js +72 -15
  8. package/dist/collection-helpers.js.map +1 -1
  9. package/dist/composed-rune.d.ts +59 -0
  10. package/dist/composed-rune.d.ts.map +1 -0
  11. package/dist/composed-rune.js +129 -0
  12. package/dist/composed-rune.js.map +1 -0
  13. package/dist/config.d.ts.map +1 -1
  14. package/dist/config.js +73 -40
  15. package/dist/config.js.map +1 -1
  16. package/dist/data-pipeline.d.ts +24 -10
  17. package/dist/data-pipeline.d.ts.map +1 -1
  18. package/dist/data-pipeline.js +34 -56
  19. package/dist/data-pipeline.js.map +1 -1
  20. package/dist/file-ref-resolve.js +9 -13
  21. package/dist/file-ref-resolve.js.map +1 -1
  22. package/dist/index.d.ts +14 -4
  23. package/dist/index.d.ts.map +1 -1
  24. package/dist/index.js +19 -5
  25. package/dist/index.js.map +1 -1
  26. package/dist/lib/composition.d.ts +152 -0
  27. package/dist/lib/composition.d.ts.map +1 -0
  28. package/dist/lib/composition.js +1120 -0
  29. package/dist/lib/composition.js.map +1 -0
  30. package/dist/lib/index.d.ts +63 -4
  31. package/dist/lib/index.d.ts.map +1 -1
  32. package/dist/lib/index.js +137 -8
  33. package/dist/lib/index.js.map +1 -1
  34. package/dist/lib/preprocess.d.ts +64 -0
  35. package/dist/lib/preprocess.d.ts.map +1 -0
  36. package/dist/lib/preprocess.js +72 -0
  37. package/dist/lib/preprocess.js.map +1 -0
  38. package/dist/lib/registers.d.ts +132 -0
  39. package/dist/lib/registers.d.ts.map +1 -0
  40. package/dist/lib/registers.js +329 -0
  41. package/dist/lib/registers.js.map +1 -0
  42. package/dist/lib/resolver.d.ts +21 -1
  43. package/dist/lib/resolver.d.ts.map +1 -1
  44. package/dist/lib/resolver.js +41 -18
  45. package/dist/lib/resolver.js.map +1 -1
  46. package/dist/lib/schema-side-table.d.ts +26 -0
  47. package/dist/lib/schema-side-table.d.ts.map +1 -0
  48. package/dist/lib/schema-side-table.js +34 -0
  49. package/dist/lib/schema-side-table.js.map +1 -0
  50. package/dist/lib/schema-table.d.ts +59 -9
  51. package/dist/lib/schema-table.d.ts.map +1 -1
  52. package/dist/lib/schema-table.js +158 -22
  53. package/dist/lib/schema-table.js.map +1 -1
  54. package/dist/lib/slot-markers.d.ts +38 -0
  55. package/dist/lib/slot-markers.d.ts.map +1 -0
  56. package/dist/lib/slot-markers.js +105 -0
  57. package/dist/lib/slot-markers.js.map +1 -0
  58. package/dist/lib/slots.d.ts +99 -0
  59. package/dist/lib/slots.d.ts.map +1 -0
  60. package/dist/lib/slots.js +448 -0
  61. package/dist/lib/slots.js.map +1 -0
  62. package/dist/plugins.d.ts +3 -0
  63. package/dist/plugins.d.ts.map +1 -1
  64. package/dist/plugins.js +53 -4
  65. package/dist/plugins.js.map +1 -1
  66. package/dist/reference.d.ts +18 -0
  67. package/dist/reference.d.ts.map +1 -1
  68. package/dist/reference.js +34 -1
  69. package/dist/reference.js.map +1 -1
  70. package/dist/registers-pipeline.d.ts +51 -0
  71. package/dist/registers-pipeline.d.ts.map +1 -0
  72. package/dist/registers-pipeline.js +224 -0
  73. package/dist/registers-pipeline.js.map +1 -0
  74. package/dist/schema-row.d.ts +5 -0
  75. package/dist/schema-row.d.ts.map +1 -1
  76. package/dist/schema-row.js +1 -0
  77. package/dist/schema-row.js.map +1 -1
  78. package/dist/tags/data.d.ts +2 -2
  79. package/dist/tags/data.d.ts.map +1 -1
  80. package/dist/tags/data.js +6 -4
  81. package/dist/tags/data.js.map +1 -1
  82. package/dist/tags/figure.d.ts +10 -4
  83. package/dist/tags/figure.d.ts.map +1 -1
  84. package/dist/tags/figure.js +65 -20
  85. package/dist/tags/figure.js.map +1 -1
  86. package/dist/tags/include.d.ts +51 -7
  87. package/dist/tags/include.d.ts.map +1 -1
  88. package/dist/tags/include.js +216 -7
  89. package/dist/tags/include.js.map +1 -1
  90. package/dist/tags/sandbox.d.ts.map +1 -1
  91. package/dist/tags/sandbox.js +13 -3
  92. package/dist/tags/sandbox.js.map +1 -1
  93. package/dist/tags/snippet.d.ts +9 -10
  94. package/dist/tags/snippet.d.ts.map +1 -1
  95. package/dist/tags/snippet.js +213 -10
  96. package/dist/tags/snippet.js.map +1 -1
  97. package/dist/universal-attributes.d.ts +1 -1
  98. package/package.json +3 -3
  99. package/dist/include-pipeline.d.ts +0 -52
  100. package/dist/include-pipeline.d.ts.map +0 -1
  101. package/dist/include-pipeline.js +0 -206
  102. package/dist/include-pipeline.js.map +0 -1
  103. package/dist/snippet-pipeline.d.ts +0 -44
  104. package/dist/snippet-pipeline.d.ts.map +0 -1
  105. package/dist/snippet-pipeline.js +0 -307
  106. package/dist/snippet-pipeline.js.map +0 -1
@@ -87,6 +87,17 @@ export function validateSchemaTable(table, declaredAttributes = []) {
87
87
  });
88
88
  }
89
89
  }
90
+ if (table.byField !== undefined) {
91
+ if (table.by !== undefined) {
92
+ issues.push({
93
+ path: 'byField',
94
+ message: '`by` and `byField` are exclusive: a row is selected on one axis.',
95
+ });
96
+ }
97
+ if (!table.rows || Object.keys(table.rows).length === 0) {
98
+ issues.push({ path: 'rows', message: '`byField` needs `rows` to select from.' });
99
+ }
100
+ }
90
101
  const checkEntities = (rows, path) => {
91
102
  for (const [name, row] of Object.entries(rows ?? {})) {
92
103
  if (!row.property) {
@@ -111,11 +122,19 @@ export function validateSchemaTable(table, declaredAttributes = []) {
111
122
  checkRow(table.fallback, 'fallback.');
112
123
  return issues;
113
124
  }
114
- /** Pick the row a set of attributes selects. */
115
- export function selectRow(table, attrs) {
116
- if (!table.by)
125
+ /**
126
+ * Pick the row a set of attributes — or, for a `byField` table, the rune's
127
+ * field bag — selects. With no bag (the static views: `inspect`, `contracts`,
128
+ * `reference`) a `byField` table describes its fallback row.
129
+ */
130
+ export function selectRow(table, attrs, fields = {}) {
131
+ const value = table.by !== undefined
132
+ ? attrs[table.by]
133
+ : table.byField !== undefined
134
+ ? fields[table.byField]
135
+ : undefined;
136
+ if (table.by === undefined && table.byField === undefined)
117
137
  return table;
118
- const value = attrs[table.by];
119
138
  const row = value === undefined ? undefined : table.rows?.[String(value)];
120
139
  return row ?? table.fallback ?? table;
121
140
  }
@@ -130,40 +149,44 @@ const isTag = (n) => Markdoc.Tag.isTag(n);
130
149
  /**
131
150
  * Every node bearing a name, in document order, within one rune.
132
151
  *
133
- * **The search stops at another rune's node.** ADR-008's flat namespace is
134
- * unique *per rune*, so the same name means different things in a parent and in
135
- * a child it contains: `character` names its title span `name`, and so does
136
- * every `character-section` inside it. Reaching across that boundary published a
137
- * character whose `name` was the character plus each of its section headings.
152
+ * **Past another rune's node, only nodes marked for this rune count.** ADR-008's
153
+ * flat namespace is unique *per rune*, so the same name means different things
154
+ * in a parent and in a child it contains: `character` names its title span
155
+ * `name`, and so does every `character-section` inside it. Reaching across that
156
+ * boundary published a character whose `name` was the character plus each of
157
+ * its section headings. So the walk keeps descending in foreign mode, where just
158
+ * the nodes placed on this rune's behalf (`OWNER_ATTR`) are admitted — the same
159
+ * rule `findChildren` applies (SPEC-146 Problem 2).
138
160
  */
139
161
  export function findAllByName(root, name) {
140
162
  const kebab = name.replace(/([a-z0-9])([A-Z])/g, '$1-$2').toLowerCase();
163
+ const owner = isTag(root) ? root.attributes?.['data-rune'] : undefined;
141
164
  const out = [];
142
- const visit = (node, top) => {
165
+ const visit = (node, top, foreign) => {
143
166
  if (Array.isArray(node)) {
144
167
  for (const c of node)
145
- visit(c, top);
168
+ visit(c, top, foreign);
146
169
  return;
147
170
  }
148
171
  if (!isTag(node))
149
172
  return;
150
173
  const attrs = node.attributes ?? {};
151
- if (!top && attrs['data-rune'] !== undefined)
152
- return;
174
+ // A nested rune's own node is already on its side of the boundary.
175
+ const inner = foreign || (!top && attrs['data-rune'] !== undefined);
153
176
  const named = attrs['data-name'] === name ||
154
177
  attrs['data-name'] === kebab ||
155
178
  attrs['data-field'] === name ||
156
179
  attrs['data-field'] === kebab;
157
- if (named) {
180
+ if ((named && isMine(attrs, owner, inner)) || isSlotted(attrs, owner, name, kebab)) {
158
181
  out.push(node);
159
182
  // A name marks one node, not a subtree: descending into a match would
160
183
  // find nothing new and risks a nested re-use of the same name.
161
184
  return;
162
185
  }
163
186
  for (const c of node.children ?? [])
164
- visit(c, false);
187
+ visit(c, false, inner);
165
188
  };
166
- visit(root, true);
189
+ visit(root, true, false);
167
190
  return out;
168
191
  }
169
192
  /** The first node bearing a name, within one rune — see `findAllByName`. */
@@ -354,8 +377,8 @@ export function applySchemaTable(output, table, attrs) {
354
377
  if (attrs.schema === 'none')
355
378
  return output;
356
379
  const root = output;
357
- const row = selectRow(table, attrs);
358
380
  const bag = readBag(root);
381
+ const row = selectRow(table, attrs, bag);
359
382
  applyRow(root, row, bag);
360
383
  // Children are retyped by the parent, never by themselves (D9). Markdoc
361
384
  // transforms bottom-up, so by now the children carry their own `typeof` and
@@ -403,25 +426,138 @@ export function applySchemaTable(output, table, attrs) {
403
426
  * the rest as authored child tags — `playlist` does exactly that, with markdown
404
427
  * list items beside `{% track %}` children. Both populations belong to one
405
428
  * collection and must take one row, or half of it would go unmapped.
429
+ *
430
+ * **Matching on `data-rune` is what makes the boundary necessary** (SPEC-146
431
+ * Problem 1). A child key that is also a rune name — `track`, `step`, `tier`,
432
+ * `breadcrumb-item` — would otherwise match that rune anywhere below, including
433
+ * inside a rune the *author* nested, which the row was never about: a `{% track %}`
434
+ * in a `{% hint %}` inside a playlist was published as one of the playlist's
435
+ * tracks. So the walk crosses another rune's boundary only in foreign mode, where
436
+ * just the nodes placed on this rune's behalf (`OWNER_ATTR`) count. A child the
437
+ * row matches is itself a boundary: its own content is its own.
406
438
  */
407
439
  function findChildren(root, name) {
440
+ const owner = root.attributes?.['data-rune'];
408
441
  const out = [];
409
- const visit = (node) => {
442
+ const visit = (node, foreign) => {
410
443
  if (Array.isArray(node)) {
411
444
  for (const c of node)
412
- visit(c);
445
+ visit(c, foreign);
413
446
  return;
414
447
  }
415
448
  if (!isTag(node))
416
449
  return;
417
450
  const attrs = node.attributes ?? {};
418
- if (attrs['data-rune'] === name || attrs['data-name'] === name || attrs['data-field'] === name)
451
+ const named = attrs['data-rune'] === name || attrs['data-name'] === name || attrs['data-field'] === name;
452
+ if ((named && isMine(attrs, owner, foreign)) || isSlotted(attrs, owner, name, name)) {
419
453
  out.push(node);
454
+ }
455
+ const crossing = attrs['data-rune'] !== undefined;
420
456
  for (const c of node.children ?? [])
421
- visit(c);
457
+ visit(c, foreign || crossing);
422
458
  };
423
459
  for (const c of root.children ?? [])
424
- visit(c);
460
+ visit(c, false);
425
461
  return out;
426
462
  }
463
+ /**
464
+ * Does a node belong to the rune resolving it? SPEC-146 D1/D2 — ownership is
465
+ * declared on the node rather than inferred from ancestry.
466
+ *
467
+ * Inside the rune's own nodes a name needs no marker, but a node marked for
468
+ * another rune is that rune's. Past another rune's boundary only a node marked
469
+ * for this rune counts: whatever else is down there belongs to the rune whose
470
+ * boundary it is.
471
+ *
472
+ * That holds for a node marked with `OWNER_ATTR` alone. A node composition
473
+ * placed carries `SLOT_ATTR` as well, and splits the question by attribute —
474
+ * see the first branch.
475
+ */
476
+ function isMine(attrs, owner, foreign) {
477
+ const marked = attrs[OWNER_ATTR];
478
+ // SPEC-145 D10a — a node carrying both markers was placed by composition,
479
+ // and its two names are two namespaces. Its `data-name` / `data-field` / own
480
+ // `data-rune` are the primitive's, so they count among the primitive's own
481
+ // nodes whoever owns the node; the owner reaches it by `SLOT_ATTR` only
482
+ // (`isSlotted`), never by a primitive's name. Without this a `figure` holding
483
+ // an image placed for `character` lost its own `contentUrl`. The same rule
484
+ // read from the owner's side: an author's `{% figure %}` placed straight into
485
+ // the composed rune's slot is not matched by the owner's `figure` row.
486
+ if (marked !== undefined && attrs[SLOT_ATTR] !== undefined) {
487
+ return marked !== owner && !foreign;
488
+ }
489
+ if (foreign)
490
+ return owner !== undefined && marked === owner;
491
+ return marked === undefined || marked === owner;
492
+ }
493
+ /**
494
+ * Is a node placed on this rune's behalf under the slot name being resolved?
495
+ * SPEC-145 D10a step 3 — the extension to `isMine`, not a replacement for it.
496
+ *
497
+ * A placed node sits inside a primitive, and the primitive may name the same
498
+ * node for its own styling: one attribute cannot carry both names, so the
499
+ * composing rune's name travels as `SLOT_ATTR` and the primitive's `data-name`
500
+ * is left alone. A slot name counts only beside a matching `OWNER_ATTR` —
501
+ * `data-slot` survives into the output (D10c), so on its own it says what a
502
+ * node is called, not whose name it is — and then it counts on either side of
503
+ * a boundary.
504
+ */
505
+ function isSlotted(attrs, owner, name, kebab) {
506
+ const slot = attrs[SLOT_ATTR];
507
+ if (slot === undefined || owner === undefined || attrs[OWNER_ATTR] !== owner)
508
+ return false;
509
+ return slot === name || slot === kebab;
510
+ }
511
+ /**
512
+ * Marks a node placed inside another rune on behalf of the rune named — the
513
+ * value is that rune's `data-rune`. SPEC-146 D1.
514
+ *
515
+ * Nothing sets it yet: no rune places its content inside another rune until
516
+ * SPEC-145's composition does. What it changes today is what an *unmarked* node
517
+ * past a boundary means — not this rune's — which is the fix for Problem 1.
518
+ */
519
+ export const OWNER_ATTR = 'data-owner';
520
+ /**
521
+ * What the owning rune calls a node it placed — SPEC-145 D10a. Set together
522
+ * with `OWNER_ATTR` and read only together with it.
523
+ *
524
+ * Unlike the owner mark it is not bookkeeping: `releaseOwnedNodes` leaves it in
525
+ * place, because a composed rune's slot names are its published names for its
526
+ * parts (D10c) — `[data-rune="character"] [data-slot="description"]` is a
527
+ * theme's hook, and the composed rune's contract lists them.
528
+ */
529
+ export const SLOT_ATTR = 'data-slot';
530
+ /**
531
+ * Strip the ownership marks a rune has finished resolving. SPEC-146 D4: the
532
+ * marker answers a resolution question during the transform, so it is
533
+ * bookkeeping, not output, and nothing downstream reads it.
534
+ *
535
+ * Runs once the owning rune's table has been applied. Markdoc transforms
536
+ * bottom-up, so no rune that could still need the mark runs later.
537
+ *
538
+ * `SLOT_ATTR` on the same node stays: it is output, not bookkeeping (SPEC-145
539
+ * D10a step 4, D10c).
540
+ */
541
+ export function releaseOwnedNodes(output) {
542
+ if (!isTag(output))
543
+ return;
544
+ const owner = output.attributes?.['data-rune'];
545
+ if (owner === undefined)
546
+ return;
547
+ const visit = (node) => {
548
+ if (Array.isArray(node)) {
549
+ for (const c of node)
550
+ visit(c);
551
+ return;
552
+ }
553
+ if (!isTag(node))
554
+ return;
555
+ const attrs = node.attributes;
556
+ if (attrs?.[OWNER_ATTR] === owner)
557
+ delete attrs[OWNER_ATTR];
558
+ for (const c of node.children ?? [])
559
+ visit(c);
560
+ };
561
+ visit(output);
562
+ }
427
563
  //# sourceMappingURL=schema-table.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"schema-table.js","sourceRoot":"","sources":["../../src/lib/schema-table.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"schema-table.js","sourceRoot":"","sources":["../../src/lib/schema-table.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,38 @@
1
+ import type { Schema } from '@markdoc/markdoc';
2
+ /**
3
+ * Declare the two slot markers on every schema in a map — SPEC-145 D10a step 2.
4
+ *
5
+ * ## Why every schema has to declare them
6
+ *
7
+ * Composition sets `OWNER_ATTR` and `SLOT_ATTR` on the AST, before
8
+ * `Markdoc.transform`, and Markdoc's transform keeps only the attributes a
9
+ * schema declares. A marker on a paragraph whose schema does not name it is
10
+ * gone from the rendered `<p>` with no trace, and the composed rune's schema
11
+ * row then resolves nothing — which looks exactly like optional content left
12
+ * empty.
13
+ *
14
+ * ## Why here, once, rather than in each rune
15
+ *
16
+ * Declared per rune, a new rune would be uncovered until someone remembered.
17
+ * Declared where the Markdoc config is assembled — core nodes plus every
18
+ * plugin's runes — every schema is covered, including ones written after this.
19
+ * And no rune's own declaration carries them, so the authoring surfaces that
20
+ * read a rune's schema (`reference`, the editor, the AI prompt) never offer an
21
+ * author two attributes only composition may set.
22
+ *
23
+ * Copies, never mutates: the input maps are module-level exports shared by
24
+ * every caller, and `Markdoc.nodes` belongs to Markdoc. Each copy records the
25
+ * schema it came from, so the side tables keyed by schema (`SchemaSideTable`)
26
+ * still answer for it. The copy is memoised on the input map, so a site
27
+ * assembling the same config for every page builds it once.
28
+ */
29
+ export declare function declareSlotMarkers<T extends Record<string, Schema>>(schemas: T): T;
30
+ /**
31
+ * The node map a page is transformed against, every node declaring the markers.
32
+ *
33
+ * Includes Markdoc's defaults for the nodes `nodes` does not override —
34
+ * `blockquote`, `hr`, `code`, `s`, `inline` — because Markdoc falls back to its
35
+ * own schema for those, and its own schema declares nothing.
36
+ */
37
+ export declare function declareSlotMarkersOnNodes<T extends Record<string, Schema>>(nodes: T): T;
38
+ //# sourceMappingURL=slot-markers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"slot-markers.d.ts","sourceRoot":"","sources":["../../src/lib/slot-markers.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAI/C;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,wBAAgB,kBAAkB,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,OAAO,EAAE,CAAC,GAAG,CAAC,CASlF;AAED;;;;;;GAMG;AACH,wBAAgB,yBAAyB,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,CAAC,CAMvF"}
@@ -0,0 +1,105 @@
1
+ import Markdoc from '@markdoc/markdoc';
2
+ import { recordSchemaOrigin } from './schema-side-table.js';
3
+ import { OWNER_ATTR, SLOT_ATTR } from './schema-table.js';
4
+ /**
5
+ * Declare the two slot markers on every schema in a map — SPEC-145 D10a step 2.
6
+ *
7
+ * ## Why every schema has to declare them
8
+ *
9
+ * Composition sets `OWNER_ATTR` and `SLOT_ATTR` on the AST, before
10
+ * `Markdoc.transform`, and Markdoc's transform keeps only the attributes a
11
+ * schema declares. A marker on a paragraph whose schema does not name it is
12
+ * gone from the rendered `<p>` with no trace, and the composed rune's schema
13
+ * row then resolves nothing — which looks exactly like optional content left
14
+ * empty.
15
+ *
16
+ * ## Why here, once, rather than in each rune
17
+ *
18
+ * Declared per rune, a new rune would be uncovered until someone remembered.
19
+ * Declared where the Markdoc config is assembled — core nodes plus every
20
+ * plugin's runes — every schema is covered, including ones written after this.
21
+ * And no rune's own declaration carries them, so the authoring surfaces that
22
+ * read a rune's schema (`reference`, the editor, the AI prompt) never offer an
23
+ * author two attributes only composition may set.
24
+ *
25
+ * Copies, never mutates: the input maps are module-level exports shared by
26
+ * every caller, and `Markdoc.nodes` belongs to Markdoc. Each copy records the
27
+ * schema it came from, so the side tables keyed by schema (`SchemaSideTable`)
28
+ * still answer for it. The copy is memoised on the input map, so a site
29
+ * assembling the same config for every page builds it once.
30
+ */
31
+ export function declareSlotMarkers(schemas) {
32
+ const cached = assembled.get(schemas);
33
+ if (cached)
34
+ return cached;
35
+ const out = {};
36
+ for (const [name, schema] of Object.entries(schemas)) {
37
+ out[name] = schema ? withMarkers(schema) : schema;
38
+ }
39
+ assembled.set(schemas, out);
40
+ return out;
41
+ }
42
+ /**
43
+ * The node map a page is transformed against, every node declaring the markers.
44
+ *
45
+ * Includes Markdoc's defaults for the nodes `nodes` does not override —
46
+ * `blockquote`, `hr`, `code`, `s`, `inline` — because Markdoc falls back to its
47
+ * own schema for those, and its own schema declares nothing.
48
+ */
49
+ export function declareSlotMarkersOnNodes(nodes) {
50
+ const cached = assembledNodes.get(nodes);
51
+ if (cached)
52
+ return cached;
53
+ const out = declareSlotMarkers({ ...Markdoc.nodes, ...nodes });
54
+ assembledNodes.set(nodes, out);
55
+ return out;
56
+ }
57
+ const assembled = new WeakMap();
58
+ const assembledNodes = new WeakMap();
59
+ function withMarkers(schema) {
60
+ if (schema.attributes?.[OWNER_ATTR] && schema.attributes?.[SLOT_ATTR])
61
+ return schema;
62
+ // Keep the prototype: a schema need not be a plain literal, and spreading a
63
+ // class instance would drop its `transform`.
64
+ const copy = Object.create(Object.getPrototypeOf(schema));
65
+ Object.assign(copy, schema);
66
+ copy.attributes = {
67
+ ...(schema.attributes ?? {}),
68
+ [OWNER_ATTR]: { type: String },
69
+ [SLOT_ATTR]: { type: String },
70
+ };
71
+ // Declaring the markers keeps them only where Markdoc renders attributes
72
+ // itself. A schema with its own `transform` builds its root from scratch —
73
+ // every rune does — so a composition placing `{% hint %}` would lose them on
74
+ // the hint's root. Carry them across, after the rune has resolved its own
75
+ // names, so its own namespace never sees them (SPEC-145 D10a).
76
+ const own = schema.transform;
77
+ if (own) {
78
+ copy.transform = function (node, config) {
79
+ const out = own.call(this, node, config);
80
+ carryMarkers(node.attributes, out);
81
+ return out;
82
+ };
83
+ }
84
+ recordSchemaOrigin(copy, schema);
85
+ return copy;
86
+ }
87
+ /** Set a placed node's markers on the top-level tags its transform produced,
88
+ * where the transform did not already carry them. */
89
+ function carryMarkers(from, out) {
90
+ const owner = from?.[OWNER_ATTR];
91
+ const slot = from?.[SLOT_ATTR];
92
+ if (owner === undefined && slot === undefined)
93
+ return;
94
+ for (const tag of Array.isArray(out) ? out : [out]) {
95
+ if (!Markdoc.Tag.isTag(tag))
96
+ continue;
97
+ if (owner !== undefined && tag.attributes[OWNER_ATTR] === undefined) {
98
+ tag.attributes[OWNER_ATTR] = owner;
99
+ }
100
+ if (slot !== undefined && tag.attributes[SLOT_ATTR] === undefined) {
101
+ tag.attributes[SLOT_ATTR] = slot;
102
+ }
103
+ }
104
+ }
105
+ //# sourceMappingURL=slot-markers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"slot-markers.js","sourceRoot":"","sources":["../../src/lib/slot-markers.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,99 @@
1
+ import type { Config, Node, RenderableTreeNodes } from '@markdoc/markdoc';
2
+ import type { ContentModel, ResolvedContent } from '@refrakt-md/types';
3
+ import type { FieldMetaSpec } from './field-metas.js';
4
+ /** A slot is one node, or a region of nodes inside a boundary element. */
5
+ export type SlotKind = 'value' | 'region';
6
+ /** The closed vocabulary of section roles — mirrors `SectionRole`. */
7
+ declare const SECTION_ROLES: readonly ["header", "preamble", "title", "description", "body", "footer", "media"];
8
+ export type SlotRole = (typeof SECTION_ROLES)[number];
9
+ export interface SlotDeclaration {
10
+ /**
11
+ * The resolved content field the slot comes from, or `attrs.<name>` for a
12
+ * value read from an attribute. Defaults to the slot's own name, so a slot
13
+ * named after its field needs nothing beyond its kind.
14
+ */
15
+ from?: string;
16
+ /**
17
+ * `value` — the field is already one node, and that node carries the name.
18
+ * An attribute value is rendered as text inside `el` (default `span`).
19
+ * `region` — the field's nodes are wrapped in one boundary element `el`
20
+ * (default `div`), which carries the name; the nodes inside carry none.
21
+ */
22
+ as: SlotKind;
23
+ /** The element: a region's boundary, or an attribute value's node. */
24
+ el?: string;
25
+ /** Emit nothing when the field resolves to nothing. */
26
+ omitWhenEmpty?: boolean;
27
+ /**
28
+ * The slot's section role (`sections` in the rune's config). Defaults to the
29
+ * slot name when that is a role, else to the source field's name when that
30
+ * is one — so `title`, `body` and `description → blurb` need nothing here.
31
+ */
32
+ role?: SlotRole;
33
+ }
34
+ /** A slot entry: its kind alone, or the full declaration. */
35
+ export type SlotEntry = SlotKind | SlotDeclaration;
36
+ export interface EmitsDeclaration {
37
+ /** The rune's kebab-case name — the renderable's `data-rune`. */
38
+ rune: string;
39
+ /** The root element. */
40
+ tag: string;
41
+ /** Structural property name, set as `data-field` on the root. */
42
+ property?: string;
43
+ /** Attributes and file variables rendered as property metas — `fieldMetas`' data form. */
44
+ properties?: FieldMetaSpec;
45
+ /** The named content slots, emitted in declaration order. */
46
+ slots: Record<string, SlotEntry>;
47
+ }
48
+ interface NormalizedSlot {
49
+ name: string;
50
+ kind: SlotKind;
51
+ /** Attribute name, when the slot reads an attribute. */
52
+ attr?: string;
53
+ /** Content field name, when the slot reads a field. */
54
+ field?: string;
55
+ el?: string;
56
+ omitWhenEmpty: boolean;
57
+ role?: SlotRole;
58
+ }
59
+ /**
60
+ * Check a declaration against the rune's content model and normalise it.
61
+ * Throws, naming the rune and the offending slot, rather than applying any part
62
+ * of a declaration it cannot honour.
63
+ */
64
+ export declare function validateEmits(emits: EmitsDeclaration, contentModel: ContentModel | ((attrs: Record<string, any>) => ContentModel)): NormalizedSlot[];
65
+ /**
66
+ * The `sections` join table a declaration implies — slot name → section role.
67
+ * A slot's role is the one it states, else its own name when that is a role,
68
+ * else its source field's name when that is one.
69
+ */
70
+ export declare function slotSections(emits: EmitsDeclaration): Record<string, SlotRole>;
71
+ /**
72
+ * Build the transform a declaration describes. Called once, when the schema is
73
+ * constructed; the closure it returns has the signature of a hand-written
74
+ * transform and is called where one would be.
75
+ */
76
+ export declare function makeSlotTransform(emits: EmitsDeclaration, contentModel: ContentModel | ((attrs: Record<string, any>) => ContentModel)): (resolved: ResolvedContent, attrs: Record<string, any>, config: Config, node: Node) => RenderableTreeNodes;
77
+ /** One slot as the review surfaces (`inspect`, `reference`) print it. */
78
+ export interface DescribedSlot {
79
+ name: string;
80
+ /** `attrs.<name>` or a content field. */
81
+ from: string;
82
+ as: SlotKind;
83
+ /** The element the slot's node is — a region's boundary, or an attribute value's node. */
84
+ el?: string;
85
+ omitWhenEmpty: boolean;
86
+ role?: SlotRole;
87
+ /** For a `sections` field: how sections arrive (D5), read from the content model. */
88
+ sections?: 'entries' | 'child runes';
89
+ }
90
+ /**
91
+ * A declaration with every default made explicit — what the generated transform
92
+ * will actually do, which is the thing a reviewer needs and the declaration's
93
+ * terseness hides.
94
+ */
95
+ export declare function describeSlots(emits: EmitsDeclaration, contentModel?: ContentModel | ((attrs: Record<string, any>) => ContentModel)): DescribedSlot[];
96
+ /** One line per slot, for the text surfaces. */
97
+ export declare function formatSlotLine(slot: DescribedSlot): string;
98
+ export {};
99
+ //# sourceMappingURL=slots.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"slots.d.ts","sourceRoot":"","sources":["../../src/lib/slots.ts"],"names":[],"mappings":"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"}