@stego-labs/engine 1.0.1

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 (207) hide show
  1. package/README.md +112 -0
  2. package/dist/stego-engine/src/collections/index.d.ts +3 -0
  3. package/dist/stego-engine/src/collections/index.d.ts.map +1 -0
  4. package/dist/stego-engine/src/collections/index.js +2 -0
  5. package/dist/stego-engine/src/collections/index.js.map +1 -0
  6. package/dist/stego-engine/src/collections/internal/filtering.d.ts +2 -0
  7. package/dist/stego-engine/src/collections/internal/filtering.d.ts.map +1 -0
  8. package/dist/stego-engine/src/collections/internal/filtering.js +4 -0
  9. package/dist/stego-engine/src/collections/internal/filtering.js.map +1 -0
  10. package/dist/stego-engine/src/collections/internal/grouping.d.ts +5 -0
  11. package/dist/stego-engine/src/collections/internal/grouping.d.ts.map +1 -0
  12. package/dist/stego-engine/src/collections/internal/grouping.js +69 -0
  13. package/dist/stego-engine/src/collections/internal/grouping.js.map +1 -0
  14. package/dist/stego-engine/src/collections/internal/sorting.d.ts +3 -0
  15. package/dist/stego-engine/src/collections/internal/sorting.d.ts.map +1 -0
  16. package/dist/stego-engine/src/collections/internal/sorting.js +31 -0
  17. package/dist/stego-engine/src/collections/internal/sorting.js.map +1 -0
  18. package/dist/stego-engine/src/collections/public/createCollection.d.ts +3 -0
  19. package/dist/stego-engine/src/collections/public/createCollection.d.ts.map +1 -0
  20. package/dist/stego-engine/src/collections/public/createCollection.js +31 -0
  21. package/dist/stego-engine/src/collections/public/createCollection.js.map +1 -0
  22. package/dist/stego-engine/src/collections/public/types.d.ts +23 -0
  23. package/dist/stego-engine/src/collections/public/types.d.ts.map +1 -0
  24. package/dist/stego-engine/src/collections/public/types.js +2 -0
  25. package/dist/stego-engine/src/collections/public/types.js.map +1 -0
  26. package/dist/stego-engine/src/compile/index.d.ts +4 -0
  27. package/dist/stego-engine/src/compile/index.d.ts.map +1 -0
  28. package/dist/stego-engine/src/compile/index.js +3 -0
  29. package/dist/stego-engine/src/compile/index.js.map +1 -0
  30. package/dist/stego-engine/src/compile/internal/load-manuscripts.d.ts +3 -0
  31. package/dist/stego-engine/src/compile/internal/load-manuscripts.d.ts.map +1 -0
  32. package/dist/stego-engine/src/compile/internal/load-manuscripts.js +70 -0
  33. package/dist/stego-engine/src/compile/internal/load-manuscripts.js.map +1 -0
  34. package/dist/stego-engine/src/compile/internal/load-project.d.ts +7 -0
  35. package/dist/stego-engine/src/compile/internal/load-project.d.ts.map +1 -0
  36. package/dist/stego-engine/src/compile/internal/load-project.js +16 -0
  37. package/dist/stego-engine/src/compile/internal/load-project.js.map +1 -0
  38. package/dist/stego-engine/src/compile/internal/load-spine.d.ts +7 -0
  39. package/dist/stego-engine/src/compile/internal/load-spine.d.ts.map +1 -0
  40. package/dist/stego-engine/src/compile/internal/load-spine.js +92 -0
  41. package/dist/stego-engine/src/compile/internal/load-spine.js.map +1 -0
  42. package/dist/stego-engine/src/compile/internal/resolve-template-path.d.ts +2 -0
  43. package/dist/stego-engine/src/compile/internal/resolve-template-path.d.ts.map +1 -0
  44. package/dist/stego-engine/src/compile/internal/resolve-template-path.js +12 -0
  45. package/dist/stego-engine/src/compile/internal/resolve-template-path.js.map +1 -0
  46. package/dist/stego-engine/src/compile/public/buildTemplateContext.d.ts +4 -0
  47. package/dist/stego-engine/src/compile/public/buildTemplateContext.d.ts.map +1 -0
  48. package/dist/stego-engine/src/compile/public/buildTemplateContext.js +21 -0
  49. package/dist/stego-engine/src/compile/public/buildTemplateContext.js.map +1 -0
  50. package/dist/stego-engine/src/compile/public/compileProject.d.ts +3 -0
  51. package/dist/stego-engine/src/compile/public/compileProject.d.ts.map +1 -0
  52. package/dist/stego-engine/src/compile/public/compileProject.js +27 -0
  53. package/dist/stego-engine/src/compile/public/compileProject.js.map +1 -0
  54. package/dist/stego-engine/src/compile/public/types.d.ts +20 -0
  55. package/dist/stego-engine/src/compile/public/types.d.ts.map +1 -0
  56. package/dist/stego-engine/src/compile/public/types.js +2 -0
  57. package/dist/stego-engine/src/compile/public/types.js.map +1 -0
  58. package/dist/stego-engine/src/index.d.ts +10 -0
  59. package/dist/stego-engine/src/index.d.ts.map +1 -0
  60. package/dist/stego-engine/src/index.js +6 -0
  61. package/dist/stego-engine/src/index.js.map +1 -0
  62. package/dist/stego-engine/src/ir/index.d.ts +13 -0
  63. package/dist/stego-engine/src/ir/index.d.ts.map +1 -0
  64. package/dist/stego-engine/src/ir/index.js +13 -0
  65. package/dist/stego-engine/src/ir/index.js.map +1 -0
  66. package/dist/stego-engine/src/ir/nodes/document.d.ts +3 -0
  67. package/dist/stego-engine/src/ir/nodes/document.d.ts.map +1 -0
  68. package/dist/stego-engine/src/ir/nodes/document.js +8 -0
  69. package/dist/stego-engine/src/ir/nodes/document.js.map +1 -0
  70. package/dist/stego-engine/src/ir/nodes/fragment.d.ts +3 -0
  71. package/dist/stego-engine/src/ir/nodes/fragment.d.ts.map +1 -0
  72. package/dist/stego-engine/src/ir/nodes/fragment.js +7 -0
  73. package/dist/stego-engine/src/ir/nodes/fragment.js.map +1 -0
  74. package/dist/stego-engine/src/ir/nodes/heading.d.ts +9 -0
  75. package/dist/stego-engine/src/ir/nodes/heading.d.ts.map +1 -0
  76. package/dist/stego-engine/src/ir/nodes/heading.js +13 -0
  77. package/dist/stego-engine/src/ir/nodes/heading.js.map +1 -0
  78. package/dist/stego-engine/src/ir/nodes/image.d.ts +11 -0
  79. package/dist/stego-engine/src/ir/nodes/image.d.ts.map +1 -0
  80. package/dist/stego-engine/src/ir/nodes/image.js +13 -0
  81. package/dist/stego-engine/src/ir/nodes/image.js.map +1 -0
  82. package/dist/stego-engine/src/ir/nodes/markdown.d.ts +3 -0
  83. package/dist/stego-engine/src/ir/nodes/markdown.d.ts.map +1 -0
  84. package/dist/stego-engine/src/ir/nodes/markdown.js +7 -0
  85. package/dist/stego-engine/src/ir/nodes/markdown.js.map +1 -0
  86. package/dist/stego-engine/src/ir/nodes/page-break.d.ts +3 -0
  87. package/dist/stego-engine/src/ir/nodes/page-break.d.ts.map +1 -0
  88. package/dist/stego-engine/src/ir/nodes/page-break.js +6 -0
  89. package/dist/stego-engine/src/ir/nodes/page-break.js.map +1 -0
  90. package/dist/stego-engine/src/ir/nodes/page-number.d.ts +3 -0
  91. package/dist/stego-engine/src/ir/nodes/page-number.d.ts.map +1 -0
  92. package/dist/stego-engine/src/ir/nodes/page-number.js +6 -0
  93. package/dist/stego-engine/src/ir/nodes/page-number.js.map +1 -0
  94. package/dist/stego-engine/src/ir/nodes/page-template.d.ts +3 -0
  95. package/dist/stego-engine/src/ir/nodes/page-template.d.ts.map +1 -0
  96. package/dist/stego-engine/src/ir/nodes/page-template.js +8 -0
  97. package/dist/stego-engine/src/ir/nodes/page-template.js.map +1 -0
  98. package/dist/stego-engine/src/ir/nodes/paragraph.d.ts +10 -0
  99. package/dist/stego-engine/src/ir/nodes/paragraph.d.ts.map +1 -0
  100. package/dist/stego-engine/src/ir/nodes/paragraph.js +13 -0
  101. package/dist/stego-engine/src/ir/nodes/paragraph.js.map +1 -0
  102. package/dist/stego-engine/src/ir/nodes/section.d.ts +12 -0
  103. package/dist/stego-engine/src/ir/nodes/section.d.ts.map +1 -0
  104. package/dist/stego-engine/src/ir/nodes/section.js +15 -0
  105. package/dist/stego-engine/src/ir/nodes/section.js.map +1 -0
  106. package/dist/stego-engine/src/ir/nodes/text.d.ts +3 -0
  107. package/dist/stego-engine/src/ir/nodes/text.d.ts.map +1 -0
  108. package/dist/stego-engine/src/ir/nodes/text.js +7 -0
  109. package/dist/stego-engine/src/ir/nodes/text.js.map +1 -0
  110. package/dist/stego-engine/src/ir/types.d.ts +87 -0
  111. package/dist/stego-engine/src/ir/types.d.ts.map +1 -0
  112. package/dist/stego-engine/src/ir/types.js +2 -0
  113. package/dist/stego-engine/src/ir/types.js.map +1 -0
  114. package/dist/stego-engine/src/render/index.d.ts +3 -0
  115. package/dist/stego-engine/src/render/index.d.ts.map +1 -0
  116. package/dist/stego-engine/src/render/index.js +2 -0
  117. package/dist/stego-engine/src/render/index.js.map +1 -0
  118. package/dist/stego-engine/src/render/internal/backends/pandoc/index.d.ts +2 -0
  119. package/dist/stego-engine/src/render/internal/backends/pandoc/index.d.ts.map +1 -0
  120. package/dist/stego-engine/src/render/internal/backends/pandoc/index.js +2 -0
  121. package/dist/stego-engine/src/render/internal/backends/pandoc/index.js.map +1 -0
  122. package/dist/stego-engine/src/render/internal/backends/pandoc/lower-to-render-plan.d.ts +4 -0
  123. package/dist/stego-engine/src/render/internal/backends/pandoc/lower-to-render-plan.d.ts.map +1 -0
  124. package/dist/stego-engine/src/render/internal/backends/pandoc/lower-to-render-plan.js +16 -0
  125. package/dist/stego-engine/src/render/internal/backends/pandoc/lower-to-render-plan.js.map +1 -0
  126. package/dist/stego-engine/src/render/internal/backends/pandoc/markdown-writer.d.ts +3 -0
  127. package/dist/stego-engine/src/render/internal/backends/pandoc/markdown-writer.d.ts.map +1 -0
  128. package/dist/stego-engine/src/render/internal/backends/pandoc/markdown-writer.js +139 -0
  129. package/dist/stego-engine/src/render/internal/backends/pandoc/markdown-writer.js.map +1 -0
  130. package/dist/stego-engine/src/render/internal/backends/pandoc/metadata-writer.d.ts +3 -0
  131. package/dist/stego-engine/src/render/internal/backends/pandoc/metadata-writer.d.ts.map +1 -0
  132. package/dist/stego-engine/src/render/internal/backends/pandoc/metadata-writer.js +38 -0
  133. package/dist/stego-engine/src/render/internal/backends/pandoc/metadata-writer.js.map +1 -0
  134. package/dist/stego-engine/src/render/internal/normalize/images.d.ts +3 -0
  135. package/dist/stego-engine/src/render/internal/normalize/images.d.ts.map +1 -0
  136. package/dist/stego-engine/src/render/internal/normalize/images.js +7 -0
  137. package/dist/stego-engine/src/render/internal/normalize/images.js.map +1 -0
  138. package/dist/stego-engine/src/render/internal/normalize/index.d.ts +4 -0
  139. package/dist/stego-engine/src/render/internal/normalize/index.d.ts.map +1 -0
  140. package/dist/stego-engine/src/render/internal/normalize/index.js +4 -0
  141. package/dist/stego-engine/src/render/internal/normalize/index.js.map +1 -0
  142. package/dist/stego-engine/src/render/internal/normalize/page-layout.d.ts +8 -0
  143. package/dist/stego-engine/src/render/internal/normalize/page-layout.d.ts.map +1 -0
  144. package/dist/stego-engine/src/render/internal/normalize/page-layout.js +28 -0
  145. package/dist/stego-engine/src/render/internal/normalize/page-layout.js.map +1 -0
  146. package/dist/stego-engine/src/render/internal/normalize/spacing.d.ts +3 -0
  147. package/dist/stego-engine/src/render/internal/normalize/spacing.d.ts.map +1 -0
  148. package/dist/stego-engine/src/render/internal/normalize/spacing.js +7 -0
  149. package/dist/stego-engine/src/render/internal/normalize/spacing.js.map +1 -0
  150. package/dist/stego-engine/src/render/public/renderDocument.d.ts +3 -0
  151. package/dist/stego-engine/src/render/public/renderDocument.d.ts.map +1 -0
  152. package/dist/stego-engine/src/render/public/renderDocument.js +5 -0
  153. package/dist/stego-engine/src/render/public/renderDocument.js.map +1 -0
  154. package/dist/stego-engine/src/render/public/types.d.ts +14 -0
  155. package/dist/stego-engine/src/render/public/types.d.ts.map +1 -0
  156. package/dist/stego-engine/src/render/public/types.js +2 -0
  157. package/dist/stego-engine/src/render/public/types.js.map +1 -0
  158. package/dist/stego-engine/src/template/index.d.ts +6 -0
  159. package/dist/stego-engine/src/template/index.d.ts.map +1 -0
  160. package/dist/stego-engine/src/template/index.js +5 -0
  161. package/dist/stego-engine/src/template/index.js.map +1 -0
  162. package/dist/stego-engine/src/template/internal/evaluate-template.d.ts +5 -0
  163. package/dist/stego-engine/src/template/internal/evaluate-template.d.ts.map +1 -0
  164. package/dist/stego-engine/src/template/internal/evaluate-template.js +17 -0
  165. package/dist/stego-engine/src/template/internal/evaluate-template.js.map +1 -0
  166. package/dist/stego-engine/src/template/internal/jsx-dev-runtime.d.ts +5 -0
  167. package/dist/stego-engine/src/template/internal/jsx-dev-runtime.d.ts.map +1 -0
  168. package/dist/stego-engine/src/template/internal/jsx-dev-runtime.js +4 -0
  169. package/dist/stego-engine/src/template/internal/jsx-dev-runtime.js.map +1 -0
  170. package/dist/stego-engine/src/template/internal/jsx-runtime.d.ts +18 -0
  171. package/dist/stego-engine/src/template/internal/jsx-runtime.d.ts.map +1 -0
  172. package/dist/stego-engine/src/template/internal/jsx-runtime.js +15 -0
  173. package/dist/stego-engine/src/template/internal/jsx-runtime.js.map +1 -0
  174. package/dist/stego-engine/src/template/internal/normalizeChildren.d.ts +3 -0
  175. package/dist/stego-engine/src/template/internal/normalizeChildren.d.ts.map +1 -0
  176. package/dist/stego-engine/src/template/internal/normalizeChildren.js +33 -0
  177. package/dist/stego-engine/src/template/internal/normalizeChildren.js.map +1 -0
  178. package/dist/stego-engine/src/template/internal/template-loader.d.ts +7 -0
  179. package/dist/stego-engine/src/template/internal/template-loader.d.ts.map +1 -0
  180. package/dist/stego-engine/src/template/internal/template-loader.js +61 -0
  181. package/dist/stego-engine/src/template/internal/template-loader.js.map +1 -0
  182. package/dist/stego-engine/src/template/public/authoring.d.ts +4 -0
  183. package/dist/stego-engine/src/template/public/authoring.d.ts.map +1 -0
  184. package/dist/stego-engine/src/template/public/authoring.js +3 -0
  185. package/dist/stego-engine/src/template/public/authoring.js.map +1 -0
  186. package/dist/stego-engine/src/template/public/components.d.ts +68 -0
  187. package/dist/stego-engine/src/template/public/components.d.ts.map +1 -0
  188. package/dist/stego-engine/src/template/public/components.js +45 -0
  189. package/dist/stego-engine/src/template/public/components.js.map +1 -0
  190. package/dist/stego-engine/src/template/public/context.d.ts +2 -0
  191. package/dist/stego-engine/src/template/public/context.d.ts.map +1 -0
  192. package/dist/stego-engine/src/template/public/context.js +2 -0
  193. package/dist/stego-engine/src/template/public/context.js.map +1 -0
  194. package/dist/stego-engine/src/template/public/defineTemplate.d.ts +4 -0
  195. package/dist/stego-engine/src/template/public/defineTemplate.d.ts.map +1 -0
  196. package/dist/stego-engine/src/template/public/defineTemplate.js +7 -0
  197. package/dist/stego-engine/src/template/public/defineTemplate.js.map +1 -0
  198. package/dist/stego-engine/src/template/public/types.d.ts +46 -0
  199. package/dist/stego-engine/src/template/public/types.d.ts.map +1 -0
  200. package/dist/stego-engine/src/template/public/types.js +2 -0
  201. package/dist/stego-engine/src/template/public/types.js.map +1 -0
  202. package/dist/stego-engine/src/testing/index.d.ts +2 -0
  203. package/dist/stego-engine/src/testing/index.d.ts.map +1 -0
  204. package/dist/stego-engine/src/testing/index.js +2 -0
  205. package/dist/stego-engine/src/testing/index.js.map +1 -0
  206. package/docs/architecture.md +16 -0
  207. package/package.json +53 -0
