@refrakt-md/runes 0.7.1 → 0.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (273) hide show
  1. package/dist/config.d.ts +13 -0
  2. package/dist/config.d.ts.map +1 -1
  3. package/dist/config.js +337 -20
  4. package/dist/config.js.map +1 -1
  5. package/dist/documents/page.js +3 -3
  6. package/dist/documents/page.js.map +1 -1
  7. package/dist/examples.d.ts.map +1 -1
  8. package/dist/examples.js +5 -1
  9. package/dist/examples.js.map +1 -1
  10. package/dist/index.d.ts +14 -4
  11. package/dist/index.d.ts.map +1 -1
  12. package/dist/index.js +39 -4
  13. package/dist/index.js.map +1 -1
  14. package/dist/lib/annotations/annotation.d.ts +1 -1
  15. package/dist/lib/annotations/annotation.d.ts.map +1 -1
  16. package/dist/lib/annotations/annotation.js +20 -2
  17. package/dist/lib/annotations/annotation.js.map +1 -1
  18. package/dist/lib/component.d.ts +16 -14
  19. package/dist/lib/component.d.ts.map +1 -1
  20. package/dist/lib/component.js +21 -4
  21. package/dist/lib/component.js.map +1 -1
  22. package/dist/lib/index.d.ts +40 -2
  23. package/dist/lib/index.d.ts.map +1 -1
  24. package/dist/lib/index.js +302 -3
  25. package/dist/lib/index.js.map +1 -1
  26. package/dist/lib/model.d.ts +4 -0
  27. package/dist/lib/model.d.ts.map +1 -1
  28. package/dist/lib/model.js +17 -0
  29. package/dist/lib/model.js.map +1 -1
  30. package/dist/lib/renderable.d.ts +1 -1
  31. package/dist/lib/renderable.d.ts.map +1 -1
  32. package/dist/lib/renderable.js +2 -1
  33. package/dist/lib/renderable.js.map +1 -1
  34. package/dist/lib/resolver.d.ts +73 -0
  35. package/dist/lib/resolver.d.ts.map +1 -0
  36. package/dist/lib/resolver.js +500 -0
  37. package/dist/lib/resolver.js.map +1 -0
  38. package/dist/nodes.js +2 -2
  39. package/dist/nodes.js.map +1 -1
  40. package/dist/packages.d.ts +2 -0
  41. package/dist/packages.d.ts.map +1 -1
  42. package/dist/packages.js +7 -0
  43. package/dist/packages.js.map +1 -1
  44. package/dist/registry.d.ts +85 -77
  45. package/dist/registry.d.ts.map +1 -1
  46. package/dist/registry.js +16 -8
  47. package/dist/registry.js.map +1 -1
  48. package/dist/rune.d.ts +3 -3
  49. package/dist/rune.d.ts.map +1 -1
  50. package/dist/schema/accordion.d.ts +1 -20
  51. package/dist/schema/accordion.d.ts.map +1 -1
  52. package/dist/schema/accordion.js.map +1 -1
  53. package/dist/schema/annotate.d.ts +1 -19
  54. package/dist/schema/annotate.d.ts.map +1 -1
  55. package/dist/schema/annotate.js +1 -1
  56. package/dist/schema/annotate.js.map +1 -1
  57. package/dist/schema/bg.d.ts +11 -0
  58. package/dist/schema/bg.d.ts.map +1 -0
  59. package/dist/schema/bg.js +13 -0
  60. package/dist/schema/bg.js.map +1 -0
  61. package/dist/schema/breadcrumb.d.ts +0 -18
  62. package/dist/schema/breadcrumb.d.ts.map +1 -1
  63. package/dist/schema/breadcrumb.js.map +1 -1
  64. package/dist/schema/budget.d.ts +1 -40
  65. package/dist/schema/budget.d.ts.map +1 -1
  66. package/dist/schema/budget.js +1 -1
  67. package/dist/schema/budget.js.map +1 -1
  68. package/dist/schema/chart.d.ts +0 -12
  69. package/dist/schema/chart.d.ts.map +1 -1
  70. package/dist/schema/chart.js.map +1 -1
  71. package/dist/schema/codegroup.d.ts +0 -13
  72. package/dist/schema/codegroup.d.ts.map +1 -1
  73. package/dist/schema/codegroup.js.map +1 -1
  74. package/dist/schema/compare.d.ts +0 -10
  75. package/dist/schema/compare.d.ts.map +1 -1
  76. package/dist/schema/compare.js.map +1 -1
  77. package/dist/schema/conversation.d.ts +0 -20
  78. package/dist/schema/conversation.d.ts.map +1 -1
  79. package/dist/schema/conversation.js.map +1 -1
  80. package/dist/schema/datatable.d.ts +0 -13
  81. package/dist/schema/datatable.d.ts.map +1 -1
  82. package/dist/schema/datatable.js.map +1 -1
  83. package/dist/schema/details.d.ts +0 -10
  84. package/dist/schema/details.d.ts.map +1 -1
  85. package/dist/schema/details.js.map +1 -1
  86. package/dist/schema/diagram.d.ts +0 -11
  87. package/dist/schema/diagram.d.ts.map +1 -1
  88. package/dist/schema/diagram.js.map +1 -1
  89. package/dist/schema/diff.d.ts +0 -8
  90. package/dist/schema/diff.d.ts.map +1 -1
  91. package/dist/schema/diff.js.map +1 -1
  92. package/dist/schema/docpage.d.ts +1 -19
  93. package/dist/schema/docpage.d.ts.map +1 -1
  94. package/dist/schema/docpage.js.map +1 -1
  95. package/dist/schema/embed.d.ts +0 -15
  96. package/dist/schema/embed.d.ts.map +1 -1
  97. package/dist/schema/embed.js.map +1 -1
  98. package/dist/schema/error.d.ts +0 -16
  99. package/dist/schema/error.d.ts.map +1 -1
  100. package/dist/schema/error.js.map +1 -1
  101. package/dist/schema/figure.d.ts +0 -10
  102. package/dist/schema/figure.d.ts.map +1 -1
  103. package/dist/schema/figure.js.map +1 -1
  104. package/dist/schema/form.d.ts +1 -26
  105. package/dist/schema/form.d.ts.map +1 -1
  106. package/dist/schema/form.js +1 -1
  107. package/dist/schema/form.js.map +1 -1
  108. package/dist/schema/gallery.d.ts +8 -0
  109. package/dist/schema/gallery.d.ts.map +1 -0
  110. package/dist/schema/gallery.js +10 -0
  111. package/dist/schema/gallery.js.map +1 -0
  112. package/dist/schema/grid.d.ts +0 -8
  113. package/dist/schema/grid.d.ts.map +1 -1
  114. package/dist/schema/grid.js.map +1 -1
  115. package/dist/schema/hint.d.ts +0 -10
  116. package/dist/schema/hint.d.ts.map +1 -1
  117. package/dist/schema/hint.js.map +1 -1
  118. package/dist/schema/mediatext.d.ts +0 -13
  119. package/dist/schema/mediatext.d.ts.map +1 -1
  120. package/dist/schema/mediatext.js.map +1 -1
  121. package/dist/schema/nav.d.ts +0 -25
  122. package/dist/schema/nav.d.ts.map +1 -1
  123. package/dist/schema/nav.js.map +1 -1
  124. package/dist/schema/pagination.d.ts +0 -9
  125. package/dist/schema/pagination.d.ts.map +1 -1
  126. package/dist/schema/pagination.js.map +1 -1
  127. package/dist/schema/pullquote.d.ts +1 -10
  128. package/dist/schema/pullquote.d.ts.map +1 -1
  129. package/dist/schema/pullquote.js +1 -1
  130. package/dist/schema/pullquote.js.map +1 -1
  131. package/dist/schema/reveal.d.ts +1 -20
  132. package/dist/schema/reveal.d.ts.map +1 -1
  133. package/dist/schema/reveal.js.map +1 -1
  134. package/dist/schema/sandbox.d.ts +1 -12
  135. package/dist/schema/sandbox.d.ts.map +1 -1
  136. package/dist/schema/sandbox.js +1 -0
  137. package/dist/schema/sandbox.js.map +1 -1
  138. package/dist/schema/showcase.d.ts +8 -0
  139. package/dist/schema/showcase.d.ts.map +1 -0
  140. package/dist/schema/showcase.js +10 -0
  141. package/dist/schema/showcase.js.map +1 -0
  142. package/dist/schema/sidenote.d.ts +1 -11
  143. package/dist/schema/sidenote.d.ts.map +1 -1
  144. package/dist/schema/sidenote.js +1 -1
  145. package/dist/schema/sidenote.js.map +1 -1
  146. package/dist/schema/tabs.d.ts +1 -24
  147. package/dist/schema/tabs.d.ts.map +1 -1
  148. package/dist/schema/tabs.js.map +1 -1
  149. package/dist/schema/textblock.d.ts +0 -13
  150. package/dist/schema/textblock.d.ts.map +1 -1
  151. package/dist/schema/textblock.js.map +1 -1
  152. package/dist/schema/tint.d.ts +5 -0
  153. package/dist/schema/tint.d.ts.map +1 -0
  154. package/dist/schema/tint.js +7 -0
  155. package/dist/schema/tint.js.map +1 -0
  156. package/dist/schema/toc.d.ts +0 -11
  157. package/dist/schema/toc.d.ts.map +1 -1
  158. package/dist/schema/toc.js.map +1 -1
  159. package/dist/seo.d.ts +7 -7
  160. package/dist/seo.d.ts.map +1 -1
  161. package/dist/seo.js +99 -391
  162. package/dist/seo.js.map +1 -1
  163. package/dist/tags/accordion.d.ts.map +1 -1
  164. package/dist/tags/accordion.js +63 -55
  165. package/dist/tags/accordion.js.map +1 -1
  166. package/dist/tags/annotate.d.ts.map +1 -1
  167. package/dist/tags/annotate.js +31 -34
  168. package/dist/tags/annotate.js.map +1 -1
  169. package/dist/tags/bg.d.ts +10 -0
  170. package/dist/tags/bg.d.ts.map +1 -0
  171. package/dist/tags/bg.js +56 -0
  172. package/dist/tags/bg.js.map +1 -0
  173. package/dist/tags/breadcrumb.d.ts +2 -0
  174. package/dist/tags/breadcrumb.d.ts.map +1 -1
  175. package/dist/tags/breadcrumb.js +58 -27
  176. package/dist/tags/breadcrumb.js.map +1 -1
  177. package/dist/tags/budget.d.ts.map +1 -1
  178. package/dist/tags/budget.js +69 -96
  179. package/dist/tags/budget.js.map +1 -1
  180. package/dist/tags/chart.d.ts.map +1 -1
  181. package/dist/tags/chart.js +21 -38
  182. package/dist/tags/chart.js.map +1 -1
  183. package/dist/tags/codegroup.d.ts.map +1 -1
  184. package/dist/tags/codegroup.js +32 -34
  185. package/dist/tags/codegroup.js.map +1 -1
  186. package/dist/tags/common.d.ts +14 -4
  187. package/dist/tags/common.d.ts.map +1 -1
  188. package/dist/tags/common.js +71 -6
  189. package/dist/tags/common.js.map +1 -1
  190. package/dist/tags/compare.d.ts.map +1 -1
  191. package/dist/tags/compare.js +21 -31
  192. package/dist/tags/compare.js.map +1 -1
  193. package/dist/tags/conversation.d.ts.map +1 -1
  194. package/dist/tags/conversation.js +58 -62
  195. package/dist/tags/conversation.js.map +1 -1
  196. package/dist/tags/datatable.d.ts.map +1 -1
  197. package/dist/tags/datatable.js +23 -43
  198. package/dist/tags/datatable.js.map +1 -1
  199. package/dist/tags/details.d.ts.map +1 -1
  200. package/dist/tags/details.js +20 -39
  201. package/dist/tags/details.js.map +1 -1
  202. package/dist/tags/diagram.d.ts.map +1 -1
  203. package/dist/tags/diagram.js +22 -38
  204. package/dist/tags/diagram.js.map +1 -1
  205. package/dist/tags/diff.d.ts.map +1 -1
  206. package/dist/tags/diff.js +25 -44
  207. package/dist/tags/diff.js.map +1 -1
  208. package/dist/tags/embed.d.ts.map +1 -1
  209. package/dist/tags/embed.js +30 -43
  210. package/dist/tags/embed.js.map +1 -1
  211. package/dist/tags/error.d.ts.map +1 -1
  212. package/dist/tags/error.js +20 -35
  213. package/dist/tags/error.js.map +1 -1
  214. package/dist/tags/figure.d.ts.map +1 -1
  215. package/dist/tags/figure.js +27 -38
  216. package/dist/tags/figure.js.map +1 -1
  217. package/dist/tags/form.d.ts.map +1 -1
  218. package/dist/tags/form.js +157 -184
  219. package/dist/tags/form.js.map +1 -1
  220. package/dist/tags/gallery.d.ts +3 -0
  221. package/dist/tags/gallery.d.ts.map +1 -0
  222. package/dist/tags/gallery.js +63 -0
  223. package/dist/tags/gallery.js.map +1 -0
  224. package/dist/tags/grid.d.ts +2 -1
  225. package/dist/tags/grid.d.ts.map +1 -1
  226. package/dist/tags/grid.js +73 -45
  227. package/dist/tags/grid.js.map +1 -1
  228. package/dist/tags/hint.d.ts.map +1 -1
  229. package/dist/tags/hint.js +20 -27
  230. package/dist/tags/hint.js.map +1 -1
  231. package/dist/tags/layout.d.ts.map +1 -1
  232. package/dist/tags/layout.js +17 -27
  233. package/dist/tags/layout.js.map +1 -1
  234. package/dist/tags/mediatext.d.ts.map +1 -1
  235. package/dist/tags/mediatext.js +24 -37
  236. package/dist/tags/mediatext.js.map +1 -1
  237. package/dist/tags/nav.d.ts +2 -0
  238. package/dist/tags/nav.d.ts.map +1 -1
  239. package/dist/tags/nav.js +74 -64
  240. package/dist/tags/nav.js.map +1 -1
  241. package/dist/tags/pullquote.d.ts.map +1 -1
  242. package/dist/tags/pullquote.js +22 -34
  243. package/dist/tags/pullquote.js.map +1 -1
  244. package/dist/tags/region.d.ts.map +1 -1
  245. package/dist/tags/region.js +19 -32
  246. package/dist/tags/region.js.map +1 -1
  247. package/dist/tags/reveal.d.ts.map +1 -1
  248. package/dist/tags/reveal.js +35 -55
  249. package/dist/tags/reveal.js.map +1 -1
  250. package/dist/tags/sandbox.d.ts.map +1 -1
  251. package/dist/tags/sandbox.js +9 -1
  252. package/dist/tags/sandbox.js.map +1 -1
  253. package/dist/tags/showcase.d.ts +3 -0
  254. package/dist/tags/showcase.d.ts.map +1 -0
  255. package/dist/tags/showcase.js +72 -0
  256. package/dist/tags/showcase.js.map +1 -0
  257. package/dist/tags/sidenote.d.ts.map +1 -1
  258. package/dist/tags/sidenote.js +21 -29
  259. package/dist/tags/sidenote.js.map +1 -1
  260. package/dist/tags/tabs.d.ts.map +1 -1
  261. package/dist/tags/tabs.js +52 -58
  262. package/dist/tags/tabs.js.map +1 -1
  263. package/dist/tags/textblock.d.ts.map +1 -1
  264. package/dist/tags/textblock.js +27 -43
  265. package/dist/tags/textblock.js.map +1 -1
  266. package/dist/tags/tint.d.ts +12 -0
  267. package/dist/tags/tint.d.ts.map +1 -0
  268. package/dist/tags/tint.js +88 -0
  269. package/dist/tags/tint.js.map +1 -0
  270. package/dist/tags/toc.d.ts.map +1 -1
  271. package/dist/tags/toc.js +17 -32
  272. package/dist/tags/toc.js.map +1 -1
  273. package/package.json +3 -3
