@stego-labs/engine 1.0.1 → 1.0.3

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 (117) hide show
  1. package/README.md +75 -63
  2. package/dist/stego-engine/src/collections/index.d.ts +2 -2
  3. package/dist/stego-engine/src/collections/index.d.ts.map +1 -1
  4. package/dist/stego-engine/src/collections/index.js +1 -1
  5. package/dist/stego-engine/src/collections/index.js.map +1 -1
  6. package/dist/stego-engine/src/collections/internal/grouping.d.ts.map +1 -1
  7. package/dist/stego-engine/src/collections/internal/grouping.js +1 -17
  8. package/dist/stego-engine/src/collections/internal/grouping.js.map +1 -1
  9. package/dist/stego-engine/src/collections/internal/sorting.d.ts +2 -1
  10. package/dist/stego-engine/src/collections/internal/sorting.d.ts.map +1 -1
  11. package/dist/stego-engine/src/collections/public/types.d.ts +1 -10
  12. package/dist/stego-engine/src/collections/public/types.d.ts.map +1 -1
  13. package/dist/stego-engine/src/compile/internal/load-content.d.ts +7 -0
  14. package/dist/stego-engine/src/compile/internal/load-content.d.ts.map +1 -0
  15. package/dist/stego-engine/src/compile/internal/load-content.js +151 -0
  16. package/dist/stego-engine/src/compile/internal/load-content.js.map +1 -0
  17. package/dist/stego-engine/src/compile/public/buildTemplateContext.d.ts.map +1 -1
  18. package/dist/stego-engine/src/compile/public/buildTemplateContext.js +5 -12
  19. package/dist/stego-engine/src/compile/public/buildTemplateContext.js.map +1 -1
  20. package/dist/stego-engine/src/compile/public/compileProject.js +2 -2
  21. package/dist/stego-engine/src/compile/public/compileProject.js.map +1 -1
  22. package/dist/stego-engine/src/compile/public/types.d.ts +4 -4
  23. package/dist/stego-engine/src/compile/public/types.d.ts.map +1 -1
  24. package/dist/stego-engine/src/index.d.ts +5 -3
  25. package/dist/stego-engine/src/index.d.ts.map +1 -1
  26. package/dist/stego-engine/src/index.js +2 -1
  27. package/dist/stego-engine/src/index.js.map +1 -1
  28. package/dist/stego-engine/src/ir/index.d.ts +3 -0
  29. package/dist/stego-engine/src/ir/index.d.ts.map +1 -1
  30. package/dist/stego-engine/src/ir/index.js +3 -0
  31. package/dist/stego-engine/src/ir/index.js.map +1 -1
  32. package/dist/stego-engine/src/ir/nodes/heading.d.ts +2 -2
  33. package/dist/stego-engine/src/ir/nodes/heading.d.ts.map +1 -1
  34. package/dist/stego-engine/src/ir/nodes/heading.js.map +1 -1
  35. package/dist/stego-engine/src/ir/nodes/keep-together.d.ts +3 -0
  36. package/dist/stego-engine/src/ir/nodes/keep-together.d.ts.map +1 -0
  37. package/dist/stego-engine/src/ir/nodes/keep-together.js +7 -0
  38. package/dist/stego-engine/src/ir/nodes/keep-together.js.map +1 -0
  39. package/dist/stego-engine/src/ir/nodes/link.d.ts +6 -0
  40. package/dist/stego-engine/src/ir/nodes/link.d.ts.map +1 -0
  41. package/dist/stego-engine/src/ir/nodes/link.js +10 -0
  42. package/dist/stego-engine/src/ir/nodes/link.js.map +1 -0
  43. package/dist/stego-engine/src/ir/nodes/markdown.d.ts +7 -1
  44. package/dist/stego-engine/src/ir/nodes/markdown.d.ts.map +1 -1
  45. package/dist/stego-engine/src/ir/nodes/markdown.js +3 -2
  46. package/dist/stego-engine/src/ir/nodes/markdown.js.map +1 -1
  47. package/dist/stego-engine/src/ir/nodes/paragraph.d.ts +2 -2
  48. package/dist/stego-engine/src/ir/nodes/paragraph.d.ts.map +1 -1
  49. package/dist/stego-engine/src/ir/nodes/paragraph.js.map +1 -1
  50. package/dist/stego-engine/src/ir/nodes/plain-text.d.ts +9 -0
  51. package/dist/stego-engine/src/ir/nodes/plain-text.d.ts.map +1 -0
  52. package/dist/stego-engine/src/ir/nodes/plain-text.js +8 -0
  53. package/dist/stego-engine/src/ir/nodes/plain-text.js.map +1 -0
  54. package/dist/stego-engine/src/ir/types.d.ts +28 -4
  55. package/dist/stego-engine/src/ir/types.d.ts.map +1 -1
  56. package/dist/stego-engine/src/render/internal/backends/pandoc/lower-to-render-plan.d.ts +2 -1
  57. package/dist/stego-engine/src/render/internal/backends/pandoc/lower-to-render-plan.d.ts.map +1 -1
  58. package/dist/stego-engine/src/render/internal/backends/pandoc/lower-to-render-plan.js +9 -3
  59. package/dist/stego-engine/src/render/internal/backends/pandoc/lower-to-render-plan.js.map +1 -1
  60. package/dist/stego-engine/src/render/internal/backends/pandoc/markdown-writer.d.ts +6 -1
  61. package/dist/stego-engine/src/render/internal/backends/pandoc/markdown-writer.d.ts.map +1 -1
  62. package/dist/stego-engine/src/render/internal/backends/pandoc/markdown-writer.js +198 -19
  63. package/dist/stego-engine/src/render/internal/backends/pandoc/markdown-writer.js.map +1 -1
  64. package/dist/stego-engine/src/render/public/renderDocument.js +1 -1
  65. package/dist/stego-engine/src/render/public/renderDocument.js.map +1 -1
  66. package/dist/stego-engine/src/render/public/types.d.ts +8 -0
  67. package/dist/stego-engine/src/render/public/types.d.ts.map +1 -1
  68. package/dist/stego-engine/src/template/index.d.ts +4 -2
  69. package/dist/stego-engine/src/template/index.d.ts.map +1 -1
  70. package/dist/stego-engine/src/template/index.js +1 -1
  71. package/dist/stego-engine/src/template/index.js.map +1 -1
  72. package/dist/stego-engine/src/template/internal/evaluate-template.d.ts +8 -1
  73. package/dist/stego-engine/src/template/internal/evaluate-template.d.ts.map +1 -1
  74. package/dist/stego-engine/src/template/internal/evaluate-template.js +158 -2
  75. package/dist/stego-engine/src/template/internal/evaluate-template.js.map +1 -1
  76. package/dist/stego-engine/src/template/internal/jsx-runtime.d.ts +2 -2
  77. package/dist/stego-engine/src/template/internal/jsx-runtime.d.ts.map +1 -1
  78. package/dist/stego-engine/src/template/internal/jsx-runtime.js.map +1 -1
  79. package/dist/stego-engine/src/template/internal/normalizeChildren.d.ts +2 -1
  80. package/dist/stego-engine/src/template/internal/normalizeChildren.d.ts.map +1 -1
  81. package/dist/stego-engine/src/template/internal/normalizeChildren.js +9 -0
  82. package/dist/stego-engine/src/template/internal/normalizeChildren.js.map +1 -1
  83. package/dist/stego-engine/src/template/public/authoring.d.ts +3 -1
  84. package/dist/stego-engine/src/template/public/authoring.d.ts.map +1 -1
  85. package/dist/stego-engine/src/template/public/components.d.ts +136 -17
  86. package/dist/stego-engine/src/template/public/components.d.ts.map +1 -1
  87. package/dist/stego-engine/src/template/public/components.js +46 -6
  88. package/dist/stego-engine/src/template/public/components.js.map +1 -1
  89. package/dist/stego-engine/src/template/public/context.d.ts +1 -1
  90. package/dist/stego-engine/src/template/public/context.d.ts.map +1 -1
  91. package/dist/stego-engine/src/template/public/defineTemplate.d.ts +6 -3
  92. package/dist/stego-engine/src/template/public/defineTemplate.d.ts.map +1 -1
  93. package/dist/stego-engine/src/template/public/defineTemplate.js +27 -2
  94. package/dist/stego-engine/src/template/public/defineTemplate.js.map +1 -1
  95. package/dist/stego-engine/src/template/public/types.d.ts +38 -29
  96. package/dist/stego-engine/src/template/public/types.d.ts.map +1 -1
  97. package/dist/stego-engine/src/test/index.d.ts +2 -0
  98. package/dist/stego-engine/src/test/index.d.ts.map +1 -0
  99. package/dist/stego-engine/src/test/index.js +2 -0
  100. package/dist/stego-engine/src/test/index.js.map +1 -0
  101. package/dist/stego-engine/src/test/template-generic-types.test.d.ts +2 -0
  102. package/dist/stego-engine/src/test/template-generic-types.test.d.ts.map +1 -0
  103. package/dist/stego-engine/src/test/template-generic-types.test.js +77 -0
  104. package/dist/stego-engine/src/test/template-generic-types.test.js.map +1 -0
  105. package/package.json +6 -2
  106. package/dist/stego-engine/src/collections/public/createCollection.d.ts +0 -3
  107. package/dist/stego-engine/src/collections/public/createCollection.d.ts.map +0 -1
  108. package/dist/stego-engine/src/collections/public/createCollection.js +0 -31
  109. package/dist/stego-engine/src/collections/public/createCollection.js.map +0 -1
  110. package/dist/stego-engine/src/compile/internal/load-manuscripts.d.ts +0 -3
  111. package/dist/stego-engine/src/compile/internal/load-manuscripts.d.ts.map +0 -1
  112. package/dist/stego-engine/src/compile/internal/load-manuscripts.js +0 -70
  113. package/dist/stego-engine/src/compile/internal/load-manuscripts.js.map +0 -1
  114. package/dist/stego-engine/src/compile/internal/load-spine.d.ts +0 -7
  115. package/dist/stego-engine/src/compile/internal/load-spine.d.ts.map +0 -1
  116. package/dist/stego-engine/src/compile/internal/load-spine.js +0 -92
  117. package/dist/stego-engine/src/compile/internal/load-spine.js.map +0 -1
