@refrakt-md/runes 0.15.0 → 0.16.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 (108) hide show
  1. package/dist/aggregate-resolve.d.ts +4 -0
  2. package/dist/aggregate-resolve.d.ts.map +1 -0
  3. package/dist/aggregate-resolve.js +209 -0
  4. package/dist/aggregate-resolve.js.map +1 -0
  5. package/dist/collection-helpers.d.ts +101 -0
  6. package/dist/collection-helpers.d.ts.map +1 -0
  7. package/dist/collection-helpers.js +206 -0
  8. package/dist/collection-helpers.js.map +1 -0
  9. package/dist/collection-resolve.d.ts +5 -0
  10. package/dist/collection-resolve.d.ts.map +1 -0
  11. package/dist/collection-resolve.js +209 -0
  12. package/dist/collection-resolve.js.map +1 -0
  13. package/dist/config.d.ts +13 -0
  14. package/dist/config.d.ts.map +1 -1
  15. package/dist/config.js +87 -5
  16. package/dist/config.js.map +1 -1
  17. package/dist/deferred-body.d.ts +19 -0
  18. package/dist/deferred-body.d.ts.map +1 -0
  19. package/dist/deferred-body.js +70 -0
  20. package/dist/deferred-body.js.map +1 -0
  21. package/dist/drawer-pipeline.d.ts +72 -1
  22. package/dist/drawer-pipeline.d.ts.map +1 -1
  23. package/dist/drawer-pipeline.js +242 -1
  24. package/dist/drawer-pipeline.js.map +1 -1
  25. package/dist/expand-pipeline.js +25 -16
  26. package/dist/expand-pipeline.js.map +1 -1
  27. package/dist/field-match.d.ts +43 -0
  28. package/dist/field-match.d.ts.map +1 -0
  29. package/dist/field-match.js +121 -0
  30. package/dist/field-match.js.map +1 -0
  31. package/dist/file-ref-resolve.d.ts +22 -0
  32. package/dist/file-ref-resolve.d.ts.map +1 -0
  33. package/dist/file-ref-resolve.js +233 -0
  34. package/dist/file-ref-resolve.js.map +1 -0
  35. package/dist/functions.d.ts +36 -0
  36. package/dist/functions.d.ts.map +1 -0
  37. package/dist/functions.js +74 -0
  38. package/dist/functions.js.map +1 -0
  39. package/dist/index.d.ts +33 -1
  40. package/dist/index.d.ts.map +1 -1
  41. package/dist/index.js +80 -1
  42. package/dist/index.js.map +1 -1
  43. package/dist/lib/index.d.ts +6 -0
  44. package/dist/lib/index.d.ts.map +1 -1
  45. package/dist/lib/index.js +9 -0
  46. package/dist/lib/index.js.map +1 -1
  47. package/dist/nodes.d.ts.map +1 -1
  48. package/dist/nodes.js +68 -9
  49. package/dist/nodes.js.map +1 -1
  50. package/dist/outline-scope.d.ts +17 -0
  51. package/dist/outline-scope.d.ts.map +1 -1
  52. package/dist/outline-scope.js +59 -0
  53. package/dist/outline-scope.js.map +1 -1
  54. package/dist/relationships-resolve.d.ts +4 -0
  55. package/dist/relationships-resolve.d.ts.map +1 -0
  56. package/dist/relationships-resolve.js +180 -0
  57. package/dist/relationships-resolve.js.map +1 -0
  58. package/dist/snippet-pipeline.d.ts +7 -5
  59. package/dist/snippet-pipeline.d.ts.map +1 -1
  60. package/dist/snippet-pipeline.js +32 -13
  61. package/dist/snippet-pipeline.js.map +1 -1
  62. package/dist/tags/aggregate.d.ts +19 -0
  63. package/dist/tags/aggregate.d.ts.map +1 -0
  64. package/dist/tags/aggregate.js +59 -0
  65. package/dist/tags/aggregate.js.map +1 -0
  66. package/dist/tags/card.d.ts +25 -0
  67. package/dist/tags/card.d.ts.map +1 -0
  68. package/dist/tags/card.js +138 -0
  69. package/dist/tags/card.js.map +1 -0
  70. package/dist/tags/codegroup.d.ts.map +1 -1
  71. package/dist/tags/codegroup.js +37 -1
  72. package/dist/tags/codegroup.js.map +1 -1
  73. package/dist/tags/collection.d.ts +10 -0
  74. package/dist/tags/collection.d.ts.map +1 -0
  75. package/dist/tags/collection.js +54 -0
  76. package/dist/tags/collection.js.map +1 -0
  77. package/dist/tags/conversation.d.ts.map +1 -1
  78. package/dist/tags/conversation.js +26 -6
  79. package/dist/tags/conversation.js.map +1 -1
  80. package/dist/tags/diff.d.ts.map +1 -1
  81. package/dist/tags/diff.js +85 -18
  82. package/dist/tags/diff.js.map +1 -1
  83. package/dist/tags/drawer.d.ts.map +1 -1
  84. package/dist/tags/drawer.js +32 -2
  85. package/dist/tags/drawer.js.map +1 -1
  86. package/dist/tags/file-ref.d.ts +21 -0
  87. package/dist/tags/file-ref.d.ts.map +1 -0
  88. package/dist/tags/file-ref.js +88 -0
  89. package/dist/tags/file-ref.js.map +1 -0
  90. package/dist/tags/progress.d.ts +9 -0
  91. package/dist/tags/progress.d.ts.map +1 -0
  92. package/dist/tags/progress.js +96 -0
  93. package/dist/tags/progress.js.map +1 -0
  94. package/dist/tags/relationships.d.ts +12 -0
  95. package/dist/tags/relationships.d.ts.map +1 -0
  96. package/dist/tags/relationships.js +62 -0
  97. package/dist/tags/relationships.js.map +1 -0
  98. package/dist/tags/snippet.d.ts.map +1 -1
  99. package/dist/tags/snippet.js +10 -0
  100. package/dist/tags/snippet.js.map +1 -1
  101. package/dist/tags/xref.d.ts.map +1 -1
  102. package/dist/tags/xref.js +9 -0
  103. package/dist/tags/xref.js.map +1 -1
  104. package/dist/xref-preview-resolve.d.ts +35 -0
  105. package/dist/xref-preview-resolve.d.ts.map +1 -0
  106. package/dist/xref-preview-resolve.js +188 -0
  107. package/dist/xref-preview-resolve.js.map +1 -0
  108. package/package.json +3 -3