package/dist/config.d.ts CHANGED
@@ -1,7 +1,20 @@
1
1
  import type { ThemeConfig } from '@refrakt-md/transform';
2
+ import type { PackagePipelineHooks } from '@refrakt-md/types';
2
3
  /** Core theme configuration — universal rune-to-BEM-block mappings shared by all themes.
3
4
  * Icons are empty; themes provide their own icon SVGs via mergeThemeConfig. */
4
5
  export declare const coreConfig: ThemeConfig;
5
6
  /** @deprecated Use `coreConfig` instead. Alias kept for backwards compatibility during transition. */
6
7
  export declare const baseConfig: ThemeConfig;
8
+ /** Node in the page tree built from registered page entities */
9
+ export interface PageTreeNode {
10
+ url: string;
11
+ title: string;
12
+ children: PageTreeNode[];
13
+ }
14
+ /**
15
+ * Core cross-page pipeline hooks.
16
+ * Run for every site, before any community package hooks.
17
+ * Registers page and heading entities, aggregates the page tree and breadcrumb paths.
18
+ */
19
+ export declare const corePipelineHooks: PackagePipelineHooks;
7
20
  //# sourceMappingURL=config.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAA+B,MAAM,uBAAuB,CAAC;AAiEtF;gFACgF;AAChF,eAAO,MAAM,UAAU,EAAE,WA2gBxB,CAAC;AAEF,sGAAsG;AACtG,eAAO,MAAM,UAAU,aAAa,CAAC"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAA+B,MAAM,uBAAuB,CAAC;AAEtF,OAAO,KAAK,EAAE,oBAAoB,EAAoE,MAAM,mBAAmB,CAAC;AA+EhI;gFACgF;AAChF,eAAO,MAAM,UAAU,EAAE,WAwkBxB,CAAC;AAEF,sGAAsG;AACtG,eAAO,MAAM,UAAU,aAAa,CAAC;AAIrC,gEAAgE;AAChE,MAAM,WAAW,YAAY;IAC5B,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,YAAY,EAAE,CAAC;CACzB;AAsPD;;;;GAIG;AACH,eAAO,MAAM,iBAAiB,EAAE,oBAoG/B,CAAC"}