@@ -0,0 +1,2 @@
1
+ export { renderDocument } from "./public/renderDocument.js";
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/render/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC"}
@@ -0,0 +1,2 @@
1
+ export { lowerToPandocRenderPlan } from "./lower-to-render-plan.ts";
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../src/render/internal/backends/pandoc/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC"}
@@ -0,0 +1,2 @@
1
+ export { lowerToPandocRenderPlan } from "./lower-to-render-plan.js";
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../src/render/internal/backends/pandoc/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC"}
@@ -0,0 +1,4 @@
1
+ import type { StegoDocumentNode } from "../../../../ir/index.ts";
2
+ import type { RenderDocumentResult } from "../../../public/types.ts";
3
+ export declare function lowerToPandocRenderPlan(document: StegoDocumentNode, projectRoot: string): RenderDocumentResult;
4
+ //# sourceMappingURL=lower-to-render-plan.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lower-to-render-plan.d.ts","sourceRoot":"","sources":["../../../../../../../src/render/internal/backends/pandoc/lower-to-render-plan.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AACjE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAKrE,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,GAAG,oBAAoB,CAU9G"}
@@ -0,0 +1,16 @@
1
+ import path from "node:path";
2
+ import { normalizePageLayout } from "../../normalize/index.js";
3
+ import { buildPandocMetadata } from "./metadata-writer.js";
4
+ import { writePandocMarkdown } from "./markdown-writer.js";
5
+ export function lowerToPandocRenderPlan(document, projectRoot) {
6
+ const layout = normalizePageLayout(document);
7
+ return {
8
+ backend: "pandoc",
9
+ inputFormat: "markdown-implicit_figures",
10
+ markdown: writePandocMarkdown(document.children),
11
+ metadata: buildPandocMetadata(layout),
12
+ resourcePaths: [projectRoot, path.join(projectRoot, "assets")],
13
+ requiredFilters: ["image-layout", "block-layout"]
14
+ };
15
+ }
16
+ //# sourceMappingURL=lower-to-render-plan.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lower-to-render-plan.js","sourceRoot":"","sources":["../../../../../../../src/render/internal/backends/pandoc/lower-to-render-plan.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAG7B,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAE3D,MAAM,UAAU,uBAAuB,CAAC,QAA2B,EAAE,WAAmB;IACtF,MAAM,MAAM,GAAG,mBAAmB,CAAC,QAAQ,CAAC,CAAC;IAC7C,OAAO;QACL,OAAO,EAAE,QAAQ;QACjB,WAAW,EAAE,2BAA2B;QACxC,QAAQ,EAAE,mBAAmB,CAAC,QAAQ,CAAC,QAAQ,CAAC;QAChD,QAAQ,EAAE,mBAAmB,CAAC,MAAM,CAAC;QACrC,aAAa,EAAE,CAAC,WAAW,EAAE,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;QAC9D,eAAe,EAAE,CAAC,cAAc,EAAE,cAAc,CAAC;KAClD,CAAC;AACJ,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { StegoNode } from "../../../../ir/index.ts";
2
+ export declare function writePandocMarkdown(nodes: StegoNode[]): string;
3
+ //# sourceMappingURL=markdown-writer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"markdown-writer.d.ts","sourceRoot":"","sources":["../../../../../../../src/render/internal/backends/pandoc/markdown-writer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAqD,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAG5G,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,SAAS,EAAE,GAAG,MAAM,CAa9D"}
@@ -0,0 +1,139 @@
1
+ import { formatSizeValue, formatSpacingValue } from "../../normalize/index.js";
2
+ export function writePandocMarkdown(nodes) {
3
+ const blocks = [];
4
+ for (const node of nodes) {
5
+ if (node.kind === "pageTemplate") {
6
+ continue;
7
+ }
8
+ const rendered = renderNode(node);
9
+ if (!rendered) {
10
+ continue;
11
+ }
12
+ blocks.push(rendered);
13
+ }
14
+ return `${blocks.join("\n\n").replace(/\n{3,}/g, "\n\n")}\n`;
15
+ }
16
+ function renderNode(node) {
17
+ switch (node.kind) {
18
+ case "document":
19
+ case "fragment":
20
+ return node.children.map(renderNode).filter(Boolean).join("\n\n");
21
+ case "pageTemplate":
22
+ return "";
23
+ case "section": {
24
+ const body = node.children.map(renderNode).filter(Boolean).join("\n\n");
25
+ const attrs = renderBlockAttrs({
26
+ id: node.id,
27
+ role: node.role,
28
+ spaceBefore: node.spaceBefore,
29
+ spaceAfter: node.spaceAfter,
30
+ insetLeft: node.insetLeft,
31
+ insetRight: node.insetRight,
32
+ firstLineIndent: node.firstLineIndent,
33
+ align: node.align
34
+ });
35
+ return attrs ? `::: ${attrs}\n${body}\n:::` : body;
36
+ }
37
+ case "heading": {
38
+ const attrs = renderBlockAttrs({
39
+ spaceBefore: node.spaceBefore,
40
+ spaceAfter: node.spaceAfter,
41
+ insetLeft: node.insetLeft,
42
+ insetRight: node.insetRight,
43
+ align: node.align
44
+ });
45
+ return `${"#".repeat(node.level)} ${renderInlineChildren(node.children)}${attrs ? ` ${attrs}` : ""}`;
46
+ }
47
+ case "paragraph": {
48
+ const attrs = renderBlockAttrs({
49
+ spaceBefore: node.spaceBefore,
50
+ spaceAfter: node.spaceAfter,
51
+ insetLeft: node.insetLeft,
52
+ insetRight: node.insetRight,
53
+ firstLineIndent: node.firstLineIndent,
54
+ align: node.align
55
+ });
56
+ const body = renderInlineChildren(node.children);
57
+ return attrs ? `::: ${attrs}\n${body}\n:::` : body;
58
+ }
59
+ case "markdown":
60
+ return node.source.trim();
61
+ case "image": {
62
+ const tokens = [];
63
+ const width = formatSizeValue(node.width);
64
+ const height = formatSizeValue(node.height);
65
+ if (width) {
66
+ tokens.push(`width=${width}`);
67
+ }
68
+ if (height) {
69
+ tokens.push(`height=${height}`);
70
+ }
71
+ if (node.layout) {
72
+ tokens.push(`data-layout=${node.layout}`);
73
+ }
74
+ if (node.align) {
75
+ tokens.push(`data-align=${node.align}`);
76
+ }
77
+ const attrText = tokens.length > 0 ? `{${tokens.join(" ")}}` : "";
78
+ const image = `![${node.alt ?? ""}](${node.src})${attrText}`;
79
+ if (!node.caption) {
80
+ return image;
81
+ }
82
+ return `${image}\n\n_${node.caption}_`;
83
+ }
84
+ case "pageBreak":
85
+ return "\\newpage";
86
+ case "pageNumber":
87
+ throw new Error("<Stego.PageNumber /> may only appear inside <Stego.PageTemplate /> in V1.");
88
+ case "text":
89
+ return node.value;
90
+ }
91
+ }
92
+ function renderInlineChildren(children) {
93
+ 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}'.`);
96
+ }
97
+ return child.value;
98
+ }).join("");
99
+ }
100
+ function renderBlockAttrs(input) {
101
+ const tokens = [];
102
+ if (input.id) {
103
+ tokens.push(`#${input.id}`);
104
+ }
105
+ if (input.role) {
106
+ tokens.push(`data-role=${input.role}`);
107
+ }
108
+ const before = formatSpacingValue(input.spaceBefore);
109
+ const after = formatSpacingValue(input.spaceAfter);
110
+ const insetLeft = formatSpacingValue(input.insetLeft);
111
+ const insetRight = formatSpacingValue(input.insetRight);
112
+ const firstLineIndent = formatIndentValue(input.firstLineIndent);
113
+ if (before) {
114
+ tokens.push(`data-space-before=${before}`);
115
+ }
116
+ if (after) {
117
+ tokens.push(`data-space-after=${after}`);
118
+ }
119
+ if (insetLeft) {
120
+ tokens.push(`data-inset-left=${insetLeft}`);
121
+ }
122
+ if (insetRight) {
123
+ tokens.push(`data-inset-right=${insetRight}`);
124
+ }
125
+ if (firstLineIndent) {
126
+ tokens.push(`data-first-line-indent=${firstLineIndent}`);
127
+ }
128
+ if (input.align) {
129
+ tokens.push(`data-align=${String(input.align)}`);
130
+ }
131
+ return tokens.length > 0 ? `{${tokens.join(" ")}}` : "";
132
+ }
133
+ function formatIndentValue(value) {
134
+ if (value == null) {
135
+ return undefined;
136
+ }
137
+ return typeof value === "number" ? `${value}pt` : value;
138
+ }
139
+ //# sourceMappingURL=markdown-writer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"markdown-writer.js","sourceRoot":"","sources":["../../../../../../../src/render/internal/backends/pandoc/markdown-writer.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { NormalizedPageLayout } from "../../normalize/index.ts";
2
+ export declare function buildPandocMetadata(layout: NormalizedPageLayout): Record<string, unknown>;
3
+ //# sourceMappingURL=metadata-writer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"metadata-writer.d.ts","sourceRoot":"","sources":["../../../../../../../src/render/internal/backends/pandoc/metadata-writer.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAErE,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,oBAAoB,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAsBzF"}
@@ -0,0 +1,38 @@
1
+ export function buildPandocMetadata(layout) {
2
+ const metadata = {};
3
+ if (layout.geometry.length > 0) {
4
+ metadata.geometry = layout.geometry;
5
+ }
6
+ const headerIncludes = [];
7
+ if (layout.header || layout.footer) {
8
+ headerIncludes.push("\\usepackage{fancyhdr}");
9
+ headerIncludes.push("\\pagestyle{fancy}");
10
+ headerIncludes.push("\\fancyhf{}");
11
+ headerIncludes.push(...renderRegion("head", layout.header));
12
+ headerIncludes.push(...renderRegion("foot", layout.footer));
13
+ headerIncludes.push("\\renewcommand{\\headrulewidth}{0pt}");
14
+ headerIncludes.push("\\renewcommand{\\footrulewidth}{0pt}");
15
+ }
16
+ if (headerIncludes.length > 0) {
17
+ metadata["header-includes"] = headerIncludes;
18
+ }
19
+ return metadata;
20
+ }
21
+ function renderRegion(kind, region) {
22
+ if (!region) {
23
+ return [];
24
+ }
25
+ const lines = [];
26
+ for (const [slot, value] of Object.entries(region)) {
27
+ if (!value) {
28
+ continue;
29
+ }
30
+ if (value.kind !== "pageNumber") {
31
+ throw new Error(`Only <Stego.PageNumber /> is supported in page template ${kind}.${slot} for V1.`);
32
+ }
33
+ const latexSlot = slot === "left" ? "L" : slot === "center" ? "C" : "R";
34
+ lines.push(`\\fancy${kind}[${latexSlot}]{\\thepage}`);
35
+ }
36
+ return lines;
37
+ }
38
+ //# sourceMappingURL=metadata-writer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"metadata-writer.js","sourceRoot":"","sources":["../../../../../../../src/render/internal/backends/pandoc/metadata-writer.ts"],"names":[],"mappings":"AAGA,MAAM,UAAU,mBAAmB,CAAC,MAA4B;IAC9D,MAAM,QAAQ,GAA4B,EAAE,CAAC;IAC7C,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC/B,QAAQ,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;IACtC,CAAC;IAED,MAAM,cAAc,GAAa,EAAE,CAAC;IACpC,IAAI,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;QACnC,cAAc,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;QAC9C,cAAc,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;QAC1C,cAAc,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QACnC,cAAc,CAAC,IAAI,CAAC,GAAG,YAAY,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;QAC5D,cAAc,CAAC,IAAI,CAAC,GAAG,YAAY,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;QAC5D,cAAc,CAAC,IAAI,CAAC,sCAAsC,CAAC,CAAC;QAC5D,cAAc,CAAC,IAAI,CAAC,sCAAsC,CAAC,CAAC;IAC9D,CAAC;IAED,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC9B,QAAQ,CAAC,iBAAiB,CAAC,GAAG,cAAc,CAAC;IAC/C,CAAC;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,SAAS,YAAY,CAAC,IAAqB,EAAE,MAAkC;IAC7E,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAwE,EAAE,CAAC;QAC1H,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,SAAS;QACX,CAAC;QACD,IAAI,KAAK,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;YAChC,MAAM,IAAI,KAAK,CAAC,2DAA2D,IAAI,IAAI,IAAI,UAAU,CAAC,CAAC;QACrG,CAAC;QACD,MAAM,SAAS,GAAG,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;QACxE,KAAK,CAAC,IAAI,CAAC,UAAU,IAAI,IAAI,SAAS,cAAc,CAAC,CAAC;IACxD,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { SizeValue } from "../../../ir/index.ts";
2
+ export declare function formatSizeValue(value: SizeValue | undefined): string | undefined;
3
+ //# sourceMappingURL=images.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"images.d.ts","sourceRoot":"","sources":["../../../../../../src/render/internal/normalize/images.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAEtD,wBAAgB,eAAe,CAAC,KAAK,EAAE,SAAS,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,CAKhF"}
@@ -0,0 +1,7 @@
1
+ export function formatSizeValue(value) {
2
+ if (value == null) {
3
+ return undefined;
4
+ }
5
+ return typeof value === "number" ? `${value}pt` : value;
6
+ }
7
+ //# sourceMappingURL=images.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"images.js","sourceRoot":"","sources":["../../../../../../src/render/internal/normalize/images.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,eAAe,CAAC,KAA4B;IAC1D,IAAI,KAAK,IAAI,IAAI,EAAE,CAAC;QAClB,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,OAAO,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,KAAK,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC;AAC1D,CAAC"}
@@ -0,0 +1,4 @@
1
+ export { formatSpacingValue } from "./spacing.ts";
2
+ export { formatSizeValue } from "./images.ts";
3
+ export { normalizePageLayout, type NormalizedPageLayout } from "./page-layout.ts";
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/render/internal/normalize/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,EAAE,mBAAmB,EAAE,KAAK,oBAAoB,EAAE,MAAM,kBAAkB,CAAC"}
@@ -0,0 +1,4 @@
1
+ export { formatSpacingValue } from "./spacing.js";
2
+ export { formatSizeValue } from "./images.js";
3
+ export { normalizePageLayout } from "./page-layout.js";
4
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../src/render/internal/normalize/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,EAAE,mBAAmB,EAA6B,MAAM,kBAAkB,CAAC"}
@@ -0,0 +1,8 @@
1
+ import type { PageRegionSpec, StegoDocumentNode } from "../../../ir/index.ts";
2
+ export type NormalizedPageLayout = {
3
+ geometry: string[];
4
+ footer?: PageRegionSpec;
5
+ header?: PageRegionSpec;
6
+ };
7
+ export declare function normalizePageLayout(document: StegoDocumentNode): NormalizedPageLayout;
8
+ //# sourceMappingURL=page-layout.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"page-layout.d.ts","sourceRoot":"","sources":["../../../../../../src/render/internal/normalize/page-layout.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAiB,iBAAiB,EAAyB,MAAM,sBAAsB,CAAC;AAGpH,MAAM,MAAM,oBAAoB,GAAG;IACjC,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,MAAM,CAAC,EAAE,cAAc,CAAC;IACxB,MAAM,CAAC,EAAE,cAAc,CAAC;CACzB,CAAC;AAEF,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,iBAAiB,GAAG,oBAAoB,CAkBrF"}
@@ -0,0 +1,28 @@
1
+ import { formatSpacingValue } from "./spacing.js";
2
+ export function normalizePageLayout(document) {
3
+ const pageTemplate = document.children.find((node) => node.kind === "pageTemplate");
4
+ const geometry = [];
5
+ const size = document.page?.size;
6
+ const margin = formatSpacingValue(document.page?.margin);
7
+ if (size) {
8
+ geometry.push(...toGeometryForSize(size));
9
+ }
10
+ if (margin) {
11
+ geometry.push(`margin=${margin}`);
12
+ }
13
+ return {
14
+ geometry,
15
+ header: pageTemplate?.header,
16
+ footer: pageTemplate?.footer
17
+ };
18
+ }
19
+ function toGeometryForSize(size) {
20
+ if (size === "5x8") {
21
+ return ["paperwidth=5in", "paperheight=8in"];
22
+ }
23
+ if (size === "6x9") {
24
+ return ["paperwidth=6in", "paperheight=9in"];
25
+ }
26
+ return ["paper=a5paper"];
27
+ }
28
+ //# sourceMappingURL=page-layout.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"page-layout.js","sourceRoot":"","sources":["../../../../../../src/render/internal/normalize/page-layout.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAQlD,MAAM,UAAU,mBAAmB,CAAC,QAA2B;IAC7D,MAAM,YAAY,GAAG,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,IAAI,EAAiC,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,cAAc,CAAC,CAAC;IACnH,MAAM,QAAQ,GAAG,EAAE,CAAC;IACpB,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC;IACjC,MAAM,MAAM,GAAG,kBAAkB,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IAEzD,IAAI,IAAI,EAAE,CAAC;QACT,QAAQ,CAAC,IAAI,CAAC,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC;IAC5C,CAAC;IACD,IAAI,MAAM,EAAE,CAAC;QACX,QAAQ,CAAC,IAAI,CAAC,UAAU,MAAM,EAAE,CAAC,CAAC;IACpC,CAAC;IAED,OAAO;QACL,QAAQ;QACR,MAAM,EAAE,YAAY,EAAE,MAAM;QAC5B,MAAM,EAAE,YAAY,EAAE,MAAM;KAC7B,CAAC;AACJ,CAAC;AAED,SAAS,iBAAiB,CAAC,IAAmB;IAC5C,IAAI,IAAI,KAAK,KAAK,EAAE,CAAC;QACnB,OAAO,CAAC,gBAAgB,EAAE,iBAAiB,CAAC,CAAC;IAC/C,CAAC;IACD,IAAI,IAAI,KAAK,KAAK,EAAE,CAAC;QACnB,OAAO,CAAC,gBAAgB,EAAE,iBAAiB,CAAC,CAAC;IAC/C,CAAC;IACD,OAAO,CAAC,eAAe,CAAC,CAAC;AAC3B,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { SpacingValue } from "../../../ir/index.ts";
2
+ export declare function formatSpacingValue(value: SpacingValue | undefined): string | undefined;
3
+ //# sourceMappingURL=spacing.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"spacing.d.ts","sourceRoot":"","sources":["../../../../../../src/render/internal/normalize/spacing.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAEzD,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,YAAY,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,CAKtF"}
@@ -0,0 +1,7 @@
1
+ export function formatSpacingValue(value) {
2
+ if (value == null) {
3
+ return undefined;
4
+ }
5
+ return typeof value === "number" ? `${value}pt` : value;
6
+ }
7
+ //# sourceMappingURL=spacing.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"spacing.js","sourceRoot":"","sources":["../../../../../../src/render/internal/normalize/spacing.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,kBAAkB,CAAC,KAA+B;IAChE,IAAI,KAAK,IAAI,IAAI,EAAE,CAAC;QAClB,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,OAAO,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,KAAK,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC;AAC1D,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { RenderDocumentInput, RenderDocumentResult } from "./types.ts";
2
+ export declare function renderDocument(input: RenderDocumentInput): RenderDocumentResult;
3
+ //# sourceMappingURL=renderDocument.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"renderDocument.d.ts","sourceRoot":"","sources":["../../../../../src/render/public/renderDocument.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAE5E,wBAAgB,cAAc,CAAC,KAAK,EAAE,mBAAmB,GAAG,oBAAoB,CAE/E"}
@@ -0,0 +1,5 @@
1
+ import { lowerToPandocRenderPlan } from "../internal/backends/pandoc/index.js";
2
+ export function renderDocument(input) {
3
+ return lowerToPandocRenderPlan(input.document, input.projectRoot);
4
+ }
5
+ //# sourceMappingURL=renderDocument.js.map
@@ -0,0 +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"}
@@ -0,0 +1,14 @@
1
+ import type { StegoDocumentNode } from "../../ir/index.ts";
2
+ export type RenderDocumentInput = {
3
+ document: StegoDocumentNode;
4
+ projectRoot: string;
5
+ };
6
+ export type RenderDocumentResult = {
7
+ backend: "pandoc";
8
+ inputFormat: string;
9
+ markdown: string;
10
+ metadata: Record<string, unknown>;
11
+ resourcePaths: string[];
12
+ requiredFilters: string[];
13
+ };
14
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../../src/render/public/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,6 @@
1
+ export { defineTemplate } from "./public/defineTemplate.ts";
2
+ export { Stego } from "./public/components.ts";
3
+ export { evaluateTemplate } from "./internal/evaluate-template.ts";
4
+ export { loadTemplateFromFile } from "./internal/template-loader.ts";
5
+ export type { ManuscriptRecord, SpineEntryRecord, SpineCategoryRecord, TemplateContext, StegoTemplate } from "./public/types.ts";
6
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +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"}
@@ -0,0 +1,5 @@
1
+ export { defineTemplate } from "./public/defineTemplate.js";
2
+ export { Stego } from "./public/components.js";
3
+ export { evaluateTemplate } from "./internal/evaluate-template.js";
4
+ export { loadTemplateFromFile } from "./internal/template-loader.js";
5
+ //# sourceMappingURL=index.js.map
@@ -0,0 +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"}
@@ -0,0 +1,5 @@
1
+ import type { StegoDocumentNode } from "../../ir/index.ts";
2
+ import type { StegoTemplate, TemplateContext } from "../public/types.ts";
3
+ export declare function assertTemplateModule(value: unknown): StegoTemplate;
4
+ export declare function evaluateTemplate(template: StegoTemplate, context: TemplateContext): StegoDocumentNode;
5
+ //# sourceMappingURL=evaluate-template.d.ts.map
@@ -0,0 +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"}
@@ -0,0 +1,17 @@
1
+ export function assertTemplateModule(value) {
2
+ if (typeof value === "object"
3
+ && value !== null
4
+ && value.kind === "stego-template"
5
+ && typeof value.render === "function") {
6
+ return value;
7
+ }
8
+ throw new Error("Template must default export defineTemplate(...).");
9
+ }
10
+ export function evaluateTemplate(template, context) {
11
+ const document = template.render(context);
12
+ if (!document || document.kind !== "document") {
13
+ throw new Error("Template render() must return <Stego.Document>.");
14
+ }
15
+ return document;
16
+ }
17
+ //# sourceMappingURL=evaluate-template.js.map
@@ -0,0 +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"}
@@ -0,0 +1,5 @@
1
+ export { Fragment, jsx, jsxs } from "./jsx-runtime.ts";
2
+ export declare const jsxDEV: typeof jsx;
3
+ import { jsx } from "./jsx-runtime.ts";
4
+ export type { JSX } from "./jsx-runtime.ts";
5
+ //# sourceMappingURL=jsx-dev-runtime.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"jsx-dev-runtime.d.ts","sourceRoot":"","sources":["../../../../../src/template/internal/jsx-dev-runtime.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AACvD,eAAO,MAAM,MAAM,YAAM,CAAC;AAE1B,OAAO,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAC;AACvC,YAAY,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAC"}
@@ -0,0 +1,4 @@
1
+ export { Fragment, jsx, jsxs } from "./jsx-runtime.js";
2
+ export const jsxDEV = jsx;
3
+ import { jsx } from "./jsx-runtime.js";
4
+ //# sourceMappingURL=jsx-dev-runtime.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"jsx-dev-runtime.js","sourceRoot":"","sources":["../../../../../src/template/internal/jsx-dev-runtime.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AACvD,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAC;AAE1B,OAAO,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAC"}
@@ -0,0 +1,18 @@
1
+ import type { StegoDocumentNode, StegoFragmentNode, StegoHeadingNode, StegoImageNode, StegoMarkdownNode, StegoNode, StegoPageBreakNode, StegoPageNumberNode, StegoPageTemplateNode, StegoParagraphNode, StegoSectionNode, StegoTextNode } from "../../ir/index.ts";
2
+ import { Fragment } from "../public/components.ts";
3
+ export { Fragment };
4
+ export declare namespace JSX {
5
+ type Element = StegoNode | StegoDocumentNode | StegoFragmentNode | StegoSectionNode | StegoHeadingNode | StegoParagraphNode | StegoMarkdownNode | StegoImageNode | StegoPageBreakNode | StegoPageTemplateNode | StegoPageNumberNode | StegoTextNode;
6
+ type ElementType = (props: any) => Element;
7
+ interface ElementChildrenAttribute {
8
+ children: unknown;
9
+ }
10
+ interface IntrinsicElements {
11
+ }
12
+ interface IntrinsicAttributes {
13
+ key?: string | number;
14
+ }
15
+ }
16
+ export declare function jsx<Props, Result extends JSX.Element>(type: (props: Props) => Result, props: Props): Result;
17
+ export declare function jsxs<Props, Result extends JSX.Element>(type: (props: Props) => Result, props: Props): Result;
18
+ //# sourceMappingURL=jsx-runtime.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"jsx-runtime.d.ts","sourceRoot":"","sources":["../../../../../src/template/internal/jsx-runtime.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,iBAAiB,EACjB,iBAAiB,EACjB,gBAAgB,EAChB,cAAc,EACd,iBAAiB,EACjB,SAAS,EACT,kBAAkB,EAClB,mBAAmB,EACnB,qBAAqB,EACrB,kBAAkB,EAClB,gBAAgB,EAChB,aAAa,EACd,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAEnD,OAAO,EAAE,QAAQ,EAAE,CAAC;AAEpB,yBAAiB,GAAG,CAAC;IACnB,KAAY,OAAO,GACf,SAAS,GACT,iBAAiB,GACjB,iBAAiB,GACjB,gBAAgB,GAChB,gBAAgB,GAChB,kBAAkB,GAClB,iBAAiB,GACjB,cAAc,GACd,kBAAkB,GAClB,qBAAqB,GACrB,mBAAmB,GACnB,aAAa,CAAC;IAClB,KAAY,WAAW,GAAG,CAAC,KAAK,EAAE,GAAG,KAAK,OAAO,CAAC;IAClD,UAAiB,wBAAwB;QACvC,QAAQ,EAAE,OAAO,CAAC;KACnB;IACD,UAAiB,iBAAiB;KAAG;IACrC,UAAiB,mBAAmB;QAClC,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;KACvB;CACF;AAED,wBAAgB,GAAG,CAAC,KAAK,EAAE,MAAM,SAAS,GAAG,CAAC,OAAO,EACnD,IAAI,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,MAAM,EAC9B,KAAK,EAAE,KAAK,GACX,MAAM,CAER;AAED,wBAAgB,IAAI,CAAC,KAAK,EAAE,MAAM,SAAS,GAAG,CAAC,OAAO,EACpD,IAAI,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,MAAM,EAC9B,KAAK,EAAE,KAAK,GACX,MAAM,CAER"}
@@ -0,0 +1,15 @@
1
+ import { Fragment } from "../public/components.js";
2
+ export { Fragment };
3
+ export function jsx(type, props) {
4
+ return createElement(type, props);
5
+ }
6
+ export function jsxs(type, props) {
7
+ return createElement(type, props);
8
+ }
9
+ function createElement(type, props) {
10
+ if (typeof type !== "function") {
11
+ throw new Error("Only Stego components and local helper functions are supported in templates.");
12
+ }
13
+ return type(props);
14
+ }
15
+ //# sourceMappingURL=jsx-runtime.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"jsx-runtime.js","sourceRoot":"","sources":["../../../../../src/template/internal/jsx-runtime.ts"],"names":[],"mappings":"AAcA,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAEnD,OAAO,EAAE,QAAQ,EAAE,CAAC;AA0BpB,MAAM,UAAU,GAAG,CACjB,IAA8B,EAC9B,KAAY;IAEZ,OAAO,aAAa,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;AACpC,CAAC;AAED,MAAM,UAAU,IAAI,CAClB,IAA8B,EAC9B,KAAY;IAEZ,OAAO,aAAa,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;AACpC,CAAC;AAED,SAAS,aAAa,CACpB,IAA8B,EAC9B,KAAY;IAEZ,IAAI,OAAO,IAAI,KAAK,UAAU,EAAE,CAAC;QAC/B,MAAM,IAAI,KAAK,CAAC,8EAA8E,CAAC,CAAC;IAClG,CAAC;IACD,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC;AACrB,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { type StegoNode } from "../../ir/index.ts";
2
+ export declare function normalizeChildren(input: unknown): StegoNode[];
3
+ //# sourceMappingURL=normalizeChildren.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"normalizeChildren.d.ts","sourceRoot":"","sources":["../../../../../src/template/internal/normalizeChildren.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkB,KAAK,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAEnE,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,OAAO,GAAG,SAAS,EAAE,CAI7D"}
@@ -0,0 +1,33 @@
1
+ import { createTextNode } from "../../ir/index.js";
2
+ export function normalizeChildren(input) {
3
+ const nodes = [];
4
+ appendChildren(nodes, input);
5
+ return nodes;
6
+ }
7
+ function appendChildren(nodes, input) {
8
+ if (input == null || typeof input === "boolean") {
9
+ return;
10
+ }
11
+ if (Array.isArray(input)) {
12
+ for (const entry of input) {
13
+ appendChildren(nodes, entry);
14
+ }
15
+ return;
16
+ }
17
+ if (typeof input === "string" || typeof input === "number") {
18
+ nodes.push(createTextNode(String(input)));
19
+ return;
20
+ }
21
+ if (isStegoNode(input)) {
22
+ nodes.push(input);
23
+ return;
24
+ }
25
+ throw new Error(`Unsupported template child value: ${String(input)}`);
26
+ }
27
+ function isStegoNode(value) {
28
+ return typeof value === "object"
29
+ && value !== null
30
+ && "kind" in value
31
+ && typeof value.kind === "string";
32
+ }
33
+ //# sourceMappingURL=normalizeChildren.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"normalizeChildren.js","sourceRoot":"","sources":["../../../../../src/template/internal/normalizeChildren.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAkB,MAAM,mBAAmB,CAAC;AAEnE,MAAM,UAAU,iBAAiB,CAAC,KAAc;IAC9C,MAAM,KAAK,GAAgB,EAAE,CAAC;IAC9B,cAAc,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IAC7B,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,cAAc,CAAC,KAAkB,EAAE,KAAc;IACxD,IAAI,KAAK,IAAI,IAAI,IAAI,OAAO,KAAK,KAAK,SAAS,EAAE,CAAC;QAChD,OAAO;IACT,CAAC;IAED,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACzB,KAAK,MAAM,KAAK,IAAI,KAAK,EAAE,CAAC;YAC1B,cAAc,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;QAC/B,CAAC;QACD,OAAO;IACT,CAAC;IAED,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC3D,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAC1C,OAAO;IACT,CAAC;IAED,IAAI,WAAW,CAAC,KAAK,CAAC,EAAE,CAAC;QACvB,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAClB,OAAO;IACT,CAAC;IAED,MAAM,IAAI,KAAK,CAAC,qCAAqC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;AACxE,CAAC;AAED,SAAS,WAAW,CAAC,KAAc;IACjC,OAAO,OAAO,KAAK,KAAK,QAAQ;WAC3B,KAAK,KAAK,IAAI;WACd,MAAM,IAAI,KAAK;WACf,OAAQ,KAA4B,CAAC,IAAI,KAAK,QAAQ,CAAC;AAC9D,CAAC"}
@@ -0,0 +1,7 @@
1
+ import type { StegoTemplate } from "../public/types.ts";
2
+ export type LoadedTemplate = {
3
+ template: StegoTemplate;
4
+ cleanup: () => void;
5
+ };
6
+ export declare function loadTemplateFromFile(templatePath: string): Promise<LoadedTemplate>;
7
+ //# sourceMappingURL=template-loader.d.ts.map