@@ -13,6 +13,27 @@ const languageNames = {
13
13
  function prettifyLanguage(lang) {
14
14
  return languageNames[lang] || lang.charAt(0).toUpperCase() + lang.slice(1);
15
15
  }
16
+ /** Extract the trailing filename from a project-root-relative path.
17
+ * Falls back to the trimmed input when no separator is present. */
18
+ function basename(path) {
19
+ if (!path)
20
+ return '';
21
+ const trimmed = path.endsWith('/') ? path.slice(0, -1) : path;
22
+ const slash = trimmed.lastIndexOf('/');
23
+ return slash >= 0 ? trimmed.slice(slash + 1) : trimmed;
24
+ }
25
+ /** Derive a tab label from a fence's `source` (+ optional `lines`) annotation:
26
+ * `theme.ts` standalone, or `theme.ts:74-125` when a range is specified.
27
+ * Returns empty string when no `source` is set so callers can fall through
28
+ * to the next step in the label-resolution chain. */
29
+ function labelFromSource(source, lines) {
30
+ if (!source)
31
+ return '';
32
+ const name = basename(source);
33
+ if (!name)
34
+ return '';
35
+ return lines ? `${name}:${lines}` : name;
36
+ }
16
37
  const overflowValues = ['scroll', 'wrap', 'hide'];
17
38
  export const codegroup = createContentModelSchema({
18
39
  attributes: {
@@ -57,7 +78,22 @@ export const codegroup = createContentModelSchema({
57
78
  const panelItems = [];
58
79
  for (const child of panels) {
59
80
  const lang = child.attributes.language || 'shell';
60
- const label = customLabels[tabItems.length] || prettifyLanguage(lang);
81
+ // Label precedence (WORK-304):
82
+ // 1. Group-level `labels=` positional override
83
+ // 2. Per-fence `label` annotation (` ```ts {% label="X" %} `)
84
+ // 3. Derived from fence `source` annotation (basename, with
85
+ // `:lines` suffix when set) — populated automatically when
86
+ // the panel is `{% snippet %}`-derived, and authorable on
87
+ // hand-written fences for the same effect
88
+ // 4. Prettified language name (today's default)
89
+ const fenceLabelAttr = typeof child.attributes.label === 'string'
90
+ ? child.attributes.label
91
+ : '';
92
+ const sourceLabel = labelFromSource(typeof child.attributes.source === 'string' ? child.attributes.source : undefined, typeof child.attributes.lines === 'string' ? child.attributes.lines : undefined);
93
+ const label = customLabels[tabItems.length]
94
+ || fenceLabelAttr
95
+ || sourceLabel
96
+ || prettifyLanguage(lang);
61
97
  const nameSpan = new Tag('span', {}, [label]);
62
98
  tabItems.push(new Tag('button', { 'data-name': 'tab', role: 'tab' }, [nameSpan]));
63
99
  const code = Markdoc.transform(child, config);
@@ -1 +1 @@
1
- {"version":3,"file":"codegroup.js","sourceRoot":"","sources":["../../src/tags/codegroup.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"codegroup.js","sourceRoot":"","sources":["../../src/tags/codegroup.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ import Markdoc from '@markdoc/markdoc';
2
+ export declare const COLLECTION_SENTINEL = "__collection-sentinel";
3
+ /**
4
+ * `collection` (SPEC-070) — queries the entity registry for many entities and
5
+ * projects them into a layout. Emits a sentinel that the postProcess resolver
6
+ * (`resolveCollections`) fills with real entity data. The body, when present,
7
+ * is a per-entity template captured via the deferBody mechanism (WORK-262).
8
+ */
9
+ export declare const collection: Markdoc.Schema;
10
+ //# sourceMappingURL=collection.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"collection.d.ts","sourceRoot":"","sources":["../../src/tags/collection.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,kBAAkB,CAAC;AAKvC,eAAO,MAAM,mBAAmB,0BAA0B,CAAC;AAE3D;;;;;GAKG;AACH,eAAO,MAAM,UAAU,gBA2CrB,CAAC"}
@@ -0,0 +1,54 @@
1
+ import Markdoc from '@markdoc/markdoc';
2
+ const { Tag } = Markdoc;
3
+ import { createContentModelSchema, createComponentRenderable } from '../lib/index.js';
4
+ import { readDeferredBody } from '../deferred-body.js';
5
+ export const COLLECTION_SENTINEL = '__collection-sentinel';
6
+ /**
7
+ * `collection` (SPEC-070) — queries the entity registry for many entities and
8
+ * projects them into a layout. Emits a sentinel that the postProcess resolver
9
+ * (`resolveCollections`) fills with real entity data. The body, when present,
10
+ * is a per-entity template captured via the deferBody mechanism (WORK-262).
11
+ */
12
+ export const collection = createContentModelSchema({
13
+ attributes: {
14
+ type: { type: String, required: false, default: '', description: 'Entity type(s), comma-separated.' },
15
+ filter: { type: String, required: false, default: '', description: 'field:value clauses (SPEC-070 grammar).' },
16
+ sort: { type: String, required: false, default: '', description: 'Sort field (prefix - for descending).' },
17
+ group: { type: String, required: false, default: '', description: 'Group-by field.' },
18
+ limit: { type: String, required: false, default: '', description: 'Max items.' },
19
+ show: { type: String, required: false, default: '', description: 'Alias for type (entity types to include).' },
20
+ fields: { type: String, required: false, default: '', description: 'Comma-separated data fields to project.' },
21
+ layout: { type: String, required: false, default: 'list', description: 'Arrangement: list (stacked) | grid (multi-column) | table (aligned columns). Item chrome comes from the item — the no-body built-in, or a rune like {% card %} in the body template.' },
22
+ 'group-display': { type: String, required: false, default: 'headings', matches: ['headings', 'accordion'], description: 'How groups are presented when `group` is set: headings (default) or accordion (collapsible native <details> panels, styled like the accordion rune, with a per-group count).' },
23
+ empty: { type: String, required: false, default: '', description: 'Fallback text shown when the query yields nothing (no-body form; body-template form uses a fallback zone). Absent → render nothing.' },
24
+ },
25
+ deferBody: true,
26
+ contentModel: { type: 'sequence', fields: [] },
27
+ transform(_resolved, attrs) {
28
+ const meta = (field, content) => new Tag('meta', { 'data-field': field, content });
29
+ const bodySource = readDeferredBody(attrs) ?? '';
30
+ const metas = [
31
+ meta('collection-type', String(attrs.type ?? attrs.show ?? '')),
32
+ meta('collection-filter', String(attrs.filter ?? '')),
33
+ meta('collection-sort', String(attrs.sort ?? '')),
34
+ meta('collection-group', String(attrs.group ?? '')),
35
+ meta('collection-limit', String(attrs.limit ?? '')),
36
+ meta('collection-fields', String(attrs.fields ?? '')),
37
+ meta('collection-layout', String(attrs.layout ?? 'list')),
38
+ meta('collection-group-display', String(attrs['group-display'] ?? 'headings')),
39
+ meta('collection-empty', String(attrs.empty ?? '')),
40
+ meta(COLLECTION_SENTINEL, 'true'),
41
+ ];
42
+ if (bodySource)
43
+ metas.push(meta('collection-body', bodySource));
44
+ const placeholder = new Tag('div', { 'data-name': 'items' }, []);
45
+ return createComponentRenderable({
46
+ rune: 'collection',
47
+ tag: 'section',
48
+ properties: {},
49
+ refs: { items: placeholder },
50
+ children: [...metas, placeholder],
51
+ });
52
+ },
53
+ });
54
+ //# sourceMappingURL=collection.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"collection.js","sourceRoot":"","sources":["../../src/tags/collection.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"conversation.d.ts","sourceRoot":"","sources":["../../src/tags/conversation.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,kBAAkB,CAAC;AAMvC,eAAO,MAAM,mBAAmB,gBA8B9B,CAAC;AAkDH,eAAO,MAAM,YAAY,gBA2BvB,CAAC"}
1
+ {"version":3,"file":"conversation.d.ts","sourceRoot":"","sources":["../../src/tags/conversation.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,kBAAkB,CAAC;AAMvC,eAAO,MAAM,mBAAmB,gBA8B9B,CAAC;AAwEH,eAAO,MAAM,YAAY,gBA2BvB,CAAC"}
@@ -40,12 +40,21 @@ function convertConversationChildren(nodes, attrs) {
40
40
  if (node.type === 'blockquote') {
41
41
  let speaker = '';
42
42
  const children = [...node.children];
43
+ // Markdoc wraps a paragraph's inline content in an `inline` node, so
44
+ // the first paragraph's *content* is `firstPara.children[0].children`
45
+ // (when an inline wrapper is present) rather than `firstPara.children`
46
+ // directly. Both forms are handled.
47
+ const firstPara = children.length > 0 && children[0].type === 'paragraph'
48
+ ? children[0]
49
+ : null;
50
+ const inlineHost = firstPara && firstPara.children[0]?.type === 'inline'
51
+ ? firstPara.children[0]
52
+ : firstPara;
43
53
  // Try to extract speaker from first paragraph's bold text: **Name:** ...
44
- if (children.length > 0 && children[0].type === 'paragraph') {
45
- const firstPara = children[0];
46
- const firstChild = firstPara.children[0];
47
- if (firstChild && firstChild.type === 'strong') {
48
- const nameText = Array.from(firstChild.walk())
54
+ if (inlineHost) {
55
+ const firstInline = inlineHost.children[0];
56
+ if (firstInline && firstInline.type === 'strong') {
57
+ const nameText = Array.from(firstInline.walk())
49
58
  .filter(n => n.type === 'text')
50
59
  .map(n => n.attributes.content)
51
60
  .join('')
@@ -53,9 +62,20 @@ function convertConversationChildren(nodes, attrs) {
53
62
  speaker = nameText;
54
63
  }
55
64
  }
56
- // Fall back to alternating from speakers list
65
+ // Fall back to alternating from speakers list. Inject a bold
66
+ // `**Name:**` prefix at the start of the first paragraph so the
67
+ // rendering matches the explicit `> **Name**:` form — name reads as
68
+ // bold-inline inside the bubble rather than as a separate label
69
+ // above it.
57
70
  if (!speaker && speakerList.length > 0) {
58
71
  speaker = speakerList[messageIndex % speakerList.length];
72
+ if (inlineHost) {
73
+ const strongTag = new Ast.Node('strong', {}, [
74
+ new Ast.Node('text', { content: `${speaker}:` }, []),
75
+ ]);
76
+ const spaceText = new Ast.Node('text', { content: ' ' }, []);
77
+ inlineHost.children = [strongTag, spaceText, ...inlineHost.children];
78
+ }
59
79
  }
60
80
  const align = messageIndex % 2 === 0 ? 'left' : 'right';
61
81
  converted.push(new Ast.Node('tag', {
@@ -1 +1 @@
1
- {"version":3,"file":"conversation.js","sourceRoot":"","sources":["../../src/tags/conversation.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"conversation.js","sourceRoot":"","sources":["../../src/tags/conversation.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"diff.d.ts","sourceRoot":"","sources":["../../src/tags/diff.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,kBAAkB,CAAC;AAyJvC,eAAO,MAAM,IAAI,gBAoDf,CAAC"}
1
+ {"version":3,"file":"diff.d.ts","sourceRoot":"","sources":["../../src/tags/diff.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,kBAAkB,CAAC;AA+MvC,eAAO,MAAM,IAAI,gBAoEf,CAAC"}
package/dist/tags/diff.js CHANGED
@@ -99,29 +99,46 @@ function getUnifiedLines(hunks) {
99
99
  * before-num for an add line) takes the place of the old `+`/`-` prefix as
100
100
  * the directional cue: combined with the change-tinted number colour and
101
101
  * the line's left-edge border, the absence/presence pattern says which way
102
- * the change goes without a dedicated prefix column. */
103
- function buildUnifiedRenderable(hunks, lang) {
102
+ * the change goes without a dedicated prefix column.
103
+ *
104
+ * WORK-304 — line spans carry `data-line-status` (was `data-type`) to
105
+ * share the row primitive with code-block line highlighting and any
106
+ * future per-line state. Values: `equal | add | remove`. */
107
+ function buildUnifiedRenderable(hunks, lang, beforeOffset = 0, afterOffset = 0) {
104
108
  const lines = getUnifiedLines(hunks);
105
109
  const lineNodes = lines.map(({ hunk, beforeNum, afterNum }) => {
106
- return new Tag('span', { 'data-name': 'line', 'data-type': hunk.type }, [
107
- new Tag('span', { 'data-name': 'gutter-num', 'data-side': 'before' }, [beforeNum != null ? String(beforeNum) : '']),
108
- new Tag('span', { 'data-name': 'gutter-num', 'data-side': 'after' }, [afterNum != null ? String(afterNum) : '']),
110
+ return new Tag('span', { 'data-name': 'line', 'data-line-status': hunk.type }, [
111
+ new Tag('span', { 'data-name': 'gutter-num', 'data-side': 'before' }, [beforeNum != null ? String(beforeNum + beforeOffset) : '']),
112
+ new Tag('span', { 'data-name': 'gutter-num', 'data-side': 'after' }, [afterNum != null ? String(afterNum + afterOffset) : '']),
109
113
  new Tag('span', { 'data-name': 'line-content', ...(lang ? { 'data-language': lang } : {}) }, [hunk.text]),
110
114
  ]);
111
115
  });
112
- return [new Tag('pre', { 'data-name': 'code', 'data-copy-selector': '[data-name="line-content"]' }, lineNodes)];
116
+ return [new Tag('pre', { 'data-name': 'code', 'data-copy-selector': '[data-name="line-content"]' }, [
117
+ // WORK-304 — inner wrapper hosts the `display: grid; min-width:
118
+ // max-content` row-width sizing so the row tint (+/-/highlight)
119
+ // extends across the full horizontal scroll region. Mirrors the
120
+ // `<pre><code>` pattern the standalone codeblock uses for the
121
+ // same reason: putting the sizing on the pre itself defeats
122
+ // `overflow-x: auto`. CSS hook: `.rf-diff__rows`.
123
+ new Tag('div', { 'data-name': 'rows' }, lineNodes),
124
+ ])];
113
125
  }
114
126
  /** Build split diff renderable — side-by-side panels with one numbered
115
127
  * gutter per panel. Placeholder rows (where the matching side has the
116
128
  * add/remove) render an empty gutter + empty content; the fixed gutter
117
- * width keeps the column rigid so rows align across panels. */
118
- function buildSplitRenderable(hunks, lang) {
129
+ * width keeps the column rigid so rows align across panels.
130
+ *
131
+ * WORK-304 — same `data-line-status` rename + per-side offset support
132
+ * as the unified renderable. `beforeOffset` / `afterOffset` are the
133
+ * `lines=` start minus one, so a fence with `lines="50-100"` adds 49
134
+ * to its 1-indexed `num` to produce gutter values starting at 50. */
135
+ function buildSplitRenderable(hunks, lang, beforeOffset = 0, afterOffset = 0) {
119
136
  const { before, after } = getSplitLines(hunks);
120
- function buildPanelLines(lines, side) {
137
+ function buildPanelLines(lines, side, offset) {
121
138
  return lines.map(line => {
122
139
  const type = line ? line.hunk.type : 'empty';
123
- return new Tag('span', { 'data-name': 'line', 'data-type': type }, [
124
- new Tag('span', { 'data-name': 'gutter-num', 'data-side': side }, [line ? String(line.num) : '']),
140
+ return new Tag('span', { 'data-name': 'line', 'data-line-status': type }, [
141
+ new Tag('span', { 'data-name': 'gutter-num', 'data-side': side }, [line ? String(line.num + offset) : '']),
125
142
  new Tag('span', { 'data-name': 'line-content', ...(line && lang ? { 'data-language': lang } : {}) }, [
126
143
  line ? line.hunk.text : '',
127
144
  ]),
@@ -130,13 +147,48 @@ function buildSplitRenderable(hunks, lang) {
130
147
  }
131
148
  return [new Tag('div', { 'data-name': 'split-container' }, [
132
149
  new Tag('div', { 'data-name': 'panel' }, [
133
- new Tag('pre', { 'data-name': 'code', 'data-copy-selector': '[data-name="line-content"]' }, buildPanelLines(before, 'before')),
150
+ new Tag('pre', { 'data-name': 'code', 'data-copy-selector': '[data-name="line-content"]' }, [
151
+ new Tag('div', { 'data-name': 'rows' }, buildPanelLines(before, 'before', beforeOffset)),
152
+ ]),
134
153
  ]),
135
154
  new Tag('div', { 'data-name': 'panel' }, [
136
- new Tag('pre', { 'data-name': 'code', 'data-copy-selector': '[data-name="line-content"]' }, buildPanelLines(after, 'after')),
155
+ new Tag('pre', { 'data-name': 'code', 'data-copy-selector': '[data-name="line-content"]' }, [
156
+ new Tag('div', { 'data-name': 'rows' }, buildPanelLines(after, 'after', afterOffset)),
157
+ ]),
137
158
  ]),
138
159
  ])];
139
160
  }
161
+ /** Parse the leading integer of a `lines="N-M"` (or `"N"`) annotation and
162
+ * return `N - 1` as the gutter offset, or 0 when the annotation is
163
+ * missing / malformed. Diff uses this per side so each panel's gutter
164
+ * reflects the file's actual coordinates rather than always starting at 1. */
165
+ function gutterOffsetFromLines(linesAttr) {
166
+ if (typeof linesAttr !== 'string' || linesAttr.length === 0)
167
+ return 0;
168
+ const m = /^(\d+)/.exec(linesAttr.trim());
169
+ if (!m)
170
+ return 0;
171
+ const n = Number(m[1]);
172
+ return Number.isFinite(n) && n > 0 ? n - 1 : 0;
173
+ }
174
+ /** Build the diff header: explicit `title` attribute wins, otherwise the
175
+ * fence `source` annotations form the header. When both sides share a
176
+ * source they collapse to a single label; differing sources render as
177
+ * `before → after`. Falls back to no header when nothing is set. */
178
+ function deriveHeader(title, beforeSource, afterSource) {
179
+ if (title)
180
+ return [new Tag('div', { 'data-name': 'header' }, [title])];
181
+ if (beforeSource && afterSource) {
182
+ if (beforeSource === afterSource) {
183
+ return [new Tag('div', { 'data-name': 'header' }, [beforeSource])];
184
+ }
185
+ return [new Tag('div', { 'data-name': 'header' }, [`${beforeSource} → ${afterSource}`])];
186
+ }
187
+ const single = beforeSource || afterSource;
188
+ if (single)
189
+ return [new Tag('div', { 'data-name': 'header' }, [single])];
190
+ return [];
191
+ }
140
192
  export const diff = createContentModelSchema({
141
193
  attributes: {
142
194
  mode: { type: String, required: false, matches: modeType.slice(), description: 'Diff display style: unified, split, or inline' },
@@ -160,15 +212,30 @@ export const diff = createContentModelSchema({
160
212
  const beforeSource = fences.length > 0 ? (fences[0].attributes.content || '').replace(/\n$/, '') : '';
161
213
  const afterSource = fences.length > 1 ? (fences[1].attributes.content || '').replace(/\n$/, '') : '';
162
214
  const lang = language || (fences.length > 0 ? fences[0].attributes.language || '' : '');
215
+ // WORK-304 — per-fence annotations:
216
+ // - `source` populates the diff header (and collapses to a single
217
+ // label when both sides share it; renders `before → after`
218
+ // otherwise).
219
+ // - `lines` derives per-side gutter offsets so each panel's
220
+ // line numbers reflect the file's real coordinates.
221
+ // - `highlight` is intentionally ignored — diff's add/remove
222
+ // status IS the primary line-level signal, and emphasis on
223
+ // top would muddy the +/- channel. Silent no-op; no warning.
224
+ const beforeFenceSource = fences.length > 0 && typeof fences[0].attributes.source === 'string'
225
+ ? fences[0].attributes.source
226
+ : undefined;
227
+ const afterFenceSource = fences.length > 1 && typeof fences[1].attributes.source === 'string'
228
+ ? fences[1].attributes.source
229
+ : undefined;
230
+ const beforeOffset = fences.length > 0 ? gutterOffsetFromLines(fences[0].attributes.lines) : 0;
231
+ const afterOffset = fences.length > 1 ? gutterOffsetFromLines(fences[1].attributes.lines) : 0;
163
232
  // Compute line-level diff (highlighting deferred to highlight transform)
164
233
  const hunks = computeLineDiff(beforeSource, afterSource);
165
234
  // Build expanded renderable AST
166
235
  const expanded = mode === 'split'
167
- ? buildSplitRenderable(hunks, lang)
168
- : buildUnifiedRenderable(hunks, lang);
169
- const header = title
170
- ? [new Tag('div', { 'data-name': 'header' }, [title])]
171
- : [];
236
+ ? buildSplitRenderable(hunks, lang, beforeOffset, afterOffset)
237
+ : buildUnifiedRenderable(hunks, lang, beforeOffset, afterOffset);
238
+ const header = deriveHeader(title, beforeFenceSource, afterFenceSource);
172
239
  const renderable = createComponentRenderable({ rune: 'diff',
173
240
  tag: 'div',
174
241
  properties: {
@@ -1 +1 @@
1
- {"version":3,"file":"diff.js","sourceRoot":"","sources":["../../src/tags/diff.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"diff.js","sourceRoot":"","sources":["../../src/tags/diff.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"drawer.d.ts","sourceRoot":"","sources":["../../src/tags/drawer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,OAAO,MAAM,kBAAkB,CAAC;AAMvC;qFACqF;AACrF,eAAO,MAAM,wBAAwB,2BAA2B,CAAC;AAKjE,eAAO,MAAM,MAAM,gBAgHjB,CAAC"}
1
+ {"version":3,"file":"drawer.d.ts","sourceRoot":"","sources":["../../src/tags/drawer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,OAAO,MAAM,kBAAkB,CAAC;AAMvC;qFACqF;AACrF,eAAO,MAAM,wBAAwB,2BAA2B,CAAC;AAoBjE,eAAO,MAAM,MAAM,gBAiIjB,CAAC"}
@@ -27,6 +27,21 @@ import { RenderableNodeCursor } from '../lib/renderable.js';
27
27
  export const DRAWER_TITLE_AUTO_MARKER = 'data-drawer-title-auto';
28
28
  const drawerSides = ['right', 'left', 'top', 'bottom'];
29
29
  const drawerSizes = ['sm', 'md', 'lg'];
30
+ /** Split a drawer body's node list on the **first** top-level `hr` into body
31
+ * + footer zones. 1 zone → `{ body: nodes, footer: null }`; 2+ zones →
32
+ * `{ body: before-hr, footer: after-hr }` where any subsequent hrs in the
33
+ * footer render as ordinary horizontal rules within the footer. Matches the
34
+ * body-zone convention `{% card %}` uses (positional, count-driven), scaled
35
+ * down to the two-zone case the drawer needs. */
36
+ function splitDrawerBodyZones(nodes) {
37
+ const hrIndex = nodes.findIndex(n => n.type === 'hr');
38
+ if (hrIndex < 0)
39
+ return { body: nodes, footer: null };
40
+ return {
41
+ body: nodes.slice(0, hrIndex),
42
+ footer: nodes.slice(hrIndex + 1),
43
+ };
44
+ }
30
45
  export const drawer = createContentModelSchema({
31
46
  attributes: {
32
47
  id: {
@@ -96,7 +111,16 @@ export const drawer = createContentModelSchema({
96
111
  headerChildren.push(titleTag);
97
112
  headerChildren.push(closeButton);
98
113
  const header = new Tag('header', {}, headerChildren);
99
- const body = new RenderableNodeCursor(Markdoc.transform(asNodes(resolved.body), config)).wrap('div');
114
+ // Split the body on the first top-level `hr` into body + footer zones
115
+ // (SPEC-078). 1 zone → all body; 2+ zones → body + footer. The footer
116
+ // zone shows up as `<footer data-name="footer" class="rf-drawer__footer">`
117
+ // alongside the body so the hoist mechanism for `preview="drawer"` and
118
+ // author-written standalone drawers populate the same slot.
119
+ const zones = splitDrawerBodyZones(asNodes(resolved.body));
120
+ const body = new RenderableNodeCursor(Markdoc.transform(zones.body, config)).wrap('div');
121
+ const footer = zones.footer !== null
122
+ ? new RenderableNodeCursor(Markdoc.transform(zones.footer, config)).wrap('footer')
123
+ : null;
100
124
  // Property meta tags drive engine modifier-from-meta + data-attribute
101
125
  // derivation. We always emit `side` and `size` so the engine applies
102
126
  // the BEM modifier even when the author didn't specify them (the
@@ -120,8 +144,14 @@ export const drawer = createContentModelSchema({
120
144
  ...(titleTag ? { title: titleTag } : {}),
121
145
  close: closeButton,
122
146
  body: body.tag('div'),
147
+ ...(footer ? { footer: footer.tag('footer') } : {}),
123
148
  },
124
- children: [...Object.values(properties), header, body.next()],
149
+ children: [
150
+ ...Object.values(properties),
151
+ header,
152
+ body.next(),
153
+ ...(footer ? [footer.next()] : []),
154
+ ],
125
155
  });
126
156
  // `data-drawer-id` carries the author-supplied id (before the
127
157
  // `drawer-` prefix) for register-hook consumption. The register
@@ -1 +1 @@
1
- {"version":3,"file":"drawer.js","sourceRoot":"","sources":["../../src/tags/drawer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"drawer.js","sourceRoot":"","sources":["../../src/tags/drawer.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,21 @@
1
+ import Markdoc from '@markdoc/markdoc';
2
+ /** Sentinel `data-field` value the file-ref schema emits. The resolver
3
+ * (file-ref-resolve.ts) walks the postProcess tree, finds these, and
4
+ * binds the inline `<a>` to the GitHub URL plus (when `preview="drawer"`
5
+ * is set) a hoist sentinel for the drawer pipeline to pick up. */
6
+ export declare const FILE_REF_SENTINEL = "__file-ref-sentinel";
7
+ /**
8
+ * `file-ref` rune — path-based inline reference to a project file
9
+ * (SPEC-078). Renders as an inline `<a>` to the file's canonical GitHub
10
+ * URL (built from `SiteConfig.repoUrl` + `repoBranch`), with an optional
11
+ * `preview="drawer"` mode that hoists a drawer containing the file's
12
+ * snippet and a "View source on GitHub →" footer link.
13
+ *
14
+ * The transform emits a sentinel meta + placeholder `<a>`. The actual
15
+ * link href, the drawer body, and the hoist sentinel are all bound in
16
+ * postProcess by `resolveFileRefs` so that the rune doesn't need
17
+ * site-config access at transform time and so the file content is read
18
+ * once (not per page-with-mention).
19
+ */
20
+ export declare const fileRef: Markdoc.Schema;
21
+ //# sourceMappingURL=file-ref.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"file-ref.d.ts","sourceRoot":"","sources":["../../src/tags/file-ref.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,kBAAkB,CAAC;AAIvC;;;mEAGmE;AACnE,eAAO,MAAM,iBAAiB,wBAAwB,CAAC;AAEvD;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,OAAO,gBA+DlB,CAAC"}