@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
@@ -8,9 +8,9 @@ var __metadata = (this && this.__metadata) || function (k, v) {
8
8
  if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
9
9
  };
10
10
  import Markdoc from '@markdoc/markdoc';
11
- const { Tag } = Markdoc;
12
11
  import { schema } from '../registry.js';
13
12
  import { attribute, createComponentRenderable, createSchema, Model } from '../lib/index.js';
13
+ /** @deprecated Use SplitLayoutModel instead */
14
14
  export class SplitablePageSectionModel extends Model {
15
15
  constructor() {
16
16
  super(...arguments);
@@ -26,10 +26,41 @@ __decorate([
26
26
  attribute({ type: Boolean, required: false }),
27
27
  __metadata("design:type", Boolean)
28
28
  ], SplitablePageSectionModel.prototype, "mirror", void 0);
29
+ /** Base model for section runes with split layout support */
30
+ export class SplitLayoutModel extends Model {
31
+ constructor() {
32
+ super(...arguments);
33
+ this.layout = 'stacked';
34
+ this.ratio = '1 1';
35
+ this.valign = 'top';
36
+ this.gap = 'default';
37
+ this.collapse = undefined;
38
+ }
39
+ }
40
+ __decorate([
41
+ attribute({ type: String, required: false, matches: ['stacked', 'split', 'split-reverse'] }),
42
+ __metadata("design:type", String)
43
+ ], SplitLayoutModel.prototype, "layout", void 0);
44
+ __decorate([
45
+ attribute({ type: String, required: false }),
46
+ __metadata("design:type", String)
47
+ ], SplitLayoutModel.prototype, "ratio", void 0);
48
+ __decorate([
49
+ attribute({ type: String, required: false, matches: ['top', 'center', 'bottom'] }),
50
+ __metadata("design:type", String)
51
+ ], SplitLayoutModel.prototype, "valign", void 0);
52
+ __decorate([
53
+ attribute({ type: String, required: false, matches: ['none', 'tight', 'default', 'loose'] }),
54
+ __metadata("design:type", String)
55
+ ], SplitLayoutModel.prototype, "gap", void 0);
56
+ __decorate([
57
+ attribute({ type: String, required: false, matches: ['sm', 'md', 'lg', 'never'] }),
58
+ __metadata("design:type", Object)
59
+ ], SplitLayoutModel.prototype, "collapse", void 0);
29
60
  class LinkItemModel extends Model {
30
61
  transform() {
31
62
  const output = this.transformChildren({
32
- text: node => new Tag('span', {}, [node.attributes.content])
63
+ text: node => new Markdoc.Tag('span', {}, [node.attributes.content])
33
64
  });
34
65
  return createComponentRenderable(schema.LinkItem, {
35
66
  tag: 'li',
@@ -49,12 +80,46 @@ export function description(cursor) {
49
80
  return cursor.tag('p').limit(1);
50
81
  }
51
82
  export function pageSectionProperties(cursor) {
52
- const headings = cursor.headings();
83
+ const nodes = cursor.nodes;
84
+ const isH = (n) => Markdoc.Tag.isTag(n) && /^h[1-6]$/.test(n.name);
85
+ const isP = (n) => Markdoc.Tag.isTag(n) && n.name === 'p';
86
+ const firstH = nodes.findIndex(isH);
87
+ // No headline — first paragraph is blurb
88
+ if (firstH === -1) {
89
+ return {
90
+ eyebrow: undefined,
91
+ headline: undefined,
92
+ image: cursor.tag('img').limit(1),
93
+ blurb: nodes.find(isP),
94
+ };
95
+ }
96
+ // Paragraph before first heading → paragraph eyebrow
97
+ const paraBeforeH = nodes.slice(0, firstH).findIndex(isP);
98
+ let eyebrow;
99
+ let headlineIdx;
100
+ if (paraBeforeH !== -1) {
101
+ eyebrow = nodes[paraBeforeH];
102
+ headlineIdx = firstH;
103
+ }
104
+ else {
105
+ // Two headings → first heading eyebrow (original behaviour)
106
+ const secondH = nodes.findIndex((n, i) => i > firstH && isH(n));
107
+ if (secondH !== -1) {
108
+ eyebrow = nodes[firstH];
109
+ headlineIdx = secondH;
110
+ }
111
+ else {
112
+ eyebrow = undefined;
113
+ headlineIdx = firstH;
114
+ }
115
+ }
116
+ // First paragraph after headline → blurb
117
+ const blurbIdx = nodes.findIndex((n, i) => i > headlineIdx && isP(n));
53
118
  return {
54
- eyebrow: headings.count() > 1 ? headings.next() : undefined,
55
- headline: headings.next(),
119
+ eyebrow,
120
+ headline: nodes[headlineIdx],
56
121
  image: cursor.tag('img').limit(1),
57
- blurb: cursor.tag('p').limit(1),
122
+ blurb: blurbIdx !== -1 ? nodes[blurbIdx] : undefined,
58
123
  };
59
124
  }
60
125
  //# sourceMappingURL=common.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"common.js","sourceRoot":"","sources":["../../src/tags/common.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,OAAO,MAAM,kBAAkB,CAAC;AAEvC,MAAM,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC;AACxB,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AACxC,OAAO,EAAE,SAAS,EAAE,yBAAyB,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AAG5F,MAAM,OAAO,yBAA0B,SAAQ,KAAK;IAApD;;QAEE,UAAK,GAAY,KAAK,CAAC;QAGvB,WAAM,GAAY,KAAK,CAAC;IAC1B,CAAC;CAAA;AAJC;IADC,SAAS,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;;wDACvB;AAGvB;IADC,SAAS,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;;yDACtB;AAG1B,MAAM,aAAc,SAAQ,KAAK;IAC/B,SAAS;QACP,MAAM,MAAM,GAAG,IAAI,CAAC,iBAAiB,CAAC;YACpC,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC,IAAI,GAAG,CAAC,MAAM,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;SAC7D,CAAC,CAAC;QAEH,OAAO,yBAAyB,CAAC,MAAM,CAAC,QAAQ,EAAE;YAChD,GAAG,EAAE,IAAI;YACT,UAAU,EAAE;gBACV,IAAI,EAAE,MAAM,CAAC,OAAO,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC;gBAClC,GAAG,EAAE,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC;aACrB;YACD,QAAQ,EAAE,MAAM,CAAC,OAAO,EAAE;SAC3B,CAAC,CAAA;IACJ,CAAC;CACF;AAED,MAAM,CAAC,MAAM,QAAQ,GAAG,YAAY,CAAC,aAAa,CAAC,CAAC;AAEpD,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;AAED,MAAM,UAAU,qBAAqB,CAAC,MAA4B;IAChE,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,EAAE,CAAC;IAEnC,OAAO;QACL,OAAO,EAAE,QAAQ,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,SAAS;QAC3D,QAAQ,EAAE,QAAQ,CAAC,IAAI,EAAE;QACzB,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;QACjC,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;KAChC,CAAA;AACH,CAAC"}
1
+ {"version":3,"file":"common.js","sourceRoot":"","sources":["../../src/tags/common.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"compare.d.ts","sourceRoot":"","sources":["../../src/tags/compare.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,kBAAkB,CAAC;AAoDvC,eAAO,MAAM,OAAO,gBAA6B,CAAC"}
1
+ {"version":3,"file":"compare.d.ts","sourceRoot":"","sources":["../../src/tags/compare.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,kBAAkB,CAAC;AASvC,eAAO,MAAM,OAAO,gBAoDlB,CAAC"}
@@ -1,29 +1,28 @@
1
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
- return c > 3 && r && Object.defineProperty(target, key, r), r;
6
- };
7
- var __metadata = (this && this.__metadata) || function (k, v) {
8
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
9
- };
10
1
  import Markdoc from '@markdoc/markdoc';
11
2
  const { Tag } = Markdoc;
12
3
  import { schema } from '../registry.js';
13
- import { attribute, Model, createComponentRenderable, createSchema } from '../lib/index.js';
4
+ import { createContentModelSchema, createComponentRenderable, asNodes } from '../lib/index.js';
5
+ import { RenderableNodeCursor } from '../lib/renderable.js';
14
6
  const layoutType = ['side-by-side', 'stacked'];
15
- class CompareModel extends Model {
16
- constructor() {
17
- super(...arguments);
18
- this.layout = 'side-by-side';
19
- this.labels = '';
20
- }
21
- transform() {
22
- const children = this.transformChildren();
23
- const layoutMeta = new Tag('meta', { content: this.layout });
7
+ export const compare = createContentModelSchema({
8
+ attributes: {
9
+ layout: { type: String, required: false, matches: layoutType.slice() },
10
+ labels: { type: String, required: false },
11
+ },
12
+ contentModel: {
13
+ type: 'sequence',
14
+ fields: [
15
+ { name: 'body', match: 'any', optional: true, greedy: true },
16
+ ],
17
+ },
18
+ transform(resolved, attrs, config) {
19
+ const children = new RenderableNodeCursor(Markdoc.transform(asNodes(resolved.body), config));
20
+ const layout = attrs.layout ?? 'side-by-side';
21
+ const labels = attrs.labels ?? '';
22
+ const layoutMeta = new Tag('meta', { content: layout });
24
23
  // Collect all <pre> code blocks from children
25
24
  const panels = [];
26
- const customLabels = this.labels ? this.labels.split(',').map(l => l.trim()) : [];
25
+ const customLabels = labels ? labels.split(',').map((l) => l.trim()) : [];
27
26
  let panelIndex = 0;
28
27
  for (const node of children.toArray()) {
29
28
  if (Tag.isTag(node) && node.name === 'pre') {
@@ -47,15 +46,6 @@ class CompareModel extends Model {
47
46
  },
48
47
  children: [layoutMeta, panelsDiv],
49
48
  });
50
- }
51
- }
52
- __decorate([
53
- attribute({ type: String, required: false, matches: layoutType.slice() }),
54
- __metadata("design:type", Object)
55
- ], CompareModel.prototype, "layout", void 0);
56
- __decorate([
57
- attribute({ type: String, required: false }),
58
- __metadata("design:type", String)
59
- ], CompareModel.prototype, "labels", void 0);
60
- export const compare = createSchema(CompareModel);
49
+ },
50
+ });
61
51
  //# sourceMappingURL=compare.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"compare.js","sourceRoot":"","sources":["../../src/tags/compare.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,OAAO,MAAM,kBAAkB,CAAC;AAEvC,MAAM,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC;AACxB,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AACxC,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,yBAAyB,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAE5F,MAAM,UAAU,GAAG,CAAC,cAAc,EAAE,SAAS,CAAU,CAAC;AAExD,MAAM,YAAa,SAAQ,KAAK;IAAhC;;QAEC,WAAM,GAA8B,cAAc,CAAC;QAGnD,WAAM,GAAW,EAAE,CAAC;IAqCrB,CAAC;IAnCA,SAAS;QACR,MAAM,QAAQ,GAAG,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAC1C,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,MAAM,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;QAE7D,8CAA8C;QAC9C,MAAM,MAAM,GAAU,EAAE,CAAC;QACzB,MAAM,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAElF,IAAI,UAAU,GAAG,CAAC,CAAC;QACnB,KAAK,MAAM,IAAI,IAAI,QAAQ,CAAC,OAAO,EAAE,EAAE,CAAC;YACvC,IAAI,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;gBAC5C,4EAA4E;gBAC5E,MAAM,KAAK,GAAG,YAAY,CAAC,UAAU,CAAC;uBAClC,IAAI,CAAC,UAAU,CAAC,eAAe,CAAC;uBAChC,SAAS,UAAU,GAAG,CAAC,EAAE,CAAC;gBAE9B,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,MAAM,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;gBAClE,MAAM,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,KAAK,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,EAAE,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;gBACtE,UAAU,EAAE,CAAC;YACd,CAAC;QACF,CAAC;QAED,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,KAAK,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,EAAE,MAAM,CAAC,CAAC;QAElE,OAAO,yBAAyB,CAAC,MAAM,CAAC,OAAO,EAAE;YAChD,GAAG,EAAE,KAAK;YACV,UAAU,EAAE;gBACX,MAAM,EAAE,UAAU;aAClB;YACD,IAAI,EAAE;gBACL,MAAM,EAAE,SAAS;aACjB;YACD,QAAQ,EAAE,CAAC,UAAU,EAAE,SAAS,CAAC;SACjC,CAAC,CAAC;IACJ,CAAC;CACD;AAxCA;IADC,SAAS,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,UAAU,CAAC,KAAK,EAAE,EAAE,CAAC;;4CACvB;AAGnD;IADC,SAAS,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;;4CACzB;AAuCrB,MAAM,CAAC,MAAM,OAAO,GAAG,YAAY,CAAC,YAAY,CAAC,CAAC"}
1
+ {"version":3,"file":"compare.js","sourceRoot":"","sources":["../../src/tags/compare.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"conversation.d.ts","sourceRoot":"","sources":["../../src/tags/conversation.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,kBAAkB,CAAC;AAyGvC,eAAO,MAAM,mBAAmB,gBAAyC,CAAC;AAC1E,eAAO,MAAM,YAAY,gBAAkC,CAAC"}
1
+ {"version":3,"file":"conversation.d.ts","sourceRoot":"","sources":["../../src/tags/conversation.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,kBAAkB,CAAC;AAiCvC,eAAO,MAAM,mBAAmB,gBAAyC,CAAC;AAkD1E,eAAO,MAAM,YAAY,gBA2BvB,CAAC"}
@@ -10,28 +10,28 @@ var __metadata = (this && this.__metadata) || function (k, v) {
10
10
  import Markdoc from '@markdoc/markdoc';
11
11
  const { Ast, Tag } = Markdoc;
12
12
  import { schema } from '../registry.js';
13
- import { attribute, group, Model, createComponentRenderable, createSchema } from '../lib/index.js';
14
- import { NodeStream } from '../lib/node.js';
13
+ import { attribute, Model, createComponentRenderable, createContentModelSchema, createSchema, asNodes } from '../lib/index.js';
14
+ import { RenderableNodeCursor } from '../lib/renderable.js';
15
15
  class ConversationMessageModel extends Model {
16
16
  constructor() {
17
17
  super(...arguments);
18
18
  this.speaker = '';
19
- this.alignment = 'left';
19
+ this.align = 'left';
20
20
  }
21
21
  transform() {
22
22
  const speakerTag = new Tag('span', {}, [this.speaker]);
23
- const alignmentMeta = new Tag('meta', { content: this.alignment });
23
+ const alignMeta = new Tag('meta', { content: this.align });
24
24
  const body = this.transformChildren().wrap('div');
25
25
  return createComponentRenderable(schema.ConversationMessage, {
26
26
  tag: 'div',
27
27
  properties: {
28
28
  speaker: speakerTag,
29
- alignment: alignmentMeta,
29
+ align: alignMeta,
30
30
  },
31
31
  refs: {
32
32
  body: body.tag('div'),
33
33
  },
34
- children: [speakerTag, alignmentMeta, body.next()],
34
+ children: [speakerTag, alignMeta, body.next()],
35
35
  });
36
36
  }
37
37
  }
@@ -40,56 +40,62 @@ __decorate([
40
40
  __metadata("design:type", String)
41
41
  ], ConversationMessageModel.prototype, "speaker", void 0);
42
42
  __decorate([
43
- attribute({ type: String, required: false }),
43
+ attribute({ type: String, required: false, matches: ['left', 'right'] }),
44
44
  __metadata("design:type", String)
45
- ], ConversationMessageModel.prototype, "alignment", void 0);
46
- class ConversationModel extends Model {
47
- constructor() {
48
- super(...arguments);
49
- this.speakers = '';
50
- }
51
- processChildren(nodes) {
52
- const speakerList = this.speakers
53
- ? this.speakers.split(',').map(s => s.trim())
54
- : [];
55
- const converted = [];
56
- let messageIndex = 0;
57
- for (const node of nodes) {
58
- if (node.type === 'blockquote') {
59
- let speaker = '';
60
- const children = [...node.children];
61
- // Try to extract speaker from first paragraph's bold text: **Name:** ...
62
- if (children.length > 0 && children[0].type === 'paragraph') {
63
- const firstPara = children[0];
64
- const firstChild = firstPara.children[0];
65
- if (firstChild && firstChild.type === 'strong') {
66
- const nameText = Array.from(firstChild.walk())
67
- .filter(n => n.type === 'text')
68
- .map(n => n.attributes.content)
69
- .join('')
70
- .replace(/:\s*$/, '');
71
- speaker = nameText;
72
- }
73
- }
74
- // Fall back to alternating from speakers list
75
- if (!speaker && speakerList.length > 0) {
76
- speaker = speakerList[messageIndex % speakerList.length];
45
+ ], ConversationMessageModel.prototype, "align", void 0);
46
+ export const conversationMessage = createSchema(ConversationMessageModel);
47
+ function convertConversationChildren(nodes, attrs) {
48
+ const speakerList = attrs.speakers
49
+ ? String(attrs.speakers).split(',').map(s => s.trim())
50
+ : [];
51
+ const converted = [];
52
+ let messageIndex = 0;
53
+ for (const node of nodes) {
54
+ if (node.type === 'blockquote') {
55
+ let speaker = '';
56
+ const children = [...node.children];
57
+ // Try to extract speaker from first paragraph's bold text: **Name:** ...
58
+ if (children.length > 0 && children[0].type === 'paragraph') {
59
+ const firstPara = children[0];
60
+ const firstChild = firstPara.children[0];
61
+ if (firstChild && firstChild.type === 'strong') {
62
+ const nameText = Array.from(firstChild.walk())
63
+ .filter(n => n.type === 'text')
64
+ .map(n => n.attributes.content)
65
+ .join('')
66
+ .replace(/:\s*$/, '');
67
+ speaker = nameText;
77
68
  }
78
- const alignment = messageIndex % 2 === 0 ? 'left' : 'right';
79
- converted.push(new Ast.Node('tag', {
80
- speaker,
81
- alignment,
82
- }, node.children, 'conversation-message'));
83
- messageIndex++;
84
69
  }
85
- else {
86
- converted.push(node);
70
+ // Fall back to alternating from speakers list
71
+ if (!speaker && speakerList.length > 0) {
72
+ speaker = speakerList[messageIndex % speakerList.length];
87
73
  }
74
+ const align = messageIndex % 2 === 0 ? 'left' : 'right';
75
+ converted.push(new Ast.Node('tag', {
76
+ speaker,
77
+ align,
78
+ }, node.children, 'conversation-message'));
79
+ messageIndex++;
80
+ }
81
+ else {
82
+ converted.push(node);
88
83
  }
89
- return super.processChildren(converted);
90
84
  }
91
- transform() {
92
- const body = this.body.transform();
85
+ return converted;
86
+ }
87
+ export const conversation = createContentModelSchema({
88
+ attributes: {
89
+ speakers: { type: String, required: false },
90
+ },
91
+ contentModel: {
92
+ type: 'custom',
93
+ processChildren: (nodes, attrs) => convertConversationChildren(nodes, attrs),
94
+ description: 'Converts blockquotes to conversation messages with alternating left/right alignment. '
95
+ + 'Extracts speaker name from bold text in first paragraph, falls back to speakers list.',
96
+ },
97
+ transform(resolved, attrs, config) {
98
+ const body = new RenderableNodeCursor(Markdoc.transform(asNodes(resolved.children), config));
93
99
  const messages = body.tag('div').typeof('ConversationMessage');
94
100
  const messagesContainer = messages.wrap('div');
95
101
  return createComponentRenderable(schema.Conversation, {
@@ -100,16 +106,6 @@ class ConversationModel extends Model {
100
106
  refs: { messages: messagesContainer },
101
107
  children: [messagesContainer.next()],
102
108
  });
103
- }
104
- }
105
- __decorate([
106
- attribute({ type: String, required: false }),
107
- __metadata("design:type", String)
108
- ], ConversationModel.prototype, "speakers", void 0);
109
- __decorate([
110
- group({ include: ['tag'] }),
111
- __metadata("design:type", NodeStream)
112
- ], ConversationModel.prototype, "body", void 0);
113
- export const conversationMessage = createSchema(ConversationMessageModel);
114
- export const conversation = createSchema(ConversationModel);
109
+ },
110
+ });
115
111
  //# sourceMappingURL=conversation.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"conversation.js","sourceRoot":"","sources":["../../src/tags/conversation.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"conversation.js","sourceRoot":"","sources":["../../src/tags/conversation.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"datatable.d.ts","sourceRoot":"","sources":["../../src/tags/datatable.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,kBAAkB,CAAC;AA+CvC,eAAO,MAAM,SAAS,gBAA+B,CAAC"}
1
+ {"version":3,"file":"datatable.d.ts","sourceRoot":"","sources":["../../src/tags/datatable.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,kBAAkB,CAAC;AAOvC,eAAO,MAAM,SAAS,gBAyCpB,CAAC"}
@@ -1,30 +1,27 @@
1
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
- return c > 3 && r && Object.defineProperty(target, key, r), r;
6
- };
7
- var __metadata = (this && this.__metadata) || function (k, v) {
8
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
9
- };
10
1
  import Markdoc from '@markdoc/markdoc';
11
2
  const { Tag } = Markdoc;
12
3
  import { schema } from '../registry.js';
13
- import { attribute, Model, createComponentRenderable, createSchema } from '../lib/index.js';
14
- class DataTableModel extends Model {
15
- constructor() {
16
- super(...arguments);
17
- this.sortable = '';
18
- this.searchable = false;
19
- this.pageSize = 0;
20
- this.defaultSort = '';
21
- }
22
- transform() {
23
- const children = this.transformChildren();
24
- const sortableMeta = new Tag('meta', { content: this.sortable });
25
- const searchableMeta = new Tag('meta', { content: String(this.searchable) });
26
- const pageSizeMeta = new Tag('meta', { content: String(this.pageSize) });
27
- const defaultSortMeta = new Tag('meta', { content: this.defaultSort });
4
+ import { createContentModelSchema, createComponentRenderable, asNodes } from '../lib/index.js';
5
+ import { RenderableNodeCursor } from '../lib/renderable.js';
6
+ export const datatable = createContentModelSchema({
7
+ attributes: {
8
+ sortable: { type: String, required: false },
9
+ searchable: { type: Boolean, required: false },
10
+ pageSize: { type: Number, required: false },
11
+ defaultSort: { type: String, required: false },
12
+ },
13
+ contentModel: {
14
+ type: 'sequence',
15
+ fields: [
16
+ { name: 'body', match: 'any', optional: true, greedy: true },
17
+ ],
18
+ },
19
+ transform(resolved, attrs, config) {
20
+ const children = new RenderableNodeCursor(Markdoc.transform(asNodes(resolved.body), config));
21
+ const sortableMeta = new Tag('meta', { content: attrs.sortable ?? '' });
22
+ const searchableMeta = new Tag('meta', { content: String(attrs.searchable ?? false) });
23
+ const pageSizeMeta = new Tag('meta', { content: String(attrs.pageSize ?? 0) });
24
+ const defaultSortMeta = new Tag('meta', { content: attrs.defaultSort ?? '' });
28
25
  // Find the table element from children
29
26
  const table = children.tag('table');
30
27
  const tableTag = table.count() > 0 ? table.next() : new Tag('table', {}, []);
@@ -41,23 +38,6 @@ class DataTableModel extends Model {
41
38
  },
42
39
  children: [sortableMeta, searchableMeta, pageSizeMeta, defaultSortMeta, tableTag],
43
40
  });
44
- }
45
- }
46
- __decorate([
47
- attribute({ type: String, required: false }),
48
- __metadata("design:type", String)
49
- ], DataTableModel.prototype, "sortable", void 0);
50
- __decorate([
51
- attribute({ type: Boolean, required: false }),
52
- __metadata("design:type", Boolean)
53
- ], DataTableModel.prototype, "searchable", void 0);
54
- __decorate([
55
- attribute({ type: Number, required: false }),
56
- __metadata("design:type", Number)
57
- ], DataTableModel.prototype, "pageSize", void 0);
58
- __decorate([
59
- attribute({ type: String, required: false }),
60
- __metadata("design:type", String)
61
- ], DataTableModel.prototype, "defaultSort", void 0);
62
- export const datatable = createSchema(DataTableModel);
41
+ },
42
+ });
63
43
  //# sourceMappingURL=datatable.js.map
@@ -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,MAAM,EAAE,MAAM,gBAAgB,CAAC;AACxC,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,yBAAyB,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAE5F,MAAM,cAAe,SAAQ,KAAK;IAAlC;;QAEC,aAAQ,GAAW,EAAE,CAAC;QAGtB,eAAU,GAAY,KAAK,CAAC;QAG5B,aAAQ,GAAW,CAAC,CAAC;QAGrB,gBAAW,GAAW,EAAE,CAAC;IA4B1B,CAAC;IA1BA,SAAS;QACR,MAAM,QAAQ,GAAG,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAE1C,MAAM,YAAY,GAAG,IAAI,GAAG,CAAC,MAAM,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;QACjE,MAAM,cAAc,GAAG,IAAI,GAAG,CAAC,MAAM,EAAE,EAAE,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;QAC7E,MAAM,YAAY,GAAG,IAAI,GAAG,CAAC,MAAM,EAAE,EAAE,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QACzE,MAAM,eAAe,GAAG,IAAI,GAAG,CAAC,MAAM,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;QAEvE,uCAAuC;QACvC,MAAM,KAAK,GAAG,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QACpC,MAAM,QAAQ,GAAG,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,OAAO,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;QAE7E,OAAO,yBAAyB,CAAC,MAAM,CAAC,SAAS,EAAE;YAClD,GAAG,EAAE,KAAK;YACV,UAAU,EAAE;gBACX,QAAQ,EAAE,YAAY;gBACtB,UAAU,EAAE,cAAc;gBAC1B,QAAQ,EAAE,YAAY;gBACtB,WAAW,EAAE,eAAe;aAC5B;YACD,IAAI,EAAE;gBACL,KAAK,EAAE,QAAQ;aACf;YACD,QAAQ,EAAE,CAAC,YAAY,EAAE,cAAc,EAAE,YAAY,EAAE,eAAe,EAAE,QAAQ,CAAC;SACjF,CAAC,CAAC;IACJ,CAAC;CACD;AArCA;IADC,SAAS,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;;gDACvB;AAGtB;IADC,SAAS,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;;kDAClB;AAG5B;IADC,SAAS,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;;gDACxB;AAGrB;IADC,SAAS,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;;mDACpB;AA8B1B,MAAM,CAAC,MAAM,SAAS,GAAG,YAAY,CAAC,cAAc,CAAC,CAAC"}
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,MAAM,EAAE,MAAM,gBAAgB,CAAC;AACxC,OAAO,EAAE,wBAAwB,EAAE,yBAAyB,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAC/F,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAE5D,MAAM,CAAC,MAAM,SAAS,GAAG,wBAAwB,CAAC;IACjD,UAAU,EAAE;QACX,QAAQ,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE;QAC3C,UAAU,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE;QAC9C,QAAQ,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE;QAC3C,WAAW,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE;KAC9C;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,YAAY,GAAG,IAAI,GAAG,CAAC,MAAM,EAAE,EAAE,OAAO,EAAE,KAAK,CAAC,QAAQ,IAAI,EAAE,EAAE,CAAC,CAAC;QACxE,MAAM,cAAc,GAAG,IAAI,GAAG,CAAC,MAAM,EAAE,EAAE,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,UAAU,IAAI,KAAK,CAAC,EAAE,CAAC,CAAC;QACvF,MAAM,YAAY,GAAG,IAAI,GAAG,CAAC,MAAM,EAAE,EAAE,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,QAAQ,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC;QAC/E,MAAM,eAAe,GAAG,IAAI,GAAG,CAAC,MAAM,EAAE,EAAE,OAAO,EAAE,KAAK,CAAC,WAAW,IAAI,EAAE,EAAE,CAAC,CAAC;QAE9E,uCAAuC;QACvC,MAAM,KAAK,GAAG,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QACpC,MAAM,QAAQ,GAAG,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,OAAO,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;QAE7E,OAAO,yBAAyB,CAAC,MAAM,CAAC,SAAS,EAAE;YAClD,GAAG,EAAE,KAAK;YACV,UAAU,EAAE;gBACX,QAAQ,EAAE,YAAY;gBACtB,UAAU,EAAE,cAAc;gBAC1B,QAAQ,EAAE,YAAY;gBACtB,WAAW,EAAE,eAAe;aAC5B;YACD,IAAI,EAAE;gBACL,KAAK,EAAE,QAAQ;aACf;YACD,QAAQ,EAAE,CAAC,YAAY,EAAE,cAAc,EAAE,YAAY,EAAE,eAAe,EAAE,QAAQ,CAAC;SACjF,CAAC,CAAC;IACJ,CAAC;CACD,CAAC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"details.d.ts","sourceRoot":"","sources":["../../src/tags/details.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,kBAAkB,CAAC;AA6CvC,eAAO,MAAM,OAAO,gBAA6B,CAAC"}
1
+ {"version":3,"file":"details.d.ts","sourceRoot":"","sources":["../../src/tags/details.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,kBAAkB,CAAC;AAOvC,eAAO,MAAM,OAAO,gBAmClB,CAAC"}
@@ -1,33 +1,23 @@
1
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
- return c > 3 && r && Object.defineProperty(target, key, r), r;
6
- };
7
- var __metadata = (this && this.__metadata) || function (k, v) {
8
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
9
- };
10
1
  import Markdoc from '@markdoc/markdoc';
11
2
  const { Tag } = Markdoc;
12
3
  import { schema } from '../registry.js';
13
- import { attribute, Model, createComponentRenderable, createSchema } from '../lib/index.js';
14
- class DetailsModel extends Model {
15
- constructor() {
16
- super(...arguments);
17
- this.summary = undefined;
18
- this.open = false;
19
- }
20
- transform() {
21
- const children = this.transformChildren();
22
- let summaryText = this.summary;
23
- if (!summaryText) {
24
- // Extract from first heading or strong text
25
- const heading = children.headings();
26
- if (heading.count() > 0) {
27
- summaryText = 'Details';
28
- }
29
- }
30
- const summaryTag = new Tag('summary', {}, [summaryText || 'Details']);
4
+ import { createContentModelSchema, createComponentRenderable, asNodes } from '../lib/index.js';
5
+ import { RenderableNodeCursor } from '../lib/renderable.js';
6
+ export const details = createContentModelSchema({
7
+ attributes: {
8
+ summary: { type: String, required: false },
9
+ open: { type: Boolean, required: false },
10
+ },
11
+ contentModel: {
12
+ type: 'sequence',
13
+ fields: [
14
+ { name: 'body', match: 'any', optional: true, greedy: true },
15
+ ],
16
+ },
17
+ transform(resolved, attrs, config) {
18
+ const children = new RenderableNodeCursor(Markdoc.transform(asNodes(resolved.body), config));
19
+ const summaryText = attrs.summary || 'Details';
20
+ const summaryTag = new Tag('summary', {}, [summaryText]);
31
21
  const body = children.wrap('div');
32
22
  const tag = createComponentRenderable(schema.Details, {
33
23
  tag: 'details',
@@ -39,18 +29,9 @@ class DetailsModel extends Model {
39
29
  },
40
30
  children: [summaryTag, body.next()],
41
31
  });
42
- if (this.open)
32
+ if (attrs.open)
43
33
  tag.attributes.open = true;
44
34
  return tag;
45
- }
46
- }
47
- __decorate([
48
- attribute({ type: String, required: false }),
49
- __metadata("design:type", Object)
50
- ], DetailsModel.prototype, "summary", void 0);
51
- __decorate([
52
- attribute({ type: Boolean, required: false }),
53
- __metadata("design:type", Boolean)
54
- ], DetailsModel.prototype, "open", void 0);
55
- export const details = createSchema(DetailsModel);
35
+ },
36
+ });
56
37
  //# sourceMappingURL=details.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"details.js","sourceRoot":"","sources":["../../src/tags/details.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,OAAO,MAAM,kBAAkB,CAAC;AACvC,MAAM,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC;AACxB,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AACxC,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,yBAAyB,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAE5F,MAAM,YAAa,SAAQ,KAAK;IAAhC;;QAEC,YAAO,GAAuB,SAAS,CAAC;QAGxC,SAAI,GAAY,KAAK,CAAC;IAiCvB,CAAC;IA/BA,SAAS;QACR,MAAM,QAAQ,GAAG,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAE1C,IAAI,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC;QAE/B,IAAI,CAAC,WAAW,EAAE,CAAC;YAClB,4CAA4C;YAC5C,MAAM,OAAO,GAAG,QAAQ,CAAC,QAAQ,EAAE,CAAC;YACpC,IAAI,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,EAAE,CAAC;gBACzB,WAAW,GAAG,SAAS,CAAC;YACzB,CAAC;QACF,CAAC;QAED,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,SAAS,EAAE,EAAE,EAAE,CAAC,WAAW,IAAI,SAAS,CAAC,CAAC,CAAC;QACtE,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAElC,MAAM,GAAG,GAAG,yBAAyB,CAAC,MAAM,CAAC,OAAO,EAAE;YACrD,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,IAAI,CAAC,IAAI;YAAG,GAAG,CAAC,UAAsC,CAAC,IAAI,GAAG,IAAI,CAAC;QAEvE,OAAO,GAAG,CAAC;IACZ,CAAC;CACD;AApCA;IADC,SAAS,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;;6CACL;AAGxC;IADC,SAAS,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;;0CACxB;AAmCvB,MAAM,CAAC,MAAM,OAAO,GAAG,YAAY,CAAC,YAAY,CAAC,CAAC"}
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,MAAM,EAAE,MAAM,gBAAgB,CAAC;AACxC,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,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE;QAC1C,IAAI,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE;KACxC;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,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,MAAM,CAAC,OAAO,EAAE;YACrD,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;AA6CvC,eAAO,MAAM,OAAO,gBAA6B,CAAC"}
1
+ {"version":3,"file":"diagram.d.ts","sourceRoot":"","sources":["../../src/tags/diagram.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,kBAAkB,CAAC;AAOvC,eAAO,MAAM,OAAO,gBAqClB,CAAC"}