package/dist/config.js CHANGED
@@ -1,4 +1,10 @@
1
- import { isTag, makeTag, findByDataName, readMeta } from '@refrakt-md/transform';
1
+ import { isTag, makeTag, findByDataName, readMeta, resolveGap, ratioToFr, resolveOffset, resolveValign, parsePlacement } from '@refrakt-md/transform';
2
+ import Markdoc from '@markdoc/markdoc';
3
+ const { Tag } = Markdoc;
4
+ import { createComponentRenderable } from './lib/index.js';
5
+ import { schema } from './registry.js';
6
+ import { BREADCRUMB_AUTO_SENTINEL } from './tags/breadcrumb.js';
7
+ import { NAV_AUTO_SENTINEL } from './tags/nav.js';
2
8
  // ─── Budget postTransform helpers ───
3
9
  const BUDGET_CURRENCY_SYMBOLS = {
4
10
  USD: '$', EUR: '€', GBP: '£', JPY: '¥', CNY: '¥',
@@ -36,16 +42,16 @@ function parseBudgetAmount(str) {
36
42
  const num = parseFloat(cleaned);
37
43
  return isNaN(num) ? 0 : num;
38
44
  }
39
- /** Recursively find all nodes with a specific typeof attribute */
40
- function collectByTypeof(children, typeName) {
45
+ /** Recursively find all nodes with a specific data-rune attribute */
46
+ function collectByRune(children, typeName) {
41
47
  const results = [];
42
48
  for (const c of children) {
43
49
  if (isTag(c)) {
44
- if (c.attributes?.typeof === typeName) {
50
+ if (c.attributes?.['data-rune'] === typeName) {
45
51
  results.push(c);
46
52
  }
47
53
  else {
48
- results.push(...collectByTypeof(c.children, typeName));
54
+ results.push(...collectByRune(c.children, typeName));
49
55
  }
50
56
  }
51
57
  }
@@ -54,12 +60,20 @@ function collectByTypeof(children, typeName) {
54
60
  /** Read text content from a property span child */
55
61
  function readPropText(node, prop) {
56
62
  for (const c of node.children) {
57
- if (isTag(c) && c.attributes?.property === prop) {
63
+ if (isTag(c) && c.attributes?.['data-field'] === prop.replace(/([a-z])([A-Z])/g, '$1-$2').replace(/([A-Z])([A-Z][a-z])/g, '$1-$2').toLowerCase()) {
58
64
  return c.children.filter((ch) => typeof ch === 'string').join('');
59
65
  }
60
66
  }
61
67
  return '';
62
68
  }
69
+ /** autoLabel entries shared by all PageSection-based runes */
70
+ const pageSectionAutoLabel = {
71
+ header: 'header', // <header> wrapper element
72
+ eyebrow: 'eyebrow', // property="eyebrow"
73
+ headline: 'headline', // property="headline"
74
+ blurb: 'blurb', // property="blurb"
75
+ image: 'image', // property="image"
76
+ };
63
77
  /** Core theme configuration — universal rune-to-BEM-block mappings shared by all themes.
64
78
  * Icons are empty; themes provide their own icon SVGs via mergeThemeConfig. */
65
79
  export const coreConfig = {
@@ -68,13 +82,32 @@ export const coreConfig = {
68
82
  icons: {},
69
83
  runes: {
70
84
  // ─── Simple runes (block name only, engine adds BEM classes) ───
71
- Accordion: { block: 'accordion' },
85
+ Accordion: { block: 'accordion', autoLabel: pageSectionAutoLabel },
72
86
  AccordionItem: { block: 'accordion-item', parent: 'Accordion', autoLabel: { name: 'header' } },
73
87
  Details: { block: 'details', autoLabel: { summary: 'summary' } },
74
- Grid: { block: 'grid' },
88
+ Grid: {
89
+ block: 'grid',
90
+ modifiers: {
91
+ mode: { source: 'meta', default: 'columns' },
92
+ collapse: { source: 'meta', noBemClass: true },
93
+ aspect: { source: 'meta', noBemClass: true },
94
+ stack: { source: 'meta', noBemClass: true },
95
+ ratio: { source: 'meta', noBemClass: true },
96
+ valign: { source: 'meta', noBemClass: true },
97
+ gap: { source: 'meta', noBemClass: true },
98
+ min: { source: 'meta', noBemClass: true },
99
+ },
100
+ styles: {
101
+ ratio: { prop: '--grid-ratio', transform: ratioToFr },
102
+ valign: { prop: '--grid-valign', transform: resolveValign },
103
+ gap: { prop: '--grid-gap', transform: resolveGap },
104
+ min: '--grid-min',
105
+ aspect: '--grid-aspect',
106
+ },
107
+ },
75
108
  CodeGroup: {
76
109
  block: 'codegroup',
77
- modifiers: { title: { source: 'meta' } },
110
+ modifiers: { title: { source: 'meta' }, overflow: { source: 'meta', default: 'scroll' } },
78
111
  structure: {
79
112
  topbar: {
80
113
  tag: 'div', before: true,
@@ -103,7 +136,7 @@ export const coreConfig = {
103
136
  const contentChildren = node.children.filter(child => {
104
137
  if (!isTag(child) || child.name !== 'meta')
105
138
  return true;
106
- const prop = child.attributes.property;
139
+ const prop = child.attributes['data-field'];
107
140
  return !['embedUrl', 'url', 'title', 'aspect', 'provider', 'type'].includes(prop);
108
141
  });
109
142
  const children = [];
@@ -141,7 +174,7 @@ export const coreConfig = {
141
174
  duration: { source: 'meta' },
142
175
  showPerPerson: { source: 'meta', default: 'true' },
143
176
  showPerDay: { source: 'meta', default: 'true' },
144
- style: { source: 'meta', default: 'detailed' },
177
+ variant: { source: 'meta', default: 'detailed' },
145
178
  },
146
179
  structure: {
147
180
  header: {
@@ -171,7 +204,7 @@ export const coreConfig = {
171
204
  const showPerDay = readMeta(node, 'showPerDay') !== 'false';
172
205
  const symbol = BUDGET_CURRENCY_SYMBOLS[currency.toUpperCase()] || currency + ' ';
173
206
  // Find all BudgetCategory children and compute totals
174
- const categories = collectByTypeof(node.children, 'BudgetCategory');
207
+ const categories = collectByRune(node.children, 'budget-category');
175
208
  let grandTotal = 0;
176
209
  for (const cat of categories) {
177
210
  const label = readPropText(cat, 'label');
@@ -226,7 +259,7 @@ export const coreConfig = {
226
259
  Hint: {
227
260
  block: 'hint',
228
261
  modifiers: { hintType: { source: 'meta', default: 'note' } },
229
- contextModifiers: { 'Hero': 'in-hero', 'Feature': 'in-feature' },
262
+ contextModifiers: { 'hero': 'in-hero', 'feature': 'in-feature' },
230
263
  structure: {
231
264
  header: {
232
265
  tag: 'div', before: true,
@@ -244,9 +277,22 @@ export const coreConfig = {
244
277
  align: { source: 'meta', default: 'center' },
245
278
  },
246
279
  },
280
+ Gallery: {
281
+ block: 'gallery',
282
+ modifiers: {
283
+ layout: { source: 'meta', default: 'grid' },
284
+ lightbox: { source: 'meta', default: 'true', noBemClass: true },
285
+ gap: { source: 'meta', default: 'default', noBemClass: true },
286
+ columns: { source: 'meta', noBemClass: true },
287
+ },
288
+ styles: {
289
+ columns: '--gallery-columns',
290
+ gap: { prop: '--gallery-gap', transform: resolveGap },
291
+ },
292
+ },
247
293
  Sidenote: {
248
294
  block: 'sidenote',
249
- modifiers: { style: { source: 'meta', default: 'sidenote' } },
295
+ modifiers: { variant: { source: 'meta', default: 'sidenote' } },
250
296
  },
251
297
  Compare: {
252
298
  block: 'compare',
@@ -256,11 +302,11 @@ export const coreConfig = {
256
302
  ConversationMessage: {
257
303
  block: 'conversation-message',
258
304
  parent: 'Conversation',
259
- modifiers: { alignment: { source: 'meta', default: 'left' } },
305
+ modifiers: { align: { source: 'meta', default: 'left' } },
260
306
  },
261
307
  Annotate: {
262
308
  block: 'annotate',
263
- modifiers: { style: { source: 'meta', default: 'margin' } },
309
+ modifiers: { variant: { source: 'meta', default: 'margin' } },
264
310
  },
265
311
  AnnotateNote: { block: 'annotate-note', parent: 'Annotate' },
266
312
  Nav: {
@@ -278,7 +324,7 @@ export const coreConfig = {
278
324
  // Keep slug text as visible fallback for SSR; web component replaces with <a> links
279
325
  let slug = '';
280
326
  const children = node.children.filter(child => {
281
- if (isTag(child) && child.name === 'span' && child.attributes.property === 'slug') {
327
+ if (isTag(child) && child.name === 'span' && child.attributes['data-field'] === 'slug') {
282
328
  slug = child.children.filter((c) => typeof c === 'string').join('');
283
329
  return false; // remove slug span from DOM
284
330
  }
@@ -418,7 +464,7 @@ export const coreConfig = {
418
464
  block: 'pullquote',
419
465
  modifiers: {
420
466
  align: { source: 'meta', default: 'center' },
421
- style: { source: 'meta', default: 'default' },
467
+ variant: { source: 'meta', default: 'default' },
422
468
  },
423
469
  },
424
470
  TextBlock: {
@@ -438,8 +484,33 @@ export const coreConfig = {
438
484
  wrap: { source: 'meta' },
439
485
  },
440
486
  },
487
+ Showcase: {
488
+ block: 'showcase',
489
+ modifiers: {
490
+ shadow: { source: 'meta', default: 'none' },
491
+ bleed: { source: 'meta', default: 'none' },
492
+ aspect: { source: 'meta', noBemClass: true },
493
+ offset: { source: 'meta', noBemClass: true },
494
+ place: { source: 'meta', noBemClass: true },
495
+ },
496
+ contextModifiers: { 'bento-cell': 'in-bento-cell' },
497
+ styles: {
498
+ offset: { prop: '--showcase-offset', transform: resolveOffset },
499
+ aspect: '--showcase-aspect',
500
+ },
501
+ postTransform(node, context) {
502
+ const placeValue = context.modifiers['place'];
503
+ if (placeValue) {
504
+ const { x, y } = parsePlacement(placeValue);
505
+ const existing = node.attributes.style || '';
506
+ const placeParts = `--place-x: ${x}; --place-y: ${y}`;
507
+ node.attributes.style = existing ? `${existing}; ${placeParts}` : placeParts;
508
+ }
509
+ return node;
510
+ },
511
+ },
441
512
  // ─── Interactive runes (still get BEM classes, components add behavior) ───
442
- TabGroup: { block: 'tabs' },
513
+ TabGroup: { block: 'tabs', autoLabel: pageSectionAutoLabel },
443
514
  Tab: { block: 'tab', parent: 'TabGroup' },
444
515
  DataTable: {
445
516
  block: 'datatable',
@@ -453,7 +524,7 @@ export const coreConfig = {
453
524
  Form: {
454
525
  block: 'form',
455
526
  modifiers: {
456
- style: { source: 'meta', default: 'stacked' },
527
+ variant: { source: 'meta', default: 'stacked' },
457
528
  action: { source: 'meta' },
458
529
  method: { source: 'meta', default: 'POST' },
459
530
  success: { source: 'meta' },
@@ -473,6 +544,7 @@ export const coreConfig = {
473
544
  modifiers: {
474
545
  mode: { source: 'meta', default: 'click' },
475
546
  },
547
+ autoLabel: pageSectionAutoLabel,
476
548
  },
477
549
  RevealStep: { block: 'reveal-step', parent: 'Reveal' },
478
550
  Diagram: {
@@ -513,6 +585,7 @@ export const coreConfig = {
513
585
  const dependencies = readMeta(node, 'dependencies') || '';
514
586
  const label = readMeta(node, 'label') || '';
515
587
  const height = readMeta(node, 'height') || 'auto';
588
+ const designTokens = readMeta(node, 'design-tokens') || '';
516
589
  // Keep non-meta children (fallback pre, source panels)
517
590
  const fallbackChildren = node.children.filter(child => {
518
591
  if (!isTag(child))
@@ -536,6 +609,7 @@ export const coreConfig = {
536
609
  ...(dependencies ? { 'data-dependencies': dependencies } : {}),
537
610
  ...(label ? { 'data-label': label } : {}),
538
611
  'data-height': height,
612
+ ...(designTokens ? { 'data-design-tokens': designTokens } : {}),
539
613
  },
540
614
  children,
541
615
  };
@@ -545,4 +619,247 @@ export const coreConfig = {
545
619
  };
546
620
  /** @deprecated Use `coreConfig` instead. Alias kept for backwards compatibility during transition. */
547
621
  export const baseConfig = coreConfig;
622
+ /** Build a page tree from a flat list of page entities */
623
+ function buildPageTree(pages) {
624
+ const byUrl = new Map();
625
+ // Create nodes for all pages
626
+ for (const p of pages) {
627
+ byUrl.set(p.url, { url: p.url, title: p.title, children: [] });
628
+ }
629
+ const root = { url: '/', title: 'Root', children: [] };
630
+ // Attach each page to its parent
631
+ for (const p of pages) {
632
+ const node = byUrl.get(p.url);
633
+ if (p.url === '/') {
634
+ // Root page merges into the virtual root
635
+ root.title = p.title;
636
+ root.children = node.children;
637
+ byUrl.set('/', root);
638
+ }
639
+ else {
640
+ const parent = byUrl.get(p.parentUrl) ?? root;
641
+ parent.children.push(node);
642
+ }
643
+ }
644
+ return root;
645
+ }
646
+ /** Build breadcrumb paths: url → ordered ancestor urls (root first, parent last) */
647
+ function buildBreadcrumbPaths(pages) {
648
+ const parentOf = new Map();
649
+ for (const p of pages) {
650
+ if (p.url !== '/') {
651
+ parentOf.set(p.url, p.parentUrl);
652
+ }
653
+ }
654
+ const paths = new Map();
655
+ for (const p of pages) {
656
+ const ancestors = [];
657
+ let current = parentOf.get(p.url);
658
+ while (current !== undefined) {
659
+ ancestors.unshift(current);
660
+ current = parentOf.get(current);
661
+ }
662
+ paths.set(p.url, ancestors);
663
+ }
664
+ return paths;
665
+ }
666
+ /** Derive the parent url by stripping the last path segment */
667
+ function deriveParentUrl(url) {
668
+ if (url === '/' || !url.includes('/'))
669
+ return '/';
670
+ // '/docs/guide/' → strip trailing slash, then strip last segment
671
+ const trimmed = url.endsWith('/') ? url.slice(0, -1) : url;
672
+ const parent = trimmed.lastIndexOf('/');
673
+ return parent <= 0 ? '/' : trimmed.slice(0, parent + 1);
674
+ }
675
+ /** Walk a Markdoc renderable tree, resolving any auto-breadcrumb placeholders */
676
+ function resolveAutoBreadcrumbs(renderable, pageUrl, breadcrumbPaths, pagesByUrl, ctx) {
677
+ if (!Tag.isTag(renderable)) {
678
+ if (Array.isArray(renderable)) {
679
+ const newChildren = renderable.map(c => resolveAutoBreadcrumbs(c, pageUrl, breadcrumbPaths, pagesByUrl, ctx));
680
+ // Return original if nothing changed
681
+ if (newChildren.every((c, i) => c === renderable[i]))
682
+ return renderable;
683
+ return newChildren;
684
+ }
685
+ return renderable;
686
+ }
687
+ const tag = renderable;
688
+ // Check if this is a Breadcrumb auto placeholder
689
+ if (tag.attributes?.['data-rune'] === 'breadcrumb') {
690
+ const hasSentinel = tag.children?.some((c) => Tag.isTag(c) && c.attributes?.['data-field'] === BREADCRUMB_AUTO_SENTINEL);
691
+ if (hasSentinel) {
692
+ return buildAutoBreadcrumb(tag, pageUrl, breadcrumbPaths, pagesByUrl, ctx);
693
+ }
694
+ }
695
+ // Recurse into children
696
+ const newChildren = (tag.children ?? []).map((c) => resolveAutoBreadcrumbs(c, pageUrl, breadcrumbPaths, pagesByUrl, ctx));
697
+ if (newChildren.every((c, i) => c === tag.children[i]))
698
+ return tag;
699
+ return { ...tag, children: newChildren };
700
+ }
701
+ /** Build a resolved breadcrumb Tag from the page hierarchy */
702
+ function buildAutoBreadcrumb(originalTag, pageUrl, breadcrumbPaths, pagesByUrl, ctx) {
703
+ const ancestorUrls = breadcrumbPaths.get(pageUrl);
704
+ if (ancestorUrls === undefined) {
705
+ ctx.warn(`Breadcrumb auto: page URL "${pageUrl}" not found in page registry`, pageUrl);
706
+ return originalTag;
707
+ }
708
+ // Find separator from existing meta child
709
+ const separatorMeta = originalTag.children?.find((c) => Tag.isTag(c) && c.name === 'meta' && !c.attributes?.['data-field']);
710
+ const separator = separatorMeta?.attributes?.content ?? '/';
711
+ // Build breadcrumb items: ancestor pages + current page (no link)
712
+ const listItems = [];
713
+ for (const ancestorUrl of ancestorUrls) {
714
+ const ancestorPage = pagesByUrl.get(ancestorUrl);
715
+ if (!ancestorPage)
716
+ continue;
717
+ const nameSpan = new Tag('span', { hidden: true }, [ancestorPage.title]);
718
+ const urlLink = new Tag('a', { href: ancestorUrl }, [ancestorPage.title]);
719
+ listItems.push(createComponentRenderable(schema.BreadcrumbItem, {
720
+ tag: 'li',
721
+ properties: { name: nameSpan, url: urlLink },
722
+ children: [nameSpan, urlLink],
723
+ }));
724
+ }
725
+ // Add current page as the last item (no link)
726
+ const currentPage = pagesByUrl.get(pageUrl);
727
+ const currentTitle = currentPage?.title ?? pageUrl;
728
+ const currentSpan = new Tag('span', {}, [currentTitle]);
729
+ listItems.push(createComponentRenderable(schema.BreadcrumbItem, {
730
+ tag: 'li',
731
+ properties: { name: currentSpan },
732
+ children: [currentSpan],
733
+ }));
734
+ const newSeparatorMeta = new Tag('meta', { content: separator });
735
+ const itemsList = new Tag('ol', {}, listItems);
736
+ return createComponentRenderable(schema.Breadcrumb, {
737
+ tag: 'nav',
738
+ properties: { separator: newSeparatorMeta },
739
+ refs: { items: itemsList },
740
+ children: [newSeparatorMeta, itemsList],
741
+ });
742
+ }
743
+ /** Walk a Markdoc renderable tree, resolving any auto-nav placeholders */
744
+ function resolveAutoNavs(renderable, pageUrl, pagesByUrl, ctx) {
745
+ if (!Tag.isTag(renderable)) {
746
+ if (Array.isArray(renderable)) {
747
+ const newChildren = renderable.map(c => resolveAutoNavs(c, pageUrl, pagesByUrl, ctx));
748
+ if (newChildren.every((c, i) => c === renderable[i]))
749
+ return renderable;
750
+ return newChildren;
751
+ }
752
+ return renderable;
753
+ }
754
+ const tag = renderable;
755
+ // Check if this is a Nav auto placeholder
756
+ if (tag.attributes?.['data-rune'] === 'nav') {
757
+ const hasSentinel = tag.children?.some((c) => Tag.isTag(c) && c.attributes?.['data-field'] === NAV_AUTO_SENTINEL);
758
+ if (hasSentinel) {
759
+ return buildAutoNav(pageUrl, pagesByUrl, ctx);
760
+ }
761
+ }
762
+ // Recurse into children
763
+ const newChildren = (tag.children ?? []).map((c) => resolveAutoNavs(c, pageUrl, pagesByUrl, ctx));
764
+ if (newChildren.every((c, i) => c === tag.children[i]))
765
+ return tag;
766
+ return { ...tag, children: newChildren };
767
+ }
768
+ /** Build a resolved nav Tag from the direct children of the current page */
769
+ function buildAutoNav(pageUrl, pagesByUrl, ctx) {
770
+ // Find direct children: pages whose parentUrl is this page's URL (excluding self)
771
+ const children = Array.from(pagesByUrl.values()).filter(p => p.parentUrl === pageUrl && p.url !== pageUrl);
772
+ if (children.length === 0) {
773
+ ctx.warn(`Nav auto: page '${pageUrl}' has no registered child pages`, pageUrl);
774
+ }
775
+ const listItems = children.map(child => {
776
+ const titleSpan = new Tag('span', { 'data-field': 'slug' }, [child.title]);
777
+ const link = new Tag('a', { href: child.url }, [titleSpan]);
778
+ return createComponentRenderable(schema.NavItem, {
779
+ tag: 'li',
780
+ properties: { slug: titleSpan },
781
+ children: [link],
782
+ });
783
+ });
784
+ const itemsList = new Tag('ul', {}, listItems);
785
+ return createComponentRenderable(schema.Nav, {
786
+ tag: 'nav',
787
+ properties: {
788
+ group: [],
789
+ item: listItems,
790
+ },
791
+ children: [itemsList],
792
+ });
793
+ }
794
+ /**
795
+ * Core cross-page pipeline hooks.
796
+ * Run for every site, before any community package hooks.
797
+ * Registers page and heading entities, aggregates the page tree and breadcrumb paths.
798
+ */
799
+ export const corePipelineHooks = {
800
+ register(pages, registry, ctx) {
801
+ for (const page of pages) {
802
+ const parentUrl = deriveParentUrl(page.url);
803
+ const existingPage = registry.getById('page', page.url);
804
+ if (existingPage && existingPage.sourceUrl !== page.url) {
805
+ ctx.warn(`Page '${page.url}' already registered from '${existingPage.sourceUrl}'`, page.url);
806
+ }
807
+ registry.register({
808
+ type: 'page',
809
+ id: page.url,
810
+ sourceUrl: page.url,
811
+ data: {
812
+ title: page.title,
813
+ url: page.url,
814
+ parentUrl,
815
+ draft: page.frontmatter.draft ?? false,
816
+ description: page.frontmatter.description,
817
+ date: page.frontmatter.date,
818
+ order: page.frontmatter.order,
819
+ },
820
+ });
821
+ for (const h of page.headings) {
822
+ const headingId = `${page.url}#${h.id}`;
823
+ const existingHeading = registry.getById('heading', headingId);
824
+ if (existingHeading && existingHeading.sourceUrl !== page.url) {
825
+ ctx.warn(`Heading '${headingId}' already registered from '${existingHeading.sourceUrl}'`, page.url);
826
+ }
827
+ registry.register({
828
+ type: 'heading',
829
+ id: headingId,
830
+ sourceUrl: page.url,
831
+ data: { level: h.level, text: h.text, headingId: h.id, url: page.url },
832
+ });
833
+ }
834
+ }
835
+ },
836
+ aggregate(registry, ctx) {
837
+ const pageEntities = registry.getAll('page');
838
+ const pages = pageEntities.map(e => ({
839
+ url: e.data.url,
840
+ title: e.data.title,
841
+ parentUrl: e.data.parentUrl,
842
+ }));
843
+ const pageTree = buildPageTree(pages);
844
+ const breadcrumbPaths = buildBreadcrumbPaths(pages);
845
+ // Quick lookup: url → { url, title } for postProcess use
846
+ const pagesByUrl = new Map(pages.map(p => [p.url, p]));
847
+ // Build heading index: "url#id" → heading data
848
+ const headingIndex = new Map();
849
+ for (const h of registry.getAll('heading')) {
850
+ headingIndex.set(h.id, h.data);
851
+ }
852
+ return { pageTree, breadcrumbPaths, pagesByUrl, headingIndex };
853
+ },
854
+ postProcess(page, aggregated, ctx) {
855
+ const coreData = aggregated['__core__'];
856
+ if (!coreData)
857
+ return page;
858
+ let renderable = resolveAutoBreadcrumbs(page.renderable, page.url, coreData.breadcrumbPaths, coreData.pagesByUrl, ctx);
859
+ renderable = resolveAutoNavs(renderable, page.url, coreData.pagesByUrl, ctx);
860
+ if (renderable === page.renderable)
861
+ return page;
862
+ return { ...page, renderable };
863
+ },
864
+ };
548
865
  //# sourceMappingURL=config.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}