@refrakt-md/runes 0.33.0 → 0.35.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/dist/aggregate-resolve.d.ts.map +1 -1
- package/dist/aggregate-resolve.js +18 -4
- package/dist/aggregate-resolve.js.map +1 -1
- package/dist/attributes.d.ts +15 -0
- package/dist/attributes.d.ts.map +1 -1
- package/dist/attributes.js +22 -7
- package/dist/attributes.js.map +1 -1
- package/dist/collection-helpers.d.ts.map +1 -1
- package/dist/collection-helpers.js +1 -1
- package/dist/collection-helpers.js.map +1 -1
- package/dist/collection-resolve.d.ts.map +1 -1
- package/dist/collection-resolve.js +31 -8
- package/dist/collection-resolve.js.map +1 -1
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +218 -77
- package/dist/config.js.map +1 -1
- package/dist/data-adapters.d.ts.map +1 -1
- package/dist/data-adapters.js +28 -11
- package/dist/data-adapters.js.map +1 -1
- package/dist/data-emit.d.ts.map +1 -1
- package/dist/data-emit.js.map +1 -1
- package/dist/data-pipeline.d.ts.map +1 -1
- package/dist/data-pipeline.js +45 -12
- package/dist/data-pipeline.js.map +1 -1
- package/dist/data-projection.d.ts.map +1 -1
- package/dist/data-projection.js +4 -3
- package/dist/data-projection.js.map +1 -1
- package/dist/data-resolve.d.ts.map +1 -1
- package/dist/data-resolve.js +5 -2
- package/dist/data-resolve.js.map +1 -1
- package/dist/documents/page.d.ts.map +1 -1
- package/dist/documents/page.js.map +1 -1
- package/dist/drawer-pipeline.d.ts.map +1 -1
- package/dist/drawer-pipeline.js +3 -2
- package/dist/drawer-pipeline.js.map +1 -1
- package/dist/expand-pipeline.d.ts.map +1 -1
- package/dist/expand-pipeline.js +3 -3
- package/dist/expand-pipeline.js.map +1 -1
- package/dist/fence-escape.d.ts.map +1 -1
- package/dist/fence-escape.js +1 -3
- package/dist/fence-escape.js.map +1 -1
- package/dist/field-match.d.ts.map +1 -1
- package/dist/field-match.js.map +1 -1
- package/dist/file-ref-resolve.js +6 -4
- package/dist/file-ref-resolve.js.map +1 -1
- package/dist/fixtures.js +2 -2
- package/dist/fixtures.js.map +1 -1
- package/dist/functions.d.ts.map +1 -1
- package/dist/functions.js +16 -3
- package/dist/functions.js.map +1 -1
- package/dist/include-pipeline.d.ts.map +1 -1
- package/dist/include-pipeline.js +3 -1
- package/dist/include-pipeline.js.map +1 -1
- package/dist/index.d.ts +95 -37
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +273 -60
- package/dist/index.js.map +1 -1
- package/dist/interfaces.d.ts.map +1 -1
- package/dist/interfaces.js.map +1 -1
- package/dist/layouts/grid.d.ts +2 -2
- package/dist/layouts/grid.d.ts.map +1 -1
- package/dist/layouts/grid.js +4 -6
- package/dist/layouts/grid.js.map +1 -1
- package/dist/lib/component.d.ts.map +1 -1
- package/dist/lib/component.js +7 -7
- package/dist/lib/component.js.map +1 -1
- package/dist/lib/icon-resolve.d.ts.map +1 -1
- package/dist/lib/icon-resolve.js.map +1 -1
- package/dist/lib/image-schemes.js +2 -2
- package/dist/lib/image-schemes.js.map +1 -1
- package/dist/lib/index.d.ts +29 -1
- package/dist/lib/index.d.ts.map +1 -1
- package/dist/lib/index.js +298 -51
- package/dist/lib/index.js.map +1 -1
- package/dist/lib/node.d.ts.map +1 -1
- package/dist/lib/node.js +3 -2
- package/dist/lib/node.js.map +1 -1
- package/dist/lib/placeholder.d.ts.map +1 -1
- package/dist/lib/placeholder.js +6 -9
- package/dist/lib/placeholder.js.map +1 -1
- package/dist/lib/read-file.d.ts.map +1 -1
- package/dist/lib/read-file.js.map +1 -1
- package/dist/lib/renderable.d.ts.map +1 -1
- package/dist/lib/renderable.js +5 -5
- package/dist/lib/renderable.js.map +1 -1
- package/dist/lib/resolver.d.ts.map +1 -1
- package/dist/lib/resolver.js +42 -36
- package/dist/lib/resolver.js.map +1 -1
- package/dist/lib/schema-table.d.ts +176 -0
- package/dist/lib/schema-table.d.ts.map +1 -0
- package/dist/lib/schema-table.js +427 -0
- package/dist/lib/schema-table.js.map +1 -0
- package/dist/lib/svg.d.ts.map +1 -1
- package/dist/lib/svg.js.map +1 -1
- package/dist/nodes.d.ts.map +1 -1
- package/dist/nodes.js +9 -11
- package/dist/nodes.js.map +1 -1
- package/dist/outline-scope.js +1 -3
- package/dist/outline-scope.js.map +1 -1
- package/dist/plugins.d.ts.map +1 -1
- package/dist/plugins.js +13 -10
- package/dist/plugins.js.map +1 -1
- package/dist/reference.d.ts +33 -0
- package/dist/reference.d.ts.map +1 -1
- package/dist/reference.js +60 -23
- package/dist/reference.js.map +1 -1
- package/dist/relationships-resolve.d.ts.map +1 -1
- package/dist/relationships-resolve.js +31 -7
- package/dist/relationships-resolve.js.map +1 -1
- package/dist/rune.d.ts +0 -2
- package/dist/rune.d.ts.map +1 -1
- package/dist/rune.js +0 -1
- package/dist/rune.js.map +1 -1
- package/dist/sandbox-sources.js +6 -6
- package/dist/sandbox-sources.js.map +1 -1
- package/dist/schema-row.d.ts +89 -0
- package/dist/schema-row.d.ts.map +1 -0
- package/dist/schema-row.js +78 -0
- package/dist/schema-row.js.map +1 -0
- package/dist/seo.d.ts +9 -0
- package/dist/seo.d.ts.map +1 -1
- package/dist/seo.js +88 -11
- package/dist/seo.js.map +1 -1
- package/dist/snippet-pipeline.d.ts.map +1 -1
- package/dist/snippet-pipeline.js +1 -1
- package/dist/snippet-pipeline.js.map +1 -1
- package/dist/tags/accordion.d.ts +58 -0
- package/dist/tags/accordion.d.ts.map +1 -1
- package/dist/tags/accordion.js +69 -23
- package/dist/tags/accordion.js.map +1 -1
- package/dist/tags/aggregate.d.ts.map +1 -1
- package/dist/tags/aggregate.js +65 -10
- package/dist/tags/aggregate.js.map +1 -1
- package/dist/tags/annotate.d.ts.map +1 -1
- package/dist/tags/annotate.js +12 -9
- package/dist/tags/annotate.js.map +1 -1
- package/dist/tags/badge.d.ts.map +1 -1
- package/dist/tags/badge.js.map +1 -1
- package/dist/tags/bar.d.ts.map +1 -1
- package/dist/tags/bar.js +3 -7
- package/dist/tags/bar.js.map +1 -1
- package/dist/tags/bg.d.ts.map +1 -1
- package/dist/tags/bg.js +60 -12
- package/dist/tags/bg.js.map +1 -1
- package/dist/tags/blog.d.ts.map +1 -1
- package/dist/tags/blog.js +43 -10
- package/dist/tags/blog.js.map +1 -1
- package/dist/tags/breadcrumb.d.ts +30 -0
- package/dist/tags/breadcrumb.d.ts.map +1 -1
- package/dist/tags/breadcrumb.js +57 -28
- package/dist/tags/breadcrumb.js.map +1 -1
- package/dist/tags/budget.d.ts.map +1 -1
- package/dist/tags/budget.js +60 -16
- package/dist/tags/budget.js.map +1 -1
- package/dist/tags/card.d.ts.map +1 -1
- package/dist/tags/card.js +24 -6
- package/dist/tags/card.js.map +1 -1
- package/dist/tags/chart.d.ts.map +1 -1
- package/dist/tags/chart.js +33 -11
- package/dist/tags/chart.js.map +1 -1
- package/dist/tags/codegroup.d.ts.map +1 -1
- package/dist/tags/codegroup.js +39 -21
- package/dist/tags/codegroup.js.map +1 -1
- package/dist/tags/collection.d.ts.map +1 -1
- package/dist/tags/collection.js +55 -9
- package/dist/tags/collection.js.map +1 -1
- package/dist/tags/common.d.ts.map +1 -1
- package/dist/tags/common.js +34 -9
- package/dist/tags/common.js.map +1 -1
- package/dist/tags/compare.d.ts.map +1 -1
- package/dist/tags/compare.js +26 -14
- package/dist/tags/compare.js.map +1 -1
- package/dist/tags/conversation.d.ts.map +1 -1
- package/dist/tags/conversation.js +19 -17
- package/dist/tags/conversation.js.map +1 -1
- package/dist/tags/data.d.ts.map +1 -1
- package/dist/tags/data.js +67 -13
- package/dist/tags/data.js.map +1 -1
- package/dist/tags/datatable.d.ts.map +1 -1
- package/dist/tags/datatable.js +27 -8
- package/dist/tags/datatable.js.map +1 -1
- package/dist/tags/deflist.d.ts.map +1 -1
- package/dist/tags/deflist.js +5 -11
- package/dist/tags/deflist.js.map +1 -1
- package/dist/tags/details.d.ts.map +1 -1
- package/dist/tags/details.js +8 -5
- package/dist/tags/details.js.map +1 -1
- package/dist/tags/diagram.d.ts.map +1 -1
- package/dist/tags/diagram.js +9 -5
- package/dist/tags/diagram.js.map +1 -1
- package/dist/tags/diff.d.ts.map +1 -1
- package/dist/tags/diff.js +43 -24
- package/dist/tags/diff.js.map +1 -1
- package/dist/tags/drawer.d.ts.map +1 -1
- package/dist/tags/drawer.js +4 -6
- package/dist/tags/drawer.js.map +1 -1
- package/dist/tags/embed.d.ts +8 -0
- package/dist/tags/embed.d.ts.map +1 -1
- package/dist/tags/embed.js +28 -10
- package/dist/tags/embed.js.map +1 -1
- package/dist/tags/expand.d.ts.map +1 -1
- package/dist/tags/expand.js.map +1 -1
- package/dist/tags/figure.d.ts +7 -0
- package/dist/tags/figure.d.ts.map +1 -1
- package/dist/tags/figure.js +42 -13
- package/dist/tags/figure.js.map +1 -1
- package/dist/tags/file-ref.d.ts.map +1 -1
- package/dist/tags/file-ref.js.map +1 -1
- package/dist/tags/form.d.ts.map +1 -1
- package/dist/tags/form.js +52 -25
- package/dist/tags/form.js.map +1 -1
- package/dist/tags/gallery.d.ts.map +1 -1
- package/dist/tags/gallery.js +33 -12
- package/dist/tags/gallery.js.map +1 -1
- package/dist/tags/grid.d.ts.map +1 -1
- package/dist/tags/grid.js +57 -14
- package/dist/tags/grid.js.map +1 -1
- package/dist/tags/hint.d.ts.map +1 -1
- package/dist/tags/hint.js +9 -5
- package/dist/tags/hint.js.map +1 -1
- package/dist/tags/icon.d.ts.map +1 -1
- package/dist/tags/icon.js +5 -1
- package/dist/tags/icon.js.map +1 -1
- package/dist/tags/include.d.ts.map +1 -1
- package/dist/tags/include.js +1 -1
- package/dist/tags/include.js.map +1 -1
- package/dist/tags/juxtapose.d.ts.map +1 -1
- package/dist/tags/juxtapose.js +32 -14
- package/dist/tags/juxtapose.js.map +1 -1
- package/dist/tags/layout.d.ts.map +1 -1
- package/dist/tags/layout.js +7 -4
- package/dist/tags/layout.js.map +1 -1
- package/dist/tags/mediatext.d.ts.map +1 -1
- package/dist/tags/mediatext.js +19 -8
- package/dist/tags/mediatext.js.map +1 -1
- package/dist/tags/nav.d.ts.map +1 -1
- package/dist/tags/nav.js +43 -23
- package/dist/tags/nav.js.map +1 -1
- package/dist/tags/pagination.d.ts.map +1 -1
- package/dist/tags/pagination.js +27 -5
- package/dist/tags/pagination.js.map +1 -1
- package/dist/tags/progress.d.ts.map +1 -1
- package/dist/tags/progress.js +25 -5
- package/dist/tags/progress.js.map +1 -1
- package/dist/tags/pullquote.d.ts.map +1 -1
- package/dist/tags/pullquote.js +16 -9
- package/dist/tags/pullquote.js.map +1 -1
- package/dist/tags/region.d.ts.map +1 -1
- package/dist/tags/region.js +9 -4
- package/dist/tags/region.js.map +1 -1
- package/dist/tags/relationships.d.ts.map +1 -1
- package/dist/tags/relationships.js +55 -9
- package/dist/tags/relationships.js.map +1 -1
- package/dist/tags/reveal.d.ts.map +1 -1
- package/dist/tags/reveal.js +16 -7
- package/dist/tags/reveal.js.map +1 -1
- package/dist/tags/sandbox.d.ts.map +1 -1
- package/dist/tags/sandbox.js +104 -44
- package/dist/tags/sandbox.js.map +1 -1
- package/dist/tags/section.d.ts.map +1 -1
- package/dist/tags/section.js +13 -3
- package/dist/tags/section.js.map +1 -1
- package/dist/tags/showcase.d.ts.map +1 -1
- package/dist/tags/showcase.js +33 -11
- package/dist/tags/showcase.js.map +1 -1
- package/dist/tags/sidenote.d.ts.map +1 -1
- package/dist/tags/sidenote.js +9 -5
- package/dist/tags/sidenote.js.map +1 -1
- package/dist/tags/snippet.d.ts.map +1 -1
- package/dist/tags/snippet.js.map +1 -1
- package/dist/tags/tabs.d.ts.map +1 -1
- package/dist/tags/tabs.js +16 -9
- package/dist/tags/tabs.js.map +1 -1
- package/dist/tags/textblock.d.ts.map +1 -1
- package/dist/tags/textblock.js +9 -5
- package/dist/tags/textblock.js.map +1 -1
- package/dist/tags/tint.d.ts +1 -1
- package/dist/tags/tint.d.ts.map +1 -1
- package/dist/tags/tint.js +14 -2
- package/dist/tags/tint.js.map +1 -1
- package/dist/tags/toc.d.ts.map +1 -1
- package/dist/tags/toc.js +16 -7
- package/dist/tags/toc.js.map +1 -1
- package/dist/tags/xref.d.ts.map +1 -1
- package/dist/tags/xref.js.map +1 -1
- package/dist/universal-attributes.d.ts.map +1 -1
- package/dist/universal-attributes.js +28 -5
- package/dist/universal-attributes.js.map +1 -1
- package/dist/util.d.ts.map +1 -1
- package/dist/util.js +4 -4
- package/dist/util.js.map +1 -1
- package/dist/xref-patterns.js +1 -1
- package/dist/xref-patterns.js.map +1 -1
- package/dist/xref-preview-resolve.js +3 -4
- package/dist/xref-preview-resolve.js.map +1 -1
- package/dist/xref-resolve.d.ts.map +1 -1
- package/dist/xref-resolve.js +4 -4
- package/dist/xref-resolve.js.map +1 -1
- package/i18n/de.json +67 -67
- package/i18n/en.json +67 -67
- package/package.json +3 -3
- package/dist/tags/error.d.ts +0 -3
- package/dist/tags/error.d.ts.map +0 -1
- package/dist/tags/error.js +0 -34
- package/dist/tags/error.js.map +0 -1
|
@@ -9,15 +9,14 @@ export const conversationMessage = createContentModelSchema({
|
|
|
9
9
|
},
|
|
10
10
|
contentModel: {
|
|
11
11
|
type: 'sequence',
|
|
12
|
-
fields: [
|
|
13
|
-
{ name: 'body', match: 'any', optional: true, greedy: true },
|
|
14
|
-
],
|
|
12
|
+
fields: [{ name: 'body', match: 'any', optional: true, greedy: true }],
|
|
15
13
|
},
|
|
16
14
|
transform(resolved, attrs, config) {
|
|
17
15
|
const speakerTag = new Tag('span', {}, [attrs.speaker ?? '']);
|
|
18
16
|
const alignMeta = new Tag('meta', { content: attrs.align ?? 'left' });
|
|
19
17
|
const body = new RenderableNodeCursor(Markdoc.transform(asNodes(resolved.body), config)).wrap('div');
|
|
20
|
-
return createComponentRenderable({
|
|
18
|
+
return createComponentRenderable({
|
|
19
|
+
rune: 'conversation-message',
|
|
21
20
|
tag: 'div',
|
|
22
21
|
properties: {
|
|
23
22
|
speaker: speakerTag,
|
|
@@ -32,7 +31,9 @@ export const conversationMessage = createContentModelSchema({
|
|
|
32
31
|
});
|
|
33
32
|
function convertConversationChildren(nodes, attrs) {
|
|
34
33
|
const speakerList = attrs.speakers
|
|
35
|
-
? String(attrs.speakers)
|
|
34
|
+
? String(attrs.speakers)
|
|
35
|
+
.split(',')
|
|
36
|
+
.map((s) => s.trim())
|
|
36
37
|
: [];
|
|
37
38
|
const converted = [];
|
|
38
39
|
let messageIndex = 0;
|
|
@@ -44,19 +45,15 @@ function convertConversationChildren(nodes, attrs) {
|
|
|
44
45
|
// the first paragraph's *content* is `firstPara.children[0].children`
|
|
45
46
|
// (when an inline wrapper is present) rather than `firstPara.children`
|
|
46
47
|
// directly. Both forms are handled.
|
|
47
|
-
const firstPara = children.length > 0 && children[0].type === 'paragraph'
|
|
48
|
-
|
|
49
|
-
: null;
|
|
50
|
-
const inlineHost = firstPara && firstPara.children[0]?.type === 'inline'
|
|
51
|
-
? firstPara.children[0]
|
|
52
|
-
: firstPara;
|
|
48
|
+
const firstPara = children.length > 0 && children[0].type === 'paragraph' ? children[0] : null;
|
|
49
|
+
const inlineHost = firstPara && firstPara.children[0]?.type === 'inline' ? firstPara.children[0] : firstPara;
|
|
53
50
|
// Try to extract speaker from first paragraph's bold text: **Name:** ...
|
|
54
51
|
if (inlineHost) {
|
|
55
52
|
const firstInline = inlineHost.children[0];
|
|
56
53
|
if (firstInline && firstInline.type === 'strong') {
|
|
57
54
|
const nameText = Array.from(firstInline.walk())
|
|
58
|
-
.filter(n => n.type === 'text')
|
|
59
|
-
.map(n => n.attributes.content)
|
|
55
|
+
.filter((n) => n.type === 'text')
|
|
56
|
+
.map((n) => n.attributes.content)
|
|
60
57
|
.join('')
|
|
61
58
|
.replace(/:\s*$/, '');
|
|
62
59
|
speaker = nameText;
|
|
@@ -92,19 +89,24 @@ function convertConversationChildren(nodes, attrs) {
|
|
|
92
89
|
}
|
|
93
90
|
export const conversation = createContentModelSchema({
|
|
94
91
|
attributes: {
|
|
95
|
-
speakers: {
|
|
92
|
+
speakers: {
|
|
93
|
+
type: String,
|
|
94
|
+
required: false,
|
|
95
|
+
description: 'Comma-separated speaker names for alternating messages',
|
|
96
|
+
},
|
|
96
97
|
},
|
|
97
98
|
contentModel: {
|
|
98
99
|
type: 'custom',
|
|
99
100
|
processChildren: (nodes, attrs) => convertConversationChildren(nodes, attrs),
|
|
100
|
-
description: 'Converts blockquotes to conversation messages with alternating left/right alignment. '
|
|
101
|
-
|
|
101
|
+
description: 'Converts blockquotes to conversation messages with alternating left/right alignment. ' +
|
|
102
|
+
'Extracts speaker name from bold text in first paragraph, falls back to speakers list.',
|
|
102
103
|
},
|
|
103
104
|
transform(resolved, attrs, config) {
|
|
104
105
|
const body = new RenderableNodeCursor(Markdoc.transform(asNodes(resolved.children), config));
|
|
105
106
|
const messages = body.tag('div').typeof('ConversationMessage');
|
|
106
107
|
const messagesContainer = messages.wrap('div');
|
|
107
|
-
return createComponentRenderable({
|
|
108
|
+
return createComponentRenderable({
|
|
109
|
+
rune: 'conversation',
|
|
108
110
|
tag: 'div',
|
|
109
111
|
properties: {
|
|
110
112
|
message: messages,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"conversation.js","sourceRoot":"","sources":["../../src/tags/conversation.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,kBAAkB,CAAC;AAEvC,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC;AAC7B,OAAO,EAAE,yBAAyB,EAAE,wBAAwB,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAC/F,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAE5D,MAAM,CAAC,MAAM,mBAAmB,GAAG,wBAAwB,CAAC;IAC3D,UAAU,EAAE;QACX,OAAO,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE;QAC1C,KAAK,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE;KACpE;IACD,YAAY,EAAE;QACb,IAAI,EAAE,UAAU;QAChB,MAAM,EAAE
|
|
1
|
+
{"version":3,"file":"conversation.js","sourceRoot":"","sources":["../../src/tags/conversation.ts"],"names":[],"mappings":"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"}
|
package/dist/tags/data.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"data.d.ts","sourceRoot":"","sources":["../../src/tags/data.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;GAgBG;AACH,eAAO,MAAM,IAAI,
|
|
1
|
+
{"version":3,"file":"data.d.ts","sourceRoot":"","sources":["../../src/tags/data.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;GAgBG;AACH,eAAO,MAAM,IAAI,mCA+Gf,CAAC"}
|
package/dist/tags/data.js
CHANGED
|
@@ -19,26 +19,80 @@ import { createContentModelSchema } from '../lib/index.js';
|
|
|
19
19
|
export const data = createContentModelSchema({
|
|
20
20
|
attributes: {
|
|
21
21
|
// Core.
|
|
22
|
-
src: {
|
|
23
|
-
|
|
22
|
+
src: {
|
|
23
|
+
type: String,
|
|
24
|
+
required: true,
|
|
25
|
+
description: 'Path to the source file, relative to the project root (sandboxed).',
|
|
26
|
+
},
|
|
27
|
+
format: {
|
|
28
|
+
type: String,
|
|
29
|
+
required: false,
|
|
30
|
+
matches: ['csv', 'tsv', 'json', 'ndjson'],
|
|
31
|
+
description: 'Source format. Inferred from the file extension; override for ambiguity.',
|
|
32
|
+
},
|
|
24
33
|
// CSV / TSV.
|
|
25
|
-
delimiter: {
|
|
26
|
-
|
|
34
|
+
delimiter: {
|
|
35
|
+
type: String,
|
|
36
|
+
required: false,
|
|
37
|
+
description: 'Override the field separator (CSV/TSV).',
|
|
38
|
+
},
|
|
39
|
+
header: {
|
|
40
|
+
type: Boolean,
|
|
41
|
+
required: false,
|
|
42
|
+
description: 'CSV/TSV: whether the first row is the header (default true). false synthesizes col1…',
|
|
43
|
+
},
|
|
27
44
|
// JSON (adapter lands in WORK-486; declared here for the full surface).
|
|
28
|
-
root: {
|
|
29
|
-
|
|
30
|
-
|
|
45
|
+
root: {
|
|
46
|
+
type: String,
|
|
47
|
+
required: false,
|
|
48
|
+
description: 'JSON: dotted path / JSON Pointer to the array or map within the document.',
|
|
49
|
+
},
|
|
50
|
+
orient: {
|
|
51
|
+
type: String,
|
|
52
|
+
required: false,
|
|
53
|
+
matches: ['records', 'values', 'index'],
|
|
54
|
+
description: 'JSON: how each element maps to a row. records/values auto-detected; index is explicit.',
|
|
55
|
+
},
|
|
56
|
+
'key-column': {
|
|
57
|
+
type: String,
|
|
58
|
+
required: false,
|
|
59
|
+
description: 'JSON: when orient=index, the header for the synthesized key column.',
|
|
60
|
+
},
|
|
31
61
|
// Shared projection.
|
|
32
|
-
columns: {
|
|
33
|
-
|
|
34
|
-
|
|
62
|
+
columns: {
|
|
63
|
+
type: String,
|
|
64
|
+
required: false,
|
|
65
|
+
description: 'Select + order + rename: "name as Product, revenue as \'Revenue ($)\'".',
|
|
66
|
+
},
|
|
67
|
+
where: {
|
|
68
|
+
type: String,
|
|
69
|
+
required: false,
|
|
70
|
+
description: 'Filter rows with the field:value grammar (SPEC-070).',
|
|
71
|
+
},
|
|
72
|
+
sort: {
|
|
73
|
+
type: String,
|
|
74
|
+
required: false,
|
|
75
|
+
description: 'Sort by a column; "-" prefix for descending.',
|
|
76
|
+
},
|
|
35
77
|
limit: { type: Number, required: false, description: 'Maximum number of rows.' },
|
|
36
78
|
offset: { type: Number, required: false, description: 'Skip this many rows before limiting.' },
|
|
37
79
|
// Body-as-table-row (WORK-550). Its presence switches what the body means.
|
|
38
|
-
headers: {
|
|
80
|
+
headers: {
|
|
81
|
+
type: String,
|
|
82
|
+
required: false,
|
|
83
|
+
description: 'Header labels for a `---`-delimited body, e.g. "Attribute, Type". Setting it makes the body one table ROW — cells separated by `---` — instead of a run of blocks, so cells can carry emphasis, links, runes and {% if %}. Requires a body.',
|
|
84
|
+
},
|
|
39
85
|
// Shared typing.
|
|
40
|
-
numeric: {
|
|
41
|
-
|
|
86
|
+
numeric: {
|
|
87
|
+
type: String,
|
|
88
|
+
required: false,
|
|
89
|
+
description: 'Comma-separated columns to force to numeric typing (emits data-value).',
|
|
90
|
+
},
|
|
91
|
+
text: {
|
|
92
|
+
type: String,
|
|
93
|
+
required: false,
|
|
94
|
+
description: 'Comma-separated columns to force to text typing.',
|
|
95
|
+
},
|
|
42
96
|
},
|
|
43
97
|
// An optional body is the per-row template (SPEC-127): transformed once per
|
|
44
98
|
// row with `$row` bound, in place of the `<table>` the bodyless form emits.
|
package/dist/tags/data.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"data.js","sourceRoot":"","sources":["../../src/tags/data.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,MAAM,iBAAiB,CAAC;AAE3D;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,CAAC,MAAM,IAAI,GAAG,wBAAwB,CAAC;IAC5C,UAAU,EAAE;QACX,QAAQ;QACR,GAAG,EAAE,
|
|
1
|
+
{"version":3,"file":"data.js","sourceRoot":"","sources":["../../src/tags/data.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"datatable.d.ts","sourceRoot":"","sources":["../../src/tags/datatable.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,kBAAkB,CAAC;AASvC,eAAO,MAAM,iBAAiB;;CAA6B,CAAC;AAE5D,eAAO,MAAM,SAAS,
|
|
1
|
+
{"version":3,"file":"datatable.d.ts","sourceRoot":"","sources":["../../src/tags/datatable.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,kBAAkB,CAAC;AASvC,eAAO,MAAM,iBAAiB;;CAA6B,CAAC;AAE5D,eAAO,MAAM,SAAS,gBAgFpB,CAAC"}
|
package/dist/tags/datatable.js
CHANGED
|
@@ -9,16 +9,26 @@ export const dataTableSections = { table: 'body' };
|
|
|
9
9
|
export const datatable = createContentModelSchema({
|
|
10
10
|
sections: dataTableSections,
|
|
11
11
|
attributes: {
|
|
12
|
-
sortable: {
|
|
13
|
-
|
|
14
|
-
|
|
12
|
+
sortable: {
|
|
13
|
+
type: String,
|
|
14
|
+
required: false,
|
|
15
|
+
description: 'Column names to enable sorting, or "all"',
|
|
16
|
+
},
|
|
17
|
+
searchable: {
|
|
18
|
+
type: Boolean,
|
|
19
|
+
required: false,
|
|
20
|
+
description: 'Show a search input to filter rows',
|
|
21
|
+
},
|
|
22
|
+
pageSize: {
|
|
23
|
+
type: Number,
|
|
24
|
+
required: false,
|
|
25
|
+
description: 'Rows per page; 0 disables pagination',
|
|
26
|
+
},
|
|
15
27
|
defaultSort: { type: String, required: false, description: 'Column to sort by initially' },
|
|
16
28
|
},
|
|
17
29
|
contentModel: {
|
|
18
30
|
type: 'sequence',
|
|
19
|
-
fields: [
|
|
20
|
-
{ name: 'body', match: 'any', optional: true, greedy: true },
|
|
21
|
-
],
|
|
31
|
+
fields: [{ name: 'body', match: 'any', optional: true, greedy: true }],
|
|
22
32
|
},
|
|
23
33
|
transform(resolved, attrs, config) {
|
|
24
34
|
const children = new RenderableNodeCursor(Markdoc.transform(asNodes(resolved.body), config));
|
|
@@ -34,7 +44,9 @@ export const datatable = createContentModelSchema({
|
|
|
34
44
|
}
|
|
35
45
|
else {
|
|
36
46
|
// Unwrap from rf-table-wrapper div
|
|
37
|
-
const wrapper = children
|
|
47
|
+
const wrapper = children
|
|
48
|
+
.toArray()
|
|
49
|
+
.find((n) => Tag.isTag(n) && n.name === 'div' && n.attributes.class === 'rf-table-wrapper');
|
|
38
50
|
const inner = wrapper && Tag.isTag(wrapper)
|
|
39
51
|
? wrapper.children.find((c) => Tag.isTag(c) && c.name === 'table')
|
|
40
52
|
: undefined;
|
|
@@ -44,7 +56,14 @@ export const datatable = createContentModelSchema({
|
|
|
44
56
|
// on narrow screens. The behavior places the toolbar/pagination as
|
|
45
57
|
// siblings of this wrapper, keeping them outside the horizontal scroll.
|
|
46
58
|
const scrollDiv = new Tag('div', {}, [tableTag]);
|
|
47
|
-
return createComponentRenderable({
|
|
59
|
+
return createComponentRenderable({
|
|
60
|
+
rune: 'data-table',
|
|
61
|
+
// SPEC-130 D4 / WORK-567 — no `Dataset`. A `Dataset` is identified by
|
|
62
|
+
// `name` and made useful by `distribution`, and this rune has neither
|
|
63
|
+
// to give: it has no headline slot at all, and its five properties
|
|
64
|
+
// (`sortable`, `searchable`, `pageSize`, `defaultSort`) are all
|
|
65
|
+
// interaction config, describing how the table behaves rather than
|
|
66
|
+
// what it contains.
|
|
48
67
|
tag: 'div',
|
|
49
68
|
properties: {
|
|
50
69
|
sortable: sortableMeta,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"datatable.js","sourceRoot":"","sources":["../../src/tags/datatable.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,kBAAkB,CAAC;AAEvC,MAAM,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC;AACxB,OAAO,EAAE,wBAAwB,EAAE,yBAAyB,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAC/F,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAE5D,4EAA4E;AAC5E,0EAA0E;AAC1E,iCAAiC;AACjC,MAAM,CAAC,MAAM,iBAAiB,GAAG,EAAE,KAAK,EAAE,MAAM,EAAW,CAAC;AAE5D,MAAM,CAAC,MAAM,SAAS,GAAG,wBAAwB,CAAC;IACjD,QAAQ,EAAE,iBAAiB;IAC3B,UAAU,EAAE;QACX,QAAQ,EAAE,
|
|
1
|
+
{"version":3,"file":"datatable.js","sourceRoot":"","sources":["../../src/tags/datatable.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deflist.d.ts","sourceRoot":"","sources":["../../src/tags/deflist.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"deflist.d.ts","sourceRoot":"","sources":["../../src/tags/deflist.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,kBAAkB,CAAC;AAwFvC;;;;;;;;;;;;;;;;GAgBG;AACH,eAAO,MAAM,OAAO,gBA4DlB,CAAC"}
|
package/dist/tags/deflist.js
CHANGED
|
@@ -69,12 +69,8 @@ function extractTermPrefix(itemNode) {
|
|
|
69
69
|
}
|
|
70
70
|
return remainingInline;
|
|
71
71
|
})();
|
|
72
|
-
const restInline = trimmed.length > 0
|
|
73
|
-
|
|
74
|
-
: [];
|
|
75
|
-
const restParagraph = restInline.length > 0
|
|
76
|
-
? [new Ast.Node('paragraph', {}, restInline)]
|
|
77
|
-
: [];
|
|
72
|
+
const restInline = trimmed.length > 0 ? [new Ast.Node('inline', {}, trimmed)] : [];
|
|
73
|
+
const restParagraph = restInline.length > 0 ? [new Ast.Node('paragraph', {}, restInline)] : [];
|
|
78
74
|
return {
|
|
79
75
|
term: termNodes,
|
|
80
76
|
rest: restInline,
|
|
@@ -102,13 +98,11 @@ export const deflist = createContentModelSchema({
|
|
|
102
98
|
attributes: {},
|
|
103
99
|
contentModel: {
|
|
104
100
|
type: 'sequence',
|
|
105
|
-
fields: [
|
|
106
|
-
{ name: 'list', match: 'list', optional: false },
|
|
107
|
-
],
|
|
101
|
+
fields: [{ name: 'list', match: 'list', optional: false }],
|
|
108
102
|
},
|
|
109
103
|
transform(resolved, _attrs, config) {
|
|
110
104
|
const listNodes = asNodes(resolved.list);
|
|
111
|
-
const listNode = listNodes.find(n => n.type === 'list');
|
|
105
|
+
const listNode = listNodes.find((n) => n.type === 'list');
|
|
112
106
|
if (!listNode) {
|
|
113
107
|
// Fallback when the content model didn't capture a list — render
|
|
114
108
|
// an empty dl so DOM stays valid; the content-model resolver
|
|
@@ -118,7 +112,7 @@ export const deflist = createContentModelSchema({
|
|
|
118
112
|
'data-zone-layout': 'definition-list',
|
|
119
113
|
}, []);
|
|
120
114
|
}
|
|
121
|
-
const items = (listNode.children ?? []).filter(c => c.type === 'item');
|
|
115
|
+
const items = (listNode.children ?? []).filter((c) => c.type === 'item');
|
|
122
116
|
const rows = [];
|
|
123
117
|
for (const item of items) {
|
|
124
118
|
const extracted = extractTermPrefix(item);
|
package/dist/tags/deflist.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deflist.js","sourceRoot":"","sources":["../../src/tags/deflist.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,kBAAkB,CAAC;AAEvC,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC;AAC7B,OAAO,EAAE,wBAAwB,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAEpE;;;;;8DAK8D;AAC9D,SAAS,iBAAiB,
|
|
1
|
+
{"version":3,"file":"deflist.js","sourceRoot":"","sources":["../../src/tags/deflist.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"details.d.ts","sourceRoot":"","sources":["../../src/tags/details.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,kBAAkB,CAAC;AAMvC,eAAO,MAAM,OAAO,
|
|
1
|
+
{"version":3,"file":"details.d.ts","sourceRoot":"","sources":["../../src/tags/details.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,kBAAkB,CAAC;AAMvC,eAAO,MAAM,OAAO,gBAsClB,CAAC"}
|
package/dist/tags/details.js
CHANGED
|
@@ -4,21 +4,24 @@ import { createContentModelSchema, createComponentRenderable, asNodes } from '..
|
|
|
4
4
|
import { RenderableNodeCursor } from '../lib/renderable.js';
|
|
5
5
|
export const details = createContentModelSchema({
|
|
6
6
|
attributes: {
|
|
7
|
-
summary: {
|
|
7
|
+
summary: {
|
|
8
|
+
type: String,
|
|
9
|
+
required: false,
|
|
10
|
+
description: 'Clickable summary text shown when collapsed',
|
|
11
|
+
},
|
|
8
12
|
open: { type: Boolean, required: false, description: 'Expand the details section by default' },
|
|
9
13
|
},
|
|
10
14
|
contentModel: {
|
|
11
15
|
type: 'sequence',
|
|
12
|
-
fields: [
|
|
13
|
-
{ name: 'body', match: 'any', optional: true, greedy: true },
|
|
14
|
-
],
|
|
16
|
+
fields: [{ name: 'body', match: 'any', optional: true, greedy: true }],
|
|
15
17
|
},
|
|
16
18
|
transform(resolved, attrs, config) {
|
|
17
19
|
const children = new RenderableNodeCursor(Markdoc.transform(asNodes(resolved.body), config));
|
|
18
20
|
const summaryText = attrs.summary || 'Details';
|
|
19
21
|
const summaryTag = new Tag('summary', {}, [summaryText]);
|
|
20
22
|
const body = children.wrap('div');
|
|
21
|
-
const tag = createComponentRenderable({
|
|
23
|
+
const tag = createComponentRenderable({
|
|
24
|
+
rune: 'details',
|
|
22
25
|
tag: 'details',
|
|
23
26
|
properties: {
|
|
24
27
|
summary: summaryTag,
|
package/dist/tags/details.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"details.js","sourceRoot":"","sources":["../../src/tags/details.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,kBAAkB,CAAC;AAEvC,MAAM,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC;AACxB,OAAO,EAAE,wBAAwB,EAAE,yBAAyB,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAC/F,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAE5D,MAAM,CAAC,MAAM,OAAO,GAAG,wBAAwB,CAAC;IAC/C,UAAU,EAAE;QACX,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"details.js","sourceRoot":"","sources":["../../src/tags/details.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,kBAAkB,CAAC;AAEvC,MAAM,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC;AACxB,OAAO,EAAE,wBAAwB,EAAE,yBAAyB,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAC/F,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAE5D,MAAM,CAAC,MAAM,OAAO,GAAG,wBAAwB,CAAC;IAC/C,UAAU,EAAE;QACX,OAAO,EAAE;YACR,IAAI,EAAE,MAAM;YACZ,QAAQ,EAAE,KAAK;YACf,WAAW,EAAE,6CAA6C;SAC1D;QACD,IAAI,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,WAAW,EAAE,uCAAuC,EAAE;KAC9F;IACD,YAAY,EAAE;QACb,IAAI,EAAE,UAAU;QAChB,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;KACtE;IACD,SAAS,CAAC,QAAQ,EAAE,KAAK,EAAE,MAAM;QAChC,MAAM,QAAQ,GAAG,IAAI,oBAAoB,CACxC,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAyB,CACzE,CAAC;QAEF,MAAM,WAAW,GAAG,KAAK,CAAC,OAAO,IAAI,SAAS,CAAC;QAC/C,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,SAAS,EAAE,EAAE,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC;QACzD,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAElC,MAAM,GAAG,GAAG,yBAAyB,CAAC;YACrC,IAAI,EAAE,SAAS;YACf,GAAG,EAAE,SAAS;YACd,UAAU,EAAE;gBACX,OAAO,EAAE,UAAU;aACnB;YACD,IAAI,EAAE;gBACL,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC;aACrB;YACD,QAAQ,EAAE,CAAC,UAAU,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC;SACnC,CAAC,CAAC;QAEH,IAAI,KAAK,CAAC,IAAI;YAAG,GAAG,CAAC,UAAsC,CAAC,IAAI,GAAG,IAAI,CAAC;QAExE,OAAO,GAAG,CAAC;IACZ,CAAC;CACD,CAAC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"diagram.d.ts","sourceRoot":"","sources":["../../src/tags/diagram.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,kBAAkB,CAAC;AAMvC,eAAO,MAAM,OAAO,
|
|
1
|
+
{"version":3,"file":"diagram.d.ts","sourceRoot":"","sources":["../../src/tags/diagram.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,kBAAkB,CAAC;AAMvC,eAAO,MAAM,OAAO,gBAsElB,CAAC"}
|
package/dist/tags/diagram.js
CHANGED
|
@@ -4,14 +4,17 @@ import { createContentModelSchema, createComponentRenderable, asNodes } from '..
|
|
|
4
4
|
const languageType = ['mermaid', 'plantuml', 'ascii'];
|
|
5
5
|
export const diagram = createContentModelSchema({
|
|
6
6
|
attributes: {
|
|
7
|
-
language: {
|
|
7
|
+
language: {
|
|
8
|
+
type: String,
|
|
9
|
+
required: false,
|
|
10
|
+
matches: languageType.slice(),
|
|
11
|
+
description: 'Diagram language: mermaid, plantuml, or ascii',
|
|
12
|
+
},
|
|
8
13
|
title: { type: String, required: false, description: 'Title displayed above the diagram' },
|
|
9
14
|
},
|
|
10
15
|
contentModel: {
|
|
11
16
|
type: 'sequence',
|
|
12
|
-
fields: [
|
|
13
|
-
{ name: 'source', match: 'fence' },
|
|
14
|
-
],
|
|
17
|
+
fields: [{ name: 'source', match: 'fence' }],
|
|
15
18
|
},
|
|
16
19
|
transform(resolved, attrs) {
|
|
17
20
|
const language = attrs.language ?? 'mermaid';
|
|
@@ -45,7 +48,8 @@ export const diagram = createContentModelSchema({
|
|
|
45
48
|
if (source) {
|
|
46
49
|
children.push(new Tag('template', { 'data-content': 'source' }, [source]));
|
|
47
50
|
}
|
|
48
|
-
const node = createComponentRenderable({
|
|
51
|
+
const node = createComponentRenderable({
|
|
52
|
+
rune: 'diagram',
|
|
49
53
|
tag: 'figure',
|
|
50
54
|
properties: {
|
|
51
55
|
language: languageMeta,
|
package/dist/tags/diagram.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"diagram.js","sourceRoot":"","sources":["../../src/tags/diagram.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,kBAAkB,CAAC;AACvC,MAAM,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC;AACxB,OAAO,EAAE,wBAAwB,EAAE,yBAAyB,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAE/F,MAAM,YAAY,GAAG,CAAC,SAAS,EAAE,UAAU,EAAE,OAAO,CAAU,CAAC;AAE/D,MAAM,CAAC,MAAM,OAAO,GAAG,wBAAwB,CAAC;IAC/C,UAAU,EAAE;QACX,QAAQ,EAAE,
|
|
1
|
+
{"version":3,"file":"diagram.js","sourceRoot":"","sources":["../../src/tags/diagram.ts"],"names":[],"mappings":"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"}
|
package/dist/tags/diff.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"diff.d.ts","sourceRoot":"","sources":["../../src/tags/diff.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"diff.d.ts","sourceRoot":"","sources":["../../src/tags/diff.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,kBAAkB,CAAC;AAmPvC,eAAO,MAAM,IAAI,gBAqFf,CAAC"}
|
package/dist/tags/diff.js
CHANGED
|
@@ -15,9 +15,8 @@ function computeLineDiff(before, after) {
|
|
|
15
15
|
const dp = Array.from({ length: m + 1 }, () => new Array(n + 1).fill(0));
|
|
16
16
|
for (let i = 1; i <= m; i++) {
|
|
17
17
|
for (let j = 1; j <= n; j++) {
|
|
18
|
-
dp[i][j] =
|
|
19
|
-
? dp[i - 1][j - 1] + 1
|
|
20
|
-
: Math.max(dp[i - 1][j], dp[i][j - 1]);
|
|
18
|
+
dp[i][j] =
|
|
19
|
+
a[i - 1] === b[j - 1] ? dp[i - 1][j - 1] + 1 : Math.max(dp[i - 1][j], dp[i][j - 1]);
|
|
21
20
|
}
|
|
22
21
|
}
|
|
23
22
|
// Backtrack to produce hunks
|
|
@@ -108,12 +107,19 @@ function buildUnifiedRenderable(hunks, lang, beforeOffset = 0, afterOffset = 0)
|
|
|
108
107
|
const lines = getUnifiedLines(hunks);
|
|
109
108
|
const lineNodes = lines.map(({ hunk, beforeNum, afterNum }) => {
|
|
110
109
|
return new Tag('span', { 'data-name': 'line', 'data-line-status': hunk.type }, [
|
|
111
|
-
new Tag('span', { 'data-name': 'gutter-num', 'data-side': 'before' }, [
|
|
112
|
-
|
|
113
|
-
|
|
110
|
+
new Tag('span', { 'data-name': 'gutter-num', 'data-side': 'before' }, [
|
|
111
|
+
beforeNum != null ? String(beforeNum + beforeOffset) : '',
|
|
112
|
+
]),
|
|
113
|
+
new Tag('span', { 'data-name': 'gutter-num', 'data-side': 'after' }, [
|
|
114
|
+
afterNum != null ? String(afterNum + afterOffset) : '',
|
|
115
|
+
]),
|
|
116
|
+
new Tag('span', { 'data-name': 'line-content', ...(lang ? { 'data-language': lang } : {}) }, [
|
|
117
|
+
hunk.text,
|
|
118
|
+
]),
|
|
114
119
|
]);
|
|
115
120
|
});
|
|
116
|
-
return [
|
|
121
|
+
return [
|
|
122
|
+
new Tag('pre', { 'data-name': 'code', 'data-copy-selector': '[data-name="line-content"]' }, [
|
|
117
123
|
// WORK-304 — inner wrapper hosts the `display: grid; min-width:
|
|
118
124
|
// max-content` row-width sizing so the row tint (+/-/highlight)
|
|
119
125
|
// extends across the full horizontal scroll region. Mirrors the
|
|
@@ -121,7 +127,8 @@ function buildUnifiedRenderable(hunks, lang, beforeOffset = 0, afterOffset = 0)
|
|
|
121
127
|
// same reason: putting the sizing on the pre itself defeats
|
|
122
128
|
// `overflow-x: auto`. CSS hook: `.rf-diff__rows`.
|
|
123
129
|
new Tag('div', { 'data-name': 'rows' }, lineNodes),
|
|
124
|
-
])
|
|
130
|
+
]),
|
|
131
|
+
];
|
|
125
132
|
}
|
|
126
133
|
/** Build split diff renderable — side-by-side panels with one numbered
|
|
127
134
|
* gutter per panel. Placeholder rows (where the matching side has the
|
|
@@ -135,28 +142,28 @@ function buildUnifiedRenderable(hunks, lang, beforeOffset = 0, afterOffset = 0)
|
|
|
135
142
|
function buildSplitRenderable(hunks, lang, beforeOffset = 0, afterOffset = 0) {
|
|
136
143
|
const { before, after } = getSplitLines(hunks);
|
|
137
144
|
function buildPanelLines(lines, side, offset) {
|
|
138
|
-
return lines.map(line => {
|
|
145
|
+
return lines.map((line) => {
|
|
139
146
|
const type = line ? line.hunk.type : 'empty';
|
|
140
147
|
return new Tag('span', { 'data-name': 'line', 'data-line-status': type }, [
|
|
141
|
-
new Tag('span', { 'data-name': 'gutter-num', 'data-side': side }, [
|
|
142
|
-
|
|
143
|
-
line ? line.hunk.text : '',
|
|
148
|
+
new Tag('span', { 'data-name': 'gutter-num', 'data-side': side }, [
|
|
149
|
+
line ? String(line.num + offset) : '',
|
|
144
150
|
]),
|
|
151
|
+
new Tag('span', { 'data-name': 'line-content', ...(line && lang ? { 'data-language': lang } : {}) }, [line ? line.hunk.text : '']),
|
|
145
152
|
]);
|
|
146
153
|
});
|
|
147
154
|
}
|
|
148
|
-
return [
|
|
155
|
+
return [
|
|
156
|
+
new Tag('div', { 'data-name': 'split-container' }, [
|
|
149
157
|
new Tag('div', { 'data-name': 'panel' }, [
|
|
150
158
|
new Tag('pre', { 'data-name': 'code', 'data-copy-selector': '[data-name="line-content"]' }, [
|
|
151
159
|
new Tag('div', { 'data-name': 'rows' }, buildPanelLines(before, 'before', beforeOffset)),
|
|
152
160
|
]),
|
|
153
161
|
]),
|
|
154
162
|
new Tag('div', { 'data-name': 'panel' }, [
|
|
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
|
-
]),
|
|
163
|
+
new Tag('pre', { 'data-name': 'code', 'data-copy-selector': '[data-name="line-content"]' }, [new Tag('div', { 'data-name': 'rows' }, buildPanelLines(after, 'after', afterOffset))]),
|
|
158
164
|
]),
|
|
159
|
-
])
|
|
165
|
+
]),
|
|
166
|
+
];
|
|
160
167
|
}
|
|
161
168
|
/** Parse the leading integer of a `lines="N-M"` (or `"N"`) annotation and
|
|
162
169
|
* return `N - 1` as the gutter offset, or 0 when the annotation is
|
|
@@ -191,15 +198,26 @@ function deriveHeader(title, beforeSource, afterSource) {
|
|
|
191
198
|
}
|
|
192
199
|
export const diff = createContentModelSchema({
|
|
193
200
|
attributes: {
|
|
194
|
-
mode: {
|
|
195
|
-
|
|
196
|
-
|
|
201
|
+
mode: {
|
|
202
|
+
type: String,
|
|
203
|
+
required: false,
|
|
204
|
+
matches: modeType.slice(),
|
|
205
|
+
description: 'Diff display style: unified, split, or inline',
|
|
206
|
+
},
|
|
207
|
+
language: {
|
|
208
|
+
type: String,
|
|
209
|
+
required: false,
|
|
210
|
+
description: 'Programming language for syntax highlighting',
|
|
211
|
+
},
|
|
212
|
+
title: {
|
|
213
|
+
type: String,
|
|
214
|
+
required: false,
|
|
215
|
+
description: 'Optional title or filename displayed above the diff',
|
|
216
|
+
},
|
|
197
217
|
},
|
|
198
218
|
contentModel: {
|
|
199
219
|
type: 'sequence',
|
|
200
|
-
fields: [
|
|
201
|
-
{ name: 'fences', match: 'fence', greedy: true },
|
|
202
|
-
],
|
|
220
|
+
fields: [{ name: 'fences', match: 'fence', greedy: true }],
|
|
203
221
|
},
|
|
204
222
|
transform(resolved, attrs) {
|
|
205
223
|
const mode = attrs.mode ?? 'unified';
|
|
@@ -236,7 +254,8 @@ export const diff = createContentModelSchema({
|
|
|
236
254
|
? buildSplitRenderable(hunks, lang, beforeOffset, afterOffset)
|
|
237
255
|
: buildUnifiedRenderable(hunks, lang, beforeOffset, afterOffset);
|
|
238
256
|
const header = deriveHeader(title, beforeFenceSource, afterFenceSource);
|
|
239
|
-
const renderable = createComponentRenderable({
|
|
257
|
+
const renderable = createComponentRenderable({
|
|
258
|
+
rune: 'diff',
|
|
240
259
|
tag: 'div',
|
|
241
260
|
properties: {
|
|
242
261
|
mode: modeMeta,
|