@@ -1,29 +1,62 @@
1
+ import { buildLeafRootAnchor, findLeafHeadingTarget, injectLeafHeadingAnchors } from "@stego-labs/shared/domain/content";
2
+ import { createDocxLayoutBookmarkName } from "@stego-labs/shared/domain/layout";
1
3
  import { formatSizeValue, formatSpacingValue } from "../../normalize/index.js";
2
- export function writePandocMarkdown(nodes) {
4
+ export function writePandocMarkdown(nodes, leaves) {
3
5
  const blocks = [];
6
+ const context = {
7
+ docxBlockLayoutIndex: 0,
8
+ docxBlockLayouts: [],
9
+ leaves: new Map(leaves.map((leaf) => [leaf.id, {
10
+ id: leaf.id,
11
+ titleFromFilename: leaf.titleFromFilename,
12
+ metadata: leaf.metadata,
13
+ headings: leaf.headings
14
+ }]))
15
+ };
4
16
  for (const node of nodes) {
5
17
  if (node.kind === "pageTemplate") {
6
18
  continue;
7
19
  }
8
- const rendered = renderNode(node);
20
+ const rendered = renderNode(node, context);
9
21
  if (!rendered) {
10
22
  continue;
11
23
  }
12
24
  blocks.push(rendered);
13
25
  }
14
- return `${blocks.join("\n\n").replace(/\n{3,}/g, "\n\n")}\n`;
26
+ return {
27
+ markdown: `${blocks.join("\n\n").replace(/\n{3,}/g, "\n\n")}\n`,
28
+ docxBlockLayouts: context.docxBlockLayouts
29
+ };
15
30
  }
16
- function renderNode(node) {
31
+ function renderNode(node, context) {
17
32
  switch (node.kind) {
18
33
  case "document":
19
34
  case "fragment":
20
- return node.children.map(renderNode).filter(Boolean).join("\n\n");
35
+ return node.children.map((child) => renderNode(child, context)).filter(Boolean).join("\n\n");
36
+ case "keepTogether": {
37
+ const markerId = createDocxLayoutBookmarkName(++context.docxBlockLayoutIndex);
38
+ context.docxBlockLayouts.push({
39
+ bookmarkName: markerId,
40
+ keepTogether: true
41
+ });
42
+ const body = node.children.map((child) => renderNode(child, context)).filter(Boolean).join("\n\n");
43
+ return `::: {#${markerId} data-keep-together=true}\n${body}\n:::`;
44
+ }
21
45
  case "pageTemplate":
22
46
  return "";
23
47
  case "section": {
24
- const body = node.children.map(renderNode).filter(Boolean).join("\n\n");
48
+ const body = node.children.map((child) => renderNode(child, context)).filter(Boolean).join("\n\n");
49
+ const markerId = getOrCreateDocxBlockLayoutMarker(context, {
50
+ bookmarkName: node.id,
51
+ spaceBefore: node.spaceBefore,
52
+ spaceAfter: node.spaceAfter,
53
+ insetLeft: node.insetLeft,
54
+ insetRight: node.insetRight,
55
+ firstLineIndent: node.firstLineIndent,
56
+ align: node.align
57
+ });
25
58
  const attrs = renderBlockAttrs({
26
- id: node.id,
59
+ id: markerId || node.id,
27
60
  role: node.role,
28
61
  spaceBefore: node.spaceBefore,
29
62
  spaceAfter: node.spaceAfter,
@@ -35,17 +68,43 @@ function renderNode(node) {
35
68
  return attrs ? `::: ${attrs}\n${body}\n:::` : body;
36
69
  }
37
70
  case "heading": {
71
+ const layout = toDocxBlockLayout({
72
+ spaceBefore: node.spaceBefore,
73
+ spaceAfter: node.spaceAfter,
74
+ insetLeft: node.insetLeft,
75
+ insetRight: node.insetRight,
76
+ align: node.align
77
+ });
78
+ const body = `${"#".repeat(node.level)} ${renderInlineChildren(node.children, context)}`;
79
+ if (!layout) {
80
+ return body;
81
+ }
82
+ const markerId = createDocxLayoutBookmarkName(++context.docxBlockLayoutIndex);
83
+ context.docxBlockLayouts.push({
84
+ bookmarkName: markerId,
85
+ ...layout
86
+ });
38
87
  const attrs = renderBlockAttrs({
88
+ id: markerId,
39
89
  spaceBefore: node.spaceBefore,
40
90
  spaceAfter: node.spaceAfter,
41
91
  insetLeft: node.insetLeft,
42
92
  insetRight: node.insetRight,
43
93
  align: node.align
44
94
  });
45
- return `${"#".repeat(node.level)} ${renderInlineChildren(node.children)}${attrs ? ` ${attrs}` : ""}`;
95
+ return `::: ${attrs}\n${body}\n:::`;
46
96
  }
47
97
  case "paragraph": {
98
+ const markerId = getOrCreateDocxBlockLayoutMarker(context, {
99
+ spaceBefore: node.spaceBefore,
100
+ spaceAfter: node.spaceAfter,
101
+ insetLeft: node.insetLeft,
102
+ insetRight: node.insetRight,
103
+ firstLineIndent: node.firstLineIndent,
104
+ align: node.align
105
+ });
48
106
  const attrs = renderBlockAttrs({
107
+ id: markerId,
49
108
  spaceBefore: node.spaceBefore,
50
109
  spaceAfter: node.spaceAfter,
51
110
  insetLeft: node.insetLeft,
@@ -53,11 +112,13 @@ function renderNode(node) {
53
112
  firstLineIndent: node.firstLineIndent,
54
113
  align: node.align
55
114
  });
56
- const body = renderInlineChildren(node.children);
115
+ const body = renderInlineChildren(node.children, context);
57
116
  return attrs ? `::: ${attrs}\n${body}\n:::` : body;
58
117
  }
59
118
  case "markdown":
60
- return node.source.trim();
119
+ return renderMarkdownNode(node, context);
120
+ case "plainText":
121
+ return renderPlainTextNode(node, context);
61
122
  case "image": {
62
123
  const tokens = [];
63
124
  const width = formatSizeValue(node.width);
@@ -76,27 +137,135 @@ function renderNode(node) {
76
137
  }
77
138
  const attrText = tokens.length > 0 ? `{${tokens.join(" ")}}` : "";
78
139
  const image = `![${node.alt ?? ""}](${node.src})${attrText}`;
79
- if (!node.caption) {
80
- return image;
140
+ const body = !node.caption ? image : `${image}\n\n_${node.caption}_`;
141
+ if (!node.align) {
142
+ return body;
81
143
  }
82
- return `${image}\n\n_${node.caption}_`;
144
+ const markerId = createDocxLayoutBookmarkName(++context.docxBlockLayoutIndex);
145
+ context.docxBlockLayouts.push({
146
+ bookmarkName: markerId,
147
+ align: node.align
148
+ });
149
+ return `::: {#${markerId}}\n${body}\n:::`;
83
150
  }
84
151
  case "pageBreak":
85
- return "\\newpage";
152
+ return renderDocxLayoutMarker(context, { pageBreak: true }, ["data-page-break=true"]);
86
153
  case "pageNumber":
87
154
  throw new Error("<Stego.PageNumber /> may only appear inside <Stego.PageTemplate /> in V1.");
88
155
  case "text":
89
- return node.value;
156
+ return escapeInlineText(node.value);
157
+ case "link":
158
+ return renderLink(node, context);
159
+ }
160
+ }
161
+ function renderMarkdownNode(node, context) {
162
+ if (node.leaf) {
163
+ const anchor = buildLeafRootAnchor(node.leaf.id);
164
+ const body = injectLeafHeadingAnchors(node.leaf.body.trim(), node.leaf.id);
165
+ return `::: {#${anchor} data-leaf-id=${node.leaf.id}}\n${body}\n:::`;
90
166
  }
167
+ return (node.source || "").trim();
91
168
  }
92
- function renderInlineChildren(children) {
169
+ function renderPlainTextNode(node, context) {
170
+ const source = node.leaf ? node.leaf.body : (node.source || "");
171
+ const body = source
172
+ .trim()
173
+ .split(/\n\s*\n/)
174
+ .map((paragraph) => paragraph.trim().split(/\r?\n/).join(" "))
175
+ .filter(Boolean)
176
+ .join("\n\n");
177
+ if (node.leaf) {
178
+ const anchor = buildLeafRootAnchor(node.leaf.id);
179
+ return `::: {#${anchor} data-leaf-id=${node.leaf.id}}\n${body}\n:::`;
180
+ }
181
+ return body;
182
+ }
183
+ function renderInlineChildren(children, context) {
93
184
  return children.map((child) => {
94
- if (child.kind !== "text") {
95
- throw new Error(`Only text children are supported inside this node in V1. Received '${child.kind}'.`);
185
+ if (child.kind === "text") {
186
+ return escapeInlineText(child.value);
96
187
  }
97
- return child.value;
188
+ return renderLink(child, context);
98
189
  }).join("");
99
190
  }
191
+ function renderLink(node, context) {
192
+ const target = context.leaves.get(node.leaf);
193
+ if (!target) {
194
+ throw new Error(`Unknown leaf '${node.leaf}' referenced by <Stego.Link />.`);
195
+ }
196
+ let href = `#${buildLeafRootAnchor(target.id)}`;
197
+ if (node.anchor) {
198
+ href = `#${target.id}--${normalizeAnchor(node.anchor)}`;
199
+ }
200
+ else if (node.heading) {
201
+ const resolved = findLeafHeadingTarget(target.headings, node.heading);
202
+ if (resolved.ambiguous) {
203
+ throw new Error(`Heading '${node.heading}' is ambiguous in leaf '${target.id}'. Use anchor= instead.`);
204
+ }
205
+ if (!resolved.target) {
206
+ throw new Error(`Unknown heading '${node.heading}' in leaf '${target.id}'.`);
207
+ }
208
+ href = `#${resolved.target.anchor}`;
209
+ }
210
+ const label = node.children.length > 0
211
+ ? renderInlineChildren(node.children, context)
212
+ : escapeInlineText(resolveLeafLabel(target));
213
+ return `[${label}](${href})`;
214
+ }
215
+ function resolveLeafLabel(target) {
216
+ const label = typeof target.metadata.label === "string" && target.metadata.label.trim()
217
+ ? target.metadata.label.trim()
218
+ : typeof target.metadata.title === "string" && target.metadata.title.trim()
219
+ ? target.metadata.title.trim()
220
+ : target.titleFromFilename.trim() || target.id;
221
+ return label;
222
+ }
223
+ function normalizeAnchor(value) {
224
+ return value.trim().replace(/^#/, "").toLowerCase().replace(/[^a-z0-9-]+/g, "-").replace(/^-+|-+$/g, "");
225
+ }
226
+ function escapeInlineText(value) {
227
+ return value.replace(/([\[\]\\])/g, "\\$1");
228
+ }
229
+ function getOrCreateDocxBlockLayoutMarker(context, input) {
230
+ const layout = toDocxBlockLayout(input);
231
+ if (!layout) {
232
+ return undefined;
233
+ }
234
+ const bookmarkName = input.bookmarkName || createDocxLayoutBookmarkName(++context.docxBlockLayoutIndex);
235
+ context.docxBlockLayouts.push({
236
+ bookmarkName,
237
+ ...layout
238
+ });
239
+ return bookmarkName;
240
+ }
241
+ function renderDocxLayoutMarker(context, layout, extraTokens = [], body = "") {
242
+ const bookmarkName = createDocxLayoutBookmarkName(++context.docxBlockLayoutIndex);
243
+ context.docxBlockLayouts.push({
244
+ bookmarkName,
245
+ ...layout
246
+ });
247
+ const attrs = renderRawAttrs({ id: bookmarkName, tokens: extraTokens });
248
+ return body ? `::: ${attrs}\n${body}\n:::` : `::: ${attrs}\n:::`;
249
+ }
250
+ function toDocxBlockLayout(input) {
251
+ const spaceBefore = formatSpacingValue(input.spaceBefore);
252
+ const spaceAfter = formatSpacingValue(input.spaceAfter);
253
+ const insetLeft = formatSpacingValue(input.insetLeft);
254
+ const insetRight = formatSpacingValue(input.insetRight);
255
+ const firstLineIndent = formatIndentValue(input.firstLineIndent);
256
+ const align = input.align;
257
+ if (!spaceBefore && !spaceAfter && !insetLeft && !insetRight && !firstLineIndent && !align) {
258
+ return undefined;
259
+ }
260
+ return {
261
+ spaceBefore,
262
+ spaceAfter,
263
+ insetLeft,
264
+ insetRight,
265
+ firstLineIndent,
266
+ align
267
+ };
268
+ }
100
269
  function renderBlockAttrs(input) {
101
270
  const tokens = [];
102
271
  if (input.id) {
@@ -130,6 +299,16 @@ function renderBlockAttrs(input) {
130
299
  }
131
300
  return tokens.length > 0 ? `{${tokens.join(" ")}}` : "";
132
301
  }
302
+ function renderRawAttrs(input) {
303
+ const tokens = [];
304
+ if (input.id) {
305
+ tokens.push(`#${input.id}`);
306
+ }
307
+ if (input.tokens && input.tokens.length > 0) {
308
+ tokens.push(...input.tokens);
309
+ }
310
+ return `{${tokens.join(" ")}}`;
311
+ }
133
312
  function formatIndentValue(value) {
134
313
  if (value == null) {
135
314
  return undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"markdown-writer.js","sourceRoot":"","sources":["../../../../../../../src/render/internal/backends/pandoc/markdown-writer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"markdown-writer.js","sourceRoot":"","sources":["../../../../../../../src/render/internal/backends/pandoc/markdown-writer.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import { lowerToPandocRenderPlan } from "../internal/backends/pandoc/index.js";
2
2
  export function renderDocument(input) {
3
- return lowerToPandocRenderPlan(input.document, input.projectRoot);
3
+ return lowerToPandocRenderPlan(input.document, input.projectRoot, input.context);
4
4
  }
5
5
  //# sourceMappingURL=renderDocument.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"renderDocument.js","sourceRoot":"","sources":["../../../../../src/render/public/renderDocument.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,MAAM,sCAAsC,CAAC;AAG/E,MAAM,UAAU,cAAc,CAAC,KAA0B;IACvD,OAAO,uBAAuB,CAAC,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC,WAAW,CAAC,CAAC;AACpE,CAAC"}
1
+ {"version":3,"file":"renderDocument.js","sourceRoot":"","sources":["../../../../../src/render/public/renderDocument.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,MAAM,sCAAsC,CAAC;AAG/E,MAAM,UAAU,cAAc,CAAC,KAA0B;IACvD,OAAO,uBAAuB,CAAC,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC,WAAW,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;AACnF,CAAC"}
@@ -1,7 +1,10 @@
1
+ import type { DocxBlockLayoutSpec } from "@stego-labs/shared/domain/layout";
1
2
  import type { StegoDocumentNode } from "../../ir/index.ts";
3
+ import type { TemplateContext } from "../../template/index.ts";
2
4
  export type RenderDocumentInput = {
3
5
  document: StegoDocumentNode;
4
6
  projectRoot: string;
7
+ context: TemplateContext;
5
8
  };
6
9
  export type RenderDocumentResult = {
7
10
  backend: "pandoc";
@@ -10,5 +13,10 @@ export type RenderDocumentResult = {
10
13
  metadata: Record<string, unknown>;
11
14
  resourcePaths: string[];
12
15
  requiredFilters: string[];
16
+ postprocess: {
17
+ docx: {
18
+ blockLayouts: DocxBlockLayoutSpec[];
19
+ };
20
+ };
13
21
  };
14
22
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../src/render/public/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAE3D,MAAM,MAAM,mBAAmB,GAAG;IAChC,QAAQ,EAAE,iBAAiB,CAAC;IAC5B,WAAW,EAAE,MAAM,CAAC;CACrB,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG;IACjC,OAAO,EAAE,QAAQ,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAClC,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,eAAe,EAAE,MAAM,EAAE,CAAC;CAC3B,CAAC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../src/render/public/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AAC5E,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAC3D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAE/D,MAAM,MAAM,mBAAmB,GAAG;IAChC,QAAQ,EAAE,iBAAiB,CAAC;IAC5B,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,eAAe,CAAC;CAC1B,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG;IACjC,OAAO,EAAE,QAAQ,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAClC,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,WAAW,EAAE;QACX,IAAI,EAAE;YACJ,YAAY,EAAE,mBAAmB,EAAE,CAAC;SACrC,CAAC;KACH,CAAC;CACH,CAAC"}
@@ -1,6 +1,8 @@
1
1
  export { defineTemplate } from "./public/defineTemplate.ts";
2
2
  export { Stego } from "./public/components.ts";
3
- export { evaluateTemplate } from "./internal/evaluate-template.ts";
3
+ export { evaluateTemplate, evaluateTypedTemplate, TemplateContractError } from "./internal/evaluate-template.ts";
4
4
  export { loadTemplateFromFile } from "./internal/template-loader.ts";
5
- export type { ManuscriptRecord, SpineEntryRecord, SpineCategoryRecord, TemplateContext, StegoTemplate } from "./public/types.ts";
5
+ export type { ProjectMetadata, LeafMetadata, BranchMetadata, ProjectRecord, LeafRecord, BranchRecord, TemplateContext, StegoTemplate, TemplateDefinitionOptions } from "./public/types.ts";
6
+ export type { StegoApi } from "./public/components.ts";
7
+ export type { ExportTarget, PresentationTarget } from "@stego-labs/shared/domain/templates";
6
8
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/template/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAC5D,OAAO,EAAE,KAAK,EAAE,MAAM,wBAAwB,CAAC;AAC/C,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AACnE,OAAO,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAC;AACrE,YAAY,EACV,gBAAgB,EAChB,gBAAgB,EAChB,mBAAmB,EACnB,eAAe,EACf,aAAa,EACd,MAAM,mBAAmB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/template/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAC5D,OAAO,EAAE,KAAK,EAAE,MAAM,wBAAwB,CAAC;AAC/C,OAAO,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,qBAAqB,EAAE,MAAM,iCAAiC,CAAC;AACjH,OAAO,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAC;AACrE,YAAY,EACV,eAAe,EACf,YAAY,EACZ,cAAc,EACd,aAAa,EACb,UAAU,EACV,YAAY,EACZ,eAAe,EACf,aAAa,EACb,yBAAyB,EAC1B,MAAM,mBAAmB,CAAC;AAC3B,YAAY,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AACvD,YAAY,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,qCAAqC,CAAC"}
@@ -1,5 +1,5 @@
1
1
  export { defineTemplate } from "./public/defineTemplate.js";
2
2
  export { Stego } from "./public/components.js";
3
- export { evaluateTemplate } from "./internal/evaluate-template.js";
3
+ export { evaluateTemplate, evaluateTypedTemplate, TemplateContractError } from "./internal/evaluate-template.js";
4
4
  export { loadTemplateFromFile } from "./internal/template-loader.js";
5
5
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/template/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAC5D,OAAO,EAAE,KAAK,EAAE,MAAM,wBAAwB,CAAC;AAC/C,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AACnE,OAAO,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/template/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAC5D,OAAO,EAAE,KAAK,EAAE,MAAM,wBAAwB,CAAC;AAC/C,OAAO,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,qBAAqB,EAAE,MAAM,iCAAiC,CAAC;AACjH,OAAO,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAC"}
@@ -1,5 +1,12 @@
1
1
  import type { StegoDocumentNode } from "../../ir/index.ts";
2
- import type { StegoTemplate, TemplateContext } from "../public/types.ts";
2
+ import type { BranchMetadata, LeafMetadata, ProjectMetadata, StegoTemplate, TemplateContext } from "../public/types.ts";
3
+ export type TemplateContractErrorReason = "invalid-module" | "invalid-targets" | "invalid-render-result" | "unsupported-target-capability";
4
+ export declare class TemplateContractError extends Error {
5
+ readonly reason: TemplateContractErrorReason;
6
+ readonly details?: Record<string, unknown>;
7
+ constructor(reason: TemplateContractErrorReason, message: string, details?: Record<string, unknown>);
8
+ }
3
9
  export declare function assertTemplateModule(value: unknown): StegoTemplate;
4
10
  export declare function evaluateTemplate(template: StegoTemplate, context: TemplateContext): StegoDocumentNode;
11
+ export declare function evaluateTypedTemplate<TProjectMetadata extends ProjectMetadata = ProjectMetadata, TLeafMetadata extends LeafMetadata = LeafMetadata, TBranchMetadata extends BranchMetadata = BranchMetadata>(template: StegoTemplate<TProjectMetadata, TLeafMetadata, TBranchMetadata>, context: TemplateContext<TProjectMetadata, TLeafMetadata, TBranchMetadata>): StegoDocumentNode;
5
12
  //# sourceMappingURL=evaluate-template.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"evaluate-template.d.ts","sourceRoot":"","sources":["../../../../../src/template/internal/evaluate-template.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAC3D,OAAO,KAAK,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAEzE,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,OAAO,GAAG,aAAa,CAWlE;AAED,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,aAAa,EAAE,OAAO,EAAE,eAAe,GAAG,iBAAiB,CAMrG"}
1
+ {"version":3,"file":"evaluate-template.d.ts","sourceRoot":"","sources":["../../../../../src/template/internal/evaluate-template.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAkB,iBAAiB,EAAa,MAAM,mBAAmB,CAAC;AAOtF,OAAO,KAAK,EACV,cAAc,EACd,YAAY,EACZ,eAAe,EACf,aAAa,EACb,eAAe,EAChB,MAAM,oBAAoB,CAAC;AAE5B,MAAM,MAAM,2BAA2B,GACnC,gBAAgB,GAChB,iBAAiB,GACjB,uBAAuB,GACvB,+BAA+B,CAAC;AAEpC,qBAAa,qBAAsB,SAAQ,KAAK;IAC9C,SAAgB,MAAM,EAAE,2BAA2B,CAAC;IAEpD,SAAgB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;gBAE/B,MAAM,EAAE,2BAA2B,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;CAM3G;AAED,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,OAAO,GAAG,aAAa,CAqClE;AAED,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,aAAa,EAAE,OAAO,EAAE,eAAe,GAAG,iBAAiB,CAOrG;AAED,wBAAgB,qBAAqB,CACnC,gBAAgB,SAAS,eAAe,GAAG,eAAe,EAC1D,aAAa,SAAS,YAAY,GAAG,YAAY,EACjD,eAAe,SAAS,cAAc,GAAG,cAAc,EAEvD,QAAQ,EAAE,aAAa,CAAC,gBAAgB,EAAE,aAAa,EAAE,eAAe,CAAC,EACzE,OAAO,EAAE,eAAe,CAAC,gBAAgB,EAAE,aAAa,EAAE,eAAe,CAAC,GACzE,iBAAiB,CAOnB"}
@@ -1,17 +1,173 @@
1
+ import { TARGET_CAPABILITIES, isPresentationTarget } from "@stego-labs/shared/domain/templates";
2
+ export class TemplateContractError extends Error {
3
+ reason;
4
+ details;
5
+ constructor(reason, message, details) {
6
+ super(message);
7
+ this.name = "TemplateContractError";
8
+ this.reason = reason;
9
+ this.details = details;
10
+ }
11
+ }
1
12
  export function assertTemplateModule(value) {
2
13
  if (typeof value === "object"
3
14
  && value !== null
4
15
  && value.kind === "stego-template"
5
16
  && typeof value.render === "function") {
17
+ const targets = value.targets;
18
+ if (targets !== null && targets !== undefined) {
19
+ if (!Array.isArray(targets) || targets.length === 0) {
20
+ throw new TemplateContractError("invalid-targets", "Target-aware templates must declare one or more presentation targets.", { targets });
21
+ }
22
+ const invalid = targets.filter((entry) => typeof entry !== "string" || !isPresentationTarget(entry));
23
+ if (invalid.length > 0) {
24
+ throw new TemplateContractError("invalid-targets", "Target-aware templates may only declare docx, pdf, or epub.", { targets });
25
+ }
26
+ if (new Set(targets).size !== targets.length) {
27
+ throw new TemplateContractError("invalid-targets", "Target-aware templates may not declare duplicate presentation targets.", { targets });
28
+ }
29
+ }
6
30
  return value;
7
31
  }
8
- throw new Error("Template must default export defineTemplate(...).");
32
+ throw new TemplateContractError("invalid-module", "Template must default export defineTemplate(...).");
9
33
  }
10
34
  export function evaluateTemplate(template, context) {
11
35
  const document = template.render(context);
12
36
  if (!document || document.kind !== "document") {
13
- throw new Error("Template render() must return <Stego.Document>.");
37
+ throw new TemplateContractError("invalid-render-result", "Template render() must return <Stego.Document>.");
38
+ }
39
+ validateDocumentTargets(template.targets, document);
40
+ return document;
41
+ }
42
+ export function evaluateTypedTemplate(template, context) {
43
+ const document = template.render(context);
44
+ if (!document || document.kind !== "document") {
45
+ throw new TemplateContractError("invalid-render-result", "Template render() must return <Stego.Document>.");
14
46
  }
47
+ validateDocumentTargets(template.targets, document);
15
48
  return document;
16
49
  }
50
+ function validateDocumentTargets(declaredTargets, document) {
51
+ if (!declaredTargets) {
52
+ return;
53
+ }
54
+ if (declaredTargets.length === 0) {
55
+ throw new TemplateContractError("invalid-targets", "Target-aware templates must declare one or more presentation targets.", { targets: declaredTargets });
56
+ }
57
+ const capabilities = resolveSupportedCapabilities(declaredTargets);
58
+ visitNode(document, declaredTargets, capabilities);
59
+ }
60
+ function resolveSupportedCapabilities(targets) {
61
+ return {
62
+ pageLayout: targets.every((target) => TARGET_CAPABILITIES[target].pageLayout),
63
+ pageTemplate: targets.every((target) => TARGET_CAPABILITIES[target].pageTemplate),
64
+ pageNumber: targets.every((target) => TARGET_CAPABILITIES[target].pageNumber),
65
+ keepTogether: targets.every((target) => TARGET_CAPABILITIES[target].keepTogether),
66
+ pageBreak: targets.every((target) => TARGET_CAPABILITIES[target].pageBreak),
67
+ spacing: targets.every((target) => TARGET_CAPABILITIES[target].spacing),
68
+ inset: targets.every((target) => TARGET_CAPABILITIES[target].inset),
69
+ indent: targets.every((target) => TARGET_CAPABILITIES[target].indent),
70
+ align: targets.every((target) => TARGET_CAPABILITIES[target].align),
71
+ imageAlign: targets.every((target) => TARGET_CAPABILITIES[target].imageAlign),
72
+ imageLayout: targets.every((target) => TARGET_CAPABILITIES[target].imageLayout)
73
+ };
74
+ }
75
+ function visitNode(node, targets, capabilities) {
76
+ switch (node.kind) {
77
+ case "document":
78
+ if (node.page) {
79
+ assertCapability("pageLayout", "Document", targets, capabilities);
80
+ }
81
+ for (const child of node.children) {
82
+ visitNode(child, targets, capabilities);
83
+ }
84
+ return;
85
+ case "fragment":
86
+ for (const child of node.children) {
87
+ visitNode(child, targets, capabilities);
88
+ }
89
+ return;
90
+ case "keepTogether":
91
+ assertCapability("keepTogether", "KeepTogether", targets, capabilities);
92
+ for (const child of node.children) {
93
+ visitNode(child, targets, capabilities);
94
+ }
95
+ return;
96
+ case "section":
97
+ validateSharedBlockCapabilities("Section", node, targets, capabilities);
98
+ for (const child of node.children) {
99
+ visitNode(child, targets, capabilities);
100
+ }
101
+ return;
102
+ case "heading":
103
+ validateSharedBlockCapabilities("Heading", node, targets, capabilities);
104
+ return;
105
+ case "paragraph":
106
+ validateSharedBlockCapabilities("Paragraph", node, targets, capabilities);
107
+ return;
108
+ case "image":
109
+ if (node.layout !== undefined) {
110
+ assertCapability("imageLayout", "Image", targets, capabilities);
111
+ }
112
+ if (node.align !== undefined) {
113
+ assertCapability("imageAlign", "Image", targets, capabilities);
114
+ }
115
+ return;
116
+ case "pageBreak":
117
+ assertCapability("pageBreak", "PageBreak", targets, capabilities);
118
+ return;
119
+ case "pageTemplate":
120
+ assertCapability("pageTemplate", "PageTemplate", targets, capabilities);
121
+ visitRegion(node.header, targets, capabilities);
122
+ visitRegion(node.footer, targets, capabilities);
123
+ return;
124
+ case "pageNumber":
125
+ assertCapability("pageNumber", "PageNumber", targets, capabilities);
126
+ return;
127
+ case "markdown":
128
+ case "plainText":
129
+ case "link":
130
+ case "text":
131
+ return;
132
+ default:
133
+ return assertNever(node);
134
+ }
135
+ }
136
+ function visitRegion(region, targets, capabilities) {
137
+ if (!region) {
138
+ return;
139
+ }
140
+ for (const child of [region.left, region.center, region.right]) {
141
+ if (child) {
142
+ visitNode(child, targets, capabilities);
143
+ }
144
+ }
145
+ }
146
+ function validateSharedBlockCapabilities(componentName, node, targets, capabilities) {
147
+ if (node.spaceBefore !== undefined || node.spaceAfter !== undefined) {
148
+ assertCapability("spacing", componentName, targets, capabilities);
149
+ }
150
+ if (node.insetLeft !== undefined || node.insetRight !== undefined) {
151
+ assertCapability("inset", componentName, targets, capabilities);
152
+ }
153
+ if (node.firstLineIndent !== undefined) {
154
+ assertCapability("indent", componentName, targets, capabilities);
155
+ }
156
+ if (node.align !== undefined) {
157
+ assertCapability("align", componentName, targets, capabilities);
158
+ }
159
+ }
160
+ function assertCapability(capability, componentName, targets, capabilities) {
161
+ if (capabilities[capability]) {
162
+ return;
163
+ }
164
+ throw new TemplateContractError("unsupported-target-capability", `<Stego.${componentName}> uses '${capability}' but the declared targets (${targets.join(", ")}) do not all support it.`, {
165
+ capability,
166
+ componentName,
167
+ targets: [...targets]
168
+ });
169
+ }
170
+ function assertNever(value) {
171
+ throw new Error(`Unhandled Stego node kind: ${value.kind ?? "unknown"}`);
172
+ }
17
173
  //# sourceMappingURL=evaluate-template.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"evaluate-template.js","sourceRoot":"","sources":["../../../../../src/template/internal/evaluate-template.ts"],"names":[],"mappings":"AAGA,MAAM,UAAU,oBAAoB,CAAC,KAAc;IACjD,IACE,OAAO,KAAK,KAAK,QAAQ;WACtB,KAAK,KAAK,IAAI;WACb,KAA4B,CAAC,IAAI,KAAK,gBAAgB;WACvD,OAAQ,KAA8B,CAAC,MAAM,KAAK,UAAU,EAC/D,CAAC;QACD,OAAO,KAAsB,CAAC;IAChC,CAAC;IAED,MAAM,IAAI,KAAK,CAAC,mDAAmD,CAAC,CAAC;AACvE,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,QAAuB,EAAE,OAAwB;IAChF,MAAM,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAC1C,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;QAC9C,MAAM,IAAI,KAAK,CAAC,iDAAiD,CAAC,CAAC;IACrE,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC"}
1
+ {"version":3,"file":"evaluate-template.js","sourceRoot":"","sources":["../../../../../src/template/internal/evaluate-template.ts"],"names":[],"mappings":"AACA,OAAO,EACL,mBAAmB,EACnB,oBAAoB,EAGrB,MAAM,qCAAqC,CAAC;AAe7C,MAAM,OAAO,qBAAsB,SAAQ,KAAK;IAC9B,MAAM,CAA8B;IAEpC,OAAO,CAA2B;IAElD,YAAmB,MAAmC,EAAE,OAAe,EAAE,OAAiC;QACxG,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,uBAAuB,CAAC;QACpC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;CACF;AAED,MAAM,UAAU,oBAAoB,CAAC,KAAc;IACjD,IACE,OAAO,KAAK,KAAK,QAAQ;WACtB,KAAK,KAAK,IAAI;WACb,KAA4B,CAAC,IAAI,KAAK,gBAAgB;WACvD,OAAQ,KAA8B,CAAC,MAAM,KAAK,UAAU,EAC/D,CAAC;QACD,MAAM,OAAO,GAAI,KAA+B,CAAC,OAAO,CAAC;QACzD,IAAI,OAAO,KAAK,IAAI,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;YAC9C,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACpD,MAAM,IAAI,qBAAqB,CAC7B,iBAAiB,EACjB,uEAAuE,EACvE,EAAE,OAAO,EAAE,CACZ,CAAC;YACJ,CAAC;YACD,MAAM,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAAC,CAAC;YACrG,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACvB,MAAM,IAAI,qBAAqB,CAC7B,iBAAiB,EACjB,6DAA6D,EAC7D,EAAE,OAAO,EAAE,CACZ,CAAC;YACJ,CAAC;YACD,IAAI,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,MAAM,EAAE,CAAC;gBAC7C,MAAM,IAAI,qBAAqB,CAC7B,iBAAiB,EACjB,wEAAwE,EACxE,EAAE,OAAO,EAAE,CACZ,CAAC;YACJ,CAAC;QACH,CAAC;QAED,OAAO,KAAsB,CAAC;IAChC,CAAC;IAED,MAAM,IAAI,qBAAqB,CAAC,gBAAgB,EAAE,mDAAmD,CAAC,CAAC;AACzG,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,QAAuB,EAAE,OAAwB;IAChF,MAAM,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAC1C,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;QAC9C,MAAM,IAAI,qBAAqB,CAAC,uBAAuB,EAAE,iDAAiD,CAAC,CAAC;IAC9G,CAAC;IACD,uBAAuB,CAAC,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;IACpD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,MAAM,UAAU,qBAAqB,CAKnC,QAAyE,EACzE,OAA0E;IAE1E,MAAM,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAC1C,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;QAC9C,MAAM,IAAI,qBAAqB,CAAC,uBAAuB,EAAE,iDAAiD,CAAC,CAAC;IAC9G,CAAC;IACD,uBAAuB,CAAC,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;IACpD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,SAAS,uBAAuB,CAC9B,eAAqD,EACrD,QAA2B;IAE3B,IAAI,CAAC,eAAe,EAAE,CAAC;QACrB,OAAO;IACT,CAAC;IACD,IAAI,eAAe,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACjC,MAAM,IAAI,qBAAqB,CAC7B,iBAAiB,EACjB,uEAAuE,EACvE,EAAE,OAAO,EAAE,eAAe,EAAE,CAC7B,CAAC;IACJ,CAAC;IAED,MAAM,YAAY,GAAG,4BAA4B,CAAC,eAAe,CAAC,CAAC;IACnE,SAAS,CAAC,QAAQ,EAAE,eAAe,EAAE,YAAY,CAAC,CAAC;AACrD,CAAC;AAED,SAAS,4BAA4B,CAAC,OAAsC;IAC1E,OAAO;QACL,UAAU,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC,UAAU,CAAC;QAC7E,YAAY,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC,YAAY,CAAC;QACjF,UAAU,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC,UAAU,CAAC;QAC7E,YAAY,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC,YAAY,CAAC;QACjF,SAAS,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC;QAC3E,OAAO,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC;QACvE,KAAK,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC;QACnE,MAAM,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC;QACrE,KAAK,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC;QACnE,UAAU,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC,UAAU,CAAC;QAC7E,WAAW,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC,WAAW,CAAC;KAChF,CAAC;AACJ,CAAC;AAED,SAAS,SAAS,CAChB,IAAe,EACf,OAAsC,EACtC,YAAiD;IAEjD,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC;QAClB,KAAK,UAAU;YACb,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;gBACd,gBAAgB,CAAC,YAAY,EAAE,UAAU,EAAE,OAAO,EAAE,YAAY,CAAC,CAAC;YACpE,CAAC;YACD,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;gBAClC,SAAS,CAAC,KAAK,EAAE,OAAO,EAAE,YAAY,CAAC,CAAC;YAC1C,CAAC;YACD,OAAO;QACT,KAAK,UAAU;YACb,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;gBAClC,SAAS,CAAC,KAAK,EAAE,OAAO,EAAE,YAAY,CAAC,CAAC;YAC1C,CAAC;YACD,OAAO;QACT,KAAK,cAAc;YACjB,gBAAgB,CAAC,cAAc,EAAE,cAAc,EAAE,OAAO,EAAE,YAAY,CAAC,CAAC;YACxE,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;gBAClC,SAAS,CAAC,KAAK,EAAE,OAAO,EAAE,YAAY,CAAC,CAAC;YAC1C,CAAC;YACD,OAAO;QACT,KAAK,SAAS;YACZ,+BAA+B,CAAC,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE,YAAY,CAAC,CAAC;YACxE,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;gBAClC,SAAS,CAAC,KAAK,EAAE,OAAO,EAAE,YAAY,CAAC,CAAC;YAC1C,CAAC;YACD,OAAO;QACT,KAAK,SAAS;YACZ,+BAA+B,CAAC,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE,YAAY,CAAC,CAAC;YACxE,OAAO;QACT,KAAK,WAAW;YACd,+BAA+B,CAAC,WAAW,EAAE,IAAI,EAAE,OAAO,EAAE,YAAY,CAAC,CAAC;YAC1E,OAAO;QACT,KAAK,OAAO;YACV,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;gBAC9B,gBAAgB,CAAC,aAAa,EAAE,OAAO,EAAE,OAAO,EAAE,YAAY,CAAC,CAAC;YAClE,CAAC;YACD,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;gBAC7B,gBAAgB,CAAC,YAAY,EAAE,OAAO,EAAE,OAAO,EAAE,YAAY,CAAC,CAAC;YACjE,CAAC;YACD,OAAO;QACT,KAAK,WAAW;YACd,gBAAgB,CAAC,WAAW,EAAE,WAAW,EAAE,OAAO,EAAE,YAAY,CAAC,CAAC;YAClE,OAAO;QACT,KAAK,cAAc;YACjB,gBAAgB,CAAC,cAAc,EAAE,cAAc,EAAE,OAAO,EAAE,YAAY,CAAC,CAAC;YACxE,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE,YAAY,CAAC,CAAC;YAChD,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE,YAAY,CAAC,CAAC;YAChD,OAAO;QACT,KAAK,YAAY;YACf,gBAAgB,CAAC,YAAY,EAAE,YAAY,EAAE,OAAO,EAAE,YAAY,CAAC,CAAC;YACpE,OAAO;QACT,KAAK,UAAU,CAAC;QAChB,KAAK,WAAW,CAAC;QACjB,KAAK,MAAM,CAAC;QACZ,KAAK,MAAM;YACT,OAAO;QACT;YACE,OAAO,WAAW,CAAC,IAAI,CAAC,CAAC;IAC7B,CAAC;AACH,CAAC;AAED,SAAS,WAAW,CAClB,MAAkC,EAClC,OAAsC,EACtC,YAAiD;IAEjD,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,OAAO;IACT,CAAC;IAED,KAAK,MAAM,KAAK,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;QAC/D,IAAI,KAAK,EAAE,CAAC;YACV,SAAS,CAAC,KAAK,EAAE,OAAO,EAAE,YAAY,CAAC,CAAC;QAC1C,CAAC;IACH,CAAC;AACH,CAAC;AAED,SAAS,+BAA+B,CACtC,aAAkD,EAClD,IAOC,EACD,OAAsC,EACtC,YAAiD;IAEjD,IAAI,IAAI,CAAC,WAAW,KAAK,SAAS,IAAI,IAAI,CAAC,UAAU,KAAK,SAAS,EAAE,CAAC;QACpE,gBAAgB,CAAC,SAAS,EAAE,aAAa,EAAE,OAAO,EAAE,YAAY,CAAC,CAAC;IACpE,CAAC;IACD,IAAI,IAAI,CAAC,SAAS,KAAK,SAAS,IAAI,IAAI,CAAC,UAAU,KAAK,SAAS,EAAE,CAAC;QAClE,gBAAgB,CAAC,OAAO,EAAE,aAAa,EAAE,OAAO,EAAE,YAAY,CAAC,CAAC;IAClE,CAAC;IACD,IAAI,IAAI,CAAC,eAAe,KAAK,SAAS,EAAE,CAAC;QACvC,gBAAgB,CAAC,QAAQ,EAAE,aAAa,EAAE,OAAO,EAAE,YAAY,CAAC,CAAC;IACnE,CAAC;IACD,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;QAC7B,gBAAgB,CAAC,OAAO,EAAE,aAAa,EAAE,OAAO,EAAE,YAAY,CAAC,CAAC;IAClE,CAAC;AACH,CAAC;AAED,SAAS,gBAAgB,CACvB,UAA8B,EAC9B,aAAqB,EACrB,OAAsC,EACtC,YAAiD;IAEjD,IAAI,YAAY,CAAC,UAAU,CAAC,EAAE,CAAC;QAC7B,OAAO;IACT,CAAC;IAED,MAAM,IAAI,qBAAqB,CAC7B,+BAA+B,EAC/B,UAAU,aAAa,WAAW,UAAU,+BAA+B,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,0BAA0B,EACvH;QACE,UAAU;QACV,aAAa;QACb,OAAO,EAAE,CAAC,GAAG,OAAO,CAAC;KACtB,CACF,CAAC;AACJ,CAAC;AAED,SAAS,WAAW,CAAC,KAAY;IAC/B,MAAM,IAAI,KAAK,CAAC,8BAA+B,KAA2B,CAAC,IAAI,IAAI,SAAS,EAAE,CAAC,CAAC;AAClG,CAAC"}
@@ -1,8 +1,8 @@
1
- import type { StegoDocumentNode, StegoFragmentNode, StegoHeadingNode, StegoImageNode, StegoMarkdownNode, StegoNode, StegoPageBreakNode, StegoPageNumberNode, StegoPageTemplateNode, StegoParagraphNode, StegoSectionNode, StegoTextNode } from "../../ir/index.ts";
1
+ import type { StegoDocumentNode, StegoFragmentNode, StegoHeadingNode, StegoImageNode, StegoLinkNode, StegoMarkdownNode, StegoNode, StegoPageBreakNode, StegoPageNumberNode, StegoPageTemplateNode, StegoPlainTextNode, StegoParagraphNode, StegoSectionNode, StegoTextNode } from "../../ir/index.ts";
2
2
  import { Fragment } from "../public/components.ts";
3
3
  export { Fragment };
4
4
  export declare namespace JSX {
5
- type Element = StegoNode | StegoDocumentNode | StegoFragmentNode | StegoSectionNode | StegoHeadingNode | StegoParagraphNode | StegoMarkdownNode | StegoImageNode | StegoPageBreakNode | StegoPageTemplateNode | StegoPageNumberNode | StegoTextNode;
5
+ type Element = StegoNode | StegoDocumentNode | StegoFragmentNode | StegoSectionNode | StegoHeadingNode | StegoParagraphNode | StegoMarkdownNode | StegoPlainTextNode | StegoImageNode | StegoPageBreakNode | StegoPageTemplateNode | StegoPageNumberNode | StegoTextNode | StegoLinkNode;
6
6
  type ElementType = (props: any) => Element;
7
7
  interface ElementChildrenAttribute {
8
8
  children: unknown;