@refrakt-md/runes 0.18.0 → 0.20.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 +69 -0
- package/dist/aggregate-resolve.js.map +1 -1
- package/dist/attribute-presets.d.ts.map +1 -1
- package/dist/attribute-presets.js +24 -0
- package/dist/attribute-presets.js.map +1 -1
- package/dist/collection-helpers.d.ts +24 -2
- package/dist/collection-helpers.d.ts.map +1 -1
- package/dist/collection-helpers.js +24 -3
- package/dist/collection-helpers.js.map +1 -1
- package/dist/collection-resolve.d.ts.map +1 -1
- package/dist/collection-resolve.js +15 -8
- package/dist/collection-resolve.js.map +1 -1
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +53 -35
- package/dist/config.js.map +1 -1
- package/dist/fence-escape.d.ts.map +1 -1
- package/dist/fence-escape.js +7 -1
- package/dist/fence-escape.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/lib/index.d.ts.map +1 -1
- package/dist/lib/index.js +101 -1
- package/dist/lib/index.js.map +1 -1
- package/dist/lib/resolver.d.ts.map +1 -1
- package/dist/lib/resolver.js +13 -2
- package/dist/lib/resolver.js.map +1 -1
- package/dist/tags/aggregate.d.ts.map +1 -1
- package/dist/tags/aggregate.js +10 -3
- package/dist/tags/aggregate.js.map +1 -1
- package/dist/tags/bg.d.ts.map +1 -1
- package/dist/tags/bg.js +22 -1
- package/dist/tags/bg.js.map +1 -1
- package/dist/tags/card.d.ts.map +1 -1
- package/dist/tags/card.js +54 -43
- package/dist/tags/card.js.map +1 -1
- package/dist/tags/common.d.ts +37 -8
- package/dist/tags/common.d.ts.map +1 -1
- package/dist/tags/common.js +59 -24
- package/dist/tags/common.js.map +1 -1
- package/dist/tags/gallery.d.ts.map +1 -1
- package/dist/tags/gallery.js +1 -6
- package/dist/tags/gallery.js.map +1 -1
- package/dist/tags/showcase.d.ts.map +1 -1
- package/dist/tags/showcase.js +31 -15
- package/dist/tags/showcase.js.map +1 -1
- package/package.json +3 -3
package/dist/tags/card.js
CHANGED
|
@@ -2,7 +2,7 @@ import Markdoc from '@markdoc/markdoc';
|
|
|
2
2
|
const { Tag } = Markdoc;
|
|
3
3
|
import { createContentModelSchema, createComponentRenderable, asNodes } from '../lib/index.js';
|
|
4
4
|
import { RenderableNodeCursor } from '../lib/renderable.js';
|
|
5
|
-
import { SplitLayoutModel, buildLayoutMetas, extractMediaImage } from './common.js';
|
|
5
|
+
import { SplitLayoutModel, buildLayoutMetas, splitMediaBodyFooter, extractMediaImage } from './common.js';
|
|
6
6
|
/**
|
|
7
7
|
* `card` (SPEC-070) — a generic, self-contained content card.
|
|
8
8
|
*
|
|
@@ -29,38 +29,41 @@ export const card = createContentModelSchema({
|
|
|
29
29
|
base: SplitLayoutModel,
|
|
30
30
|
attributes: {
|
|
31
31
|
href: { type: String, required: false, default: '', description: 'Optional link target; makes the whole card clickable.' },
|
|
32
|
+
// SPEC-089 — cover mode (`media-position="cover"`, from splitLayoutAttributes)
|
|
33
|
+
// overlays content on a media well. `content-place` anchors the overlaid box
|
|
34
|
+
// ("block inline", e.g. "end start", or "auto" to adapt on orientation);
|
|
35
|
+
// `height` / `aspect` give a cover/bg-only card its intrinsic shape.
|
|
36
|
+
'content-place': { type: String, required: false, description: 'Cover overlay anchor: "<block> <inline>" (e.g. "end start") or "auto"' },
|
|
37
|
+
height: { type: String, required: false, matches: ['sm', 'md', 'lg', 'xl'], description: 'Intrinsic card height (named scale) for cover / bg-only cards' },
|
|
38
|
+
aspect: { type: String, required: false, description: 'Intrinsic card aspect ratio (e.g. "16/9", "3/4") for cover / bg-only cards' },
|
|
32
39
|
},
|
|
33
40
|
contentModel: {
|
|
34
41
|
type: 'sequence',
|
|
35
42
|
fields: [{ name: 'body', match: 'any', optional: true, greedy: true }],
|
|
36
43
|
},
|
|
37
44
|
transform(resolved, attrs, config) {
|
|
38
|
-
// Split the body
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
if (n.type === 'hr')
|
|
43
|
-
zones.push([]);
|
|
44
|
-
else
|
|
45
|
-
zones[zones.length - 1].push(n);
|
|
46
|
-
}
|
|
47
|
-
let mediaNodes = [];
|
|
48
|
-
let bodyNodes = [];
|
|
49
|
-
let footerNodes = [];
|
|
50
|
-
if (zones.length === 1) {
|
|
51
|
-
bodyNodes = zones[0];
|
|
52
|
-
}
|
|
53
|
-
else if (zones.length === 2) {
|
|
54
|
-
mediaNodes = zones[0];
|
|
55
|
-
bodyNodes = zones[1];
|
|
56
|
-
}
|
|
57
|
-
else {
|
|
58
|
-
mediaNodes = zones[0];
|
|
59
|
-
footerNodes = zones[zones.length - 1];
|
|
60
|
-
bodyNodes = zones.slice(1, -1).flat();
|
|
61
|
-
}
|
|
45
|
+
// Split the body on `---` into media / body / footer zones. The shared
|
|
46
|
+
// helper enforces the canonical media-first body shape (1 group = body,
|
|
47
|
+
// 2 = media + body, 3+ = media + body + footer).
|
|
48
|
+
const { media: mediaNodes, body: bodyNodes, footer: footerNodes } = splitMediaBodyFooter(asNodes(resolved.body));
|
|
62
49
|
const { metas: layoutMetas, children: layoutChildren } = buildLayoutMetas(attrs);
|
|
50
|
+
// SPEC-089 cover knobs — emit as meta tags only when set; the engine reads
|
|
51
|
+
// them as fields (content-place → overlay anchor vars; height/aspect →
|
|
52
|
+
// intrinsic shape). They live in the children tree so the field channel
|
|
53
|
+
// finds them, and are marked via `properties` below.
|
|
54
|
+
const contentPlace = attrs['content-place'];
|
|
55
|
+
const height = attrs.height;
|
|
56
|
+
const aspect = attrs.aspect;
|
|
57
|
+
const contentPlaceMeta = contentPlace ? new Tag('meta', { content: contentPlace }) : undefined;
|
|
58
|
+
const heightMeta = height ? new Tag('meta', { content: height }) : undefined;
|
|
59
|
+
const aspectMeta = aspect ? new Tag('meta', { content: aspect }) : undefined;
|
|
63
60
|
const children = [...layoutChildren];
|
|
61
|
+
if (contentPlaceMeta)
|
|
62
|
+
children.push(contentPlaceMeta);
|
|
63
|
+
if (heightMeta)
|
|
64
|
+
children.push(heightMeta);
|
|
65
|
+
if (aspectMeta)
|
|
66
|
+
children.push(aspectMeta);
|
|
64
67
|
// Media zone — unwrap a bare image; otherwise render arbitrary content.
|
|
65
68
|
if (mediaNodes.length > 0) {
|
|
66
69
|
const mediaCursor = new RenderableNodeCursor(Markdoc.transform(mediaNodes, config));
|
|
@@ -78,46 +81,49 @@ export const card = createContentModelSchema({
|
|
|
78
81
|
eyebrowNode = bodyNodes[0];
|
|
79
82
|
mainBodyNodes = bodyNodes.slice(1);
|
|
80
83
|
}
|
|
81
|
-
//
|
|
82
|
-
//
|
|
83
|
-
|
|
84
|
+
// SPEC-081/091 flat-slot model: the transform emits flat `data-name` slots
|
|
85
|
+
// (media · eyebrow · body · footer · link); the engine's `layout` config
|
|
86
|
+
// groups eyebrow/body/footer into the `content` wrapper and places it
|
|
87
|
+
// beside media. This is what lets cover ({% ref "SPEC-089" /%}) be a
|
|
88
|
+
// `media-position` variant on card.
|
|
84
89
|
let eyebrowTag;
|
|
85
90
|
if (eyebrowNode) {
|
|
86
91
|
const eyebrowCursor = new RenderableNodeCursor(Markdoc.transform([eyebrowNode], config));
|
|
87
92
|
const first = eyebrowCursor.toArray()[0];
|
|
88
93
|
if (Markdoc.Tag.isTag(first)) {
|
|
89
94
|
eyebrowTag = first;
|
|
90
|
-
bodyInner.push(eyebrowTag);
|
|
91
95
|
}
|
|
92
96
|
}
|
|
93
97
|
const bodyCursor = new RenderableNodeCursor(Markdoc.transform(mainBodyNodes, config));
|
|
94
98
|
const bodyRendered = bodyCursor.toArray();
|
|
95
99
|
// The body's leading heading is the card title — give it a hook so it can
|
|
96
|
-
// sit tight under an eyebrow
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
}
|
|
102
|
-
bodyInner.push(...bodyRendered);
|
|
103
|
-
const bodyDiv = new Tag('div', { 'data-name': 'body' }, bodyInner);
|
|
104
|
-
const contentChildren = [bodyDiv];
|
|
100
|
+
// sit tight under an eyebrow (or a leading `bar` strip) instead of carrying
|
|
101
|
+
// default prose top margin. Find the first heading rather than only
|
|
102
|
+
// position 0, so a composed header (e.g. a `{% bar %}` before the title)
|
|
103
|
+
// doesn't leave the title with a prose-sized gap.
|
|
104
|
+
const titleTag = bodyRendered.find((n) => Markdoc.Tag.isTag(n) && /^h[1-6]$/.test(n.name));
|
|
105
|
+
const bodyDiv = new Tag('div', { 'data-name': 'body' }, bodyRendered);
|
|
105
106
|
let footerTag;
|
|
106
107
|
if (footerNodes.length > 0) {
|
|
107
108
|
const footerCursor = new RenderableNodeCursor(Markdoc.transform(footerNodes, config));
|
|
108
109
|
footerTag = new Tag('footer', { 'data-name': 'footer' }, footerCursor.toArray());
|
|
109
|
-
contentChildren.push(footerTag);
|
|
110
110
|
}
|
|
111
|
-
|
|
112
|
-
|
|
111
|
+
// Flat slots, in order. The engine's layout assembly wraps
|
|
112
|
+
// eyebrow/body/footer into `content`.
|
|
113
|
+
if (eyebrowTag)
|
|
114
|
+
children.push(eyebrowTag);
|
|
115
|
+
children.push(bodyDiv);
|
|
116
|
+
if (footerTag)
|
|
117
|
+
children.push(footerTag);
|
|
113
118
|
// Whole-card link as a stretched overlay (keeps nested links valid).
|
|
119
|
+
// Unlisted in `layout`, so it stays a direct child of the card root.
|
|
114
120
|
let linkTag;
|
|
115
121
|
const href = String(attrs.href ?? '');
|
|
116
122
|
if (href) {
|
|
117
123
|
linkTag = new Tag('a', { 'data-name': 'link', href, 'aria-hidden': 'true', tabindex: '-1' }, []);
|
|
118
124
|
children.push(linkTag);
|
|
119
125
|
}
|
|
120
|
-
const refs = {
|
|
126
|
+
const refs = { body: bodyDiv };
|
|
121
127
|
if (titleTag)
|
|
122
128
|
refs.title = titleTag;
|
|
123
129
|
if (eyebrowTag)
|
|
@@ -129,7 +135,12 @@ export const card = createContentModelSchema({
|
|
|
129
135
|
return createComponentRenderable({
|
|
130
136
|
rune: 'card',
|
|
131
137
|
tag: 'div',
|
|
132
|
-
properties: {
|
|
138
|
+
properties: {
|
|
139
|
+
'media-position': layoutMetas.mediaPosition,
|
|
140
|
+
'content-place': contentPlaceMeta,
|
|
141
|
+
height: heightMeta,
|
|
142
|
+
aspect: aspectMeta,
|
|
143
|
+
},
|
|
133
144
|
refs,
|
|
134
145
|
children,
|
|
135
146
|
});
|
package/dist/tags/card.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"card.js","sourceRoot":"","sources":["../../src/tags/card.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;AAC5D,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"card.js","sourceRoot":"","sources":["../../src/tags/card.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;AAC5D,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAE1G;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,CAAC,MAAM,IAAI,GAAG,wBAAwB,CAAC;IAC5C,IAAI,EAAE,gBAAgB;IACtB,UAAU,EAAE;QACX,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,EAAE,WAAW,EAAE,uDAAuD,EAAE;QAC1H,+EAA+E;QAC/E,6EAA6E;QAC7E,yEAAyE;QACzE,qEAAqE;QACrE,eAAe,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,WAAW,EAAE,uEAAuE,EAAE;QACxI,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,WAAW,EAAE,+DAA+D,EAAE;QAC1J,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,WAAW,EAAE,4EAA4E,EAAE;KACpI;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,uEAAuE;QACvE,wEAAwE;QACxE,iDAAiD;QACjD,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,GAAG,oBAAoB,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;QAEjH,MAAM,EAAE,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAE,cAAc,EAAE,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAC;QAEjF,2EAA2E;QAC3E,uEAAuE;QACvE,wEAAwE;QACxE,qDAAqD;QACrD,MAAM,YAAY,GAAG,KAAK,CAAC,eAAe,CAAuB,CAAC;QAClE,MAAM,MAAM,GAAG,KAAK,CAAC,MAA4B,CAAC;QAClD,MAAM,MAAM,GAAG,KAAK,CAAC,MAA4B,CAAC;QAClD,MAAM,gBAAgB,GAAG,YAAY,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,MAAM,EAAE,EAAE,OAAO,EAAE,YAAY,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAC/F,MAAM,UAAU,GAAG,MAAM,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,MAAM,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAC7E,MAAM,UAAU,GAAG,MAAM,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,MAAM,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAE7E,MAAM,QAAQ,GAAyB,CAAC,GAAG,cAAc,CAAC,CAAC;QAC3D,IAAI,gBAAgB;YAAE,QAAQ,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;QACtD,IAAI,UAAU;YAAE,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAC1C,IAAI,UAAU;YAAE,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAE1C,wEAAwE;QACxE,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC3B,MAAM,WAAW,GAAG,IAAI,oBAAoB,CAC3C,OAAO,CAAC,SAAS,CAAC,UAAU,EAAE,MAAM,CAAyB,CAC7D,CAAC;YACF,MAAM,GAAG,GAAG,iBAAiB,CAAC,WAAW,CAAC,CAAC;YAC3C,MAAM,KAAK,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC;YAClD,QAAQ,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,KAAK,EAAE,EAAE,cAAc,EAAE,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,EAAE,KAA6B,CAAC,CAAC,CAAC;QACjH,CAAC;QAED,2EAA2E;QAC3E,4EAA4E;QAC5E,IAAI,WAA6B,CAAC;QAClC,IAAI,aAAa,GAAG,SAAS,CAAC;QAC9B,IACC,SAAS,CAAC,MAAM,IAAI,CAAC;YACrB,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,WAAW;YACjC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,SAAS,EAC9B,CAAC;YACF,WAAW,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;YAC3B,aAAa,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QACpC,CAAC;QAED,2EAA2E;QAC3E,yEAAyE;QACzE,sEAAsE;QACtE,qEAAqE;QACrE,oCAAoC;QACpC,IAAI,UAAgD,CAAC;QACrD,IAAI,WAAW,EAAE,CAAC;YACjB,MAAM,aAAa,GAAG,IAAI,oBAAoB,CAC7C,OAAO,CAAC,SAAS,CAAC,CAAC,WAAW,CAAC,EAAE,MAAM,CAAyB,CAChE,CAAC;YACF,MAAM,KAAK,GAAG,aAAa,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC;YACzC,IAAI,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC9B,UAAU,GAAG,KAAK,CAAC;YACpB,CAAC;QACF,CAAC;QACD,MAAM,UAAU,GAAG,IAAI,oBAAoB,CAC1C,OAAO,CAAC,SAAS,CAAC,aAAa,EAAE,MAAM,CAAyB,CAChE,CAAC;QACF,MAAM,YAAY,GAAG,UAAU,CAAC,OAAO,EAA0B,CAAC;QAClE,0EAA0E;QAC1E,4EAA4E;QAC5E,oEAAoE;QACpE,yEAAyE;QACzE,kDAAkD;QAClD,MAAM,QAAQ,GAAG,YAAY,CAAC,IAAI,CACjC,CAAC,CAAC,EAAiC,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CACrF,CAAC;QACF,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,KAAK,EAAE,EAAE,WAAW,EAAE,MAAM,EAAE,EAAE,YAAY,CAAC,CAAC;QAEtE,IAAI,SAA+C,CAAC;QACpD,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC5B,MAAM,YAAY,GAAG,IAAI,oBAAoB,CAC5C,OAAO,CAAC,SAAS,CAAC,WAAW,EAAE,MAAM,CAAyB,CAC9D,CAAC;YACF,SAAS,GAAG,IAAI,GAAG,CAAC,QAAQ,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,EAAE,YAAY,CAAC,OAAO,EAA0B,CAAC,CAAC;QAC1G,CAAC;QAED,2DAA2D;QAC3D,sCAAsC;QACtC,IAAI,UAAU;YAAE,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAC1C,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACvB,IAAI,SAAS;YAAE,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAExC,qEAAqE;QACrE,qEAAqE;QACrE,IAAI,OAA6C,CAAC;QAClD,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;QACtC,IAAI,IAAI,EAAE,CAAC;YACV,OAAO,GAAG,IAAI,GAAG,CAAC,GAAG,EAAE,EAAE,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC;YACjG,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACxB,CAAC;QAED,MAAM,IAAI,GAA6C,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;QACzE,IAAI,QAAQ;YAAE,IAAI,CAAC,KAAK,GAAG,QAAQ,CAAC;QACpC,IAAI,UAAU;YAAE,IAAI,CAAC,OAAO,GAAG,UAAU,CAAC;QAC1C,IAAI,SAAS;YAAE,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC;QACvC,IAAI,OAAO;YAAE,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC;QAEjC,OAAO,yBAAyB,CAAC;YAChC,IAAI,EAAE,MAAM;YACZ,GAAG,EAAE,KAAK;YACV,UAAU,EAAE;gBACX,gBAAgB,EAAE,WAAW,CAAC,aAAa;gBAC3C,eAAe,EAAE,gBAAgB;gBACjC,MAAM,EAAE,UAAU;gBAClB,MAAM,EAAE,UAAU;aAClB;YACD,IAAI;YACJ,QAAQ;SACR,CAAC,CAAC;IACJ,CAAC;CACD,CAAC,CAAC"}
|
package/dist/tags/common.d.ts
CHANGED
|
@@ -1,9 +1,18 @@
|
|
|
1
1
|
import Markdoc from '@markdoc/markdoc';
|
|
2
|
-
import type { Tag, RenderableTreeNode, SchemaAttribute } from '@markdoc/markdoc';
|
|
2
|
+
import type { Tag, Node, RenderableTreeNode, SchemaAttribute } from '@markdoc/markdoc';
|
|
3
3
|
import { RenderableNodeCursor } from '../lib/renderable.js';
|
|
4
4
|
/** @deprecated Split layout attributes are now provided by splitLayoutAttributes */
|
|
5
5
|
export declare const SplitablePageSectionModel: undefined;
|
|
6
|
-
/**
|
|
6
|
+
/** Shared layout attributes for media+content runes — same vocabulary as
|
|
7
|
+
* `bento-cell`, so every media-bearing surface (card, recipe, hero, feature,
|
|
8
|
+
* step, realm, faction, playlist) speaks one language. `media-position` covers
|
|
9
|
+
* all four placements (the old `layout`'s `stacked`/`split`/`split-reverse` are
|
|
10
|
+
* the `top`/`start`/`end` subset, with `bottom` as a new mode). `media-ratio`
|
|
11
|
+
* uses the same preset percentages as `bento-cell` instead of the open-ended
|
|
12
|
+
* `ratio="2 1"` string. `valign` is the orientation-agnostic cross-axis dial
|
|
13
|
+
* (kept as a rare escape hatch for runes where content can be much shorter than
|
|
14
|
+
* media). The old `gap` attribute was dropped — each rune curates its own
|
|
15
|
+
* inter-zone spacing via theme tokens. */
|
|
7
16
|
export declare const splitLayoutAttributes: Record<string, SchemaAttribute>;
|
|
8
17
|
/**
|
|
9
18
|
* @deprecated Use `splitLayoutAttributes` instead.
|
|
@@ -14,22 +23,42 @@ export declare const linkItem: Markdoc.Schema;
|
|
|
14
23
|
export declare function name(cursor: RenderableNodeCursor): RenderableNodeCursor<Markdoc.Tag<"h1" | "h2" | "h3" | "h4" | "h5" | "h6", Record<string, any>>>;
|
|
15
24
|
export declare function description(cursor: RenderableNodeCursor): RenderableNodeCursor<Markdoc.Tag<"p", Record<string, any>>>;
|
|
16
25
|
export interface LayoutMetas {
|
|
17
|
-
|
|
18
|
-
|
|
26
|
+
mediaPosition: Tag;
|
|
27
|
+
mediaRatio: Tag | undefined;
|
|
19
28
|
valign: Tag | undefined;
|
|
20
|
-
gap: Tag | undefined;
|
|
21
29
|
collapse: Tag | undefined;
|
|
22
30
|
}
|
|
23
31
|
/**
|
|
24
|
-
* Build the
|
|
25
|
-
*
|
|
26
|
-
*
|
|
32
|
+
* Build the layout meta tags shared by all media+content runes. Accepts the
|
|
33
|
+
* attrs object from a `splitLayoutAttributes`-based schema and returns the
|
|
34
|
+
* meta Tag instances plus a convenience array of the non-undefined tags
|
|
27
35
|
* suitable for spreading into a children array.
|
|
36
|
+
*
|
|
37
|
+
* `media-position` is always emitted (default: `top`) — the rune always has a
|
|
38
|
+
* placement, even if the author didn't pick one. `media-ratio` and `valign` are
|
|
39
|
+
* only emitted when the layout is side-by-side (`start` / `end`) — they have no
|
|
40
|
+
* effect on stacked layouts. `collapse` is only emitted when the author sets it.
|
|
28
41
|
*/
|
|
29
42
|
export declare function buildLayoutMetas(attrs: Record<string, any>): {
|
|
30
43
|
metas: LayoutMetas;
|
|
31
44
|
children: Tag[];
|
|
32
45
|
};
|
|
46
|
+
/**
|
|
47
|
+
* Split a node list on top-level `hr` (`---`) into media / body / footer zones,
|
|
48
|
+
* by group count (matching the card / bento-cell pattern):
|
|
49
|
+
*
|
|
50
|
+
* 1 group → body only
|
|
51
|
+
* 2 groups → media + body
|
|
52
|
+
* 3+ groups → media + body... + footer (middle groups merged into body)
|
|
53
|
+
*
|
|
54
|
+
* This is the canonical "media-first body shape" for media+content runes.
|
|
55
|
+
* Authoring is consistent across every rune that uses it.
|
|
56
|
+
*/
|
|
57
|
+
export declare function splitMediaBodyFooter(nodes: Node[]): {
|
|
58
|
+
media: Node[];
|
|
59
|
+
body: Node[];
|
|
60
|
+
footer: Node[];
|
|
61
|
+
};
|
|
33
62
|
/**
|
|
34
63
|
* Extract a bare `<img>` tag from rendered media nodes.
|
|
35
64
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"common.d.ts","sourceRoot":"","sources":["../../src/tags/common.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,kBAAkB,CAAC;AACvC,OAAO,KAAK,EAAE,GAAG,
|
|
1
|
+
{"version":3,"file":"common.d.ts","sourceRoot":"","sources":["../../src/tags/common.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,kBAAkB,CAAC;AACvC,OAAO,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAEvF,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAG5D,oFAAoF;AACpF,eAAO,MAAM,yBAAyB,WAAY,CAAC;AAEnD;;;;;;;;;0CAS0C;AAC1C,eAAO,MAAM,qBAAqB,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAKjE,CAAC;AAOF;;;GAGG;AACH,eAAO,MAAM,gBAAgB,yCAAwB,CAAC;AAEtD,eAAO,MAAM,QAAQ,gBA6BnB,CAAC;AAEH,wBAAgB,IAAI,CAAC,MAAM,EAAE,oBAAoB,mGAEhD;AAED,wBAAgB,WAAW,CAAC,MAAM,EAAE,oBAAoB,+DAEvD;AAED,MAAM,WAAW,WAAW;IAC1B,aAAa,EAAE,GAAG,CAAC;IACnB,UAAU,EAAE,GAAG,GAAG,SAAS,CAAC;IAC5B,MAAM,EAAE,GAAG,GAAG,SAAS,CAAC;IACxB,QAAQ,EAAE,GAAG,GAAG,SAAS,CAAC;CAC3B;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG;IAC5D,KAAK,EAAE,WAAW,CAAC;IACnB,QAAQ,EAAE,GAAG,EAAE,CAAC;CACjB,CAsBA;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,IAAI,EAAE,GAAG;IAAE,KAAK,EAAE,IAAI,EAAE,CAAC;IAAC,IAAI,EAAE,IAAI,EAAE,CAAC;IAAC,MAAM,EAAE,IAAI,EAAE,CAAA;CAAE,CASnG;AAED;;;;;;;;GAQG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,oBAAoB,GAAG,GAAG,GAAG,SAAS,CAa/E;AAED;;;;;;;GAOG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,kBAAkB,EAAE,GAAG,kBAAkB,EAAE,CAavF;AAED,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,oBAAoB;aAUtC,GAAG,GAAG,SAAS;cACd,GAAG,GAAG,SAAS;;WAEZ,GAAG,GAAG,SAAS;EAkC9C"}
|
package/dist/tags/common.js
CHANGED
|
@@ -4,17 +4,25 @@ import { RenderableNodeCursor } from '../lib/renderable.js';
|
|
|
4
4
|
import { registerAttributePreset } from '../attribute-presets.js';
|
|
5
5
|
/** @deprecated Split layout attributes are now provided by splitLayoutAttributes */
|
|
6
6
|
export const SplitablePageSectionModel = undefined;
|
|
7
|
-
/**
|
|
7
|
+
/** Shared layout attributes for media+content runes — same vocabulary as
|
|
8
|
+
* `bento-cell`, so every media-bearing surface (card, recipe, hero, feature,
|
|
9
|
+
* step, realm, faction, playlist) speaks one language. `media-position` covers
|
|
10
|
+
* all four placements (the old `layout`'s `stacked`/`split`/`split-reverse` are
|
|
11
|
+
* the `top`/`start`/`end` subset, with `bottom` as a new mode). `media-ratio`
|
|
12
|
+
* uses the same preset percentages as `bento-cell` instead of the open-ended
|
|
13
|
+
* `ratio="2 1"` string. `valign` is the orientation-agnostic cross-axis dial
|
|
14
|
+
* (kept as a rare escape hatch for runes where content can be much shorter than
|
|
15
|
+
* media). The old `gap` attribute was dropped — each rune curates its own
|
|
16
|
+
* inter-zone spacing via theme tokens. */
|
|
8
17
|
export const splitLayoutAttributes = {
|
|
9
|
-
|
|
10
|
-
ratio: { type: String, required: false, description: '
|
|
11
|
-
valign: { type: String, required: false, matches: ['top', 'center', 'bottom'], description: '
|
|
12
|
-
|
|
13
|
-
collapse: { type: String, required: false, matches: ['sm', 'md', 'lg', 'never'], description: 'Breakpoint at which split layout collapses to stacked' },
|
|
18
|
+
'media-position': { type: String, required: false, matches: ['top', 'bottom', 'start', 'end', 'cover'], description: 'Where the media zone sits relative to the content: above (top), below (bottom), or beside (start/end)' },
|
|
19
|
+
'media-ratio': { type: String, required: false, matches: ['1/3', '2/5', '1/2', '3/5', '2/3'], description: 'Media zone’s share of the row width when media is beside content (start/end)' },
|
|
20
|
+
valign: { type: String, required: false, matches: ['top', 'center', 'bottom', 'stretch'], description: 'Cross-axis alignment when media is beside content (start/end); applies to the shorter zone' },
|
|
21
|
+
collapse: { type: String, required: false, matches: ['sm', 'md', 'lg', 'never'], description: 'Breakpoint at which side-by-side layouts collapse to a single stacked column' },
|
|
14
22
|
};
|
|
15
23
|
registerAttributePreset(splitLayoutAttributes, {
|
|
16
24
|
name: 'split layout',
|
|
17
|
-
description: 'Layout controls
|
|
25
|
+
description: 'Layout controls shared by media+content runes — `media-position`, `media-ratio`, `valign`, `collapse`.',
|
|
18
26
|
});
|
|
19
27
|
/**
|
|
20
28
|
* @deprecated Use `splitLayoutAttributes` instead.
|
|
@@ -54,36 +62,63 @@ export function description(cursor) {
|
|
|
54
62
|
return cursor.tag('p').limit(1);
|
|
55
63
|
}
|
|
56
64
|
/**
|
|
57
|
-
* Build the
|
|
58
|
-
*
|
|
59
|
-
*
|
|
65
|
+
* Build the layout meta tags shared by all media+content runes. Accepts the
|
|
66
|
+
* attrs object from a `splitLayoutAttributes`-based schema and returns the
|
|
67
|
+
* meta Tag instances plus a convenience array of the non-undefined tags
|
|
60
68
|
* suitable for spreading into a children array.
|
|
69
|
+
*
|
|
70
|
+
* `media-position` is always emitted (default: `top`) — the rune always has a
|
|
71
|
+
* placement, even if the author didn't pick one. `media-ratio` and `valign` are
|
|
72
|
+
* only emitted when the layout is side-by-side (`start` / `end`) — they have no
|
|
73
|
+
* effect on stacked layouts. `collapse` is only emitted when the author sets it.
|
|
61
74
|
*/
|
|
62
75
|
export function buildLayoutMetas(attrs) {
|
|
63
|
-
const
|
|
64
|
-
const
|
|
65
|
-
const valign = attrs.valign
|
|
66
|
-
const gap = attrs.gap || 'default';
|
|
76
|
+
const mediaPosition = attrs['media-position'] || 'top';
|
|
77
|
+
const mediaRatio = attrs['media-ratio'];
|
|
78
|
+
const valign = attrs.valign;
|
|
67
79
|
const collapse = attrs.collapse;
|
|
68
|
-
const
|
|
69
|
-
const
|
|
70
|
-
const
|
|
71
|
-
const
|
|
80
|
+
const beside = mediaPosition === 'start' || mediaPosition === 'end';
|
|
81
|
+
const mediaPositionMeta = new Markdoc.Tag('meta', { content: mediaPosition });
|
|
82
|
+
const mediaRatioMeta = beside && mediaRatio ? new Markdoc.Tag('meta', { content: mediaRatio }) : undefined;
|
|
83
|
+
const valignMeta = beside && valign ? new Markdoc.Tag('meta', { content: valign }) : undefined;
|
|
72
84
|
const collapseMeta = collapse ? new Markdoc.Tag('meta', { content: collapse }) : undefined;
|
|
73
|
-
const children = [
|
|
74
|
-
if (
|
|
75
|
-
children.push(
|
|
85
|
+
const children = [mediaPositionMeta];
|
|
86
|
+
if (mediaRatioMeta)
|
|
87
|
+
children.push(mediaRatioMeta);
|
|
76
88
|
if (valignMeta)
|
|
77
89
|
children.push(valignMeta);
|
|
78
|
-
if (gapMeta)
|
|
79
|
-
children.push(gapMeta);
|
|
80
90
|
if (collapseMeta)
|
|
81
91
|
children.push(collapseMeta);
|
|
82
92
|
return {
|
|
83
|
-
metas: {
|
|
93
|
+
metas: { mediaPosition: mediaPositionMeta, mediaRatio: mediaRatioMeta, valign: valignMeta, collapse: collapseMeta },
|
|
84
94
|
children,
|
|
85
95
|
};
|
|
86
96
|
}
|
|
97
|
+
/**
|
|
98
|
+
* Split a node list on top-level `hr` (`---`) into media / body / footer zones,
|
|
99
|
+
* by group count (matching the card / bento-cell pattern):
|
|
100
|
+
*
|
|
101
|
+
* 1 group → body only
|
|
102
|
+
* 2 groups → media + body
|
|
103
|
+
* 3+ groups → media + body... + footer (middle groups merged into body)
|
|
104
|
+
*
|
|
105
|
+
* This is the canonical "media-first body shape" for media+content runes.
|
|
106
|
+
* Authoring is consistent across every rune that uses it.
|
|
107
|
+
*/
|
|
108
|
+
export function splitMediaBodyFooter(nodes) {
|
|
109
|
+
const zones = [[]];
|
|
110
|
+
for (const n of nodes) {
|
|
111
|
+
if (n.type === 'hr')
|
|
112
|
+
zones.push([]);
|
|
113
|
+
else
|
|
114
|
+
zones[zones.length - 1].push(n);
|
|
115
|
+
}
|
|
116
|
+
if (zones.length === 1)
|
|
117
|
+
return { media: [], body: zones[0], footer: [] };
|
|
118
|
+
if (zones.length === 2)
|
|
119
|
+
return { media: zones[0], body: zones[1], footer: [] };
|
|
120
|
+
return { media: zones[0], body: zones.slice(1, -1).flat(), footer: zones[zones.length - 1] };
|
|
121
|
+
}
|
|
87
122
|
/**
|
|
88
123
|
* Extract a bare `<img>` tag from rendered media nodes.
|
|
89
124
|
*
|
package/dist/tags/common.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"common.js","sourceRoot":"","sources":["../../src/tags/common.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,kBAAkB,CAAC;AAEvC,OAAO,EAAE,wBAAwB,EAAE,MAAM,iBAAiB,CAAC;AAC3D,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AAElE,oFAAoF;AACpF,MAAM,CAAC,MAAM,yBAAyB,GAAG,SAAS,CAAC;AAEnD
|
|
1
|
+
{"version":3,"file":"common.js","sourceRoot":"","sources":["../../src/tags/common.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,kBAAkB,CAAC;AAEvC,OAAO,EAAE,wBAAwB,EAAE,MAAM,iBAAiB,CAAC;AAC3D,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AAElE,oFAAoF;AACpF,MAAM,CAAC,MAAM,yBAAyB,GAAG,SAAS,CAAC;AAEnD;;;;;;;;;0CAS0C;AAC1C,MAAM,CAAC,MAAM,qBAAqB,GAAoC;IACpE,gBAAgB,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,CAAC,EAAE,WAAW,EAAE,uGAAuG,EAAE;IAC9N,aAAa,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,EAAE,WAAW,EAAE,8EAA8E,EAAE;IAC3L,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,CAAC,EAAE,WAAW,EAAE,4FAA4F,EAAE;IACrM,QAAQ,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC,EAAE,WAAW,EAAE,8EAA8E,EAAE;CAC/K,CAAC;AAEF,uBAAuB,CAAC,qBAAqB,EAAE;IAC7C,IAAI,EAAE,cAAc;IACpB,WAAW,EAAE,wGAAwG;CACtH,CAAC,CAAC;AAEH;;;GAGG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,qBAAqB,CAAC;AAEtD,MAAM,CAAC,MAAM,QAAQ,GAAG,wBAAwB,CAAC;IAC/C,YAAY,EAAE;QACZ,IAAI,EAAE,UAAU;QAChB,MAAM,EAAE;YACN,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE;SAC7D;KACF;IACD,SAAS,CAAC,QAAQ,EAAE,KAAK,EAAE,MAAM;QAC/B,MAAM,SAAS,GAAG,QAAQ,CAAC,IAAI;YAC7B,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAW;YAC5E,CAAC,CAAC,EAAE,CAAC;QAEP,+CAA+C;QAC/C,MAAM,MAAM,GAAG,IAAI,oBAAoB,CACrC,OAAO,CAAC,SAAS,CAAC,SAAS,EAAE;YAC3B,GAAG,MAAM;YACT,KAAK,EAAE;gBACL,GAAG,MAAM,CAAC,KAAK;gBACf,IAAI,EAAE;oBACJ,SAAS,CAAC,IAAU;wBAClB,OAAO,IAAI,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC;oBAChE,CAAC;iBACF;aACF;SACF,CAAyB,CAC3B,CAAC;QAEF,OAAO,IAAI,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,EAAE,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC;IACrD,CAAC;CACF,CAAC,CAAC;AAEH,MAAM,UAAU,IAAI,CAAC,MAA4B;IAC/C,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;AACjE,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,MAA4B;IACtD,OAAO,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAClC,CAAC;AASD;;;;;;;;;;GAUG;AACH,MAAM,UAAU,gBAAgB,CAAC,KAA0B;IAIzD,MAAM,aAAa,GAAI,KAAK,CAAC,gBAAgB,CAAY,IAAI,KAAK,CAAC;IACnE,MAAM,UAAU,GAAG,KAAK,CAAC,aAAa,CAAuB,CAAC;IAC9D,MAAM,MAAM,GAAG,KAAK,CAAC,MAA4B,CAAC;IAClD,MAAM,QAAQ,GAAG,KAAK,CAAC,QAA8B,CAAC;IAEtD,MAAM,MAAM,GAAG,aAAa,KAAK,OAAO,IAAI,aAAa,KAAK,KAAK,CAAC;IAEpE,MAAM,iBAAiB,GAAG,IAAI,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,EAAE,OAAO,EAAE,aAAa,EAAE,CAAC,CAAC;IAC9E,MAAM,cAAc,GAAG,MAAM,IAAI,UAAU,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAC3G,MAAM,UAAU,GAAG,MAAM,IAAI,MAAM,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAC/F,MAAM,YAAY,GAAG,QAAQ,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAE3F,MAAM,QAAQ,GAAU,CAAC,iBAAiB,CAAC,CAAC;IAC5C,IAAI,cAAc;QAAE,QAAQ,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;IAClD,IAAI,UAAU;QAAE,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAC1C,IAAI,YAAY;QAAE,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IAE9C,OAAO;QACL,KAAK,EAAE,EAAE,aAAa,EAAE,iBAAiB,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,YAAY,EAAE;QACnH,QAAQ;KACT,CAAC;AACJ,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,oBAAoB,CAAC,KAAa;IAChD,MAAM,KAAK,GAAa,CAAC,EAAE,CAAC,CAAC;IAC7B,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;QACtB,IAAI,CAAC,CAAC,IAAI,KAAK,IAAI;YAAE,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;;YAC/B,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACvC,CAAC;IACD,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC;IACzE,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC;IAC/E,OAAO,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,CAAC;AAC/F,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,iBAAiB,CAAC,MAA4B;IAC5D,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,OAAO,EAAE,EAAE,CAAC;QACpC,IAAI,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;YACnD,OAAO,IAAI,CAAC;QACd,CAAC;QACD,IAAI,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,KAAK,GAAG,EAAE,CAAC;YACjD,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAC5B,CAAC,CAAM,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK,KAAK,CAClC,CAAC;YACrB,IAAI,GAAG;gBAAE,OAAO,GAAG,CAAC;QACtB,CAAC;IACH,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,qBAAqB,CAAC,KAA2B;IAC/D,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;QACxB,IACE,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC;YACvB,IAAI,CAAC,IAAI,KAAK,GAAG;YACjB,IAAI,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC;YAC1B,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;YACnC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC,WAAW,CAAC,CAAC,EAC/E,CAAC;YACD,OAAO,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;QAC1B,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,MAA4B;IAChE,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;IAC3B,MAAM,GAAG,GAAG,CAAC,CAAM,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IACxE,MAAM,GAAG,GAAG,CAAC,CAAM,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK,GAAG,CAAC;IAE/D,MAAM,MAAM,GAAG,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;IAEpC,yCAAyC;IACzC,IAAI,MAAM,KAAK,CAAC,CAAC,EAAE,CAAC;QAClB,OAAO;YACL,OAAO,EAAE,SAA4B;YACrC,QAAQ,EAAE,SAA4B;YACtC,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;YACjC,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,GAAG,CAAoB;SAC1C,CAAC;IACJ,CAAC;IAED,qDAAqD;IACrD,MAAM,WAAW,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;IAE1D,IAAI,OAAwB,CAAC;IAC7B,IAAI,WAAmB,CAAC;IAExB,IAAI,WAAW,KAAK,CAAC,CAAC,EAAE,CAAC;QACvB,OAAO,GAAG,KAAK,CAAC,WAAW,CAAQ,CAAC;QACpC,WAAW,GAAG,MAAM,CAAC;IACvB,CAAC;SAAM,CAAC;QACN,4DAA4D;QAC5D,MAAM,OAAO,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,MAAM,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QAChE,IAAI,OAAO,KAAK,CAAC,CAAC,EAAE,CAAC;YACnB,OAAO,GAAG,KAAK,CAAC,MAAM,CAAQ,CAAC;YAC/B,WAAW,GAAG,OAAO,CAAC;QACxB,CAAC;aAAM,CAAC;YACN,OAAO,GAAG,SAAS,CAAC;YACpB,WAAW,GAAG,MAAM,CAAC;QACvB,CAAC;IACH,CAAC;IAED,yCAAyC;IACzC,MAAM,QAAQ,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,WAAW,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IAEtE,OAAO;QACL,OAAO;QACP,QAAQ,EAAE,KAAK,CAAC,WAAW,CAAQ;QACnC,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;QACjC,KAAK,EAAE,QAAQ,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAQ,CAAC,CAAC,CAAC,SAAS;KAC5D,CAAC;AACJ,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gallery.d.ts","sourceRoot":"","sources":["../../src/tags/gallery.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"gallery.d.ts","sourceRoot":"","sources":["../../src/tags/gallery.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,kBAAkB,CAAC;AAQvC,eAAO,MAAM,OAAO,gBA0DlB,CAAC"}
|
package/dist/tags/gallery.js
CHANGED
|
@@ -3,13 +3,11 @@ const { Tag } = Markdoc;
|
|
|
3
3
|
import { createContentModelSchema, createComponentRenderable, asNodes } from '../lib/index.js';
|
|
4
4
|
import { RenderableNodeCursor } from '../lib/renderable.js';
|
|
5
5
|
const layoutValues = ['grid', 'carousel', 'masonry'];
|
|
6
|
-
const gapValues = ['none', 'tight', 'default', 'loose'];
|
|
7
6
|
export const gallery = createContentModelSchema({
|
|
8
7
|
attributes: {
|
|
9
8
|
layout: { type: String, required: false, matches: layoutValues.slice(), description: 'Arrangement of images in the gallery' },
|
|
10
9
|
columns: { type: Number, required: false, description: 'Number of columns in grid layout' },
|
|
11
10
|
lightbox: { type: Boolean, required: false, description: 'Allow clicking images to view full-size' },
|
|
12
|
-
gap: { type: String, required: false, matches: gapValues.slice(), description: 'Space between gallery items' },
|
|
13
11
|
caption: { type: String, required: false, description: 'Caption text displayed below the gallery' },
|
|
14
12
|
},
|
|
15
13
|
contentModel: {
|
|
@@ -23,7 +21,6 @@ export const gallery = createContentModelSchema({
|
|
|
23
21
|
const layout = attrs.layout ?? 'grid';
|
|
24
22
|
const columns = attrs.columns ?? 3;
|
|
25
23
|
const lightbox = attrs.lightbox ?? true;
|
|
26
|
-
const gap = attrs.gap ?? 'default';
|
|
27
24
|
const caption = attrs.caption ?? '';
|
|
28
25
|
const images = children.flatten().tag('img').toArray();
|
|
29
26
|
const items = images.map(img => {
|
|
@@ -37,12 +34,11 @@ export const gallery = createContentModelSchema({
|
|
|
37
34
|
const layoutMeta = new Tag('meta', { content: layout });
|
|
38
35
|
const lightboxMeta = new Tag('meta', { content: String(lightbox) });
|
|
39
36
|
const columnsMeta = columns !== 3 ? new Tag('meta', { content: String(columns) }) : undefined;
|
|
40
|
-
const gapMeta = gap !== 'default' ? new Tag('meta', { content: gap }) : undefined;
|
|
41
37
|
const captionTag = caption
|
|
42
38
|
? new Tag('figcaption', {}, [caption])
|
|
43
39
|
: undefined;
|
|
44
40
|
const itemsContainer = new Tag('div', { 'data-name': 'items' }, items);
|
|
45
|
-
const metas = [layoutMeta, lightboxMeta, columnsMeta
|
|
41
|
+
const metas = [layoutMeta, lightboxMeta, columnsMeta].filter(Boolean);
|
|
46
42
|
const childNodes = [...metas, itemsContainer];
|
|
47
43
|
if (captionTag)
|
|
48
44
|
childNodes.push(captionTag);
|
|
@@ -52,7 +48,6 @@ export const gallery = createContentModelSchema({
|
|
|
52
48
|
layout: layoutMeta,
|
|
53
49
|
lightbox: lightboxMeta,
|
|
54
50
|
...(columnsMeta ? { columns: columnsMeta } : {}),
|
|
55
|
-
...(gapMeta ? { gap: gapMeta } : {}),
|
|
56
51
|
...(captionTag ? { caption: captionTag } : {}),
|
|
57
52
|
},
|
|
58
53
|
children: childNodes,
|
package/dist/tags/gallery.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gallery.js","sourceRoot":"","sources":["../../src/tags/gallery.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,YAAY,GAAG,CAAC,MAAM,EAAE,UAAU,EAAE,SAAS,CAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"gallery.js","sourceRoot":"","sources":["../../src/tags/gallery.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"showcase.d.ts","sourceRoot":"","sources":["../../src/tags/showcase.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"showcase.d.ts","sourceRoot":"","sources":["../../src/tags/showcase.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,kBAAkB,CAAC;AAsBvC,eAAO,MAAM,QAAQ,gBA0EnB,CAAC"}
|
package/dist/tags/showcase.js
CHANGED
|
@@ -4,6 +4,19 @@ import { createContentModelSchema, createComponentRenderable, asNodes } from '..
|
|
|
4
4
|
import { RenderableNodeCursor } from '../lib/renderable.js';
|
|
5
5
|
const shadowValues = ['none', 'soft', 'hard', 'elevated'];
|
|
6
6
|
const bleedValues = ['none', 'top', 'bottom', 'both', 'end', 'bottom-end', 'top-end'];
|
|
7
|
+
/** SPEC-086 — showcase collapses into the frame model (`frameTarget: 'self'`).
|
|
8
|
+
* Its bespoke attributes are deprecated aliases for `frame-*` facets; map them
|
|
9
|
+
* and warn once, retaining breakout (`bleed` → `frame-displace` on a breakout
|
|
10
|
+
* host) as showcase's distinct value. */
|
|
11
|
+
const SHADOW_TO_FRAME = { soft: 'sm', hard: 'md', elevated: 'lg' };
|
|
12
|
+
const SHOWCASE_DEPRECATED_WARNED = new Set();
|
|
13
|
+
function warnShowcaseDeprecated(attr, replacement) {
|
|
14
|
+
if (SHOWCASE_DEPRECATED_WARNED.has(attr))
|
|
15
|
+
return;
|
|
16
|
+
SHOWCASE_DEPRECATED_WARNED.add(attr);
|
|
17
|
+
// eslint-disable-next-line no-console
|
|
18
|
+
console.warn(`[refrakt] showcase \`${attr}\` is deprecated (SPEC-086) — use \`${replacement}\`. The alias will be removed in a future minor.`);
|
|
19
|
+
}
|
|
7
20
|
export const showcase = createContentModelSchema({
|
|
8
21
|
attributes: {
|
|
9
22
|
shadow: { type: String, required: false, matches: shadowValues.slice(), description: 'Shadow style around the showcase content' },
|
|
@@ -31,30 +44,33 @@ export const showcase = createContentModelSchema({
|
|
|
31
44
|
const place = attrs.place ?? '';
|
|
32
45
|
const properties = {};
|
|
33
46
|
const childNodes = [];
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
47
|
+
// Emit a frame facet meta the engine routes to the showcase root
|
|
48
|
+
// (frameTarget: 'self'). Routed through `properties` so it rides both the
|
|
49
|
+
// SPEC-082 field bag and the meta channel the engine reads.
|
|
50
|
+
const frameMeta = (field, value) => {
|
|
51
|
+
const meta = new Tag('meta', { content: value });
|
|
52
|
+
properties[field] = meta;
|
|
37
53
|
childNodes.push(meta);
|
|
54
|
+
};
|
|
55
|
+
if (shadow && shadow !== 'none') {
|
|
56
|
+
warnShowcaseDeprecated('shadow', 'frame-shadow');
|
|
57
|
+
frameMeta('frame-shadow', SHADOW_TO_FRAME[shadow] ?? shadow);
|
|
38
58
|
}
|
|
39
59
|
if (bleed && bleed !== 'none') {
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
childNodes.push(meta);
|
|
60
|
+
warnShowcaseDeprecated('bleed', 'frame-displace');
|
|
61
|
+
frameMeta('frame-displace', bleed);
|
|
43
62
|
}
|
|
44
63
|
if (offset) {
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
childNodes.push(meta);
|
|
64
|
+
warnShowcaseDeprecated('offset', 'frame-offset');
|
|
65
|
+
frameMeta('frame-offset', offset);
|
|
48
66
|
}
|
|
49
67
|
if (aspect) {
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
childNodes.push(meta);
|
|
68
|
+
warnShowcaseDeprecated('aspect', 'frame-aspect');
|
|
69
|
+
frameMeta('frame-aspect', aspect);
|
|
53
70
|
}
|
|
54
71
|
if (place) {
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
childNodes.push(meta);
|
|
72
|
+
warnShowcaseDeprecated('place', 'frame-place');
|
|
73
|
+
frameMeta('frame-place', place);
|
|
58
74
|
}
|
|
59
75
|
const viewport = new Tag('div', {}, children.toArray());
|
|
60
76
|
childNodes.push(viewport);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"showcase.js","sourceRoot":"","sources":["../../src/tags/showcase.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,YAAY,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,CAAU,CAAC;AACnE,MAAM,WAAW,GAAG,CAAC,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,YAAY,EAAE,SAAS,CAAU,CAAC;AAE/F,MAAM,CAAC,MAAM,QAAQ,GAAG,wBAAwB,CAAC;IAChD,UAAU,EAAE;QACX,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,YAAY,CAAC,KAAK,EAAE,EAAE,WAAW,EAAE,0CAA0C,EAAE;QACjI,KAAK,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,WAAW,CAAC,KAAK,EAAE,EAAE,WAAW,EAAE,gDAAgD,EAAE;QACrI,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,WAAW,EAAE,oCAAoC,EAAE;QAC5F,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,WAAW,EAAE,mCAAmC,EAAE;QAC3F,KAAK,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE;gBAChD,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ;gBAC1C,UAAU,EAAE,YAAY,EAAE,WAAW;gBACrC,aAAa,EAAE,eAAe,EAAE,cAAc;aAC9C,EAAE,WAAW,EAAE,8CAA8C,EAAE;KAChE;IACD,YAAY,EAAE;QACb,IAAI,EAAE,UAAU;QAChB,MAAM,EAAE;YACP,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE;SAC5D;KACD;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,MAAM,GAAG,KAAK,CAAC,MAAM,IAAI,MAAM,CAAC;QACtC,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,IAAI,MAAM,CAAC;QACpC,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,IAAI,EAAE,CAAC;QAClC,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,IAAI,EAAE,CAAC;QAClC,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,IAAI,EAAE,CAAC;QAEhC,MAAM,UAAU,GAAwB,EAAE,CAAC;QAC3C,MAAM,UAAU,GAAU,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"showcase.js","sourceRoot":"","sources":["../../src/tags/showcase.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@refrakt-md/runes",
|
|
3
3
|
"description": "Semantic Markdoc runes for refrakt.md",
|
|
4
|
-
"version": "0.
|
|
4
|
+
"version": "0.20.0",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "MIT",
|
|
7
7
|
"repository": {
|
|
@@ -29,8 +29,8 @@
|
|
|
29
29
|
"build": "tsc"
|
|
30
30
|
},
|
|
31
31
|
"dependencies": {
|
|
32
|
-
"@refrakt-md/types": "0.
|
|
33
|
-
"@refrakt-md/transform": "0.
|
|
32
|
+
"@refrakt-md/types": "0.20.0",
|
|
33
|
+
"@refrakt-md/transform": "0.20.0",
|
|
34
34
|
"@markdoc/markdoc": "0.4.0",
|
|
35
35
|
"reflect-metadata": "^0.2.0",
|
|
36
36
|
"fast-xml-parser": "4.5.1",
|